C语言 考试题库.docx

上传人:b****5 文档编号:4285425 上传时间:2022-11-28 格式:DOCX 页数:58 大小:37.40KB
下载 相关 举报
C语言 考试题库.docx_第1页
第1页 / 共58页
C语言 考试题库.docx_第2页
第2页 / 共58页
C语言 考试题库.docx_第3页
第3页 / 共58页
C语言 考试题库.docx_第4页
第4页 / 共58页
C语言 考试题库.docx_第5页
第5页 / 共58页
点击查看更多>>
下载资源
资源描述

C语言 考试题库.docx

《C语言 考试题库.docx》由会员分享,可在线阅读,更多相关《C语言 考试题库.docx(58页珍藏版)》请在冰豆网上搜索。

C语言 考试题库.docx

C语言考试题库

1.以下数据中,不正确的数值或字符常量是(A).

(A).c

(B).66

(C).0xaa

(D).50

2.设j和k都是int类型,则for循环语句:

for(j=0,k=0;j<=9&&k!

=876;j++)

scanf("%d",&k);(A)

(A).最多执行10次

(B).最多执行9次

(C).是无限循环

(D).循环体一次也不执行

3.chara1[]="abc",a2[80]="1234";将a1串连接到a2串后面的语句是(A).

(A).strcat(a2,a1);

(B).strcpy(a2,a1);

(C).strcat(a1,a2);

(D).strcpy(a1,a2);

4.以下正确的说法是:

在C语言中(A).

(A).实参和与其对应的形参各占用独立的存储单元

(B).实参和与其对应的形参共占用一个存储单元

(C).只有当实参和与其对应的形参同名时才共占用存储单元

(D).形参是虚拟的,不占用存储单元

5.下列字符序列中,是C语言保留字的是(A).

(A).sizeof

(B).include

(C).scanf

(D).sqrt

6.以下选项中,与k=n++完全等价的表达式是(A).

(A).k=n,n=n+1

(B).n=n+1,k=n

(C).k=++n

(D).k+=n+1

7.在位运算中,操作数每左移一位,其结果相当于(A).

(A).操作数乘以2

(B).操作数除以2

(C).操作数除以4

(D).操作数乘以4

8.以下程序的运行结果是(A).

main()

{intn;

for(n=1;n<=10;n++)

{

if(n%3==0)continue;

printf("%d",n);

}

}

(A).12457810

(B).369

(C).12

(D).1234567890

9.inta=1,b=2,c=3;if(a>b)a=b;if(a>c)a=c;则a的值为(A).

(A).1

(B).2

(C).3

(D).不一定

10.下列定义数组的语句中正确的是(A).

(A).#definesize10charstr1[size],str2[size+2];

(B).charstr[];

(C).intnum['10'];

(D).intn=5;inta[n][n+2];

11.C语言中运算对象必须是整型的运算符是(A).

(A).%=

(B)./

(C).=

(D).〈=

12.C语言中while和do-while循环的主要区别是(A).

(A).do-while的循环体至少无条件执行一次

(B).while的循环控制条件比do-while的循环控制条件更严格

(C).do-while允许从外部转到循环体内

(D).do-while的循环体不能是复合语句

13.16.在C语言中,形参的缺省存储类别是(A).

(A).auto

(B).register

(C).static

(D).extern

14.从键盘上输入某字符串时,不可使用的函数是(A).

(A).getchar()

(B).gets()

(C).scanf()

(D).fread()

15.以下数据中,不正确的数值或字符常量是(A).

(A).8.9e1.2

(B).10

(C).0xff00

(D).82.5

16.以下不是无限循环的语句为(A).

(A).for(y=0,x=1;x>++y;x=i++)i=x;

(B).for(;;x++=i);

(C).while

(1){x++;}

(D).for(i=10;;i--)sum+=i;

17.while(fabs(t)<1e-5)if(!

s/10)break;循环结束的条件是(A).

(A).t>=1e-5&&t<=-1e-5

(B).fabs(t)<1e-5&&!

s/10

(C).fabs(t)<1e-5

(D).s/10==0

18.以下叙述中正确的是(A).

(A).构成C程序的基本单位是函数

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

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

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

19.函数rewind的作用是(A).

(A).使位置指针重新返回文件的开头

(B).将位置指针指向文件中所要求的特定位置

(C).使位置指针指向文件的末尾

(D).使位置指针自动移至下一个字符位置

20.C语言程序中,当调用函数时(A).

(A).实参和虚参各占一个独立的存储单元

(B).实参和虚参可以共用存储单元

(C).可以由用户指定是否共用存储单元

(D).计算机系统自动确定是否共用存储单元

21.当定义一个结构体变量时,系统分配给它的内存是(A).

(A).各成员所需内存量的总和

(B).结构中第一个成员所需内存量

