【C】C语言复习_第三天_结构化程序设计

本文介绍了结构化程序设计的核心概念,包括算法、流程图和C语言基本语句。详细讲解了条件语句(if、switch)、循环语句(while、do...while、for)以及跳转语句(break、continue、goto)。并通过实例展示了如何运用这些结构解决实际编程问题,如打印水仙花数、查找素数等。
摘要由CSDN通过智能技术生成

学习内容:

3、结构化程序设计


学习时间:

2020年10月4日15:30-16:30

学习产出:

/*
结构化程序设计
	算法-程序设计的灵魂
		算法的概念
			操作步骤即是算法
			程序=数据结构+算法
		流程图
			描述问题处理步骤的一种常用图形工具
	C语言的基本语句
		表达式语句
			运算符表达式语句
			赋值语句
		函数调用语句
		空语句
		块语句
		流程控制语句
			结构化语句
				条件语句
					if语句
					switch语句
				循环语句
					while语句
					do while语句
					for语句
			非结构化语句
				限定转向语句
					break语句
					continue语句
					return语句
				非限定转向语句(goto)语句
	顺序结构语句
		程序中的所有语句都是从上到下逐条执行
	选择结构语句
		if条件语句
			单分支结构
				语法格式:
					if(判断条件)
					{
						代码块
					}
			双分支节后
				语法格式:
					if(判断条件)
					{
						代码块
					}
					else
					{
						代码块
					}
			多分支结构
				语法格式:
				if(判断条件)
					{
						代码块
					}
					else if(判断条件)
					{
						代码块
					}
					else if(判断条件)
					{
						代码块
					}
					else
					{
						代码块
					}
		if语句的嵌套
			语法格式:
				if(判断条件)
				{
					if(判断条件)
					{
						代码块
					}
					else
					{
						代码块
					}
				}
				else
				{
					if(判断条件)
					{
						代码块
					}
					else
					{
						代码块
					}
				}
		switch条件语句
			只能针对某个表达式的值做出判断,从而决定程序执行哪一段代码
			语法格式:
				switch(表达式)
				{
					case 目标值1:
						执行语句1
						break;
					case 目标值2:
						执行语句2
						break;
					case 目标值3:
						执行语句3
						break;
					....
					default:
						执行语句
						break;
				}
		if语句与switch语句的异同
			switch结构语句只进行相等与否的判断;而if结构语句还可以进行大小范围上的判断
			switch无法处理浮点数,只能进行整数的判断,case标签值,必须是常量;而if语句则可以对浮点型进行判断
			如果纯粹式数字或字符的判断,最好式使用switch
	循环结构语句
		while循环语句
			先判断循环条件,然后根据判断结果来决定是否执行相应的代码块
			语法格式:
				while (循环条件)
				{
					代码块
				}
		do....while循环语句
			先执行一次代码,在判断循环条件
			语法格式:
				do
				{
					代码块
				}while(循环条件)
		for循环语句
			语法格式:
				for(初始化表达式;循环条件;操作表达式)
				{
					代码块
				}
		循环的嵌套
		跳转语句
			break
				switch中终止某个case并跳出switch结构,
				循环语句中跳出当前循环,执行后面的代码
			continue语句
				立即终止本次循环,并执行下一次循环
			break与continue的区别
				break终止当前循环,执行循环体外的第一条语句;而continue式终止本次循环,继续执行下一次循环
				break语句可以用于switch语句,而continue不可以
			goto语句
				如果想要跳出外层循环,则需要对外层循环添加标记,然后使用goto语句
	进阶案例-打印水仙花数
	进阶案例-查找100以内的素数
*/	
//相关练习
/*
1、编程输入整数a和b,若这两个数(或一个数)大于100,则输出这a+b。如果两个数都小于100,输出a-b。
*/
#include<stdio.h>
int main()
{
	int a,b;
	printf("请输入两个整数:");
	scanf("%d%d",&a,&b);
	if (a>=100||b>=100)
	    printf("a+b=%d",a+b);
    else
        printf("a-b=%d",a-b);
	return 0;
} 
/*
2、编写程序,要求用户输入一个一位数,然后显示该数的中文大写金额数字。请用swith完成
*/
#include<stdio.h>
int main()
{
	int a;
	printf("请输入一个整数:");
	scanf("%d",&a);
	switch (a)
	{
	case 0:
		printf("零\n ");
		break;
	case 1:
		printf("壹\n ");
		break;
	case 2:
		printf("贰\n ");
		break;
	case 3:
		printf("叁\n ");
		break;
	case 4:
		printf("肆\n ");
		break;
	case 5:
		printf("伍\n ");
		break;
	case 6:
		printf("陆\n ");
		break;
	case 7:
		printf("柒\n");
		break;
	case 8:
		printf("捌\n");
		break;
	case 9:
		printf("玖\n");
		break;
	} 
	return 0;
}
/*
3、编写一个程序求出1+1/2+1/3+1/4+...+1/100的和。 
*/
#include<stdio.h>
int main()
{
	double i,sum=0;
	for(i=1;i<=100;i++)
	{
		sum=sum+1/i;
	}
	printf("1+1/2+1/3+1/4+...+1/100的和为:%f\n",sum);
	return 0;
}
/*
4、鸡兔共30只,脚共有90个。编写一个程序,求鸡、兔各多少只。 (do-while实现)
*/
#include<stdio.h>
int main()
{
	int j=1;
	do
   {
      if(j*2+(30-j)*4==90)
      printf("鸡:%d   兔:%d\n",j,30-j);
      j++;
   }while(j<=30);
	return 0;
}
/*
5、打印出一个金字塔图像
*/
#include<stdio.h>
int main()
{
	int a,b,c;
	for(a=1;a<=10;a++){
		for(b=1;b<=10-a;b++){
	       printf(" ");
  }
  		for(c=1;c<=2*a-1;c++){
	       printf("*");
  }
	printf("\n");
 }
	return 0;
}
/*
进阶案例-打印水仙花数(100-1000中)
*/
#include<stdio.h>
int main()
{
	int num;
	int a,b,c;
	for (num=100;num<1000;num++)
	{
		a=num%10;
		b=num/10%10; 
		c=num/100;
		if(num==(a*a*a+b*b*b+c*c*c))
			printf("%d\n",num);
	}
 } 
 /*
 进阶案例-查找100以内的素数
 */
 #include<stdio.h>
int main()
{
	int num=2;
	int i,j=1,count=0;
	while(num<100)
	{
		for(i=2;i<num;i++)
		{
			if(num%i==0)
				break;
		}
		if(num==i)
		{
			printf("%d\t",num);
			count++;
			if(count%5==0)
			printf("\n");
			
		}
		num++;
	}
	printf("1-100之间的素数一共右%d个",count);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值