C语言循环例题

合集下载

C语言循环习题

C语言循环习题

循环习题集锦一.选择题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语句构成的循环不能用其他语句构成的循环来代替。

C语言_循环

C语言_循环

循环for循环1.我国现有x亿人口,按照每年0.1%的增长速度,n年后将有多少人?保留到小数点后四位。

1<=x<=100,1<=n<=100。

2.菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。

给出一个正整数k,要求菲波那契数列中第k个数是多少。

while循环格式1:while(条件表达式)语句1;格式2:while(条件表达式){语句1;语句2;……}说明:在while当中有多条语句时,加上{ }如何理解while循环?口诀:当满足条件实行statement(循环体)。

3.请完成,求两个正整数m、n的最大公约数。

4.求恰好使s=1+1/2+1/3+……1/n大于5时n的值。

分析:"恰好使s的值大于5意思是当表达式s的前n-1项的和小于或等于5,而加上了第n项后s的值大于5。

从数学角度,我们很难计算这个n的值。

故从第一项开始,当s 的值小于或等于5时,就继续将下一项值累加起来。

当s的值超过5时,最后一项的项数即为要求的n。

【思考】①球弹跳高度的计算球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下。

编程计算气球在第10次落地时,共经过多少米? 第10次反弹多高?输出包含两行,第1行:到球第10次落地时,一共经过的米数。

第2行:第10次弹跳的高度。

②角谷猜想所谓角谷猜想,是指对于任意一个正整数,如果是奇数,则乘3加1,如果是偶数,则除以2,得到的结果再按照上述规则重复处理,最终总能够得到1。

如,假定初始整数为5,计算过程分别为16、8、4、2、1。

程序要求输入一个整数,将经过处理得到1的过程输出来。

do-while循环格式1:do语句1;while(条件表达式);格式2:do{语句1;语句2;……}while(条件表达式);说明:do-while中有多条语句时,加上{ }。

\如何理解do-while循环?对比while循环,do-while先执行一次循环体之后再判断条件,和while一样,当满足条件继续执行。

c语言循环结构上机习题

c语言循环结构上机习题

1、计算n的阶乘(n!),n的取值在1~10之间。

分别使用while、do…while和for 语句实现。

(三个程序)给循环变量赋初值循环条件循环体循环变量的增值2、输入一行字符,分别统计输入了多少个字母、数字、空格和其他字符。

3、假设函数f(x)=3x2+2x+1,试利用for循环语句分别求出1<=x<=9的f(1)~f(9)各函数值。

4、有分数序列2/1,3/2,5/3,8/5,13/8,21/13…求这个数列的前20项和。

(分析提示:每个分子等于前一个数据分子与分母的和,每个分母等于前一个数据的分子)5、输出显示1~100之间可以被n整除的所有整数,运行时n由键盘输入。

要求每一行显示5个数,并且统计一共有多少个整数能被n整除。

6、下面程序的功能是从键盘上输入若干学生的学习成绩,统计并输出最高成绩和最低成绩,当输入为负数时结束输入。

main(){ float x,amax,amin;scanf("%f",&x);amax=x;amin=x;while( ①){ if(x>amax) amax=x;if( ②) amin=x;scanf("%f",&x);}printf("\namax=%f\namin=%f\n",amax,a min);}7、使用循环语句输出以下图形8、有一个数学等式:AB*CD=BA*DC,式中的一个字母代表一位数字,试找出所有符合上述要求的乘积式并打印输出。

8、一百个铜钱买了一百只鸡,其中公鸡一只5钱、母鸡一只3钱,小鸡一钱3只,问一百只鸡中公鸡、母鸡、小鸡各多少)。

分析:这是一个古典数学问题,设一百只鸡中公鸡、母鸡、小鸡分别为x,y,z,问题化为三元一次方程组:100=x*5+y*3+z/3100=x+y+z这里x,y,z为正整数,且z是3的倍数;由于鸡和钱的总数都是100,可以确定x,y,z 的取值范围:1) x的取值范围为1~202) y的取值范围为1~333) z的取值范围为3~99,步长为3对于这个问题我们可以用穷举的方法,遍历x,y,z的所有可能组合,最后得到问题的解。

(完整版)C语言循环结构练习题集带答案解析

(完整版)C语言循环结构练习题集带答案解析

