重庆理工大学-C语言程序设计基础教程_习题答案(纪纲_金艳)(4)

2019-06-17 18:41

do{ printf(“=”, x-=2); } while(!(--x));

A) 1 2 B) 3 2 C) 2 3 D) 1 -2

5.2.14 下面程序的功能是计算正整数2345的各位数字的平方和,请选择填空。

#include void main()

{ int n=2345,sum=0;

do

{ sum=sum+( [1] B ); n=( [2] C ) }while(n);

printf(“sum=%d”,sum);

}

[1] A) n B) (n)*(n)

C) n/10 D) (n/10)*(n/10) [2] A) n/1000 B) n/100

C) n/10 D) n

5.2.15 执行程序段:x=-1;do{x=x*x;} while(!x);的结果是( C )。

A) 死循环 B) 循环执行2次 C) 循环执行一次 D) 有语法错误 5.2.16 以下能正确计算1*2*3*4…*10的程序段是( C )。

A) do(i=1;s=1;s=s*i;i++) while(i<=10); B) do(i=1;s=0;s=s*i;i++) while(i<=10); C) i=1;s=1; do(s=s*i;i++) while(i<=10); D) i=1;s=0; do(s=s*i;i++) while(i<=10);

5.2.17 下面程序的功能是从键盘输入若干学号,然后输出学号中百位数字式3的

学号(输入0时结束循环),请选择填空。 #include void main()

{ long int num;

scanf(“%ld”,&num); do

{ if( [1] B) printf(“%ld”, num); scanf(“%ld”,&num); }whle( [2] C ))

}

[1] A) num0/10==3 B) num/100==3

C) num/10==3 D) num/10==3

[2] A) !num B) num<0==0 C) !num==0 D) !num!=0 5.2.18 对于for(表达式;;表达式3)可理解为( B )。

A) for(表达式;0;表达式3) B) for(表达式;1;表达式3)

C) for(表达式;表达式1;表达式3) D) for(表达式;表达式3;表达式3) 5.2.19 以下不正确的描述是( B )。

A) break语句不能用于循环语句和switch语句外的任何其他语句 B) 在switch语句中使用break语句或continue语句的作用相同

C) 在循环语句中使用continue语句是为了结束本次循环,而不是终止整

个循环的执行。

D) 在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环

5.2.20 若i为整型变量,循环语句for(i=2,i==0;) printf(“%d”,i--);的执行次数为(B)。

A) 无限次 B) 0次 C) 1次 D) 2次 5.2.21 以下叙述正确的是(C )。

A) for循环中设置if(条件)break,当条件成立时中止程序执行。

B) for循环中设置if (条件)continue,当条件成立时中止本层循环。 C) for循环中设置if (条件)break,当条件成立时中止本层循环。 D) for循环中设置if (条件) continue,当条件成立时暂停程序执行。 5.2.22 下面关于for循环的正确描述是(D )。

A) for循环只能用于循环次数已经确定的情况。 B) for循环是先执行循环体语句,后判断表达式。 C) 在for循环中,不能用break语句跳出循环体。 D) for循环的循环体语句中,可以包含多条语句。

5.2.23 循环语句for(i=0,x=0; !x&&i<=5; i++);的执行次数为(B)。

A) 5次 B) 6次 C) 1次 D) 无限 5.2.24 以下程序段的输出结果是( D )。

int x,i;

for(i=1;i<=100;i++)

{ x=I; if(++x%2==0) if(++x%3==0) if(++x%7==0) printf(“%d”,x); } A) 39 81 B) 42 84 C) 26 68 D) 28 70 5.2.25 以下描述正确的是( C )。

A) goto语句只能用于退出多层循环 B) switch语句不能出现continue语句 C) 只能用continue语句来终止本次循环 D) 在循环中break语句不能独立出现 5.2.26 以下不是无限循环的语句是( A )

A) for(y=0,x=1;x>++y; x=i++) i=x; B) for(; ; x++=i);

C) while(1) { x++; }

D) for(i=10; ; i- -) sum+=i;

5.2.27 下面程序段的输出结果是( D )。

int i,sum;

for(i=1;i<=10;i++) sum+=sum printf(“%d\\n”, i);

A) 10 B) 9 C) 15 D) 11 5.2.28 下面程序段的运行结果是(D )。

for(x=3; x<6; x++) printf((x%2)?(“**%d”):(“##%d\\n”),x);

A) **3 B)##3 C) ##3 D) **3##4 ##4 **4 **4##5 **5 **5 ##5

5.2.29 执行语句for(i=1; i++<4; );后变量i的值是( C )。

