循环结构(答案)

合集下载

第6章循环结构程序设计习题及答案

第6章循环结构程序设计习题及答案

第6章循环结构程序设计6-1.比较while语句、do–while语句和for语句的异同。

答:(1)while语句、do-while语句用于条件循环,for语句用于计数循环。

(2)while语句、for语句是先判断循环条件,后执行循环体,如果循环条件一开始就不成立,则循环体一次也不被执行;而do-while语句是是先执行循环体,后判断循环条件,所以循环体至少被执行一次。

(3)知道循环的次数可选用for语句实现循环,不知道循环的次数可选用while语句或do-while语句实现循环.(4)一般而言,三种循环语句可等价实现.6-2 仔细阅读下面的程序,指出程序的运行结果.#include<stdio.h>void main(){ int i;for(i=0;++i;i<5){ if(i==3){printf("%d\n",++i);break;}printf("%d\n",++i);}}答:24思考:语句“for(“i=0;++i;i<5”)在编译时为何会给出语法警告错误?当将其改为“for(i=0;i<5;++i)”时,运行结果又将如何?6-3 仔细阅读下面的语的程序,指出程序的运行结果。

#include"stdio.h"void main(){ int i, a=0;for(i=1;i<=5;i++){do{i++;a++;} while(i<3);}i++;printf("a=%d,i=%d",a,i);}答:a=3,i=7思考:在for循环中嵌套着do-while循环,那么do-while循环中对i的修改会对for循环产生影响吗?6-4编写程序,用1000个单词”computer”填充屏幕,每行60个 .解:#include<stdio.h>void main(){ int i;for(i=1;i<=1000;i++){ printf("computer.");if(i%60==0)printf("\n");}}思考:在for循环中,”if(i%60==0)printf(“\n”);”语句的作用是什么?没有此语句将会是什么状况?6-5输入一行字符(以$结束),统计其中的数字字符、空格字符出现的次数。

广技师C语言复习题4. 练习(循环结构)(有答案)

广技师C语言复习题4. 练习(循环结构)(有答案)

一、选择题1. 设有如下程序段,则下面描述正确的是int k=10;while (k=0) k=k-1;A.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次2. 下面程序段的运行结果是a=1; b=2; c=2;while(a<b<c) { t=a; a=b; b=t; c--;}pirntf(“%d, %d, %d”,a,b,c);A.1,2,0 B.2,1,0 C.1,2,1 D.2,1,1 3. 下面程序段的运行结果是。

int n=0;while(n<=2) n++; printf(“%d”,n);A.2 B.3 C.4 D.有语法错误4. 设有如下程序段,则描述正确的是。

t=0;while (printf(“*”)){t++; if(t<3) break;}A.其中循环控制表达式与0等价B.其中循环控制表达式与‘0’等价C.其中循环控制表达式是不合法的D.以上说法都不对5. 下面程序的功能是将从键盘输入的一对数,由小到大排序输出,当输入一对等数时结束循环,请选择填空。

#include<stdio.h>int main(){int a,b,t;scanf("%d%d",&a,&b);while( ){if(a>b) {t=a;a=b;b=t;}printf("%d,%d\n",a,b);scanf("%d%d",&a,&b);}return 0;}A.!a=b B.a!=b C.a==b D.a=b8. 下面程序的功能是在输入的一系列正整数中求出最大者,输入0结束循环,请选择填空。

#include<stdio.h>int main(){int a,max=0;scanf("%d",&a);while( ){if(max<a) max=a;scanf("%d",&a);}printf("%d\n",max);return 0;}A.!a=0 B.a!=0 C.a= =0 D.a=09. 下面程序的运行结果是。

C++循环结构23道题(含答案)

