0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

C语言基础知识(5)--循环语句

嵌入式技术 来源:嵌入式技术 作者:嵌入式技术 2023-06-15 10:18 次阅读

1.for循环

for(表达式1;表达式2;表达式3)
{
	语句块
}

表达式1:表示的是初始化条件;
表达式2:循环条件
表达式3:自增或自减
for循环中三个表达式都可以省略,但分号必须保留。

poYBAGSKb3yAa2vtAAEm-pmZAJ8278.png
  • 示例:计算1+2+3+...+100
#include < stdio.h >
/*
计算1+2+3+...+100
*/
int main()
{
	int i;
	int sum=0;
	for(i=1;i<=100;i++)
	{
		printf("i=%dn",i);
		sum+=i;//sum=sum+i;
	}
	printf("sum=%dn",sum);
}

1.1 for循环嵌套

#include < stdio.h >
int main()
{
	int i,j;
	int cnt=0;
	for(i=0;i< 3;i++)//i=0,1,2
	{
		for(j=0;j< 5;j++)//j=0,1,2,3,4
		{               //j=0,1,2,3,4
			cnt++;
			printf("第%d次循环:i=%d,j=%dn",cnt,i,j);
			if(j==2)break;/*break跳出当前循环*/
		}
	}
	return 0;
}
[wbyq@wbyq 123]$ gcc main.c 
[wbyq@wbyq 123]$ ./a.out 
第1次循环:i=0,j=0
第2次循环:i=0,j=1
第3次循环:i=0,j=2
第4次循环:i=1,j=0
第5次循环:i=1,j=1
第6次循环:i=1,j=2
第7次循环:i=2,j=0
第8次循环:i=2,j=1
第9次循环:i=2,j=2

注意:break只能跳出一层循环

2.while循环

while(表达式)
{
	语句块
}
  • 示例:2+4+6+8...+100
#include < stdio.h >
/*
示例:2+4+6+8...+100
*/
int main()
{
	int i=2;
	int sum=0;
	while(i<=100)
	{
		sum+=i;
		i+=2;
	}
	printf("sum=%dn",sum);
}

3.do..while循环

do
{
  语句块
}while(表达式);

while和do...while区别:while循环条件为真才能执行里面的语句块,do...while先执行一次语句块,再判断条件。

4.循环控制语句

控制语句 描述
break语句 终止循环或switch语句,程序将执行紧接着循环或switch的下一条语句
continue语句 立刻停止本轮循环,重新开始下轮循环
goto语句 将控制跳转到被标记的语句。不太建议程序中使用goto语句

4.1 break语句

C语言中break语句有以下两种用法:

①用于循环语句中,当break语句出现在一个循环内时,循环会立即终止,且程序流将继续执行紧接着循环的下一条语句。
②用于switch结构中,它可用于终止switch语句中的一个case。

如果使用的是嵌套循环(即一个循环内嵌套另一个循环), break语句会停止执行其所在的那层循环,然后开始执行该块之后的下一行代码。

4.2 continue语句

C语言中的continue语句有点像 break 语句。但它不是强迫终止, continue会结束当前循环中的代码,强迫开始下一次循环。

对于for循环,continue语句执行后自增语句仍然会执行。

对于while和do...while循环,continue 语句会重新执行条件判断语句。

4.3 goto语句

C语言中的goto语句允许把控制无条件转移到同一函数内的被标记的语句。

注意:在任何编程语言中,都不建议使用goto语句。一是因为它使得程序的控制流难以跟踪,使程序难以理解和难以修改。任何使用goto语句的程序可以改写成不需要使用goto语句的写法。二是goto语句容易破坏原本的代码结构。

C语言中goto语句的语法:

Label:
	printf("goto语句使用!n");
	.....
	语句块;
	...
	goto Label:

在这里,label可以是任何除C关键字以外的纯文本,它可以设置在C程序中goto语句的前面或者后面。

5.练习

1.求100以内自然数中偶数之和。

2.输出200~400以内能被3整除且个位数字为6的整数。

3.计算:1*2*3+3*4*5+。。。。 +99*100*101 的值。

4.输出所有水仙花数。(水仙花数:一个三位数,它的每个位上的数字的3次幂只和等于他本身)

5.排列组合问题:一个口袋中放有12个球,已知其中3个是红色的,3个是白色的,6个是黑色的,现在从中任取8个,问共有多少种可能的颜色搭配。

