一、单选题
1. 在C语言中,合法的长整型常数是
A) OL B) 4962710 C) 324562& D) 216D
A) For B) 4d C) f2_G3 D) WORD
3. 以下选项中合法的字符常量是
A)"B" B) '\010' C) 68 D) D
main()
{ int a=3;
printf("%d\n",a+(a-=a*a) );
}
A) -6 B)12 C) 0 D) -12
5. 设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
6. t为int类型,进人下面的循环之前,t的值为0
while( t=l )
{ ……}
则以下叙述中正确的是
A) 循环控制表达式的值为0 B) 循环控制表达式的值为1
C) 循环控制表达式不合法 D) 以上说法都不对
7. 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是
A) 地址传递 B) 单向值传递
C) 由实参传给形参,再由形参传回实参 D) 传递方式由用户指定
8. 以下程序的输出结果是
main()
{ int i, a[10];
for(i=9;i>=0;i- -) a[i]=10-i;
printf("%d%d%d",a[2],a[5],a[8]);
}
A) 258 B) 741 C) 852 D) 369
9. 以下选项中,不能正确赋值的是
A) char s1[10];s1="Ctest"; B) char s2[]={'C', 't', 'e', 's', 't'};
C) char s3[20]="Ctest"; D) char *s4="Ctest\n";
10. 以下程序的输出结果是
union myun
{ struct
{ int x, y, z; } u;
int k;
} a;
main()
{ a.u.x=4; a.u.y=5; a.u.z=6;
a.k=0;
printf("%d\n",a.u.x);
}
A77se)4 B) 5 C) 6 D) 0
11. 以下叙述正确的是
A) C语言比其他语言高级
B) C语言可以不用编译就能被计算机识别执行
C) C语言以接近英语国家的自然语言和数学语言作为语言的表达形式
D) C语言出现的最晚、具有其他语言的一切优点
12. C语言中用于结构化程序设计的三种基本结构是 A) 顺序结构、选择结构、循环结构 B) if、switch、break
C) for、while、do-while D) if、for、continue
13. 下列关于C语言用户标识符的叙述中正确的是
A) 用户标识符中可以出现下划线和中划线(减号)
B) 用户标识符中不可以出现中划线,但可以出现下划线
C) 用户标识符中可以出现下划线,但不可以放在用户标识符的开头
D) 用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头
14. 有以下程序段
int m=0,n=0; char c=’a’;
scanf("%d%c%d",&m,&c,&n);
printf("%d,%c,%d\n",m,c,n);
若从键盘上输入:10A10<回车>,则输出结果是:
A) 10,A,10 B) 10,a,10 C) 10,a,0 D) 10,A,0
15. 有以下程序
main()
{ int i;
for(i=0;i<3;i++)
switch(i)
{ case 1: printf("%d",i);
case 2: printf("%d",i);
default: printf("%d",i);
}}
执行后输出的结果是
A) 011122 B) 012 C) 012020 D) 120
16. 有以下程序
main()
{ int i=10,j=1;
printf("%d,%d\n",i--,++j);
}
执行后输出的结果是
A) 9,2 B) 10,2 C) 9,1 D) 10,1
17. 有以下程序
void f(int x,int y)
{ int t;
傅广生if(x<y){ t=x; x=y; y=t; }
}
main()
{ int a=4,b=3,c=5;
f(a,b); f(a,c); f(b,c);
printf("%d,%d,%d\n",a,b,c);
}
执行后输出的结果是
A) 3,4,5 B) 5,3,4 C) 5,4,3 D) 4,3,5
18. 有以下程序
main()
{ char *s[]={"one","two","three"},*p;
p=s[1];
printf("%c,%s\n",*(p+1),s[0]);
}
执行后输出结果是
A) n,two B) t,one C) w,one D) o,two
19. 有以下程序
main()
{ int m[][3]={1,4,7,2,5,8,3,6,9};
int i,k=2;
for(i=0;i<3;i++)
{ printf("%d ",m[k][i]); }
}
执行后输出结果是
A) 4 5 6 B) 2 5 8 C) 3 6 9 D) 7 8 9
20. 设有如下说明
typedef struct
{ int n; char c; double x;}STD;
则以下选项中 ,能正确定义结构体数组并赋初值的语句是
A) STD tt[2]={{1,’A’,62},{2,’B’,75}};
B) STD tt[2]={1,"A",62,2,"",75};
C) struct tt[2]={{1,’A’},{2,’B’}};
D) struct tt[2]={{1,"A",62.5},{2,"B",75.0}};
21. 以下选项中属于C语言的数据类型是
A)复数型 B)布尔型 C)集合型 D)整型
22. 一个C程序的执行是从
A)main()函数开始,直到main()函数结束
B)第一个函数开始,直到最后一个函数结束
C)第一个语句开始,直到最后一个语句结束
D)main()函数开始,直到最后一个函数结束
23. 设有语句int a=3;则执行语句a+=a-=a*a;后,变量a的值是
A)3 B)0 C)-12 D)9
24. 若有 char c[5]={'c','d','\0','e','\0'};则执行语句printf("%s",c);结果是
A)cd\0e B)'c''d' C)cd D)cd e
25. 已知:int a[2][3]={1,2,3,4,5,6}, (*p)[3]=a;下列表达式不是4的是
A)*(*p+3) B)*p+3 C)*(*(p+0)+3) D)a[0][3]
26. 以下有宏替换不正确的叙述
A)宏替换不占用运行时间 B)宏名无类型
C)宏替换只是字符串替换 D)宏名必须用大写字母表示
27. 执行char str[10]=”Ch\nina”; strlen(str)的值是
A)5 B)6 C)7 D)9
28. 下面程序的输出结果是
#define POWER(x) (x*x)
main()
{int i=4; printf("%d",POWER(i-2)); }
A)-9 B)-7 C)5 D)-6
29. 在定义int a[3][4];后,第和时间赛跑教学设计10个元素是
A)a[2][4] B)a[3][2] C)a[3][3] D)a[3][1]
30. 下面程序的输出结果是
typedef struct
{long x[2];
short y[4];
char z[8];
}MYTYPE;
MYTYPE a;
main()
{ printf("%d\n",sizeof(a));}
A)2 B)8 C)14 D)24
31. 以下能正确进行字符串赋值的是
A)char s[5]={‘a’,’e’,’神经皮肤黑变病I’,’o’,’u’} B)char s[5];s=”good”
C)char s[5]=”abcd” D)char s[5];s[]=”good”
32. 若有float x;则sizeof(x)和sizeof(float)两种描述
A)都正确 B)都不正确
C)前者正确,后者不正确 D)后者正确,前者不正确
33. 若有代数式3ae/(bc),则不正确的C语言表达式是
A)3*a*e/b*c B)3*a*e/b/c C)a/b/c*e*3 D)a*e/c/b*3
34. 下面程序的运行结果是
Main( )
{struct cmplx{ int x;
int y;
}cnum[2]={1,3,2,7};
Printf(“%d\n”,cnum[0].y/cnum[0].x*cnum[1].x);
}
A)0 B)1 C)3 D)6
35. 若有以下说明和语句,且0<=i<10,则( )是对数组元素的错误引用
int a[]={1,2,3,4,5,6,7,8,9,0},*p,i;
p=a;
A)*(a+i) B)a[p-a] C)p+i D)*(&a[i])
36. 设有以下宏定义:
#define M 2
#define X(m) ((M+2)*m)
则执行语句:z=2*(M+X(3+2));后,z的值为
A)44 B)45 C)32 D)33
37. 在如下程序段中的while循环
int k=0;
While(k=1) k++;
A)有语法错,不能执行 B)无限循环 C)一次都不执行 D)执行一次
38. 下列程序运行的结果为碳酸铵
#include<stdio.h>
Main()
英德市卫生局{ int k=0;
Char c=’A’;
Do
{switch(c++)
{ case ‘A’:k++;break;
Case ‘B’:k- -;break;
Case ‘C’:k+=2;break;
Case ‘D’:k=k%2;break;
Case ‘E’:k=k*10;break;
Default:k=k/3;