第五章循环结构的程序设计补充习题(1)

合集下载

VF循环结构程序填空练习一

VF循环结构程序填空练习一

循环结构程序设计练习一一、累加、累乘1.求1-100的偶数和解1:应用FOR语句SUM=0FOR I=1 TO 100IF____________SUM=SUM+IENDIFENDFOR?’1~100的偶数和为:’,SUM解2:使用DO WHILE 实现:SUM=0____________DO WHILE ____________IF MOD(I,2)=0SUM=SUM+IENDIF____________ENDDO?’1~100的偶数和为:’,SUM解3:使用LOOP语句实现:SUM=0____________DO WHILE I<100I=I+1IF ____________LOOPELSESUM=SUM+IENDIFENDDO?’1~100的偶数和为:’,SUM2.累乘:求指定数的阶乘(即N!)。

CLEARINPUT "请输入N的值:" TO N____________FOR I=1 TO NMUL=MUL*IENDFOR?N,’的值为:’,MUL3.编程从键盘输入N的值,求1+1/2!+1/3!+1/4!+….+1/N!解1:应用双重循环CLEARSUM=_①_INPUT "请输入N的值: " TO NFOR I=1 TO NMUL=_②_FOR J=1 TO IMUL=MUL*__③__ENDFORSUM= SUM+____④_____ENDFOR?'求得的总和为: ',SUM解2:应用单循环:CLEARSUM=0MUL=1INPUT "请输入N的值: " TO NFOR I=1 TO NMUL=MUL*ISUM= SUM+____________ENDFOR?'求得的总和为: ',SUM4.该程序完成以下式子的计算1-1/3!+1/5!-1/7!+…。

SET TALK OFFINPUT “请输入1后面的项目个数:”TO EP STORE 1 TO N ,P,YDO WHILEK=2*N+1P= P*(K-1)*KN=N+1ENDDO?‘Y=’+STR (Y,10,8)SET TALK ONRETURN5. 有一个分数序列:2/1,3/2,5/3,8/5,13/8,21/13……(注:该数列从第二项开始,其分子是前项的分子与分母的和,而其分母是前一项的分子),求出这个序列前24项的和。

第五章循环结构程序设计习题解答

第五章循环结构程序设计习题解答