6.判断2~100之间所有素数。(只能被本身整除的数,比如:3 、7、13。

7.输出2~1000之间的可逆素数。

8.打印正三角形和倒三角形。

pYYBAGSKdImAOvOuAABAB6jaGwY152.png


9.输出9*9乘法表。

10.韩信点兵:相传韩信才智过人,从不直接清点自己军队的人数,只要让士兵先后以三人一排、五人一排、七人一排地变换队形,而他每次只掠一眼队伍的排尾就知道总人 数了。请输入3个非负整数a,b,c ,表示每种队形排尾的人数(a<3,b<5,c<7),输出总人数的最小值(或报告无解)。已知总人数不小于10,不超过100 。

11.有一个4位数,它的9倍数恰好是其反序数,求该数。(反序数就是将其倒过来形参的整数,例1234的反序数就是4321。)

12.求一个三位数,该三位数等于其每个位数字的阶乘之和。

13.输出1000以内所有的完全数。(完全数:一个数恰好等于它的因子之和。如6的因子为1 2 3,而1+2+3=6)

14.输出具有abcd=(ab+cd)²性质的四位数。

15.将100元换成1元、5元、10元有多少种换法?

16.百元买白鸡问题:100块钱买100只鸡,公鸡5块1只、母鸡3块1只,小鸡3只1块,输出所有的买法。

17.有一个数列:1、1、2、3 、5 、8...
通过输入下标,输出对应的值,下标从1开始。例如输入3,输出2;输入5,输出5;

18.爱因斯坦出了一道这样的数学题:有一条长阶梯,若每步跨⒉阶,则最后剩1阶,若每步跨3阶﹐则最后剩⒉阶,若每步跨5阶,则最后剩4阶,若每步跨6阶则最后剩5阶。只有每次跨7阶,最后才正好一阶不剩。请问,这条阶梯共有多少阶?

19.一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征(假设仅为数字)。
甲说:牌照的前两位数字是相同的;
乙说:牌照的后两位数字是相同的,但与前两位不同;
丙是位数学家,他说:四位的车号刚好是一个整数的平方。请根据以上线索求出车号。

20.如果一个数恰好等于它的因子之和,则称该数为“完全数”。如:6的因子是1、2、3,而6=1+2+3,则6是个“完全数”。试求出1000以内的全部“完全数”。

21.谁在说谎问题:张三说李四在说谎,李四说王五在说谎,王五说张三和李四都在说谎。现在问:这三人中到底谁说的是真话,谁说的是假话?


审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C语言
    +关注

    关注

    180

    文章

    7604

    浏览量

    136750
  • 关键字
    +关注

    关注

    0

    文章

    37

    浏览量

    6895
  • 循环语句
    +关注

    关注

    0

    文章

    10

    浏览量

    4860
收藏 人收藏

    评论

    相关推荐

    C语言基础知识科普

    C语言是单片机开发中的必备基础知识,本文列举了部分STM32学习中比较常见的一些C语言基础知识
    发表于 07-21 10:58 1892次阅读

    C语言基础知识(一)

    、嵌入式系统和科学计算等领域。作为一名程序员,了解C语言基础知识是非常重要的。本文将详细介绍C语言的基础概念,包括数据类型、变量、运算符、
    发表于 08-07 16:51

    C语言基础知识(一)

    、嵌入式系统和科学计算等领域。作为一名程序员,了解C语言基础知识是非常重要的。本文将详细介绍C语言的基础概念,包括数据类型、变量、运算符、
    发表于 08-10 15:16

    C语言入门教程-if语句和while循环

    if语句和while循环 C语言中,if语句和while循环都会用到布尔表达式。下面是一个使用
    发表于 07-29 10:48 8549次阅读

    C++语言基础讲解视频do while循环语句

    C++语言基础讲解视频do while循环语句
    发表于 01-14 15:32 5次下载

    C++语言基础讲解视频while循环语句

    C++语言基础讲解视频while循环语句,喜欢的朋友可以下载来学习。
    发表于 01-14 15:31 3次下载

    C语言的for循环语句的程序和电路图免费下载

    1、在许多实际问题中,需要程序进行有规律的重复执行,这时可以用循环语句来实现。在c语言中。用来实现循环
    发表于 08-20 17:31 1次下载
    <b class='flag-5'>C</b><b class='flag-5'>语言</b>的for<b class='flag-5'>循环</b><b class='flag-5'>语句</b>的程序和电路图免费下载

    C51语言基础知识资料说明

    本文档的主要内容详细介绍的是C51语言基础知识资料说明。 C51语言中,有相关的控制语句,用
    发表于 06-06 17:49 1次下载
    <b class='flag-5'>C</b>51<b class='flag-5'>语言</b>的<b class='flag-5'>基础知识</b>资料说明

    C51语言基础知识点实例讲解

    本文档的主要内容详细介绍的是C51语言的18个基础知识点实例讲解包括了:C51控制语句C51数
    发表于 06-04 17:52 12次下载
    <b class='flag-5'>C</b>51<b class='flag-5'>语言</b>的<b class='flag-5'>基础知识</b>点实例讲解

    C语言基础知识讲解

    C语言基础知识讲解
    发表于 05-19 17:39 13次下载

    C语言-语句(if,for,while.....)

    这篇文章作为C语言基础知识点,介绍C语言常用的几个语句的用法、规则、使用案例。
    的头像 发表于 08-14 10:00 1792次阅读

    单片机C语言基础知识

    单片机C语言基础知识
    发表于 10-08 09:30 7次下载

    C语言循环与分支-2

    而在c语言中我们经常会需要重复地进行一些指令,但是不断的编辑重复代码不仅很繁琐,还容易出现bug,因此循环语句的使用就非常有必要。今天要介绍的就是
    的头像 发表于 02-21 15:35 703次阅读
    <b class='flag-5'>C</b><b class='flag-5'>语言</b>的<b class='flag-5'>循环</b>与分支-2

    C语言for语句介绍

    除了可以用while语句和do...while语句实现循环外,C语言还提供for语句实现
    的头像 发表于 03-09 11:14 1353次阅读

    深入理解C语言循环语句的应用与优化技巧

    在程序设计中,我们常常需要重复执行某一段代码。为了提高效率和简化代码,循环语句应运而生。C语言作为一门经典的编程语言,提供了多种
    的头像 发表于 12-07 01:11 132次阅读
    深入理解<b class='flag-5'>C</b><b class='flag-5'>语言</b>:<b class='flag-5'>循环</b><b class='flag-5'>语句</b>的应用与优化技巧