好文档 - 专业文书写作范文服务资料分享网站

大学C语言期末考试练习题(带详解答案)教程文件 

天下 分享 时间: 加入收藏 我要投稿 点赞

5.

#include < stdio .h > main ( )

{ float c=3.0 , d=4.0; if ( c>d ) c=5.0; else

if ( c==d ) c=6.0; else c=7.0;

printf ( “%.1f\\n”,c ) ; }

运行结果为:7.0

此题为if...else...语句的嵌套,第二if...else...作为第一个if...else...语句else部分的复合语句。

若表达式c>d成立,则执行c=5.0; 否则(表达式c>d不成立) 若表达式c==d成立,则执行c=6.0; 否则,执行c=7.0; 输出c中的值

3.0小于4.0,因此表达式c>d不成立,执行第二个if…else…。

3.0不等于4.0,因此表达式c==d不成立,执行c=7.0,将7.0赋给c, 覆盖掉c中的3.0,此时c中的值为7.0 输出此时的c中的值 6.

#include main() { int m; scanf(\ if (m >= 0) { if (m%2 == 0)printf(\ else printf(\} else

{ if (m % 2 == 0) printf(\

else printf(\} }

若键入-9,则运行结果为: -9 is a negative odd 7.

#include main()

{ int num=0;

while(num<=2){ num++;printf(\;}

}

运行结果为: 1 2 3

详见教材p115循环结构

当循环条件num<=2成立的时候,执行循环体{ num++;printf(\;}中的语句。

循环初值num为0; 循环条件num<=2成立

第1次循环:执行num++;即将num中的值加1,执行后num为1; 执行printf(\;在屏幕上输出num中的值,即输出1,之后换行

此时num中的值为1,循环条件num<=2成立

第2此循环:执行num++;即将num中的值加1,执行后num为2; 执行printf(\;在屏幕上输出num中的值,即输出2,之后换行

此时num中的值为2,循环条件num<=2成立

第3此循环:执行num++;即将num中的值加1,执行后num为3; 执行printf(\;在屏幕上输出num中的值,即输出3,之后换行 此时num中的值为3,循环条件num<=2不成立,结束循环。 8.

#include main( )

{ int sum=10,n=1;

while(n<3) {sum=sum-n; n++; } printf(“%d,%d”,n,sum); }

运行结果为:3,7

当循环条件n<3成立的时候,执行循环体{sum=sum-n; n++; }中的语句。

循环初值sum为10,n为1; 循环条件n<3成立

第1次循环:执行sum=sum-n=10-1=9; 执行n++,即将n中的值加1,执行后n为2;

此时n中的值为2,sum中的值为9,循环条件n<3成立,继续执行循环 第2次循环:执行sum=sum-n=9-2=7; 执行n++,即将n中的值加1,执行后n为3;

输出此时n,sum中的值,即为3,7。需要注意,在printf(“%d,%d”,n,sum); 中要求输出的数据

彼此间用逗号间隔,因此结果的两个数据间一定要有逗号 9.

#include main()

{ int num,c;

scanf(\

do {c=num; printf(\ }while((num/=10)>0); printf(\ }

从键盘输入23,则运行结果为:32

详见教材p117循环结构;p60复合的赋值运算符 do{ }while(表达式);

先无条件执行循环体,再判断循环条件。注意while(表达式)后有分号

定义整型变量num,c; 为num赋一个整型值;

执行{c=num; printf(\ }直到循环条件(num/=10)>0不成立; 输出换行

已知为num赋值23 第1次执行循环体

执行c=num=23=3; 执行printf(\输出3

判断循环条件 num/=10等价于num=num/10; 因此num=23/10=2, 2大于0,因此循环条件(num/=10)>0成立,继续执行循环体。执行完第1次循环时,num为2,c为3

第2次执行循环体

执行c=2=2;

执行printf(\再输出2

判断循环条件num=2/10=0,0等于0,因此循环条件(num/=10)>0不成立。结束循环 10

#include main()

{ int s=0,a=5,n;

scanf(\

do { s+=1; a=a-2; }while(a!=n); printf(\,%d\\n\ }

若输入的值1,运行结果为: 2,1

详见教材p117循环结构;p60复合的赋值运算符 执行{ s+=1; a=a-2; }直到循环条件a!=n不成立;

已知为n赋值1,s为0,a为5 第1次执行循环体

执行s+=1;等价于s=s+1=0+1 执行a=a-2; a=5-2=3

判断循环条件,3不等于1,因此循环条件a!=n成立,继续执行循环体。 执行完第1次循环时,s为1,a为3 第2次执行循环体

执行s+=1;等价于s=s+1=1+1=2 执行a=a-2; a=3-2=1

判断循环条件,1等于1,因此循环条件a!=n不成立,结束循环。 执行完第2次循环时,s为2,a为1

输出此时s,a中的值,结果为2,1 11.

#include \

main() {char c; c=getchar();

while(c!='?') {putchar(c); c=getchar(); } }

如果从键盘输入abcde?fgh(回车) 运行结果为:abcde 12.

#include main() { char c;

while((c=getchar())!=’$’)

{ if(‘A’<=c&&c<=‘Z’) putchar(c);

else if(‘a’<=c&&c<=‘z’) putchar(c-32); } }

当输入为ab*ABí#CD$时,运行结果为:ABABCDCD

13.

#include main()

{ int x, y =0;

for(x=1;x<=10;x++)

{ if(y>=10)

break; y=y+x; }

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

}

运行结果为:10 5 详见教材p120 for语句

详见教材p126~128 break,continue语句 for( 表达式1;表达式2;表达式3) { }

(1) 先求解表达式1

(2) 求解表达式2,若其值为真,执行循环体,然后执行 (3). 若为假,则结束循环,转到(5) (3) 求解表达式3

(4) 转回上面 (2)继续执行

(5) 循环结束,执行for语句下面的一个语句

break ,跳出循环体;continue,结束本次循环(第i次循环),继续执行下一次循环(第i+1次循环)

此题 表达式1为x=1,表达式2(循环条件)为x<=10,表达式3为x++ 初值x为1,y为0,循环条件(即表达式2)x<=10成立,进入循环体

第1次循环 执行if语句。0小于10,if语句的条件表达式不成立,不执行break;

执行y=y+x; y=0+1=1

转向表达式3,执行x++, x=x+1=1+1=2。循环条件x<=10成立,进入第2次循环

第2次循环 执行if语句。1小于10,if语句的条件表达式不成立,不执行break;

执行y=y+x; y=1+2=3

转向表达式3,执行x++, x=x+1=2+1=3。循环条件x<=10成立,进入第3次循环

第3次循环 执行if语句。3小于10,if语句的条件表达式不成立,不执行break;

执行y=y+x; y=3+3=6

转向表达式3,执行x++, x=x+1=3+1=4。循环条件x<=10成立,进入第4次循环

第4次循环 执行if语句。6小于10,if语句的条件表达式不成立,不执行break;

执行y=y+x; y=6+4=10

转向表达式3,执行x++, x=x+1=4+1=5。循环条件x<=10成立,进入第5次循环

大学C语言期末考试练习题(带详解答案)教程文件 

5.#includemain(){floatc=3.0,d=4.0;if(c>d)c=5.0;elseif(c==d)c=6.0;elsec=7.0;printf(“%.1f\\n”,c);}运行结果为:7.0此
推荐度:
点击下载文档文档为doc格式
8ryjw0ni8z2teb88j4i568ub00wtu600634
领取福利

微信扫码领取福利

微信扫码分享