2011C语言复习题给学生(本科80学时)(2)

2019-08-30 22:50

printf(“%d\\n”,z)

} 【2】

8 为了避免嵌套的if—else语句的二义性,C语言规定else总是与【在其之前未配对的最近的if 】组成配对关系。

9 已知int x=1,y;执行语句y=++x>5&&++x<10;后变量x的值是【2】。 10 以下程序段的输出结果是

int a=10,b=50,c=30; if(a>b) a=b; b=c; c=a;

printf(\; 【a=10 b=30 c=10】

11 以下程序的输出结果是

main()

{ int a=0,b=1,c=0,d=20; if(a) d=d-10; else if(!b) if(!c) d=15; else d=25;

printf(\;

} 【d=20】

12 下面程序的输出结果为

main()

{ int a=1,b=0; switch(a)

{ case 1: switch (b)

{ case 0: printf(\; break; case 1: printf(\; break; }

case 2: printf(\; break; }

} 【**0****2**】

13 从键盘上输入\时,下面程序的输出是

#include main() { int c;

while((c=getchar())!=''\\n'') switch(c -''2'') { case 0:

case 1: putchar(c+4);

case 2: putchar(c+4);break; case 3: putchar(c+3);

default: putchar(c+2);break; }

printf(\;

} 【88898787】

14 将下列数学式改写成C语言的关系表达式或逻辑表达式A)a≠b或a<=c; 【a!=b||a<=c 】

B)|x|>=4;【x>=4||x<=-4】.

15 C语言中用【1】表示逻辑值“真”,用【0】表示逻辑值“假”。

16 以下程序用于判断a,b,c能否构成三角形,若能输出YES,若不能输出NO。当a,b,c输

入三角形三条边长时,确定a,b,c能构成三角形的条件是需要同时满足三条件:a+b>c,a+c>b,b+c>a。 请填空。 main() {

float a,b,c;

scanf(“%f%f%f”,&a,&b,&c);

if( ) printf(“YES\\n”);/*a,b,c能构成三角形*/ else printf(“NO\\n”);/*a,b,c不能构成三角形*/

} 【a+b>c&&a+c>b&&b+c>a】

17 以下程序的运行结果是

fun(int t[],int n) { int i,m;

if(n==1) return t[0]; else

if(n>=2) {m=fun(t,n-1); return m;} }

main() {

int a[]={11,4,6,3,8,2,3,5,9,2}; printf(“%d\\n”,fun(a,10));

} 【11】

18 C语言的 switch 语句中,case 后只能为常量或常量表达式 19有如下程序段:

int x =1, y=1 ; int m , n; m=n=1; switch (m)

{ case 0 : x=x*2; case 1: { switch (n)

{ case 1 : x=x*2; case 2 : y=y*2;break; case 3 : x++; } }

case 2 : x++;y++;

case 3 : x*=2;y*=2;break; default:x++;y++;

}

执行完成后,x和y 的值分别为: ( x=6 y=6)

20多分支选择可以用嵌套的if 语句和switch语句来实现。

21若从键盘输入58,则以下程序输出的结果是585858 。 main() { int a;

scanf(\

if(a>50) printf(\ if(a>40) printf(\ if(a>30) printf(\ }

22下列程序段的输出结果是passwarm。 int n=’c’; switch(n++)

{ default: printf(“error”);break;

case ‘a’:case ‘A’:case ‘b’:case ‘B’:printf(“good”);break; case ‘c’:case ‘C’:printf(“pass”); case ‘d’:case ‘D’:printf(“warn”); }

23以下两条if语句:

if(a<=b) x=1; else y=2;

if(a>b)) printf(\可合并成一条if语句是:

if(a<=b) printf(\

24 编程判断输入的正整数是否既是5又是7的整倍数。若是,输出yes,否则输出no。 25 设N是一个四位数,它的9倍恰好是其反序数(例如:123的反序数是321),求N的值。 26 输入年份year和月month,求该月有多少天。判断是否为闰年,可用如下C语言表达式:year%4==0 && year0!=0 || year@0==0。若表达式成立(即表达式值为1),则year为闰年;否则,表达式不成立(即值为0),year为平年。

27 打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该 数本身。例如:153是一水仙花数,因为153=1^3+5^3+3^3.

28 编写一程序,对于给定的一个百分制成绩,输出相应的五分制成绩。设:90分以上为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。

第五章知识点

1 有程序段: int a;

for(scanf(“%d”,&a);!a; ) printf (“continue”);

则 for 语句中的 !a 等价于【a==0 】 2 有程序段:

int x,y,z;

x=20,y=40,z=60; while(x

printf(“%d,%d,%d”,x,y,z);

则此程序执行的输出结果为【32,28,30】

3 有程序段:

int j=0,k=0,a=0; while(j<2) { j++; a=a+1; k=0;

while(k<=3) { k++; if(k%2!=0) continue; a=a+1; }

a=a+1; }

执行完成后,a的值为【8 】

4 以下程序的输出结果是

main()

{ int num=0; while(num<=2) { num++;

printf(“%d,”,num); }

} 【 1,2,3,】

5 有程序段:

(1) int n=1;

do{ n=++n*5;} while(n=10);

则此循环的循环体 【 执行无限次】

(2) x=-1;

do

{ x=x*x;} while(!x);

语句执行次数是: 【循环执行一次】 (3) int k=10;

while (k=0) k--;

语句执行次数 【循环体语句一次也不执行】

(4) for(x=0,y=10;(y>0)&&(x<4);x++,y-- ) ;【循环执行4次】 6 以下程序的输出结果是

main()

{ int n=0;

while(n++<=2); printf(“%d”,n);

} 【4】

7 以下程序的输出结果是

main()

{ int i,j,m=0;

for(i=1;i<15;i+=4)

for(j=3;j<=19;j+=4) m++; printf(“%d”,m);

} 【20】

8 以下程序的输出结果是

main()

{ int n=10; while(n>7) { n--;

printf(“%d,”,n);

} } 【9,8,7,】

9 以下程序的输出结果是

main()

{ int a=1,b=10;

do{b-=a; a++;} while(b--<0); printf(“a=%d,b=%d”,a,b);

} 【a=2,b=8】

10 已知int i=1; 执行语句while (i++<4) ;后,变量i的值为【5】 11下面程序的输出结果是

main() {int i;

for(i=0;i<10;i++); printf(“%d”,i);

} 【10】

12 下面程序的输出结果是

main()

{ int a=1,b=0; do

{ switch(a)

{ case 1: b=1;break; case 2: b=2;break; default : b=0; }

b=a+b; }while(!b);

printf(\;

} 【a=1,b=2】


2011C语言复习题给学生(本科80学时)(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:jubingxi

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

马上注册会员

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