(C).结构中最后一个成员所需内存量

(D).成员中占内存量最大者所需的容量

22.下列变量定义中合法的是(A).

(A).short_a=1-.1e-1;

(B).doubleb=1+5e2.5;

(C).longdo=0xfdaL;

(D).float2_and=1-e-3;

23.若有说明语句:

charc='\72';则变量c(A).

(A).包含1个字符

(B).包含2个字符

(C).包含3个字符

(D).说明不合法,c的值不确定

24.结构体类型的定义允许嵌套是指(A).

(A).成员是已经或正在定义的结构体型

(B).成员可以重名

(C).结构体型可以派生

(D).定义多个结构体型

25.先用语句定义字符型变量c,然后要将字符a赋给c,则下列语句中正确的是(A).

(A).c='a';

(B).c="a";

(C).c="97";

(D).C='97'

26.下列数组说明中,正确的是(A).

(A).staticcharstr[]="China";

(B).staticcharstr[];str="China";

(C).staticcharstr1[5],str2[]={"China"};str1=str2;

(D).staticcharstr1[],str2[];str2={"China"};strcpy(str1,str2);

27.若有int*p=(int*)malloc(sizeof(int));则向内存申请到内存空间存入整数123的语句为(A).

(A).scanf("%d",p);

(B).scanf("%d",&p);

(C).scanf("%d",*p);

(D).scanf("%d",**p);

28.以下叙述中正确的是(A).

(A).C程序中注释部分可以出现在程序中任意合适的地方

(B).花括号"{"和"}"只能作为函数体的定界符

(C).构成C程序的基本单位是函数,所有函数名都可以由用户命名

(D).分号是C语句之间的分隔符,不是语句的一部分

29.执行下面程序后,输出结果是(A).

main()

{inta=45,b=27,c=0;

c=max(a,b);

printf("%d\n",c);

}

intmax(intx,inty)

{intz;

if(x>y)z=x;

elsez=y;

return(z);

}

(A).45

(B).27

(C).18

(D).72

30.设有以下语句,若0

charstr[4][2]={"aaa","bbb","ccc","ddd"},*strp[4];

intj;

for(j=0;j<4;j++)

strp[j]=str[j];

(A).strp

(B).str[k]

(C).strp[k]

(D).*strp

31.9以下语句中,循环次数不为10次的语句是(A).

(A).for(i=1;i<10;i++);

(B).i=1;do{i++;}while(i<=10);

(C).i=10;while(i>0){--i;}

(D).i=1;m:

if(i<=10){i++;gotom;}

32.14以下不能正确进行字符串赋初值的语句是(A).

(A).charstr[5]="good!

";

(B).charstr[]="good!

";

(C).char*str="good!

";

(D).charstr[5]={'g','o','o','d'};

33.18若有double*p,x[10];inti=5;使指针变量p指向元素x[5]的语句为(A).

(A).p=&x[i];

(B).p=x;

(C).p=x[i];

(D).p=&(x+i)

34.C语言的if语句嵌套时,if与else的配对关系是(A).

(A).每个else总是与它上面的最近的并且尚未与其他else匹配的if配对

(B).每个else总是与最外层的if配对

(C).每个else与if的配对是任意的

(D).每个else总是与它上面的if配对

35.16以下正确的函数定义形式是(A).

(A).doublefun(intx,inty)

(B).doublefun(intx;inty)

(C).doublefun(intx,inty);

(D).doublefun(intx,y);

36.18经过下列的语句intj,a[10],*p;定义后,下列语句中合法的是(A)

(A).p=a+2;

(B).p=a[5];

(C).p=a[2]+2;

(D).p=&(j+2);

37.17enuma{sum=9,mon=-1,tue};2chara[]="Thisisaprogram.";输出前5个字符的语句是(A).

(A).printf("%.5s",a);

(B).puts(a);

(C).printf("%s",a);

(D).a[5*2]=0;puts(a);

选择题B篇

38.C语言源程序的基本单位是(B).

(A).过程

(B).函数

(C).子程序

(D).标识符

39.下列程序的输出结果是(B).

main()

{charc1=97,c2=98;

printf("%d%c",c1,c2);

}

(A).9798

(B).97b

(C).a98

(D).ab

40.下列四个选项中,均是C语言关键字的选项是(B).

(A).autoenuminclude

(B).switchtypedefcontinue

(C).signedunionscanf

(D).ifstructtype

41.以下能对二维数组a进行正确初始化的语句是(B).

(A).inta[2][]={{1,0,1},{5,2,3}};

(B).inta[][3]={{1,2,3},{4,5,6}};

(C).inta[2][4]={{1,2,3},{4,5},{6}};

(D).inta[][3]={{1,0,1}{},{1,1}};

42.以下对枚举类型名的定义中正确的是(B).

