C语言题库全.docx
- 文档编号:9521313
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:116
- 大小:70.02KB
C语言题库全.docx
《C语言题库全.docx》由会员分享,可在线阅读,更多相关《C语言题库全.docx(116页珍藏版)》请在冰豆网上搜索。
C语言题库全
一、选择题答案
1.以下程序的输出结果是
main()
{intx=0.5;charz='a';
printf("%d\n",(x<1)&&(z<'z'));}
A)0
B)1
C)2
D)3
你所选择的答案是:
*,正确答案是:
B×
2.以下程序的输出的结果是
intx=3;
main()
{
voidncre();
inti;
for(i=1;i } voidncre() { staticintx=1; x*=x+1; printf("%d",x); } A)33 B)22 C)26 D)25 你所选择的答案是: *,正确答案是: C× 3.若有以下程序段(n所赋的是八进制数) intm=32767,n=032767 printf("%d,%o/n",m,n); 执行后输出结果是( )。 A)32767,32767 B)32767,032767 C)32767,77777 D)32767,077777 你所选择的答案是: *,正确答案是: A× 4.有以下程序 voidfun(char*a,char*b) {a=b;(*a)++;} main() {charc1='A',c2='a',*p1,*p2; p1=&c1;p2=&c2;fun(p1,p2); printf("%c%c\n",c1,c2); } 程序运行后的输出结果是( )。 A)Ab B)aa C)Aa D)Bb 你所选择的答案是: *,正确答案是: A× 5.以下不能正确定义二维数组的选项是( )。 A)inta[2][2]={{1},{2}}; B)inta[][2]={1,2,3,4}; C)inta[2][2]={{1},2,3}; D)inta[2][]={{1,2},{3,4}}; 你所选择的答案是: *,正确答案是: D× 6.若有定义: int*p[3];,则以下叙述中正确的是( )。 A)定义了一个基类型为int的指针变量p,该变量具有三个指针 B)定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针 C)定义了一个名为*p的整型数组,该数组含有三个int类型元素 D)定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素 你所选择的答案是: *,正确答案是: B× 7.下列条件语句中,功能与其他语句不同的是( )。 A)if(a)printf("%d\n",x);elseprintf("%d\n",y); B)if(a==0)printf("%d\n",y);elseprintf("%d\n",x); C)if(a! =0)printf("%d\n",x);elseprintf("%d\n",y); D)if(a==0)printf("%d\n",x);elseprintf("%d\n",y); 你所选择的答案是: *,正确答案是: D× 8.以下叙述中错误的是( )。 A)C语句必须以分号结束 B)复合语句在语法上被看作一条语句 C)空语句出现在任何位置都不会影响程序运行 D)赋值表达式末尾加分号就构成赋值语句 你所选择的答案是: *,正确答案是: C× 9.有以下程序段 intn,t=1,s=0; scanf("%d",&n); do{s=s+t;t=t-2;}while(t! =n); 为使此程序段不陷入死循环,从键盘输入的数据应该是( )。 A)任意正奇数B)任意负偶数C)任意正偶数D)任意负奇数 你所选择的答案是: *,正确答案是: D× 10.设变量已正确定义,则以下程序不能正确计算f=n! 的程序段是( )。 A)f=1; for(i=1;i<=n;i++) f*=i; B)f=0; for(i=1;i<=n;i--) f*=i; C)f=1; for(i=n;i>1;i--) f=f*i; D)f=1; for(i=n;i>=2;i--) f=f*i 你所选择的答案是: *,正确答案是: B× 11.以下叙述中错误的是 A)可以通过typedef增加新的类型 B)可以用typedef将已存在的类型用一个新的名字来代表 C)用typedef定义新的类型名后,原有类型名仍有效 D)用typedef可以为各种类型起别名,但不能为变量起别名 你所选择的答案是: *,正确答案是: A× 12.下列叙述中错误的是________。 A)一个C语言程序只能实现一种算法 B)C程序可以由多个程序文件组成 C)C程序可以由一个或多个函数组成 D)一个C函数可以单独作为一个C程序文件存在 你所选择的答案是: *,正确答案是: A× 13.若有以下定义和语句 uniondata {inti;charc;floatf;}x; inty; 则以下语句正确的是________。 A)x=10.5; B)x.c=101; C)y=x; D)printf("%d\n",x); 你所选择的答案是: *,正确答案是: B× 14.有以下程序 #include"stdio.h" main() {charb,c;inti; b='a';c='A'; for(i=0;i<6;i++) {if(i%2)putchar(i+b); elseputchar(i+c); }printf("\n"); } 程序运行后的输出结果是 A)ABCDEF B)AbCdEf C)aBcDeF D)abcdef 你所选择的答案是: *,正确答案是: B× 15.有以下程序 #include"stdio.h" structS {inta,b;}data[2]={10,100,20,200}; main() {structSp=data[1]; printf("%d\n",++(p.a)); } 程序运行后的输出结果是 A)10 B)11 C)20 D)21 你所选择的答案是: *,正确答案是: D× 16.下列定义数组的语句中,正确的是 A)intN=10; intx[N]; B)#defineN10 intx[N]; C)intx[0..10]; D)intx[]; 你所选择的答案是: *,正确答案是: B× 17.有以下程序 #include main() {shortc=124; c=c____; printf("%d\n",c); } 若要使程序的运行结果为248,应在下划线处填入的是 A)>>2 B)|248 C)&248 D)<<1 你所选择的答案是: *,正确答案是: D× 18.有以下程序 #include main() { chara,b,c,d; scanf("%c%c",&a,&b); c=getchar();d=getchar(); printf("%c%c%c%c\n",a,b,c,d); } 当执行程序时,按下列方式输入数据(从第1列开始, 回车也是一个字符) 12 34 则输出结果是()。 A)1234B)12 C)12D)12 334 你所选择的答案是: *,正确答案是: C× 19.有以下程序: #include main() {inti,j,m=1; for(i=1;i<3;i++) {for(j=3;j>0;j--) {if(i*j>3)break; m*=i*j; } } printf("m=%d\n",m); } 程序运行后的输出结果是() A)m=6B)m=2 C)m=4D)m=5 你所选择的答案是: *,正确答案是: A× 20.以下关于return语句的叙述中正确的是()。 A)一个自定义函数中必须有一条return语句 B)一个自定义函数中可以根据不同情况设置多条return语句 C)定义成void类型的函数中可以有带返回值的return语句 D)没有return语句的自定义函数在执行结束时不能返回到调用处 你所选择的答案是: *,正确答案是: B× 二、填空题 1.当调用函数时,实参是一个数组名,则向函数传递的是()。 你所选择的答案是: ,正确常答案是: 数组的首地址或数组首地址, × 2.以下程序的输出结果是()。 inta=1234; printf("%2d\n",a); 你所选择的答案是: ,正确答案是: 1234, × 3.下列程序的功能是: 求出ss所指字符串中指定字符的个数,并返回此值。 给程序填空。 例如,若输入字符串123412132,输入字符1,则输出3,请填空。 #include #include #defineM81 intfun(char*ss,charc) {inti=0; for(;_____________;ss++) if(*ss==c)i++; returni;} main() {chara[M],ch;clrscr(); printf("\nPleaseenterastring: ");gets(a); printf("\nPleaseenterachar.");ch=getchar(); printf("\nThenumberofthecharis: %d\n",fun(a,ch));} 你所选择的答案是: ,正确答案是: *ss! ='\0', × 4.设有如下宏定义 #defineMYSWAP(z,x,y) {z=x;x=y;y=z;} 以下程序段通过宏调用实现变量a,b内容交换,请填空。 floata=5,b=16,c; MYSWAP(_______,a,b); 你所选择的答案是: ,正确答案是: c, × 5.在计算机中,字符的比较是对它们的()进行比较。 你所选择的答案是: ,正确常答案是: ASCII码或ASCII, × 6.以下程序的输出结果是()。 unsignedfun6(unsignednum) {unsignedk=1; do { k*=num%10;num/=10; }while(num); returnk; } main() {unsignedn=26; printf("%d\n",fun6(n)); } 你所选择的答案是: ,正确答案是: 12, × 7.以下程序的输出结果是 main() {inta=1,b=2; a=a+b;b=a-b;a=a-b; printf("%d,%d\n",a,b); } 你所选择的答案是: ,正确答案是: 2,1, × 8.用以下语句调用库函数malloc,使字符指针st指向具有11个字节的动态存储空间,请填空。 st=(char*)【】; 你所选择的答案是: ,正确常答案是: malloc(11)或malloc(sizeof(char)*11), × 9.以下程序的输出结果是【】。 main() {intarr[]={30,25,20,15,10,5},*p=arr; p++; printf("%d\n",*(p+3)); } 你所选择的答案是: ,正确答案是: 10, × 10.以下程序运行后的输出结果是【】。 structNODE {intnum;structNODE*next; }; main() {structNODEs[3]={{1,'\0'},{2,'\0'},{3,'\0'}},*p,*q,*r; intsum=0; s[0].next=s+1;s[1].next=s+2;s[2].next=s; p=s;q=p->next;r=q->next; sum+=q->next->num;sum+=r->next->next->num; 一、选择题答案 1.设有以下说明语句 structex {intx;floaty;charz;}example; 则下面的叙述中不正确的是 A)struct结构体类型的关键字 B)example是结构体类型名 C)x,y,z都是结构体成员名 D)structex是结构体类型 你所选择的答案是: *,正确答案是: B× 2.以下程序的输出结果是 main() {inti,x[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++)printf("%d,",x[i][2-i]); } A)1,5,9 B)1,4,7 C)3,5,7 D)3,6,9 你所选择的答案是: *,正确答案是: C× 3.以下程序的输出结果是 #defineM(x,y,z)x*y+z main() {inta=1,b=2,c=3; printf("%d\n",M(a+b,b+c,c+a)); } A)19 B)17 C)15 D)12 你所选择的答案是: *,正确答案是: D× 4.有以下程序段 intm=0,n=0;charc='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 你所选择的答案是: *,正确答案是: A× 5.有以下程序 main() {ints=0,a=1,n; scanf("%d",&n); do {s+=1;a=a-2;} while(a! =n); printf("%d\n",s); } 若要使程序的输出值为2,则应该从键盘给n输入的值是( )。 A)-1 B)-3 C)-5 D)0 你所选择的答案是: *,正确答案是: B× 6.用C语言编写的代码程序( )。 A)可立即执行 B)是一个源程序 C)经过编译即可执行 D)经过编译解释才能执行 你所选择的答案是: *,正确答案是: B× 7.若有以下说明和语句,intc[4][5],(*p)[5];p=c;能正确引用c数组元素的是( )。 A)p+1 B)*(p+3) C)*(p+1)+3 D)*(p[0]+2]) 你所选择的答案是: *,正确答案是: D× 8.以下能正确定义且赋初值的语句是( )。 A)intn1=n2=10; B)charc=32; C)floatf=f+1.1; D)doublex=12.3E2.5; 你所选择的答案是: *,正确答案是: B× 9.有以下程序 voidsort(inta[],intn) {inti,j,t; for(i=0;i for(j=i+1;j if(a[i] } main() {intaa[10]={1,2,3,4,5,6,7,8,9,10},i; sort(aa+2,5); for(i=0;i<10;i++)printf("%d,",aa[i]); printf("\n"); } 程序运行后的输出结果是( )。 A)1,2,3,4,5,6,7,8,9,10, B)1,2,7,6,3,4,5,8,9,10, C)1,2,7,6,5,4,3,8,9,10, D)1,2,9,8,7,6,5,4,3,10, 你所选择的答案是: *,正确答案是: C× 10.以下不合法的用户标识符是 A)j2_KEY B)Double C)4d D)_8_ 你所选择的答案是: *,正确答案是: C× 11.有以下程序 main() { inti,j,x=0; for(i=0;i<2;i++) {x++; for(j=0;j<=3;j++) { if(j%2)continue; x++; } x++; } printf("x=%d\n",x); } 程序执行后的输出结果是 A)x=4 B)x=8 C)x=6 D)x=12 你所选择的答案是: *,正确答案是: B× 12.下列叙述中正确的是________。 A)break语句只能用于switch语句 B)在switch语句中必须使用default C)break语句必须与switch语句中的case配对使用 D)在switch语句中,不一定使用break语句 你所选择的答案是: *,正确答案是: D× 13.有以下程序 fun(intx,inty) {staticintm=0,i=2; i+=m+1;m=i+x+y; returnm; } main() {intj=1,m=1,k; k=fun(j,m);printf("%d,",k); k=fun(j,m);printf("%d\n",k); } 执行后的输出结果是________。 A)5,5 B)5,11 C)11,11 D)11,5 你所选择的答案是: *,正确答案是: B× 14.有以下程序 #include"stdio.h" intfun(intx,inty) {if(x! =y)return((x+y)/2); elsereturn(x); } main() {inta=4,b=5,c=6; printf("%d\n",fun(2*a,fun(b,c))); } 程序运行后的输出结果是 A)3 B)6 C)8 D)12 你所选择的答案是: *,正确答案是: B× 15.有以下程序 #include"stdio.h" structord {intx,y;}dt[2]={1,2,3,4}; main() { structord*p=dt; printf("%d,",++(p->x));printf("%d\n",++(p->y)); } 程序运行后的输出结果是 A)1,2 B)4,1 C)3,4 D)2,3 你所选择的答案是: *,正确答案是: D× 16.)以下程序段完全正确的是 A)int*p;scanf("%d",&p); B)int*p;scanf("%d",p); C)intk,*p=&k;scanf("%d",p); D)intk,*p: ;*p=&k;scanf("%d",p); 你所选择的答案是: *,正确答案是: C× 17.若要定义一个具有5个元素的整型数组,以下错误的定义语句是 A)inta[5]=﹛0﹜; B)intb[]={0,0,0,0,0}; C)intc[2+3]; D)inti=5,d[i]; 你所选择的答案是: *,正确答案是: D× 18.以下C语言用户标识符中,不合法的是()。 A)_1B)AaBc C)a_bD)a--b 你所选择的答案是: *,正确答案是: D× 19.有以下程序: #include main() {inta=1,b=2; for(;a<8;a++){b+=a;a+=2;} printf("%d,%d\n",a,b); } 程序运行后的输出结果是()。 A)9,18B)8,11 C)7,1lD)10,14 你所选择的答案是: *,正确答案是: D× 20.有以下程序: #include intf(intt[],intn); main() {inta[4]={1,2,3,4},s; s=f(a,4);printf("%d\n",s); } intf(intt[],intn) {if(n>0)returnt[n-1]+f(t,n-1); elsereturn0; } 程序运行后的输出结果是()。 A)4B)10 C)14D)6 你所选择的答案是: *,正确答案是: B× 二、填空题 1.以下程序的输出结果是(). #include"stdio.h" intfun(intx,inty) {staticintm=0,i=2; i+=m+1; m=i+x+y; returnm; } main() {intj=4,m=1,k; k=fun(j,m);printf("%d,",k); k=fun(j,m);printf("%d\n",k); } 你所选择的答案是: ,正确答案是: 8,17, × 2.下面程序的输出结果是 charb[]="ABCD"; main() {char*chp; for(chp=b;*chp;chp+=2) printf("%s",chp); printf("\n"); } 你所选择的答案是: ,正确答案是: ABCDCD, × 3.C语言程序的注释可以出现在程序中的任何地方,一个注释以()作为开始,以*/作为结束。 你所选择的答案是: ,正确答案是: /*, × 4.以下程序段中,错误的是第()行。 ①#include ②main() ③{charstr[14];str[]={"IloveChina"}; ④printf("%s",str); ⑤} 你所选择的答案是: ,正确答案是: 3, × 5.以下程序的输出结果是()。 unsignedfun6(unsignednum) {unsignedk=1; do { k*=num%10
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 题库