C语言习题与答案1
更新时间:2024-03-22 01:44:01 阅读量: 综合文库 文档下载
- c语言基础题库及详解答案推荐度:
- 相关推荐
5.1选择题
【题5.1】设有程序段
int k=10;
while(k=0) k=k-1;
则下面描述中正确的是 。
A)while循环执行10次 B)循环是无限循环 C)循环体语句一次也不执行 D)循环体语句执行一次
【题5.2】设有以下程序段
int x=0,s=0;
while(!x!=0) s+=++x; printf(\则 。
A)运行程序段后输出0 B)运行程序段后输出1 C)循环的控制表达式不正确 D)程序段执行无限次
【题5.3】语句while(!E);中的!E等价于 。
A)E= =0 B)E!=1 C)E!=0 D)E= =1
【题5.4】下面程序段的运行结果是 。
a=1;b=2;c=2;
while(a
A)1,2,0 B)2,1,0 C)1,2,1 D)2,1,1
【题5.5】下面程序段的运行结果是 。
x=y=0;
while(x<15) y++,x+=++y;
printf(\
A)20,7 B)6,12 C)20,8 D)8,20
【题5.6】下面程序段的运行结果是 。
int n=0;
while(n++<=2); printf(\
A)2 B)3 C)4 D)语法错误
【题5.7】设有程序段
t=0;
while(printf(\{t++;
if(t<3) break; }
下面描述正确的是 。
A)其中循环控制表达式与0等价 B)其中循环控制表达式与'0'等价 C)其中循环控制表达式是不合法的 D)以上说法都不对
【题5.8】下面程序的功能是将从键盘输入的一对数,由小到大排序输出。当输
入一对相等数时结束循环,请选择填空。 #include
scanf(\while( ) {if (a>b)
{t=a;a=b;b=t;}
printf(\scanf(\} }
A)!a=b B)a!=b C)a==b D)a=b
【题5.9】下面程序的功能是从键盘输入的一组字符中统计出大写字母的个数m
和小写字母的个数n,并输出m,n中的较大者 #include
{ int m=0,n=0; char c; while ((【1】)!='\\n') { if(c>='A'&&c<='Z') m++;
if (c>='a'&&c<='z') n++;
}
printf(\【2】); }
【1】A)c=getchar() B)getchar()
C) getchar() D)scanf(\【2】A) n:m B)m:n
C)m:m D)n:n
【题5.10】下面程序的功能是将小写字母变成对应大写字母后的第二个字母,
其中y变成A,z变成B。请选择填空。 #include \main() { char c;
while ((c=getchar())!='\\n') { if (c>='a'&&c<='z')
{【1】; if (c>'Z') 【2】; }
printf(\} }
【1】A)c+=2 B)c-=32 C)c=c+32+2 D)c-=30
【2】A)c='B' B)c='A' C)c-=26 D)c=c+26
【题5.11】下面程序的功能是在输入一批正整数中求出最大者,输入0结束循环,
请选择填空 。 #include \main()
{int a,max=0; scanf(\while ( ) {if (max
printf(\
A)a= =0 B)a C)a= =1 D)!a
【题5.12 】下面程序的运行结果是 。
#include
{int num=0; while(num<=2) {num++;
printf(\} }
A)1 B)1 C)1 D)1
2 2 2 3 3 4
【题5.13】若运行以下程序时,从键盘输入2473
序的运行结果是 。 #include \{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(\}
A)668977 B)668966 C)66778777 D)6688766
【题5.14】以下程序的功能是计算一个整数的各位数字之和,请选择填空。 int n,m=1;
scanf(“%d”,&n);
for( ;n!=0;) { m【】; n/=10; }
printf(“%d”,m);
A) +=n B) =n C) +=n D) =n/10
【题5.15】以下能正确计算10!的程序段是 。
A)do {i=1;s=1; B)do{i=1;s=0; s=s*i; s=s*i; i++; i++;
}while(i<=10); }while(i<=10); C)i=1;s=1; D)i=1;s=0; do{s=s*i; do{s=s*i; i++; i++;
}while(i<=10); }while(i<=10);
【题5.16 】以下程序段 。
x=-1; do
{x=x*x;} while(!x);
A)是死循环 B)循环执行两次 C)循环执行一次 D)有语法错误
【题5.17】以下描述中正确的是 。
A)while,do-while,for循环中的循环体语句都至少被执行一次 B)do-while循环中,在while(表达式)后面的分号可以省略
C) while循环体中,一定要有能使while后面表达式的值变为零(\假\的操作
D)do-while循环中,根据情况可以省略while。
【题5.18】若有语句如下,则程序段的输出是 。
int x=3;
do {printf(\A)1 B)1和-2 C)3和0 D)死循环
【题5.19】下面程序的功能是计算正整数2345的各位数字平方和。
#include \main()
{int n,sum=0; n=2345;
do {sum=sum+【1】;
n=【2】; } while(n);
printf(\
【1】A)n B)(n)*(n)
C)n/10 D)(n/10)*(n/10)
【2】A)n/1000 B)b/100
C)n/10 D)n
【题5.20】下面程序是从键盘输入学号,然后输出学号中百位数是3的学号,
输入0时结束循环。请选择填空。 #include
{long int num; scanf(\do
{if(【1】) printf(\ scanf(\}while(【2】); }
【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.21】等比数列的第一项a=1,公比q=2,下面程序的功能是求满足前n项和
小于100的最大n,请选择填空。 #include
{int a,q,n,sum; a=1;q=2;n=sum=0; do
{【1】; ++n;a*=q;
}while(sum<100); 【2】;
printf(\}
【1】A)sum++ B)sum+=a C)sum*=a D)a+=sum 【2】A)n=n-2 B)n=n C)n++ D)n-=1
【题5.22】下面程序的功能是把316表示为两个加数的和,使两个加数分别能
被13和11整除。请选择填空。 #include
{ int i=0,j,k;
do{i++;k=316-13*i;}while( ); j=k/11;
printf(\}
A)k/11 B)k C)k/11==0 D)k/11==0
【题5.23】下面程序的运行结果是 。
A) 将属出## B) 将输出##* C) 是死循环
D) 含有不合发的控制表达式
【题5.47】以下是死循环的程序段是【 】
A) for (i=1; ; )
{ if (++i%2= =0) continue; if ( ++i%3= =0) break; }
B) i=32767;
do { if (i<0) break;} while(++i); C) for (i=1; ; ) if(++i<10) continue; D) i=1;
while (i--);
【题5.48】以下描述正确的是【 】
A) goto语句只能用于退出多层循环
B) switch语句中不能出现continue语句 C) 只能用continue语句来终止本次循环 D) 在循环中break语句不能独立出现
【题5.49】与下面程序段等价的是【 】 for(n=100;n<=200;n++) { if(n%3= =0) continue; printf(“M”,n); }
A) for(n=100; (n%3&&n<=200;n++) printf(“M”,n); B) for (n=100;(n%3) | | n<=200;n++) printf(“M”,n); C) for (n=100;n<=200;n++) if(n%3!=0) printf(“M”,n); D) for(n=100;n<=200;n++)
{ if(n%3) printf(“M”,n); else continue; break; }
【题5.50】下面程序的功能是将从键盘输入的偶数写成两个素数之和。请选择
填空【】
#include
{ int a,b,c,d;
scanf (“M”,&a); for (b=3;b<=a/2;b+=2)
{ for(c=2;c<=sqrt(b);c++) if(b%c= =0) break; if(c>sqrt(b)) d=【】; else break;
for(c=2;c<=sqrt(d);c++) if(d%c= =0) break;
if (c>sqrt(d)) printf (“%d=%d+%d\\n”,a,b,d); } }
A) a+b B) a-b C) a*b D) a/b
【题5.51】下面程序的运行结果是【 】 #include
{ int k=0;char c=’A’; do
{ switch(c++)
{ case ‘A’: k++;break; case’B’: k--;
case’C’: k+=2;break; case’D’: k=k%2;continue; case’E’: k=k*10;break; default: k=k/3; } k++;
} while(c<’G’); pintf(“k=%d\\n”,k); }
A) k=3 B) k=4 C) k=2 D) k=0
【题5.52】若运行以下程序时,从键盘输入3.6 2.4 <回车>,则下面程序的运
行结果是【】
#include
{ float x,y,z;
scanf(“%f%f”,&x&y); z=x/y;
while(1)
if(fabs(z)>1.0) { x=y;y=z;z=x/y} else break;
printf(“%f\\n”,y); }
A) 1.500000 B) 1.600000 C) 2.000000 D) 2.400000
【题5.53】下面程序的运行结果是【 】 #include
for (a=1,b=1;a<=100;a++) {if (b>=20) break;
if(b%3= =1){b+=3;continue;} b-=5; }
printf(“%d\\n”,a); }
A) 7 B) 8 C) 9 D) 10
【5.54】 下面程序的运行结果是【 】 #include
{ 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.55】 下面程序的运行结果是【 】
#include
for (i=1;i<=5;i++)
{ if(i%2) printf(“*”); else continue; printf(“#”); }
printf(“$\\n”); }
A)*#*#*#$ B)#*#*#*$ C)*#*#$ D)#*#*$
【题5.56】下面程序的运行结果是【 】 main()
{ 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填空题
【题5.57】下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符
结束循环。请填空。
int n=0,c; c=getchar(); while(【1】)
{ if(【2】) n++; c=getchar(); }
【题5.58】下面程序的功能是用公式:π2/6≈1/12+1/22+1/32+...+1/n2求π的
近似值,直到最后一项的值小于10-6为止,请分析程序填空。
#include
main()
{long i=1; 【1】pi=0;
while(i*i>=1e6) {pi=【2】;i++;} pi=sqrt(6.0*pi);
printf(\}
【题5.59】有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两
个,下面的
程序统计卖完所需的天数。请填空. #include
{int day,x1,x2; day=0;x1=1020;
while(【1】){x2=【2】;x1=x2;day++;} printf(\}
【题5.60】下面程序的功能是用辗转相除法求两个正整数的最大公约数。请填
空【】 #include
main()
{ int r,m,n;
scanf(“%d%d”,&m,&n); if( m while(r) { m=n;n=r;r=【2】; } printf(%d\\n”,n); } 【题5.61】当运行下列程序时,从键盘键入“right?<回车>”,则下面程序的 运行结果是【】 #include while((c=getchar())!=’?’) putchar(++c); } 【题5.62】下面程序的运行结果是【 】 #include { int a,s,n,count; main() { int i,j,k; n=0; for(i=1;i<=9;i++) for(k=0;k<=8; 【1】) if(k!=i) for(j=0;j<=9;j++) if【2】) n++; printf(“n=%d\\n”,n); } 【题5.87】下面程序的功能是输出1——100之间满足每位数的乘积大于每位数 的和的数。请填空。 #include { int n,k=1,s=0,m; for(n=1;n<=100;n++) { k=1;s=0 【1】; while(【2】) { k*=m; s+=m; 【3】; } if(k>s) printf(“%d”,n); } } 【题5.88】下面程序的功能是求1000以内的所有完全数。请填空。(说明:一 个数如果恰好等于它的因子之和(除自身外),则称该数为完全数。例如:6=1=2+3,6是完全数) #include { int a,i,m; for(a=1;a<=1000;a++) { for(【1】;i<=a/2;i++) if(!(a%i)) 【2】; if(m==a) printf(“M”,a); } } 【题5.89】下面程序的功能是完成用100元人民币换成1元,2元.5元的所有 兑换方案。请填空。 #include { int i,j,k,l=1; for(i=0;i<=20;i++) for(j=0;j<=50;j++) { k=【1】; if(【2】) { printf(“- - -”,i,j,k); l=l+1; if(1%5==0) printf(“\\n”); } } } 【题5.90】下面程序的功能是从3个红球.5个白球.6个黑球中任意取出8个球, 且其中必须有白球,输出所有可能的方案。请填空。 #include { int i,j,k; printf(“\\n gong bai hei\\n”); for(i=0;i<=3;i++) for(【1】;j<=5;j++) { k=8-i-j ; If(【2】) printf(“= = =\\n”,i,j,k); } } 【题5.91】若从键盘输入65 14<回车>,则下面程序的运行结果是【】。 #include { int m,n; printd(“Enter m,n:”); scanf(“%d %d”,&m,&n); while(m!=n) { while(m>n) m-=n; While(n>m)n-=m; } printf(“m=%d\\n”,m); } 【题5.92】下面程序的运行结果是【】。 #include { int y,a; y=2;a=1; while(y--!=-1) { do{a*=y; a++} while(y--);} printf(“%d,%d”,a,y); } 【题5.93】下面程序的运行结果是【】。 #include main() int i,j; for(i=0;i<=3;i++) { for(j=0;j<=5;j++) if(i= =0||j= =0||i= =3||j= =5) printf(“*”); else printf(“ ” ); printf(“\\n”); } } 【题5.94】下面程序的运行结果是【】。 #include for(i=4;i>=1;i--) { for j=1;j<=i;j++} putchar(‘#’); for j=1;j<=4-i;j++} putchar(‘*’); putchar(‘\\n’); } } 【题5.95】下面程序的运行结果是【】。 #include {int i,k=0; for(i=1; ;i++) { k++; while(k if(k%3= =0) goto loop; } } loop:printf(“%d %d”,i,k); } 【题5.96】下面程序的运行结果是【】。 i=1;s=3; do { s+=i++; if(s%7= =0) continue; else ++I; } while(s<15); printf(“%d”,i); 【题5.97】用0——9之间不同3个数构成一个3位数,下面程序将统计出共有 多少种方法。请填空。 #include { int i,j,k,count=0; for(i=1;i<=9;i++) for(j=0;j<=9;j++) if(【1】) coutinue; else for(k=0;k<=9;k++) if(【2】) count++; printf(“%d”,count); } 【题5.98】下面程序的功能是计算100——1000之间有多少个数其各位数字之 和是5。请填空。 #include { int i,s,k,count=0; for(i=100;i<=1000;i++) { s=0;k=i; While(【1】) {s=s+k; k=【2】;} if(s!=5) 【3】; else count++; } Printf(“%d”,count); } 【题5.99】下面程序的功能是从键盘输入的10个整数中,找出第一个能被7整 除的数。若找到,7出此数;若未找到,打印not exit。请填空。 #include for(i=1;i<=10;i++) { scanf(“%d”,&a); if(a%7= =0) 【1】; } if【2】printf(“%d\\n”,a); else printf(“not exit\\n”); } 【题5.100】下面程序的功能是打印100以内个位数为6且能被3整除的所有数。 请填空。 #include { inti,j; for(i=0; 【1】;i++) { j=i*10+6; if(【2】) continue; printf(“%d”,j); } } 【题5.101】下面程序的运行结果是【】。 #include { int i=1; while(i<=15) if(++i%3!=2) continue; else printf(“%d”,i); printf(“\\n”); } 【题5.102】下面程序的运行结果是【】。 #include { int i,j,k=19; while(i=k-1) { k-=3; if(k%5= =0) {i++;continue;} else if(k<5) break; i++; } printf(“i=%d,k=%d\\n”,i,k); } 【题5.103】下面程序的运行结果是【】。 #include { a+=2;y+=a; if(y>50) break; } while(a=14); printf(“a=%d,y=%d\\n”,a,y); } 【题5.104】下面程序的运行结果是【】。 #include { int i=5; do { switch(i%2) { case4:i--;break; Case6:i--;continue; } i--;i--; printf(“%d”,i); } while(i>0); } 5.3 编 程 题 【题5.105】每天苹果0.8元,第一天买2个苹果;从第二天开始,每天买前一 天的2倍,直至购买的苹果数达到不超过100的最大值,编写程序求每天平均花多少钱。 【题5.106】试编程序,找出1——99之间的全部同构数,同构数是这样一组数; 出现在平方数的右边。例如:5是25右边的数,25是625右边的数,5和25都是构数。 【题5.107】假设x,y是整数,编写程序求xy的最后3位数,要求x,要从键盘输入。 【题5.108】编写程序,从键盘输入6名学生的5门成绩,分别统计出每个学生的平均成绩。 第五章 循环结构 5.1选择题 【题5.1】C 【题5.2】B 【题5.3】A 【题5.4】A 【题5.5】D 【题5.6】C 【题5.7】B 【题5.8】B 【题5.9】【1】C【2】A 【题5.10】【1】D 【2】C 【题5.11】B 【题5.12】C 【题5.13】A 【题5.14】A 【题5.15】C 【题5.16】C 【题5.17】C 【题5.18】B 【题5.19】【1】B 【2】C 【题5.20】【1】B 【2】C 【题5.21】【1】B 【2】D 【题5.22】B 【题5.23】D 【题5.24】D 【题5.25】B 【题5.26】D 【题5.27】B 【题5.28】B 【题5.29】C 【题5.30】A 【题5.31】C 【题5.32】D 【题5.33】C 【题5.34】C 【题5.35】D 【题5.36】D 【题5.37】【1】B 【2】C 【题5.38】B 【题5.39】D 【题5.40】C 【题5.41】【1】C 【2】D 【题5.42】【1】C 【2】A 【题5.43】D 【题5.44】B 【题5.45】D 【题5.46】C 【题5.47】C 【题5.48】C 【题5.49】C 【题5.50】B 【题5.51】B 【题5.52】B 【题5.53】B 【题5.54】B 【题5.55】A 【题5.56】A 5.2填空题 【题5.57】【1】c!=’\\n’ 【2】c>=’0’&&c<=’9’ 【题5.58】【1】double 【2】pi+1.0/(i*i) 【题5.59】【1】x1 【2】x1/2-2 【题5.60】【1】r=m,m=n,n=r 【2】m%m 【题5.61】sjhiu 【题5.62】s=254 【题5.63】5,5 【题5.64】36 【题5.65】3 【题5.66】* * 【题5.67】a=-5 【题5.68】【1】i%3= =2&&i%5= =&&i%7= =2 【2】j%5= =0 【题5.69】【1】n 【2】max=t 【题5.70】sum%4= =0 【题5.71】【1】s 【2】s/10 【题5.72】k=14 n=-1 【题5.73】x=1,y=20 【题5.74】1,3,7,15, 31,63, 【题5.75】m=4 n=2 【题5.76】i<=x 【题5.77】2*x+4*y= =90 【题5.78】-1 【题5.79】【1】1 【2】3 【题5.80】【1】t=t*i 【2】t=t-t/i 【题5.81】【1】(b-a)/n 【2】sin(a+i*h)*cos(a+i*h) 【题5.82】【1】e=1.0 【2】new>=1e-6 【题5.83】sum=19 【题5.84】* # 【题5.85】* * * * # 【题5.86】【1】k+=2 【2】j!=i&&j!=k 【题5.87】【1】m=n 【2】m 【3】m/=10 【题5.88】【1】m=0,i=1 【2】m+=i 【题5.89】【1】100-i*5-j*2 【2】k>=0 【题5.90】【1】j=1 【2】k>=0&&k<=6 【题5.91】m=1 【题5.92】1,-2 【题5.93】* * * * * * * * * * * * * * * * 【题5.94】# # # # # # # * # # * * # * * * 【题5.95】2,3 【题5.96】8 【题5.97】【1】i= =j 【2】k!=i&&k!=j 【题5.98】【1】k 【2】k/10 【题5.99】【1】break 【2】i<=10 【题5.100】【1】i<=9 【2】j%3!=0 【题5.101】2 5 8 11 14 【题5.102】i=6,k=4 【题5.103】a=16 y=60 【题5.104】3 1 -1 5.3编程题 【题5.105】#include { int day=0,buy=2; float sum=0.0, ave; do { sum+=0.8*buy; day++; buy*=2; } while(buy<=100); ave=sum/day; printf(“%f”,ave); } 【题5.106】#include for(i=1;1<100;i++) if(i*i= =i| |i0= =i) printf(“=”,i); } 或: #include for(i=1;1<100;i++) if(i*i= =i) printf(“=”,i); else if(i*i0= =i) printf(“=”,i); 3】continue 【 } 【题5.107】#include { int i,x,y; long last=1; printf(“Input xand y:”); scanf(“%d%d”,&x,&y); for(i=1;i<=y;i++) last=last*x00; printf(“The last 3 digits:\\n”,last); } 【题5.108】#include float g,sum,ave; for(i=1;i<=6;i++) { sum=0; for(j=1;j<=5;j++) { scanf(“%f”,&g); sum+=g; } ave=sum/5; printf(“No.%d ave=%5.2f\\n”,I,ave); } } 键盘输入 95 70 73 67 64<回车> 60 65 77 86 90<回车> 71 93 63 80 90<回车> 87 83 91 95 89<回车> 100 93 89 92 85<回车> 52 63 66 70 71<回车> 运行结果No.ave=73.80 No.ave=75.60 No.ave=79.40 No.ave=89.00 No.ave=91.80 No.ave=64.40
正在阅读:
C语言习题与答案103-22
关于领导干部在社会组织兼职自查报告11-22
最高人民法院关于废止部分司法解释和司法解释性质文件(第九批)的决定法释(2013)2号12-09
关于面试自我介绍的情景会话02-24
阜阳经济技术开发区新阳小区装修工程10-26
鲁棉研15号纤维品质性状QTL定位研究05-23
校本教材教案中年级05-15
细胞生物学第七章线粒体与叶绿体知识点整理 - 图文04-27
二年级学习小组组名与口号12-29
买菜的学问作文800字06-27
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 习题
- 答案
- 语言
- 南邮卫星通信试验报告 - 图文
- 环境工程实习报告 - 1
- 2016年上半年西藏房地产估价师《案例与分析》:房地产估价文书的
- 北师大版 - 八年级上 - 第一章 - 勾股定理 - 分考点 - 习题汇总
- 各地区技术转移中心平台建设方案比较
- 让优秀成为一种习惯
- 2019最新高中化学 专题3 第三单元 人工合成有机化合物学案 苏教
- 威海市最新经营者调研分析报告 doc
- 10、南方电网设备标准技术标书-110kV 变电站自动化系统(包括五
- 什么是经营管理
- 2013年小学三年级数学下学期期末复习题
- 六年级数学六年级数学3.2 统计与概率(二)教案及练习题
- 劳动合同书-甘肃标准版
- 2016届应届毕业生地图学与地理信息系统专业毕业自我鉴定Word文档
- 2005年注册电气工程师考试试卷及答案-供配电 doc
- 试卷讲评课教案
- 新工人入厂安全知识培训
- 小学生应用文写作要求及范文更新
- 40塔吊基础施工方案
- 内标法测定甲醇中乙醇含量的方法研究