A) 3 B) 4 C) 5 D) 不定 5.2.30 下面程序段运行结果是(C)。

int i,j,k;

for(i=2;i<6;i++,i++) { k=1;

for(j=i; j<6; j++) k+=j; } printf(“%d\\n”,k);

A) 4 B) 5 C) 10 D) 7 5.2.31 下面程序段( D )。

for( t=1; t<=100; t++) { scanf(“%d”, &x); If(x<0) continue; printf(”=”,t); }

A) 当x<0时整个循环结束 B) x>=0时什么也不执行

C) printf函数永远也不执行 D) 最多允许输出100个非负数 5.2.32 下面程序段运行结果是( A)。

int i,j,a=0;

for(i=0;i<2;i++)

{ for(j=0; j<4; j++) {if(j%2) break; a++;} a++; } printf(“%d\\n”,a);

A) 4 B) 5 C) 6 D) 7 5.2.33 下面程序的运行结果是( B)。

#include void 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 5.2.34 下面程序段运行结果是( A)。

#include void main() { int i;

for(i=1; i<=5; i++) { if(i%2) printf(”*”); else continue; printf(“#”); }

printf(“$\\n”);

}

A) *#*#*#$ B) #*#*#*$ C) *#*#$ D) #*#*$

5.2.35 有一堆零件(100~200之间),如果分成4个零件一组的若干组,则多2

个零件;若分成7个零件一组,则多3个零件;若分9个零件一组,则多5个零件。下面程序是求这堆零件的总数,请选择填空。 #include void main( ) { int i;

for(i=100; i<201; i++) if((i-2)%4==0)

if(!(i-3)%7) if( D )

printf(”%d”, i); }

A) i%9=5 B) i%9!=5 C) (i-5)%9!=0 D) i%9==5

5.3编程题

5.3.1 输入一行字符,分别统计出其中字母、数字和其它字符的个数。 #include void main() { char ch; int i,j,k; i=j=k=0;

while( (ch=getchar() )!=‘\\0’)

{ if(ch>’a’&&ch<‘z’||ch>’A’&&ch<‘Z’ ) i++; //统计字母

else if(ch>’0’&&ch<‘9’) j++; //统计数字

else k++; //统计其它 }

printf(“字母个数:%d,数字个数:%d,其他字符:%d”,i, j, k);

5.3.2 求100~200之间不能被3整除也不能被7整除的数。 #include void mian() { int i;

for (i=100;i<=200;i++) {

if (i%3==0&&i%7==0) printf(“]”,i); } } 5.3.3 求 1?11111??????23499100。

#include

main() {

int i; float s=0,k=1; for (i=1;i<=100;i++) { s=s+ k / i ; k = -k ; }

printf(\ } 5.3.4 求

111????1?22?3n?(n?1),直到某一项小于0.001时为止。

void main()

{

int i ;

float t=0.5,s=0,i=1; while (t>=0.001) { s=s+t; i++;

t=1/(i*(i+1)); }

printf(\ }

5.3.5 用迭代法求

X?a。迭代公式为:

Xn?1?1?a?Xn??2?Xn????,要求迭代精度满足

。|Xn?1?Xn|?0.00001提示:a

#include

Void main( ) {

由键盘输入,x1=a/2.

float x1,x2,a,k; scanf(\

x1=a/2; x2=(x1+a/x1)/2; while(fabs(x1-x2)>=0.00001) { x1=x2;

x2=(x1+a/x1)/2; } printf(\ %f\}

5.3.6 假设x,y是整数,编写程序求xy的最后3位数,要求x,y从键盘输入。 #include void main()

{ int x. y, i, b, s, g, san; long m=1;

scanf(“%d,%d”,&x, &y); for(i=1; i<=y; i++) m=m*x

san=m00; //求出最后3位数

b=san/100; //求出最后3位数的百位 s=san0/10; //求出最后3位数的十位 g=san; //求出最后3位数的个位 printf(“%d,%d,%d”,b,s,g); }

5.3.7 从键盘上输入10个整数,求其中的最大值和最小值。 #include void main()

{ int x,i,max,min; scanf(“%d”,&x); min=max=x;

for (i=2;i<=10;i=i++) {

scanf(“%d”,&x);

if(xmax) max=x; }

printf(“%d,%d”,max,min); }

5.3.8 (1)判断一个数是否为素数。(2)输出3-100之间的所有素数。 (1)判断m素数 #include void main() {int i,k,m;

scanf(“%d”,&m); k=sqrt(m);


重庆理工大学-C语言程序设计基础教程_习题答案(纪纲_金艳)(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:土塑性力学

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

马上注册会员

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