c语言选择题_c语言选择题及答案

2020-02-27 其他范文 下载本文

c语言选择题由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c语言选择题及答案”。

2.C语言的基本单位是A

A 函数

B 源程序

C 语句

D 程序行

3..以下说法中正确的是C

A C语言程序总是从第一个定义的函数开始执行C;

B C语言程序中至少有一个main函数;

C C语言程序总是从main函数开始执行;

D C语言程序中的main函数必须放在程序的开始部分; 4.C源程序文件的扩展名为C A.exe B.txt

C.c D.obj 5..以下说法中正确的是D

A C源程序可以直接运行产生结果;

B C源程序经编译后才可直接运行产生结果;

C C源程序经连接后才可直接运行产生结果;

D C源程序经编译和连接后才可直接运行产生结果;

6.在C程序中,main()函数的位置是C A 必须作为第一个函数;

B 必须作为最后一个函数;

C 可以任意;

D 必须放在它所调用的函数之后;

7.以下叙述不正确的是D

A 一个C源程序可由一个或多个函数构成;

B 一个C源程序必须包含一个main函数;

C C程序的基本组成单位是函数;

D 在对一个C程序进行编译的过程中,可发现注释中的拼写错误;

8.C语言中,下列正确的叙述是D

A C程序中的关键字必须小写,其他标识符不区分大小写

B C程序中的所有字母都不区分大小写

C C程序中的所有字母都必须小写

D 所有的C语言关键字必须小写

9.要把高级语言编写的源程序转换为目标程序,需要使用D A 编辑程序

B 驱动程序

C 诊断程序

D 编译程序

10.以下叙述中错误的是 D

A C语言源程序经编译后生成后缀为.obj的目标程序

B C语言经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件

C 用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中

D C语言的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令

11.用C语言编写的代码程序B

A 可立即执行

B 是一个源程序

C 经过编译即可执行

D 经过编译解释才能执行

12.以下叙述中正确的是B

A C语言的源程序不必通过编译就可以直接运行

B C语言中的每条可执行语句最终都将被转换成二进制的机器指令

C C源程序经编译形成的二进制代码可以直接运行

D C语言中的函数不可以单独进行编译

13.以下叙述中正确的是A A 构成C程序的基本单位是函数

B 可以在一个函数中定义另一个函数

C main()函数必须放在其它函数之前

D 所有被调用的函数一定要在调用之前进行定义

14.能将高级语言源程序转换成目标程序的是C

A 调试程序

B 解释程序

C 编译程序

D 编辑程序

15.以下叙述中正确的是C

A C程序的基本组成单位是语句

B C程序中的每一行只能写一条语句

C 简单C语句必须以分号结束

D C语句必须在一行内写完

16.计算机能直接执行的程序是D

A 源程序

B 目标程序

C 汇编程序

D 可执行程序

17.在语言中,以下叙述不正确的是D A 一个C源程序可由一个或多个函数组成B 一个C源程序必须包含一个main函数

C C程序的基本组成单位是函数

D 在C程序中,注释说明只能位于一条语句的后面

18.C语言规定:在一个源程序中,main函数的位置C A 必须在最开始

B 必须在系统调用的库函数的后面

C 可以任意

D 必须在最后

19.一个C程序的执行是从A

A 本程序的main 函数开始,到main函数结束

B 本程序文件中的第一个函数开始,到本程序文件的最后一个函数结束

C 本程序的main 函数开始,到本程序文件的最后一个函数结束

D 本程序文件的第一个函数开始,到本程序main函数结束

20.下列叙述中错误的是A

A 主函数中定义的变量在整个程序中都是有效的。

B 在其它函数中定义的变量在主函数中也不能使用。

C 形式参数也是局部变量。

D 复合语句中定义的变量只在该复合语句中有效。

21.在函数的说明和定义时若没有指出函数的类型,则A A 系统自动地认为函数的类型为整型。

B 系统自动地认为函数的类型为字符型。

C 系统自动地认为函数的类型为实型。

D 编译时会出错。

22.下面叙述中正确的是C

A 对于用户自己定义的函数,在使用前必须加以说明。

B 说明函数时必须明确其参数类型和返回类型。

C 函数可以返回一个值,也可以什么值也不返回。

D 空函数不完成任何操作,所以在程序设计中没有用处。

23.下面正确的函数定义形式是A A double fun(int x,int y)

B double fun(int x;int y)C double fun(int x,int y);

D double fun(int x,y);

24.若调用一个函数,且此函数中没有return语句,则正确的说法是(D)该 函数:

A 没有返回值

B 返回若干个系统默认值;

C 能返回一个用户所希望的函数值;

D 返回一个不确定的值

25.下面说法中不正确的是(B)在C语言中

A 实参可以是常量、变量或表达式;

B 形参可以是常量、变量或表达式;

C 函数的参数是函数间传递数据的一种手段;

D 实参个数应与对应的形参个数相等,类型匹配;

26.C语言允许函数返回值类型缺省定义,此时该函数隐含的返回值类型是B A float型

B int 型

C long 型

D double型

27.C语言规定,函数返回值的类型是由D A return语句中的表达式类型所决定;

B 调用该函数时的主调函数类型所决定;

C 调用该函数时系统临时决定;

D 在定义该函数时所指定的函数类型所决定;

28下面函数调用语句含有实参的个数为(B)

func((exp1,exp2),(exp3,exp4,exp5));A 1 B 2 C 5 D 4

29.以下错误的描述是(D)函数的调用可以

A 出现在执行语句中;

B 出现在一个表达式中;

C 为一个函数的实参;

D 作为一个函数的形参;

