C语言的分支语句和循环语句

目录

  

C语言是结构化的程序设计语言。​

什么是语句?

控制语句可以分为以下三类

分支语句 

if选择结构

 switch语句(常用于多分支的情况)

 循环语句

while语句

for循环

 do...while循环

 循环语句的习题以及作业题

goto语句


C语言是结构化的程序设计语言。C语言的分支语句和循环语句_第1张图片

什么是语句?

C语言的语句可以分为以下五类:

  1. 表达式语句,例:                                                            C语言的分支语句和循环语句_第2张图片
  2. 函数语句,例:printf("fall in love")
  3. 控制语句用于控制程序执行流程,以实现程序的各种结构方式,他们由特定的语句定义符组成,C语言有九种控制语句。C语言的分支语句和循环语句_第3张图片
  4. 复合语句
  5. 空语句的写法    ----> ;(空格加分号)

控制语句可以分为以下三类

  1. 条件判断语句(分支语句):if语句,switch语句
  2. 循环语句:for循环,while循环,do...while循环
  3. 转向语句:break语句,goto语句,continue语句,return语句

分支语句 

if选择结构

if结构后面括号里填写的是值是逻辑真或逻辑假,在C语言中0为假,非0为真。如果()里的表达式为真则执行语句,否则不执行。

  1. 单分支结构                                                                           C语言的分支语句和循环语句_第4张图片
  2. 双分支结构                                                          C语言的分支语句和循环语句_第5张图片
  3. 多分支结构                                                                            C语言的分支语句和循环语句_第6张图片
  4. 案例1                                                                           C语言的分支语句和循环语句_第7张图片
  5. 案例2                                                               C语言的分支语句和循环语句_第8张图片
  6. 案例3                                                                        C语言的分支语句和循环语句_第9张图片
  7. 如果只有一条执行语句,可以省略{}(大括号表示一个代码块)                                                      C语言的分支语句和循环语句_第10张图片
  8. 注意点                                                C语言的分支语句和循环语句_第11张图片C语言的分支语句和循环语句_第12张图片
  9. 习题1(判断一个数是否为奇数)                                           C语言的分支语句和循环语句_第13张图片
  10. 习题2(输出1-100之间的奇数)                                                             C语言的分支语句和循环语句_第14张图片

 switch语句(常用于多分支的情况)

  1.  switch语句的结构                                                            C语言的分支语句和循环语句_第15张图片
  2. 案例1                                                                          C语言的分支语句和循环语句_第16张图片
  3. 案例2(输入1-5为工作日)break语句可以终止跳出switch语句,没有遇到break就会一直执行下去,直到遇到break才会跳出来。C语言的分支语句和循环语句_第17张图片
  4. default子句:当switch表达式的值并不匹配所有的case标签值时候,这个default子句后面的语句就会执行,每个switch语句只能出现一条default子句。C语言的分支语句和循环语句_第18张图片
  5. 习题                                                                  C语言的分支语句和循环语句_第19张图片

 循环语句

