一、选择题(每题1分,共40分)
1.以下叙述中错误的是【】。
(A)C语言编写的函数源程序,其文件名后缀可以是.C
(B)C语言编写的函数都可以作为一个独立的源程序
文件
(C)C语言编写的每个函数都可以进行独立的编译并
执行
(D)一个C语言程序只能有一个主函数
2.以下叙述正确的是【】。
(A)在C程序中,main函数必须位于程序的最前面
(B)C程序的每行中只能写一条语句
(C)C语言本身没有输入输出语句
(D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误
3.C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符【】。
(A)必须为字母(B)必须为下划线
(C)必须为字母或下划线
(D)可以是字母,数字和下划线中的任一种字符
4.下列形式的常数,C程序不允许出现的是【】。
(A)±123(B).45(C)25.6e-2(D)4e3
5.在C语言中,逻辑值"真"的表示是用【】。
(A)true(B)整型值0(C)非零整型值(D)T
6.设有说明:char w;int x;float y;double z;则表达式w*x+z-y值的数据类型为【】。
(A)float(B)char(C)int(D)double
7.下列运算符中,不属于关系运算符的是【】。
(A)=(C)!(D)!=
8.设x=3,y=2,则表达式x*=y+8的值为【】。
(A)3(B)2(C)30(D)10
9.若定义数组int a[10],其数组元素的下标下限为【】。
(A)1(B)0(C)9(D)10
10.设x=2.5,a=7,y=4.7,算术表达式
x+a%3*(int)(x+y)%2/4的值为【】。
(A)2.5(B)7(C)4.7(D) 2.75
11.C语言正确表达关系:X≥Y≥Z的是【】。
(A)(X>=Y)&&(Y>=Z)(B)(X>=Y)AND(Y>=Z)
(C)(X>=Y>=Z)(D)(X>=Y)&(Y>=Z)
12.已知int x=10,y=20,z=30,以下语句执行后
x,y,z的值是【】。
if(x>y)
z=x;x=y;y=z;
(A)x=10,y=10,z=30(B)x=20,y=30,z=30(C)x=20,y=30,z=10(D)x=20,y=30,z=20
13.若定义数组并初始化char a[]={"hello"},该数组的元素个数是【】。
(A)不知道(B)5(C)6(D)7
14.以下说法正确的是【】。
(A)输入项可以为一个实数常量,如
scanf(“%f”,3.5);
(B)只有格式控制,没有输入项,也能进行正确输入,如:scanf(“a=%d,b=%d”);
(C)当输入一个实型数据时,格式控制部分应规定小
数点后的位数,如:
scanf(“%4.2f”,&a);
(D)当输入数据时,必须指明变量的地址,如
scanf(“%f”,&a);
15.以下不正确的语句为【】。
(A)if(x>y);
(B)if(x=y)&&(x!=0)x+=y;
(C)if(x!=y)scanf(“%d”,&x);else
scanf(“%d”,&y);
(D)if(x16.下面程序段的运行结果是【】。int a=1,b=2,c=2,t;
while(a
printf(“%d,%d,%d”,a,b,c);
(A)1,2,0(B)2,1,0(C)1,2,1(D)2,1,1
17.以下能正确计算1*2*3*4*5*6*7*8*9*10的程序段是【】。
(A)do{(B)do{
i=1;s=1;i=1;s=0;
s=s*i;s=s*i;
i++;i++;
}while(i<=10);}while(i<=10); (C)i=1;s=1;(D)i=1;s=0;
do{do{
s=s*i;s=s*i;
i++;i++;
}while(i<=10);}while(i<=10);
18.若用数组名作函数调用的实参,传递给形参的是
【】。
(A)数组的首地址(B)数组第一个元素的值
(C)数组中全部元素的值(D)数组元素的个数
19.若有定义语句:int a=3,b=2,c=1;,以下选项中错误的赋值表达式是
(A)a=(b=4)=3(B)a=b=c+1(C)a=(b=4)+c(D)a=1+(b=c=4)