30.下正确的说法是(A)。如果在一个函数中的复合语句中定义了一个变量,则该变量

A 只在该复合语句中有效

B 在该函数中有效

C 本程序中有效

D 为非法变量

31.以下不正确的说法是D

A 在不同函数中可以使用相同的名字的变量;

B 形式参数是局部变量;

C 在函数内定义的变量只在本函数范围内有效;

D 在函数内的复合语句中定义的变量在本函数范围内有效;

32.如果一个变量在整个程序运行期间都存在,但是仅在说明它的函数内是可见 的,这个变量的存储类型应该被说明为___ A _。

A 静态变量

B 动态变量

C 外部变量

D 内部变量 33.在一个C源程序文件中,•若要定义一个只允许在该源文件中所有函数使用的 变量,则该变量需要使用的存储类别是。D A extern B register C auto D static 34.在C语言中,函数的数据类型是指A A 函数返回值的数据类型

B 函数形参的数据类型

C 调用该函数时的实参的数据类型

D 任意指定的数据类型

35.已知如下定义的函数:

fun1(int a){ printf(“n%d”,a); } 则该函数的数据类型是_A___。

A 与参数a的类型相同

B void型

C 没有返回值

D 无法确定

36.有如下函数调用语句

func(rec1,rec2+rec3,(rec4,rec5));该函数调用语句中,含有的实参个数是A A 3 B 4 C 5 D 有语法错

37.以下所列的各函数首部中,正确的是C A void play(var :Integer,var b:Integer)B void play(int a,b)C void play(int a,int b)

D Sub play(a as integer,b as integer)38.以下正确的说法是B

A 用户若需调用标准库函数,调用前必须重新定义;

B 用户可以重新定义标准库函数,若如此,该函数将失去原有含义;

C 系统根本不允许用户重新定义标准库函数;

D 用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调;

39.函数用 return 语句返回计算 20!的结果,此函数的类型应说明为_D_____。

A int

B long

C unsigned long

D 其它三个答案都不对

40.若有以下程序

#include “stdio.h” void f(int n);main(){

void f(int n);

f(5);}

void f(int n){

printf(“%dn”,n);}

则以下叙述中不正确的是C

A 若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f

B 若在主函数前对函数f进行说明,则在主函数和其后的其它函数中都可以正确调用函数f C 对于以上程序,编译时系统会提示出错信息:提示对f函数重复说明

D 函数f无返回值,所以可用void将其类型定义为无值型

41.在C语言中,形参的缺省存储类是A A auto

B register

C static

D extern 42.以下叙述中错误的是 D

A C程序必须由一个或一个以上的函数组成 B 函数调用可以作为一个独立的语句存在 C 若函数有返回值,必须通过return语句返回

D 函数形参的值也可以传回对应的实参

43.在C语言中关于函数的正确叙述是B A 函数的定义和调用均可以嵌套

B 函数的定义不可以嵌套,但函数的调用可以嵌套

C 函数的定义和调用均不可以嵌套

D 函数的定义可以嵌套,但函数的调用不可以嵌套

44.有以下程序

int f1(int x,int y){return x>y?x:y;} int f2(int x,int y){return x>y?y:x;} main(){

int a=4,b=3,c=5,d=2,e,f,g;e=f2(f1(a,b),f1(c,d));f=f1(f2(a,b),f2(c,d));g=a+b+c+d-e-f;printf(“%d,%d%d ”,e,f,g);}

程序运行后的输出结果是(A)。

A 4,3,7

B 3,4,7

C 5,2,7

D 2,5,7 45.以下关于函数的叙述中正确的是B

A 每个函数都可以被其它函数调用(包括main函数)

B 每个函数都可以被单独编译

C 每个函数都可以单独运行

D 在一个函数内部可以定义另一个函数

46.设函数fun的定义形式为 void fun(char ch, float x){ „ } 则以下对函数fun的调用语句中,正确的是(D)。

A fun(“abc”,3.0);B t=fun(''D'',16.5);C fun(''65'',2.8);

D fun(32,32);

47.若程序中定义了以下函数 double myadd(double a,double B){ return(a+B)} 并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是(A)。

A double myadd(double a,B)

B double myadd(double,double);C double myadd(double b,double A)

D double myadd(double x,double y);

48.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是D A 函数调用可以作为独立的语句存在 B 函数调用可以作为一个函数的实参

C 函数调用可以出现在表达式中

D 函数调用可以作为一个函数的形参

49.有以下函数定义: void fun(int n, double x){ „„ } 若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是(C)。

A fun(int y,double m);

B k=fun(10,12.5);C fun(x,n);

D void fun(n,x);

50.有以下函数定义: void fun(int n, double x){ „„ } 若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是(C)。

A fun(int y,double m);B k=fun(10,12.5);C fun(x,n);

D void fun(n,x);

51.在一个C程序中B

A main函数必须出现在所有函数之前

B main函数可以在任何地方出现

C main函数必须出现在所有函数之后

D main函数必须出现在固定位置

52.有以下程序 int fl(int x,int y)

{ return x>y?x:y;}

int f2(int x,int y)

{ return x>y?y:x;}

main()

{ int a=4,b=3,c=5,d,e,f; d=f1(a,b);d=f1(d,c);e=f2(a,b);e=f2(e,c); f=a+b+c-d-e;printf(“%d,%d,%dn”,d,f,e);} 执行后输出结果是(C)。

A 3,4,5 B 5,3,4

C 5,4,3 D 3,5,4 53.以下叙述中正确的是B

A 全局变量的作用域一定比局部变量的作用域范围大

