《c语言试题库复杂选择题》由会员分享,可在线阅读,更多相关《c语言试题库复杂选择题(46页珍藏版)》请在金锄头文库上搜索。
1、1. 下面程序的输出是(A)。(A)-1 (B)0 (C)1 (D)不确定的值main()int x=100, a=10, b=20, ok1=5, ok2=0;if(a#includemain()char *p1 =abc, *p2 =ABC,str50=xyz;strcpy(str+2,strcat(p1,p2);printf(%n,str);2. 下面程序的输出是(B)。(A)741 (B)852 (C)963 (D)875421main()int y=9for(;y0;y-)if(y%3=0)printf(%d,-y);continue;3. 下面程序的输出是(D)。(A)100 (B
2、)160 (C)120 (D)64main()char x=040;printf(%dn,x=xs (B)*p*s (C)apas (D)p-ap-s若想通过以下输入语句给 a赋于 1,给 b赋于 2,则输入数据的形式应该是 a=1,b=214. int a,b;scanf(a=%b,b=%d,以下程序的输入结果是 (A)。main( ) int i=010,j=10,k=x10; printf(%d,%d,%dn,i,j,k); (A)8,10,16 (B)8,10,10 (C)10,10,10 (D)10,10,16 15. 指针 s所指字符串的长度(D)。 char *s=t Name
3、Address n; (A)说法不合法 (B)19 (C)18 (D)15 16. 以下程序段的输出结果是(C)。 int x=3; do printf(%3d,x-=2); while(!(- -x); (A)1 (B)30 (C)1 -2 (D)死循环 17. 有以下程序#include #define F(X,Y) (X)*(Y)main() int a=3, b=4;printf(%dn, F(a+, b+);程序运行后的输出结果是(A)。(A)12 (B)15 (C)16 (D)2018. 有以下程序#define N 20 fun(int a,int n,int m) int i,
4、j; for(i=m;i=n;i-)ai+1=a; main() int i,aN=1,2,3,4,5,6,7,8,9,10; fun(a,2,9); for(i=0;i,则输出结果是(B)。(A)产生错误信息 (B)1 0 (C)1 2 (D)1 02 0 3 0 2 00 0 0 0 3 020. #includevoid fun(int *a,int n)/*fun函数的功能是将 a所指数组元素从大到小排序*/int t,i,j;for(i=0;i=0) n=10*n+*s-0;s+;return(n);main()char s10=6,1,*,4,*,9,*,0,*;printf(%d
5、n,fun(s);程序运行的结果是(C)。(A)9 (B)61490 (C)61 (D)523. 有以下程序#include #include void fun(char s10,int n)char t;int i,j;for(i=0;isj0t=s0;s0=sj0;sj0=t;main()char ss510=“bcc”,”bbcc”,”xy”,”aaaacc”aabcc”fun(ss,5); printf(“%s,%sn”,ss0,ss4);程序运行结果是(B)。(A) xy,aaaacc (B) aaaacc,xy (C) xcc,aabcc (D) acc,xabcc 24. 有以下
6、程序#include int a=1;int f(int c)static int a=2;c=c+1;return (a+)+c;main() int i,k=0;for(i=0;imain()FILE *fp;char *s1=Fortran,*s2=Basic;if(fp=fopen(test.txt,wb”)=NULL)printf(Cant open test.txt filen);exit(1);fwrite(s1,7,1,fp); /*把从地址 s1开始的 7个字符写到 fp所指文件中*fseek(fp,0L,SEEK_SET); *文件位置指针移到文件开头*fwrite(s2,
7、5,1,fp);fclose(fp);(A)Basican (B)BasicFortran (C)Basic (D)FortranBasic41. 下面程序的输出是(C)。main() char *s=121;int k=0, a=0, b=0;dok+;if(k%2=0) a=a+sk-0;continue;b=b+sk-0; a=a+sk-0;while (sk+1);printf(k=%d a=%d b=%dn,k,a,b);(A)k=3 a=2 b=3 (B)k=3 a=3 b=2(C)k=2 a=3 b=2 (D)k=2 a=2 b=342. 下面程序的输出是(C)。main() u
8、nsigned a=32768;printf(a=%dn,a);(A)a=32768 (B)a=32767(C)a=-32767 (D)a=-143. 若有以下定义:float x;int a,b;则正确的 switch 语句是(C) 。(A)switch(x) (B)switch(x) case1.0:printf(*n); case1,2:printf(*n);case2.0:printf(*n); case3:printf(*n); (C)switch (a+b) (D)switch (a+b); case 1:printf(n); case 1:printf(.*n);case 1+2
9、:printf(*n); case 2:printf(*n); 44. 若有定义:int x,y;char a,b,c;并有以下输入数据(此处 代表换行符,/u 代表空格):1u2AuBuC则能给 x 赋整数 1,给 y 赋整数 2,给 a 赋字符 A,给 b 赋字符 B,给 c 赋字符 C 的正确程序段是(D)。(A)scanf(x=%d y+%d,(B)scanf(%d %d,(C)scanf(%d%d%c%c%c,(D)scanf(%d%d%c%c%c%c%c%c:45. 以下程序输出的结果是(D)。#include #include main() char w10=ABCD,EFGH,
10、IJKL,MNOP,K;for (k=1;kdata.a (D)p.data.a50. 以下对枚举类型名的定义中正确的是(B)。(A)enum a=one,two,three;(B)enum a one=9,two=-1,three;(C)enum a=one,two,three;(D)enum a one,two,three;51. 有下列程序#includeb)&(n=cd)后,n 的值为(B)。(A) 1 (B) 2 (C) 3 (D) 068. 以下程序的输出结果是(B)。(A) x=4 (B) x=8 (C) x=6 (D) x=12main() int i,j,x=0;for(i=
11、0;i,则输出结果为(C)。(A) m=3 (B) m=2 (C) m=1 (D) m=1main() int m, n;printf(Enter m,n;); scanf(%d%d, &m,&n):while (m!=n) while (mn)m-=n;while (nm)n-=m;printf(m=%dn,m);70. 以下程序运行后,如果从键盘上输入:book book 则输出的结果是(B)。(A) *8 (B) #9 (C) #6 (D) *9#includemain() char a180,a280,*s1=a1, *s2=a2;gets(s1); gets(s2);if(! str
12、cmp(s1,s2) printf(*);esle printf(#);printf(%d/n,strlen(strcat(s1,s2);71. 以下程序运行后,输出结果是(B) 。72. (A)10000 (B) 10010 (C) 00110 (D) 10100main() int y=18,i=0,j,a8;do ai=y%2; i+y=y/2; while(y=1)for(j=i-1;j=0;j-) printf(%d,aj;printf(n);下面程序把数组元素中的最大值放入 a0中。则在 if 语句中的条件表达式应该是(A) pa (B) *pa0 (C) *p*a0 (D) *p
13、0 *a0main( ) int a10=6,7,2,9,1,10,5,8,4,3,*p=a,I;for(i=o;i0) switch(k) default : break;case 1 : n+=k;case 2 :case 3 : n+=k;k-;printf(%dn,n);程序运行后的输出结果是(D)。(A)0 (B)4 (C)6 (D)784. 有以下程序void swap1(int c0, int c1) int t t=c00; c00=c10; c10=t;void swap2(int *c0, int *c1) int t;t=*c0; *c0=*c1; *c1=t;main(
14、) int a2=3,5, b2=3,5;swap1(a, a+1); swap2(printf(%d %d %d %dn,a0,a1,b0,b1);程序运行后的输出结果是(A)。(A)3 5 5 3 (B)5 3 3 5 (C)3 5 3 5 (D)5 3 5 385. 有以下程序#include main() char p=a, b, c, q10=a, b, c;printf(%d %dn, strlen(p), strlen(q);以下叙述中正确的是(B)。(A)在给 p和 q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为 3(B)由于 p数组中没有字符串结束符,长度不能确定;但 q数组中字符串长度为 3(C)由于 q数组中没有字符串结束符,长度不能确定;但 p数组中字符串长度为 3(D)由于 p和 q数组中都没有字符串结束符,故长度都不能确定86. 有以下程序,其中函数 f的功能是将多个字符串按字典顺序排序#include void f(char *p, int n) char *t; int i,j;for(i=0; ifor(j=i+1; jif(strcmp(p,pj)0) t=p; p=pj; pj=t; main() char *p5=abc,aa