1、计算机等级考试二级C语言超级经典400道题目242400242、设有以下宏定义: #define N 3 #define Y(n) ( (N+1)*n) 则执行语句:z=2 * (N+Y(5+1);后,z的值为 A) 出错 B) 42 C) 48 D) 54、C、2243、设有以下函数: f ( int a) int b=0; static int c = 3; b+; c+; return(a+b+c); 如果在下面的程序中调用该函数,则输出结果是 main() int a = 2, i; for(i=0;i、A、2244、设正x、y均为整型变量,且x=10 y=3,则以下语句的输出结果是
2、printf(%d,%dn,x-,-y); A) 10,3 B) 9、3 C) 9、2 D)10、2、D、2245、设有如下一段程序: int *var,ab; ab=100 var=&ab; ab=*var+10; 执行上面的程序后,ab的值为 A) 120 B) 110 C) 100 D) 90、B、2246、设有如下的函数 ggg(x) float x; printf(n%d,x*x); 则函数的类型 A) 与参数x的类型相同 B) 是void C) 是int D) 无法确定、C、2247、设有 static char str =Beijing; 则执行 printf(%dn, strl
3、en(strcpy(str,China); 后的输出结果为 A) 5 B) 7 C) 12 D) 14、A、2248、设 int x=1, y=1; 表达式(!x|y-)的值是 A) 0 B) 1 C) 2 D) -1、B、2249、若有以下说明: int a12=1,2,3,4,5,6,7,8,9,10,11,12; char c=a,d,g; 则数值为4的表达式是 A)ag-c B)a4 C)ad-c D)ad-c、D、2250、若有以下说明: int w34=0,1,2,4,5,8; int(*p)4=w; 则数值为4的表达式是 A) *w1+1 B) p+,*(p+1) C) w22
4、D) p11、D、2251、若有以下说明和语句,请选出哪个是对c数组元素的正确引用 int c45, (*cp)5; cp=c; A) cp+1 B) *(cp+3) C) *(cp+1)+3 D) *(*cp+2)、D、2252、若有以下定义和语句: char *s1=12345,*s2=1234; printf(%dn,strlen(strcpy(s1,s2); 则输出结果是 A) 4 B)5 C)9 D)10、A、2253、若有以下定义和语句: int u=010,v=0x10,w=10; printf(%d,%d,%dn,u,v,w); 则输出结果是: A) 8,16,10 B) 10
5、,10,10 C) 8,8,10 D) 8,10,10、A、2254、若有以下定义: char s20=programming,*ps=s; 则不能代表字符o的表达式是 A) ps+2 B)s2 C) ps2 D)ps+=2,*ps、A、2255、若有以下的说明和语句: main() int t32, *pt3,k; for(k=0; k、C、2256、若有以下定义: float x;int a,b; 则正确的switch 语句是 A)switch(x) B)switch(x) case1、0:printf(*n); case1,2:printf(*n); case2、0:printf(*n)
6、; case3:printf(*n); C)switch(a+b) D)switch (a+b); case 1:printf(n); case 1:printf(、*n); case 1+2:printf(*n); case 2:printf(*n); 、C、2257、若有以下程序段,w和k都是整型变量: w=k; LB: if(w=0) go to LE; w-; printf(*); goto LB; LE: 则不能与上面程序段等价的循环语句是 A)for(w=k;w!=0;w-) printf(*); B)for(w=k;w;-w)printf(*); C)w=k; D)w=k; wh
7、ile(w-!=0)printf(*);w+; do w-;printf(*);while(w!=0);、C、2258、若有以下程序片段: char str=abn012; printf(%dd,strlen(str); 上面程序片段的输出结果是 A)3 B)4 C)6 D)12、C、2259、若有说明,double *p,a;则能通过scanf语句正确给输入项读入数据的程序段是 A)*p=&a; scanf(%lf,p); B)p=(double *)malloc(8);scanf(%f,p); C) p=&a;scanf(%lf,a); D)p=&a; scanf(%le,p);、D、22
8、60、若有说明和语句: int a=5; a+; 此处表达式a+的值是 A) 7 B) 6 C) 5 D) 4、C、2261、若有下面的程序片段: int a12=0, *p3, *pp, i; for(i=0; i、C、2262、若有下面的说明和定义,则sizeof(struct aa) 的值是 struct aa int r1;double r2; float r3; union uuchar u15; long u22; ua; mya; A)30 B)29 C)24 D)22、D、2263、若有定义: float w; int a, b; 则合法的switch语句是 A) switch
9、(w) B) switch(a); case 1、0: printf(*n); case 1 printf(*n); case 2、0: printf(*n); case 2 printf(*n); C) switch(b) D) switch(a+b); case 1: printf(*n); case 1: printf(*n); default: printf(n); case 2: printf(*n); case 1+2: printf(*n); default: printf(n); 、D、2264、若已定义: int a =0,1,2,3,4,5,6,7,8,9, *p=a,i;
10、 其中 0i9, 则对a数组元素不正确的引用上 A) ap-a B) *(&ai) C) pi D) a10、D、2265、若变量a、i已正确定义,且i已正确赋值,合法的语句是 A) a=i B) +i; C) a=a+=5; D) a=int(i);、B、2266、若k是int型变量,且有下面的程序片段: k=-3 if(k=0) printf(#) else printf(&); 输出结果是: A)# B)& C) #& D)有语法错误,无输出结果、D、2267、若x是int型变量,且有下面的程序片段: for(x=3;x、D、2268、若x是整型变量,pb是基类型为整型的指针变量,则正确
11、的赋值表达式是_ A) pb=&x B) pb=x; C) *pb=&x; D) *pb=*x、A、2269、若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是 for (i=5;i;i-) for(j=0;j、A、2270、请选出以下语句的输出结果 printf(%dn,strlen(t065xffn); A) 5 B) 14 C) 8 D) 输出项不合法,无正常输出、A、2271、请选出正确的程序段 A) int *p; B) int *s, k; scanf(%d,p); *s=100; C) int *s, k; D) int *s, k; char *p, c; ch
12、ar *p, e; s=&k; s=&k; p=&c; p=&c; *p=a; s=p; *s=1; 、C、2272、若a、 b、c1、c2、x、y、均是整型变量,正确的switch语句是 A) swich(a+b); B) switch(a*a+b*b) case 1:y=a+b;break; case 3: case 0:y=a-b; break; case 1:y=a+b;break; case 3:y=b-a,break; C) switch a D) switch(a-b) case c1 :y=a-b; break default:y=a*b;break case c2: x=a*
13、d; break case 3:case 4:x=a+b;break default:x=a+b; case 10:case 11:y=a-b;break; 、D、2273、请选出以下程序的输出结果 #include fun(s, n1, n2) int *s, n1, n2; int i, j, t; i=n1; j=n2; while(i、C、2274、请读程序片段: #include main() int a, b; for(a=1;b=1;a=20) break; if(b%3=1) b+=3; continue; b-=5; printf(%dn,a); 程序的输出结果是: A) 7
14、 B) 8 C) 9 D) 10 、B、2275、请选出以下程序的输出结果 #include main() int a = 1,2,3,4 ,i; int x=0; for(i=0; i、C、2276、请选出以下程序的输出结果 #include sub(x,y,z) int x, y, *z; *z=y-x; main() int a, b, c; sub(10,5,&a); sub(7,a,&b); sub(a,b,&c); printf(%d,%d,%dn, a,b,c); A) 5,2,3 B) -5,-12,-7 C) -5,-12,-17 D) 5,-2,-7、B、2277、请选出以
15、下程序段的输出结果 #include main() char sl10, s210, s310, s410; scanf(%s%s,s1,s2); gets(s3); gets(s4); puts(s1); puts(s2); puts(s3); puts(s4); 输入数据如下:(此处代表回车符) aaaa bbbb cccc dddd A) aaaa B) aaaa bbbb bbbb cccc cccc dddd dddd C) aaaa D) aaaa bbbb bbbb cccc cccc dddd dddd eeee、A、2278、请读程序: #include main() flo
16、at x,y; scan(%f,&x); if(x5) printf(%d,x); else printf(%dn,x - -); A) 7和5 B) 6和3 C) 7和4 D) 6和4、A、2283、能正确表示a和b同时为正或同时为负的逻辑表达式是 A) (a=0b=0)&(a=0)&(a0&b0)&(a+b0、D、2284、请读程序: #include #include main() float x,y,z; scan(%f%f,&x,&y); z=x/y; while(1) if(fabs(z)1、0) x=y; y=z; z=x/y; else break printf(%fn,y);
17、 若运行时从键盘上输入3、6 2、4(表示回车),则输出的结果是 A) 1、500000 B) 1、600000 C) 2、000000 D) 2、400000 、B、2285、请读程序: #include #include void fun( char *s) char a10; strcpy( a, STRING); s=a; main() char *p; fun(p); x=f(a, 3); printf(%sn,p); 上面程序的输出结果是(表示空格) A) STRING B) STRING C) STRING D) 不确定的 、D、2286、请读程序: #include char
18、fun(char *c) if( *c=A) *c-=A-a; return *c; main() char s81, *p=s; gets(s); while(*p) *p=fun(p); putchar(*p); p+; putchar(n); 若从键盘上输入OPEN THE DOOR(表示回车),则上面程序的输出结果是 A) oPEN tHE dOOR B) open the door C) OPEN THE DOOR D) Open The Door、B、2287、请读程序: #include int a=2,4,6,8; main() int i; int *p=a; for(i=0
19、;i、A、2288、请读程序: #include main() int mun=0; while(num0?a:-a; b=b0?b:-b; c=a*b; if(c=0) return(0); while(a!=b) if(ab) a-=b; else b-=a; return(c/a); gys(a,b) int a,b; if(a*b=0) return(0); a=a0?a:-a; b=b0?b:-b; while(a!=b) if(ab) a-=b;else b-=a; return(a); 请写出上面程序的运行结果: A、a=30 b=63 gbs=189 gys=9 B、a=27
20、b=63 gbs=190 gys=10 C、a=27 b=63 gbs=189 gys=9 D、a=27 b=63 gbs=188 gys=10、C、3311、请读程序: main() int *p,x; x=10; *p=x; printf(%dn,*p); 请判断上面程序_ A、错误:*p=x; printf(%dn),*p); 正确:p=&x; printf(%dn,p); B、错误:*p=x; printf(%dn),*p); 正确:p=*x; printf(%dn,p);C、错误:int *p,x; 正确:int *(p),*(x);D、错误:*p=x; 正确:p=&x;、A、3312
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1