C++循环结构23道题(含答案)
int m,n,i; cin>>m>>n; for(i=m;i>=1;i--)
{ if(m%i==0&&n%i==0)
break; }
cout<<i<<endl; return 0; }
循环 15:斐波那契数列 判 断 第 n 个 斐 波 那 契 数 列 能 否 被 3 整 除 给 定 斐 波 那 契 数 列 为 : F(0)=1, F(1)=1,
3%; 4%;
输出:每个收入对应的纳税额 输入 4 900 2000 4000 6000 输出 0 60 160 360 #include<iostream> using namespace std; int main() {
double m,tax;;int i,n; cin>>n; for(i=1;i<=n;i++) {
循环 04:西瓜卖几天
n 个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完?
说明:当西瓜个数为奇数时,卖一半为一半的整数,如当西瓜个数为
5 时,卖一半为卖 2
个。
输入:西瓜个数,输出:天数
输入 10 输出 2
输入 50 输出 4
测试
输入 120 输出 5
#include<iostream>
#include<iostream> using namespace std; int main() {
int n,i=1; double s=0; cin>>n; while(i<=n) {
s+=1.0/i; i++;}

C语言循环结构练习题带答案.doc

C语言循环结构练习题带答案.doc

第 5 章循环结构程序设计练习题1.单项选择题( 1)语句 while (!e);中的条件!e等价于A。

A. e==0B. e!=1C. e!=0D. ~e( 2)下面有关for循环的正确描述是D。

A. for循环只能用于循环次数已经确定的情况B. for循环是先执行循环体语句,后判定表达式C. 在 for循环中,不能用break 语句跳出循环体D. for循环体语句中,可以包含多条语句,但要用花括号括起来(3)C语言中D。

A.不能使用do-while语句构成的循环B. do-while 语句构成的循环必须用break 语句才能退出C. do-while 语句构成的循环,当while 语句中的表达式值为非零时结束循环D. do-while 语句构成的循环,当while 语句中的表达式值为零时结束循环( 4) C 语言中 while 和 do-while 循环的主要区别是A 。

A. do-while的循环体至少无条件执行一次B. while的循环控制条件比do-while的循环控制条件严格C. do-while允许从外部转到循环体内D. do-while的循环体不能是复合语句( 5)以下程序段C。

int x=-1;do{x=x*x;}while (!x);A.是死循环B. 循环执行二次C. 循环执行一次D. 有语法错误( 6)下列语句段中不是死循环的是__C__。

A.i=100;while (1){i=i%100+1;if (i==20) break;}B.for (i=1;;i++)sum=sum+1;C.k=0;do{++k;} while (k<=0);D.s=3379;while (s++%2+3%2)s++;( 7)与以下程序段等价的是__A__。

while (a){if (b) continue;c;}A.while (a)B.while (c){ if (!b) c; }{ if (!b) break; c; }C. while (c)D. while (a){ if (b) c; }{ if (b) break; c; }( 8)以下程序的输出结果是_B___。

循环结构程序设计答案

循环结构程序设计答案

循环结构程序设计一、选择题:1.设有程序段int k=10;while(k=0) k=k-1;则下面描述中正确的是(C)A.w hile 循环执行10次B.循环是无限循环C.循环体语句一次也不执行D. 循环体语句执行一次2.设有以下程序段int x=0,s=0;while(!x!=0) s+=++x;printf(“%d”,s);则()A运行程序段后输出0 B.运行程序段后输出1C.程序段中的控制表达式是非法的D.程序段执行无限次3.语句while(!E);中的表达式!E等价于()A. E= =0B.E!=1C.E!=0D.E= =14.下面程序的运行结果是()a=1;b=2;c=2;while(a<b<c) {t=a;a=b;b=t;c--;}printf(“%d,%d,%d”,a,b,c);A.1,2,0B.2,1,0C.1,2,1D.2,1,15.下面程序的运行结果是()x=y=0;while (x<15) y++,x+=++y;printf(“%d,%d”,y,x);A.20,7B.6,12C.20,8D.8,206.下面程序的运行结果是()int n=0;while(n++<=2) ;printf(“%d”,n);A.2B.3C.4D.有语法错7.设有程序段t=0;while(printf(“*”)){t++;if(t<3) break;}A.其中循环控制表达式与0等价B. 其中循环控制表达式与‘0’等价B.其中循环控制表达式是不合法的D.以上说法都不对8.下面程序的功能是将从键盘输入的一对数,由小到大排序输出,当输入一对相等数时结束循环,请选择填空:#include “stdio.h”main(){int a,b,t;scanf(“%d%d”,&a,&b);while( ______){if(a>b){t=a;a=b;b=t;}printf(“%d,%d\n”,a,b);}}A.!a=bB.a!=bC.a= =bD.a=b9.下面程序的功能是从键盘输入的一组字符中统计出大写字母的个数m和小写字母的个数n,并输出m,n中较大者,请选择填空:#include “stdio.h”main(){int m=0,n=0;char c;while(( 1 )!= ‘\n’){if(c>= ‘A’&&c<= ‘Z’) m++;if(c>= ‘a’&&c<= ‘z’) n++;}printf(“%d\n”,m<n? 2 );}[1]A.c=getchar() B.getchar() C.c=getchar() D.scanf(“%c”,c)[2]A.n:m B.m:n C.m:m D.n:n10.下面程序的功能是将小写字母变成对应大写字母后的第二个字母,其中y变成A,z变成B。

循环结构程序设计练习题内含答案

循环结构程序设计练习题内含答案

第三单元循环结构练习题选择题:1、有以下程序执行后的输出结果是( D )。

main( ){ int i,s=0; for(i=1;i<10;i+=2)s+=i+1;printf("%d\n",s);}A.自然数 1~9的累加和B.自然数 1~10 的累加和C.自然数 1~9中的奇数之和D.自然数 1~10 中的偶数之和2、以下关于 for 语句的说法不正确的是( A )。

A. for循环只能用于循环次数已经确定的情况B. for循环是先判断表达式,后执行循环体语句C. for循环中,可以用 break 跳出循环体D. for循环体语句中,可以保含多条语句,但要用花括号括起来3、若 i和 k 都是 int 类型变量,有以下 for语句for(i=0,k=-1;k=1;k++) printf("*****\n");下面关于语句执行情况的叙述中正确的是(d)。

A. 循环体执行两次B.循环体执行一次C.循环体一次也不执行D. 构成无限循环4、以下程序程序的执行后的输出结果是(c)。

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]);}A.753B.357C.369D.7515、以下程序运行后的输出结果是( A )。

