c语言循环语句训练题
- 格式:docx
- 大小:14.05 KB
- 文档页数:2
循环习题集锦一.选择题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语句构成的循环不能用其他语句构成的循环来代替。
循环1一、单项选择题1、以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是__A____。
A. if((a>b)&&(b>c)) k=1;B. if((a>b)||(b>c)) k=1else k=0; else k=0;C. if(a<=b) k=0;D. if(a>b) k=1;else if(b<=c) k=1; else if(b>c) k=1;else k=0;2、C语言的do_while循环中,循环由do开始,用while结束;而且在while表达式后面的___B___不能丢,它表示do_while循环的结束。
A. \nB. “;”C. “%”D. “,”3、执行程序段:x=-1; do { x=x*x;} while(!x); 的结果是__C____。
A. 死循环B. 循环执行2次C. 循环执行一次D. 有语法错误4、下面程序段的输出结果是__D____。
int i,sum;for(i=1;i<=10;i++)sum+=sum;printf("%d\n",i);A. 10B. 9C. 15D.不确定5、以下叙述正确的是___C___。
A. for循环中设置for(条件)break,当条件成立时中止程序执行。
B. for循环中设置for(条件)continue,当条件成立时中止本层循环。
C. for循环中设置for(条件)break,当条件成立时中止本层循环。
D. for循环中设置for(条件)break,当条件成立时暂停本次循环。
6、下面有关for循环的正确描述是__D____。
A. for循环只能用于循环次数已经确定的情况。
B. for循环是先执行循环体语句,后判断表达式。
C. 在for循环中,不能用break语句跳出循环体。
D. for循环的循环体语句中,可以包含多条语句。
循环章节练习题一、选择题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. 运行程序段后输出0。
B. 运行程序段后输出1。
C.程序段中的控制表达式是非法的。
D.程序段执行无限次。
3.下面程序段的运行结果是________。
x=y=0;while(x<15) {y++;x+=++y;}printf(“%d,%d”,y,x);A.20,7 B. 6,12C. 20,8D. 8,203.下面程序的功能是从键盘输入的一组字符中统计出大写字母的个数m和小写字母的个数n,并输出m、n 中的较大者,请选择填空。
#incldue <stdio.h>main(){ int m=0,n=0;char c;while( (___1____)!=’\n’){ if(c>=’A’&&’Z’) m++;if(c>=’a’&&’z’) n++;}printf(“%d\n”,m<n?___2____);}1)A.c=getchar() B.getchar()C.c=getcharD.scanf(“%c”,c);2)A. n:m B. m:n C. m:m D. n:n4.下面程序的功能是在输入的一批正整数中求出最大者,输入0结束循环,请选择填空。
#include <stdio.h> main(){ int a,max=0;scanf(“%d”,&a);while(_______){ if(max<a) max=a;scanf(“%d”,&a);}printf(“%d”,max); }A.a==0B.aC.!a=1D. !a5.下面程序的运行结果是______。
C语⾔中的循环语句练习注:练习题⽬均出⾃《明解C语⾔⼊门篇》⼀、do语句1,求多个整数的和及平均值#include<stdio.h>int main(void){int sum = 0; //和int cnt = 0; //整数个数int retry; //判断是否继续do{int t;printf("请输⼊⼀个整数:");scanf("%d",&t);sum = sum + t;cnt = cnt + 1;printf("是否继续?<Yes...0/No...9:");scanf("%d",&retry);} while(retry == 0);printf("和为%d,平均值为%.2f。
\n",sum,(double)sum / cnt);return0;}⼆、whie语句1,递增显⽰从0到输⼊的正整数为⽌的各个整数#include<stdio.h>int main(void){int i,n;printf("请输⼊⼀个正整数:");scanf("%d",&n);i = 0;while(i <= n)printf("%d ",i++); //i的值在显⽰之后递增printf("\n");return0;}2,编写⼀段程序,按照升序显⽰出⼩于输⼊值的所有正偶数#include<stdio.h>int main(void){int i,n;printf("请输⼊⼀个正整数:");scanf("%d",&n);i = 0;while(i <= n){i = i + 2;if(i < n) //应先对递增后的值进⾏判断,看是否越界printf("%d ",i);}printf("\n");return0;}3,编写⼀段程序,使之交替显⽰+和-,总个数等于所输⼊的整数值#include<stdio.h>int main(void){int num;int i=0;printf("正整数:");scanf("%d",&num);while (i<num) {if (++i%2)putchar('+');elseputchar('-');}return0;}4,逆向显⽰正整数#include<stdio.h>int main(void){int n;do{printf("请输⼊⼀个正整数:");scanf("%d",&n);if(n <= 0)puts("请不要输⼊⾮正整数。
第 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___。
循环2一、单项选择题1. 以下程序的输出结果是______。
#include<stdio.h>void main(){ int num=0; while(num<=2) { num++; printf("%d",num); } }A. 2B. 1C. 123D. 12参考标准答案:C2. 两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是______。
#include <stdio.h>void main(){ int x; scanf("%d",&x);if(x>5)printf("%d",x);else printf("%d\n",x--);}A. 7和5B. 6和3C. 7和4D. 6和4参考标准答案: D3. 以下描述中正确的是______。
A. 由于do-while循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。
B. do-while循环由do开始,用while结束,因此在while(表达式)后无需加分号。
C. 在do-while循环体中,一定要有能使while后面表达式的值变为“假”的操作。
D. do-while循环中,根据情况可以省略while。
参考标准答案: C4. 下面程序段的输出结果是______。
int i=10;while(i>7) { i--; printf(" %d",i); }A. 10 9 8B. 9 8 7C. 10 9 8 7D. 8 9 10参考标准答案:B5. 若i为整型变量,则以下循环执行的次数是______。
for(i=2;i==0;) printf("%d",i--);A. 无限次B. 0次C. 1次D. 2次参考标准答案:B6. 执行下面程序段后,i值是______。
练习题:1. 找出1~n之间的守形数:从个位数看起;n的所有位与nn的对应位完全相同.2. 任给两个整数; 判断一个是否包含在另一个中.例如:567在12567中; 567在1256789中;但567不在125687中.3. 找出1~n之间的能被3整除且含有数字5的整数.4. 找出1~n之间的能被3整除且只含一个5的整数.5. 编程求:6. 输入r进制数字串;将其转换为十进制数输出..7. 输入r进制小数字串;将其转换为十进制小数输出8. 打印下边两个图形9.判断n末尾零的个数..10. 编程将文件中的C程序的注释部分去掉后写入到另一个文件中注释以\ \标志..11.任意读入一批数据;求其最大、最小值、平均值;并统计其中低于均值和高于均值的数的个数..1.守形数include<stdio.h>include<math.h>int main{int i;j;num;x;num1;ii;jj;scanf"%d";&x;ifx==1 printf"1";else{fori=2;i<=x;++i{ii=i;num=1;num1=0; jj=ii-i; //printf"%d";ii;whileii/10{num++;ii/=10;//printf"%d";ii;//getchar;}whilejj%10{num1++;jj/=10;}// getchar;ifnum1>=num printf"%d\n";i;}}}2.两数包含关系include<stdio.h>include<math.h>int main{int x;y;i;num1;num2;xx;yy;tt;num3;scanf"%d%d";&x;&y;xx=x;yy=y;num1=0;num2=0;num3=1;whileyy/10{num3++;yy/=10;}whilexx/10{ifxx%10 num1++;xx/=10;}i=0;whilett=x-yintpow10;i>=0{whilett/10{iftt%10 num2++;tt/=10;}i++;}ifnum2-num1>=num3 printf"包含";else printf"不包含";4. 找出1至n所有能被3整除且仅含有一个5的整数修改 include<stdio.h>int main{int i;ii;x;flag;scanf"%d";&x;fori=1;i<=x;++i{ flag=-1;ii=i;whileii{ifii%10==5 flag++;ii/=10;}//getchar;//printf"%d";flag;ifflag&&i%3==0 printf"%d\n";i;}}6.输入r进制数字串;并转化为十进制数输出..8.打印图形1 include<stdio.h>int main{int i;j;k;y;d=14;char c='Z';fori=1;i<=26;++i//printf the i line { ifi==26 break;forj=1;j<=d;j++printf" ";fork=0;k<=26-i;++kprintf"%c ";c-k;printf"\n";d+=1;c-=1;}d=39;c='A';fori=1;i<=26;++i//printf the i line {forj=1;j<=d;j++printf" ";fork=0;k<i;++kprintf"%c ";c+k;printf"\n";d-=1;}}2 include<stdio.h>int main{int i;j;k;l;d;char c;c1;d=25;c='A';c1='Z';fori=1;i<=26;++i//printf the i line {forj=1;j<=d;j++printf" ";fork=0;k<i;++kprintf"%c ";c+k; forl=0;l<=26-i;++l printf"%c ";c1-l; c1-=1;printf"\n";d-=1;}}9.判断n末尾零的个数;include<stdio.h>int main{ int n;x;num;i;scanf"%d";&n;x=1;num=0;//getchar;fori=1;i<=n;++ix=i;whilex%10{num++;x/=10;}printf"the number of background zero is %d";num;}10.11.此处文件的作用在未学习数组时顶替其作用 include<stdio.h> int main{ FILE fp;fp=fopen"C:\\Users\\ccy\\Desktop\\abc.txt";"w+";float min;max;x;s=0;y;int n=0;i;num1;num2;scanf"%f";&min;fprintffp;"%f ";min;max=min;n++;s+=x;whilefeofstdin{scanf"%f";&x;fprintffp;"%f ";x;n++;s+=x;ifmax<x max=x;else ifmin>xmin=x;}rewindfp;fori=1;i<=n;++i{fscanffp;sizeoffloat;&y; ify>s/n num1++;ify<s/n num2++;}printf"%f%f";min;max;printf"%f";s/n;printf"%d%d";num1;num2;}。
C语⾔循环练习C语⾔循环语句练习⼀、选择题1、C语⾔中不包含以下哪种循环( ad )。
A. do..while..loopB. do..whileC. forD. do..repeat..until2、以下说法错误的是( cd )。
A. do..while循环可以使⽤while循环替代B. while循环可以使⽤for循环替代C. do..while循环不可以使⽤while循环替代D. for循环不可以使⽤while循环替代3、给定如下代码:j=10;for(i=0,++j;iA.10 B.12C.死循环 D.114、给定如下代码:i=0,j=10;while(iA.10 B.12C.死循环 D.115、关于break和continue说法正确的是:( b )A. break和continue只能⽤于循环中。
B.break和continue可以使⽤在循环以及switch..case中C.break和continue可以使⽤在循环嵌套时,continue总可以跳出整个嵌套循环。
D.break和continue在嵌套循环中只能结束或跳出⾃⼰所在层次的循环。
6、关于for(初始化语句;条件表达式;改变语句)中各个语句说法错误的是( d )A. 初始化语句可以省略B.条件表达式可以省略C.改变语句可以省略D.任意⼀个都不能省略⼆、编程题1、编写⼀个C程序,打印以下图形。
***************int line;for (line = 5; line > 0; line--) {for (int i = 1; i <= line; i++) {printf("* ");}printf("\n");}2、编写⼀个C程序,打印以下图形。
*************************{ for (int i =4;i>=0;i--){for(int j=5;j>i;j--){printf(" ");}for (int m=0;m<2*i+1;m++){printf("*");}printf("\n");}return 0 ;3、编写⼀个C程序,任意输⼊10个数字,使⽤循环进⾏输⼊,最后输出正数之和以及负数之和。
循环习题集锦一.选择题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 10D 无限次10.下面有关for 循环的正确描述是(D)A.for 循环只能用于循环次数已经确定的情况B.for 循环是先执行循环体语句,后判断表达式C.在for 循环中,不能用break 语句跳出循环体。
c语言循环试题及答案C语言循环试题及答案1. 以下哪个选项是C语言中实现循环的关键字?A. switchB. caseC. whileD. do答案:C2. 写出一个使用for循环的程序段,计算1到100之间所有奇数的和。
```cint sum = 0;for(int i = 1; i <= 100; i += 2) {sum += i;}printf("The sum of odd numbers from 1 to 100 is %d", sum);```3. 以下哪个语句是正确的while循环的语法?A. while (condition) statementB. do statement while (condition)C. for (initialization; condition; iteration)D. if (condition) statement答案:A4. 假设有一个数组arr[10],以下哪个循环可以用来遍历这个数组?```cint i;for(i = 0; i < 10; i++) {// 遍历数组}```5. 如果要使用do-while循环打印出1到5的数字,以下哪个程序段是正确的?```cint i = 1;do {printf("%d ", i);i++;} while (i <= 5);```6. 以下哪个选项是break语句的正确用法?A. 用于跳出switch语句B. 用于跳出循环C. 用于进入循环D. 用于结束程序答案:B7. 写出一个使用while循环的程序段,计算1到10的乘积。
int product = 1;int i = 1;while(i <= 10) {product *= i;i++;}printf("The product of numbers from 1 to 10 is %d", product); ```8. 以下哪个选项是continue语句的正确用法?A. 跳过当前循环的剩余部分,开始下一次循环B. 用于跳出循环C. 用于进入循环D. 用于结束程序答案:A9. 假设有一个字符串str,以下哪个循环可以用来遍历这个字符串?```cchar str[] = "Hello";int i = 0;while(str[i] != '\0') {// 遍历字符串i++;}```10. 以下哪个程序段将打印出2到10之间的所有偶数?for(int i = 2; i <= 10; i += 2) { printf("%d ", i);}```。