c语言for循环的嵌套题(含解析和答案)
- 格式:doc
- 大小:30.00 KB
- 文档页数:9
c++for循环语句例题及解析
嘿,咱今天就来好好唠唠 C++的 for 循环语句!你看哈,for 循环就
像是一个勤劳的小工人,一遍又一遍地执行特定的任务。
比如说,咱
想让它从 1 数到 10,那可太简单啦!
for (int i = 1; i <= 10; i++) {
cout << i << " ";
}
看到没,就这么几行代码,它就能乖乖地把1 到10 都给咱输出啦!这就好像是一个不知疲倦的小机器人,你让它干啥它就干啥。
再举个例子,咱要是想计算 1 到 10 的和呢?也不难呀!
int sum = 0;
for (int i = 1; i <= 10; i++) {
sum += i;
}
cout << "1 到 10 的和是:" << sum << endl;
哎呀呀,是不是很神奇?for 循环就是这么厉害!它能帮我们轻松
搞定好多重复的事情。
你想想,要是没有 for 循环,那我们得写多少行代码呀!那得多麻烦呀!这就好比你要爬一座很高的山,没有路可走,那得多累呀!但有了 for 循环,就像是有了一条修好的路,你可以轻松地往上走。
C++的 for 循环语句真的是太重要啦!它就像是一把万能钥匙,能打开好多难题的大门。
不管是处理数据,还是实现一些复杂的算法,它都能派上大用场。
所以呀,咱可得好好掌握它,让它为我们服务,对吧?
我的观点就是,C++的 for 循环语句是非常强大且实用的,我们一定要熟练运用它,让我们的编程之路更加顺畅!。
第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。
intx=-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__。
第33、34课时for循环的嵌套实验题一:1、下面程序的功能是计算:至50中是7的倍数的数值之和,请选择填空。
D#include<stdio. h>main(){int i,sum= 0;for(i=1;i<=50;i++)if([1]) sum+=i;printf("%d",sum);}A) (int)(i/7)==i/7B) (int)i/7==i/7C) i%7= 0D) i%7==02、下面程序的功能是计算1至10之间的奇数之和及偶数之和。
请选择填空;# include <stdio. h> Bmain(){int a,b,c,i;a=c=0;for(i=0;i<=10;i+=2){ a+=i;c+=b;}printf("偶数之和=%d\n",a);printf("奇数之和=%d\n",c-11),}[1] A )b=i-- B) b=i+1C) b=i++ D)b=i-13、下面程序的运行结果是:#include <stdio. h>main(){int i; #&for(i=1;i<=5;i++) &switch(i%5) &*{case 0:printf("* ");break;case 1 :printf("#");break;default :printf("\n");case 2 :printf("&");}A)#&&&* B) #& C) # D)#&& && &*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);}}A)39 81 B)42 84 C)26 68 D) 28 705、下面程序段的功能是计算1000!的末尾含有多少个零。
二级C语言模拟题2018年(171)(总分100, 做题时间90分钟)选择题1.有以下程序#include<stdio.h>main(){int i, sum;for(i=1; i<6; i++)sum+=i;printf("%d\n", sum);}程序运行后的输出结果是______。
SSS_SINGLE_SELA 0B 随机值C 15D 16分值: 2答案:B[解析] sum没有初始化,为随机值,再加上若干值,仍为随机值。
答案选择B。
2.以下叙述中正确的是______。
SSS_SINGLE_SELA 如果根据算法需要使用无限循环(即通常所称的“死循环”),则只能使用while语句B 对于“for(表达式1;表达式2;表达式3)循环体”首先要计算表达式2的值,以便决定是否开始循环C 对于“for(表达式1;表达式2;表达式3)循环体”,只在个别情况下才能转换成while语句D 只要适当地修改代码,就可以将do-while与while相互转换分值: 2答案:D[解析] do-while与whlile可以相互转换,所以选择D。
3.若变量已正确定义for(x=0, y=0; (y!=99&& x<4); x++)则以上for循环______。
SSS_SINGLE_SELA 执行无限次B 执行3次C 执行4次D 执行次数不定分值: 2答案:C[解析] 该循环分别在x取值为0、1、2、3时各执行一次,所以本题答案为C。
4.若有以下程序#include<stdio.h>main(){ int a=6, b=0, c=0;for(;a;){ b+=a; a-=++c;}printf("%d, %d, %d\n", a, b, c);}则程序的输出结果是______。
SSS_SINGLE_SELA 0, 18, 3B 1, 14, 3C 0, 14, 3D 0, 14, 6分值: 2答案:C[解析] 循环执行3次,使a为0,循环结束,最终a b c分别为0 14 3,所以选择C。
【例1】计算并显示1到100之间的自然数之和。
Private Sub Form_Click()Dim i As Integer, s As IntegerS=0 ‘S是累加器,初值为0For i = 1 To 100s = s + iNext iPrint sEnd Sub【例2】计算并显示1到100之间的奇数之和。
Private Sub Form_Click()Dim i As Integer, s As IntegerS=0For i = 1 To 100 Step 2s = s + iNext iPrint sEnd Sub【例3】计算并显示1到100之间的自然数之和,奇数之和,偶数之和。
Private Sub Form_Click()Dim i As Integer, s1 As Integer, s2 As Integer, s3 As IntegerS1=0:s2=0:s3=0For i = 1 To 100s1 = s1 + I ‘S1用来放自然数If i Mod 2 <> 0 Thens2 = s2 + I ‘S2用来放奇数Elses3 = s3 + I ‘S3用来放偶数End IfNext iPrint s1, s2, s3End Sub【例4】找出1-99之间是7的倍数或者个位数字是7或者十位数字是7的数字,并输出这些数字,统计有多少个。
Private Sub Form_Click()Dim i As Integer, n As Integern = 0 ‘n 是计数器,初值为0For i = 1 To 99If i Mod 7 = 0 Or i Mod 10 = 7 Or i \ 10 = 7 ThenPrint in = n + 1 ‘每找到一个符合条件的i值,n 加1End IfNext iPrint "共有" & n & "个"【例5】找出100-999之间的所有“水仙花数”。
题目、描述、输入、输出、输入样例、输出样例、测试输入、测试输出循环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 语言中的 for 循环语句及例题在C 语言编程中,for 循环语句是最常用的循环结构之一。
它可以让程序重复执行一段代码,直到达到指定的条件。
在本文中,我将深入探索 C 语言中 for 循环语句的概念、语法结构和实际应用,并通过例题解析帮助您更好地理解和掌握这一重要的编程知识。
1. for 循环语句的基本结构在C 语言中,for 循环语句的基本结构如下:```for (初始化表达式; 条件表达式; 更新表达式){循环体语句;}```其中,初始化表达式用于初始化循环变量的初始值;条件表达式是循环执行的条件,如果条件为真,则执行循环体语句;更新表达式用于更新循环变量的值,以便控制循环的次数。
2. for 循环语句的实际应用下面通过一个简单的例题来演示 for 循环语句的实际应用场景:```#include <stdio.h>int main() {int i;for (i=1; i<=5; i++) {printf("This is iteration %d\n", i);}return 0;}```在以上示例中,我们使用 for 循环语句实现了输出 "This is iteration i" 的功能,其中 i 从 1 到 5 依次递增。
通过这个例题,我们可以清晰地看到 for 循环语句的执行过程和效果。
3. for 循环语句的深入解析在实际编程中,for 循环语句还可以嵌套使用,或者与 break、continue 等关键字配合使用,以实现更复杂的控制流程。
我们还可以在条件表达式中使用逻辑运算符或者关系运算符,以实现更灵活的循环控制。
这些深入的应用将在后续的例题中逐一讲解。
总结 & 理解通过本文的深度解析和相关例题的讲解,相信您已经对 C 语言中的for 循环语句有了更加全面和深入的了解。
在实际开发中,for 循环语句是必不可少的一部分,熟练掌握它将有助于提高编程效率和代码质量。
信息奥赛一本通c++版中for循环嵌套if语句的例题1. 你难道不想知道在信息奥赛一本通 C++版里,for 循环嵌套 if 语句是怎么像魔法一样解决难题的吗?比如计算 1 到 100 中能被 3 整除的数的和,这不就靠这神奇的组合来实现嘛!2. 难道你不好奇信息奥赛一本通 C++版中,for 循环嵌套 if 语句如何像精密的齿轮一样精准运转?就像找出班级里成绩大于 80 分的男生一样!3. 你有没有想过,信息奥赛一本通 C++版里的 for 循环嵌套 if 语句,简直就是解题的万能钥匙!比如说判断一个数组中所有偶数元素是不是都大于 5 ,这能难倒它?4. 难道你不想见识一下,在信息奥赛一本通 C++版中,for 循环嵌套 if 语句是怎样如同超级英雄拯救世界般解决复杂问题?好比找出一串数字中第一个大于 100 的奇数!5. 你难道不渴望搞明白,信息奥赛一本通 C++版里,for 循环嵌套 if 语句怎么像解谜高手一样突破难关?比如找出满足特定条件的三个连续整数!6. 难道你就不想探究,在信息奥赛一本通 C++版中,for 循环嵌套 if 语句如何像智慧的灯塔照亮解题之路?像找出一组数中大于平均值的那些数!7. 你有没有好奇过,信息奥赛一本通 C++版里的 for 循环嵌套 if 语句,是不是就像神奇的密码锁打开未知的宝箱?比如找出所有既是质数又是偶数的数!8. 难道你不想了解,信息奥赛一本通 C++版中,for 循环嵌套 if 语句怎么像神奇的画笔描绘出正确答案?就像判断一个矩阵中每行每列的最大值!9. 你难道不期待知晓,在信息奥赛一本通 C++版里,for 循环嵌套 if 语句如何像高明的棋手掌控棋局?好比找出满足复杂条件的多个数字组合!10. 难道你不好奇,信息奥赛一本通 C++版中的 for 循环嵌套 if 语句,是不是像神奇的指南针指引解题方向?比如找出一个字符串中所有大写字母的位置!11. 你有没有想探索,信息奥赛一本通 C++版里,for 循环嵌套 if 语句如何像勇敢的探险家突破困境?像找出满足多个条件的日期!12. 难道你不想揭开,在信息奥赛一本通 C++版中,for 循环嵌套 if语句怎么像神秘的钥匙打开知识宝库?好比找出一个数列中相邻两项之和大于 10 的所有组合!13. 你难道不向往搞懂,信息奥赛一本通 C++版里,for 循环嵌套 if语句如何像智慧的眼睛洞察一切?比如找出满足特定规则的数字排列!14. 难道你不好奇去发现,信息奥赛一本通 C++版中,for 循环嵌套if 语句是不是像神奇的翅膀带你飞越难题?就像找出一个数组中所有大于前一个数的元素!15. 你有没有渴望明白,信息奥赛一本通 C++版里的 for 循环嵌套 if 语句,如何像神奇的咒语解开谜题?好比找出所有能同时被 2 和 5 整除的数!16. 难道你不想亲自感受,在信息奥赛一本通 C++版中,for 循环嵌套 if 语句怎么像勇敢的战士攻克堡垒?比如找出满足特定条件的分数组合!17. 你难道不期待深入探究,信息奥赛一本通 C++版里,for 循环嵌套 if 语句如何像明亮的星星照亮黑暗?就像找出一个复杂图形中满足条件的顶点!18. 难道你不好奇探索,信息奥赛一本通 C++版中的 for 循环嵌套 if 语句,是不是像神奇的魔法棒变出答案?好比找出一个班级中所有语文和数学都及格的同学!19. 你有没有急切地想知道,信息奥赛一本通 C++版里的 for 循环嵌套 if 语句,如何像有力的大手抓住问题核心?比如找出一个数组中所有不重复的元素!20. 难道你不想马上弄清楚,在信息奥赛一本通 C++版中,for 循环嵌套 if 语句怎么像聪明的大脑思考解题?就像找出满足多个复杂条件的整数对!。
第33、34课时for循环的嵌套实验题一:1、下面有关for循环的正确描述是: DA) for循环只能用于循环次数已经确定的情况B) for循环是先执行循环体语句,后判断表达式C) 在for循环中,不能用break语句跳出循环体D) for循环的循环体语句中, 可以包含多条语句,但必须用花括号括起来2、对for(表达式1;;表达式3)可理解为:BA) for(表达式1; 0;表达式3)B) for(表达式1;1;表达式3)C) for(表达式1;表达式1;表达式3)D) for(表达式1;表达式3;表达式3)3、若i为整型变量,则以下循环执行次数是:Bfor (i=2;2==0;) printf("%d",i-- );A)无限次B) 0次C) 1 次D) 2次4、以下for循环的执行次数是:Cfor (x=0,y=0; (y=123)&&(x<4); x++) ;A)是无限循环B)循环次数不定C)执行4次D)执行3次&&(1<4)成立,x++→x=2第三次:(y=123)&&(2<4)成立,x++→x=3 第四次:(y=123)&&(3<4)成立,x++→x=4第五次:(y=123)&&(4<4)不成立,退出循环。
5、以下不是无限循环的语句为:AA) for (y=0,x=1;x > ++y;x =i++) i=x ;B) for (;1; x++=i);C) while (1) {x ++;}D) for(i=10;1 ;i--) sum+=i;6、下面程序段的运行结果是:Cfor (y=1;y<10;)y=((x=3* y,x+1),x-1);printf ("x=%d,y=%d",x,y);A)x=27,y=27 B)x=12,y=13 C)x=15,y=14D)x=y=27第一次:1<10为真,x=3,x+1=3+1=4, y=(4,x-1) y=(4,2)=2第二次:2<10为真,x=3*2=6,7 y=(7,x-1)=(7,5) y=5 第三次:5<10为真,x=3*5=15 16 y=(16,x-1)=(16,14) y=147、下面程序段的运行结果是for(x=3;x<6;x++)printf((x %2)?("**%d"):(" ##%d\n"),x);解析:第一次:3<6为真,3%2=1 **3 x++→x=4 第二次:4<6为真,4%2=0 ##4(换行)x++→x=5 第三次:5< 6为真,5%2=1 **5 x++→x=6第四次:6<6为假,结束循环A)**3 B )##3 C)##3 D)**3##4##4 **4 **4##5**5**5 ##58、下列程序段不是死循环的是A) int i=100;whiLe (1){i=i%100+1;if (i>100) break;}B) for(;1;);C) int k=0;do{++k;}while (k> =0) ;D) int s=36;9、执行语句for(i=1;i++<4;) ;后变量i的值是A)3 B )4 C)5 D)不定实验题二:编程题1、编写程序,求1-3+5-7+…-99+101的值。
C语⾔——嵌套循环例⼦⼀.使⽤嵌套循环产⽣下列图案$$$$$$$$$$$$$$$⾸先确定⾏数为i=5,因此外套循环的终⽌条件是i到达6时退出循环;由列数为5并且每⼀列元素数逐渐递增⽐变化可知,内层循环的判定条件j受外层循环的影响,由图可知第⼀⾏⼀个元素,第⼆⾏两个元素。
所以j<=i;换⾏符位于外层循环⾥。
如下:#include <stdio.h>#define SIZE 5 //使⽤#define处理常量就能够更改值达到更改图案使其扩⼤或缩⼩的⽬的int main(void){int i,j;for(i=1;i<=SIZE;i++){for(j=1;j<=i;j++)printf("$");printf("\n");}return0;}⼆.使⽤嵌套循环产⽣下列图案FFEFEDFEDCFEDCBFEDCBA⾸先确定⾏数i为6,其次确定列数j为6并随着⾏数的增加⽽增加,故j受i的影响,即j<=i;⼜每⾏的字符数⽬逐渐增加,但是其字符的⼤⼩呈递减的形式,故使⽤‘F’-j的形式输出,这个时候i和j都应该初始化为0的形式;#include <stdio.h>#define SIZE 6#define ch 'F' //巧妙利⽤常数定义来定义图案的⼤⼩和字母的多少,使得程序更具有变通性int main(void){int i,j;for(i=0;i<SIZE;i++){for(j=0;j<=i;j++)printf("%c",ch-j);printf("\n");}return0;} 如果您的系统不⽀持ASCII码或其他以数字编码的码,您可以把⼀个字符数组初始化为字母表中的字母:char ch[26]="ABCDEFGHIJKLMNOPQRSTUVWXYZ"; //数组索引0-25分别对应每个字母int i,j;for(i=5;i>=0;i--){for(j=5;j>=i;j--) //5对应F,每⼀⾏元素数变化说明受到i的影响,故i也需要从5递减printf("%c",ch[j]);printf("\n");}三.程序要求⽤户输⼊⼀个⼤写字母,使⽤嵌套循环产⽣下列⾦字塔图案:以上图案是通过输⼊⼤写字母E产⽣的。
循环习题集锦一.选择题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 语言考前辅导 循环语句嵌套Page 7(1)[2008.9.27]以下程序的运行结果是 int i, j;for (i = 3; i >= 1; i) {for (j = 1; j <= 2; j++) printf("%d", i + j); printf("\n"); }A)234 B)432 C)23 D)45 345 543 34 3445 23(2)[2007.4.24]以下程序的运行结果是 for (i = 1; i < 3; i++) {for (j = i; j < 3; j++)printf("%d*%d=%d ", i, j, i*j); printf("\n"); }A)1*1=1 1*2=2 B)1*1=1 1*2=2 2*1=2 2*2=4 C)1*1=1 D)1*1=1 1*2=2 2*2=4 2*1=2 2*2=4 (3)[2007.9.24]以下程序运行后,m 的值是 int i, j, m = 55;for (i = 1; i <= 3; i++)for (j = 3; j <= i; j++) m = m % j;(4)填空,使程序输出如下数字方阵 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5 #define N 5 int a, b;for (a = 1; a <= N; a++) {for (b = 1; b <= N; b++) printf("%d ", ); printf("\n"); }(5)[2010.3.20]以下程序运行后,m 的值是 int i, j, m = 1;for (i = 1; i < 3; i++) {for (j = 3; j > 0; j) {if (i*j > 3) break; m *= i*j; } }(6)以下程序运行后,s 的值是 int i, j, s;for (i = 3; i >= 1; i) {s = 0;for (j = 1; j <= i; j++) s += i * j; }(7)[2006.4.15]以下程序的运行结果是 int i, j, n = 4, t = 1; for (i = 1; i <= n; i++) {for (j = 1; j <= ni+1; j++) {printf("%2d", t); t++; }printf("\n"); }(8)[2009.3.20]以下程序的运行结果是 for (i = 0; i < 4; i++, i++) for (k = 1; k < 3; k++); printf("*");(9)[2004.4.25]以下程序运行后,n 的值是 int i, n = 0;for (i = 2; i < 5; i++) { do {if (i % 3) continue; n++; } while (!i); n++; }(10)[2006.4.32]以下程序运行后,x 的值是 int i, j, x = 0;for (i = 0; i < 2; i++) {x++;for (j = 0; j <= 3; j++) {if (j % 2) continue; x++; } x++; }(11)填空,输出 100 以内所有的素数(质数) int i, a;for (a = 2; a <= 100; a++) {for (i = 2; i < a; i++) if (a % i == 0) ; if (i == a) printf("%d,", a);Page 8 辽宁科技大学 黄建 公共信箱:v.c.6@ 密码:123.456}(12)填空:删除整数尾部的 0。
for循环嵌套随着学习的深⼊,才渐渐地发现,⾃⼰的基础是多么的差劲。
悔不当初,上课的时候就应该多认真听讲了。
多层 for 之间的嵌套使⽤。
虽说是多层,事实上 for 循环嵌套的层数也不能太多。
通常为两个 for 循环的嵌套,超过两个的极少使⽤。
与单个 for 循环相⽐,多个 for 循环的嵌套在逻辑上更复杂⼀点,但并不难懂。
直接给⼤家写⼀个程序:1. # include <stdio.h>2. int main(void)3. {4. int i, j;5. for (i=0; i<4; ++i)6. {7. printf("问世间情是何物, 直教⽣死相许\n");8. for (j=0; j<3; ++j)9. {10. printf("两情若是久长时, ⼜岂在朝朝暮暮\n");11. }12. }13. return 0;14. }输出结果是:问世间情是何物, 直教⽣死相许两情若是久长时, ⼜岂在朝朝暮暮两情若是久长时, ⼜岂在朝朝暮暮两情若是久长时, ⼜岂在朝朝暮暮问世间情是何物, 直教⽣死相许两情若是久长时, ⼜岂在朝朝暮暮两情若是久长时, ⼜岂在朝朝暮暮两情若是久长时, ⼜岂在朝朝暮暮问世间情是何物, 直教⽣死相许两情若是久长时, ⼜岂在朝朝暮暮两情若是久长时, ⼜岂在朝朝暮暮两情若是久长时, ⼜岂在朝朝暮暮问世间情是何物, 直教⽣死相许两情若是久长时, ⼜岂在朝朝暮暮两情若是久长时, ⼜岂在朝朝暮暮两情若是久长时, ⼜岂在朝朝暮暮其实,多层 for 循环嵌套的执⾏过程与单个 for 循环的执⾏过程是⼀模⼀样的。
多层 for 循环的嵌套只不过是将单个 for 循环⼤括号中的“语句”换成了 for 循环⽽已。
下⾯看看上⾯程序中两个 for 循环嵌套是怎么执⾏的。
1) ⾸先求解表达式 1,即给变量 i 赋初值,i=0;表达式 1 只执⾏这⼀次,下⾯都不会再执⾏了。
for循环练习题及答案for循环练习题及答案在计算机编程中,循环结构是非常重要的一部分,它可以帮助我们重复执行某段代码,提高程序的效率。
其中,for循环是一种常见的循环结构,它可以指定循环的次数,并在每次循环中执行相应的操作。
为了帮助大家更好地理解和掌握for循环,下面将介绍一些常见的for循环练习题及其答案。
1. 打印九九乘法表九九乘法表是初学者接触到的第一个经典编程练习题。
通过for循环嵌套的方式,我们可以轻松地打印出九九乘法表。
```pythonfor i in range(1, 10):for j in range(1, i+1):print(f"{j} * {i} = {i*j}\t", end="")print()```2. 计算阶乘阶乘是数学中常见的概念,表示一个正整数与小于它的所有正整数的乘积。
通过for循环,我们可以编写一个函数来计算任意正整数的阶乘。
```pythondef factorial(n):result = 1for i in range(1, n+1):result *= ireturn resultprint(factorial(5)) # 输出120```3. 求素数素数是指除了1和自身外,没有其他因数的数。
我们可以使用for循环和if条件判断来判断一个数是否为素数。
```pythondef is_prime(n):if n < 2:return Falsefor i in range(2, int(n**0.5)+1):if n % i == 0:return Falsereturn Trueprint(is_prime(17)) # 输出True```4. 统计列表中的元素个数给定一个列表,我们可以使用for循环来统计其中某个元素的出现次数。
```pythondef count_element(lst, target):count = 0for element in lst:if element == target:count += 1return countnumbers = [1, 2, 3, 4, 5, 2, 2]print(count_element(numbers, 2)) # 输出3```5. 求列表中的最大值给定一个列表,我们可以使用for循环来找到其中的最大值。
c#基础——for循环嵌套经典练习题(打★)using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace作业题1{class Program{static void Main(string[] args){//打⾏数for (int i = 0; i < 5; i++)//打列数{for (int j = 0; j <= i; j++){Console.Write("★");}Console.WriteLine();}Console.ReadLine();}}}输出结果:第⼆题using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace作业题2{class Program{static void Main(string[] args){//打⾏数for (int i = 0; i < 5; i++)//打列数{for (int j = 5; j>i; j--){Console.Write("★");}Console.WriteLine();}Console.ReadLine();}}}输出结果:第三题using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace作业题3{class Program{static void Main(string[] args){//打⾏数for (int i = 0; i < 5; i++)//打列数{for (int j = 5; j > i+1; j--){Console.Write(" ");}for (int t = 0; t <= i; t++) {Console.Write("★"); }Console.WriteLine();}Console.ReadLine();}}}输出结果:第四题sing System;using System.Collections.Generic; using System.Linq;using System.Text;namespace作业题4{class Program{static void Main(string[] args) {//打⾏数for (int i = 0; i < 5; i++)//打列数{for (int j = 0; j <= i-1; j++) {Console.Write(" "); }for (int t = 5; t >i;t-- ){Console.Write("★"); }Console.WriteLine();}Console.ReadLine();}}}输出结果:第五题using System;using System.Collections.Generic; using System.Linq;using System.Text;namespace作业题5{class Program{static void Main(string[] args) {//打⾏数for (int i = 0; i < 5; i++)//打列数{for (int j = 4; j > i ; j--){Console.Write(" "); }for (int t = 0; t <=i; t++) {Console.Write("★"); }for (int p = 0; p <= i-1; p++) {Console.Write("★");}Console.WriteLine();}Console.ReadLine();}}}输出结果:第六题using System;using System.Collections.Generic; using System.Linq;using System.Text;namespace作业题6{class Program{static void Main(string[] args){//打⾏数for (int i = 0; i <= 5; i++){for (int j =0; j<i; j++){Console.Write(" ");}for (int t = 5; t >i; t--){Console.Write("★");}for (int m=5; m>i-1;m-- ){Console.Write("★");}Console.WriteLine();}Console.ReadLine();}}}输出结果:打菱形using System;using System.Collections.Generic; using System.Linq;using System.Text;namespace作业总{class Program{static void Main(string[] args){//打⾏数for (int i = 0; i < 5; i++)//打列数{for (int j = 4; j > i; j--){Console.Write(" ");}for (int t = 0; t <= i; t++){Console.Write("★");}for (int p = 0; p <= i - 1; p++) {Console.Write("★");}Console.WriteLine();}//打⾏数for (int n = 1; n <=4; n++){for (int j = 0; j <n; j++){Console.Write(" ");}for (int t = 4; t > n; t--){Console.Write("★");}for (int m = 4; m > n - 1; m--){Console.Write("★");}Console.WriteLine();}Console.ReadLine();}}}输出结果:如果输⼊奇数,打印菱形,最多的⼀⾏★的数量等于你输⼊的这个数。
1、把一张一元钞票,换成一分、二分和五分硬币,每种至少5枚,问有多少种方案?205 set talk offcleas=0for i=5 to 100for j=5 to 50for k=5 to 20if k*5+j*2+i=100?i,j,ks=s+1endifendforendforendfor?sset talk on2、显示99乘法表!(1)set talk offclearfor m=1 to 9for n=1 to ms=m*n??str(m,1)+"*"+str(n,1)+"="+str(s,2)+" "endfor?endforset talk on(2)clear?" 九九乘法表"?for a=1 to 9for b=1 to 9p=a*b??str(b,1)+"*"+str(a,1)+"="+str(p,2)+" "endfor?endfor(3)?" 九九乘法表"?for a=1 to 9for b=1 to 9p=a*bif a>=b??str(b,1)+"*"+str(a,1)+"="+str(p,2)+" "endifendfor?endfor3、百马驮百瓦问题:大马、小马和马驹共100匹,共要驮100瓦,大马一驮三,小马一驮二,马驹二驮一,三种马都驮,共有多少种组合?set talk offclearn=0for x=1 to 33for y=1 to 50for z=1 to 100if 3*x+y*2+z*1/2=100 and x+y+z=100n=n+1?x,y,zendifendforendforendfor?nset talk on4、求解世界上的有名的“百鸡问题”:鸡翁一,值钱五,鸡母一,值钱三,鸡邹三,值钱一。
第33、34课时for循环的嵌套实验题一:1、下面程序的功能是计算:至50中是7的倍数的数值之和,请选择填空。
D#include<stdio. h>main(){int i,sum= 0;for(i=1;i<=50;i++)if([1]) sum+=i;printf("%d",sum);}A) (int)(i/7)==i/7B) (int)i/7==i/7C) i%7= 0D) i%7==02、下面程序的功能是计算1至10之间的奇数之和及偶数之和。
请选择填空;# include <stdio. h> Bmain(){int a,b,c,i;a=c=0;for(i=0;i<=10;i+=2){ a+=i;c+=b;}printf("偶数之和=%d\n",a);printf("奇数之和=%d\n",c-11),}[1] A )b=i-- B) b=i+1C) b=i++ D)b=i-13、下面程序的运行结果是:#include <stdio. h>main(){int i; #&for(i=1;i<=5;i++) &switch(i%5) &*{case 0:printf("* ");break;case 1 :printf("#");break;default :printf("\n");case 2 :printf("&");}A)#&&&* B) #& C) # D)#&& && &*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);}}A)39 81 B)42 84 C)26 68 D) 28 705、下面程序段的功能是计算1000!的末尾含有多少个零。
第33、34课时for循环的嵌套
实验题一:
1、下面有关for循环的正确描述是: D
A) for循环只能用于循环次数已经确定的情况
B) for循环是先执行循环体语句,后判断表达式
C) 在for循环中,不能用break语句跳出循环体
D) for循环的循环体语句中, 可以包含多条语句,但必须用花括号括起来
2、对for(表达式1;;表达式3)可理解为:B
A) for(表达式1; 0;表达式3)
B) for(表达式1;1;表达式3)
C) for(表达式1;表达式1;表达式3)
D) for(表达式1;表达式3;表达式3)
3、若i为整型变量,则以下循环执行次数是:B
for (i=2;2==0;) printf("%d",i-- );
A)无限次B) 0次 C) 1 次 D) 2次
4、以下for循环的执行次数是:C
for (x=0,y=0; (y=123)&&(x<4); x++) ;
A)是无限循环 B)循环次数不定C)执行4次 D)执行3次
成立,x++x=2
第三次:(y=123)&&(2<4)成立,x++x=3 第四次:(y=123)&&(3<4)成立,x++x=4
第五次:(y=123)&&(4<4)不成立,退出循环。
5、以下不是无限循环的语句为:A
A) for (y=0,x=1;x > ++y;x =i++) i=x ;
B) for (;1; x++=i);
C) while (1) {x ++;}
D) for(i=10;1 ;i--) sum+=i;
6、下面程序段的运行结果是:C
for (y=1;y<10;)
y=((x=3* y,x+1),x-1);
printf ("x=%d,y=%d",x,y);
A)x=27,y=27 B)x=12,y=13 C)x=15,y=14 D)x=y=27
第一次:1<10为真,x=3,x+1=3+1=4, y=(4,x-1) y=(4,2)=2
第二次: 2<10为真, x=3*2=6,7 y=(7,x-1)=(7,5) y=5
第三次:5<10为真,x=3*5=15 16 y=(16,x-1)=(16,14) y=14 第四次: 14<10为假,
7、下面程序段的运行结果是
for(x=3;x<6;x++)
printf((x %2)("**%d"):(" ##%d\n"),x);
解析:第一次:3<6为真,3%2=1 **3 x++x=4第二次:4<6为真,4%2=0 ##4(换行) x++x=5第三次:5< 6为真,5%2=1 **5 x++x=6
第四次:6<6为假,结束循环
A)**3 B )##3 C)##3 D)**3##4
##4 **4 **4##5 **5
**5 ##5
8、下列程序段不是死循环的是
A) int i=100;
whiLe (1)
{i=i%100+1;
if (i>100) break;
}
B) for(;1;);
C) int k=0;
do{++k;}
while (k> =0) ;
D) int s=36;
while (36) ; --s;
9、执行语句for(i=1;i++<4;) ;后变量i的值是
A)3 B )4 C)5 D)不定
实验题二:编程题
1、编写程序,求1-3+5-7+…-99+101的值。
(1+5+9+13+17+...+101)-(3+7+11+15+ (99)
方法一:
main()
{
int i,j,sum1=0,sum2=0,sum;
for(i=1;i<=101;i+=4)
sum1+=i;
for(j=3;j<=99;j+=4)
sum2+=j;
sum=sum1-sum2;
printf(“1-3+5-7+…-99+101=%d”,sum);
}
方法二:
main()
{
int i,sum=0,s=1;
for(i=1; i<=101;i+=2)
{
sum=sum+i*s;
s=-s; /*控制符号交替变换*/ }
printf("sum=%d",sum);
}
2、编写程序,求e 的值。
e1+1/1!+1/2!+1/3!+..+1/n!
(1)用for循环,计算前50项。
(2)用循环,要求直至最后一项的值小于10-4
源程序一:(1)用for循环实现
main( )
{
int i,n;
printf("input n:\n");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
t=t*i; /* 实现阶乘*/
sum=sum+1/t;
}
printf("e=%lf",sum);
}
源程序二:(2)用while循环实现
#include<>
main( )
{
int i;
doubel sum=1,t=1;
while(fabst)>1e-4) /* fabs求浮点型数据的绝对值*/ {
t=t*i;
sum=sum+1/t;
i++;
printf("e=%lf",sum);
}
3、编写程序,在屏幕上打印出以下图形。
*
***
*****
*******
*****
***
*
解:程序如下
main()
{
int i,j,k;
for(i=0;i<=3;i++) /*输出上面4行*号*/
{
for(j=0;j<=2-i;j++)
printf(““); /*输出*号前面的空格*/ for(k=0;k<=2*i;k++)
printf(“*”); /*输出*号*/
}
for(i=0;i<=2;i++)/*输出下面3行*号*/
{
for(j=0;j<=i;j++)
printf(““); /*输出*号前面的空格*/ for(k=0;k<=4-2*i;k++)/*输出*号*/
printf(“*”);
printf(“\n”); /*输出一行*号后换行*/
}
}
解析:
上面四行
i的值空格数 j后的值 *号的个数 K后的值
0 3 2 1 0
1 2 1 3 2
2 1 0 5 4
30 7 6
下面三行
i的值空格数 j后的值 *号的个数 K后的值
0 1 0 5 4
2 3 2 1 0。