C语言第六章复习题含答案.docx
- 文档编号:30307926
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:16
- 大小:21.21KB
C语言第六章复习题含答案.docx
《C语言第六章复习题含答案.docx》由会员分享,可在线阅读,更多相关《C语言第六章复习题含答案.docx(16页珍藏版)》请在冰豆网上搜索。
C语言第六章复习题含答案
1.t为int类型,进入下面的循环之前,t的值为0
while(t=l)
{……}
则以下叙述中正确的是(B)
(A)循环控制表达式的值为0(B)循环控制表达式的值为1
(C)循环控制表达式不合法(D)以上说法都不对
2.有以下程序
main( )
{ int i,s=0;
for(i=1;i<10;i+=2) s+=i+1;
printf(“%d\n”,s);
}
程序执行后的输出结果是 (D)。
(A) 自然数1~9的累加和 (B) 自然数1~10的累加和
(C) 自然数1~9中的奇数之和 (D) 自然数1~10中的偶数之和
3.以下程序段的输出结果是(C)。
intx=3;
do
{ printf("%3d",x-=2);}
while(!
(--x));
(A)1(B)30(C)1-2(D)死循环
4. 以下程序中,while循环的循环次数是(D)。
main()
{ int i=0;
while(i<10)
{ if(i<1) continue;
if(i==5) break;
i++;
}
......
}
(A) 1 (B) 10
(C) 6 (D) 死循环,不能确定次数
5.下面程序的输出是(B)。
(A)741(B)852(C)963(D)875421
main()
{inty=9;
for(;y>0;y--)
{if(y%3==0)
{printf("%d",--y);continue;}
}
}
6.若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是(A)。
for(i=5;i;i--)
for(j=0;j<4;j++){...}
(A)20(B)25(C)24(D)30
7.执行语句:
for(i=l;i++<4;;);后,变量i的值是(C)。
(A)3(B)4(C)5(D)不定
8.假定a和b为int型变量,则执行以下语句后b的值为(D)。
a=1;b=10;
do
{b-=a;a++;}
while(b--<0);
(A)9(B)-2(C)-1(D)8
9.设j为int型变量,则下面for循环语句的执行结果是(B)。
for(j=10;j>3;j--)
{if(j%3)j--;
--j;--j;
printf("%d",j);
}
(A)63(B)74(C)62(D)73
10.有以下程序
main()
{intx,i;
for(i=1;i<=50;i++)
{x=i;
if(++x%2==0)
if(x%3==0)
if(x%7==0)
printf("%d,i);
}
}
输出结果是(D)。
(A)28(B)27(C)42(D)41
11.在执行以下程序时,如果从键盘上输入,ABCdef<回车>,则输出(B)。
#include
main()
{charch;
while((ch=getchar())!
='\n')
{if(ch>='A'&&ch<='Z')ch=ch+32;
elseif(ch>='a'&&ch<='z')ch=ch-32;
printf("%c",ch);
}
printf("\n");
}
(A)ABCdef(B)abcDEF(C)abc(D)DEF
12.执行以下程序段时(A)。
x=-1;
do{x=x*x;}while(!
x);
(A)循环体将执行一次(B)循环体将执行两次
(C)循环体将执行无限次(D)系统将提示有语法错误
13.执行以下程序后,输出的结果是(D)。
main()
{inty=10;
do{y--;}while(--y);
printf("%d\n",y--);}
(A)-1(B)1(C)8(D)0
14.在下列选项中,没有构成死循环的程序段是(C)。
(A)inti=100;(B)for(;;);
while
(1)
{i=i%100+1;
if(i>100)break;
}
(C)intk=1000;(D)ints=36;
do{++k;}while(k>=10000);while(s);--s;
15.运行以下程序后,如果从键盘上输入china#<回车>,则输出结果为(C)。
#include
main()
{intv1=0,v2=0;
charch;
while((ch=getchar())!
='#')
switch(ch)
{case'a':
case'h':
default:
v1++;
case'0':
v2++;
}
printf("%d,%d\n",v1,v2);
}
(A)2,0(B)5,0(C)5,5(D)2,5
16.下面程序运行的结果是(B)。
main()
{charch[7]={“65ab21”};
inti,s=0;
for(i=0;ch[i]>='0'&&ch[i]<='9';i+=2)
s=10*s+ch[i]-'0';
printf("%d\n",s);
}
(A)2ba56(B)6521(C)6(D)62
17.以下程序的输出结果是(D)。
(A)10192(B)9876(C)10990(D)101091
main()
{intx=10,y=10,i;
for(i=0;x>8;y=++i)
printf("%d,%d",x--,y);
}
18.以下程序的输出结果是(A)。
(A)20(B)31(C)321(D)210
main()
{intn=4;
while(n--)printf("%d",--n);
}
19.以下程序的输出结果是(A)。
(A)#*#*#(B)#####(C)*****(D)*#*#*
main()
{inti;
for(i=1;i<6;i++)
{if(i%2){printf("#");continue;}
printf("*");
}
printf("\n");
}
20.以下循环体的执行次数是(C)。
(A)3(B)2(C)1(D)0
main()
{inti,j;
for(i=0,j=1;i<=j+1;i+=2,j--)printf("%d\n",i);
}
21.以下叙述正确的是(D)。
(A)do-while语句构成的循环不能用其它语句构成的循环来代替。
(B)do-while语句构成的循环只能用break语句退出。
(C)用do-while语句构成的循环,在while后的表达式为非零时结束循环。
(D)用do-while语句构成的循环,在while后的表达式为零时结束循环。
22.有以下程序
main()
{ int i=0,s=0;
do{
if(i%2){i++;continue;}
i++;
s +=i;
}while(i<7);
printf("%d\n",s);
}
执行后输出结果是(A)。
(A) 16 (B) 12 (C) 28 (D) 21
23.有如下程序
main()
{intx=23;
do
{printf(“%d”,x--);}
while(!
x);}
该程序的执行结果是(B)。
(A)321(B)23(C)不输出任何内容(D)陷入死循环
24.有如下程序
main()
{intn=9;
while(n>6){n--;printf(“%d”,n);}
}
该程序段的输出结果是(B)。
(A)987(B)876(C)8765(D)9876
25.有以下程序段
intk=0;
while(k=1)k++;
while循环执行的次数是(A)。
(A)无限次(B)有语法错,不能执行(C)一次也不执行(D)执行1次
26.以下程序执行后sum的值是(C)。
(A)15(B)14(C)不确定(D)0
main()
{inti,sum;
for(i=1;i<6;i++)sum+=i;
printf("%d\n",sum);
}
27.有以下程序段
intx=3;
do
{printf("%d",x-=2);}
while(!
(--x));
其输出结果是(C)。
(A)1(B)30(C)1-2(D)死循环
28.以下程序的输出结果是(D)。
main()
{inta,b;
for(a=1,b=1;a<=100;a++)
{if(b>=10)break;
if(b%3==1)
{b+=3;continue;}
}
printf("%d\n",a);}
(A)101(B)6(C)5(D)4
29. 以下程序中,while循环的循环次数是 (D)。
main()
{ int i=0;
while(i<10)
{ if(i<1) continue;
if(i==5) break;
i++;
}
......
}
(A) 1 (B) 10
(C) 6 (D) 死循环,不能确定次数
30. 以下程序的输出结果是(A)。
main()
{ int a=0,i;
for(i=1;i<5;i++)
{ switch(i)
{ case 0:
case 3:
a+=2;
case 1:
case 2:
a+=3;
default:
a+=5;
}
}
printf("%d\n",a);
}
(A) 31 (B) 13 (C) 10 (D) 20
31. 以下程序的输出结果是(B)。
#include
main()
{ int i=0,a=0;
while(i<20)
{ for(;;)
{ if((i%10)==0) break;
else i--;
}
i+=11; a+=i;
}
printf("%d\n",a);
}
(A) 21 (B) 32 (C) 33 (D) 11
32. 有以下程序段
int n=0,p;
do{scanf(“%d”,&p);
n++;}while(p!
=12345 &&n<3);
此处do—while循环的结束条件是(D)。
(A) P的值不等于12345并且n的值小于3(B) P的值等于12345并且n的值大于等于3
(C) P的值不等于12345或者n的值小于3(D) P的值等于12345或者n的值大于等于3
33. 有以下程序
main()
{ int i=0,s=0;
do{
if(i%2){i++;continue;}
i++;
s+=i;
}while(i<7);
printf("%d\n",s);
}
执行后输出结果是(A)。
(A) 16 (B) 12 (C) 28 (D) 21
34.若有如下程序段,其中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;
35.有以下程序
main()
{ int k=4,n=0;
for( n { n++; if(n%3! =0) continue; k--; } printf("%d,%d\n",k,n); } 程序运行后的输出结果是(C)。 (A)1,1 (B)2,2 (C)3,3 (D)4,4 36.有以下程序 main( ) { int x=0,y=5,z=3; while(z-->0&&++x<5) y=y-1; printf(“%d,%d,%d\n”,x,y,z); } 程序执行后的输出结果是(B)。 (A) 3,2,0 (B) 3,2,-1 (C) 4,3,-1 (D) 5,-2,-5 有以下程序 main( ) { int i,s=0; for(i=1;i<10;i+=2) s+=i+1; printf(“%d\n”,s); } 程序执行后的输出结果是 (D)。 (A) 自然数1~9的累加和 (B) 自然数1~10的累加和 (C) 自然数1~9中的奇数之和 (D) 自然数1~10中的偶数之和 37.有以下程序 main() {inti; for(i=0;i<3;i++) switch(i) { case0: printf("%d",i); case2: printf("%d",i); default: printf("%d",i); } } 程序运行后的输出结果是(C)。 (A)022111(B)021021(C)000122(D)012 38.有以下程序 main() {inti=0,x=0; for(;;) { if(i==3||i==5)continue; if(i==6)break; i++; s+=i; }; printf("%d\n",s); } 程序运行后的输出结果是(D)。 (A)10(B)13(C)21(D)程序进入死循环 39.有以下程序段 intn,t=1,s=0; scanf("%d",&n); do{s=s+t;t=t-2;}while(t! =n); 为使此程序段不陷入死循环,从键盘输入的数据应该是(D)。 (A)任意正奇数(B)任意负偶数(C)任意正偶数(D)任意负奇数 40.有以下程序 main() {intk=5,n=0; while(k>0) {switch(k) {default: break; case1: n+=k; case2: case3: n+=k; } k--; } printf("%d\n",n); } 程序运行后的输出结果是(D)。 (A)0(B)4(C)6(D)7 41.要求通过while循环不断读入字符,当读入字母N时结束循环。 若变量已正确定义, 以下正确的程序段是(A)。 (A)while((ch=getchar())! =′N′)printf("%c",ch); (B)while(ch=getchar()! =′N′)printf("%c",ch); (C)while(ch=getchar()==′N′)printf("%c",ch); (D)while((ch=getchar())==′N′)printf("%c",ch); 42.有以下程序 main() {int y=10; while(y--);printf("y=%d\n",y); } 程序执行后的输出结果是(B)。 (A)y=0(B)y=-1(C)y=1(D)while构成无限循环 43.有以下程序 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); } 程序执行后的输出结果是(B)。 (A)x=4(B)x=8(C)x=6(D)x=12 44.有以下程序 main() {int i,t[][3]={9,8,7,6,5,4,3,2,1}; for(i=0;i<3;i++) printf("%d",t[2-i][i]); } 程序执行后的输出结果是(B)。 (A)7 5 3(B)3 5 7(C)3 6 9(D)7 5 1 45.若变量已正确定义,有以下程序段 i=0; doprintf("%d,",i);while(i++); printf("%d\n",i) 其输出结果是(B)。 (A)0,0(B)0,1(C)1,1(D)程序进入无限循环 46.有以下程序 #include main() {inty=9; for(y>0;y--) if(y%3==0)printf("%d",--y); } 程序的运行结果是(C)。 (A)741(B)963(C)852(D)875421 47.有以下程序 #include main() {inti,j,m=55; for(i=1;i<=3;i++) for(j=3;j<=i;j++)m=m%j; printf("%d\n",m); } 程序的运行结果是(B)。 48.以下程序运行后的输出结果是 1 3 2 。 main() { int i,m=0,n=0,k=0; for(i=9; i<=11;i++) switch(i/10) { case 0: m++;n++;break; case 10: n++; break; default: k++;n++; } printf("%d %d %d\n",m,n,k); } 49.执行以下程序后,输出'#'号的个数是 6 。 #include main() { int i,j; for(i=1; i<5; i++) for(j=2; j<=i; j++) putchar('#'); } 50.要使以下程序段输出10个整数,请填入一个整数。 for(i=0;i<=18;printf(“%d\n”,i+=2)); 51.若输入字符串: abcde<回车>,则以下while循环体将执行0次。 while((ch=getchar())==’e’)printf(“*”); 52.以下程序运行后的输出结果是__52。 main() {inti=10,j=0; do {j=j+i;i--;} while(i>2); printf("%d\n",j); } 53.若有定义语句: chars[100],d[100];intj=0,i=0;,且s中已赋字符串,请填空以实现字符串拷贝。 (注: 不得使用逗号表达式) while([i]){d[j]=__s[i++];j++;} d[j]=0; 54. 以下程序的输出结果是5 。 main() {int s,i; for(s=0,i=1;i<3;i++,s+=i); printf("%d\n",s);} 55.有以下程序: #include main() { char c; while((c=getchar( ))! =’? ’) putchar(--c);} 程序运行时,如果从键盘输入: Y? N? <回车>,则输出结果为 X 。 56.执行以下程序后,输出'#'号的个数是 6 。 #include main() { int i,j; for(i=1; i<5; i++) for(j=2; j<=i; j++) putchar('#'); } 57.以下程序运行后的输出结果是 1 3 7 15 。 main() { int i,n[]={0,0,0,0,0}; for(i=1;i<=4;i++) { n=n[i-1]*2+1; printf("%d ",n); } } 58.有以下程序 main( ) { int t=1,i=5; for(;i>=0;i--) t*=i; printf(“%d\n”,t); } 执行后输出结果是0 。 59.以下程序运行后的输出结果是abcbcc。 #include main() {charch[]="abc",x[3][4];inti; for(i=0;i<3;i++)strcpy(x,ch); for(i=0;i<3;i++)printf("%s",&x); printf("\n");} 60.有如下程序 main0 {intx=23; do {printf(“%d”,x--);} while(! x); } 该程序的执行结果是23 61.输入两个正整数m和n,求其最大公约数和最小公倍数。 62.计算1到10之间奇数之和及偶数之和。 63.有一分数序列 2/1,3/2,5/3,8/5,13/8,21/13,…· 求出这个数列的前20项之和。 64.一个数如果恰好等于它的因子之和,这个数就称为“完数”。 例如,6的因子为1、2、3,而6=1+2+3,因此6是“完数”。 编程序找出1000之内的所有完数,并按下面格式输出其因子: 6itsfactorSare1,2,3 65.打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。 例如,153是一水仙花数,因为153=13+53+33。 66.输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。 67.用筛法求100之内的素数。 68.求出1到1000之内能被7或11整除但不能同时被7和11整除的所有整数。 要求输出结果5个一行。 69.计算和输出下列级数的和。 s=1/(1×2)+1/(2×3)+…+1/(n×(n+1)) 例如,当n=10时,函数值为0.909091。 70.编写一个程序,求出1~100之间所有每位数的乘积小于每位数的和的数。 例如: 13满足1*3<1+3. 71.编写一个程序,求出1~100之间所有每位数的乘
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 第六 复习题 答案