A)ACBDFEG B)ACBDFGE C)ABDCGEF D)FCADBEG 答案:A
11) 下列叙述中错误的是
A)一个C语言程序只能实现一种算法 B)C程序可以由多个程序文件组成
C)C程序可以由一个或多个函数组成 D)一个C函数可以单独作为一个C程序文件存在 答案:A
12) 下列叙述中正确的是
A)每个C程序文件中都必须要有一个main()函数 B)在C程序中main()函数的位置是固定的
C)C程序中所有函数之间都可以相互调用,与函数所在位置无关 D)在C程序的函数中不能定义另一个函数 答案:D
13) 下列定义变量的语句中错误的是
A)int _int; B)double int_; C)char For; D)float US$; 答案:D
14) 若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是 A)++x,y=x- B)x+1=y C)x=x+10=x+y D)double(x)/10 答案:A
15) 以下关于逻辑运算符两侧运算对象的叙述中正确的是 A)只能是整数0或1 B)只能是整数0或非0整数
C)可以是结构体类型的数据 D)可以是任意合法的表达式 答案:D
16) 若有定义int x,y; 并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++) : (y++)中的条件表达式(x-y) 等价的是
A)(x-y>0) B)(x-y<0) C)(x-y<0||x-y>0) D)(x-y==0) 答案:C
17) 有以下程序 main()
{ int x, y, z; x=y=1;
z=x++,y++,++y;
printf(\ }
程序运行后的输出结果是
A)2,3,3 B)2,3,2 C)2,3,1 D)2,2,1 答案:C
18) 设有定义:int a; float b; 执行 scanf(\语句时,若从键盘输入876 543.0<回车>,a和b的值分别是
A)876和543.000000 B)87和6.000000 C)87和543.000000 D)76和543.000000 答案:B
19) 有以下程序 main()
{ int a=0, b=0;
a=10; /* 给a赋值
b=20; 给b赋值 */ printf(\输出计算结果 */ }
程序运行后的输出结果是
A)a+b=10 B)a+b=30 C)30 D)出错 答案:A
20) 在嵌套使用if语句时,C语言规定else总是
A)和之前与其具有相同缩进位置的if配对 B)和之前与其最近的if配对 C)和之前与其最近的且不带else的if配对 D)和之前的第一个if配对 答案:C
21) 下列叙述中正确的是
A)break语句只能用于switch语句\\TAB B)在switch语句中必须使用default
C)break语句必须与switch语句中的case配对使用 D)在switch语句中,不一定使用break语句 答案:D
22) 有以下程序 main()
{ int k=5;
while(--k) printf(\ printf(\ }
执行后的输出结果是
A)1 B)2 C)4 D)死循环 答案:A
23) 有以下程序 main() { int i;
for(i=1; i<=40; i++) { if(i++%5==0)
if(++i%8==0) printf(\ }
printf(\ }
执行后的输出结果是
A)5 B)24 C)32 D)40 答案:C
24) 以下选项中,值为1的表达式是
A)1 –'0' B)1 - '\\0' C)'1' -0 D)'\\0' - '0' 答案:B
25) 有以下程序
fun(int x, int y){ return (x+y); } main()
{ int a=1, b=2, c=3, sum; sum=fun((a++,b++,a+b),c++); printf(\ }
执行后的输出结果是 A)6 B)7 C)8 D)9 答案:C
26) 有以下程序 main()
{ char s[]=\ s+=2;
printf(\ }
执行后的结果是
A)输出字符a的ASCII码 B)输出字符c的ASCII码 C)输出字符c D)程序出错 答案:D
27) 有以下程序
fun(int x, int y) { static int m=0, i=2;
i+=m+1; m=i+x+y; return m; }
main()
{ int j=1, m=1, k;
k=fun(j,m); printf(\ k=fun(j,m); printf(\ }
执行后的输出结果是
A)5, 5 B)5, 11 C)11, 11 D)11, 5 答案:B
28) 有以下程序 fun(int x) { int p;
if(x==0||x==1) return(3); p=x-fun(x-2); return p; }
main()
{ printf(\执行后的输出结果是 A)7 B)3 C)2 D)0 答案:C
29) 在16位编译系统上,若有定义int a[]={10,20,30}, *p=&a;,当执行p++;后,下列说法错误的是 A)p向高地址移了一个字节 B)p向高地址移了一个存储单元 C)p向高地址移了两个字节 D)p与a+1等价 答案:A
30) 有以下程序 main()
{ int a=1, b=3, c=5;
int *p1=&a, *p2=&b, *p=&c; *p =*p1*(*p2); printf(\ }
执行后的输出结果是 A)1 B)2 C)3 D)4 答案:C
31) 若有定义:int w[3][5]; ,则以下不能正确表示该数组元素的表达式是 A)*(*w+3) B)*(w+1)[4] C)*(*(w+1)) D)*(&w[0][0]+1) 答案:B
32) 若有以下函数首部
int fun(double x[10], int *n)
则下面针对此函数的函数声明语句中正确的是
A)int fun(double x, int *n); B)int fun(double , int ); C)int fun(double *x, int n); D)int fun(double *, int *); 答案:D
33) 若有定义语句:int k[2][3],*pk[3];,则以下语句中正确的是 A)pk=k; B)pk[0]=&k[1][2]; C)pk=k[0]; D)pk[1]=k; 答案:B
34) 有以下程序
void change(int k[ ]){ k[0]=k[5]; } main()
{ int x[10]={1,2,3,4,5,6,7,8,9,10},n=0; while( n<=4 ) { change( &x[n]) ; n++; } for(n=0; n<5; n++) printf(\ printf(\ }
程序运行后输出的结果是
A)6 7 8 9 10 B)1 3 5 7 9 C)1 2 3 4 5 D)6 2 3 4 5 答案:A
35) 若要求定义具有10个int型元素的一维数组a,则以下定义语句中错误的是 A)#define N 10 int a[N]; B)#define n 5 int a [2*n]; C)int a[5+5]; D)int n=10,a[n]; 答案:D
36) 有以下程序 main()
{ int x[3][2]={0}, i;
for(i=0; i<3; i++) scanf(\
printf(\ }
若运行时输入:2 4 6<回车>,则输出结果为
A)2 0 0 B)2 0 4 C)2 4 0 D)2 4 6 答案:B
37) 有以下程序 main()
{ char s[]={ \ ps=s; printf(\ }
程序运行后的输出结果是
A)a B)e C)u D)元素s[4]的地址 答案:B
38) 以下语句中存在语法错误的是
A)char ss[6][20]; ss[1]= \ C)char *ss[6]; ss[1]= \ 答案:A
39) 若有定义:char *x=\,以下选项中正确运用了strcpy函数的是 A)char y[10]; strcpy(y,x[4]); B)char y[10]; strcpy(++y,&x[1]);
C)char y[10],*s; strcpy(s=y+5,x); D)char y[10],*s; strcpy(s=y+1,x+1); 答案:D
40) 有以下程序
int add( int a,int b){ return (a+b); } main()
{ int k, (*f)(), a=5,b=10; f=add; ? }
则以下函数调用语句错误的是
A)k=(*f)(a,b); B)k=add(a,b); C)k= *f(a,b); D)k=f(a,b); 答案:C
41) 有以下程序
#include
main( int argc, char *argv[ ]) { int i=1,n=0;
while (i
该程序生成的可执行文件名为:proc.exe。若运行时输入命令行: proc 123 45 67 则程序的输出结果是 A)3 B)5 C)7 D)11 答案:C
42) 有以下程序
void fun2(char a, char b) { printf(\ char a='A', b='B';
void fun1( ){ a='C'\\TAB ; b='D' ; } main( ) { fun1( );