一、单选题:(每题1.5分,共60分)
1、 C程序是( ) A. 顺序执行
B. 从Main函数开始 C. 从函数体开始 D. 任意语句 答案: B
2、 以下说法中正确的是( )。
A. C语言程序中是从第一定义的函数开始执行
B. 在C语言程序中,要调用的函数必须在main()函数中定义
C. C语言程序总是从main()函数开始执行
D. C语言程序中的main()函数必须放在程序的开始部分 答案: C
3、 算法的表示方法有________。 A. 自然语言,传统流程图,N-S流程图,伪代码,计算机语言
B. 高级语言,汇编语言,机器语言 C. C语言,QBASIC语言,InterDev D. 图形图像法,描述法,编程法 E. 计算机语言 答案: A
4、 以下选项中,非法的字符常量是( )
A. '\\t' B. '\\17' C. \ D. '\\xaa' 答案: C 5、 以下所列的C语言常量中,错误的是
A. 0xFF B. 1.2e0.5 C. 2L D. '\\72' 答案: B
6、 下列变量名合法的是( ) A. #1 B. $567
C. a-b
D. m_number 答案: D 7、 下面四个选项中,均是不正确的八进制数或十六进制数的选项是 A. 016 0x8f 018 B. 0abc 017 0xa C. 010 -0x11 0x16 D. 0a12 7ff -123 答案: D
8、 sizeof(float)是
A. 一个双精度型表达式 B. 一个整型表达式 C. 一种函数调用
D. 一个不合法的表达式 答案: B
9、 C语言中,double类型数据占( )个字节,char类型数据占( )个字节 A. 1 B. 2 C. 4
D. 8和1 答案: D
10、 当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是 A. c=b=a;
B. (a=c) ‖(b=c) ; C. (a=c) &&(b=c); D. a=c=b; 答案: C 11、 若已定义x和y为double型,则表达式:x=1,y=x+3/2的值是( ) A. 1 B. 2 C. 2.0 D. 2.5 答案: C 12、 执行语句x=(a=3,b=a--)后x,a,b的值为; A. 3 3 2 B. 3 2 2 C. 3 2 3 D. 2 3 2 答案: C
13、 语句
printf(\的输出结果是
A. a\\bre\\'hi\\'y\\\\\\bou B. a\\bre\\'hi\\'y\\bou C. re'hi'you
D. abre'hi'y\\bou 答案: C
14、 在下列运算符中,优先级别最高的是 A. <= B. = C. % D. && 答案: C
15、 若执行下面的程序时从键盘上输入3和4,则输出是 main() {
int a,b,s; a=3,b=4;
scanf(\s=a+b;
printf(\ printf(\}
A. 7,7 B. 7,5 C. 6,7 D. 7,6 答案: B
16、 两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是( )。
#include
{ int x;
seanf(”%d”,&x);
if(x++>5)printf(”%d”,x); else printf(”%d\n”,x--);} A. 7和5 B. 6和3 C. 7和4
D. 6和4 答案: A
17、 设a、b、C、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,
则逻辑表达式(m=a > b)&&(n=c > d)运算后,n的值为:
A. 0 B. 1 C. 2 D. 3 答案: C
18、 逻辑运算符两侧运算对象的数据类型
A. 只能是0或1
B. 只能是0或非0正数
C. 只能是整型或字符型数据 D. 可以是任何类型的数据 答案: D
19、 表示关系X < =Y < =Z的C语言表达式为________。
A. (X < =Y)&&(Y < =Z) B. (X < =Y)AND(Y < =Z) C. (X < =Y < =Z)
D. (X < =Y)&(Y < =Z) 答案: A
20、 判断字符型变量x是否是大写字母的正确的表达式______. A. 'A'<=x<='Z' B. (x>=A)&&(x<=Z)
C. ('A'<=x)&&('Z'=>x) D. (x>='A')&&(x<='Z') 答案: D
21、 有如下程序 main0
{ int x=1,a=0,b=0; switch(x){ case 0: b++; case 1: a++
case 2: a++;b++ }
printf(\}
该程序的输出结果是 A. a=2,b=1 B. a=1,b=1 C. a=1,b=0 D. a=2,b=2 答案: A
22、 已知 int x=10,y=20,z=30;以下语句执行后x,y,z的值是 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 答案: B
23、 以下程序的输出结果是 main()
{int a=100,x=10,y=20,ok1=5,ok2=0; if(x < y) if(y!=10) if(!ok1) a=1; else
if(ok2) a=10; a=-1;
printf(\ }
A. 1 B. 0 C. -1
D. 值不确定 答案: C
24、 i、j已定义为int类型,则以下程序段中内循环体的总的执行次数是 for (i=5; i; i--) for(j=0; j < 4; j++){?} A. 20 B. 24 C. 25 D. 30
答案: A
25、 以下程序的输出结果是
main( )
{ int x=10,y=10,i; for(i=0;x > 8;y=++i)
printf(\,%d \,x--,y); }
A. 10 1 9 2 B. 9 8 7 6 C. 10 9 9 0 D. 10 10 9 1 答案: D 26、 执行语句: for (i=1;i++ < 4;);后,变量i的值是______. A. 3 B. 4 C. 5 D. 不定 答案: C
27、 以下程序的输出结果是
{ int i,j,x=0; for(i=0;i < 2;i++) { x++;
for(j=0;j < 3;j++)
{ if(j%2) continue; x++; } x++ }
printf(\,x); }
A. x=4 B. x=8 C. x=6 D. x=12 答案: B
28、 有以下程序段 int k=0
while(k=1)k++;
while 循环执行的次数是 A. 无限次
B. 有语法错,不能执行 C. 一次也不执行 D. 执行1次 答案: A 29、 在while(x)语句中的x与下面条件表达式等价的是( )。 A. x==0 B. x==1 C. x!=0 D. x!=1 答案: C 30、 执行下面的程序段后,变量k中的值为
s[0]=k; k=s[1]*10; A. 不定值 B. 33 C. 30 D. 10 答案: A
31、 若有说明:int a[10];则对a数组元素的正确引用是 A. a[10] B. a[3,5] C. a(5)
D. a[10-10] 答案: D
32、 设有数组定义:
char array[]=”China”;,则数组array所占的空间为( )。 A. 4个字节 B. 5个字节 C. 6个字节 D. 7个字节 答案: C
33、 从下列选项中选择不会引起二义性的宏定义是( )。
A)#define POWER(X)X*X B)#define POWER(X)(X)*(X) C)#define POWER(X)(X*X) D)#define POWER(X)((X)*(X)) A. A B. B C. C D. D
答案: D
34、 在说明语句:int *f();中,标识符f代表的是
A. 一个用于指向整型数据的指针变量
B. 一个用于指向一维数组的行指针 C. 一个用于指向函数的指针变量 D. 一个返回值为指针型的函数名 答案: D 35、 若有说明:int i, j=2,*p=&i;,则能完成i=j赋值功能的语句是 A. i=*p; B. p*=*&j; C. i=&j; D. i=**p; 答案: D
36、 下面程序的输出是 main()
{ char x=040;
printf(\}
A. 100 B. 160 C. 120 D. 64 答案: D
37、 C语言中____函数的递归调用。 A. 允许 B. 不允许
C. 由用户自己而定 D. 不确定 答案: A
38、 关于建立函数的目的,以下正确的说法是
A. 提高程序的执行效率 B. 提高程序的可读性 C. 减少程序的篇幅
D. 减少程序文件所占内存 答案: B
39、 有如下函数调用语句
func(rec1,rec2+rec3,(rec4,rec5));
该函数调用语句中,含有的实参个数是
A. 3 B. 4 C. 5 D. 有语法错 答案: A 40、 以下函数 fff(float x) { printf(”%d\n”,x*x); } 的类型是( )。 A. 与参数x的类型相同 B. void类型 C. int类型 D. 无法确定 答案: C 填空题:(每题1.5分,共24分)
1、 在C语言中(以16位PC机为例),一个float型数据在内存中所占的字节数为_____;一个double型数据在内存中所占的字节数为_________ 答案: 4,8 2、 设有以下变量定义,并已赋确定的值 char w; int x; float y; double z; 则表达式:w*x+z-y所求得的数据类型为__________ 。 答案: double 3、 设x和y均为int型变量,且x=1,y=2,则以下表达式:0+x/y的值为___ 。 答案: 0 4、 若a是int型变量,则计算表达式后a的值为_______ a=25/3%3 答案: 2 5、 语句:x++;?++x; x=x+1;?x=l+x; ,执行后都使变量x中的值增1,请写出一条同一功能的赋值语句(不得与列举的相同) 答案: X+=1 6、 若变量已正确定义,以下语句段的输出结果是——。 x=0;y=2;z=3;
switch(x) { case O:switch(y==2) { case 1:printf(”*”);break; case 2:printf(”%”);break; } case 1:switch(z) { case 1:printf(”$”); case 2 t printf(”$”);break; d 答案: *# 7、 设x,y、z均为int型变量,请写出描述“x或Y中至少有一个小于Z”的表达式——。 答案: x
8、 已知char ch;则判断ch是英文字符的逻辑表达式是_______________ 答案: (ch<='z'&&ch>='a')||(ch<='Z'&&ch>='A') 9、 表示条件:10 < x < 100或x < 0的C语言表达式是________。
答案: (X > 10&&X < 100)|| X < 0 10、 请写出以下程序的输出结果——。 #include main() { int a=100: if(a>100) printf(”%d\n”,a>100); else pIintf(”%d\n”,a<=100);} 答案: ! && || 11、 下面程序的功能是:输出100以内能被3整除且个位数为6的所有整数,请填空。 #include < stdio.h >