第7章,c语言控制语句:分支和跳转
7.1 if语句
通用形式:if(expression)
statment
7.2 if else语句
通用形式:if(expression)
startment
else
startment2
7.2.1 字符输入,输出函数:getchar(),putchar()
ch=getchar()类似scanf("%c",&ch)
putchar(ch)类似printf("%c",ch)
这两个函数定义在stdio.h文件中
7.2.2 ctype.h系列字符函数

字符映射函数不会修改原始参数。
7.2.3 多重选择 else if
7.2.4 else 与if配对
规则else与离它最近的if匹配,除非最近的if被花括号括起来。
7.2.5 多层嵌套if语句
7.3 逻辑运算符
与&&、或||、非!
7.3.1 备选拼写:iso646.h
and:&&、or:||、not:!。
7.3.2
!优先级只比圆括号低,
&&比||优先级高,但是两者都比关系运算符低,比赋值运算符高。
7.3.3 求值顺序
逻辑表达式顺序从左往右,一旦发现有使整个表达式为假的的因素,便立即停止求值。
7.5 条件运算符:?
c语言使用条件表达式作为表达if else的一种快捷方式。
该方式使用体哦阿建运算符,该运算符分为两部分,需要三个运算对象。
通用表达形式:expression1?expression2;expression3
如果expression1为真(非0),那么整个表达式的值和expression2相同,假和expression3相同。
7.6 循环辅助:continue和break
7.6.1 continue语句
终止当前循环,进行到下一次循环。
对于while而言,执行continue后,下一个被求值的是循环测试条件。
对于for而言,执行continue后,下一个是对循环测试表达式求值。
7.6.2 break 语句
结束包含它的循环,执行下一阶段
7.7 多重选择 switch和break
7.7.1 switch语句
switch(expression)
{
case label1:statement1
case label2:startment2
}
程序根据expression的值跳入相应的case值处,执行剩下所有语句,除非执行break语句进行重定向。
如果没有和case值相匹配的,控制则跳到标签带有default的语句,,否则将执行紧跟在switch语句后面的语句。
default:标签行,如果上述没有匹配的标签,执行到该语句时,就跳转到指定的标签行。
break:让程序离开switch语句
7.8 goto语句
goto 语句有两部分:goto 和标签名
例:goto part2;
part2:printf(“”);
7.12 编程练习
1.
#include <stdio.h>
int main(void)//报告读取的空格数,换行符数,和所有其他字符数
{
char ch;
int a=,b=,c=;
printf("enter\n");
while((ch=getchar())!='#')
{
if(ch==' ')
a++;
else if (ch=='\n')
b++;
else
c++;
}
printf("空格数%d__换行符%d__其他字符%d",a,b,c);
return ;
}
2.
#include <stdio.h>
#include <ctype.h>
int main(void)//将字符转化为ascll对应的十进制值
{
char ch;
int i=;
printf("please enter one sentence\n");
while((ch=getchar())!='#')
{
if(isgraph(ch))
{
i++;
if(i%!=)
printf("%d ",ch);
if(i%==)
printf("\n%d ",ch);
}
}
printf("\n%d",i);
return ;
}
3.
#include<stdio.h> int main()
{
int integer=;
int even=;
int odd=;
int i=,j=;
printf("please enter integer\n");
while ((scanf("%d",&integer)==)&&integer!=)
{
if((integer%)==)
{ i++;
even=even+integer;
}
else
{
j++;
odd=odd+integer;
}
}
printf("偶数平均值%d,偶数个数%d,奇数平均值%d,奇数个数%d\n",even,i,odd,j);
getchar();
getchar();
return ;
}
4.注意字符替换
#include<stdio.h>
int main()
{
char ch=;
int i=,j=;
printf("please enter integer\n");
while ((ch=getchar())!='#')
{
if(ch=='.')
{
putchar('!');
i++;
}
else if(ch=='!')
{
putchar('!');
putchar('!');
j++;
}
else
{
printf("%c",ch);
}
}
printf("%d",i+j);
getchar();
getchar();
return ;
}
5.
#include<stdio.h>
int main()
{
char ch=;
int num=;
int i=,j=;
printf("please enter integer\n");
while ((ch=getchar())!='#')
{
switch (num=ch)
{
case '.':
putchar('!');
i++;
break;
case '!':
putchar('!');
putchar('!');
j++;
break;
default:
printf("%c",ch);
}
}
printf("%d",i+j);
getchar();
getchar();
return ;
}
6.
#include<stdio.h>
int main()
{
char ch=;
int num=;
int i=,j=;
printf("please enter integer\n");
while ((ch=getchar())!='#')
{
if(ch=='e')
{
i=;
}
else if((i==)&&(ch=='i'))
{
j++;
i=;
}
else
{
i=;
} }
printf("%d",j);
getchar();
getchar();
return ;
}
7.
#include<stdio.h>
#define a 1000
#define b 1.5
#define c 0.15
#define d 0.20
#define e 0.25
int main()
{
char ch=;
int num=;
int i=,j=;
float total_wage=0.0;
float taxes =0.0;
float net_income=0.0;
printf("please enter the number of working hours per week\n");
scanf("%d",&num);
if(num>)
{
total_wage=((num-)*b+)*a;
}
else
{
total_wage=num*a;
}
if(total_wage<)
{
taxes=total_wage*c;
}
else if(total_wage<)
{
taxes=+(total_wage-)*d;
}
else
{
taxes=+(total_wage-)*e;
}
printf("%.2f,%.2f,%.2f",total_wage,taxes,total_wage-taxes);
getchar();
getchar();
return ;
}
8.
#include<stdio.h>
#define b 1.5
#define c 0.15
#define d 0.20
#define e 0.25
int main()
{
char ch=;
int num=;
int gread=;
float a=;
float total_wage=0.0;
float taxes =0.0;
float net_income=0.0;
do
{
printf("******************************\n");
printf("enter the number corresponding to the desired pay rate or action:\n");
printf("1) $8.75/hr\t\t");
printf("2) $9.33/hr\n");
printf("3) $10.00/hr\t\t");
printf("4) $11.20/hr\n");
printf("5) quit\n");
printf("******************************\n");
scanf("%d",&gread);
switch (gread)
{
case :
a=8.75;
break;
case :
a=9.33;
break;
case :
a=10.00;
break;
case :
a=11.20;
break;
case :
break;
}
if((gread>=)&&(gread<=))
{
printf("please enter the number of working hours per week\n");
scanf("%d",&num);
if(num>)
{
total_wage=((num-)*b+)*a;
}
else
{
total_wage=num*a;
} if(total_wage<)
{
taxes=total_wage*c;
}
else if(total_wage<)
{
taxes=+(total_wage-)*d;
}
else
{
taxes=+(total_wage-)*e;
}
printf("%.2f,%.2f,%.2f\n",total_wage,taxes,total_wage-taxes);
}
else
{
printf("请重新选择正确的选项");
}
} while (gread!=);
getchar();
getchar();
return ;
}
9
第7章,c语言控制语句:分支和跳转的更多相关文章
- C控制语句--分支和跳转
		