5、设某县2000年工业产值为200亿元,如果该县预计平均 每年工业总产值增长率为4.5%,那么多少年后该县工业总 产值将超过500亿? 算法步骤: 第一步,输入2000年的年生产总值. 第二步,计算下一年的年生产总值. 第三步,判断所得的结果是否大于 500.若是,则输出该年的年份;否则,返 回第二步. (1)确定循环体:设a为某年的年生产 总值,t为年生产总值的年增长量,n为 年份,则循环体为t=0.045a,a=a+t,n=n+1. (2)初始化变量: n=2000, a=200. (3)循环控制条件: a>500
3、从键盘输入一个正整数n,计算该数的各位数字之和并输出。 #include <stdio.h> void main() { long n; int s, i=1,j=10; scanf("%ld",&n); s=n%10; while(n/j!=0) { s=s+n/j%10; j=j*10; i++; } printf("i=%d, s=%d ",i,s); }
11、 九· 九表----1
1 1 2 3 4 5 6 7 8 9 2 2 4 6 8 10 12 14 16 18 3 3 6 9 12 15 18 21 24 27 4 4 8 12 16 20 24 28 32 36 5 5 10 15 20 25 30 35 40 45 6 6 12 18 24 30 36 42 48 54 7 7 14 21 28 35 42 49 56 63 8 8 16 24 32 40 48 56 64 72 9 9 18 27 36 45 54 63 72 81
2、输入一串字符,直到输入一个星号为止, 统计(输出)其中的字de <stdio.h> void main() { char ch; int char_num=0,int_num=0; ch=getchar(); while(ch!='*') { if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')) char_num++; else if(ch>='1'&&ch<='9') int_num++; ch=getchar(); } printf("char_num = %d, int_num = %d\n",char_num,int_num); }

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___。

《c语言程序设计教程》林芳,易云飞版第五章循环结构例题练习题详解

《c语言程序设计教程》林芳,易云飞版第五章循环结构例题练习题详解

例1/****************************************************************************** *****题目:计算n的阶乘!设计:狼影时间:2012-03-05 19:59******************************************************************************* ********//****************************************************************************** ***注意!下面所求数的阶乘不能超过31,要请求更大数的阶乘!请参照第二个阶乘函数!哈!第二个能看懂的就看啊!思想是用数组来保存数据,然后在输出数组中的数!(下面对它做了充分的解释,祝你能看懂哈!!)******************************************************************************* ******//***********************第一个函数*******************************/# if 1# include <stdio.h>main(){int n, i;unsigned long sum = 1;//请求用户输入数据,不能超过12,所以为了避免溢出出错,在下面限制了数的大小printf("请输入要求什么数的阶乘\n");scanf("%d", &n);//限制数的大小if(n<0 || n>12)printf("你输入错误!\n");if(n==0 ||n == 1)printf("此数的阶乘为1\n");//求当n大于一时的阶乘!if(n>1 && n<=12){for(i = 2; i<=n; i++){sum *= i;}printf("%d!=%d\n" ,n, sum);}}# endif/****************************************************************************** *****************请输入要求什么数的阶乘1212!=479001600Press any key to continue******************************************************************************* ******************请输入要求什么数的阶乘13你输入错误!Press any key to continue******************************************************************************* *********************//**********************************************第二个函数利用数组求大数阶乘!*******************************//****************************************************************************** *************************重点!要将数组中的每一位元素都乘以2到n的数;规范数组元素,看每位数组元素保留几位数;在规范中,如何计算进位?解决:用数组元素整除位数加一的最小数例如:保留3位,就要用数组元素整除1000 ;123/1000 = 0,进位为01234/1000 = 1,进位为1;如何保证每位数组元素有一定的位数?解决:用数组元素整除位数加一的最小数求余如:保留3位123%1000 = 123; 1234%1000 = 234;当有进位时,数组下标要加一;如何判断有进位?当当前的下标元素加一的数组元素>零时,说明有进位;正确输出(要逆序输出数组,从右向左);例如:7!= 5040 假如每位数组元素保留3位数则在数组中7!的表示法为40 / 5(为了方便看每位数组元素用/隔开)由上知数组逆序输出,因为产生的进位都会加到数组的下一位;由上可以看到如果按上面的逆序输出得到的是540,少了一个零,为了保证零的不缺失,所以输出时除了最高位的都要用03d%保证三位,不足三位的在左边补零。

第5章 循环结构程序设计习题解答

第5章 循环结构程序设计习题解答

第5章循环结构程序设计习题解答1.输入n个整数,求这n个数之中的偶数平均值,并输出。

#include<stdio.h>void main(){int n,i,x,k=0,s=0;printf("Input a number(n):");scanf("%d",&n);printf("Input %d numbers:",n);for(i=0;i<n;i++){scanf("%d",&x);if(x%2==0){s+=x;k++;}}s/=k;printf("average=%d\n",s);}2.输入一串字符,直到输入一个星号*为止,统计(输出)其中字母个数和数字字符个数。

#include<stdio.h>void main(){int n=0,m=0;char c;printf("Input a string character:");do{scanf("%c",&c);if(c>='0'&&c<='9')n++;else if(c>='A'&&c<='Z'||c>='a'&&c<='z')m++;}while(c!='*');printf("number_char=%d\n",n);printf("letter_char=%d\n",m);}3.从键盘输入一正整数n,计算该数各位数字之和并输出。

例如,输入数是5246,则计算5+2+4+6=17并输出。

#include<stdio.h>void main(){int n,r,m=0,s=0;printf("Input a number(int):");scanf("%d",&n);do{r=n%10;s=s+r;n/=10;if(m==0)printf("%d",r);//加式中的第1项不带“+”elseprintf("+%d",r);m++;}while(n>0);printf("=%d\n",s);}4.输入一个字符串,将其中的大写字母改为小写字母,小写字母改为大写字母,然后输出。

(整理)程序设计基础(人民邮电出版社)答案第5章循环结构程序设计

(整理)程序设计基础(人民邮电出版社)答案第5章循环结构程序设计

一、单选题1.for语句中的表达式可以部分或全部省略,但两个C不可省略。

但当三个表达式均省略后,因缺少条件判断,循环会无限制地执行下去,形成死循环。

A)0 B)1C);D),2.程序段如下int k=-20;while(k=0) k=k+1;则以下说法中正确的是C。

A)while循环执行20次B)循环是无限循环C)循环体语句一次也不执行D)循环体语句执行一次3.程序段如下int k=0; while(k++<=2); printf("%d\n",k);则执行结果是D。

A)2 B)3C)4 D)无结果4.在C语言的循环语句for,while,do-while中,用于直接中断循环的语句是C 。

A)swich B)continueC)break D)if5.循环语句中的for语句,其一般形式如下:for(表达式1;表达式2;表达式3)语句其中表示循环条件的是B。

A)表达式1 B)表达式2C)表达式3 D)语句6.以下能正确计算1×2×3×…×10的程序段是C。

A)do {i=1;s=1; s=s*i; i++; } while(i<=10);B)do {i=1;s=0; s=s*i; i++; } while(i<=10);C)i=1;s=1; do {s=s*i; i++; } while(i<=10);D)i=1;s=0; do {s=s*i; i++; } while(i<=10);7.不是无限循环的语句为A。

A)for(y=0,x=1;x>++y;x=i++)i=x; B)for( ; ;x++=i);C)while(1){x++;} D)for(i=10; ;i--) sum+=i;8.有以下程序段int n=0,p;do{scanf(“%d”,&p);n++;}while(p!=12345 && n<3);此处do—while循环的结束条件是D。

第五章循环结构的程序设计补充习题(1)

第五章循环结构的程序设计补充习题(1)

第五章循环结构得程序设计补充习题(1)一、单选题1、以下叙述正确得就是A) dowhile语句构成得循环不能用其它语句构成得循环来代替。

B) dowhile语句构成得循环只能用break语句退出。

C) 用dowhile语句构成得循环,在while后得表达式为非零时结束循环。

D) 用dowhile语句构成得循环,在while后得表达式为零时结束循环。

2、设有程序段int k=10;while(k=0) k=k1;则下面描述中正确得就是。

A)while循环执行10次B)循环就是无限循环C)循环体语句一次也不执行D)循环体语句执行一次3、有如下程序main{ int x=23;do{ printf("%d",x);}while(!x);}该程序得执行结果就是A) 321 B) 23 C) 不输出任何内容D) 陷入死循环4、有如下程序main{ int n=9;while(n>6) {n;printf(“%d”,n);}}该程序段得输出结果就是A) 987 B) 876 C) 8765 D) 98765、有以下程序main{ int s=0,a=1,n;scanf("%d",&n);do{ s+=1; a=a2; }while(a!=n);printf("%d\n",s);}若要使程序得输出值为2,则应该从键盘给n输入得值就是A)1 B)3 C)5 D)06、若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)s=a;for(b=1;b<=c;b++) s=s+1;则与上述程序段功能等价得赋值语句就是A)s=a+b; B)s=a+c; C)s=s+c; D)s=b+c;7、标有/**/得语句得执行次数就是:int y , i ;for(i=0;i<20;i++){ if( i%2==0) continue ;y+=i ; /**/}A) 20 B)19 C)10 D) 98、要求以下程序得功能就是计算:s= 1+1/2+1/3+……+1/10main{ int n; float s;s=1、0;for(n=10;n>1;n) s=s+1/n;printf("%6、4f\n",s);}程序运行后输出结果错误,导致错误结果得程序行就是A)s=1、0; B)for(n=10;n>1;n)C)s=s+1/n; D)printf("%6、4f\n",s)9、C语言中while与dowhile循环得主要区别就是______。

补充习题(循环)

补充习题(循环)

循环结构一、选择题1、设i和x都是int类型,则for循环语句( )for(i=0,x=0;i<=9&&x!=876;i++) scanf(“%d”,&x);(A)最多执行10次(B)最多执行9次(C)执行无限次(D)一次也不执行2、下述for循环语句()int i,k;for(i=0,k=-1;k=1;i++,k++) printf(“***”);(A)判断循环结束的条件非法(B)执行无限次(C)只循环一次(D)一次也不执行3、在下述程序中,判断i>j共执行了()次#include<stdio.h>main(){int i=0,j=10,k=2,s=0;for(;;){i+=k;if(i>j){printf(“%d”,s);break;}s+=i;}}(A)4 (B)5 (C)6 (D)74、以下程序的输出结果是()#include<stdio.h>main(){int i;for(i=1;i<=5;i++){if(i%2)putchar(…<‟);elsecontinue;putchar(…>‟);}putchar(…#‟);}(A)<><><># (B)><><><# (C)<><># (D)><><# 5、以下程序的输出结果是()#include<stdio.h>main(){int k=0,m=0,i,j;for(i=0;i<2;i++){for(j=0;j<3;j++)k++;k-=j;}m=i+j;printf(“k=%d,m=%d”,k,m);}(A)k=0,m=3 (B)k=0,m=5 (C)k=1,m=3 (D)k=1,m=56、下列程序的输出结果是()int i,j,m=0;for(i=1;i<=15;i+=4)for(j=3;j<=19;j+=4)m++;printf(“%d”,m);(A)12 (B)15 (C)20 (D)25 7、以下程序的输出结果是()int x=3;do{printf(“%d”,x-=2);}while(!(--x));(A)1 (B)3 0 (C)1 -2 (D)死循环8、以下程序的运行结果是()#include<stdio.h>void main( ){int y=10;for(;y>0;y--)if(y%3==0){printf(“%d”,--y);continue;}}(A)741 (B)852 (C)963 (D)87543219、若x是int型变量,以下程序段的输出结果是()for(x=3;x<6;x++) printf((x%2)?(“**%d”):(“##%d\n”),x);(A)**3 (B)##3 (C)##3 (D)**3##4 ##4 **4 **4##5 **5**5 ##510、如下程序的输出结果是()#include<stdio.h>main(){ int x,i;for(i=1;i<=100;i++){x=i;if(++x%2==0)if(++x%3==0)if(++x%7==0)printf(“%d”,x);}printf(“\n”);}(A)3981 (B)4284 (C)2668 (D)287011、以下循环体的执行次数是:()#include<stdio.h>main(){ int i,j;for(i=0,j=1;i<=j+1;i+=2,j--) printf(“%d\n”,i);}(A)3 (B)2 (C)1 (D)012、以下程序的输出结果是()#include<stdio.h>main(){int n=9;while(n>6) {n--;printf(“%d”,n);}}(A)987 (B)876 (C)8765 (D)9876 13、有以下程序段int k=0;while(k=1) k++;while循环执行的次数是()(A)无限次(B)有语法错,不能执行(C)一次也不执行(D)一次14、以下程序的输出结果是()#include <stdio.h>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)1115、以下的for循环()for(x=0,y=0;(y!=123)&&(x<4);x++);(A)死循环(B)循环次数不定(C)循环执行4次(D) 循环执行3次16、语句while(!E);中的条件!E等价于()(A)E==0 (B)E!=1 (C) E!=0 (D) -E17、以下程序片段的执行结果是()int x=23;do{printf(“%d”,x--);}while(!x);(A)321 (B) 23 (C) 无输出(D) 死循环18、下面程序的输出结果是()#include<stdio.h>main(){int k,j,m;for(k=5;k>=1;k--){m=0;for(j=k;j<=5;j++)m=m+k*j;}printf(“%d”,m);}(A)124 (B) 25 (C) 36 (D)1519、下面程序的输出结果是()#include<stdio.h>main(){int x=10,y=10,i;for(i=0;x>8;y=++i)printf(“%d%d”,x--,y);}(A)10 1 9 2 (B)9 8 7 6 (C)10 9 9 0 (D)10 10 9 120、下面程序的输出结果是()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,0 (B)2,1,0 (C)1,2,1 (D)2,1,1二、填空题1、以下程序段的输出结果是_____。

第5章 循环结构程序设计-答案

第5章 循环结构程序设计-答案
程序运行后的输出结果是(C)。
A)1,1B)2,2C)3,3D)4,4
15.以下程序中,printf语句的执行次数是( B )。
main()
{
int i,j;
for (i=1; i<=5;i++)
for (j=1;j<=10;j++)
printf("%d \n",i+j);
}
A、15B、50C、死循环D、0
{
for(j=2,j<=i-1;j++)
if(i%j==0) break;//利用求余运算符%,只要满足i%j==0)就退出循环
if(j==i)/i是否素数的判定条件
printf("%d\n",i);
}
}
4.编程序输出9*9乘法口诀表。
程序如下:
#include <stdio.h>
void main()
二、程序设计
1用while语句求1+2+3+…+99+100的和。
程序如下:
#include <stdio.h>
voidmain()
{
int i=1,s=0;//循环首部,循环初始条件
while(i<=100)//循环首部,包含循环条件
{
s=s+i;/*循环体,复合语句*/
i++;//改变循环控制变量
程序如下:
#include <stdio.h>
void main()
{
int iNum=0,iLet=0;
char ch;
printf("input a string:\n");

[第五章补充练习题参考答案]

[第五章补充练习题参考答案]

[第五章补充练习题参考答案]一、选择题:1. 在循环语句while(100)printf(“ABC”); 中,执行循环体的次数是③,在循环语句int i, j;for(i=0, j=0; i<=3&&j; i++) j++; 执行循环体的次数是②。

(1) ①100 ②0 ③无限④10(2) ① 3 ②0 ③无限④ 12. 以下不正确的if语句是____③___。

③if (x!=y) scanf(“%d”,&x) else scanf(“%d”,&y );3.若有说明语句:int w=1,x=2,y=3,z=4;则表达式w>x?w:z>y?z:x的值是 __ ①。

① 4 ② 3 ③ 2 ④ 14. 以下关于switch语句和break语句的描述中,只有③是正确的。

③在switch语句中,可根据需要用或不用break语句。

5. 设x, y, z 均为int型变量,则执行以下语句后,z的逻辑值为③。

x=10, y=5;z=x--||--y;①不定值② 2 ③ 1 ④06.以下程序的输出结果是①。

void main(){int a=0,i=1;switch(i){case 0:case 1: a+=2;case 2:case 3: a+=3;default: a+=7;}printf(“%d\n”,a);}①12 ②7 ③ 2 ④ 5二、填空题:1.。

些动作应该执行的顺序求解问题的过程称为算法。

2.。

这三种控制结构是顺序结构、选择结构、和循环结构。

3.。

的多个语句称为复合语句。

4.。

除了从循环条件退出循环外,还可以用break退出循环。

5.。

在通常情况下,表达式1用来给__ 循环变量赋初值_、表达式2用来作为__循环条件___、表达式3用来给循环变量增值_。

6.。

关系表达式是x*y<0,“0<a<1和0<b<1同时成立”的关系表达式是(0<a&&a<1)&&(0<b&&b<1)。

C语言 循环结构程序设计模拟题

C语言  循环结构程序设计模拟题

C语言循环结构程序设计模拟题-CAL-FENGHAI.-(YICAI)-Company One1第五章循环结构程序设计一、选择题1.while循环语句中,while后一对圆括号中表达式的值决定了循环体是否进行,因此,进入while循环后,一定有能使此表达式的值变为的操作,否则,循环将会无限制地进行下去。

(0级)A)0 B)1 C)成立 D)22.在do-while循环中,循环由do开始,用while结束;必须注意的是:在while表达式后面的不能丢,它表示do-while语句的结束。