(A).enuma={sun,mon,tue};

(B).enuma{sun=9,mon=-1,tue};

(C).enuma={"sun","mon","tue"};

(D).enuma{"sun","mon","tue"};

43.以下选项中合法的用户标识符是(B).

(A).long

(B)._2Test

(C).3Dmax

(D).A.dat

44.以下叙述中正确的是(B).

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

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

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

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

45.以下叙述中不正确的是(B).

(A).一个好的程序应该有详尽的注释

(B).在C程序中,赋值运算符的优先级最低

(C).在C程序中,j++;是一条赋值语句

(D).C程序中的#include和#define均不是C语句

46.若有以下程序段:

inta=3,b=4;a=a^b;b=b^a;a=a^b;则执行以上语句后,a和b的值分别是(B).

(A).a=3,b=4

(B).a=4,b=3

(C).a=4,b=4

(D).a=3,b=3

47.9.假定所有变量均已正确定义,下列程序段运行后x的值是(B).

k1=1;

k2=2;

k3=3;

x=15;

if(!

k1)x--;

elseif(k2)x=4;

elsex=3;

(A).14

(B).4

(C).15

(D).3

48.给数组a的所有元素分别赋值为1、2、3、……的语句是(B).

(A).for(i=1;i<11;i++)a[i]=i;

(B).for(i=1;i<11;i++)a[i-1]=i;

(C).for(i=1;i<11;i++)a[i+1]=i;

(D).for(i=1;i<11;i++)a[0]=1;

49.C语言中不可以嵌套的是(B).

(A).函数调用

(B).函数定义

(C).循环语句

(D).选择语句

50.inta[10]={1,2,3,4,5,6,7,8};int*p;p=&a[5];p[-3]的值是(B)

(A).2

(B).3

(C).4

(D).不一定

51.若k为int型变量,则以下程序段的执行结果是(B).

k=-8567;printf("|%06D|\n",k);

(A).格式描述符不合法,输出无定值

(B).输出为|%06D|

(C).输出为|0-8567|

(D).输出为|-8567|

52.fseek函数的正确调用形式是(B).

(A).fseek(文件类型指针,起始点,位移量)

(B).fseek(fp,位移量,起始点)

(C).fseek(位移量,起始点,fp)

(D).fseek(起始点,位移量,文件类型指针)

53.下列表达式中,可作为C合法表达式的是(B).

(A).[3,2,1,0]

(B).(3,2,1,0)

(C).3=2=1=0

(D).3/2/1/0

54.以下程序的输出结果为(B).

main()

{inta=1,b=2,c=3,d=4,e=5;

printf("%d\n",func((a+b,b+c,c+a),(d+e)));

}

intfunc(intx,inty)

{

return(x+y);

}

(A).15

(B).13

(C).9

(D).函数调用出错

55.以下标识符中,不能作为合法的C用户定义标识符的是(B).

(A).a3_b3

(B).void

(C)._123

(D).IF

56.假设所有变量均为整型,表达式:

a=2,b=5,a>b?

a++:

b++,a+b的值是(B).

(A).7

(B).8

(C).9

(D).2

57.以下程序段的输出结果为(B).

for(i=4;i>1;i--)