void fun(char*s){ while(*s){ if(*s%2==0)printf(“%c”,*s);s++;}}main(){ char a[]={“good”};fun( a) ;printf(“ n”);}注意:字母 a 的 ASCⅡ码值为 97A.dB.goC.godD.good6、已知 int t=0 ; while ( t=1 ){...}则以下叙述正确的是( B)。

A)循环控制表达式的值为 0B)循环控制表达式的值为 1C)循环控制表达式不合法D)以上说法都不对7、设有以下程序段 Bint x=0,s=0;while (!x!=0 ) s+=++x;printf ( "%d",s );则A)运行程序段后输出0B)运行程序段后输出 1C)程序段中的控制表达式是非法的D)程序段执行无限次8、设 i ,j ,k 均为 int型变量,则执行完下面的 for 语句后, k 的值为( C)。

循环结构习题有答案

循环结构习题有答案

第6章循环结构程序设计1.以下叙述正确的是()A、do-while语句构成的循环不能用其它语句构成的循环代替。

B、d o-while语句构成的循环只能用break语句退出。

C、用do-while语句构成的循环,在while后的表达式为非零时结束循环。

D、用do-while语句构成的循环,在while后的表达式为零时结束循环。

答案:D2.以下程序的输出结果是( )A、10,1 9,2B、9,8 7,6C、10,9 9,0D、10,10 9,1main( ){int x=10,y=10,i;for(i=0;x>8;y=++i)printf("%d,%d",x--,y);}答案:D注解:循环执行2次,由x控制循环的执行次数;输出值为两次循环过程中x每次的自减值和y在for语句的第三个表达式中得到的i自增变化后的值。

3.以下程序的输出结果是( )A、2 0B、3 1C、3 2 1D、2 1 0main( ){ int n=4;while(n--) printf("%d ",--n);}答案:A4.以下程序的输出结果是( )A、#*#*#B、#####C、*****D、*#*#*main( ){ int i;for(i=1;i<6;i++){ if(i%2) {printf("#");continue;}printf("*");}printf("\n");}答案:A注解:循环控制变量i的值从1变化到5,i为1、3、5时,i%2为1,if语句的条件为真,则执行if后的子句,输出#,然后执行continue语句,终止本次循环的执行,进入下一轮循环,i为2、4时,i%2为0,if语句的条件为假,则if后的子句并不执行,直接输出*,所以最后的输出为#*#*#。

5.以下程序的输出结果是( )A、编译不通过,无输出B、acegC、acegiD、abcdefghimain( ){ int i;for(i='A';i<'I';i++,i++) printf("%c",i+32);printf(" \n");}答案:B注解:循环控制变量i的取值为A、C、E、G,将它们转化为小写字母的格式输出。

广技师C语言复习题4.练习(循环结构)(有答案)

广技师C语言复习题4.练习(循环结构)(有答案)

一、选择题1. 设有如下程序段,则下面描述正确的是int k=10;while (k=0) k=k-1;A.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次2. 下面程序段的运行结果是a=1; b=2; c=2;while(a<b<c) { t=a; a=b; b=t; c--;}pirntf(“%d, %d, %d”,a,b,c);A.1,2,0 B.2,1,0 C.1,2,1 D.2,1,1 3. 下面程序段的运行结果是。

