C语言练习题2(分支结构 循环结构 数组 函数2009-2012二.doc_第1页
C语言练习题2(分支结构 循环结构 数组 函数2009-2012二.doc_第2页
C语言练习题2(分支结构 循环结构 数组 函数2009-2012二.doc_第3页
C语言练习题2(分支结构 循环结构 数组 函数2009-2012二.doc_第4页
C语言练习题2(分支结构 循环结构 数组 函数2009-2012二.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言练习题(二)一 选择题1有以下程序#include void main() int a;scanf(“%d”,&a);if(a+9) printf(“%dn”,a);else printf(“%dn”,a-);程序运行时键盘输入9,则输出的结果是A 10 B 11 C 9 D 82.有以下程序#include void main()int s=0,n;for (n=0;n3;n+)switch(s) case 0:case 1:s+=1;case 2:s+=2;break;case 3:s+=3;case 4:s+=4;printf(“%dn”,s);程序运行后的结果是A 1,2,4 B 1,3,6 C 3,10,14 D 3,6,103.若k是int类型变量,且有以下for语句for(k= -1;k0;k+) printf(“*n”);下面关于语句执行情况的叙述中正确的是A循环体执行一次 B循环体执行两次C循环体一次也不执行 D构成无限循环4.有以下程序#include void main()char A,B,C;B=1;C=Afor(A=0;A6;A+)if(A%2) putchar(B+A);else putchar(C+A);程序运行后输出的结果是A 1B3D5F B ABCDFE C A2C4E6 D 1234565.fun函数的功能是:通过键盘输入给x所指的整型数组所有元素赋值。在下列划线处应该填写的是#include #define N 5void fun(int xN)int m;for(m=N-1;m0;m-) scanf(“%dn”, );A &x+m B &xm+1 C x+(m+) D x+m6.有以下函数 #include #include void main() printf(“%dn”,strlen(“ATSn0121”) );程序运行后的输出结果是A 3 B 8 C 4 D 97.有以下函数 #include void main() char a20,b20,c20;scanf(”%s%s”,a,b);gets(c);printf(”%s%s%sn”,a,b,c);程序运行时从第一行开始输入 this is a cat!,则输出结果是A thisisacat! B this is a C thisis a cat! D thisisa cat!8.有以下函数 #include viod fun(char c)if(c x) fun(c-1); printf (“%c”,c);void main()fun(z);程序运行输出结果是A xyz B wxyz C zyxw D zyx9、有以下函数 #include viod func(int n)int i;for(i=0;i=n;i+) printf(“*”);printf(“#”);main() func(3); printf(“?”); func(4); printf(“n”); 程序运行输出结果是 A *#?*# B *#?*# C *#?*# D *#?*#(10)有以下程序 #include main() int a=1,b=0; if(-a) b+; else if(a=0)b+=2: else b+=3: printf(dn,b); ) 程序运行后的输出结果是( )。A)0 B)1 C)2 D)3(11)下列条件语句中,输出结果与其他语句不同的是( )。A)if(a)printf(d-n,x); else printf(dn,y);B)if(a=0)printf(dn,y); else printf(dn,x);C)if(a!=0)p由printtf(dn,x); else printf(dn,y);D)if(a=0)printf(dn,x); else printf(dn,y);(12)有以下程序#includemain()int a=7;while(a-);printf(dn,a);)程序运行后的输出结果是( )。A)-1 B)0 C)1 D)7(13)有以下程序#includedouble f(double x);main()double a_0;int i;for(i=0;i30;i+=10) a+=f(double)i);printf(50fn,a);double f(double x)(return X+x+1;)程序运行后的输出结果是( )。A)503 B)401 C)500 D)1404(14)以下定义数组的语句中错误的是( )。A)int num=1,2,3,4,5,6; B)int num3=1,2,3,4,5,6;C)int num24=(1,2,3,4,5,6); D)int num4=1,2,3,4,5,6;(27)(15)有以下程序#include#define N 4void fun(int aN,im b)int i;for(i=0;iN;i+)bi=aii-aiN-1-i;)void main()int xNN=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,yN,i;fun(x,y);for(i=0;iN;i+)printf(”d,”,yi);printf(n);程序运行后的输出结果是( )。A)-12,-3,0,0, B)-3,-1,1,3, C)0,1,2,3, D)-3,-3,-3,-3 (16)以下程序的主函数中调用了在其前面定义的fun函数#includemain()double a15,k;k=fun(a);则以下选项中错误的fun函数首部是( )。A)double fun(double a15) B)double fun(double *a)C)double fun(double a) D)double fun(double a)(17)有以下程序#include#includemain()char a510=china,beijing,you,tiananmen,welcome”);int i,j;char t10;for(i=0;i4;i+)for(j=i+1;jO)strcpy(t,ai);strcpy(ai,aj);strcpy(aj,t);puts(a3);)程序运行后的输出结果是( )。A)Beijing B)china C)welcome D)tiananmen(18)有以下程序#includeint f(int m) static int n=0;n+=m:return n;)main()int n=0;printf(d,f(+n);printf(dn,f(n+);)程序运行后的输出结果是( )。A)1,2 B)1,1 C)2,3 D)3,3(19)有以下程序#includemain()char ch 35=AAAA,BBB,CC);printf (sn,ch1);程序运行后的输出结果是( )。A)AAAA B)CC C)BBBCC D)BBB(20)有以下程序段char name20;int num;scanf(name=%s num=%d,name;&num);当执行上述程序段,并从键盘输入:name=Lili num=1001后,name的值为A)Lili B)name=Lili C)Lili num= D)name=Lili num=1001(21)if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是A)必须是逻辑值 B)必须是整数值C)必须是正数 D)可以是任意合法的数值(22)有以下程序#include main() int x=011;printf(%dn,+x);程序运行后的输出结果是A)12 B)11 C)10 D)9(23)有以下程序#include main() int s;scanf(%d,&s);while(s0) switch(s) case1:printf(%d,s+5); case2:printf(%d,s+4); break; case3:printf(%d,s+3); default:printf(%d,s+1);break; scanf(%d,&s);运行时,若输入1 2 3 4 5 0,则输出结果是A)6566456 B)66656 C)66666 D)6666656(24)有以下程序段int i,n;for(i=0;i8;i+) n=rand()%5;switch (n) case 1: case 3:printf(%dn,n); break; case 2: case 4:printf(%dn,n); continue; case 0:exit(0);printf(%dn,n);以下关于程序段执行情况的叙述,正确的是A)for循环语句固定执行8次B)当产生的随机数n为4时结束循环操作C)当产生的随机数n为1和2时不做任何操作D)当产生的随机数n为0时结束程序运行(25)有以下程序#include main() char s=012xy08s34f4w2;int i,n=0;for(i=0;si!=0;i+)if(si=0&si=9) n+;printf(%dn,n);程序运行后的输出结果是A)0 B)3 C)7 D)8(26)若i和k都是int类型变量,有以下for语句for(i=0,k=-1;k=1;k+) printf(*n);下面关于语句执行情况的叙述中正确的是A)循环体执行两次B)循环体执行一次C)循环体一次也不执行D)构成无限循环(27)有以下程序#include main() char b,c; int i; b=a; c=A;for(i=0;i6;i+) if(i%2) putchar(i+b); else putchar(i+c); printf(n);程序运行后的输出结果是A)ABCDEF B)AbCdEf C)aBcDeF D)abcdef(28)有以下程序段#include main() while( getchar()!=n);以下叙述中正确的是A)此while语句将无限循环B) getchar()不可以出现在while语句的条件表达式中C)当执行此while语句时,只有按回车键程序才能继续执行D)当执行此while语句时,按任意键程序就能继续执行(29)有以下程序#include main() int x=1,y=0;if(!x) y+;else if(x=0)if (x) y+=2; else y+=3;printf(%dn,y);程序运行后的输出结果是A)3 B)2 C)1 D) 0(30)有以下程序#include main() char a30,b30;scanf(%s,a);gets(b);printf(%sn %sn,a,b);程序运行时若输入:how are you? I am fine则输出结果是A)how are you? B)how I am fine are you? I am fineC)how are you? I am fine D)row are you?(31)设有如下函数定义int fun(int k) if (k1) return 0;else if(k=1) return 1;else return fun(k-1)+1;若执行调用语句:n=fun(3);,则函数fun总共被调用的次数是A)2 B)3 C)4 D)5(32)有以下程序#include int fun (int x,int y) if (x!=y) return (x+y);2);else return (x); main() int a=4,b=5,c=6;printf(%dn,fun(2*a,fun(b,c);程序运行后的输出结果是A)3 B)6 C)8 D)12(33)有以下程序#include int fun() static int x=1;x*=2;return x; main() int i,s=1; for(i=1;i=3;i+) s*=fun(); printf(%dn,s); 程序运行后的输出结果是A)0 B)10 C)30 D)64(34)有以下程序#include #define S(x) 4*(x)*x+1main() int k=5,j=2;printf(%dn,S(k+j);程序运行后的输出结果是A)197 B)143 C)33 D)28(35)以下是if语句的基本形式:if(表达式) 语句 其中“表达式”A)必须是逻辑表达式 B)必须是关系表达式C)必须是逻辑表达式或关系表达式 D)可以是任意合法的表达式(36)有以下程序#include main()int x;scanf(“%d”,&x);if(x=3); elseif(x!=10)printf(“%dn”,x); 程序运行时,输入的值在哪个范围才会有输出结果A)不等于10的整数 B)大于3且不等于10的整数C)大于3或等于10的整数 D)小于3的整数(37)以下程序中的变量已正确定义for(i=0;i4;i+,i+) for(k=1;k3;k+)printf(*”);程序段的输出结果是A)* B)* C)* D)*(38)设变量已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)的程序段是A)n=0;while(ch=getchar()!=n)n+;B) n=0;while(getchar()!=n)n+;C)for(n=0; getchar()!=n;n+);D)n=0;for(ch=getchar();ch!=n;n+);(39)有以下程序#includemain() int a1,a2;char c1,c2;scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);printf(“%d,%c,%d,%c”,a1,c1,a2,c2); 若想通过键盘输入,使得a1的值为12,a2的是为34,c1的值为字符a,c2的值为字符b,程序输出结果是:12,a,34,b,则正确的输入格式是(以下代表空格,代表回车)A)12a34b B)12 a 34 b C)12,a,34,b D)12 a34 b(40)有以下程序#includeint f(int x,int y)return(y-x)*x);main()int a=3,b=4,c=5,d;d=f(f(a,b),f(a,c);printf(“%dn”,d); 程序运行后的输出结果是A)10 B)9 C)8 D)7(41)有以下程序#include int fun(int x,int y) if(x= =y) return(x);else return(x+y)/2) main() int a=4,b=5,c=6;printf(“%dn”,fun(2*a,fun(b,c) 程序运行后的输出结果是A)3 B)6 C)8 D)12(42)设函数中有整型变量n,为保证其在未赋值的情况下初值为0,应选择的存储类别是A)auto B) register C)static D)auto或register(43)以下选项中与if(a= =1)a=b;else a+;语句功能不同的switch语句是)switch() )switch(a=1)case:;break; case:;break;default:a+; case:a+; )switch() )switch(a=1)default:a+;break; case:=;break;case:; case:a+;(44)有如下嵌套的语句if(ab) if(ac) k=a; else k=c;if(bc) k=b; else k=c;以下选项中与上述语句等价的语句是)k=(ab)?a:b;k=(bc)?b:c;)k=(ab)?(bc)?a:b)(bc)?b:c);)k=(ab)?(ac)?a:c)(bc)?b:c);)k=(ab)?a:b;k=(ac)?a:c;(45)有以下程序#includemain()int i,j,m=1; for(i=1;i0;j- -)if(i+j3) break; m*=i*j;printf(“m=%dn”,m);程序运行后的输出结果是) ) ) )(46)有以下程序#includemain()int a=1,b=2; for(;a8;a+) b+=a;a+=2;printf(“%d,%dn”,a,b);程序运行后的输出结果是), ), ), ),(47)以下关于return语句的叙述中正确的是)一个自定义函数中必须有一条return语句)一个自定义函数中可以根据不同情况设置多条return语句)定义成void类型的函数中可以有带返回值的return语句)没有return语句的自定义函数在执行结束时不能返同到调用处(48)下列选项中,能正确定义数组的语句是)int num0.2008; )int num;)int N=2008; )#define N 2008int numN; int numN;(4)有以下程序#includemain()int a5=1,2,3,4,5,b5=0,2,1,3,0,i,s=0;for(i=1;i3;i+) s=s+abi;printf(“%dn”,s);程序运行后的输出结果是) ) ) )(5)有以下程序#includemain()int b33=0,1,2,0,1,2,0,1,2,i,j,t=1;for(i=1;i3;i+) for(j=1;j=1;j+) t+=bibji; printf(“%dn”,t);程序运行后的输出结果是) ) ) )(5)若有以下定义和语句char s110abcd!,s2=n123;printf(,strlen(s1),strlen(s2);则输出结果是) ) ) )(52)有以下程序#includeint f(int t,int n);main()int a4=1,2,3,4,s; s=f(a,4);printf(“%dn”,s);int f(int t,int n)if (n0)return tn-1+f(t,n-1);else return 0; 程序运行后的输出结果是) ) ) )(53)有以下程序#includeint fun()static int x=1; x*=2;return x;main()int i,s=1;for(i=1;i=2;i+) s=fun();printf(“%dn”,s);程序运行后的输出结果是) ) ) )(54)有以下程序#include#define SUB(a) (a)-(a)main()int a=2,b=3,c=5,d;d=SUB(a+b)*c;printf(“%dn”,d);程序运行后的输山结果是) ) ) )(55)设有定义:int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是A)if(ab) c=a,a=b,b=c;B)if(ab) c=a,a=b,b=c;C)if(ab) c=a;a=b;b=c;D)if(ab) c=a;a=b;b=c;(56)有以下程序#include main() int c=0,k; for (k=1;kb?(bc?1:0):0;功能相同的是A)if(ab)&(bc) k=1;else k=0;B)if(ab)|(bc) k=1;else k=0;C)if(a=b) k=0;else if(bb) k=1;else if(bc) k=1; else k=0;58)有以下程序#include main() char s=“012xy”;int i,n=0; for(i=0;si!=0;i+)if(si=a&si2); printf(“%d %dn”,k,n);程序运行后的输出结果是A)0 2B)1 3C)5 7D)1 2(60)有以下程序#include void fun(int p) int d=2; p=d+; printf(“%d”,p); main() int a=1; fun(a); printf(“%dn”,a);程序运行后的输出结果是A)32B)12C)21D)22(61)有以下程序#include main() int a =2,3,5,4,i; for(i=0;i4;i+) switch(i%2) case 0:switch(ai%2) case 0:ai+;break; case 1:ai-; break; case 1:ai=0;for(i=0;i4;i+) printf(“%d”,ai); printf(“n”);A)3 3 4 4B)2 0 5 0C)3 0 4 0D)0 3 0 4(62)有以下程序#include #includemain() char a10=”abcd”; printf(“%d,%dn”,strlen(a),sizeof(a);程序运行后的输出结果是A)7,4B)4,10C)8,8D)10,10(63)下面是有关C语言字符数组的描述,其中错误的是A)不可以用赋值语句给字符数组名赋字符串B)可以用输入语句把字符串整体输入给字符数组C)字符数组中的内容不一定是字符串D)字符数组只能存放字符串(64)有以下程序#include #define f(x) x*x*xmain() int a=3,s,t; s=f(a+1);t=f(a+1); printf(“%d,%dn,s,t);程序运行后的输出结果是A)10,64B)10,10C)64,10D)64,64二 填空题9、有以下程序段s=1.0;for(k=1,k=n;k+) s=s+1.0(k*(k+1);printf(“%fn”,s);请填空,使以下程序段的功能与上面的程序段完全相同。s=1.0; k=1;while( k=n ) s=s+1.0(k*(k+1); k=k+1;printf(“%fn”,s);10、以下程序段的输出结果是( 074 )#include mian() char a,b; for(a=0;a20;a+=7) b=a%10; putchar(b+0); 12、有以下程序#include mian()int arr=1,3,5,7,2,4,6,8, i, start;scanf(“%d”, &start);for(i=0,i3,i+)printf(“%d”,arr(start+i)%8);若在程序运行时输入整数10 ,则输出结果为( 572 )。(13)以下程序运行后的输出结果是 34 。#includemain()int i,j;for(i=6;i3;i-)j=i;printf(”ddn”,i,j);(14)以下程序运行后的输出结果是 14 。#includemain()int i,n=0,0,0,0,0;for(i=1;i=2;i+)ni=ni-1*3+1;printf(d,ni);printf(n);(15)以下程序运行后的输出结果是 AFK 。 #include main() chara; for(a=0;a15;a+=5) putchar(a+A);) printf(n);(16)以下程序运行后的输出结果是 211 。 #include void fun(int x) if(x/50)fun(x/5); prinff(t,x); ) main() fun(11);printf(n);(17)有以下程序 #include main() int c3=0,k,i; while(k=getchar()!=n) ck-A+; for(i=0;i3;i+)printf(”d”,ci);printf(n); 若程序运行时从键盘输入ABcAcC,则输出结果为 213 。(18)以下程序运行后的输出结果是 3 。 #include main() int n2,i,j; for(i=0;i2;i+)ni=0; for(i=0;i2;i+) for(j=0;j2;j+)nj=ni+1; printf(%dn,n1); (19)有以下函数 void prt(char ch,int n) int i;for(i=1;i=n;i+)printf(i%6!=0?%c:%cn,ch);执行调用语句prt(*,24);后,函数共输出了 4 行*号。(20)以下程序运行后的输出结果是 20 0 。#include main() int x=10,y=20,t=0;if(x=y)t=x;x=y;y=t;printf(%d %dn,x,y);(21)以下程序运行后的输出结果是 13715 。#include main() int i,n5=0;for(i=1;i=4;i+) ni=ni-1*2+1; printf(%d,ni); printf(n);(22)有以下程序#include main( )char c1,c2;scanf(“&c”,&c1);while(c190)scanf(“&c”,&c1);c2=c1+32;printf(“&c, &cn”,c1,c2);程序运行输入65回车后,能否输出结果、结束运行(请回答能或不能) 能 (23)有以下程序#includemain()int a=1,b=2,c=3,d=0;if(a=1) if(b!=2) if(c=3) d=1; else d=2; else if(c!=3) d=3;else d=4;else d=5;printf(“%dn”,d);程序远行后的输出结果是 4 。(24)有以下程序#includemain()int m,n;scanf(“%d%d”,&m,&n);while(m!=n)while(mn) m=m-n; while(mn) n=n-m;printf(“%dn”,m);程序运

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论