第5章循环结构程序设计5.1 基本知识点while语句的使用格式和注意事项do-while语句的使用格式和注意事项for语句的使用格式和注意事项break和continue语句在循环语句中的应用循环结构的嵌套使用goto语句实现循环结构穷举法程序设计方法迭代程序设计方法5.2 练习题51. 单项选择题(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__。

c语言循环语句例题

c语言循环语句例题

c语言循环语句例题以下是一些关于C语言循环语句的例题:1. 请编写一个程序,利用for循环计算1到10的累加和。

```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 10; i++) {sum += i;}printf("1到10的累加和为:%d\n", sum);return 0;}```2. 请编写一个程序,利用while循环求出用户输入的正整数的阶乘。

```c#include <stdio.h>int main() {int n, fact = 1;printf("请输入一个正整数:");scanf("%d", &n);int i = 1;while (i <= n) {fact *= i;i++;}printf("%d的阶乘为:%d\n", n, fact);return 0;}```3. 请编写一个程序,利用do-while循环输出1到10之间的所有偶数。

```c#include <stdio.h>int main() {int i = 1;do {if (i % 2 == 0) {printf("%d ", i);}i++;} while (i <= 10);printf("\n");return 0;}```4. 请编写一个程序,利用嵌套循环输出如下图案:```***************``````c#include <stdio.h>int main() {int rows = 5;for (int i = 1; i <= rows; i++) {for (int j = 1; j <= i; j++) {printf("*");}printf("\n");}return 0;}```这些例题涵盖了for、while、do-while等不同类型的循环语句,希望能对您的学习有所帮助!。

C 循环结构23道题[含答案解析]

C  循环结构23道题[含答案解析]

题目、描述、输入、输出、输入样例、输出样例、测试输入、测试输出循环01:最大数写一个程序,可以输入一批正数,输入0时结束循环,并且输出最大的正数。

输入39 28 5 63 18 27 0输出63测试:输入153 26 963 28 75 90 156 0输出963#include<iostream>using namespace std;int main(){int i,max=0;cin>>i;while(i!=0){if(i>max)max=i;cin>>i;}cout<<max<<endl;return 0;}循环02:素数输入正数n,判断n是否为素数。

若为素数则输出1,否则输出0。

(提示:素数是指只可以被1和其本身整除的正数(1除外))输入10输出0输入7输出1测试:输入9输出0#include<iostream>using namespace std;int main(){int n,i,d;cin>>n;for(i=2;i<n;i++){d=n%i;if(n%i==0)break;}if(n==i)cout<<"1"<<endl;elsecout<<"0"<<endl;return 0;}循环03:数列求和输入一个正整数n,计算前n项之和:1+1/4+1/7+1/10..+1/(3*n-2)。

输入5输出1.56978输入4输出1.49286#include<iostream>using namespace std;int main(){int i,n;double s=0;cin>>n;for(i=1;i<=n;i++)s+=1.0/(3*i-2);cout<<s<<endl;return 0;}循环04:西瓜卖几天n个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完?说明:当西瓜个数为奇数时,卖一半为一半的整数,如当西瓜个数为5时,卖一半为卖2个。

c语言breakcontinue例题

c语言breakcontinue例题

在C语言中,break 和 continue 是两个控制语句,它们在循环结构(如 for、while、do-while)中起着重要的作用。

1. break 语句:break 语句用于提前结束当前循环。

当程序遇到 break 时,会立即退出当前的循环,并继续执行循环后面的代码。

例题: 找出数组中最大的数并输出。

c复制代码#include<stdio.h>int main() {int arr[] = {5, 2, 9, 1, 5, 6};int n = sizeof(arr) / sizeof(arr[0]);int max = arr[0];for (int i = 1; i < n; i++) {if (arr[i] > max) {max = arr[i];break; // 当找到最大值后,提前结束循环。

}}printf("最大值是:%d\n", max);return0;}2. continue 语句:continue 语句用于跳过当前循环的剩余部分,并开始下一次循环。

当程序遇到 continue 时,会忽略掉本次循环中 continue后面的代码,直接开始下一次循环。

例题: 输出数组中所有的偶数。

c复制代码#include<stdio.h>int main() {int arr[] = {5, 2, 9, 1, 5, 6};int n = sizeof(arr) / sizeof(arr[0]);for (int i = 0; i < n; i++) {if (arr[i] % 2 != 0) { // 如果不是偶数,则跳过本次循环的剩余部分。

continue;}printf("%d ", arr[i]); // 输出偶数。

}printf("\n"); return0;}。

C语言循环嵌套练习题及参考程序

C语言循环嵌套练习题及参考程序

1、使用’*’做一个9行的菱形图案。