for(j=1;j

putchar('#');

(A).无

(B).######

(C).#

(D).###

58.设C语言中,int类型数据占2个字节,则unsigned类型数据占(B).

(A).1个字节

(B).2个字节

(C).4个字节

(D).8个字节

59.对for(表达式1;;表达式3)可理解为(B).

(A).for(表达式1;0;表达式3)

(B).for(表达式1;1;表达式3)

(C).for(表达式1;表达式1;表达式3)

(D).for(表达式1;表达式3;表达式3)

60.C语言中,定义结构体的保留字是(B).

(A).union

(B).struct

(C).enum

(D).typedef

61.设C语言中,int类型数据占2个字节,则short类型数据占().B

(A).1个字节

(B).2个字节

(C).4个字节

(D).8个字节

62.对for(表达式1;;表达式3)可理解为(B).

(A).for(表达式1;0;表达式3)

(B).for(表达式1;1;表达式3)

(C).for(表达式1;表达式1;表达式3)

(D).for(表达式表达式3;表达式3)

63.C语言允许函数类型缺省定义,此时函数值隐含的类型是().B

(A).float

(B).int

(C).long

(D).double

64.若有inta[][2]={{1,2},{3,4}};则*(a+1),*(*a+1)的含义分别为(B).

(A).非法,2

(B).&a[1][0],2

(C).&a[0][1],3

(D).a[0][0],4

65.以下叙述正确的是(B).

(A).可以把define和if定义为用户标识符

(B).可以把define定义为用户标识符,但不能把if定义为用户标识符

(C).可以把if定义为用户标识符,但不能把define定义为用户标识符

(D).define和if都不能定义为用户标识符

66.sizeof(float)是(B).

(A).一个双精度型表达式

(B).一个整型表达式

(C).一种函数调用

(D).一个不合法的表达式

67.对for(表达式1;;表达式3)可理解为(B).

(A).for(表达式1;0;表达式3)

(B).for(表达式1;1;表达式3)

(C).for(表达式1;表达式1;表达式3)

(D).for(表达式1;表达式3;表达式3)

68.若有说明:

inti,j=2,*p=&i;,则能完成i=j赋值功能的语句是(B).

(A).i=*p;

(B).*p=*&j;

(C).i=&j;

(D).i=**p;

69.下面四个选项中,均是不合法的浮点数的选项是(B).

(A).160.0.12e3

(B).1232e4.2.e5

(C).-.18123e40.0

(D).-e3.2341e3

70.在一个C程序中(B).

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

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

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

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

71.若二维数组a有m列,则在a[i][j]前的元素个数为(B).

(A).j*m+i

(B).i*m+j

(C).i*m+j-1

(D).i*m+j+1

72.若有下列定义,则对a数组元素地址的正确引用是(B).

inta[5],*p=a;

(A).&a[5]

(B).p+2

(C).a++

(D).&a

73.2下列字符序列中,不可用作C语言标识符的是(B).

(A).b70

(B).#ab

(C).symbol

(D).a_1

74.15以下不正确的说法是:

C语言规定(B).

(A).实参可以是常量,变量或表达式

(B).形参可以是常量,变量或表达式

(C).实参可以为任何类型

(D).形参应与其对应的实参类型一致

75.3下列数据中,为字符串常量的是(B).

(A).A

(B)."house"

(C).Howdoyoudo.

(D).$abc

76.17在位运算中,操作数每右移一位,其结果相当于(B).

(A).操作数乘以2

(B).操作数除以2

(C).操作数乘以16

(D).操作数除以16

77.以下所列的C语言常量中,错误的是(B).

(A).0xFF

(B).1.2e0.5

(C).2L

(D).'\72'

78.为了提高程序的运行速度,在函数中对于整型或指针可以使用(B)型的变量.

(A).auto

(B).register

(C).static

(D).extern

 

79.10inta=1,b=2,c=3;

if(a>c)b=a;a=c;c=b;则c的值为().B

(A).1

(B).2

(C).3

(D).不一定

80.以下不正确的定义语句是(B).

(A).doublex[5]={2.0,4.0,6.0,8.0,10.0};

(B).inty[5]={0,1,3,5,7,9};

(C).charc1[]={'1','2','3','4','5'};

(D).charc2[]={'\x10','\xa','\x8'};

81.C语言规定:

简单变量做实参时,它和对应形参之间的数据传递方式是(B).

(A).地址传递

(B).单向值传递

(C).由实参传给形参,再由形参传回给实参

(D).由用户指定的传递方式

82.以下程序的输出结果是(B).

main()

{chars[]="123",*p;

p=s;

printf("%c%c%c\n",*p++,*p++,*p++);

}

(A).123

(B).321

(C).213

(D).312

83.以下语句中,不能实现回车换行的是(B).

(A).printf("\n");

(B).putchar("\n");

(C).fprintf(stdout,"\n");

(D).fwrite("\n",1,1,stdout);

选择题C篇

84.设C语言中,int类型数据占2个字节,则long类型数据占(C).

(A).1个字节

(B).2个字节

(C).4个字节

(D).8个字节

85.以下叙述正确的是(C).

(A).在C程序中,main函数必须位于程序的最前面

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

(C).C语言本身没有输入输出语句

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

86.以下数值中,不正确的八进制数或十六进制数是(C).

(A).0x16

(B).016

(C).-16

(D).0xaaaa

87.已知x=43,ch='A',y=0;则表达式(x>=y&&ch<'B'&&!

y)的值是(C).

(A).0

(B).语法错

(C).1

(D).假

88.能将高级语言编写的源程序转换为目标程序的是(C).

(A).链接程序

(B).解释程序

(C).编译程序

(D).编辑程序

89.以下关于运算符优先顺序的描述中正确的是(C).

(A).关系运算符<算术运算符<赋值运算符<逻辑运算符

(B).逻辑运算符<关系运算符<算术运算符<赋值运算符

(C).赋值运算符<逻辑运算符<关系运算符<算术运算符

(D).算术运算符<关系运算符<赋值运算符<逻辑运算符

90.以下叙述中不正确的是(C).

(A).表达式a&=b等价于a=a&b

(B).表达式a|=b等价于a=a|b

(C).表达式a!

=b等价于a=a!

b

(D).表达式a^=b等价于a=a^b

91.12.以下不能对二维数组a进行正确初始化的语句是(C).

(A).int

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 金融投资

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1