int n=0;while(n<=2) n++; printf(“%d”,n);A.2 B.3 C.4 D.有语法错误4. 设有如下程序段,则描述正确的是。

t=0;while (printf(“*”)){t++; if(t<3) break;}A.其中循环控制表达式与0等价B.其中循环控制表达式与‘0’等价C.其中循环控制表达式是不合法的D.以上说法都不对5. 下面程序的功能是将从键盘输入的一对数,由小到大排序输出,当输入一对等数时结束循环,请选择填空。

#include<stdio.h>int main(){int a,b,t;scanf("%d%d",&a,&b);while( ){if(a>b) {t=a;a=b;b=t;}printf("%d,%d\n",a,b);scanf("%d%d",&a,&b);}return 0;}A.!a=b B.a!=b C.a==b D.a=b8. 下面程序的功能是在输入的一系列正整数中求出最大者,输入0结束循环,请选择填空。

#include<stdio.h>int main(){int a,max=0;scanf("%d",&a);while( ){if(max<a) max=a;scanf("%d",&a);}printf("%d\n",max);return 0;}A.!a=0 B.a!=0 C.a= =0 D.a=09. 下面程序的运行结果是。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第4章循环结构一、选择题1、有以下程序段int k=0;while(k=1)k++;while 循环执行的次数是( A)A) 无限次B) 有语法错,不能执行C) 一次也不执行D) 执行1次2、t为int类型,进入下面的循环之前,t的值为0while( t=1){ …… }则以下叙述中正确的是( B)A) 循环控制表达式的值为0B) 循环控制表达式的值为1C) 循环控制表达式不合法D) 以上说法都不对3、在C程序中,与while(m)中表达式m完全等价的是(B )A) m==0 B) m!=0 C) m==1 D) m!=14、有以下程序,程序运行后的输出结果是(C )。

main(){int i=1,sum=0;while(i<=4){sum=sum+i;i=i+1;}printf(“%d\n”,sum);}A)4 B)5 C)10 D)死循环5、有以下程序,程序运行后的输出结果是(D )。

main(){ int i=1,sum=0;while(i<=4)sum=sum+i;i=i+1;printf(“%d\n”,sum);}A)4 B)5 C)10 D)死循环6、有如下程序main(){int n=9;while(n>6){n--;printf(“%d”,n);}}该程序段的输出结果是(B)A) 987 B) 876 C) 8765 D) 98767、以下程序的输出结果是( B )main(){ int num= 0;while(num<=2){ num++; printf(“%d\n”,num);}}A) 1 B) 1 C)1 D) l2 2 23 348、有以下程序,若运行时输入<回车>,则输出的结果是( B)。

main(){float x,y,z;scanf(“%f%f”,&x,&y);z=x/y;while(1){if(fabs(z)>{x=y;y=z;z=x/y;}elsebreak;}printf(“%f\n”,y);}A) B)1.600000 C) D)9、执行以下程序段时x=-1;do{ x=x*x; }while(! x);则下面描述正确的是(A )A) 循环体将执行一次B) 循环体将执行两次C) 循环体将执行无限次D) 系统将提示有语法错误10、有以下程序段其输出结果是(C )int x=3;do{ printf("%d",x-=2); }while (!(--x));A) 1 B) 3 0 C) 1 -2D) 死循环11、有如下程序main(){int x=23;do{printf(“%d”,x);x--;}while(!x);}该程序的执行结果是(B )A) 321 B) 23 C) 不输出任何内容D) 陷入死循环12、有以下程序段int n=0,p;do{sca nf(“%d”,&p);n++;}while(p!=12345 &&n<3);此处do—while循环的结束条件是( D)A) P的值不等于12345并且n的值小于3B) P的值等于12345并且n的值大于等于3C) P的值不等于12345或者n的值小于3D) P的值等于12345或者n的值大于等于313、以下不构成无限循环的语句或语句组是(A)A) n=0;do {++n;}while(n<0);B) n=0;while(1){n++;}C) n=10;while(n);{n--;}D) for(n=0,i=1; ;i++)n+=i;14、若i为整型变量,则以下循环执行的次数是(B)for(i=2;i= =0;) printf(“%d”,i--);A)无限次B)0次C)1次D)2次15、执行语句for(i=1;i++<4;)后,变量i的值是(C)A) 3 B) 4 C) 5 D) 不定16、有以下程序main(){int y=9 ;for( ; y>0 ; y--)if(y%3==0 ) printf("%d" , --y) ;}程序的运行结果是(C)A) 741 B)963 C)852 D)87542117、以下程序执行后sum的值是( C)A)15 B)14 C) 不确定D)0main(){ int i , sum;for(i=1;i<6;i++) sum+=i;printf(“%d\n”,sum);}18、有如下程序{ int i,sum=0;for(i=1;i<=3;sum++) sum+=i;printf(“%d\n”,sum);}该程序的执行结果是(C)A) 6 B) 3 C) 死循环D) 019、执行语句for(i=3;i>0;i--);i--;后,变量i的值是(C )A)0 B)10 C)-1 D)120、执行下面程序片段的结果是(A )。