输出示例:# include<stdio.h>#include <math.h> //程序中使用了abs()函数#define N (4) //定义符号常量int main( ){int i,j;for(i=-N;i<=N;++i) //控制输出9行{for(j=-N;j<=N;++j) //控制每行输出{if(abs(j)<=N-abs(i)) //abs函数的功能是取绝对值{putchar('*');}else{putchar(' ');}}putchar('\n');}return 0;}2、验证哥德巴赫猜想:任何一个大于等于6的偶数均可表示为两个素数之和。

要求将从键盘输入的一个偶数表示为两个素数之和。

例如:输入:10输出:10=3+7#include<stdio.h>#include<math.h>int main(void){int n,i,j,k,st;printf("输入一个大于等于6的偶数:");scanf("%d",&n);for(i=2;i<=n/2;i++) //从2到n/2逐个判断{st=(int)sqrt(i); //先判断第一个数是否为素数for(j=2;j<=st;j++)if(i%j==0) break;if(j>st) //若第一个数是素数,则判断第二个数是否为素数{k=n-i;st=(int)sqrt(k);for(j=2;j<=st;j++)if(k%j==0) break;if(j>st) //若两个数都为素数,则输出结果printf("%d=%d+%d\n",n,i,k);}}return 0;}3、编程实现百钱买百鸡问题:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,则翁、母、雏各几何?#include<stdio.h>int main(){int x,y,z;for(x=0;x<=20;x++) //鸡翁所有可能取值for(y=0;y<34;y++) //鸡母所有可能取值for(z=0;z<=100;z+=3) //鸡雏所有可能取值if((5*x+3*y+z/3==100)&&(x+y+z==100)){ //如果钱数等于100且鸡数等于100就输出printf("鸡翁:%d\n",x);printf("鸡母:%d\n",y);printf("鸡雏:%d\n",z);}return 0;}4、新建一条铁路线,有15个站,在任何车站都能上下车,编写程序列出所有的车票种类,算出车票种数。

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

1.//输出a和b之间的所有素数, 10个素数为一行输出#include<stdio.h>#include<stdlib.h>#include<math.h>int panDuanSuShu(int x) //判断x是否是素数{int i,m,flag; //flag为1表示是素数,flag为0表示不是素数 m=(int)sqrt(x);if(x==2){ flag=1;}else{for(i=2;i<=m;i++){if(x%i==0){flag=0;break;}}if(i>m){ flag=1; }}return flag;}int shuChuSuShu(int a,int b){int i,k=0;//i是循环变量,k表示已经输出了k个素数for(i=a;i<=b;i++){if(panDuanSuShu(i)==1){printf("%6d",i);k++;if(k%10==0){ printf("\n");}}}printf("\n");return k;}int main(){int a,b,t;while(a<2||b<2){printf("重新输入n和m:");scanf("%d%d",&a,&b);}if(a>b){ t=a;a=b;b=t; }printf("%d和%d之间共有%d个素数",a,b,shuChuSuShu(a,b));printf("\n\n");return 0;}2.//用户输入2个数,输出这2个数之间所有的超素数//超素数(质数)的概念:7193是素数,719是素数,71是素数,7是素数,则7193是素数#include<stdio.h>#include<stdlib.h>#include<math.h>int isPrime(int n)//判断某数是否是素数{int i,f,m=(int)sqrt(n);if(n==1) f=0;else{for(i=2;i<=m;i++){if(n%i==0)break;}if(i>m) f=1;else f=0;}return f;}int supperPrime(int n)//判断某数是否是超素数{int t=n;while(t>0){if(isPrime(t)==1)t=t/10;elsebreak;}}void printSupperPrime(int a,int b)//输出a到b之间所有的超素数{int i,m=0;for(i=a;i<=b;i++){if(supperPrime(i)){ printf("%8d",i);m++;if(m%5==0)printf("\n");}}printf("\n");}int main(){int a,b,t;printf("input a,b:");scanf("%d%d",&a,&b);while(a<2 || b<2){printf("input a,b:");scanf("%d%d",&a,&b);}if(a>b) {t=a;a=b;b=t;}printSupperPrime(a,b);printf("\n");//system("pause");return 0;}3.//满足a*a+b*b==c*c的a,b,c三个数,称为勾股数//编程输出100以内的所有勾股数#include<stdio.h>#include<stdlib.h>int gouGuShu(){int x=0;for(int a=1;a<=100;a++)for(int b=a;b<=100;b++)for(int c=b;c<=100;c++)if(x%4==0)printf("\n");printf("%4d%4d%4d ",a,b,c);x++;}return x;}int main(){printf("\n\n 100以内的勾股数共有:%d个。

