C语言习题集参考答案(3)

2019-01-26 20:30

2、下面的if语句与y=(x>=10)?3*x-11: (x<1)?x:2*x-1;的功能相同,请补充程序,使之能完成要求的功能。1、x<10 2、x>=1 if(_1_) if(_2__) y=2*x-1; else y=x; else y=3*x-11;

3、若x为int类型,请以最简单的形式写出与逻辑表达式!x等价的C语言关系表达式__。 x==0

4、表示“整数x的绝对值大于5”时值为“真”的C语言表达式是___。 x>5||x<-5

五、循环结构程序设计

典型考题

1、有以下程序:

main(){ int i,s=0;for(i=1;i<10;i+=2) s+=i+1;printf(“%d\\n”,s);} 程序执行后的输出结果是__D__。

A)自然数1~9的累加和 A)自然数1~10的累加和 C)自然数1~9中奇数之和 D)自然数1~10中偶数之和 2、有以下程序: main(){ int i,n=0; for(i=2;i<5;i++){ do{ if(i%3) continue;n++;}while(!i); n++;} printf(“n=%d\\n”,n);} 程序执行后输出结果是_D__。

A)n=5 B)n=2 C)n=3 D)n=4 3、下面程序的功能是输出以下形式的金字塔图案:

* *** ***** *******

main(){ int i,j; for(i=1;i<=4;i++){ for(j=1;j<=4-i;j++)printf(“ “); for(j=1;j<=__;j++)printf(“*”); printf(“\\n”); }}

在下划线处应填写的是_B__。

A)i B)2*i-1 C)2*i+1 D)i+2 4、有如下程序:

main(){ int s=0,a=1,n;scanf(“%d”,&n); do{ s+=1;a=a-2;}while(a!=n); printf(“%d”,s);}

若要使程序输出值为2,则应该从键盘输入的值是_B__。 A)-1 B)-3 C)-5 D)0

5、有如下程序段,其中s、a、b、c均为已经定义为整型变量,且a、c均已经赋值(c>0)。 s=a;

for(b=1;b<=c;b++)s=s+1;

则与上述程序段功能等价的赋值语句是_B__。 A)s=a+b; B)s=a+c; C)s=s+c; D)s=b+c; 6、有如下程序:

main(){ int k=4,n=0;for(;n

7、有以下程序: main(){ int i=0,s=0; do{ if(i%2){i++;continue;} i++;s+=i; }while(i<7); printf(“%d\\n”,s);}

执行后输出结果是__A_。

A)16 B)12 C)28 D)21

8、以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。 #define N 10

void arrin(int x[N]){ int i=0; while(i

填空题

1、有以下程序:

main(){ int t=1,i=5;for(;i>=0;i--) t*=i; printf(“%d\\n”,t);} 执行后输出的结果是___。0 注意此题的技巧 2、执行以下程序后,输出’#’号的个数是___。6 #include

main(){ int i,j;for(i=1;i<5;i++) for(j=2;j<=i;j++) putchar(‘#’);}

3、有以下程序:

main(){ int a[4][4]={{1,2,-3,4},{0,-12,-13,14},{-21,23,0,-24},{-31,32,-33,0}}; int i,j,s=0; for(i=0;i<4;i++){ for(j=0;j<4;j++){if(a[i][j]<0)continue;if(a[i][j]==0)break;s+=a[i][j];}} printf(“%d\\n”,s);}

执行后输出的结果是___。1+2+23+32=58

练习

1、有如下程序:

main(){int i,sum;for(i=1;i<=3;sum++)sum+=i;printf(“%d\\n”,sum);} 该程序的执行结果是_C__。

A)6 B)3 C)死循环 D)0 2、有如下程序:

main(){int x=23;do{printf(“%d”,x--)}while(!x);} 该程序执行的结果是_B__。

A)321 B)23 C)不输出任何内容 D)死循环 3、有如下程序:

main(){ int n=9;while(n>6){n--;printf(“%d”,n);}} 该程序段的输出结果是_B__。

A)987 B)876 C)8765 D)9876 4、以下循环体的执行次数是__C__。

main(){int i,j;for(i=0,j=1;i<=j+1;i+=2,j--) printf(“%d\\n”,i);} A)3 B)2 C)1 D)0 5、以下叙述正确的是_D__。

A)do-while语句构成的循环不能用其它语句构成的循环来代替。 B)do-while语句构成的循环只能用break语句退出。

C)用do-while语句构成的循环,在while后的表达式为非0时结束循环。 D)用do-while语句构成的循环,在while后的表达式为0时结束循环。 6、以下程序的输出结果是__C_。 main(){int i,j,m=0,n=0; for(i=0;i<2;i++) for(j=0;j<2;j++) if(j>=i)m=1;n++; printf(“%d\\n”,n);}

A)4 B)2 C)1 D)0 7、以下程序段的输出结果是_B__。 int a,y;a=10;y=0;

do{ a+=2;y+=a;printf(“a=%d y=%d\\n”,a,y);if(y>20)break;}while(a=14);

A)a=12 y=12 B)a=12 y=12 C)a=12 y=12 D)a=12 y=12 a=14 y=16 a=16 y=28 a=14 y=26 a=16 y=20 a=14 y=44 a=18 y=24

8、以下程序的输出结果是_D__。