while语句

  1. while循环的结构                                   C语言的分支语句和循环语句_第20张图片
  2. while循环中的break                                C语言的分支语句和循环语句_第21张图片C语言的分支语句和循环语句_第22张图片
  3. while循环中的countineC语言的分支语句和循环语句_第23张图片C语言的分支语句和循环语句_第24张图片C语言的分支语句和循环语句_第25张图片
  4. 案例1(getchar回车以后才执行putchar)getchar和putchar每次只能取出来一个字符。
    	int ch = 0;
    	
    	//while ((ch = getchar())!=EOF)//每次循环getchar取新的值
    	//{
    	//	putchar(ch);
    	//}
    
    
    	ch = getchar();
    	while ((ch)!=EOF)//循环第一次取到的值
    	{
    		putchar(ch);
    	}
    C语言的分支语句和循环语句_第26张图片
  5. 案例2                     
    char str[] = { 'a','b','g','\0' };
    	printf("%s\n",str);//abg
    
    	int str[] = { 'a','b','g','\0' };
    	printf("%s\n", str);//a  int类型相当于定义了一个char字符
      把字符串地址放在int类型里                              C语言的分支语句和循环语句_第27张图片C语言的分支语句和循环语句_第28张图片
  6. 案例3                                         C语言的分支语句和循环语句_第29张图片
  7. 案例4(scanf和getchar都是从缓冲区获取数据的,scanf需要回车一下,但是getchar可以直接获取)缓冲区有数据,getchar不会等待,直接拿数据。C语言的分支语句和循环语句_第30张图片C语言的分支语句和循环语句_第31张图片
  8. 缓冲区:从磁盘读取数据时候,先把读取的数据放在缓冲区,然后计算机直接从缓冲区去读取数据,这样可以减少磁盘的读取次数。计算机对缓冲区的操作远远快于对磁盘的操作。缓冲区就是一块内存区域,它用在输入输出设备和CPU之间,用来缓存数据。它用于协调低速输入输出设备和高速CPU之间的工作C语言的分支语句和循环语句_第32张图片C语言的分支语句和循环语句_第33张图片

 scanf可以获取空格前的字符串,空格后的字符只能放在缓存区,等待下次的scanf,getchar,scanf回车以后才能从缓存区拿到字符串;但是getchar可以直接一个接一个读取,空格和回车也可以读取。(因此getchar()常用于消除scanf产生的无用的回车键

for循环

  1. for循环语法结构                               C语言的分支语句和循环语句_第34张图片
  2. 打印1-10的整数                                                    C语言的分支语句和循环语句_第35张图片
  3. for循环的执行顺序                                                                          C语言的分支语句和循环语句_第36张图片
  4. 对比while循环和for循环(可以发现在while和for循环中三个必要条件都存在,但是while循环的三个部分是分开的,结构大的话就会偏离很多,没有for循环的三个部分那么集中。for循环紧凑的结构使得他的使用频率相对较高。)                                                                          
  5. for循环中的break                                C语言的分支语句和循环语句_第37张图片
  6. for循环中的continue                                      C语言的分支语句和循环语句_第38张图片
  7. 一些for循环的变种                              C语言的分支语句和循环语句_第39张图片          C语言的分支语句和循环语句_第40张图片C语言的分支语句和循环语句_第41张图片C语言的分支语句和循环语句_第42张图片C语言的分支语句和循环语句_第43张图片
  8. 习题                                                                       C语言的分支语句和循环语句_第44张图片

 do...while循环

  1. do...while循环的结构(就算不满足条件,也先执行一次)                                                               C语言的分支语句和循环语句_第45张图片
  2. 就算不满足条件,也先执行一次                                                                             C语言的分支语句和循环语句_第46张图片
  3. do...while循环中的break                                      C语言的分支语句和循环语句_第47张图片C语言的分支语句和循环语句_第48张图片
  4. do...while循环中的continue                                                             C语言的分支语句和循环语句_第49张图片C语言的分支语句和循环语句_第50张图片

 break只能跳出当前循环,只能跳出一层

循环语句的习题以及作业题

  1. 计算n的阶乘                                                             C语言的分支语句和循环语句_第51张图片C语言的分支语句和循环语句_第52张图片C语言的分支语句和循环语句_第53张图片
  2. 计算n的累加和                                                                    C语言的分支语句和循环语句_第54张图片C语言的分支语句和循环语句_第55张图片C语言的分支语句和循环语句_第56张图片
  3. 计算1!+2!+......10!                                                                           C语言的分支语句和循环语句_第57张图片C语言的分支语句和循环语句_第58张图片
  4. 在线OJ(OJ即online judge 在线评测);OJ题目分为IO型(自己写所有的代码)和接口型(自己写部分代码)
  5. 在一个有序数组中查找具体的某个数字n。(二分查找)C语言的分支语句和循环语句_第59张图片C语言的分支语句和循环语句_第60张图片C语言的分支语句和循环语句_第61张图片
  6. 编写代码,演示多个字符从两端向中间汇聚显示。C语言的分支语句和循环语句_第62张图片
  7. 指针是个变量,用于存放地址,指针是个地址。
  8. 案例说明:                                           C语言的分支语句和循环语句_第63张图片
  9. 给定秒数转化为时分秒                                                                             C语言的分支语句和循环语句_第64张图片C语言的分支语句和循环语句_第65张图片
  10. 输入5个整数,求平均数(平均数为浮点数,且保留一位小数)                                                             C语言的分支语句和循环语句_第66张图片C语言的分支语句和循环语句_第67张图片
  11. C语言在C99之中引入了布尔值的概念,表示真假。                                             C语言的分支语句和循环语句_第68张图片
  12. switch语句的default子句可以放在任意位置。                                                      C语言的分支语句和循环语句_第69张图片
  13. 反向输出一个四位数。(得到一个数字具体位置用%10 、/10)C语言的分支语句和循环语句_第70张图片C语言的分支语句和循环语句_第71张图片C语言的分支语句和循环语句_第72张图片
  14. char类型中存放的是字符,字符是有ASCII码值的,字符在存储时候存储的是ASCII码值。字符也被认为是一种整型。
  15. 案例理解                                                                      C语言的分支语句和循环语句_第73张图片
  16. 将3个整数从大到小输出。(先确定大的值)                                                                              C语言的分支语句和循环语句_第74张图片
  17. 给定两个数的最大公约数(m和n两个较小值为最大公约数的可能起始值,每次不断减一,直到真正的最大公约数出现)C语言的分支语句和循环语句_第75张图片
  18. 给定两个数的最小公倍数(m和n两个较大值为最小公倍数的可能起始值,每次不断加一,直到真正的最小公倍数出现)C语言的分支语句和循环语句_第76张图片
  19. rand函数(如果不设置srand()就会直接赋值种子值为恒1,相当于随机数只能获取一次,值就固定了。srand()原型:void srand(unsigned int seed);rand生成的随机数范围:0---32767      srand(unsigned int seed);一般写在主函数里,srand(unsigned int seed);不可以多次重复的定义。C语言的分支语句和循环语句_第77张图片C语言的分支语句和循环语句_第78张图片
  20. 编写程序解决“猜数游戏”问题:产生一个10以内的随机数,请用户猜是几,接收用户输入的数以后,判断并且返回比这个数大了,小了还是完全正确。
    #define _CRT_SECURE_NO_WARNINGS 1
    #include 
    int main()
    {
    	int x = 0;
    	int y = 0;
    	srand((unsigned int)time(NULL));
    	x = rand()%100+1;
    	//printf("%d\n", x);
    	
    	while (1)
    	{
    		printf("请输入:\n");
    		scanf("%d", &y);
    		if (x == y) {
    			printf("ok");
    			break;
    		}
    		else if (x > y) {
    			printf("small");
    			//continue;
    		}
    		else if (x < y) {
    			printf("big");
    			//continue;
    		}
    	}
    
    	return 0;
    }

  21. 编写程序,实现从键盘输入四则运算,显示对应的计算结果。(根据 +-*/符号进行判断)C语言的分支语句和循环语句_第79张图片C语言的分支语句和循环语句_第80张图片
  22. 编写程序,求一元二次方程ax^2+bx+c=0的值。C语言的分支语句和循环语句_第81张图片
  23. 编写程序,打印下面一张平方表:                                      C语言的分支语句和循环语句_第82张图片
  24. 编写程序,循环出倒立金字塔。                                       C语言的分支语句和循环语句_第83张图片
  25. 打印1000-2000的闰年。                                           C语言的分支语句和循环语句_第84张图片
  26. 打印100-200的素数。                        C语言的分支语句和循环语句_第85张图片
  27. 模拟用户登录的情况,并且只能登录3次。(只允许输入密码三次,如果密码正确则提示登陆成功,如果三次都失败,则退出程序)C语言的分支语句和循环语句_第86张图片
  28. 猜数字游戏。(srand()函数设置种子值,设置一次就好,不用循环设置。)
    #define _CRT_SECURE_NO_WARNINGS 1
    #include 
    int menu() {
    	printf("--------------------------\n");
    	printf("----------0 退出---------\n");
    	printf("----------1 开始---------\n");
    	printf("--------------------------\n");
    	return 0;
    }
    int game() {
    	int suiji = rand() % 100 + 1;
    	int caice = 0;
    	while(1){
    		
    		printf("请输入猜测数字:");
    		scanf("%d", &caice);
    		if (suiji == caice) {
    			printf("ok\n");
    			break;
    		}
    		else if (suiji < caice) {
    			printf("big\n");
    
    		}
    		else if (suiji > caice) {
    			printf("small\n");
    
    		}
    	}
    }
    int main()
    {
    	srand((unsigned int)time(NULL));
    	int input = 0;
    	do
    	{
    		menu();
    		printf("请输入:");
    		scanf("%d", &input);
    		switch (input) {
    		case 0:
    			printf("退出游戏!!!\n");
    				break;
    		case 1:
    			printf("开始游戏!!!\n");
    			game();
    			break;
    		}
    	} while (input);
    	return 0;
    }
    C语言的分支语句和循环语句_第87张图片
  29. 打印九九乘法表。                                                   C语言的分支语句和循环语句_第88张图片

goto语句

goto语句最常见的用法就是终止程序在某些深度嵌套的结构的处理过程。多层循环这种情况使用break是达不到目的的,break只能从内层循环退出到上一层循环。(goto语句和跳转标签必须在一个函数中,不可以跨函数使用)( shutdown是windows提供的关机命令,shutdown -s -t 120(-s是设置关机,-t是设置关机时间),shutdown -a(取消关机)C语言的分支语句和循环语句_第89张图片C语言的分支语句和循环语句_第90张图片C语言的分支语句和循环语句_第91张图片

Debug文件夹下存放的是.exe文件C语言的分支语句和循环语句_第92张图片

 程序自启动:服务--->增加.exe文件

C语言的分支语句和循环语句_第93张图片

 

你可能感兴趣的:(c语言,开发语言)