B 静态(static)类别变量的生存期贯穿于整个程序的运行期间

C 函数的形参都属于全局变量

D 未在定义语句中赋初值的auto变量和static变量的初值都是随机值

54.C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是B A void

B int

C float

D double 55.有以下程序

float fun(int x,int y){ return(x+y);} main()

{ int a=2,b=5,c=8;printf(“%3.0fn”,fun((int)fun(a+c,b),a-c));} 程序运行后的输出结果是(B)。

A 编译出错

B 9 C 21 D 9.0 56.以下函数值的类型是(A)。

fun(float x){ float y;y= 3*x-4;return y;} A int B 不确定 C void D float 57.下列叙述中正确的是D A C语言编译时不检查语法

B C语言的子程序有过程和函数两种

C C语言的函数可以嵌套定义

D C语言所有函数都是外部函数

58.以下程序的输出结果是(C)。

fun(int x, int y, int z){ z=x*x+y*y;} main(){ int a=31;fun(5,2,a);

printf(“%d”,a);}

A 0 B 29 C 31 D 无定值

59.有如下程序

int runc(int a,int b){ return(a+b);} main()

{ int x=2,y=5,z=8,r;r=func(func(x,y),z);printf(“%dn”,r);}

该程序的输出的结果是(D)。

A 12

B 13 C 14 D 15

60.以下叙述中不正确的是D A 在不同的函数中可以使用相同名字的变量 B 函数中的形式参数是局部变量

C 在一个函数内定义的变量只在本函数范围内有效

D 在一个函数内的复合语句中定义的变量在本函数范围内有效

61.有以下程序 viod fun(int a,int b,int c){ a=456;b=567;c=678;} main(){ int x=10,y=20,z=30;fun(x,y,z);printf(“%d,%d,%dn”,z,y,x);} 输出结果是(A)。

A 30,20,10 B 10,20,30 C 456,567,678 D 678,567,456 62.以下叙述中不正确的是C

a)A 在C中,函数中的自动变量可以赋初值,每调用一次,赋一次初值。

B 在C中,在调用函数时,实在参数和对应形参在类型上只需赋值兼容。

C 在C中,外部变量的隐含类别是自动存储类别。

D 在C中,函数形参可以说明为register变量。

63.若有以下函数调用语句: fun(a+b,(x,y),fun(n+k,d,(a,b)));在此函数调 用语句中实参的个数是A A 3

B 4

C 5

D 6

64.C语言中,函数的隐含存储类别是C A auto

B static

C extern D 无存储类别

65.以下说法中正确的是C

A C语言程序总是从第一个的函数开始执行

B 在C语言程序中,要调用的函数必须在main()函数中定义

C C语言程序总是从main()函数开始执行

D C语言程序中的main()函数必须放在程序的开始部分

66.下面说法中不正确的是D A 全局变量一定是外部变量

B 局部变量一定是内部变量。

C 全局变量作为函数间传递数据的手段时,与文件的作用类似,都是通过共享某种资源来传递数据。

D 全局变量与局部变量不可以重名

67.C 语言允许函数返回值类型缺省定义,此时该函数返回值默认的类型是B a)A float 型

B int 型

C long 型

D double 型

68.关于流程控制语句,下列说法正确的一项是C A 一个自定义函数中的return语句只能出现一次;

B break语句只适用于几种循环语句格式,表示终止当前层的循环;

C 在循环体中遇到continue,表示结束本次循环,直接进行下次循环条件的判断;

D 在自定义函数的执行过程中,return语句可能被多次执行。

69.若有定义语句:char s[10]=“1234567”;,则strlen(s)的值是A A 7 B 8 C 9 D 10

70.若有定义:int x,*pb;则以下正确的赋值表达式是(C)

A *pb=&x;B pb=x;C pb=&x;D *pb=*x;71.执行以下程序后,a的值为

main()

{ int a,b,k=4,m=6,*p1=&k,*p2=&m;a=p1==&m;

b=(-*p1)/(*p2)+7;printf(“a=%dn”,a);printf(“b=%d”,b);} A -1 B 1 C 0 D 4

72.下面程序中调用scanf 函数给变量a输入数值的方法是错误的,其错误原因 是(B)main(){ int *p,q,a,b;p=&a;scanf(“%d”,*p);„„ }

A *p表示的是指针变量p的地址;

B *p表示的是变量a的值,而不是变量a的地址

C *p表示的是指针变量p的值

D *p只能用来说明p是一个指针变量

73.若有int k=2,*ptr1,*ptr2;且ptr1和ptr2均已指向变量k,下面不能正确 执行的语句是B

A k=*ptr1+*ptr2;B ptr2=k;

C ptr1=ptr2;

D k=*ptr1*(*ptr2);

74.若有语句int *point a=4;和point &a;下面均代表地址的一组选项是C A a,point,*&a

B &*a,&a,*point C *&point,*point,&a

D &a,&*point,point 75.若有说明:int *p,m=5,n;下面正确的程序段是D a)A p=&n;scanf(“%d”,&p);

B p=&n;scanf(“%d”,*p);C scanf(“%d”,&n);*p=n;

D p=&n;*p=m

76.下面能正确进行字符串赋值操作的是C A char s[5]={“ABCDE”};

B char s[5]={‘A’,’B’,’C’,’D’,’E’};C char *s s=“ABCDE”;D char *s;scanf(“%s”,s);77.设有下面的程序段:

char s[]=”china”;char *p;p=s;则下列叙述正确的是C A s和p完全相同

B 数组s中的内容和指针变量p中的内容相等

C *P与s[0]相等

D s数组长度和p所指向的字符串长度相等