\n",gouGuShu());// system("pause");return 0;}4.//有一堆桃子,第一天猴子吃掉桃子的一半又多吃1个,第二天猴子再吃掉桃子的一半又多吃一个//第10天只剩下1个桃子,问最初有多少个桃子#include<stdio.h>#include<stdlib.h>int houZiChiTaoZi(){int day=10,x1,x2=1;while(day>1){x1=(x2+1)*2;x2=x1;day--;}return x1;}int main(){printf("最初桃子有%d个\n",houZiChiTaoZi());//system("pause");return 0;}5.//由用户输入一个年份,再输入该年的元旦是星期几,再输入一个月份,则打印输出该月的日历。

//例如:输入年份是2000年,输入元旦为星期6,输入月份为3,则输出://3月日一二三四五六// 1 2 3 4// 5 6 7 8 9 10 11// 12 13 14 15 16 17 18// 19 20 21 22 23 24 25// 26 27 28 29 30 31#include<stdio.h>int LeepYear(int y)//判断某年是否是闰年{if(y%4==0&&y%100!=0||y%400==0)return 1;elsereturn 0;}int HowManydays(int y,int m)//判断该月有多少天{int thisMonthDays;switch(m){case 1:case 3:case 5:case 7:case 8:case 10:case 12: thisMonthDays=31;break;case 4:case 6:case 9:case 11:thisMonthDays=30;break;case 2: if(LeepYear(y)==1) thisMonthDays=29;else thisMonthDays=28;}return thisMonthDays;}//whichWeek函数判断该月的1号是星期几int whichWeek(int y,int m,int w) //w表示该年的元旦是星期几{int febDay;//存放2月份有多少天int days;//存放该月的1号距离元月1号有多少天int thisWeek;//存放该月的1号是星期几if(LeepYear(y)){ febDay=29;}else{ febDay=28; }switch(m){case 1: days=0;break;case 4: days=2*31+febDay;break;case 5: days=2*31+30+febDay;break;case 6: days=3*31+30+febDay;break;case 7: days=3*31+2*30+febDay;break;case 8: days=4*31+2*30+febDay;break;case 9: days=5*31+2*30+febDay;break;case 10: days=5*31+3*30+febDay;break;case 11:days=6*31+3*30+febDay;break;case 12:days=6*31+4*30+febDay;break;}thisWeek=(days+w)%7;return thisWeek;}//shuChuRiLi函数的功能是输出日历void shuChuRiLi(int year,int month,int week) //week表示该年的元旦是星期几{int ThisMonthDay,ThisWeek,d,i;ThisMonthDay=HowManydays(year,month);//计算这个月有多少天ThisWeek=whichWeek(year,month,week);//计算这个月的1号是星期几printf("\n\n");printf("%4d月日一二三四五六\n",month);printf("%6c",' ');d=1;for(i=0;i<ThisWeek;i++) //输出1号前面的空格printf("%6c",' ');for(i=ThisWeek;i<=6;i++,d++) //输出1号所在的那1行日历printf("%6d",d);while(d<=ThisMonthDay){if(i%7==0){printf("\n");printf("%6c",' ');}printf("%6d",d);d++;i++;}printf("\n\n");}int main(){int year=-20,month=13,week=9;printf("请输入年份:");scanf("%d",&year);}while(month>12||month<1){printf("请输入月份:");scanf("%d",&month);}while(week>7||week<1){printf("该年的元旦是星期几?");scanf("%d",&week);}shuChuRiLi(year,month,week);system("pause");return 0;}6.//输出三种形式的九九乘法口诀表#include<stdio.h>#include<stdlib.h>void chengFaKouJueBiao1(){int i,j;printf(" *|");for(i=1;i<=9;i++)printf("%4d",i);printf("\n");for(i=1;i<=40;i++)printf("-");printf("\n");for(i=1;i<=9;i++){printf("%2d|",i);for(j=1;j<=9;j++){printf("%4d",i*j);}printf("\n");}printf("\n\n");}void chengFaKouJueBiao2(){for(i=1;i<=9;i++)printf("%4d",i);printf("\n");for(i=1;i<=9;i++){printf("%2d",i);for(j=1;j<=i;j++){printf("%4d",i*j);}printf("\n");}printf("\n\n");}void chengFaKouJueBiao3(){int i,j;printf("\n");for(i=1;i<=9;i++){for(j=1;j<=i;j++){printf("%d*%d=%-4d",i,j,i*j);}printf("\n");}printf("\n\n");}int main(){chengFaKouJueBiao1();chengFaKouJueBiao2();chengFaKouJueBiao3();// system("pause");return 0;}7.//用户输入三角形的高度,输出由*构成的三角形。

相关文档
最新文档