第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是一种通用的编程语言,广泛用 ...
随机推荐
- POJ 2718 Smallest Difference dfs枚举两个数差最小
Smallest Difference Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 19528 Accepted: 5 ...
- jenkins -- 安装、任务构建
一.jenkins是什么? Jenkins是一个开源的.提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续.自动的构建/测试软件项目.监控外部任务的运行( ...
- P1069 微博转发抽奖
P1069 微博转发抽奖 转跳点:
- Mozilla Firefox 将获得包含 Tor 模式的扩展组件
据外媒报道,Firefox 浏览器可能很快就会收到一个 Tor 模式的附加组件,它将通过连接 Tor 网络显著增强隐私功能.虽然 Mozilla 和 Tor 团队的最终目标是在浏览器上实现完整功能的 ...
- iOS 枚举ENUM和OPTIONS的区别
- jvm问题汇总
1.软引用.弱引用.虚引用-他们的特点及应用场景?
- css滚动
css 滚动transform: translateY(-100px);jquery $(box).height(); //获取元素高度$(box).scrollTop();//获得元素的滚动条高度
- Tips for traing DNN
1. 一般的机器学习方法不会在train好的模型上检查training data的结果,因为DNN在training data上都没有办法获得很好的正确率, 所以要先回头看一下要对模型做什么修改, ...
- redis简单的实现(java)
1.首先新建一个maven项目,在pom.xml中添加依赖 <dependency> <groupId>redis.clients</groupId> <ar ...
- 锤子科技向OpenBSD基金会捐款195 万
导读 专注于提供 OpenBSD 资讯的网站 OpenBSD Journal 昨日报道了锤子科技成为 OpenBSD 基金会 2019 年首位铱金捐赠者的消息. 根据 OpenBSD Journal ...