描述
开 本: 32开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302468226丛书名: 高等学校计算机基础教育规划教材
全书共分10章,内容包括C语言程序设计概述、顺序结构程序设计、选择结构程序设计、循环结构程序设计、数组、函数、指针、结构体与共用体、文件以及单片机C语言编程实例。本书每章均有精心设计的难易适当的习题供学生课后练习,每章的上机实验题包括选择题、填空题及编程题,可以让学生在反复实践中提高设计程序和调试程序的能力。
本书可作为高等院校理工科各专业“高级语言程序设计”课程的教材,也可供对程序设计有兴趣的读者参考。
第1章C语言程序设计概述1
1.1C程序简介1
1.2C程序的结构与书写格式3
1.3C语言的特点4
1.4C程序的开发过程5
1.5C程序的基本要素6
1.5.1标识符6
1.5.2数据类型、常量和变量7
1.6C程序的集成开发环境11
1.6.1DevC 11
1.6.2Visual Studio 201517
1.7习题27
1.8实验1熟悉C程序编程环境28
第2章顺序结构程序设计31
2.1运算符和表达式31
2.1.1算术运算符和算术表达式31
2.1.2赋值运算符和赋值表达式32
2.1.3逗号运算符和逗号表达式33
2.1.4强制类型转换运算符34
2.1.5sizeof运算符34
2.1.6不同数据类型的数据间的混合运算35
2.1.7自增、自减运算符36
2.1.8位运算符36
2.2C语言的基本语句37
2.3输入与输出函数38
2.3.1格式输入/输出函数38
2.3.2字符输入/输出函数43
2.4算法简介44
2.4.1算法的概念44目录2.4.2算法的特性45
2.4.3算法的表示46
2.5应用举例48
2.6习题51
2.7实验2顺序结构程序设计53
第3章选择结构程序设计57
3.1关系运算符和逻辑运算符57
3.1.1关系运算符57
3.1.2逻辑运算符58
3.2选择结构控制语句59
3.2.1if语句59
3.2.2条件运算符62
3.2.3switch语句63
3.3应用举例65
3.4习题71
3.5实验3选择结构程序设计75
第4章循环结构程序设计79
4.1循环结构控制语句79
4.1.1while循环语句79
4.1.2do…while循环语句80
4.1.3for循环语句82
4.1.4break语句和continue语句83
4.2循环的嵌套85
4.3应用举例86
4.4习题90
4.5实验4循环结构程序设计95
第5章数组99
5.1一维数组99
5.1.1一维数组的定义和引用99
5.1.2一维数组的初始化100
5.1.3一维数组的应用举例101
5.2二维数组104
5.2.1二维数组的定义和引用104
5.2.2二维数组的初始化105
5.2.3二维数组的应用举例106
5.3字符串109
5.3.1字符串与字符数组109
5.3.2字符串处理函数111
5.4应用举例115
5.5习题124
5.6实验5数组程序设计128
第6章函数132
6.1结构化与模块化程序设计思想132
6.2函数的定义与调用134
6.2.1函数的定义134
6.2.2函数的声明135
6.2.3函数的调用136
6.2.4函数的参数和返回值138
6.2.5数组名作函数参数139
6.3递归函数141
6.4变量的作用域和存储类别144
6.4.1变量的作用域144
6.4.2变量的存储类别146
6.5函数与带参数的宏148
6.6应用举例149
6.7习题154
6.8实验6函数程序设计157
第7章指针163
7.1指针概述163
7.1.1指针的概念163
7.1.2指针变量的定义165
7.1.3指针变量的引用165
7.2指针与数组169
7.2.1通过指针引用数组元素170
7.2.2指针与数组名174
7.3指针与字符串176
7.4指针与函数178
7.4.1指针作为函数参数178
7.4.2返回指针值的函数182
7.4.3指向函数的指针184
7.5多级指针186
7.5.1指向指针的指针187
7.5.2指针数组188
7.5.3指向多维数组行的指针193
7.6应用举例196
7.7指针小结198
7.8习题199
7.9实验7指针程序设计204
第8章结构体与共用体208
8.1结构体概述208
8.1.1结构体变量的定义和初始化208
8.1.2结构体成员的引用210
8.2结构体数组212
8.3指向结构体的指针214
8.4结构体与函数218
8.5链表219
8.5.1动态内存管理220
8.5.2链表概述222
8.5.3链表的相关操作223
8.6共用体概述230
8.6.1共用体变量的定义和初始化230
8.6.2共用体变量的引用231
8.7类型定义符typedef233
8.8应用举例236
8.9习题239
8.10实验8结构体与链表程序设计245
第9章文件250
9.1文件概述250
9.2常用文件操作函数251
9.2.1文件的打开与关闭251
9.2.2文件的读/写253
9.2.3文件的定位260
9.2.4文件读/写中的检测262
9.3应用举例262
9.4习题268
9.5实验9文件程序设计272
第10章单片机C语言编程实例277
10.1功能要求277
10.2硬件线路277
10.3编程分解279
10.3.1充电控制279
10.3.2时钟中断280
10.3.3端口操作281
10.4单片机C语言编程小结282
10.5智能充电机完整源代码283
附录295
附录A常用字符与ASCII代码对照表295
附录B编译预处理指令296
附录C运算符和结合性301
附录DC库函数302
附录EC程序中常见错误分析307
参考文献315
编者2017年3月
选择结构程序设计第3章选择结构程序设计选择结构是程序设计的三种基本结构之一,它是根据指定条件的成立与否,来确定接下来要完成的操作,C语言中用关系运算符和逻辑运算符表示判断条件。本章将介绍在C语言中实现选择结构程序设计的方法。3.1关系运算符和逻辑运算符〖*4/5〗3.1.1关系运算符关系运算实际上是“比较运算”,将两个值进行比较,判断比较的结果是否符合给定的条件。如x>0、x y>=5、x==10等,这些式子的值是一个逻辑值(“真”或“假”),用于比较的符号称为关系运算符。C语言提供了6种关系运算符: 大于 >=大于或等于 优先级相同(高) ==等于 !=不等于 优先级相同(低)注意: 在C语言中,“等于”关系运算符是双等号“==”,而不是单等号“= ”(赋值运算符)。1. 优先级与结合性(1) 前4种关系运算符(、>=)的优先级别相同,后2种运算符(==、!=)的优先级别相同,且前4种的优先级别高于后2种。(2) 关系运算符的优先级低于算术运算符而高于赋值运算符。(3) 关系运算符都是双目运算符,均为“左结合性”。 2. 关系表达式 关系表达式是指用关系运算符将前后两个表达式连接起来的式子,运算的结果均为逻辑值(“真”或“假”)。在C语言中,用1表示“逻辑真”,用0表示“逻辑假”。例如,假设a=3,b=4,c=5,则: a>b的值为0。[1][1](a>b)!=c的值为1。 a b>c的值为1。关系表达式的值还可以参与其他种类的运算,例如算术运算、赋值运算等。例如: d=ab>ce的值为0,因为先执行a>b,结果为0,再执行0>c,结果为0。3.1.2逻辑运算符利用关系运算符只能描述简单的条件,例如,表示变量a为正整数“a>0”。如果需要描述一些复合条件,例如,变量a取值为0到20之间(包括0),即条件为“a>=0”并且“a<20”,就要借助于逻辑运算符来表示。C语言提供了3种逻辑运算符: &&逻辑与‖ 逻辑或! 逻辑非其中,!(逻辑非)为单目运算符,只要求在它的右侧有一个操作数,&&(逻辑与)和‖(逻辑或)为双目运算符,要求在运算符的两侧各有一个操作数。在3种逻辑运算符中,“!”的优先级,“&&”次之,“‖”。“!”是右结合性,“&&”和“‖”是左结合性。用逻辑运算符将操作数连接起来的式子称为逻辑表达式。逻辑表达式的结果值只有真和假两个值,C语言用1表示“真”,用0表示“假”。逻辑运算的操作数有非0和0之分,其中“非0”代表真,0代表“假”。逻辑运算规则如下。&&: 当且仅当两个运算量的值都为“真”时,运算结果为“真”,否则为“假”。‖: 当且仅当两个运算量的值都为“假”时,运算结果“假”,否则为“真”。!: 当运算量的值为“真”时,运算结果为“假”;当运算量的值为“假”时,运算结果为“真”。逻辑运算规则(也称真值表)如表31所示。表31逻辑运算真值表ab!a!ba && ba‖b0011000非01001非000101非0非00011例如,下面的表达式都是逻辑表达式,设: a=4,b=5。(1) !a的值为0。由于a的值为非0,为“真”,“!”求反运算为假,即是0。(2) a>=0 && a>b的值为0。先做关系运算符的操作,a>=0成立,结果为1;a>b不成立,结果为0;后做1&&0的操作,结果为0。(3) a‖b>10的值为1。先做b>10,结果为0;再做a‖0,a=4,为非0,值为1;1‖0,终的值为1。说明: 在计算逻辑表达式的值时,只有在必须执行下一个表达式才能求出表达式的解时,才执行该表达式(即并不是所有的表达式都被求解)。换句话说: 对于“逻辑与”运算,如果左端表达式被判定为“假”,则该表达式的值一定为“假”,系统不再判定或求解右端的表达式;对于“逻辑或”运算,如果左端的表达式被判定为“真”,则该表达式的值一定为“真”,系统不再判定或求解右端的表达式。例如: 假设a=1,b=2,c=3,d=4,x、y的值为1,则求解下列表达式的值。(1) (x=a>b) && (y=c>d)结果: x的值为0,y的值不变,仍等于1,整个表达式的值为0。因为x的值为0,可以直接得出终表达式结果为0,y的值不需要再进行求解,y等于原来的值1。(2) (x=ad)结果: x的值为1,而y的值不变,仍等于1,整个表达式的值为1。因为x的值为1,可以直接得出终表达式结果为1,后面的表达式不需要再进行求解,y等于原来的值1。3.2选择结构控制语句〖*4/5〗3.2.1if语句在计算机程序中,语句的执行需要依赖于输入的数据或表达式的值来决定执行哪些语句或跳过哪些语句执行,这种程序结构称为选择结构。C语言提供了条件语句(if语句)和开关语句(switch语句)来实现选择结构程序设计。在C语言中,if条件语句的一般形式有3种。1. if语句(单分支语句)if语句的一般格式为: if(表达式)语句1;其流程图如图31所示。执行时,首先计算表达式的值,若为真(非0),则执行语句1;否则(即表达式值为0)不执行任何语句,即跳过if语句直接执行后面的语句。图31if选择结构示意图
【例31】从键盘上输入一个整数x,输出x的值。分析: 对由键盘输入的整数做一次比较,当输入的数值小于0(为负数)时,将其转换为正数。源程序:#includeint main(void){ int x; printf(“Enter a number: “); scanf(“%d”,&x); if(x<0) { x=-x; } printf(“该整数的值是: %d\n”, x); return 0; }运行结果为: Enter a number: -45↙该整数的值是: 452. if…else语句(双分支语句) if…else语句的一般格式为: if(表达式)语句1;else 语句2;其流程图如图32所示。执行这种形式的条件语句时,首先计算表达式的值,若为“真”(即表达式具有非0值),则执行语句1;若表达式的值为“假”(即等于0),则执行语句2。注意: 这里的“语句1和语句2”可以是一条C语句,也可以是多条C语句,若为多条C语句,务必要将这些语句用花括号括起来作为复合语句。【例32】从键盘上输入3个实数a、b和c,找出其中的值输出。 分析: 3个数要进行两两比较。首先a和b作比较,将a、b中较大的数赋给max,再将max和c作比较,将较大的数赋给max,后输出3个数中的值max。对应的流程图如图33所示。图32if…else选择结构示意图图33例32的流程图源程序: #include int main(void){float a,b,c,max; printf(“please enter 3 numbers:\n”); scanf(“%f,%f,%f”,&a,&b,&c); if (a>b) max=a; else max=b; if (max
评论
还没有评论。