C语言习题与答案1
更新时间:2024-01-05 06:03: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语言习题与答案101-05
贝聿铭美秀美术馆09-05
中信银行实习报告01-08
广西钦州市钦州港经济技术开发区中学2016-2017学年高二下学期化学(理)第三周考试试卷08-27
初中常见文言文特殊句式电子教案05-02
卡罗拉 花冠 威驰 发动机培训资料06-03
《升华和凝华》导学案xin03-06
英语面试口语900句_日常用语1000句04-16
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 习题
- 答案
- 语言
- 环境工程实习报告 - 1
- 2016年上半年西藏房地产估价师《案例与分析》:房地产估价文书的种类及作用考试试题
- 天津卫视爱情保卫战
- 5.8GHz多路径识别方案
- 各地区技术转移中心平台建设方案比较
- 40塔吊基础施工方案
- 2012届高考英语 考前冲刺常用短语句型归纳
- 因公赴台审批工作流程
- 2011年办公室工作总结(范1)
- 物化实验思考题(下册)
- 2013年小学三年级数学下学期期末复习题
- 折扣纳税利率问题
- 临沂小学二年级上健康教育教案
- ASIC 课程设计报告 三输入与非门的设计与 Hspice 仿真
- 中共广昌县委 广昌县人民政府
- 基于单片机的电子密码锁设计 - 单片机课程设计报告 - 图文
- 电除尘技术协议
- 浅谈小学毕业班班主任工作
- 轴系结构设计实验指导与参考答案图
- 继承法习题