main(){int x=10,y=10,i;for(i=0;x>8;y=++i) printf(“%d %d”,x--,y);} A)10 1 9 2 B)9 8 7 6 C)10 9 9 0 D)10 10 9 1 9、以下程序的输出结果是_A__。 main(){ int n=4; while(n--)printf(“%d”,--n);}

A)20 B)31 C)321 D)210 10、以下程序的输出结果是_A__。

main(){ int i;for(i=1;i<6;i++){if(i%2){printf(“#”);continue;}printf(“*”);}printf(“\\n”);} A)#*#*# B)##### C)***** D)*#*#* 11、当执行以下程序段时,__A__。 x=-1;do{x=x*x;}while(!x);

A)循环体将执行1次 B)循环体将执行2次 C)循环体将执行无限次 D)系统提示有语法错误

12、执行以下程序后,输出的结果是_D__。 main(){int y=10;do{y--;}while(--y);printf(“%d\\n”,y--);} A)-1 B)1 C)8 D)0

13、在下列选项中,没有构成死循环的程序是_B__。 A)int i=100; while(1){ i=i0+1; if(i>100)break;} B)int k=1000; do{++k;} while(k>=10000); C)int s=36; while(s); --s; D)for(;;) 14、执行语句:for(i=1;i++<4;);后变量i的值是__C__。 A)3 B)4 C)5 D)不定 15、以下程序的输出结果是__B__。 main(){ int i,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

16、运行以下程序后,如果从键盘上输入65 14<回车>,则输出结果为_C__。 main(){ int m,n;printf(“Enter m,n:”); while(m!=n){ while(m>n)m-=n; while(n>m)n-=m;} printf(“m=%d\\n”,m);} A)m=3 B)m=2 C)m=1 D)m=0 17、以下程序运行后,输出结果为____。 main(){ int y=18,i=0,j,a[8]; do{a[i]=y%2;i++;y=y/2;}while(y>=1); for(j=i-1;j>=0;j--) printf(“%d”,a[j]); printf(“\\n”);}

A)10000 B)10010 C)00110 D)10100 注:此题是求的y的二进制数

填空题

1、要使以下程序段输出10个整数,请填入一个整数。 for(i=0;i<=_____;printf(“%d\\n”,i+=2)); 18或19 2、函数pi的功能是根据以下公式求π的近似值。 (π*π)/6=1+1/(2*2)+1/(3*3)+1/(n*n)

请在下面的函数中填空,完成求π的功能。 #include double pi(long n){ double s=0.0;long i; for(i=1;i<=n;i++) s=s+____; 1.0/(i*i) return(sqrt(6*s));}

3、若输入字符串:abcde<回车>,则以下while循环执行__0__次。

while((ch=getchar())==’e’)printf(“*”);

4、下面程序的功能是:计算1~10之间奇数之和及偶数之和,请填空。 main(){ int a,b,c,i; a=c=0; for(i=0;i<=10;i+=2){a+=i; ______;} c=c+i=1; printf(“偶数之和=%d\\n”,a); printf(“奇数之和=%d\\n”,c-11);}

六、字符型数据 典型考题

1、已经定义ch为字符型变量,以下赋值语句中错误的是__A__。 A)ch=’\\’ B)ch=62+3 C)ch=NULL D)ch=’\\xaa’ 2、已定义c为字符型变量,则下列语句中正确的是__A_。 A)c=’97’ B)c=”97” C)c=97 D)c=”a” 3、有以下程序:

main(){ char a,b,c,*d; a=’\\’; b=’\\xbc’; c=’\\0xab’; d=”\\0127”; printf(“%c%c%c%c\\n”,a,b,c,*d);} 编译时出现错误,以下叙述中正确的是__D__。

A)只有a=’\\’;语句不正确。 B)b=’\\xbc’;语句不正确。

C)d=”\\0127”;语句不正确。 D)a=’\\’;和c=’\\0xab’;语句都不正确。

填空题

1、已知字符’A’的ASCII码值是65,以下语句的输出结果是____。B 66 char ch=’B’; printf(“%c %d\\n”,ch,ch);

2、有以下程序: #include

main(){ char ch1,ch2; int n1,n2; ch1=getchar();ch2=getchar(); n1=ch1-‘0’;n2=n1*10+(ch2-‘0’); printf(“%d\\n”,n2);}

程序运行时输入:12<回车>,执行后输出结果是____。 12 3、以下程序运行后的输出结果是____。 b main(){ char m; m=’B’+32;printf(“%c\\n”,m);} 4、有以下程序:

main(){ char a; a=’H’-‘A’+’0’; printf(“%c\\n”,a);} 7

练习

1、设有说明语句:char a=’\\72’;则变量a__A__。

A)包含1个字符 B)包含2个字符 C)包含3个字符 D)说明不合法 2、语句printf(“a\\bre\\’hi\\’y\\\\\\bou\\n”);的输出结果是__C__。 A)a\\bre\\’hi\\’y\\\\\\bou B)a\\bre\\’hi\\’y\\bou C)re’hi’you D)abre’hi’y\\bou 3、运行下面的程序: main(){ char c[6]; int i=0;

for(;i<6;c[i]=getchar(),i++);


C语言习题集参考答案(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:590# - 仪器分析

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: