C语言循环控制练习题
- 格式:doc
- 大小:34.00 KB
- 文档页数:8
循环习题集锦一.选择题1.for(i=0;i<10;i++);结束后,i的值是;A 9B 10C 11D 122.下面程序的循环次数是:#include<>void main(){int k=0;while(k<10){if(k<1) continue;if(k==5) break;k++;}printf(“k=%d\n”,k);}A. 5 B 6 C 4 D 死循环,不能确定循环次数3.下面程序的输出结果是()#include<>void main(){int s,k;for(s=1,k=2;k<5;k++)s=s+k;printf(“%d\n”,s);}A 1B 9C 10D 154.要使下面程序输出10个整数,则在下画线处填入正确的数是:#include<>void main(){int i;for(i=0;i<= ;)printf(“i=%d\n”,i=i+2);} (显示的是:2,4,6,8,10,12, (20)A 9B 10C 18D 205.运行下面程序:#include<>void main(){int i=10,j=0;do{j=j+i; /*第一:10,第二:19第三:27第四:34第五:40*/i--;}while(i>5);printf(“%d\n”,j);}输出结果是:A 45B 40C 34D 556.运行下面程序#include <>main(){int k=0,a=1;while(k<10){for( ; ;){ if((k%10)==0)/*当循环开始的时候时,k=0,此时和10取3余的结果就等于0,就跳出了for循环开始下面的循环*/ break;elsek--;}k=k+11;a=a+k;printf(“k=%d \n a=%d\n”,k,a);}则输出的结果是()A 21 32B 21 33C 11 12D 10 117.以下叙述正确的是:A. do---while语句构成的循环不能用其他语句构成的循环来代替。
第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、有以下程序,若运行时输入3.6 2.4<回车>,则输出的结果是( B)。
main(){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;}elsebreak;}printf(“%f\n”,y);}A)1.500000 B)1.600000 C)2.000000 D)2.4000009、执行以下程序段时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{scanf(“%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 )。
第六章循环控制问题与思考1.对下面程序段描述正确的是__________。
int k=10;while(k=0) k=k-1;A) while循环执行10次 B) 循环是无限循环C) 循环体语句一次也不执行D) 循环体语句执行一次2.语句while(!E);中的表达式!E等价于________.A) E==0B) E!=1 C) E!=0 D) E==13.下面程序段的运行结果是__________.int n=0;while(n++<=2); printf("%d",n);A) 2 B) 3 C) 4 D) 有语法错4.下面程序的运行结果是___________.#include<stdio.h>main(){int num=0;while(num<=2){num++;printf("%d\n",num);}}A)1 B)1 C) 1 D) 12 2 23 345.以下程序段________.x=-1;do{ x=x*x;}while(!x);A) 是死循环 B) 循环执行二次 C) 循环执行一次 D) 有语法错误6.如下程序段 _________.int x=3;do{printf("%d\n",x-=2);}while(!(--x));A) 输出的是1 B) 输出的是1和-2C) 输出的是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) 08.若i为整型变量,则以下循环执行次数是_____.for(i=2;i==0;)printf("%d",i--);A) 无限次 B) 0次 C) 1次 D) 2次9.执行语句for(i=1;i++<4; );后变量i的值是______.如果改成for(i=1;++i<4; );后变量i的值是 4A) 3 B) 4 C) 5 D) 不定10.以下正确的描述是_______.A) continue语句的作用是结束整个循环的执行B) 只能在循环体内和switch语句体内使用break语句C) 在循环体内使用break语句或continue语句的作用相同D) 从多层循环嵌套中退出时,只能使用goto语句11.运行下面程序时,从键盘输入20357<CR>,则下面程序的运行结果是__66277879______。
1.猜数字小游戏:每次程序随机生成一个数字,用户输入数字进行猜测,十回合内猜出数据则胜利,否则失败,可重复游戏。
代码如下:#include <stdio.h>#include <stdlib.h>#include <math.h>int main(){int magic;int guess;int count;int ret;char reply;srand(time(NULL));do{magic = rand()%100+1; //产生1到100之间的随机数//count = 0;do{do{printf("Please guess a magic number:");ret = scanf("%d",&guess);if(ret!=1){while(getchar()!='\n');}}while(ret!=1||guess<1||guess>100); //如果输入不是1到100之间的数字则连续读取//count = count+1;if(guess>magic)printf("Wrong!Too big!\n");else if (guess<magic)printf("Wrong!Too small!\n");else{printf("Right!\n");printf("The number is :%d\n",magic);}}while(guess!=magic&&count<10);if (magic==guess)printf("count = %d\n",count);if (magic!=guess)printf("You lose!");printf("Do you want to continue(Y/N or y/n)?\n");scanf(" %c",&reply);}while((reply=='y')||(reply=='Y'));return 0;}2.任意时间时钟时针与分针的夹角:钟面上的时针和分针之间的夹角总是在 0 度~ 359 度之间。
第六章循环控制一单项选择题1.下面程序段的运行结果是()。
int n=0;while(n++<=2);printf(“%d”,n);A) 2 B) 3 C) 4 D) 有语法错2.设有程序段:t=0;while(printf(“*”)){t++;if(t<3) break;}下面描述正确的是()。
A) 其中循环控制表达式与0等价B) 其中循环控制表达式与'0'等价C) 其中循环控制表达式是不合法的D) 以上说法都不对3.下面程序的功能是将从键盘输入的一对数,由小到大排序输出,当输入一对相等数时结束循环,请选择填空()。
#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);}}A) !a=b B) a!=b C) a==b D) a=b5.对以下程序段描述正确的是()。
x=-1;do{x=x*x;}while(!x);A) 是死循环B) 循环执行二次C) 循环执行一次D) 有语法错误10.若i为整型变量,则以下循环执行次数是()。
for(i=2;i==0;) printf(“%d”,i--);A) 无限次B) 0次C) 1次D) 2次11.以下不是无限循环的语句为()。
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;13.执行语句for(i=1;i++<4;) ;后变量i的值是()。
A) 3 B) 4 C) 5 D) 不定14.有一堆零件(100到200之间),如果分成4个零件一组的若干组,则多2个零件;若分成7个零件一组,则多3个零件;若分成9个零件一组,则多5个零件。
难度(*)--考点:基本概念、判断循环次数1、C语言中下列叙述正确的是(D)A)不能使用do…while语句构成的循环B)do…while语句构成的循环,必须用break语句才能退出C)do…while语句构成的循环,当while语句中的表达式值为非零时结束循环D)do…while语句构成的循环,当while语句中的表达式值为零时结束循环2、对于下列程序片断,(A)int k=0;while(k=1) k++;则while循环的执行次数是A. 无限次B. 有语法错误,不能执行C. 一次也不执行D. 执行一次3、下面程序段(C)int k=2;while (k=0) {printf(“%d”,k);k--;}则下面描述中正确的是。
A )while 循环执行10 次B )循环是无限循环C )循环题语句一次也不执行D )循环体语句执行一次4、当执行以下程序段时(A)x=-1;do { x=x*x;} while(!x);A)循环体将执行一次B)循环体将执行两次C)循环体将执行无限次D)系统将提示有语法错误5、若i为整型变量,则以下循环执行次数是(B):for( i = 2; i ==0;) printf(“%d”, i);A) 无限次B) 0次c) 1次D) 2次6、对for(表达式1; ; 表达式3)可理解为(B)A) for(表达式1; 0 ; 表达式3)B) for(表达式1; 1 ; 表达式3)C) for(表达式1;表达式1; 表达式3)D) for(表达式1;表达式3; 表达式3)7、下面程序的功能是从键盘输入一组字符,从中统计大写字母和小写字母的个数,选择填空。
(A)main ( ){ int m=0,n=0;char c;while (( ) ! '\n'){if (c>='A' && c<='Z') m++;if (c>='a' && c<='z') n++;}}A)c=getchar( ) B)getchar( ) C)c==getchar( ) D)scanf(“%c”,&c)8、下面for 循环语句。
循环习题集锦一. 选择题1. for(i=0;i<10;i++);结束后,i 的值是;(10)A 9B 10C 11D 122.下面程序的循环次数是:(D)int k=0;while(k<10){if(k<1) continue;if(k==5) break;k++;)A. 5 B 6 C 4 D死循环,不能确定循环次数3.下面程序的输出结果是(10)main(){int s,k;for(s=1,k=2;k<5;k++)s+=k;printf("%d\n”,s))A 1B 9C 10D 154.要使下面程序输出10个整数则在下画线处填入正确的数是(c)for(i=0;i<=;)printf("%d\n”,i+=2);A 9B 10C 18D 205.运行下面程序:(B)main(){ int i=10,j=0;do{ j=j+i;i--;}while(i>5);printf("%d\n”,j);}输出结果是:A 45B 40C 34D 556.运行下面程序#include “stdio.h”main(){ int k=0,a=1;while(k<10){for( ; ;){ if((k%10)==0)break;elsek--;)k+=11;a+=k;)printf("%d %d\n”,k,a);)则输出的结果是(C)A 21 32B 21 33C 11 12D 10 117.以下叙述正确的是:(D)A.do---while语句构成的循环不能用其他语句构成的循环来代替。
B.do---while语句构成的循环只能用break语句退出。
C.用do---while语句构成的循环,在while后的表达式为非零时结束循环。
D.用do---while语句构成的循环,在while后的表达式为零时结束循环。
8.有如下程序:main(){ int x=3;do{printf("%d”,x--);}while(!x);)该程序的执行结果是:(C)A 3 2 1B 2 1 0C 3D 29.若k为整型变量,则下面while循环执行的次数为:(A)k=10;while(k==0) k=k-1;A 0B 1C 10 D无限次10.下面有关for循环的正确描述是(D)A.for循环只能用于循环次数已经确定的情况B.for循环是先执行循环体语句,后判断表达式C.在for循环中,不能用break语句跳出循环体。
第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语言中循环的练习题。
通过这些练习题,读者将有机会巩固对C语言循环的理解,并提高自己的编程能力。
以下是一些具体的练习题,逐步加大难度,读者可以根据自己的能力选择适合的练习题进行挑战。
1. 编写一个程序,在控制台输出从1到10的整数。
```c#include <stdio.h>int main() {int i;for(i=1; i<=10; i++) {printf("%d ", i);}return 0;}```2. 编写一个程序,计算1到100之间所有偶数的和。
```c#include <stdio.h>int main() {int i;int sum = 0;for(i=2; i<=100; i+=2) {sum += i;}printf("The sum of all even numbers between 1 and 100 is %d\n", sum);return 0;}```3. 编写一个程序,判断一个输入的整数是否为素数(只能被1和自身整除)。
```c#include <stdio.h>int main() {int num, i, isPrime = 1;printf("Enter a positive integer: ");scanf("%d", &num);for(i=2; i<=num/2; i++) {if(num % i == 0) {isPrime = 0;break;}}if(isPrime == 1) {printf("%d is a prime number.\n", num);} else {printf("%d is not a prime number.\n", num);}return 0;}```4. 编写一个程序,输出斐波那契数列前20个数。
循环控制练习题1。
设有程序段 int k=10; while (k=0) k=k—1; 则下面描述中正确的是()A while循环执行10次B 循环是无限循环C 循环体语句一次也不执行D 循环体语句执行一次2.设有以下程序段 int x=0,s=0; while(!x!=0)s+=++x;printf("%d",s) ;则( )A 运行程序段后输出0B 运行程序段后输出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,0 C 、1,2,1 D、2,1,15、下面程序段的运行结果是( )x=y=0;while(x<15) y++,x+=++y;printf("%d,%d”,y,x);A、20,7B、6,12C、20,8 D 8,206、下面程序段的运行结果是()int n=0;while (n++〈=2);printf(”%d",n);A,2 B、3 C、4 D 有语法错误7、设有程序段t=0;while(printf("*”)){t++; if(t〈3) break;}下面描述正确的是()A、其中循环控制表达式与0等价B、其中循环控制表达式与’0‘等价C 、其中循环表达式是不合法的D、以上说法都不对8、下面程序的功能是将从键盘输入的一对数,由小到大排序输出。
当输入一对相等的数时结束循环,请选择填空。
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);}}A、!a=b B、a!=b C、a==b D、a=b9、下面程序的功能是从键盘输入的一组字符中统计出大写字母个数m和小写字母个数n,并输出m,n中较大者,请选择填空。