int x;for(x=3;x<6;x++)printf((x%2)(“**%d”):(”##%d\n”),x);A)**3##4 B)##3**5 **4##5C)##3**4 D)**3##4**5 ##521、有以下程序,执行后输出的结果是(A )。

main(){ int i;for(i=0;i<3;i++)switch(i){ case 1: printf("%d",i);case 2: printf("%d",i);default: printf("%d",i);}}A) 011122 B) 012 C) 012020 D) 12022、有以下程序,程序运行后的输出结果是(B )。

main(){ int k=4,n=0;for( ; n<k ; ){ n++;if(n%3!=0) continue;k--;}printf("%d,%d\n",k,n);}A)1,1 B)2,2 C)3,3 D)4,423、设变量已正确定义,则以下能正确计算f = n!的程序段是(A)A) f=0 ;for(i=1;i<=n;i++) f*=i;B) f=1;for(i=1;i<n;i++) f=f*i;for(i=n;i>1;i++) f*=i;D) f=1;for(i=n;i>=2;i--) f*=i;24、执行下面程序片段的结果是(B)。

main(){int a,b;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)1025、以下程序的输出结果是( B)。

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) 1126、以下程序的输出结果是(A )main(){ int i,j,x=0;for(i=1;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=1227、有以下程序main(){int i,j;for(i=3;i>=1;i--){for(j=1;j<=2;j++)printf("%d",i+j);printf("\n ") ;}}程序的运行结果是(D)A) 2 3 4 B)4 3 2 C)2 3 D)4 53 4 5 5 4 3 3 4 3 44 5 2 328、有以下程序main(){ int i=5;do{if(i%3==1)if(i%5==2){ printf("*%d",i); break; }i++;} while(i!=0);printf("\n");}程序的运行结果是(A)A) *7 B)*3*5 C)*5 D)*2*629、以下程序的结果是(A)main(){ int n;for(n=1; ; ){if(++n%2==0) continue;if(++n%3==0) break; }printf("n=%d",n);}A)n=6 B)n=5 C)n=4 D)死循环30、以下叙述中正确的是(C)A)break语句只能用于switch语句题中B)continue语句的作用是:使程序的执行流程跳出包含它的所有循环C)break 语句只能用在循环体内和switch语句体内D)在循环体内使用break语句和continue语句的作用相同二、程序阅读题(共10题)1、以下程序运行后的输出结果是52 。

main(){int i=10, j=0;do{ j=j+i;i--;}while(i>2);printf(“%d\n”,j);}2、设有以下程序:main(){int n1,n2;scanf(“%d”,&n2);while(n2!=0){n1=n2%10;n2=n2/10;printf(“%d”,n1);}}程序运行后,如果从键盘上输入1298;则输出结果为8921 。

3、以下程序的输出结果是5。

main(){int s,i;for(s=0,i=1;i<3;i++,s+=i);printf("%d\n",s);}4、阅读下面程序,程序的结果是2,1,0 。

main(){int i=7;for(i=2;i>0;i--)printf(”%d,”,i);printf(”%d”,i);}5、阅读下面程序,程序的结果是14,4。

main(){ int i,j,m=0;for(i=2;i<=10;i+=4)for(j=3;j<=4;j++){m++;i++;}printf("%d,%d",i,m);}6、阅读下面程序,程序的结果是1978。

main()long s=0,t=0;for(j=0;j<n;j++)t=t*10+a;s=t;for(j=1;j<n-1;j++){t=t/10;s=s-t;}printf(”%d”,s);}7、以下程序运行后的输出结果是05main(){char c1,c2;for(c1='0',c2='9';c1<c2;c1++,c2--)printf("%c%c",c1,c2);printf("\n");}8、以下程序的输出结果是 5 。

相关文档
最新文档