一、选择题1.以下叙述中正确的是 A. C程序中注释部分可以出现在程序中任意合适的地方
2.以下选项中可作为C语言合法整数的是C. Oxffa
3.以下不能定义为用户标识符的是 D. int
4.程序main(){ int a; char c=10; float f=100.0; double x;a=f/=c*=(x=6.5);
prin tf("%d %d %3.1f %3.1f\n",a,c,f,x);} 程序运行后的输出结果是
B. 1 65 1.5 6.5
5.以下选项中非法的表达式是 D. x+1=x+1
6.若有说明语句:int a,b,c,*d=&c 则能正确从键盘读入三个整数分别赋给变量a、b、c的语句
A. sea nf("%d%d%d",&a,&b,d);
7.在16位C编译系统上,若定义long a;,则能给a赋40000的正确语句是 D. a=4000L*10L;
8.以下叙述正确的是 B.可以把define定义为用户标识符,但不能把if定义为用户标识符
9.若定义:int a=511,*b=&a;, 则printf("%d\n",*b); 的输出结果为 D.511
10.程序main(){ int a=5,b=4,c=6,d; printf("%d\n",d=a>b?(a>c?a:c):(b));} 输出结果是
C. 6
11.以下程序段中与语句k=a>b?(b>c?1:0):0 功能等价的是 A. if((a>b) &&(b>C) ) k=1; else k=0;
12.程序main( ){ char k; int i; for(i=1;i<3;i++) { scanf( “%c ,&k);
switch(k){ case ‘ 0 ' : printf( “ another ” ); case ‘ 1 ':
printf( “number ” ); } }}
程序运行时,从键盘输入:01,程序执行后的输出结果是 C. an other n umber
nu mber
13.程序main( ){int x=0,y=5,z=3; while(z-->0&&++x<5) y=y-1; printf( “%d,%d,%d\n ,x,y,z);} 程序执行后的输出结果是B. 3,2,-1
14.程序main(){ int i,s=0; for(i=1;i<10;i+=2) s+=i+1; printf( “%d\n” ,s);} 程序执行后的输出结果是 D.自然数1〜10中的偶数之和15.程序ma in ( ){ in t i,n=0; for(i=2;i<5;i++) { do { if(i%3) con ti nue; n++; } while(!i); n++; } printf( “n=%d\n” ,n);}执行后的输出结果是D. n=4 16.程序main( ){ int a=2,b=-1,c=2; if(a
的输出结果是C. 2
17.程序main(){ int i,sum; for(i=1;i<=3;sum++) sum+=i; printf( “ %d\n” ,sum);}
的执行结果是 C.死循环
18.程序main(){ int x=23; do { printf( “ %d ,x--);} while(!x);} 的执行结果是
B. 23
19.程序main(){ int n=9; while(n>6) {n--;printf( “%d ,n);}} 的输出结果是 B. 876
20.设有说明语句:char a= ' \72 ';则变量a A.包含1个字符
21.下列程序段的输出结果是 A. 2 1 4 3
void fun(int *x, int *y) { printf( “%d %c” , *x, *y); *x=3; *y=4;} main() { int x=1,y=2; fun(&y,&x); printf( “%d %d ,x, y);} 22.下列程序的输出结果是 C.5
main() { char a[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5; printf( “%d ,*--p); }
23.下列程序的运行结果是 B. 3 6
void fun (i nt *a, int *b){ int *k; k=a; a=b; b=k;}
main(){ int a=3, b=6, *x=&a, *y=&b; fun(x,y); printf( “ %d %c” , a,
b);}
24.下面程序的输出结果是 C. 10
main(){ int a[ ]={1,2,3,4,5,6,7,8,9,0,},*p; p=a; printf( “%
d\n” ,*p+9);}
25.当调用函数时,实参是一个数组名,则向函数传送的是 B.数组的首地址
、填空题1.编好一个C源程序后,上机运行时一般要经过以下步骤编辑、编译连接和执行
2.请写出以下数学式的C语言表达式a*d/b/c 。
bc
3.和十进制数225相等的二进制数是11100001 。
4.设x、y、z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为32
。
5.int a=1,b=2,c=3,d=4,m=8,n=4; 执行(m=a>b)&&(n=c>d)后n 的值为__________ 4 _______ 。
6.程序main(){ int a[4][4]={{1,3,5},{2,4,6},{3,5,7}};
prin tf("%d%d%d%d\n",a[0][0],a[1][1],a[2][2],a[3][3] );} 的输出结果是1470
7.以下程序的输出结果是10 。
union myun{ struct {int x, y, z; } u; int k; } a;
main(){ a.u.x=6; a.u.y=8; a.u.z=10; a.k=8; prin tf("%d\n",a.u.z); }
8.设有以下程序:main(){ int n1,n2;scanf( “%d,&n2);
while(n2!=0){ n仁n2%10; n2=n2/10; printf( “%d ,n 1); }}
程序运行后,如果从键盘上输入3842;则输出结果为2483 。
9.设y是int型变量,请写出判断y为奇数的关系表达y%2!=0 —
10.若有定义语句:char s[100],d[100]; int j=0, i=0; ,且s中已赋字符串,请填空以实现字符
串拷贝。(注:不得使用逗号表达式)
while(s[i]){ d[j]= s[i++] ; j++;} d[j]=0;
11.以下程序的运行结果是13,27 。
#include
main(){ int k=5, m=2, p;p=func(k,m); printf("%d,",p);
p=func(k,m); printf("%d\n",p);}
fun c(i nt a, int b){ static int m=4, i=1; i+=m+1; m=i+a+b; retur n m; }
三、写出以下程序或程序段的运行结果答案:1. 91215 2. FGH回车>KL 3. 6 4. J0 5. passwarm
1.void fun(){ static int a=6;a+=3; printf( “%d ,a);}
main(){ int cc;for(cc=1;cc<4;cc++) fun()printf( “\n ” );}
2.mai n() { char w[][10]={"ABCD","EFGH","IJKL","MNOP"},K;
for (k=1;k<3;k++) pri ntf("%s\n",&w[k][k]);}
3.ma in() { int m=5; if(m++>5) prin tf("%d\n",m); else
prin tf("%d\n",m--); }
4.#defi ne MAX(x,y) (x)>(y)?(x):(y)
mai n(){
int
a=6,b=4,c=2,d=5,t;t=MAX(a+b,c+d)*10;printf( “ %d\n” ,t); }
5.int n= ' c' ; switch(n++)
{ default: printf( error );break;