(0级)A)0 B)1 C); D),3.for语句中的表达式可以部分或全部省略,但两个不可省略。

但当三个表达式均省略后,因缺少条件判断,循环会无限制地执行下去,形成死循环。

(0级)A)0 B)1 C); D),4.程序段如下int k=-20;while(k=0) k=k+1;则以下说法中正确的是。

(1级)A)while循环执行20次 B)循环是无限循环C)循环体语句一次也不执行 D)循环体语句执行一次5.程序段如下int k=1;while(!k==0) {k=k+1;printf("%d\n",k);}说法正确的是。

(1级)A)while循环执行2次 B)循环是无限循环C)循环体语句一次也不执行 D)循环体语句执行一次6.以下for循环是。

(1级)for(a=0,b=0;(b!=123)&&(a<=4);a++)A)无限循环 B)循环次数不定 C)执行4次 D)执行5次7.在下列程序中,while循环的循环次数是。

(1级)main( ){ int i=0;while(i<10){if(i<1) continue;if(i= =5) break;i++;}......}A)1 B)10 C)6 D)死循环、不能确定次数8.程序段如下int k=0; while(k++<=2) printf("%d\n",k);则执行结果是。

循环结构的程序设计补充习题

循环结构的程序设计补充习题

第五章循环结构的程序设计补充习题(1)(总5页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--第五章循环结构的程序设计补充习题(1)一、单选题1. 以下叙述正确的是A) do-while语句构成的循环不能用其它语句构成的循环来代替。

B) do-while语句构成的循环只能用break语句退出。

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

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

2. 设有程序段int k=10;while(k=0) k=k-1;则下面描述中正确的是。

A)while循环执行10次B)循环是无限循环C)循环体语句一次也不执行D)循环体语句执行一次3. 有如下程序main(){ int x=23;do{ printf("%d",x--);}while(!x);}该程序的执行结果是A) 321 B) 23 C) 不输出任何内容 D) 陷入死循环4. 有如下程序main(){ int n=9;while(n>6) {n--;printf(“%d”,n);}}该程序段的输出结果是A) 987 B) 876 C) 8765 D) 98765. 有以下程序main(){ int s=0,a=1,n;scanf("%d",&n);do{ s+=1; a=a-2; }while(a!=n);printf("%d\n",s);}若要使程序的输出值为2,则应该从键盘给n输入的值是A)-1 B)-3 C)-5 D)06.若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c 大于0)s=a; for(b=1;b<=c;b++) s=s+1; 则与上述程序段功能等价的赋值语句是A)s=a+b; B)s=a+c; C)s=s+c; D)s=b+c;7. 标有/**/的语句的执行次数是:int y , i ;for(i=0;i<20;i++){ if( i%2==0) continue ;y+=i ; /**/}A) 20 B)19 C)10 D) 98.要求以下程序的功能是计算:s= 1+1/2+1/3+……+1/10main(){ int n; float s;s=;for(n=10;n>1;n--) s=s+1/n;printf("%\n",s);}程序运行后输出结果错误,导致错误结果的程序行是A)s=; B)for(n=10;n>1;n--)C)s=s+1/n; D)printf("%\n",s)9.C语言中while和do-while循环的主要区别是______。

习题集详解(第5章 循环结构程序设计)

