“21好习惯“第一期-9

第五章 选择控制结构
5.1 生活中与计算机中的问题求解方法
5.2 算法的概念及其描述方法
● 机器语言是由一系列二进制的0和1组成的
● 算法的基本特性:有穷性,确定性,有效性,允许没有输入或者有多个输出,必须有一个或者多个输出
● 伪码书写无固定格式和规范
5.3 关系运算符与关系表达式
● 关系运算符!=表示不等于
● 关系表达式通常用于表达一个判断条件,而一个条件判断的结果只能有真假两种:用非0表示“真”,用0值表示“假”
● n不是偶数可表示为n%2!=0
● ==为相等运算符,=为赋值运算符
5.4 用于单分值控制的条件语句
● 单、双、多分支选择结构
5.5 用于双分支控制的条件语句
5.6 条件运算符和条件表达式
● 条件表达式一般形式:表达式1?表达式2:表达式3(其含义是:若表达式1的值非0,则该条件表达式的值是2的值,否则是表达式3的值)
5.7用于多分支控制的条件语句
● 复合语句:将一组逻辑相关的语句用一对花括号括起来所构成的语句,可以用在单个语句可以使用的任何地方
如max=a;
printf(“max=%d\n”,a);是两条语句
但{
max=a;
printf(“max=%d\n”,a);
}是一条复合语句
● 为使程序层次清晰,通常将位于每个分支的复合语句中的语句相对于左花括号向右缩进4个空格
● if语句会认为if后面的第一条语句是其分支语句,若在其后要添加,则必须同时添加一对花括号才能保证程序逻辑上的正确性
● stdlib.h是C标准函数库的头文件,声明了数值与字符串转换函数,伪随机数生成函数,动态内存分配函数,进程控制函数等公共函数
● fabs是计算机C语言中求浮点数X的绝对值
● EPS是在函数程序中事先说明的常量,是控制迭代精度的,相当于微积分里面的无限小值
● 函数exit()的作用是终止整个程序的执行,强制返回操作系统,并将int型参数code的值传给调用进程()一般为操作系统。其调用形式一般为exit(code),exit()是C语言提供的标准库函数
● 当code的值为0或者宏常量EXIT—SUCCESS时,表示程序出现某种错误后退出
● 调用函数exit()需要在程序开头包含头文件
If语句
if(表达式)语句1;
如果表达式的值为非0,则执行语句1,否则跳过语句继续执行下面的语句。
如果语句1有多于一条语句要执行时,必须使用{和}把这些语句包括在其中,
此时条件语句形式为:
if(表达式)
语句体1;
}例如
if(x>y)printf(“%d”,x)
2、if- else语句
除了可以指定在条件为真时执行某些语句外,还可以在条件为假时执行另外一段代码。在C语句中利用else语句来达到这个目的。
if(表达式)语句1;
else语句2;
同样,当语句1或语句2是多于- -个语句时,需要用{}把语句括起来。
例如:
if(x>y)
printf(“%d”,x);
else
printf(“%d”,y);
3、if-else if- else结构
if(表达式1)语句1;
else if(表达式2)语句2;
……
else if(表达式m)语句m;
else 语句n
例如
if(number>500)cost=0.15;
else if(number>300)=0.10;
else if(number>100)=0.075;
else coust=0;
三.Switch语句
switch(变量)
{
case常量1:语句1或空;
case常量2:语句2或空;

case常量n:语句n或空;
default:
}
注意:1. switch中变量可以是数值,也可以是字符,但必须是整数。
2.可以省略一些case和default。
3.每个case或default后的语句可以是语句体,但不需要使用{和}括起来。
例1.要求输出等级ABCDE 90以上 80·89 70·79 60·69 60以下
#include<stdio.h>
int main()
{
int score;
printf(“请输入成绩:”);
scanf("%d", &score);
if (score <= 100 && score >= 90)
{
printf(“成绩等级为:%c\n”, ‘A’);
}
else if (score <= 89 && score >= 80)
{
printf(“成绩等级为:%c\n”, ‘B’);
}
else if (score <= 79 && score >= 70)
{
printf(“成绩等级为:%c\n”, ‘C’);
}
else if (score <= 69 && score >= 70)
{
printf(“成绩等级为:%c\n”, ‘D’);
}
else if (score <= 59 && score >= 0)
{
printf(“成绩等级为:%c\n”, ‘E’);

}
else
{
printf("输入有误!\n");
}
return 0;
1
2
3
4
5
6
}

