C语言程序设计(基于CDIO思想)(第2版) 下载 pdf 百度网盘 epub 免费 2025 电子版 mobi 在线
C语言程序设计(基于CDIO思想)(第2版)电子书下载地址
- 文件名
- [epub 下载] C语言程序设计(基于CDIO思想)(第2版) epub格式电子书
- [azw3 下载] C语言程序设计(基于CDIO思想)(第2版) azw3格式电子书
- [pdf 下载] C语言程序设计(基于CDIO思想)(第2版) pdf格式电子书
- [txt 下载] C语言程序设计(基于CDIO思想)(第2版) txt格式电子书
- [mobi 下载] C语言程序设计(基于CDIO思想)(第2版) mobi格式电子书
- [word 下载] C语言程序设计(基于CDIO思想)(第2版) word格式电子书
- [kindle 下载] C语言程序设计(基于CDIO思想)(第2版) kindle格式电子书
寄语:
本教材以作者多年教学及教材编写的积累为基础,按照CDIO的模式编写构建。教材内容取材新颖、有趣,案例驱动,在细节上本书按照精品课程教材的要求水准打造。教材主旨为程序设计能力的培养与造就,同时兼顾程序设
内容简介:
本书采用CDIO的思想和模式编写,注重培养读者的C语言程序设计能力和独立解决问题的能力。与第1版相比,第2版在内容上进行了充实、修改和删减,并在每章增加了实验实训,目的是提高读者的综合运用能力。
全书内容分为3个层次: 第1~4章是基础篇,介绍C语言的顺序结构、选择结构和循环结构的程序设计,以及相关语法知识; 第5~7章是提升篇,进一步介绍程序设计方法、相关算法和技巧,内容包括数组、函数、变量的存储类型和编译预处理、用户定制数据类型等; 第8~9章是深入篇,介绍指针、文件的程序设计知识。第10章介绍Visual C
6.0开发环境。
本书内容丰富,注重实用,强调基础,目的是为计算机专业建设精品课程打下良好的基础。本书既可作为计算机及相关专业的教材,也可作为非计算机专业公共课程的教材。
书籍目录:
目录
第1章C语言概述
1.1C语言的产生与发展
1.1.1程序设计语言简述
1.1.2C语言的历史
1.2C语言的特点
1.3一个简单的C程序
1.4C语言程序的格式
1.5标识符、变量与常量
1.5.1标识符
1.5.2变量
1.5.3常量
1.6数据类型
1.6.1整型、实型和字符型
1.6.2C程序语句
1.6.3格式输出/输入函数
1.6.4实战演练
1.7小结
习题1
本章实验实训
第2章C程序的运算符和表达式
2.1计算a/b和a%b的值
2.1.1分析与设计
2.1.2运算符与表达式
2.2算术运算符
2.2.1算术表达式
2.2.2数据类型与运算结果的关系
2.2.3实战演练
2.3位运算符
2.3.1按位与运算
2.3.2按位或运算
2.3.3按位异或运算
2.3.4按位取反运算
2.3.5左移运算
2.3.6右移运算
2.3.7实战演练
2.4赋值运算符及表达式
2.4.1赋值运算符
2.4.2赋值表达式
2.4.3复合的赋值运算符
2.5自增自减运算符
2.5.1自增1运算实例
2.5.2实战演练
2.6其他运算符
2.6.1逗号运算符
2.6.2求字节数运算符
2.7运算符的优先级和结合性
2.7.1C语言的运算符分类
2.7.2运算符的优先级
2.7.3结合方向
2.8不同类型数据之间的转换
2.8.1自动类型转换
2.8.2强制类型转换
2.9综合设计
2.10小结
习题2
本章实验实训
第3章选择结构
3.1工程师岗位面试(关系运算符和逻辑运算符)
3.1.1分析与设计
3.1.2关系运算符和关系表达式
3.1.3逻辑运算符和逻辑表达式
3.1.4条件运算符和条件表达式
3.2判断身材是否标准(if语句)
3.2.1分析与设计
3.2.2if语句
3.2.3if语句的嵌套
3.2.4实战演练
3.3顾客点餐(switch语句)
3.3.1分析与设计
3.3.2switch语句
3.3.3使用switch语句的注意事项
3.3.4多路选择结构的比较
3.3.5实战演练
3.3.6综合设计(简单界面设计)
3.4小结
习题3
本章实验实训
第4章循环结构
4.1输出100个数(for语句)
4.1.1分析与设计
4.1.2for循环语句
4.1.3for语句的几点说明
4.1.4实例分析与设计
4.1.5实战演练
4.2统计英语成绩(while语句)
4.2.1分析与设计
4.2.2while循环语句
4.2.3实例分析与设计
4.2.4实战演练
4.3整数逆序输出(dowhile语句)
4.3.1分析与设计
4.3.2dowhile循环语句
4.3.3实例分析与设计
4.3.4用while语句和用dowhile语句的比较
4.3.5实战演练
4.4打印矩形(循环嵌套)
4.4.1分析与设计
4.4.2循环嵌套
4.4.3死循环
4.4.4实战演练
4.5找小数(break和continue语句)
4.5.1分析与设计
4.5.2break语句
4.5.3continue语句
4.5.4用for和while循环实现dowhile循环功能
4.5.5实战演练
4.5.6综合设计
4.6小结
习题4
本章实验实训
第5章数组
5.1厨师选鱼(一维数组)
5.1.1分析与设计
5.1.2一维数组
5.1.3实战演练
5.2果园里的竞赛(二维数组)
5.2.1分析与设计
5.2.2二维数组
5.2.3实战演练
5.3古诗词填空(字符数组)
5.3.1分析与设计
5.3.2字符数组
5.3.3字符串处理函数
5.3.4实战演练
5.4综合设计
5.4.1解决数据的存储问题
5.4.2找摘桃子多的人
5.4.3计算选手的总成绩
5.5小结
习题5
本章实验实训
第6章函数
6.1阶乘之和(函数的定义、调用和声明)
6.1.1分析与设计
6.1.2函数的定义和调用
6.1.3函数原型、函数声明与函数调用
6.1.4实战演练
6.2成绩统计(函数的参数传递)
6.2.1分析与设计
6.2.2函数的参数传递
6.2.3实战演练
6.3计算三角形面积(嵌套调用和递归调用)
6.3.1分析与设计
6.3.2嵌套调用
6.3.3递归调用
6.3.4实战演练
6.4迎接第15亿个婴儿(变量的作用域)
6.4.1分析与设计
6.4.2局部变量和全局变量
6.4.3实战演练
6.5构造整数(变量的存储类型)
6.5.1分析与设计
6.5.2局部变量的存储类型
6.5.3全局变量的存储类型
6.5.4实战演练
6.6快速计算(编译预处理)
6.6.1分析与设计
6.6.2宏定义命令
6.6.3文件包含
6.6.4实战演练
6.7综合设计(诗词十二宫格游戏)
6.7.1分析与设计
6.7.2完整的源程序代码
6.8小结
习题6
本章实验实训
第7章自定义数据类型
7.1今天是星期几(枚举类型)
7.1.1分析与设计
7.1.2枚举类型的定义与引用
7.2模拟显示数字时钟(结构体类型)
7.2.1分析与设计
7.2.2结构体类型的定义与引用
7.2.3结构体数组及其使用
7.2.4结构体变量做参数
7.3学生成绩表的制作(共用体类型)
7.3.1分析与设计
7.3.2共用体类型的定义与引用
7.4实战演练
7.5综合设计
7.5.1分析与设计
7.5.2完整的源程序代码
7.6小结
习题7
本章实验实训
第8章指针
8.1用函数实现变量值的交换
8.1.1分析与设计
8.1.2指针的定义及运算
8.2数组与指针
8.2.1指向一维数组的指针
8.2.2指针指向数组时的运算
8.2.3指向二维数组的指针
8.3用指针操作字符串
8.3.1分析与设计
8.3.2使用字符数组与字符指针变量的区别
8.4指针与函数
8.4.1用指向函数的指针实现函数调用
8.4.2返回指针值的函数
8.5指针数组和指向指针的指针
8.5.1指针数组的概念
8.5.2指向指针的指针
8.5.3指针数组做main()函数的参数
8.6实战演练——验证卡布列克运算
8.7综合设计——用指针实现数据的动态管理
8.7.1分析与设计
8.7.2程序
8.7.3动态数据管理在插入、删除操作中的优点
8.8小结
习题8
本章实验实训
第9章文件
9.1学生数据文件的创建与读取
9.1.1分析与设计
9.1.2文件操作入门
9.2文件的概念
9.2.1文件的定义
9.2.2文件的分类
9.2.3文件缓存区
9.2.4文件类型与文件指针
9.2.5文件的操作过程
9.3文件的打开和关闭
9.3.1文件的打开
9.3.2文件的关闭
9.4文件的读/写操作
9.4.1字符读/写函数fgetc和fputc
9.4.2字符串读/写函数fgets和fputs
9.4.3格式化读/写函数fscanf和fprintf
9.4.4数据块读/写函数fread和fwrite
9.5文件的定位操作
9.6文件的出错检测
9.7实战演练
9.8综合设计
9.8.1分析与设计
9.8.2完整的源程序代码
9.9小结
习题9
本章实验实训
第10章Visual C 6.0开发环境
10.1开发环境概述
10.2菜单栏简介
10.3开发环境的工具栏
10.4VC 6.0的主要窗口
10.5新建、编辑、编译、连接、运行一个C程序
10.6常见问题处理
习题参考答案
附录AASCII码表
附录BC语言中的关键字
附录CC标准库函数
参考文献
作者介绍:
暂无相关内容,正在全力查找中
出版社信息:
暂无出版社相关信息,正在全力查找中!
书籍摘录:
第3章选 择 结 构
前面两章已经介绍了顺序结构的程序设计,在大多数情况下,由于数据处理的需要,程序不会是单一的顺序结构,而是顺序、选择、循环3种结构的复杂组合。在生活中,人们在干某件事情时经常要根据某些条件来做出不同的抉择,在程序设计中也需要通过对一些条件的判断来选择处理不同的数据或完成特定的功能,这就是条件语句的任务。本章介绍如何用C语言的条件语句实现选择结构。为此先介绍用来描述条件的关系和逻辑表达式,接着介绍实现选择结构的条件语句(if和switch)。if语句一般适用于两路选择,也可以通过嵌套形式实现多路选择。switch语句能方便地实现多路选择。3.1工程师岗位面试(关系运算符和逻辑运算符)上海一家IT企业招聘C/C 开发工程师,满足以下任职要求者可以获得面试机会。(1) 学历: 计算机相关专业毕业,硕士及以上学历; (2) 工作年限: 两年以上C/C 开发工程师岗位从业经验; (3) 业务要求: 熟练或精通C/C 和数据压缩算法。
3.1.1分析与设计这家企业招聘C/C 开发工程师的条件和描述这些条件的表达式如表3.1所示。
表3.1任职要求和对应的表达式
招 聘 条 件表达式
硕士、博士eduction=='M' ‖ eduction=='D'在C/C 开发工程师岗位从业两年以上working_life>2对C/C 和数据压缩算法熟练或精通skill_level>2 && skill_level<=4
学历: G.本科M.硕士D.博士; 工作年限: 用整型数表示; 熟练程度: 1.初学 2.一般 3.熟练 4.精通
满足以上3个条件,即相应表达式的值为真,那么求职者就可以接到面试通知。从以上面试条件中我们可以观察到,每个条件都涉及多个判断(子条件),而这些判断之间存在着一定的逻辑关系,后面介绍的关系运算和逻辑运算就是描述它们的逻辑关系。另外,程序中的if语句用于控制求职者是否满足面试条件,并输出相应的结果。例31谁会得到面试机会。
#include "stdio.h"
void main()
{
char eduction;
int working_life, skill_level;
printf("求职信息\n");
printf("学历(G.本科 M.硕士 D.博士): ");
scanf("%c",&eduction);
if(eduction=='M'‖eduction=='D')//筛查学历
{
printf("C/C 开发工程师任职年限: ");
scanf("%d", &working_life);
if(working_life>2) //筛查工作年限
{
printf("数据压缩算法(1.初学 2.一般 3.熟练 4.精通):");
scanf("%d",&skill_level);
if(skill_level>2&&skill_level<=4) //筛查业务
printf("恭喜你获得面试机会!\n"); //符合所有条件
else
printf("抱歉,你熟练程度不够!\n");
}
else
printf("抱歉,你任职年限不够!\n");
}
else
printf("抱歉,你学历尚浅!\n");
}
运行结果:
求职信息
学历(G.本科 M.硕士 D.博士):M
C/C 开发工程师任职年限:3
数据压缩算法(1.初学 2.一般 3.熟练 4.精通):4
恭喜你获得面试机会!
程序运行后的显示效果如图3.1所示。
图3.1程序运行结果
3.1.2关系运算符和关系表达式关系表达式是由关系运算符、括号、常量、变量和函数等运算对象构成的式子。在C语言中关系运算符共有6种,如表3.2所示。
表3.2关系运算符
关系运算符含义优先级结合性
<小于<=小于或等于>大于>=大于或等于==等于!=不等于
这几个运算符优先级相同,但比下面高这两个运算符优先级相同,但比上面低左结合
通过关系运算符可以写出关系表达式,关系表达式的一般形式如下:
表达式关系运算符表达式
例31中出现的working_life>2就是关系表达式。由于关系运算符的优先级低于算术运算符,高于赋值运算符,所以下面的关系表达式有其相应的等价式子。
a>b c等价于a>(b c)
a>b==c等价于(a>b)==c
a=b>c等价于a=(b>c)关系运算实际上是比较运算。关系表达式的值是一个逻辑值,即“真”或“假”。在C语言中没有专用的逻辑型数据,因此常用整型变量来存放关系的运算结果。若关系表达式成立,则该表达式的值为“真”,用整数“1”表示; 若关系表达式不成立,则该表达式的值为“假”,用整数“0”表示。例如关系表达式2==3的值为0,5>3的值为1,(a=3)>(b=5)的值为0。3.1.3逻辑运算符和逻辑表达式
逻辑表达式是由逻辑运算符、括号和其他运算对象构成的式子,它的值反映了逻辑运算的结果。C语言中的逻辑运算符有3种,如表3.3所示。
表3.3逻辑运算符
逻辑运算符含义优先级结合性
!逻辑非,单目高于&&和‖右结合&&逻辑与,双目高于‖左结合‖逻辑或,双目低于&&左结合
通过逻辑运算符可以写出逻辑表达式,逻辑表达式的一般形式如下:
表达式逻辑运算符表达式或逻辑运算符表达式
例如,a‖b、age>25 &&sex=='f'都是逻辑表达式。运算符“&&”和“‖”的优先级低于算术运算符和关系运算符,而运算符“!”的优先级高于算术运算符和关系运算符。在例31中用3个逻辑表达式来选择符合条件的求职者。3种逻辑运算符的运算规则如下。(1) a&&b: 当a和b都为真时结果为真,否则结果为假。(2) a‖b: 当a和b至少一个为真时结果为真,当a和b都为假时结果为假。(3) !a: 当a为真时结果为假,当a为假时结果为真。表3.4为逻辑运算的真值表,它表示a和b的值在不同组合下各逻辑运算的值。
表3.4逻辑运算的真值表
ab!a!ba&&ba‖b真真假假真真真假假真假真假真真假假真假假真真假假
例32设a=4,b=5,c=5,写出下面各逻辑表达式的值。a b<c&&b==c值为0a‖b c&&b-c值为1!(a>b)&&!c‖1值为1!(x=a)&&(y=b)&&0值为0!(a b) c-1&&b c/2值为1说明: (1) 逻辑表达式中任何非零的数值都被作为“真”。(2) 在逻辑表达式的求解中,并不是所有的逻辑运算符都会被执行。
① a&&b&&c : 只有a为真时才需要判断b的值,只有a和b都为真时才需要判断c的值。② a‖b‖c : 只要a为真,就不必判断b和c的值,只有a为假时才需要判断b。a和b都为假时才判断c。当左值可以决定整个表达式的值时就不再求右边表达式的值,因此对于与(&&)运算来说,左值为0,就不再继续后面的运算; 对于或(‖)运算来说,左值为1,就不再继续后面的运算,这样可以提高运行速度,有的书上把这一特点叫“逻辑运算的短路特性”,例如:
(m=a>b)&&(n=c>d)当a=1,b=2,c=3,d=4,m和n的原值为1时,由于“a>b”的值为0,因此m=0,即可判断出表达式(m=a>b)&&(n=c>d)的值为0,而不必再求“n=c>d”的值,因此n的值不是0而仍保持原值1。3.1.4条件运算符和条件表达式条件表达式是用条件运算符(? :)把3个表达式连接起来的式子,其形式如下:
表达式1?表达式2: 表达式3
条件运算符(?:)要求3个操作数,所以也叫三目运算符。条件表达式的求解过程是先判断表达式1的值是否为真(非0),若为真,则计算表达式2,表达式2的值就是整个条件表达式的值; 若为假(0),则计算表达式3,表达式3的值就是整个条件表达式的值。例33输入学生的卷面成绩和平时成绩,判断学生的总评成绩是否及格(总评成绩=卷面成绩×60% 平时成绩×40%,且总评成绩60分以上为及格)。
#include "stdio.h"
void main()
{
int g1,g2,grade;
printf("请输入卷面成绩和平时成绩: ");
scanf("%d%d",&g1,&g2); //不能打负分
grade=(int)(g1*0.6 g2*0.4);
printf("考试结果: %s,%d\n", grade>=60 ? "及格":"不及格",grade);
}
运行结果:
8580
考试结果: 及格
例34将输入的字符由大写字母转换成小写字母。分析: 使用条件表达式“ch=(ch>='A'&&ch<='Z')?(ch 32):ch”来判断是否为大写字母,如果字符变量ch的值为大写字母,则条件表达式的值为“ch 32”,即相应的小写字母,32是小写字母和大写字母ASCⅡ码的差值。如果ch的值不是大写字母,则条件表达式的值为ch,即不进行转换。
#include "stdio.h"
void main ( )
{
char ch;
printf("请输入一个字符: ");
scanf("%c",&ch); /*输入一个字符*/
ch=(ch>='A'& &ch<='Z')?(ch 32):ch;/*将输入的大写字母转换为小写字母*/
printf("%c\n",ch); /*输出后得到的字母*/
}
运行结果如下:
请输入一个字符: a
a
请注意条件运算符的结合性为右结合。例如“int a=1,b=4,c=3,d=2;”,条件表达式a<b?a:c<d?c:d的值是什么?由于条件运算符的右结合性,a<b?a:c<d?c:d相当于a<b?a:(c<d?c:d),因为a<b为真,所以整个条件表达式的值就为a的值1。如果a<b为假,那么再去计算后面的(c<d?c:d),这里a<b为真,因此就不必计算后面的条件表达式(c<d?c:d)。3.2判断身材是否标准(if语句)输入某人的身高和体重,按照下面的方法确定此人的体重是标准、过胖还是过瘦。(1) 标准体重=(身高-110)kg; (2) 超过标准体重5kg为过胖; (3) 低于标准体重5kg为过瘦。3.2.1分析与设计在设计该程序的代码时,使用weight代表体重、height代表身高,因此标准体重计算方法为height-110。若某人的体重超过标准体重5kg,即weight>height-105,那么表明此人超重; 若某人的体重低于标准体重5kg,即weight<height-115,那么表明此人过瘦; 如果某人的体重为height-105≤weight≤ height-115,表明此人的身材标准。例35你的身材标准吗?
#include "stdio.h"
void main()
{
float height,weight;//height为身高变量,weight为体重变量
printf("请输入你的身高和体重: ");
scanf("%f,%f",&height,&weight);
if(height>0&&weight>0) //height、weight不可为负数
{
if(weight>height-105) //判断是超重、标准还是偏轻
printf("你的体重超重,请注意减肥。\n");
else if(weight<height-115)
printf("你的体重偏轻,请注意营养。\n");
else
printf("你的体重刚好,请保持。\n");
}
else
printf("输入的数据不合格\n");
}
运行结果1如下:
请输入你的身高和体重: 165,50
你的体重刚好,请保持。
运行结果2如下:
请输入你的身高和体重: 160,60
你的体重超重,请注意减肥。
运行结果3如下:
请输入你的身高和体重: 175,50
你的体重偏轻,请注意营养。
3.2.2if语句if语句也称为条件语句,用于实现程序的选择结构。if语句通过判断给定的条件(一般是关系表达式或逻辑表达式)是否成立来控制执行不同的程序语句,完成相应的功能。if语句有3种语法形式,构成了3种选择结构。1. 简单选择结构简单选择结构也称单分支结构,语句形式如下:
if(表达式)
语句;
该语句的功能是如果表达式的值为真(非0值),则执行语句; 如果表达式的值为假(0值),则跳过该语句继续执行后续程序。其执行过程如图3.2所示。
图3.2单分支结构
例如:
if(x>y)
printf("%d\n",x);
说明: if(表达式)这行后面不要添分号,因为在这里if关键字这行和其后面一行是联系在一起而构成一条完整的语句,加分号就把该语句变为两条语句了。例如:
if(x>y);//这是一条语句,";"是语句结束符
printf("%d",x); //这是另一条语句
例36超市在打折促销商品,若购物金额在500~1000元打8折,超过1000元打7折,低于500元不打折,编程序输入购物金额,计算并输入折扣金额。分析: 首先设购物金额为total,按照题目要求打折范围被划分为3段,即若0<total<500,不打折; 若500≤total≤1000,打8折; 若total>1000,打7折。
#include "stdio.h"
void main ()
{
float total; //total为购物金额
printf("请输入购物金额: ");
scanf("%f",&total); //输入购物金额
if(0<total && total<500)
printf("折扣后金额: %8.2f\n", total); //无折扣
if(500<= total && total<=1000)
printf("折扣后金额: %8.2f\n", total*0.8); //打8折
if(total>1000)
printf("折扣后金额: %8.2f\n", total*0.7); //打7折
if(total<=0)
printf("数据非法\n");
}
运行结果1如下:
请输入购物金额: 400
折扣后金额: 400.00
运行结果2如下:
请输入购物金额: 800
折扣后金额: 640.00
运行结果3如下:
请输入购物金额: 2000
折扣后金额: 1400.00
2. 二路选择结构二路选择结构也称双分支结构,语句形式为如下:
图3.3二路选择结构
if(表达式)
语句1;
else
语句2;
该语句的功能是如果表达式的值为真(非0值),则执行语句1,否则执行语句2。其执行过程如图3.3所示。说明: 语句1和语句2可以是一个语句也可以是复合语句(用大括号括起来的多个语句)。例37目前中国男性的就业年龄在16~60岁,输入某人的年龄,判断他是否适合就业。
#include "stdio.h"
void main ()
{
int age; //age为年龄
printf("请输入你的年龄: ");
scanf("%d",&age); //输入年龄,正数
if(age<16)
printf("你还太年轻,不宜工作\n");
else
{
if(16<=age && age<=60)
printf("你适合就业\n");
else
printf("你可以安享退休生活了\n");
}
}
运行结果1如下:
请输入你的年龄: 15
你还太年轻,不宜工作
运行结果2如下:
请输入你的年龄: 20
你适合就业
运行结果3如下:
请输入你的年龄: 61
你可以安享退休生活了
例38输入年号,判断该年是否为闰年,若是闰年则输出“Y”,否则输出“N”。分析: 若年号能被4整除但不能被100整除,则该年是闰年; 年号能被400整除也是闰年。由此,判断闰年的逻辑表达式如下:
(year%4==0&&year%100!=0)‖year%400==0
#include "stdio.h"
void main()
{
int year;
printf("请输入一个年份: "); //输入年号到变量year中
scanf("%d",&year);
if((year%4==0&&year%100!=0)‖year%400==0)
printf("Y \n"); //是闰年
else
printf("N \n"); //不是闰年
}
运行结果1如下:
请输入一个年份: 2011
N
运行结果2如下:
请输入一个年份: 2004
Y
3. 多路选择结构多路选择结构也称多分支结构,语句形式为如下:
if(表达式1)
语句1;
else if(表达式2)
语句2;
else if(表达式3)
语句3;
…
else if(表达式m)
语句m;
[else
语句n; ]
该语句将从上至下依次判断各表达式的值,当出现某个表达式的值为真时则执行其对应的语句,然后跳到整个if语句之外继续执行后续程序。如果所有的表达式值均为假,则执行else后的语句n,接着继续执行后续程序。其执行过程如图3.4所示。例如:
if (number>500)
cost=0.15;
else if(number>300)
cost=0.10;
else if(number>100)
cost=0.075;
else if(number>50)
cost=0.05;
else
cost=0;
图3.4多路选择结构
例39某公司对销售人员的工资实行底薪1000元加月销售额提成的政策,销售额与提成的比例关系如表3.5所示(单位: 元)。
表3.5销售提成表
销售额sales提成比例销售额sales提成比例
sales<10000没有提成50000≤sales<1000003%10000≤sales<500002%sales≥1000004%
分析: (1) 定义变量sales用来存放销售人员当月的销售额。(2) 提示用户输入销售人员当月的销售额,并用scanf函数接受用户输入的销售人员当月的销售额。(3) 根据表3.5的规则计算销售人员当月的工资(底薪 销售额×提成比例),并输出。
#include "stdio.h"
void main()
{
const float B_PAY=1000.0; //定义底薪
float sales,income; //定义销售额、工资
printf("请输入销售人员的销售额: ");
scanf("%f",&sales);
if(sales<0)
{
printf("输入的数据非法\n");
return;
}
if(sales<10000)
income= B_PAY;
else if(sales<50000)
income= B_PAY sales*(float)0.02;
else if(sales<100000)
income= B_PAY sales*(float)0.03;
else
income= B_PAY sales*(float)0.04;
printf("本月工资=%.2f \n ", income);
}
运行结果1如下:
请输入销售人员的销售额: -1000
输入的数据非法
运行结果2如下:
请输入销售人员的销售额: 5000
本月工资=1000.00
运行结果3如下:
请输入销售人员的销售额: 20000
本月工资=1400.00
运行结果4如下:
请输入销售人员的销售额: 60000
本月工资=2800.00
运行结果5如下:
请输入销售人员的销售额: 200000
本月工资=9000.00
说明: (1) 多路选择结构为多选一的结构。(2) 如果所有条件均不成立,也不需要完成任何操作,则可以省略else子句。对if语句的几点说明如下: (1) 在if语句的3种形式中,在if后面都有表达式,一般为混合型表达式,有时为单纯的逻辑表达式、关系表达式或算术表达式。(2) 在第2、第3种形式的if语句中,在每个else前面有一个分号,整个语句结束处有一个分号。(3) 在if和else后面可以只含有一个内嵌的操作语句,也可以有多个操作语句,但要用大括号将几个语句括起来成为一个复合语句,此时不用加分号。3.2.3if语句的嵌套前面讲到的3种形式是if语句的基本形式,如果在if语句中又包含一个或多个if语句则称为if语句的嵌套。其一般形式如下:
if(表达式)//外层
if语句; //内层
或者
if(表达式) //外层
if 语句; //内层
else
if 语句; //内层
例310学校进行成绩分级管理,取消分数制,改为成绩分级评定。具体办法是小于60分为E类; 60~70分(不含70分)为D类; 70~80分(不含80分)为C类; 80~90分(不含90分)为B类; 90分以上为A类。设计一个程序,对输入的成绩进行等级划分。分析: 如果用多分支if语句进行判断,过程如下。(1) 看输入的成绩是否小于60分,若是则为E类,否则转(2)。(2) 看输入的成绩是否小于70分,若是则为D类,否则转(3)。(3) 看输入的成绩是否小于80分,若是则为C类,否则转(4)。(4) 看输入的成绩是否小于90分,若是则为B类,否则转(5)。(5) 该成绩为A类。流程图如图3.5所示。
图3.5应用第3种if语句的执行过程
通过该程序的执行流程图可以看出,如果一个学生的成绩为95分,那么至少要在该程序中进行4次比较才能得到终结果。倘若同学们的成绩普遍很好,那么用这个程序进行成绩等级划分的效率是不高的,因为它多要比较4次才能得到终结果。如果应用if语句的嵌套,就可以减少比较次数,从而提高程序的效率,程序的执行流程如图3.6所示。
图3.6应用if语句嵌套的一种执行过程
从该流程图中不难看出,应用if嵌套语句可以减少程序的平均比较次数。因为它多只要比较3次就能得到终结果。同样是成绩普遍很好的同学,应用这个程序来进行成绩等级划分的效率要比图3.5所示的效率高。如果在大型系统中,需要比较的次数更多,那么这个程序的优势将更加明显。具体代码如下:
#include "stdio.h"
void main()
{
int score;
printf("请输入成绩: \n");
scanf("%d",&score); /*输入成绩存储到变量score中*/
if(score<80) /*判断成绩是否小于80分*/
if(score<70) /*判断成绩是否小于70分*/
if(score<60) /*判断成绩是否小于60分*/
printf("E\n"); /*如果成绩小于60分,对应等级为E*/
else
printf("D\n"); /*如果成绩小于70分,对应等级为D*/
else
printf("C\n"); /*如果成绩小于80分,对应等级为C*/
else /*判断成绩是否小于90分*/
if(score<90) /*如果成绩小于90分,对应等级为B*/
printf("B\n");
else /*如果成绩大于90分,对应等级为A*/
printf("A\n");
}
运行结果1如下:
请输入成绩: 59/*59为用户输入*/
E
运行结果2如下:
请输入成绩: 68/*68为用户输入*/
D
运行结果3如下:
请输入成绩: 72/*72为用户输入*/
C
运行结果4如下:
请输入成绩: 86/*86为用户输入*/
B
运行结果5如下:
请输入成绩: 93/*96为用户输入*/
A
在if语句嵌套结构中要注意if和else的配对,配对原则为else总是与它上面近的同一复合语句中的未配对的if语句配对。以下程序段得到的配对关系为第①个if和第③个else配对; 第②个if和第②个else配对; 第③个if和第①个else配对; 第④个if和第④个else配对。
①if(score<80)
②if(score<70)
③if(score<60)
printf("E\n");
①
else
printf("D\n");
②else
printf("C\n");
③else
④if(score<90)
printf("B\n");
④else
printf("A\n");
注意: 配对时将从个else开始向上寻找与其配对的if语句。3.2.4实战演练
表3.6邮资标准
重量(千克)收费标准(元)weight≤101.0010<weight≤200.9020<weight≤300.80
某邮局对邮寄包裹有以下规定: 若包裹的长、宽、高任一尺寸超过1m或重量超过30kg,不予邮寄; 对可以邮寄的包裹每件收取手续费0.5元,再加上根据表3.6按重量weight计算的邮资,请编写程序计算包裹的邮寄资费。请读者根据题意将程序补充完整。
#include "stdio.h"
void main()
{
float length,height,width,weight,postage,r ; /*length、height、width分别为长、宽、高; weight为包裹的重量; postage为应付邮资; r为能否邮寄的标志变量*/
printf("请输入包裹的长、宽、高、重量: ");
scanf("%f%f%f%f",&length,&width,&height,&weight);
if()//长、宽、高任一尺寸超过1m或重量超过30kg,不予邮寄
r=-1;
else if() //如果重量<=10,收费标准为1.0元
r=1.0;
else if() //如果重量<=200,收费标准为0.9元
r=0.9;
else if() //如果重量<=30,收费标准为0.8元
r=0.8;
if() //如果r==-1,不予邮寄
printf("包裹不符合要求,不予邮寄。\n");
else //计算所付邮资
{
postage=;
printf("你应该支付的邮资为: %f元。\n",postage);
}
}
运行结果如下:
请输入包裹的长、宽、高、重量: 0.50.816
你应该支付的邮资为: 6.500000元
3.3顾客点餐(switch语句)快餐店推出新套餐系列供顾客点餐,可供选择的套餐有4种: A餐,超值全家桶 大薯,78元; B餐,超值全家桶 大鸡米花,85元; C餐,超值全家桶 新奥尔良烤鸡腿堡,83.5元; D餐,超值全家桶 葡式蛋挞/黄桃蛋挞,93元。请编程实现顾客点餐和价格结算功能。3.3.1分析与设计程序可以先显示4种套餐的价目表,然后接收从键盘输入的套餐号,确认输入无误再接收点餐套数,根据套餐号确定相应的单价,然后通过单价和数量计算顾客需支付的金额并输出。如果输入的数据不符合要求,则应给出提示。该题目可以用3.2节介绍的多路选择结构实现,但用switch语句同样可以实现多路选择,而且更加简洁、易读。例311顾客点快餐。
#include "stdio.h"
void main()
{
char meal;
int n=0;
float price;
printf(" 套餐及价目表\n"); //显示价目表
printf("A餐,超值全家桶 大薯,78元\n");
printf("B餐,超值全家桶 大鸡米花,85元\n");
printf("C餐,超值全家桶 新奥尔良烤鸡腿堡,83.5元\n");
printf("D餐,超值全家桶 葡式蛋挞/黄桃蛋挞,93元\n");
printf("请输入套餐号: ");
scanf("%c",&meal); //从键盘输入套餐号
if(meal>='A' && meal<='D')
{
switch(meal) //根据套餐号确定单价
{
case 'A': price=78;
break;
case 'B': price=85;
break;
case 'C': price=83.5;
break;
case 'D': price=93;
break;
}
printf("请输入点餐套数: ");
scanf("%d",&n); //从键盘输入点餐套数
if(n<=0)
printf("点餐数量不对!\n");
else
printf(" \n",price*n); //计算支付金额并输出
}
else
printf("只有以上4种套餐,请输入A~D\n");
}
运行结果:
套餐及价目表
A餐,超值全家桶 大薯,78元
B餐,超值全家桶 大鸡米花,85元
C餐,超值全家桶 新奥尔良烤鸡腿堡,83.5元
D餐,超值全家桶 葡式蛋挞/黄桃蛋挞,93元
请输入套餐号: A
请输入点餐套数: 2
请支付156.0元
程序运行效果如图3.7所示。
图3.7顾客点餐结果
当然还可以用数组实现更灵活的设计,在学习了第5章后大家可以尝试一下。3.3.2switch语句switch语句的一般形式如下:
switch(表达式)
{
case 常量表达式1: 语句1;
break;
case 常量表达式2: 语句2;
break;
…
case 常量表达式n: 语句n;
break;
[default:语句n 1;]
}
switch语句的功能是先计算switch后面的表达式的值,再依次与1~n常量表达式的值进行比较,当表达式的值与某个case后的常量表达式的值相等时执行该case后的语句,然后执行break语句跳出switch语句。如果所有常量表达式的值都不等于switch后面表达式的值,则执行default后的语句。例如:
switch(grade)
{
case 'A ': printf("85~100\n");
break;
case 'B ': printf ("70~84\n");
break;
case 'C ': printf ("60~69\n");
break;
case 'D ': printf ("<60\n");
break;
default: printf ("error\n");
}
switch语句的执行过程如图3.8所示。
图3.8switch语句的执行过程
注意: 在每一个case中都应使用break语句提供一个出口,使流程跳出switch语句。若没有使用break语句,则从个满足条件的case后面的语句起所有case后的语句都会被执行,直至遇到break语句,这种情况叫落空。请看下面去掉break语句的例子(例313)。
例312某足球队按照运动员的体重配给含蛋白质和脂肪食物,标准为: 体重50~69kg配高蛋白、中度脂肪食物; 70~89kg配高蛋白、低脂肪食物; 90~120kg只配高蛋白食物。编程为输入的运动员体重选择符合标准的食物配给方案。
#include "stdio.h"
void main()
{
int w;
printf("请输入运动员的体重: ");
scanf("%d",&w);
if(w<50‖w>120)
printf("体重不符合标准,转行吧!\n");
else
{
switch(w/10)
{
case 5:
case 6:printf("配高蛋白、中度脂肪食物\n");break;
case 7:
case 8:printf("配高蛋白、低脂肪食物\n");break;
default:printf("只配高蛋白食物\n");break;
}
}
}
例313case后无break语句的例子(落空)。
#include "stdio.h"
void main()
{
int c=8;
switch(c<10?1:c<25?2:c<35?3:4) //通过条件表达式确定switch表达式的值
{
case 1: printf("%d℃有点冷\n",c);
case 2: printf("%d℃正合适\n",c);
case 3: printf("%d℃有点热\n",c);
default: printf("%d℃太热了\n",c);
}
}
c的值为8,则计算switch后的条件表达式c<10?1:c<25?2:c<35?3:4,其值为1,对应的case语句为case 1。由于每个case语句后都没有break语句,则将从case 1开始后面的所有语句都会被执行。因此运行结果如下:
8℃有点冷
8℃正合适
8℃有点热
8℃太热了
3.3.3使用switch语句的注意事项用户在使用switch语句时应注意以下几个问题。(1) case后的常量表达式的值应该与switch后面的表达式的值类型一致,并且跟在switch后面的表达式的值和所有case后面的常量表达式的值都必须为整型或字符型,不允许为浮点型。(2) 同一个switch语句中所有case后面的常量表达式的值要互不相同,否则会出现值存在语法错误。(3) 当switch表达式的值与某一个case子句中的常量表达式的值相匹配时,就执行此case子句中的内嵌语句,若所有的case子句中的常量表达式的值都不能与switch表达式的值匹配,就执行default子句的内嵌语句。(4) 各个case和default子句的先后顺序变动不会影响程序的执行结果,如果default子句前置,后边要加break语句结果才正确,只有后的分支语句可以不加break且不影响结果。(5) 多个case可以共用一组执行语句。例如:
case 4:
case 5:
case 6:
case 7:
case 8:
case 9: printf("很遗憾,没有奖品给你");
当输入4、5、6、7、8、9时都在屏幕上显示“很遗憾,没有奖品给你”。(6) 每个case后面可以是一个语句,也可以是多个语句,还可以没有语句。当是多个语句时可以不用大括号括起来。3.3.4多路选择结构的比较switch结构和ifelseifelse多路选择结构都能实现多分支选择结构,但两者各有优势。ifelseifelse多路选择结构比switch的条件控制更强大一些: ifelseifelse多路选择结构可以依照各种逻辑运算的结果进行流程控制,而switch只能进行==(相等)判断,并且只能是整数判断。switch的结构比ifelseifelse多路选择结构更清晰。注意: 两者都要尽量避免用得过多、过长,尤其不要嵌套得太多,否则会大大增加程序的分支,使逻辑关系显得混乱,不易维护,易出错。3.3.5实战演练编程查找途经某学院的公交车的路线信息。用户输入第几路公交车,程序将输出其所经路线上的主要站点信息。表3.7是途经学院的公交车路线信息。
表3.7公交车路线信息
公交车路数线路途经的主要站点70路西南林业大学、石闸立交、环城北路、小菜园立交、黄土坡、津桥学院、海源寺83路昆明北站、塘子巷、交三桥、莲花宾馆、黄土坡、国际花园、津桥学院、海源寺116路南屏街、昆师路、麻园、黄土坡、高新区(津桥学院)、昌源路、滇缅大道K13路南屏街、小西门、西园路口、洪家营、高新区(津桥学院)、商院路、海源寺
提示: 输入公交车路数,用switch语句选择匹配表3.7的路数,然后输出途经路线信息。若输入的路数不在该表之列,则给出提示。3.3.6综合设计(简单界面设计)例314从键盘上输入两个数和一个运算符( : 加,-: 减,*: 乘,/: 除),从而构成一个二元运算表达式,计算其值并输出运算结果。分析: 首先输入两个数和运算符,然后根据运算符进行相应的运算,但做除法时应判断除数是否非法(为0),如果运算符不是 、-、*、/,则同样是非法。
#include "stdio.h"
void main()
{
float n1,n2; //存放两个数的变量
int tag=0; //运算合法标志,0: 合法,1: 非法
char op; //运算符变量
float result; //运算结果变量
printf("表达式计算\n");
printf("输入两个数和一个运算符( : 加,-: 减,*: 乘,/: 除),\n");
printf("构成简单表达式,例如,3.5 7.2\n");
scanf("%f%c%f",&n1,&op,&n2);
switch(op)
{
case ' ': result=n1 n2;
break;
case '-': result=n1-n2;
break;
case '*': result=n1*n2;
break;
case '/': if(!n2) //判断除数是否为0
{
printf("除数是0,非法!\n");
tag=1; //置运算非合法标志
}
else
result=n1/n2;
break;
default: printf("运算符非合法!\n");
tag=1; //置运算非合法标志
}
if(!tag)
printf("运算结果: %.2f %c %.2f = %.2f\n",n1,op,n2,result);
}
运行结果:
表达式计算
输入两个数和一个运算符( : 加,-: 减,*: 乘,/: 除),
构成简单表达式,例如,3.5 7.2
3.5 7.2
运算结果: 3.50 7.20=10.70
程序运行效果如图3.9所示。
图3.9表达式运算结果
3.4小结本章详细介绍了选择结构,用于实现选择结构的语句是if语句和switch语句。它们根据条件判断的结果选择所要执行的程序分支,其中条件可以用表达式来描述,如关系表达式和逻辑表达式。if语句有3种形式,分别如下。(1) 简单选择结构。语句形式为:
if(表达式)
语句;
(2) 二路选择结构。语句形式为:
if(表达式)
语句1;
else
语句2;
(3) 多路选择结构。语句形式为:
if(表达式1)
语句1;
else if(表达式2)
语句2;
else if(表达式3)
语句3;
…
else if(表达式m)
语句m;
else
语句n;
switch语句形式:
switch(表达式)
{
case 常量表达式1: 语句1;
break;
case 常量表达式2: 语句2;
break;
…
case 常量表达式n: 语句n;
break;
default:语句n 1;
}
习题31. 选择题(1) 用逻辑表达式表示“大于10而小于20的数”,正确的是()。
A. 10<x< 20B. x> 10 ‖ x< 20C. x>10 &x< 20D. !(x<= 10 ‖ x>= 20)(2) x=1,y=1,z=1,执行表达式w= x‖ y&& z后x、y、z的值分别为()。A. x=2, y=1, z=1B. x=2, y=2, z=2C. x=1, y=1, z=1D. x=2, y=2, z=1(3) 已知“int a = 10, b = 11, c = 12; ”,表达式(a b)<c&&b==c的值是()。A. 2B. 0C. -2D. 1(4) 为了避免在嵌套的条件语句ifelse中产生歧义,C语言规定的ifelse语句的匹配原则是()。A. else子句与所排位置相同的if配对B. else子句与其之前近的尚未配对的if配对C. else子句与其之后近的if配对D. else子句与同一行上的if配对(5) 判断char型变量ch是否为大写字母的正确表达式是()。A. 'A'<=ch<='Z'B. (ch>='A')&(ch<='Z')C. (ch>='A')&&(ch<='Z')D. ('A'<=ch)and('Z'<=ch)(6) 为表示关系x≥y≥z,应使用的C语言表达式为()。A. (x>=y)&&(y>=z)B. (x>=y)and (y>=z)C. x>=y>=zD. (x>=y)&(y>=z)(7) 设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是()。A. x&&yB. x<=y
C. x‖y z&&y-zD. !((x<y)&&!z‖1)(8) 以下运算符中优先级的运算符为()。A. &&B. &C. !=D. ‖(9) 下列程序段执行后x的值为()。
int x,y=5;
x= y;
if(x==y)
x*=2;
if(x>y)
x ;
else
x=y-1;
A. 5B.10C. 13D. 9 (10) 根据下面的程序段判断x的取值在()范围内时将打印字符串“第二”。
if(x>0)
printf("");
else if(x>-3)
printf("第二");
else
printf("第三");
A. x>0B. x>-3
C. x<=-3D. x<= 0&x>-3 (11) 已知“int x=10,y=20,z=30;”,以下语句执行后x、y、z的值是()。
if(x>y)
z=x;
x=y;
y=z;
printf("%d,%d,%d",x,y,z);
A. 10、20、30B. 20、30、30C. 20、30、10D. 20、30、20(12) 以下关于逻辑运算符两侧运算对象的叙述正确的是()。A. 只能是整数0或1B. 只能是整数0或非0整数C. 只能是整数0或正整数D. 可以是任意合法的表达式(13) 下列程序段的输出结果是()。
int a=2,b=3,c=4,d=5;
int m=2,n=2;
a=(m=a>b)&&(n=c>d) 5;
printf("%d,%d",m,n);
A. 0,2B. 2,2C. 0,0D. 1,1(14) 下列叙述中正确的是()。A. break语句只能用于switch语句B. 在switch语句中必须使用defaultC. break语句必须与switch语句中的case配对使用D. 在switch语句中不一定使用break语句2. 填空题(1) 在C语言中用表示逻辑值“真”,用表示逻辑值“假”。(2) 以下程序执行后的输出结果是。
#include "stdio.h"
void main()
{
int x=10,y=20 ,t=0;
if(x==y)
t=x;
x=y;
y=t;
printf("%d,%d\n",x,y);
}
(3) 以下程序的功能是将输入的一个小写字母循环并移5个位置后输出,例如'a'变成'f','w'变成'b',请补充语句。
#include "stdio.h"
void main()
{
char c;
scanf("%c",&c);
if(c>='a'&&c<='u')
①;
else if (c>='v'&&c<='z')
②;
printf("%c\n",c);
}
(4) 将下面的语句段改为条件表达式为。
int max,a,b;
if(a>b)
max=a;
else
max=b;
(5) 有以下程序段,正确的数学函数关系是。
if(x==0)
y=0;
else if(x>0)
y=1;
else
y=-1;
(6) 与条件表达式“x=k?i :i--”,等价的语句是。(7) 请写出以下程序的输出结果。
#include "stdio.h"
void main()
{
int a=100;
if(a>100)
printf("%d\n",a>100);
else
printf("%d\n",a<=100);
}
3. 读程序写结果题(1) 以下程序的输出结果是。
#include "stdio.h"
void main()
{
int a = 0,i;
switch(i)
{
case 0:
case 3: a = 2;
case 1:
case 2: a = 3;
default: a = 5;
}
printf("%d\n",a);
}
(2) 以下程序的输出结果是。
#include "stdio.h"
void main()
{
int a,b,c;
a=2;b=7;c=5;
switch(a>0)
{
case 1:
switch(b<10)
{
case 1:printf("@");break;
case 0:printf("!");break;
}
case 0:
printf("*");break;
default:printf("&");
}
}
(3) 以下程序的输出结果是。
#include "stdio.h"
void main()
{
int a=1,b=2,d=0;
if(a==1)
d=1;
else if(b!=3)
d=3;
else
d=4;
printf("%d\n",d);
}
(4) 以下程序的输出结果是。
#include "stdio.h"
void main()
{
int x=1,y=0,a=0,b=0;
switch( x )
{
case 1:
switch( y )
{
case 1: a ; break;
case 0: b ;
case 2: b ; break;
}
case 2: a ; b ; break;
case 3: a ; b ;
}
printf("\n a=%d, b=%d\n", a, b);
}
(5) 以下程序的输出结果是。
#include "stdio.h"
void main()
{
int k1=1,k2=2,k3=3,x=15;
if(!k1)
x--;
else if(k2)
if(k3)
x=4;
else
x=3;
printf("x=%d\n",x);
}
(6) 以下程序的输出结果是。
#include "stdio.h"
void main()
{
int a=-1,b=4,k;
k=(a <=0)&&(!b--<=0);
printf("%d,%d,%d\n",k,a,b);
}
4. 编程题(1) 编写一个程序实现以下功能: 从终端上输入两个整数,检查个数是否能被第二个数整除,并输出判断结果。(2) 从键盘输入三角形的3条边,判断是否构成三角形,若能,则输出该三角形的面积及类型(等边、等腰、直角、一般),否则输出“不能构成三角形”。(3) 求ax2 bx c=0方程的解。基本的算法: ① a=0,不是二次方程。② b2-4ac=0,有两个相等实根。③ b2-4ac>0,有两个不等实根。④ b2-4ac<0,有两个共轭复根。(4) 编程判断所输入整数的奇偶性。(5) 某加油站有a、b、c 3种汽油,单价分别为6.12、5.95、5.75(元/千克),同时提供“自动加油”“手工加油”两种服务模式,分别给予2%和5%的优惠。编写程序实现以下功能: 当用户输入加油量、汽油品种和服务类型后输出应付款。(6) 企业发放的奖金根据利润提成,利润i低于或等于10万元,奖金可提成10%; 利润高于10万元,低于或等于20万元,即100000<i≤200000时,低于10万元的部分按10%提成,高于10万元的部分可提成7.5%; 200000<i≤400000时,低于20万的部分仍按上述办法提成(下同),高于20万元的部分按5%提成; 400000<i≤600000时,高于40万元的部分按3%提成; 600000<i≤1000000时,高于60万元的部分按1.5%提成; i>1000000时,超过100万元的部分按1%提成。从键盘输入当月利润i,求应发奖金总数。要求: ① 用if语句编写程序。② 用switch语句编写程序。本章实验实训
【实验目的】(1) 熟练掌握条件表达式的运用方法; (2) 熟练掌握if语句的运用方法; (3) 熟练掌握switch语句的运用方法; (4) 学会选择结构程序的设计; (5) 学会简单界面设计方法。【实验内容及步骤】编写程序,在屏幕上显示一张以下格式的学生活动安排表: *********我每天的活动安排**********选项号活动信息1起床、洗漱、晨跑2早餐3上课4午餐5实验室做实验6踢足球7晚餐8图书馆9睡觉请输入选项号(1~9): 当操作人员根据以上提示输入某选项号后程序显示活动时间和活动信息。活动与其时间的对照关系如下: 16:30起床、洗漱、晨跑27:30早餐38:00上课412:00午餐52:00实验室做实验65:00踢足球76:10晚餐87:00图书馆911:00睡觉
注意: 若输入了非法的选项号应该提示选项出错。
在线阅读/听书/购买/PDF下载地址:
原文赏析:
暂无原文赏析,正在全力查找中!
其它内容:
编辑推荐
(1) CDIO 引例示范(教师的“CDIO”); (2) 相关知识点跟进; (3) 在教师引导下,课堂实例演练CDIO(学生参与的CDIO); (4) 小结涵括本部分的知识点、容易混淆的概念及容易出错的问题; (5) 习题要求学生通过练习实现自主的CDIO; (6) 从第4章开始,增加综合程序设计,进一步提升学生的分析设计能力。
书摘插图
媒体评论
评论
前言
第2版前言
进入21世纪,出现了一批高校向应用型大学转型的大趋势,根据这一特点,我们在本书第1版的基础上进行了修订,结合应用型高校学生的特点及学时设置努力使本书第2版达到兼顾专业、通俗、实用和与时俱进的目标,使之成为应用型高等院校计算机专业和非计算机专业的C语言程序设计课程的教材和参考手册。本书采用通俗而亲和的描述风格,比较适合C程序设计的初学者、大学一年级学生,也适合想更深入掌握C语言程序设计的读者。本书中每个知识点的讲解由浅入深、循序渐进,教学内容以案例驱动方法进行,案例实用、有趣、易懂,贴近普通大学生的实际生活,让学生备感亲切。本书在潜移默化中帮助学生了解应用程序设计方法和过程,掌握程序设计语言知识和实用技巧,培养他们的编程素养。本书围绕把问题讲清楚、讲明白、讲透彻这个中心目标,放弃一些陈旧的、以炫技为目的的传统设计习惯,追求更直接、更简练的设计风格,尽量把我们多年来在教学和实际应用开发实践中积累的经验贯穿于书中,同时也将程序设计领域、有价值的思想和方法渗透到书中,使本书以焕然一新的面貌呈现在各位亲爱的读者面前。本书仍然延续第1版所采用的CDIO的思想和模式,即每章节的基本模式如下: (1) CDIO 引例示范(教师的“CDIO”); (2) 相关知识点描述; (3) 在教师引导下,课堂实例演练CDIO(学生参与的CDIO); (4) 小结涵盖本部分的知识点、容易混淆的概念及容易出错的问题; (5) 实战演练和习题要求学生通过练习实现自主的CDIO; (6) 从第2章开始,每章均增加“综合设计”一节,作为本章所讲述知识的综合运用模本,引导学生提升分析和设计能力。本书第2版在第1版的基础上进行了很多修订和大面积扩编,增加了例题、习题,将第1版中的第10章删去。全书共分10章,内容包括C语言概述、C程序的运算符和表达式、选择结构、循环结构、数组、函数、自定义数据类型、指针、文件以及Visual C 6.0开发环境。为了进一步强化学生在应用开发中的实作能力,本书每章的练习中都增加了实验实训部分。学生可以模仿章节综合设计的程序实例完成自己的设计,还可以创造性地对问题进行扩展设计,形成具有个人风格的独立程序。本书习题有编程题,也有等级考试中常见的选择题、填空题、读程序写结果题,题型较多,并附有参考答案,对于备考二级考试的同学也有一定的帮助。本书的第1、2章由布瑞琴修订; 第3、5、6、9章由郑晓健修订; 第4章由周波修订; 第7、8章由高世健修订; 第10章由冯瑶修订。郑晓健负责全书的统稿。全书由李向阳教授主审。在此,我们还必须由衷地感谢本书第1版的作者李向阳教授、方娇莉副教授、郭琳老师和王云泽老师,没有他们之前所做的大量工作,我们的修订工作不会如此顺利。建议本书授课时数为48学时,基本上机练习24学时,学生自主上机练习64学时左右,与本书配套的相关教学资料请到清华大学出版社网站(www.tup.com.cn)下载。由于编者水平和学识所限,书中难免存在疏漏与不足,敬请读者指正。
编者2017年3月
网站评分
书籍多样性:6分
书籍信息完全性:4分
网站更新速度:7分
使用便利性:3分
书籍清晰度:5分
书籍格式兼容性:6分
是否包含广告:4分
加载速度:8分
安全性:7分
稳定性:3分
搜索功能:8分
下载便捷性:3分
下载点评
- azw3(355+)
- 差评少(442+)
- 种类多(601+)
- 购买多(563+)
- 章节完整(631+)
- 微信读书(560+)
- 一般般(607+)
- 赚了(95+)
- txt(191+)
- 已买(177+)
下载评价
- 网友 薛***玉:
就是我想要的!!!
- 网友 石***烟:
还可以吧,毕竟也是要成本的,付费应该的,更何况下载速度还挺快的
- 网友 田***珊:
可以就是有些书搜不到
- 网友 龚***湄:
差评,居然要收费!!!
- 网友 师***怡:
说的好不如用的好,真心很好。越来越完美
- 网友 饶***丽:
下载方式特简单,一直点就好了。
- 网友 邱***洋:
不错,支持的格式很多
- 网友 家***丝:
好6666666
- 网友 曾***玉:
直接选择epub/azw3/mobi就可以了,然后导入微信读书,体验百分百!!!
- 网友 詹***萍:
好评的,这是自己一直选择的下载书的网站
- 网友 方***旋:
真的很好,里面很多小说都能搜到,但就是收费的太多了
- 网友 宫***玉:
我说完了。
- 网友 晏***媛:
够人性化!
- 网友 沈***松:
挺好的,不错
喜欢"C语言程序设计(基于CDIO思想)(第2版)"的人也看了
MIND OF THE SOUTH, THE(ISBN=9780679736479) 英文原版 下载 pdf 百度网盘 epub 免费 2025 电子版 mobi 在线
编辑哲思与践行 下载 pdf 百度网盘 epub 免费 2025 电子版 mobi 在线
南海地区形势报告(2015-2016) 下载 pdf 百度网盘 epub 免费 2025 电子版 mobi 在线
金牌英语听力:三年级(附光盘) 下载 pdf 百度网盘 epub 免费 2025 电子版 mobi 在线
公路工程检测技术(修订版) 下载 pdf 百度网盘 epub 免费 2025 电子版 mobi 在线
小企业财务管理实务——小企业会计培训系列丛书 下载 pdf 百度网盘 epub 免费 2025 电子版 mobi 在线
中小学生合唱歌曲精选 下载 pdf 百度网盘 epub 免费 2025 电子版 mobi 在线
MAURITIUS 下载 pdf 百度网盘 epub 免费 2025 电子版 mobi 在线
Amazon无限扩张的零售帝国:云端 会员 实体店 亚马逊如何打造新时代的致胜生态系 港台原版 下载 pdf 百度网盘 epub 免费 2025 电子版 mobi 在线
(视频讲解版)小学生小古文100课(全2册)彩图无障碍阅读 小学一至六年级必背小古文汇集 下载 pdf 百度网盘 epub 免费 2025 电子版 mobi 在线
- 2019年高考英语满分作文 名师预测2020年考题 备战2020年高考 下载 pdf 百度网盘 epub 免费 2025 电子版 mobi 在线
- 中国健身气功段位制考试大纲 国家体育总局健身气功管理中心,中国健身气功协会 编 人民体育出版社 下载 pdf 百度网盘 epub 免费 2025 电子版 mobi 在线
- 初中生分类作文荟萃 下载 pdf 百度网盘 epub 免费 2025 电子版 mobi 在线
- 我这样做班主任--李镇西30年班级管理精华 下载 pdf 百度网盘 epub 免费 2025 电子版 mobi 在线
- 公路工程技术与计量 下载 pdf 百度网盘 epub 免费 2025 电子版 mobi 在线
- 曲一线 高中地理 必修第一册 人教版 2020版高中同步 根据新教材(2019年版)全新编写五三 下载 pdf 百度网盘 epub 免费 2025 电子版 mobi 在线
- 2020年全能练考卷八年级历史下册人教版/八年级历史试卷 单元测评卷期中期末卷 下载 pdf 百度网盘 epub 免费 2025 电子版 mobi 在线
- 商务英语听说(下册) 下载 pdf 百度网盘 epub 免费 2025 电子版 mobi 在线
- 新编外贸英语口语教程(附光盘) 下载 pdf 百度网盘 epub 免费 2025 电子版 mobi 在线
- 中国双头鸟纹饰研究 下载 pdf 百度网盘 epub 免费 2025 电子版 mobi 在线
书籍真实打分
故事情节:4分
人物塑造:8分
主题深度:4分
文字风格:7分
语言运用:5分
文笔流畅:3分
思想传递:9分
知识深度:6分
知识广度:4分
实用性:8分
章节划分:5分
结构布局:3分
新颖与独特:8分
情感共鸣:9分
引人入胜:6分
现实相关:3分
沉浸感:9分
事实准确性:6分
文化贡献:3分