C语言循环习题1
下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
2.下载的文档,不会出现我们的网址水印。
3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
文档包含非法信息?点此举报后获取现金奖励!
下载文档到电脑,查找使用更方便
15
积分
还剩页未读,继续阅读
关 键 词:语言
循环
习题
资源描述:
循环习题集锦
一. 选择题
1.for(i=0;i<10;i++);结束后,i的值是;
A 9 B 10 C 11 D 12
2.下面程序的循环次数是:
#includevoid 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.下面程序的输出结果是()
#includevoid main()
{
int s,k;
for(s=1,k=2;k<5;k++)
s=s+k;
printf(“%d\n”,s);
}
A 1 B 9 C 10 D 15
4.要使下面程序输出10个整数,则在下画线处填入正确的数是:
#includevoid main()
{
int i;
for(i=0;i<= ;)
printf(“i=%d\n”,i=i+2);
} (显示的是:2,4,6,8,10,12,…,20)
A 9 B 10 C 18 D 20
5.运行下面程序:
#includevoid main()
{
int i=10,j=0;
do
{
j=j+i; /*第一:10,第二:19第三:27第四:34第五:40*/
i--;
}while(i>5);
printf(“%d\n”,j);
}
输出结果是:
A 45 B 40 C 34 D 55
6.运行下面程序
#include main()
{
int k=0,a=1;
while(k<10)
{
for( ; ;)
{ if((k%10)==0)/*当循环开始的时候时,k=0,此时和10取3余的结果就等于0,就跳出了for循环开始下面的循环*/
break;
else
k--;
}
k=k+11;
a=a+k;
}
printf(“k=%d \n a=%d\n”,k,a);
}
则输出的结果是()
A 21 32 B 21 33 C 11 12 D 10 11
7.以下叙述正确的是:
A. do---while语句构成的循环不能用其他语句构成的循环来代替。
B. do---while语句构成的循环只能用break语句退出。
C.用do---while语句构成的循环,在while 后的表达式为非零时结束循环。
D.用do---while语句构成的循环,在while后的表达式为零时结束循环。
8.有如下程序:
#includevoid main()
{
int x=3;
do{
printf(“x=%d\n”,x--);/*如果x的—在x的前面则结果就是显示的是2*/
}while(!x);/*!x表示不是上面的x*/
}
该程序的执行结果是:
A 3 2 1 B 2 1 0 C 3 D 2
9.若k为整型变量,则下面while循环执行的次数为:
k=10;
while(k==0)
k=k-1;
A 0 B 1 C 10 D无限次
10.下面有关for循环的正确描述是
A.for循环只能用于循环次数已经确定的情况
B.for循环是先执行循环体语句,后判断表达式
C.在for循环中,不能用break语句跳出循环体。
D.for循环的循环体语句汇总,可以包含多条语句,但必须用花括号括起来。
11.对for(表达式1;;表达式3)可理解为
A for(表达式1;0;表达式3)
B for(表达式1;1;表达式3)
C for(表达式1;表达式1;表达式3)
D for(表达式1;表达式2;表达式3)
12.若i为整型变量,则以下循环执行的次数是()
for(i=2;i==0;)printf(“%d”,i--);
A.无限次 B 0次 C 1次 D 2次
13.以下循环体的执行次数是;
main()
{
int i,j;
for(i=0,j=3;i<=j;i=i+2,j--)
printf(“i=%d\n”,i);
}
A 3 B 2 C 1 D 0
14.执行以下程序后,输出结果是:
main()
{
int y=10;
do
{ y--;}while(--y);
printf(“%d”,y--);
}
A -1 B 1 C 8 D 0
15以下程序的输出结果是:
main()
{
int a,b;
for(a=1,b=1;a<=100;a++)
{
if(b>=10) break;
if(b%3==1)
{b=b+3; continue;}
}
printf(“%d”,a);
}
A 101 B 3 C 4 D 5
二、填空题
1. 循环的3个常见语句分别是?
for while do…while
2. 下面程序的运行结果为:
main()
{
int a=10,y=0;
do
{a+=2;y+=a;
if(y>50) break;
}while(a<14);
printf(“a=%d,y=%d\n”,a,y);
}
a=14 y=26
3.从键盘输入1 2 3 4 5 -1 回车,则下面程序运行的结果是:
main()
{ int n,k=0;
do
{ scanf(“%d”,&n);
k+=n;
}while(n!=-1);
printf(“k=%d\n,n=%d\n”,k,n);
}
k=12344 n=-1
4.下面程序的运行结果为:
main()
{int i,j,s=0;
for(i=1,j=5;i=0;j--)
a++;
printf (“a=%d\n”,a);
}
10
8.下面的程序运行后,a的值为:
main()
{ int i,j,a=0;
for(i=0;i<2;i++) a++;
for(j=4,j>=0;j--) a++;
}
7
9.下面程序的运行结果为:
int i=1,s=3;
do{
s+=i++;
if(s%7==0) continue;
else ++i;
}while(s<15);
printf(“%d”,i);
8
10.当运行以下程序时,从键盘输入China# 回车,则下面程序的运行结果是:
#include “stdio.h”
main()
{
int v1=0,v2=0;
char c;
while((c=getchar())!=’#’)
{ switch(c)
{ case ‘a’:
case ‘h’:
default:v1++;
case ‘o’:v2++;
}
}
printf(“%d,%d\n”,v1,v2);
}
5,5
三、改错题
1. for(i-0,i<5,i++) j++;
for(i-0;i<5;i++) j++;
2. while(j<10); {j++;i=j;}
while(j<10);/*不要分号*/{j++;i=j;}
3. do {j++;a=j;}while(j<10)
do {j++;a=j;}while(j<10);/*必须要有分号*/
4.用下面程序来实现5!
int s=1,i=1;
while(i<=5)
{s*=i;
i++;}
/*在做循环时,循环体必须用大括号括起来*/
5.下面程序段实现求半径r=1到r=10的圆面积,直到面积大于100为止。
for(r=1;r<=10;r++)/*for不能大写*/
{
s=3.14*r*r;
if(s>100) continue;/*当完成循环任务时,应该用break来终止循环*/
printf(“%f\n”,s);
}
四、编程题
1. 求1-2+3-4+…+99-100。
#include#includevoid main()
{
int i,sum,m;
m=1;
sum=0;
for(i=1;fabs(m)<=99;i++)
{
m=i*pow(-1,i-1);
sum=sum+m;
}
printf("sum=%d\n",sum);
}
2.任意输入10个数,分别计算输出其中的正数和负数之和。
#includevoid main()
{
int m,n,k,i;
k=0;
n=0;
for(i=1;i<=10;i++)
{
printf("请输入第%d个数字:",i);
scanf("%d",&m);
if(m>0)
k=k+m;
else
n=n+m;
}
printf("负数和n=%d\n正数和k=%d\n",n,k);
}
3.计算1---100以内的所有含6的数的和。
#includevoid main()
{
int m=0,n=0, i,j;
for(i=0;i<=9;i++)
{
for(j=0;j<=9;j++)
if (i==6||j==6)
{
n=n+i*10+j;
printf("%6d",i*10+j);
}
}
printf("%d\n",n);
printf("%d\n",6+16+26+36+46+56+66+76+86+96+60+61+62+63+64+65+67+68+69);
}
4. 输出所有的3位水仙花数。所谓水仙花数是指所有位的数字的立方之和等于该数,例如:153=13+33+53
#includevoid main()
{
int m,n,k,i,j,p=0;
for(i=1;i<=9;i++)
for(j=0;j<=9;j++)
for(k=0;k<=9;k++)
{
m=i*100+j*10+k;
n=i*i*i+j*j*j+k*k*k;
if(m==n)
printf("所有3位数中第%d水仙花数为%d\nf",++p,m);
}
}
5. 编写程序输出下面图形。
1
23
456
7890
#includevoid main()
{
int i,j,t=0;
for(i=0;i<4;i++) //控制整个数组的行数
{
for(j=0;j<=i;j++) //使整个数字从1开始循环
{
t=t+1; //用t表示要输出的数字
if(t==10)printf("0");
else printf("%d",t); //将10转换为0
}
printf("\n"); //控制换行
}
}
6. 编写程序输出下面图形
*
***
*****
*******
*****
***
*
#includevoid main()
{
int i,j,m,n;
for(i=0;i<3;i++) //显示总共有几行符号
{
for(m=2;m>=i;m--)
printf(" "); //输入相应的空格数,使每一行的符号相应的减少
for(n=6;n>5-i*2;n--)
printf("*"); //输入相应的*个数
printf("\n");
}
for(j=0;j<4;j++) //显示总共有几行符号
{
for(m=1;m<=j;m++)
printf(" "); //输入相应的空格数,使每一行的符号相应的减少
for(n=0;n<7-j*2;n++)
printf("*"); //输入相应的*个数
printf("\n");
}
}
展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:C语言循环习题1
链接地址:https://www.renrendoc.com/p-78955421.html