习题集详解(第5章 循环结构程序设计)

第5章循环结构程序设计一、选择题1【B】初值为10,循环条件为n>7。

根据题目的要求循环执行三次,printf()执行后没有换行,循环控制变量是递减。

进入循环后首先执行了n--,在此行执行过程中n不变化,但执行完成后进入下一行输出语句时要变化,因此依次输出9 8 7。

提醒注意n++与++n在练习中经常出现。

2【D】此题目的标准代码结构如下:# include<stdio.h>void main(){int y=10;do{y--;}while (--y);printf("%d\n",y--);}本题目逻辑关系很明确,do……while();结构,只有当条件不成立(为0)时循环结束,因此答案是D3【C】注意代码关系,进入循环后,第一次执行printf后,x-=2 x=x-2结果是x=1,--x 变成x=0,此时应当结束循环,但!0让条件重新成立(注意此时x=0),再次进入循环,进入循环后执行x=x-2结果x=-2,输出了-2。

执行—x后x=-3,!判断的条件是0或非0,因此!(-3)=0,循环结束,答案是C。

4【B】本题目的要求是找到能够被13与11同时整除的数,循环中的信息为与13相关的内容,因此while条件中一定是与11相关的信息,根据题意,只能是k%11。

代码如下:# include<stdio.h>void main(){int i=0,j,k;do{i++;k=316-13*i;}while (k%11);j=k/11;printf("316=13*%d+11*%d\n",i,j);}5【B】题目很明显,while条件为成立,循环中的x++与条件没有仸何关系。

其它语句参考教材可以知道。

P92中说明了for循环可以省略部分条件的前提。

它一定是在程序的其它地方进行了描述。

因此本题目单纯从题面分析有多个选择如A与C,但能够通过题面直接确定的只有一个。

第五章 循环结构程序设计编程题(参考答案)

第五章 循环结构程序设计编程题(参考答案)

第五章循环结构程序设计编程题(参考答案)第五章循环结构程序设计编程题(参考答案)第五章圆形结构方案设计1.用for循环语句编程输出1~20之间的所有整数,两数之间以空格分隔。

#includevoidmain(){inti;for(i=1;i<=20;i++)printf(\printf(\}2.用for循环语句编程输出20~1之间的所有整数,两数之间以空格分隔。

#includevoidmain(){inti;for(i=20;i>=1;i--)printf(\printf(\}3.用for循环语句编程输出a~z之间的所有字符,两字母之间以空格分隔,要求一行输出8个字符。

#includevoidmain(){查克;for(c='a';c<='a'+25;c++){putchar(c);}printf(\}4.输出100到200之间可以被3和7除的所有数字(每行4个数字)#includevoidmain(){5.输出1至1000之间所有满足用3除余2、用5除余3、用7除余2的数(要求每行只输出5个数)。

#includevoidmain(){inti,j=0;for(i=100;i<=200;i++){}如果(i!==0){j++;printf(\if(j%4==0)printf(\}inti,j=0;对于(i=1;i<=1000;i++){if((i%3==2)和&(i%5==3)和&(i%7==2)){j++;printf(\if(j%5==0)printf(\}}}6.先读入一个正整数n,然后计算并显示前n个偶数的和。

例如n为5,则求2+4+6+8+10的值,即sum=30。

#includevoidmain(){inti,n,sum=0;printf(\scanf(\for(i=1;i<=n;i++)sum+=(2*i);printf(\}7.计算s=1+1/2+1/3+1/4++1/200并输出#includevoidmain(){8.计算1-3+5-7+?-99+101的值。

C语言程序设计第5章-5.5