78.下面程序段的运行结果是C

char *format=”%s,a=%d,b=%dn”;int a=1,b=10;a+=b;printf(format,”a+=b”,a,b);

A for,”a+=b”,ab

B format,”a+=b”

C a+=b,a=11,b=10

D 以上结果都不对

79.若有语句:char s1[]=”string”,s2[8],*s3,*s4=”string2”;则对库 函数strcpy()的正确调用是D A strcpy(s1,”string2”);B strcpy(s4,”string1”);C strcpy(s3,”string1”);

D strcpy(s2,s4);80.下面说明不正确的是D A char a[10]=”china”;

B char a[10],*p=a;p=”china”;C char *a;a=”china”;

D char a[10],*p;p=a=”china”;

81.语句while(!e);中的条件!e等价于A A e==0 B e!=0 C e!=1 D ~e 82.以下程序的输出结果是(C)

main()

{ int num=0;while(num

A 1,B 1,2,C 1,2,3,D 1,2,3,4, 83.以下程序段是(C)

x=-1;do

{ x=x*x;} while(!x);

A 死循环

B 循环执行两次

C 循环执行一次

D 有语法错误

84.以下不正确的描述是B

A break语句不能用于循环语句和switch语句外的其它语句

B 在switch语句中使用break语句或continue语句的作用相同

C 在循环语句中使用continue语句是为了结束本次循环

D 在循环语句中使用break语句是为了使流程跳出循环体

85.对于for(表达式1;;表达式3)可理解为B A for(表达式1;0;表达式3)B for(表达式1;1;表达式3)

C for(表达式1;表达式1;表达式3)D for(表达式1;表达式3;表达式3)86.C语言中D

A 不能使用do-whi1e语句构成的循环;

B do-while语句构成的循环必须用break语句才能退出;

C do-while语句构成的循环,当while语句中的表达式值为非零时结束循环;

D do-while语句构成的循环,当while语句中的表达式值为零时结束循环;

87.C语言中while和do-while循环的主要区别是A A do-while的循环体至少无条件执行一次

B while的循环控制条件比do-while的循环控制条件严格

C do-while允许从外部转到循环体内;

D do-while的循环体不能是复合语句;

88.若i为整型变量,则以下循环执行的次数是(B)

for(i=2;i==0;)printf(“%d”,i--);

A 无限次

B 0次

C 1次

D 2次

89.以下for 循环的执行次数是(C)

for(x=0,y=0;(y=123)&&(x

A 是无限循环

B 循环次数不定

C 执行4次

D 执行3次

90.下列循环语句中有语法错误的是D A while(x=y)5;

B while(0); C do 2;while(x==b);

D do x++ while(x==10);

91.有关语句for(;;);执行过程的描绘中,正确的是 C 92.A 不执行任何操作

B 空循环一次

C 无休止地执行循环体

D 上都不对

92.下面有关for循环的正确描述是D

A for循环只能用于循环次数已经确定的情况

B for循环是先执行循环体语句,后判定表达式

C 在for循环中,不能用break语句跳出循环体

D for循环体语句中,可以包含多条语句,但要用花括号括起来

93.与语句 while(!x);等价的语句是A

A while(x==0); B while(x!=0); C while(x!=1); D while(~x);

94.以下for循环是(D)

for(x=0,y=0;(y!=123)&&(x

A 无限循环 B 循环次数不定 C 执行4次 D 执行3次

95.下列关于switch语句和break语句的结论中,正确的是B A break语句是switch语句中的一部分

B 在switch语句中可以根据需要使用或不使用break语句

C 在switch语句中必须使用break语句

D switch语句是break语句的一部分

96.以下叙述中正确的B

A 调用printf函数时,必须要有输出项

B 使用putchar函数时,必须在之前包含头文件stdio.h

C 在C语言中,整数可以以十二进制、八进制或十六进制的形式输出

D 调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码

97.有以下程序段

int n,t=1,s=0;scanf(“%d”,&n);do{ s=s+t;t=t-2;}while(t!=n);

为使此程序段不陷入死循环,从键盘输入的数据应该是D。

A 任意正奇数

B 任意负偶数

C 任意正偶数

D 任意负奇数

98.若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)

s=a;

for(b=1;b

则与上述程序段功能等价的赋值语句是B A s=a+b;B s=a+c;C s=s+c;D s=b+c;99.有如下程序 B main()

{ int x=23;do

{ printf(“%d”,x--);} while(!x);}

该程序的执行结果是

A 321

B 23

C 不输出任何内容

D 陷入死循环

100.以下循环体的执行次数是(C)。main(){ int i,j;

for(i=0,j=1;i

A 3

B 2

C 1 D 0

101.以下不是死循环的语句为(A)

A for(y=1,x=1;x>=++y;x++)B for(;;x++)

C while(1){x++;} D for(i=10;;i--)

102.在C语言中,假定a和b为int型变量,则执行以下语句后b的值为D a=1;

b=10;

do {

b-=a;

a++;}

while(b--

A 9

B-2

C-1 D 8

103.在C语言中,以下的for循环()。

for(x=0,y=0;(y!=123)&&(x

A 是无限循环 B 循环次数不定 C 执行4次 D 执行3次

104.在TC中,与语句 “while(!x)” 等价的语句是(A)。

A while(x==0)

B while(x!=0)

C while(x!=1)

D while(~x)105.在C语言中,设已定义k为int整型变量,则有下面while循环执行(C)次。k=10;while(k==0)k=k-1;

A 10

B 无限

C 0

D 1

106.在C语言中,当do-while语句中的条件为(C)时,结束该循环。

A TURE

B 1

C 0

D 非0 107.下列说法中正确的是B

A 在程序中定义一个结构体类型,将为此类型分配存储空间。

B 结构体类型的成员名可与结构体以外的变量名相同。

C 结构体类型必须有名称。

D 结构体内的成员不可以是结构体变量。

108.当说明一个结构体变量时系统分配给它的内存是A A 各成员所需内存量的总和;

B 结构体中第一个成员所需的内存量;

C 成员中内存量最大者所需的容量;

D 结构体中最后一个成员所需 的内存量;

109.当说明一个共用体变量时系统分配给它的内存是C A 各成员所需内存量的总和;

B 第一个成员所需的内存量;

C 成员中内存量最大者所需的容量;

D 最后一个成员所需 的内存量;

110.设有以下说明语句

typedef struct { int n;char ch[8];}PER;

则下面叙述中正确的是B A PER 是结构体变量名

B PER是结构体类型名

C typedef struct 是结构体类型

D struct 是结构体类型名

111.以下选项中不能正确把cl定义成结构体变量的是B A typedef struct { int red;int green;int blue;} COLOR;COLOR cl;B struct color cl { int red;int green;int blue;};

C struct color { int red;int green;int blue;} cl;

D struct { int red;int green;int blue;} cl;112.设有如下定义:

struck sk { int a;float b;}data;int *p;

若要使P指向data中的a域,正确的赋值语句是(C)。A p=&a;

B p=data.a;

C p=&data.a;

D *p=data.a;113.设有以下说明语句

struct ex

{ int x float y;char z } example;则下面的叙述中不正确的是B A struct结构体类型的关键字

B example是结构体类型名

C x,y,z都是结构体成员名

D struct ex是结构体类型

114.有如下定义

struct person{char name[9];int age;};strict person cla[10]={“Johu”, 17, “Mary”, 18, “Adam 16,};

根据上述定义,能输出字母M的语句是 D A prinft(“%cn”,cla[3].mane);

B pfintf(“%cn”,cla[3].name[1]);

C prinft(“%cn”,cla[2].name[1]);

D printf(“%^cn”,cla[2].name[0]);

115.若程序中有下面的说明和定义

struct abc

{int x;char y;} struct abc s1,s2;则会发生的情况A A 编译出错

B 程序将顺利编译`连接`执行

C 能顺利通过编译`连接`但不能执行

D 能顺利通过编译`但连接出错

116.设有定义: struct complex

{ int real,unreal;} data1={1,8},data2;则以下赋值语句中错误的是B A data2=data1;B data2=(2,6);

C data2.real=data1.real;D data2.real=data1.unreal;

117.C语言中,逻辑“真”等价于C

A 大于零的数

B 大于零的整数

C 非零的数

D 非零的整数

118.C语言的 switch 语句中,case 后B A 只能为常量

B 只能为常量或常量表达式

C 可为常量及表达式或有确定值的变量及表达式

D 可为任何量或表达式

119.main()

Paul”, 19 “ { int a,b,d=241;a=d/100%9;b=(-1)&&(-1);

printf(“%d,%d”,a,b);}B

A 6,1

B 2,1

C 6,0

D 2,0

120.若有int x=10,y=20,z=30;以下语句执行后x,y,z的值是(B)

if(x>y)

z=x;x=y;y=z;

A x=10,y=20,z=30

B x=20,y=30,z=30 C x=20,y=30,z=10

D x=20,y=30,z=20

121.以下程序段的输出结果是B

int a=10,b=50,c=30; if(a>b)a=b; b=c; c=a;

printf(“a=%d b=%d c=%dn”,a,b,c);

A a=10 b=50 c=10

B a=10 b=30 c=10 C a=50 b=30 c=10

D a=50 b=30 c=50

122.已知int i=10;表达式“20-0

B 1 C 19

D 20

123.设有int i, j, k;则表达式i=1,j=2,k=3, i&&j&&k 的值为A A 1 B 2 C 3 D 0

124.逻辑运算符两侧运算对象的数据类型D A 只能是0或1

B 只能是0或非0正数

C 只能是整型或字符型数据

D 可以是任何类型的数据

125.能正确表示“当x的取值在[1,10]和[200,210]范围内为真,否则为假” 的表达式是C

A(x>=1)&&(x=200)&&(x

B(x>=1)||(x=200)||(x

C(x>=1)&&(x=200)&&(x=1)||(x=200)||(x

126.已知x=43,ch=’a’,y=0;则表达式(x>=y&&ch

B 1

C 语法错误

D 假

127.执行下列语句后a的值为B

int a=5,b=6,w=1,x=2,y=3,z=4;(a=w>x)&&(b=y>z);A 5

B 0

C 2

D 1

128.若w=1,x=2,y=3,z=4,则表达式w

129.设有int a=2,b;则执行b=a&&1;语句后,b的结果是B A 0

B 1

C 2

D 3

130.当a=5,b=2时,表达式a= =b的值为C

A 2

B 1

C 0

D 5 131.下列表达式中能表示a在0到100之间的B A a>0&a100)C 0

D!(a>0&&a

132.已知:int x,a,b;下列选项中错误的if语句是B A if(a=b)x++;B if(a

133.当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三 个选项含义不同,这个选项是(D)。

A k%2

B k%2==1

C(k%2)!=0

D!k%2==1

134.设有定义:int a=2,b=3,c=4;,则以下选项中值为0的表达式是A A(!a==1)&&(!b==0)B a

C a && b

D a||(b+b)&&(c-a)

135.以下4个选项中,不能看作一条语句的是D

A {;}

B a=0,b=0,c=0;

C if(a>0);

D if(b==0)m=1;n=2;136.以下非法的赋值语句是C

A n=(i=2,++i);

B j++;

C ++(i+1);

D x=j>0;

137.已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1 && y+z/2的值是D A 6

B 0

C 2

D 1 138.有如下程序

main0

{ int a=2,b=-1,c=2;if(a

该程序的输出结果是C A 0

B 1

C 2

D 3

139.能表示x为偶数的表达式是A

A x%2==0

B x%2==1 C x%2

D x%2!=0 140.下面的程序段中共出现了几处语法错误?C int a,b;

scanf(”%d“,a);b=2a;

if(b>0)printf(”%b“,b);

A 1 B 2 C 3 D 4

141.要打开一个已存在的非空文件”file“用于修改,选择正确的语句_D_

A fp=fopen(”file“, ”r“);

B fp=fopen(”file“, ”a+“);

C fp=fopen(”file“, ”w“);

D fp=fopen(”file“, ”r+“);

142.fscanf函数的正确调用形式是。D

A fscanf(文件指针, 格式字符串, 输出列表); B fscanf(格式字符串, 输出列表, 文件指针); C fscanf(格式字符串, 文件指针, 输出列表); D fscanf(文件指针, 格式字符串, 输入列表); 143.若要打开A盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是B A fopen(”A:userabc.txt“,”r“)B fopen(”A:userabc.txt“,”r+“)C fopen(”A:userabc.txt“,”rb“)D fopen(”A:userabc.txt“,”w“ 144.以下叙述中错误的C

A C语言中对二进制文件的访问速度比文本文件快

B C语言中,随机文件以二进制代码形式存储数据

C 语句 FILE fp;定义了一个名为fp的文件指针

D C语言中的文本文件以ASCII码形式存储数据

145.若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数 feof(fp)的值为A A 0 B 1 C-1

D 一个非0值

146.下列关于C语言数据文件的叙述中正确的是D

A 文件由ASCII码字符序列组成,C语言只能读写文本文件

B 文件由二进制数据序列组成,C语言只能读写二进制文件

C 文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件

D 文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件

147.以下叙述中不正确的是D

A C语言中的文本文件以ASCⅡ码形式存储数据

B C语言中对二进制文件的访问速度比文本文件快

C C语言中,随机读写方式不适用于文本文件

D C语言中,顺序读写方式不适用于二进制文件

148.以下叙述中错误的是D

A 二进制文件打开后可以先读文件的末尾,而顺序文件不可以

B 在程序结束时,应当用fclose函数关闭已打开的文件

C 在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据

D 不可以用FILE定义指向二进制文件的文件指针

149.若fp是指向某文件的指针,且已读到此文件末尾,则库函数feof(fp)的返回值是 C A EOF

B 0

C 非零值

D NULL

150.在C程序中,可把整型数以二进制形式存放到文件中的函数是A A fprintf函数

B fread函数

C fwrite函数

D fputc函数

151.使用fopen()以文本方式打开或建立可读可写文件,要求:若指定的文件不存在,则新建一个,并使文件指针指向其开头,若指定的文件存在,打开它,将文件指针指向其结尾。正确的”文件使用方式“描述是B 152.A ”r+“

B ”w+“

C ”a+“

D ”a“ 153.152.有以下程序

#include main(){ FILE *fp;char str[10];fp=fopen(”myfile.dat“,”w“);fputs(”abc“,fp);fclose(fp);fpfopen(”myfile.data“,”a++“);fprintf(fp,”%d“,28);rewind(fp);fscanf(fp,”%s“,str);puts(str);fclose(fp);}

程序运行后的输出结果是C

A abc

B 28bc

C abc28 D 因类型不一致而出错

153.在C语言中,以下哪个函数用于将字符输出到标准输出设备(A)

A putchar()

B open()

C read()

D getw()154.C语言中用于结构化程序设计的三种基本结构是A A 顺序结构、选择结构、循环结构

B if、switch、break C for、while、do-while

D if、for、continue

155.已知i、j、k为int型变量,若从键盘输入:1,2,3,使i的值 为

1、j的值为

2、k的值为3,以下选项中正确的输入语句是C A scanf(“%2d%2d%2d”,&i,&j,&k);B scanf(“%d %d %d”,&i,&j,&k);C scanf(“%d,%d,%d”,&i,&j,&k);

D scanf(“i=%d,j=%d,k=%d”,&i,&j,&k);156.若有以下程序:

main()

{ int k=2,i=2,m;

m=(k+=i*=k);printf(“%d,%dn”,m,i);} 执行后的输出结果是(C)。

A 8,6

B 8,3

C 6,4

D 7,4

157.若有定义:int x,y;char a,b,c;并有以下输入数据(此处 代表换行 符,/u代表空格): 1u2 AuBuC

则能给x赋整数1,给y赋整数2,给a赋字符A,给b赋字符B,给c赋字符C 的正确程序段是D

A scanf(”x=%d y+%d“,&x,&y);a=getchar();b=getchar();c=getchar();B scanf(”%d %d“,&x,&y);a=getchar();b=getchar();c=getchar();C scanf(”%d%d%c%c%c,&x,&y,&a,&b,&c);

D scanf(“%d%d%c%c%c%c%c%c:&x,&y,&a,&a,&b,&b,&c,&c);158.有以下程序

#include main(){ char a,b,c,d;scanf(“%c%c”,&a,&b);c=getchar();d=getchar();printf(“%c%c%c%c ”,a,b,c,d);} 当执行程序时,按下列方式输入数据(从第1列开始,代表回车,注意:车也是一个字符)12 34 则输出结果是C

A 1234

B 12

C 123

D 1234 159.以下关于数组的描述正确的是C

A 数组的大小是固定的,但可以有不同的类型的数组元素;

B 数组的大小是可变的,但所有数组元素的类型必须相同;

C 数组的大小是固定的,但所有数组元素的类型必须相同;

D 数组的大小是可变的,但可以有不同的类型的数组元素;

160.在定义int a[10];之后,对a的引用正确的是A A a[9]

B a[6.3]

C a(6)

D a[10]

161.以下对一维数组a进行不正确初始化的是A A int a[10]=(0,0,0,0);B int a[10]={};C int a[]={0};

D int a[10]={10*2};

162.以下对字符数组进行不正确初始化的是A A static char word[]='cool';

B static char word[]={‘c’,’o’,’o’,’l’};C static char word[]={“cool”};D static char word[]=”cool”;

163.在执行char str[10]=”china”;strlen(str)的结果B A 5

B 6

C 7

D 9

164.在C语言中,引用数组元素时,其数组下标的数据类型允许是B A 整型常量

B 整型表达式或整型常量

C 实型常量

D 任何类型 的表达式

165.以下程序给数组所有的元素输入数据,空处应填入(C)

main()

{ int a[10],i=0;

while(i

int a=10,b=50,c=30; if(a>b)a=b; b=c; c=a;

printf(”a=%d b=%d c=%dn“,a,b,c);

A a=10 b=50 c=10

B a=10 b=30 c=10 C a=50 b=30 c=10

D a=50 b=30 c=50

166.有字符数组a[80],b[80],则正确的输出语句是D A puts(a,b);

B printf(“%s,%s”,a[],b[]);C putchar(a,b);

D puts(a);puts(b);

167.以下能正确定义字符串的语句是 D

A char str[]={'64'};

B char str=”x43“;

C char str=”;

D char str[]=“”;

168.以下数组定义中正确的是 D A int x[][3]={0};

B int x[2][3]={{1,2},{3,4},{5,6}};

C nt x[][3]={{1,2,3},{4,5,6}};

D int x[2][3]={1,2,3,4,5,6};

169.要说明一个有10个int元素的数组,应当选择语句A A int a[10] B int a[2,5] C int a[ ] D int *a[10] 170.已知: int a[10];则对a数组元素引用正确的是D A a[10] B a[3.5] C a(5)D a[10-10]

171.已有定义:char a[]=“xyz”,b[]={''x'',''y'',''z''};,以下叙述中正确的是 C A 数组a和b的长度相同

B a数组长度小于b数组长度

C a数组长度大于b数组长度

D 上述说法都不对

172.以下能正确定义一维数组的选项是B A int a[5]={0,1,2,3,4,5};B char a[]={0,1,2,3,4,5};C char a={''A'',''B'',''C''};D int a[5]=“0123”;

173.假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是D

A 3

B 6

C 10

D 20

174.执行下面的程序段后,变量k中的值为(A)。

int k=3, s[2];s[0]=k;k=s[1]*10;

A 不定值

B 33

C 30

D 10

175.设有数组定义: char array [ ]=“China”;数组 array所占的空间为C A 4个字节

B 5个字节

C 6个字节

D 7个字节

176.下列描述中不正确的是C A 字符型数组中可以存放字符串

B 可以对字符型数组进行整体输入、输出 C 可以对整型数组进行整体输入、输出

D 不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值

177.给出以下定义: char x[ ]=“abcdefg”;

char y[ ]={''a'',''b'',''c'',''d'',''e'',''f'',''g''};则正确的叙述为C A 数组X和数组Y等价

B 数组x和数组Y的长度相同

C 数组X的长度大于数组Y的长度

D 数组X的长度小于数组Y的长度

178.定义如下变量和数组: int i;

int x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是

for(i=0;i

A 1 5 9

B 1 4 7

C 3 5 7

D 3 6 9

179.以下一维数组a 的正确定义是D A int a(10);

B float n=10,a[n];C int n;scanf(“%d”,&n);float a[n];D #define size 10;long a[size];180.合法的数组定义是D A int a[]=“string”;

B int a[5]={0,1,2,3,4,5};C vhst s=“string”;

D char a[]={0,1,2,3,4,5};

181.下列选项中,能正确定义数组的语句是D A int num[0..2008];B int num[];

C int N=2008;int num[N];D

#define N 2008 int num[N];

182.在C语言中,能实现字符串连接的函数是A A strcat()B strcmp()C strcpy()

D strlen()

183.在C语言中,定义数组int a[7]={3,4,5,6,7,8,9},则a[5]的值为D A 9 B 6 C 7 D 8

184.在C语言中,定义int a[12]={1,2,3,4,5,6,7,8,9,10,11,12},i=5,则 下列选项中不能正确引用数组元素的是A A a[2*i-12]

B a[2*i-2] C a[12-i]

D a[2*i]

185.在C语言中,定义 char a[]={'a','b','l','l','o'},已知字符'b'的 ASCII码为98,则 printf(“%dn”,a[0]);的值为A A 97

B a

C 98

D b 186.在C语言中,有以下定义:char

b[10]={''h'',''n'',''s'',''p'',''k'',''s''};,则语句

printf(“%cn”,b[1]);的结果为B A h

B n

C s

D p

187.在C语言中,定义数组int a [12]={1,2,3,4,5,6,7,8,9,10,11,12},则a[3]的值B A 3

B 4

C 5

D 6

188.在C语言中,有以下程序main(){int p[8]={11,12,13,14,15,16,17,18},i=0,j=0;while(i

B 45

C 56

D 60

189.在C语言中,若有定义:int y=3,x[7]={1,2,3,4,5,6,7},则表达式y+=x[2]的值为A A 6

B 5

C 8

D 9

190.在C语言中,若有定义:int y=5,x[7]={1,2,3,4,5,6,7},则表达式y+=x[6]的值为D A 9

B 10

C 11

D 12

191.字符型常量在内存中存放的是A

A ASCⅡ 代码

B BCD 代码

C 内部码

D 十进制码

192.下列运算符中,结合方向为自左向右的是B A ? :

B ,C +=

D ++ 193.在C语言中运算对象必须是整型的运算符是A A %

B!

C /

D * 194.下列关于C语言的叙述错误的是A A 大写字母和小写字母的意义相同

B 不同类型的变量可以在一个表达式中 C 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型

D 同一个运算符号在不同的场合可以有不同的含义

195.在C语言中,错误的int类型的常数是A

A 32768

B 0

C 037

D 0xAF 196.C语句x*=y+2;还可以写成C

A x=x*y+2;

B x=2+y*x;C x=x*(y+2);

D x=y+2*x;

197.如果有整型变量x,浮点型变量y,双精度型变量z,则表达式y*z+x+y执 行后的类型为 A

A 双精度

B 浮点型

C 整型

D 逻辑型

198.设C语言中,一个int 型数据在内存中占2个字节,则unsigned int 型 数据的取值范围是C

A 0—255

B 0—32767

C 0—65535

D 0--2147483647 199.以下说法不正确的D

A 在C程序中,逗号运算符的优先级最低;

B 在C程序中,aph和aPh是两个不同的变量;

C 若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变;

D 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数;

200.设有float x;则x是__B__变量。

A 整型

B 实型

C 字符型

D 长型

201.若变量已正确定义并赋值,下面符合C语言语法的表达式是B A a:=b+1

B a=b=c+2

C int 18.5%3

D a=a+7=c+b

202.若有float x,y;则以下不合法的语句是B A ++x;

B y=(x%2)/10;C x*=y+8;D x=y=10;

203.不合法的十六进制数是A A oxff B 0xabc C 0x11 D 0xbeef

204.现有 #define N 3;的宏定义,执行语句 i=N*3 后,i的值是C A 3

B 6

C 9

D 其它三个答案都不对

205.turbo c中int类型变量所占字节数是B A 1

B 2

C 3

D 4

206.正确的合法的定义变量的语句是B A int ab_=086;

B int _ab=0xE8 C char a-b=‘1’;D float a3.b; 207.以下选项中不属于C语言的类型的是D A signed short int B unsigned long int C unsigned int D long short

208.以下叙述中错误的是 D

A C程序中的#include和#define行均不是C语句

B 除逗号运算符外,赋值运算符的优先级最低

C C程序中,j++;是赋值语句

D C程序中,+、-、*、/、%号是算术运算符,可用于整型和实型数的运算

209.正确的字符串常量是A

A “ABCD”

B {ABCD}

C ‘ABCD’

D ABCD 210.以下选项中属于C语言的数据类型是C

A 复数型

B 逻辑型

C 双精度型

D 集合型

211.以下运算符中优先级最低的运算符是D A &&

B &

C ||

D = 212.以下叙述中错误的是A

A 用户所定义的标识符允许使用关键字

B 用户所定义的标识符应尽量做到“见名知意”

C 用户所定义的标识符必须以字母或下划线开头

D 用户定义的标识符中,大、小写字母代表不同标识

213.设有以下定义 int a=0;double b=1.25;char c=’A’;#define d 2 则下面语句中错误的是D

A a++;

B b++

C c++;

D d++;214.下列关于单目运算符++、--的叙述中正确的是D A 它们的运算对象可以是任何变量和常量

B 它们的运算对象可以是char型变量和int型变量,但不能是float型变量

C 它们的运算对象可以是int型变量,但不能是double型变量和float型变量

D 它们的运算对象可以是char型变量、int型变量和float型变量

215.以下选项中合法的实型常数是C A 5E2.0

B E-3

C.2E0

D 1.3E

216.已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示的字符常量‘101’为A

A 字符A

B 字符a

C 字符e

D 非法的常量

217.以下选项中合法的字符常量是B A “B”

B ‘10’

C 68

D D

218.若变量a、i已正确定义,且i已正确赋值,合法的语句是B A a==1

B ++i;

C a=a++=5;

D a=int(i);

219.以下选项中合法的字符常量是B A “B”

B ‘10’ C 68

D D

220.C语言提供的合法的数据类型关键字是B A Double

B short C integer D Char 221.在C语言中,合法的长整型常数是B

A 0

B 04962710

C 0.054838743

D 2.1869e10 222.表达式(int)2.5的值是A

A 2

B 3

C 0

D 2.5

223.以下选项中不能作为C语言合法常量的是A

A 'cd'

B 0.1e+6

C “a”

D '11'

224.在TC中,已知: int x=10, y=3 , z;则下列语句的输出结果是 C printf(“%dn”, z=(x%y,x/y));

A 1

B 0

C 3

D 4

225.若变量a、i已正确定义,且i已正确赋值,合法的语句是(B)。

A a==1

B ++i;C a=a++=5;D a=int(i);

226.设有说明语句:char a=’72’;则变量a为A A 包含1个字符

B 包含2个字符

C 包含3个字符

D 说明不合法

《c语言选择题.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
c语言选择题
点击下载文档
相关专题 c语言选择题及答案 选择题 语言 c语言选择题及答案 选择题 语言
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文