/*C控制语句--分支和跳转*/ /*关键字 if else switch continue break case default goto 运算符:&&(且) ||(或) ?:(三元 ...
 - C语言编程入门之--第六章C语言控制语句
		
导读:本章带读者理解什么是控制语句,然后逐个讲解C语言常用的控制语句,含有控制语句的代码量多起来后就要注意写代码的风格了,本章末节都是练习题,大量的练习才能掌握好控制语句的使用. 6.1 什么是控制语 ...
 - 零基础学Python--------第2章  Python语言基础
		
第2章 Python语言基础 2.1 Python语法特点 2.11注释 在Python中,通常包括3种类型的注释,分别是单行注释.多行注释和中文编码声明注释. 1.单行注释 在Python中,使用 ...
 - “全栈2019”Java第二十七章:流程控制语句中循环语句for
		
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
 - “全栈2019”Java第二十六章:流程控制语句中循环语句do-while
		
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
 - “全栈2019”Java第二十五章:流程控制语句中循环语句while
		
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
 - “全栈2019”Java第二十四章:流程控制语句中决策语句switch下篇
		
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
 - “全栈2019”Java第二十三章:流程控制语句中决策语句switch上篇
		
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
 - “全栈2019”Java第二十一章:流程控制语句中的决策语句if
		
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
 - 第一章.C语言简介
		
C语言第一章 C语言简介 目录 一.C语言介绍 二.C语言特点 三.Hello World 四.转义符 五.占位符 六.俄罗斯方块游戏 七.文件下载 一.C语言介绍 C是一种通用的编程语言,广泛用 ...
 
随机推荐
- 给服务器做pve系统(可以通过web管理物理机集群资源与虚拟机)
			
做此系统前,可以先进入bios,设置一下ipmi的网络地址.可以远程管理服务器 输入服务器的ipmi里面配置的ip 默认账号与密码admin 点击launch 会自动下载认证文件 下载好java软件环 ...
 - mac brew redis
			
1.搜索brew search redis //出现如下 ==> Searching local taps... hiredis redis redis-leveldb redis@2.8 re ...
 - LVS负载均衡基本原理
			
负载均衡基本原理与lvs 基本介绍 1.1 负载均衡的由来 在业务初期,我们一般会先使用单台服务器对外提供服务.随着业务流量越来越大,单台服务器无论如何优化,无论采用多好的硬件,总会有性能天花板,当单 ...
 - mysql性能优化及 Comparison method violates its general contract
			
项目上嵌套结果集查询,查询的列表再根据每个id进行查询计算,嵌套的sql如下: SELECT SUM(IFNULL(t.out_rate,0)) totalOutRate, SUM(IF(IFNULL ...
 - C++ 语言程序设计(清华大学)1
			
1.回文数字判断方法(逆过来数值相等):y=y*10+x%10; x /= 10; return(x==y) 2.int rand(void)函数,所需头文件<cstdlib> ,功能是求 ...
 - IDA使用初步
			
按空格看结构图,再按空格看汇编代码,按F5反编译 shift+F12 搜索中文字符串,通过字符串所在位置定位关键信息. 双击可能出flag的语句跳转至关键字符串. 想F5生成C伪代码,先crtl+X打 ...
 - 吴裕雄--天生自然java开发常用类库学习笔记:Set接口
			
import java.util.HashSet ; import java.util.Set ; public class HashSetDemo01{ public static void mai ...
 - NO9 Linux快捷键整理及最常用命令
			
Linux快捷键整理及最常用命令 常用快捷键: Ctrl + u 删除光标之前到行首的字符 Ctrl + k 删除光标之前到行尾的字符 Ctrl + c ...
 - editplus的注册码 4.0
			
用户名:jb51.net 序列号:9A72F-84A30-82Z46-BFW79-4FTA8 用户名:freeuser 序列号:F15AD-12490-DAZF5-E4W30-E7T80 注册名:Fr ...
 - Window Server 2019 配置篇(2)- 在window server core上安装网络跟DHCP服务
			
上一篇我们已经建立了自己的域服务器 之后我们将安装一个window server core,也就是没有GUI只有命令行的window server,并在其上安装网络服务和DHCP 首先创建一个新的虚拟 ...