《C语言程序设计》教材习题答案第5章.docx
C语言程序设计教材习题答案第5章 一、选择题 1.设有程序段”int k=10;while(k=0)k=k-1;”,则下面叙述正确的是D 循环体语句一次也不执行 2.设有程序段”int x=0,s=0;while(!x!=0)s+=+x;printf(“%d”,s);”则A 运行程序段后输出1 3.若有语句”int x=3;doprintf(“%dn”,x-=2);while(!(-x);”,则该程序段C 输出的是1和-2 4.下面循环语句中,错误的是D int a=1,b=2;do b-while(b= =0); 5.已知”int i=5;”,下列dowhile循环语句的循环次数为C 5 doprintf(“%dn”,i-);while(i!=0); 6.循环语句”for(int i=0,j=10;i=j=10;i+,j-)”的循环次数是D 无限 7.循环语句”while(int i=0;)i-;”的循环次数是A 0 8.下述有关break语句的描述中,不正确的是C break语句用于if语句的内嵌语句内,它结束该if语句 9.下面关于循环语句的描述中,错误的是B 循环体内必须同时出现break语句和continue语句 10.以下不是死循环的是D for(;(c=getchar()!=n);)printf(“%c”,c); 11.执行语句”for(i=0;i+b; min=a?b:a=1;i-) if(a%i=0&&b%i=0) printf("最大公约数是:%dn",i); break; for(i=max;i+) if(i%a=0&&i%b=0) printf("最小公倍数是:%dn",i); break; 8求一个二位整数AB(其中AB分别为两位整数的十位和个位),使AB-BA=45成立。#include main() int i,j; for(i=10;i=0;sp-,c+) for(i=1;i0;i-) putchar(c); putchar('n'); 12.输入一行数字,分别统计出其中英文字母、空格、数字和其他字符的个数。 #include main() char c; int lt=0,sp=0,num=0,oth=0; for(c=getchar();c!='n'c=getchar() if( (c>='a' && c='A' && c='0' && ci+j) printf("%dt",i*10+j); 或 #include main() int i,j; for(i=1;i=2 && i/10>=2 && i!=22) printf("%dt",i); 19输出11000之间所有满足用3除余2、用5除余3、用7除余2的数(要求每行输出5个) #include main() int i,c=0; for(i=1;i<=1000;i+) if(i%3=2&&i%5=3&&i%7=2) printf("%dt",i); c+=1; if(c%5=0) printf("n"); 20.计算1-3+5-7+-99+101的值。 #include main() int i,j,sum; for(sum=1,i=-3,j=5;j<=101;i-=2,j+=2) sum+=i+j; printf("%dn",sum); 21计算1001000之间有多少个数其各位数字之和是5. #include main() int i,j,c=0,x,sum; for(i=100;i<=1000;i+) x=i;sum=0; for(j=0;j0;j+) sum+=x%10; x/=10; if(sum=5) printf("%dt",i); c+; printf("n共%d个",c); 22输出100以内个位数为6且能被3整除的所有整数。#include main() int i; for(i=0;i<100;i+) if(i%10=6&&i%3=0) printf("%dt",i); 23.将21000之间所有个位数不等于7的素数输出在屏幕上(要求每行输出6个数)。#include #include bool prim(int i); main() int i,j,k,n,count=0; for(i=2;i<=1000;i+) if(i%10!=7 && prim(i) count+; printf("%dt",i); if(!(count%6) printf("n"); bool prim(int i) if(i=2) return true; for(int j=2;j<sqrt(i)+1;j+) if(!(i%j) return false; return true;