第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是一种通用的编程语言,广泛用 ...
随机推荐
- 拷贝Maven工程依赖的jar包出来
参考:https://blog.csdn.net/fengsheng5210/article/details/80491731
- 2-10 就业课(2.0)-oozie:3、安装2
第七步:修改oozie-site.xml cd /export/servers/oozie-4.1.0-cdh5.14.0/conf vim oozie-site.xml 如果没有这些属性,直接添加进 ...
- 关于Orcale 11g 安装过程
1.前往Oracle官网下载相应安装包 https://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.h ...
- css - flex 定义排列方向
flex-direction定义伸缩项目放置在伸缩容器的排列方向,对应有四个值: (1)row:从左到右或从右到左 (2)row-reverse:与row属性相反 (3)column:从上到下排列 ( ...
- Spring组件扫描--源码跟踪
看这篇文章之前可以先了解之前的跟踪流程,https://www.jianshu.com/p/4934233f0ead 代码过宽,可以shift + 鼠标滚轮 左右滑动查看 这篇文章主要跟踪spring ...
- 洛谷P1000 超级玛丽游戏(洛谷新手村1-1-1)
题目背景 本题是洛谷的试机题目,可以帮助了解洛谷的使用. 建议完成本题目后继续尝试P1001.P1008. 题目描述 超级玛丽是一个非常经典的游戏.请你用字符画的形式输出超级玛丽中的一个场景. *** ...
- Spark Deploy 模块
Spark Scheduler 模块的文章中,介绍到 Spark 将底层的资源管理和上层的任务调度分离开来,一般而言,底层的资源管理会使用第三方的平台,如 YARN 和 Mesos.为了方便用户测试和 ...
- List<string>绑定到DataGridView控件
问题 将一个简单的List<string>作为数据源绑定到 DataGridView myDataGridView.DataSource = myStringList; 但是只得到一个名为 ...
- c# copydata 消息
using PublicCode; using System; using System.Collections.Generic; using System.ComponentModel; using ...
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 字体图标(Glyphicons):glyphicon glyphicon-zoom-in
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...