c语言答案

2019-08-03 12:39

4.3.2习题参考答案

一.选择题

1.C语言中while和do-while循环的主要区别是。 A.do-while的循环体至少无条件执行一次

B.while的循环控制条件比do-while的循环控制条件严格 C.do-while允许从外部转到循环体内 D.do-while的循环体不能是复合语句 2.下列叙述中正确的是

A.break 语句只能用于 switch 语句体中

B.continue语句的作用是使程序的执行流程跳出包含它的所有循环 C.break 语句只能用在循环体内和 switch 语句体内

D.在循环体内使用 break语句和 continue 语句的作用相同 3.下列叙述中正确的是

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

C.用do-while语句构成的循环,在while后的表达式为非零时结束循环。 D.用do-while语句构成的循环,在while后的表达式为零时结束循环。 4.执行x=-1; do { x=x*x; } while (!x); 循环时,下列说法正确的是 A.循环体将执行一次 B.循环体将执行两次

C.循环体将执行无限次 D.系统将提示有语法错误

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.以下程序段的输出结果是。

第30/106页

int main(void) {

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

}

printf(\return 0; }

A.10 B.6 C.3 D.1

7.运行以下程序后,如果从键盘上输入65 14<回车>,则输出结果为。 int main(void) {

int m, n;

printf(\scanf(\while (m!=n)

{ while (m>n) m=m-n; while (n>m) n=n-m; }

printf(\return 0; }

A.m=3 B.m=2 C.m=1 D.m=0 8.下列程序段的输出结果是。 int main(viod) {

for(int i=1;i<6;i++) { if( i%2 != 0) { printf(\continue; }

printf(\

}

printf(\return 0; }

A.#*#*# B.##### C.***** D.*#*#* 二.填空题

1.若s=0,执行循环语句\后,i的值为 2.下列程序段的输出结果是。 int x=2; do {

第31/106页

printf(“*”); x--; } while(!x==0);

3.下列程序段的功能是计算:s=1+12+123+1234+12345。则划线处应填 int t=0,s=0,i;

for(i=1;i<=5;i++) {

t=i+ printf(\4.以下程序的输出结果是。

int main(void)

{ }

5.阅读下列程序并回答问题。 main()

{ int i, j, k=0, m=0; for(i=0; i<2; i++) {

; /* 第6行*/

for(j=0; j<3; j++) k++;

m++; /* 第9行*/ }

printf(\(1)程序的输出是

(2)将第9行改为 \,程序的输出是 。

(3) 将第6行改为\,将第9行改为 \,程序的输出是 。 6.输入 happy$$new$$year!<回车>,则下列程序的运行结果是 int main(void) {

int i,word=0; char c; while((c=getchar())!='\\n') { if (c=='$') word=0; else if(word==0)

if (c>='a'&&c<='z') { c=c-'a'+'A'; word=1; word=0;

} } int num=0; while(num<6) { num++; if(num==3) break; printf(%um); } return 0; else putchar(c); return 0;

第32/106页

}

三.程序设计题

1.输入一批正整数(以零或负数为结束标志),求其中的偶数和。 解答:

#include int main(void) {

int x, sum;

printf(\scanf(\sum = 0;

while(x>0){

if(x%2==0) sum = sum + x; scanf(\}

printf(\return 0; } 2.输入1个实数 x,计算并输出下式的值,直到最后一项的绝对值小于10-5(保留2位小数)。要求定义和调用函数fact(n)计算n的阶乘,可以调用pow()函数求幂。 x2x3x4

s?x????? 2!3!4! 解答:

#include #include int main(void) {

int i;

double item, s, x; double fact(int n);

scanf(\s = 0; item = x; i = 1;

while(fabs(item) >= 0.00001){ item = pow(x,i)/fact(i); s = s+ item; i++; }

printf(\return 0;

第33/106页

}

double fact(int n) {

int i;

double result=1; for(i=1;i<=n;i++)

result=result*i;

return result; } 3.输入一个整数,求它的各位数字之和及位数。例如234的各位数字之和是9,位数是3。 解答: #include int main(void) {

int count, sum; long in;

printf(\scanf(\if(in<0) in=-in; count=0; sum=0;

while(in!=0){

sum = sum + in; in=in/10; count++; }

printf(\return 0; }

4.输入一个正整数n,输出 2/1+3/2+5/3+8/5 +?的前n项之和,保留2位小数。(该序列从第二项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子) 解答:

#include int main(void) {

int i,n,a,b,t; float s;

printf(\scanf(\a=2;b=1;s=0;

for(i=1;i<=n;i++){ s=s+a*1.0/b; t=a;


c语言答案.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2011华师汉硕语言学基础

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

马上注册会员

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