C语言程序设计第5章-5.5
else continue ; printf(“#”);} printf(“$\n”); } A *#*#*#$ B #*#*#*$ C *#*#$ D #*#*$
5.5.2 练习题
一.选择题 6.若有如下语句
int x=3; do{printf(""%d\n",x-=2);}while(!(--x)); 则上面程序段______。 (A)输出的是1 (B)输出的是1和-2 (C)输出的是3和0 (D)是死循环 7.下面程序的运行结果是_______。 #include “stdio.h” main( ) { int y=10; do {y--;} while(--y); printf(“%d\n”,y--);} A –1 B 1 C 8 D 0
{s=1; for(j=k;j<6;j++) s+=j; } printf("%d\n",s); getch();}
(A)9 (B)1 (C)10 (D)12
5.5.2 练习题
一.选择题
11.以下程序的输出结果是_______。 #include "stdio.h"
main() {int i=5; for(;i<15;) { i++; if(i%4==0)
if(t<3) break; } 下面描述正确的是_______。 A 其中循环控制表达式与0等价 B 其中循环控制表达式与‘0’等价 C 其中循环控制表达式是不合法的 D 以上说法都不对
5.5.2 练习题
一.选择题
3.执行语句for(i=1;i++<4; );后变量i的值是______. (A)3 (B)4 (C)5 (D)不定 4.以下for循环的执行次数是_______。 for(x=0,y=0 ; (y=ห้องสมุดไป่ตู้23)&&(x<4) ; x++); (A) 是无限循环 (B )循环次数不定 (C) 执行4次 (D )执行3次 5.下面程序的运行结果是_______。 #include “stdio.h” main( ) { int j; for(j=1 ; j<=5 ; j++) {if(j%2) printf(“*”);

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

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

.. . .第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__。

. 学习.资料.第5章循环结构程序设计35A. 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___。

C语言试题

C语言试题

循环结构程序设计补充题1、选择题(1)C 语言while 语句中,用于条件判断的表达式是 。

A.关系表达式B.逻辑表达式C.算术表达式D.任意表达式(2)下列while 循环,将执行 。

i=4;while(--i) printf );,%(i d ''''A .3次 B. 4次 C .0次 D.无限次(3)下列程序段执行后s 值为 。

int i=1,s=0;while(i++) if(!(I%3)) break; else s+=i;A. 2B. 3C. 6D.以上均不是(4)下述程序的输出结果为 。

#include<stdio.h>main( ){ int x=3,y=6,z=0;while(x++!=(y-=1)){z++;if(y<x) break;}printf (“x=%d, y=%d, z=%d”,x,y,z);}A. x=4,y=4,z=1B. x=5,y=4,z=3C. x=5,y=4,z=1 D x=5,y=5,z=12、填空题(1)用for 语句循环打印0 1 2 0 1 2 0 1 2;for(i=1;i<=9;i++) printf (“%2d”,_____);(2)下列程序段的输出为 。

#include<stdio.h>main( ){ int i=1;while(i<=-1)printf (“###”);printf (“%d”,i);}(3)下列程序段的输出为 。

#include<stdio.h>main( ){ int i=5;do{i--;printf(“###”);}while(i);printf(“%d”,i);}(4)下列程序段的输出为。

int x=5,y=10;do{x>y?(x-=1,y+3):(x+=4,y-=2);}while(x+y<15);printf(“x=%d,y=%d\n”,x,y);(5)下述程序的输出结果为。

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

第五章循环结构的程序设计补充习题(1)一、单选题1. 以下叙述正确的是A) do-while语句构成的循环不能用其它语句构成的循环来代替。

B) do-while语句构成的循环只能用break语句退出。

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

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

2. 设有程序段int k=10;while(k=0) k=k-1;则下面描述中正确的是。

A)while循环执行10次B)循环是无限循环C)循环体语句一次也不执行D)循环体语句执行一次3. 有如下程序main(){ int x=23;do{ printf("%d",x--);}while(!x);}该程序的执行结果是A) 321 B) 23 C) 不输出任何内容D) 陷入死循环4. 有如下程序main(){ int n=9;while(n>6) {n--;p rintf(“%d”,n);}}该程序段的输出结果是A) 987 B) 876 C) 8765 D) 98765. 有以下程序main(){ int s=0,a=1,n;scanf("%d",&n);do{ s+=1; a=a-2; }while(a!=n);printf("%d\n",s);}若要使程序的输出值为2,则应该从键盘给n输入的值是A)-1 B)-3 C)-5 D)06.若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)s=a;for(b=1;b<=c;b++) s=s+1;则与上述程序段功能等价的赋值语句是A)s=a+b; B)s=a+c; C)s=s+c; D)s=b+c;7. 标有/**/的语句的执行次数是:int y , i ;for(i=0;i<20;i++){ if( i%2==0) continue ;y+=i ; /**/}A) 20 B)19 C)10 D) 98.要求以下程序的功能是计算:s= 1+1/2+1/3+……+1/10main(){ int n; float s;s=1.0;for(n=10;n>1;n--) s=s+1/n;printf("%6.4f\n",s);}程序运行后输出结果错误,导致错误结果的程序行是A)s=1.0; B)for(n=10;n>1;n--)C)s=s+1/n; D)printf("%6.4f\n",s)9.C语言中while和do-while循环的主要区别是______。

A)do-while的循环体至少无条件执行一次B)while的循环控制条件比do-while的循环控制条件严格C)do-while允许从外部转到循环体内D)do-while的循环体不能是复合语句10. 以下能正确计算1*2*3*…*10的程序段是______。

A)do {i=1;s=1;s=s*i;i++;}while(i<=10);B)do {i=1,s=0;s=s*i;i++;}while(i<=10);C)i=1;s=1;do{s=s*i;i++;}while(i<=10);D)i=1;s=0;do{s=s*i;i++;}while(i<=10);11. 以下正确的描述是( )A) 循环体中的continue语句的作用是结束整个循环的执行B) switch语句中不能出现break语句C) continue语句只能中止本次循环D) break语句不能用于多重循环12. 语句while(!E);中的表达式!E等价于________.A)E==0 B)E!=1 C)E!=0 D)E==113. 设有程序段t=0;while(printf(“*”)){ t++;if(t<3) break;}则下面描述正确的是。

A)其中循环控制表达式与0等价B)其中循环控制表达式与‘0’等价C)其中循环控制表达式是不合法的D)以上说法都不对14. 下面有关for循环的正确描述是。

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

A)for(表达式1;0;表达式3) B)for(表达式1;1;表达式3)C)for(表达式1; 表达式1;表达式3)D)for(表达式1; 表达式3;表达式3)16.下面程序段( )。

for(t=1;t<=100;t++){scan f(“%d,&x);if(x<0)continue;printf(“%3d”,x);}A) 当x<0时整个循环结束B) x>=0时什么也不输出C) printf函数永远也不执行D)最多允许输出100个非负整数二、填空题1. continue 语句是用来结束________循环的。

2. 下列程序段循环执行的次数是次。

int x=0;while(x=1){ x--;if(x==0)break;}3. 循环程序段“k=5; for(; k<0; k--);”执行后,k的值为。

4. 执行循环结构中的语句能够立即退出该结构。

5.执行循环结构中的语句能够立即执行下一次循环。

6. 设i,j,k均为int型变量,则执行完下面的for循环后,k的值为。

for(i=0,j=10;i<=j;i++,j--) k=i+j;三、判断题1.若有说明int c;则while(c=getchar());是正确的C语句。

( )2.do-while语句构成的循环不能用break语句退出。

( )3.for循环只能用于循环次数已经确定的情况。

( )4.for( ; ; )S中的语句S必执行无穷多次。

( )5.若S为C语句,while(1) S必定是无限循环。

( )四、写出下列程序的运行结果1.下面程序的运行结果是。

#include <stdio.h>main(){ int num=0;while(num<=2){num++;printf(“%d\n”,num);}}2.以下程序的输出是。

#include <stdio.h>main(){ int i;for(i=1;i<=5;i++){if(i%2) printf(“*”);else continue;printf(“#”);}printf(“$\n”);}3.当运行以下程序时,从键盘键入right?<CR>(<CR>代表回车),则下面程序的运行结果是。

#include <stdio.h>main(){ char c;while((c=getchar())!=…?‟) putchar(++c);}4.下列程序的输出结果是。

main ( ){ int a=0, n=5;for ( ; ; ){ a++; n--;printf("%d,",a);a=n;if (n==0) break;}printf("%d",a);}五、程序填空题1. 下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。

请填空。

int n=0;char c;c=getchar();while(____){if(_____)n++;c=getchar();}2下面程序的功能是将从键盘输入的一对数,由小到大排序输出。

当输入一对相等数时结束循环,请选择填空。

#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);scanf(“%d %d”,&a,&b);}}3.已知能被4整除而不能被100整除的或者能被400整除的年份是闰年,则闰年的判断条件程序如下:main(){int year,leap;scanf(“%d ”,&year);if ( )leap=1;else leap=0;if ( )printf(“是闰年”);else printf(“不是闰年”);}4.下面程序的功能是将从键盘输入的一组字符中统计出大写字母的个数m和小写字母的个数n,并输出m、n中的较大者,请选择填空。

#include <stdio.h>main(){int m=0,n=0;char c;while(( )!=‘\n’){ if(c>='A'&&c<='Z') m++;if(c>='a'&&c<='z') n++;}printf(“%d\n”,m<n?);}5.下面程序的功能是将小写字母变成对应大写字母后的第二个字母。

(如a变成B。

)其中y变成A,z变成B。

请选择填空。

#include <stdio.h>main(){ char c;while((c=getchar())!='\n'){if(c>='a'&&c<='z'){ ;if(c>'Z');}printf(“%c”,c);}}6.下面程序的功能是在输入的一批正整数中求出最大者,输入0结束循环,请选择填空。

#include <stdio.h>main(){int a,max=0;scanf(“%d”,&a);while( ){ if(max<a) max=a;scanf(“%d”,&a);}printf(“%d”,max);}7.鸡兔共有30只,脚共有90个,下面程序段是计算鸡兔各有多少只,请填空。

for (x=1; x<=29; x++){ y=30-x;if ( )printf("%d, %d\n", x, y);}。

相关文档
最新文档