例二、编写程序,输出从公元1000年至2000年所有闰年的年号。判断闰年的条件是:
1)公元年数如能被4整除,而不能被100整除,则是闰年;
2)公元年数能被400整除也是闰年。

#include<stdio.h>
void main()
{
int n;
for (n = 1000; n < 2000; n++)
{
if ((n % 4 == 0 && n% 100!=0) || (n % 400 == 0))
{
printf("%d\n", n);
}If语句
if(表达式)语句1;
如果表达式的值为非0,则执行语句1,否则跳过语句继续执行下面的语句。
如果语句1有多于一条语句要执行时,必须使用{和}把这些语句包括在其中,
此时条件语句形式为:
if(表达式)
语句体1;
}例如
if(x>y)printf(“%d”,x)
2、if- else语句
除了可以指定在条件为真时执行某些语句外,还可以在条件为假时执行另外一段代码。在C语句中利用else语句来达到这个目的。
if(表达式)语句1;
else语句2;
同样,当语句1或语句2是多于- -个语句时,需要用{}把语句括起来。
例如:
if(x>y)
printf(“%d”,x);
else
printf(“%d”,y);
3、if-else if- else结构
if(表达式1)语句1;
else if(表达式2)语句2;
……
else if(表达式m)语句m;
else 语句n
例如
if(number>500)cost=0.15;
else if(number>300)=0.10;
else if(number>100)=0.075;
else coust=0;
三.Switch语句
switch(变量)
{
case常量1:语句1或空;
case常量2:语句2或空;

case常量n:语句n或空;
default:
}
注意:1. switch中变量可以是数值,也可以是字符,但必须是整数。
2.可以省略一些case和default。
3.每个case或default后的语句可以是语句体,但不需要使用{和}括起来。
例1.要求输出等级ABCDE 90以上 80·89 70·79 60·69 60以下
#include<stdio.h>
int main()
{
int score;
printf(“请输入成绩:”);
scanf("%d", &score);
if (score <= 100 && score >= 90)
{
printf(“成绩等级为:%c\n”, ‘A’);
}
else if (score <= 89 && score >= 80)
{
printf(“成绩等级为:%c\n”, ‘B’);
}
else if (score <= 79 && score >= 70)
{
printf(“成绩等级为:%c\n”, ‘C’);
}
else if (score <= 69 && score >= 70)
{
printf(“成绩等级为:%c\n”, ‘D’);
}
else if (score <= 59 && score >= 0)
{
printf(“成绩等级为:%c\n”, ‘E’);

}
else
{
printf("输入有误!\n");
}
return 0;
1
2
3
4
5
6
}

例二、编写程序,输出从公元1000年至2000年所有闰年的年号。判断闰年的条件是:
1)公元年数如能被4整除,而不能被100整除,则是闰年;
2)公元年数能被400整除也是闰年。

#include<stdio.h>
void main()
{
int n;
for (n = 1000; n < 2000; n++)
{
if ((n % 4 == 0 && n% 100!=0) || (n % 400 == 0))
{
printf("%d\n", n);
}
作业:#include <stdio.h>
int main()
{
unsigned char d,b;
int k;
scanf("%c %d",&d,&k);
b = d + k % 26;
b = b >'z'?b-26:b;
b = b<'a'?b+26:b;
printf("%c",b);
return 0;
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值