新書推薦:
《
我们为什么会做梦:让梦不再神秘的新科学
》
售價:HK$
77.3
《
算法图解(第2版)
》
售價:HK$
78.2
《
科学的奇幻之旅
》
售價:HK$
77.3
《
画艺循谱:晚明的画谱与消闲
》
售價:HK$
143.4
《
新民说·现实政治史:从马基雅维利到基辛格
》
售價:HK$
99.7
《
宽容是件奢侈品(人生360度·一分钟经典故事)
》
售價:HK$
44.6
《
甲骨拼合六集
》
售價:HK$
333.8
《
视觉美食家:商业摄影实战与创意解析
》
售價:HK$
132.2
編輯推薦:
1. 以Visual C 2015为语言开发环境,从*基本的数据类型、概念、语法以及简单程序编写入手,书中所有例题、习题均在Visual C 2015环境下测试通过。2. 在例题选择上秉承由浅入深、由简到繁的编程规律,对典型题型给出多种算法的求解,在习题选择上力求做到多样化,以培养和提高初学者分析问题和解决问题的能力。*后给出了一个完整的应用程序开发实例,使初学者在学习完本课程后能编写出完整的Windows应用程序。3. 内容精炼、重点突出、语言表达严谨,适合作为高等院校相关课程的教材,也可供初学者自学参考。4. 附录给出了编程中常用的库函数(包括数学函数、字符串函数和常用数学函数的反函数等),以及习题答案,以方便读者自学时使用。
內容簡介:
本书结合大量实例,系统地介绍了Visual C 2015语言的开发环境、基本语法和编程技巧。本书共11章,内容包括C与Visual Studio 2015概述,C程序设计基础,流程控制语句,数组和字符串,指针,函数,结构体与联合,类与对象,类的继承、派生与多态,C流与文件操作等,*后提供了一个完整的应用程序开发实例。各章节之间衔接紧密、自然,形成了一个完整的知识体系。 本书可以帮助读者较好地掌握结构化程序设计的3种基本结构、面向对象的概念和编程思想。本书在每一章中都通过实用性较强的例题来阐述知识点,同时给出大量习题,所有例题和习题均在Visual C 2015 环境下进行了严格测试。 本书内容精炼、重点突出、语言表达严谨,适合作为高等院校相关课程的教材,也可供初学者自学参考。
目錄 :
目录
第1章C与Visual Studio 2015概述1
1.1计算机程序设计语言的发展1
1.1.1机器语言1
1.1.2汇编语言2
1.1.3高级语言2
1.1.4结构化程序设计语言3
1.1.5面向对象语言的产生4
1.2C语言与面向对象程序设计4
1.2.1C概述4
1.2.2面向对象程序设计5
1.3C集成开发环境Visual Studio 20158
1.3.1集成开发环境8
1.3.2Visual Studio 2015简介8
1.4简单的C程序9
1.4.1C程序的开发过程9
1.4.2简单的C程序示例10
本章小结15
习题一16
第2章C程序设计基础17
2.1词法符号17
2.1.1字符集17
2.1.2词法记号17
2.2C的数据类型20
2.2.1基本数据类型20
2.2.2字面常量22
2.2.3变量24
2.2.4符号常量27
2.3运算符与表达式28
2.3.1运算符28〖1〗C程序设计教程(第2版)目录[3]〖3〗2.3.2表达式34
2.3.3类型转换37
2.3.4语句38
2.4数据的输入与输出39
2.4.1IO流39
2.4.2预定义的插入符和提取符39
2.4.3简单的IO格式控制40
2.5基于Visual C 2015的简单程序开发40
2.5.1一个简单程序设计例程40
2.5.2main函数42
2.5.3注释43
2.5.4编译预处理43
2.5.5命名空间与using应用47
本章小结50
习题二51
第3章流程控制语句54
3.1程序的基本控制结构54
3.1.1语句的分类54
3.1.2结构化程序控制结构55
3.1.3顺序结构程序应用举例55
3.2流程控制语句56
3.2.1if语句56
3.2.2switch 语句62
3.3循环控制语句64
3.3.1for循环64
3.3.2dowhile循环66
3.3.3while循环69
3.4循环的嵌套70
3.5跳转语句71
3.5.1break语句71
3.5.2continue语句72
3.5.3goto语句73
3.5.4return语句75
本章小结75
习题三76
第4章数组和字符串79
4.1数组的概念79
4.2数组的定义和数组元素表示方法79
4.2.1数组的定义80
4.2.2数组定义的格式举例81
4.3数组元素的输入与输出81
4.4数组的应用84
4.4.1统计84
4.4.2排序86
4.4.3查找89
4.4.4数组的其他应用90
4.5字符串93
4.5.1字符串的概念93
4.5.2字符串函数95
4.5.3字符串应用举例98
本章小结101
习题四101
第5章指针105
5.1指针的概念105
5.2指针变量106
5.3指针运算107
5.4指针与数组109
5.4.1指针与一维数组109
5.4.2指针与二维数组110
5.4.3new与delete112
5.5引用变量113
本章小结115
习题五115
第6章函数120
6.1函数的定义与调用120
6.1.1函数的定义120
6.1.2函数的声明与调用123
6.2函数调用方式和参数传递125
6.2.1函数调用过程125
6.2.2传值调用125
6.2.3传址调用126
6.2.4数组作为参数调用127
6.3变量的作用域130
6.3.1作用域分类130
6.3.2应用举例131
6.4递归函数135
6.5重载函数138
6.6模板函数139
6.7内联函数143
6.8函数指针144
本章小结148
习题六149
第7章结构体与联合153
7.1结构体类型153
7.1.1结构体的定义153
7.1.2结构体变量的定义和初始化154
7.1.3结构体变量的引用156
7.1.4结构体数组158
7.1.5结构体与函数160
7.1.6结构体指针163
7.1.7结构体与链表167
7.2联合169
7.2.1联合的定义169
7.2.2联合变量的定义170
7.2.3联合变量的引用172
7.2.4联合类型数据的特点172
7.3枚举类型174
7.4结构体与联合应用实例178
7.5用typedef声明类型180
本章小结182
习题七182
第8章类与对象185
8.1面向对象程序设计方法概述185
8.1.1面向过程的程序设计185
8.1.2面向对象的程序设计188
8.2类的声明191
8.2.1类和对象的关系191
8.2.2类的声明191
8.2.3类的成员函数193
8.2.4类与结构体194
8.3定义对象195
8.3.1对象的定义195
8.3.2对象成员的引用196
8.4类和对象的简单应用实例198
8.5构造函数200
8.5.1构造函数的作用200
8.5.2带参数的构造函数203
8.5.3构造函数重载205
8.5.4复制构造函数206
8.6析构函数208
8.7类的静态成员209
8.7.1静态数据成员210
8.7.2静态成员函数212
8.8友元214
8.8.1友元函数214
8.8.2友元类216
8.9在Visual C 2015中使用类向导217
本章小结221
习题八221
第9章类的继承、派生与多态226
9.1类的继承与派生226
9.1.1继承与派生的概念226
9.1.2派生类定义的格式228
9.1.3继承方式232
9.1.4多重继承239
9.2多态与虚函数242
9.2.1多态242
9.2.2虚函数244
9.2.3多态的实现机制245
9.2.4纯虚函数与抽象类247
9.3多态与运算符重载250
9.3.1运算符重载的方法与规则251
9.3.2重载双目运算符255
9.3.3重载单目运算符257
本章小结261
习题九261
第10章C流与文件操作265
10.1C流的概念265
10.2输入输出标准流类265
10.2.1C中的IO流库265
10.2.2标准输入输出流对象266
10.3文件操作270
10.3.1文件的打开与关闭271
10.3.2文本文件读写操作272
10.3.3二进制文件的读写操作275
10.4应用举例279
本章小结283
习题十283
第11章Visual C2015应用程序开发实例287
11.1MFC应用程序287
11.1.1创建应用程序287
11.1.2应用程序的运行290
11.1.3应用程序类和源文件291
11.1.4应用程序的控制流程293
11.2调用Windows公共对话框的实例294
11.2.1使用对话框编辑器294
11.2.2编写代码295
11.3利用Visual C 2015连接数据库实例299
11.3.1建立工程DAOAccess299
11.3.2建立Access 文件299
11.3.3修改主窗体界面299
11.3.4添加代码300
11.4利用Visual C 2015制作小游戏303
11.4.1游戏实现303
11.4.2变量函数303
11.4.3具体实现304
附录AASCII码表310
附录B常用库函数312
B1数学函数312
B2常用反函数公式313
B3与字符串有关的函数313
附录C程序调试与异常处理315
C1程序调试315
C1.1设置断点315
C1.2开始、中断和停止执行316
C1.3单步执行317
C1.4运行到指定位置317
C2异常处理317
附录D习题答案319
习题一319
习题二319
习题三320
习题四321
习题五321
习题六322
习题七323
习题八323
习题九324
习题十324
参考文献325
內容試閱 :
前言 本书介绍程序设计领域的最新方法,以Microsoft Visual C 2015 .NET为开发工具,其设计思想集中反映了现代计算机软件的新发展。Microsoft Visual C 2015 .NET是从 Visual C语言演变而来的,它具有集成的开发环境,可用于Visual C、Visual Basic以及C#CLI等编程语言。本书面向Microsoft Visual 2015 .NET的初中级用户,系统地介绍C程序开发的基础知识、编程方法和技巧。本书精心规划,具有如下特点:1 从 Visual C 2015最基本的数据类型、概念、语法以及简单程序编写入手,使读者逐步掌握结构化程序设计的3种基本结构,即顺序结构、选择结构和循环结构;通过介绍面向对象的概念以及在 Visual C 2015 .NET环境下的实现,使读者从基本概念、基础操作的学习上升到对理论的理解,从而领会应用程序开发的实质。2 在例题选择上秉承由浅入深、由简到繁的编程规律,对典型题型给出多种算法的求解,在习题选择上力求做到多样化,以培养和提高初学者分析问题和解决问题的能力。3 Visual C 2015语言系统庞大,知识点前后衔接紧密,为使初学者能轻松学习,掌握程序设计的精髓,本书所有知识点按章节组成一个有序的线性结构,内容由易到难,循序渐进。4 为使初学者在学习完本课程后能编写出完整的Windows应用程序,在第11章介绍了一个完整的应用程序开发实例。5 本书中所有例题、习题均在Visual C 2015环境下测试通过。6 附录给出了编程中常用的库函数包括数学函数、字符串函数和常用数学函数的反函数等,以及习题答案,以方便读者自学时使用。本书共11章,内容包括C与Visual Studio 2015 概述,C程序设计基础,流程控制语句,数组和字符串,指针,函数,结构体与联合,类与对象,类的继承、派生与多态,C流与文件操作等内容,最后提供了一个完整的Visual C 2015应用程序开发实例。各章节内容衔接紧密、自然,形成了一个完整的知识体系。〖1〗C程序设计教程(第2版)前言[3]〖3〗本书由幸莉仙总策划和统稿,由幸莉仙、于海泳、田志刚、单树倩共同撰写完成。杨丽莹同学为本书进行了校对工作,在此一并表示感谢。由于时间仓促,书中难免有一些疏漏和不足,恳请广大读者和同行不吝赐教,以便及时修订和补充。
作者2017年1月
第5章指针指针是C的重要概念,它提供了一种较为直观的地址操作的手段。正确合理地使用指针,可以方便、灵活、有效地组织和表示复杂的数据结构。5.1指针的概念在C中,任何一种类型的数据都要占用内存中固定个数的存储单元。如char型数据即字符占用1个存储单元;int型整数占用4个存储单元,即4B;double型实数占用8个存储单元,即8B。指针是表示地址的一种变量,它的值是内存单元的地址。每个内存单元为二进制的八位,即1B。每个内存单元对应着一个编号即地址,计算机中央处理器CPU就是通过这个地址访问即存取对应单元中的内容。所以指针值的范围严格来说只能是自然数,并且不能在两个指针间进行加、乘、除这样的运算。由于在C中每个数据类型都必有存储空间,所以指针可以应用于几乎所有的数据类型中。所以,从这个角度出发可以将指针分为指向变量的指针、数组指针、字符指针、指向指针的指针、函数指针、结构变量的指针,以及文件指针等。一个数据被存储在一块连续的存储单元中,其第一个单元的地址称为该数据的地址,根据一个数据的地址和该数据的类型就可以存取这个数据。一个数据的地址被称为指向该数据的指针。该数据被称为指针所指向的数据。假定s是一个int型变量,它的值为50 ,定义指针p的语句为int * p,这里p就是一个指向整型的指针,可以用于指向一个整型变量。当p=&s时,就是将整型变量s的地址赋值给p。当要访问s时,实际上是访问p所指向的4B内保存的整数50。指针p和s之间的关系可用图5.1a表示出来,其中矩形框表示为s分配的存储空间,带箭头的线段表示指向。 因为指向s的指针P也需要存储起来,它占用一个指针数据单元,即4B的存储空间,所以p指向s,也可以用图 5.1b表示出来。图5.1指针与指向数据之间的关系表示在C程序中通常使用指针变量来访问它所指向的数据,此时必须知道它所指向的〖1〗C程序设计教程(第2版)第5章指针[3]〖3〗数据的类型,因为当把一个指针变量定义为指向int类型的指针时,它指向的数据将是一个整数;若把一个指针变量定义为指向double类型的指针,则它所指向的数据就是一个双精度数。5.2指 针 变 量〖*4〗1. 定义格式在C程序中使用指针需要先定义,后使用。定义指针的语法形式是类型关键字 指针变量名\[=指针表达式\],;其中类型关键字可以是任意类型,指的是指针所指向的对象的类型。指针变量名表示这里定义了一个指针类型的变量,而不是普通变量。指针变量名前面的类型关键字和星号一起就构成了指针类型,星号字符前、后位置可以不留空格,也可以有任意多个空格。需要指出的是,在指针变量定义语句中可以同时定义多个指针变量,但每个指针变量名前面都必须重写星号字符,每个星号字符同其最前面共用的类型关键字一起构成指针类型。指针表达式是在一个变量名前面加上取地址操作符&。如a是一个变量,则&a就是一个最简单的指针表达式,该表达式的值为存储a的数据单元的首地址。把一个变量的地址赋给一个指针变量后,通过这个指针变量就能够间接地存取所指向的变量的值。定义指针变量语句中的类型关键字,除了可以是一般的类型关键字外,还可以是指针类型关键字和无类型关键字void,如int*为int指针类型关键字。void是一个特殊的类型关键字,它只能用来定义指针变量,表示该指针变量无类型。2. 格式举例int p;定义p为一个整型指针变量int s=10, ps=定义一个整型变量s和一个整型指针变量pschar x=''A'', ch=定义了一个字符变量x和一个字符指针变量chchar ap="abc",bp=ab;定义了字符指针变量ap和bpvoid pl=0,p2=cp;定义了两个无类型指针变量P1和P2int dp\[20\]={0};定义了一个整型指针数组dp\[20\],并初始化数组元素为0char ep\[3\]={"china","Bei","jing"};定义了一个字符指针数组rp\[3\],其中ep\[0\]指向"china",ep\[1\]指向"Bei"ep\[2\]指向"jing"int b=10, xp=&b, yp=定义了一个整型变量b等于10;又定义了一个整型指针变量xp,等于b的地址;又定义了一个整型二级指针变量yp,等于xp的地址void pv, i;定义了一个void类型的指针int a=10;na=&a,np=定义了一个一级指针变量na和二级指针变量np一般情况下,指针的值只能赋给相同类型的指针。但void类型的指针可以存储任何类型的对象地址,即任何类型的指针都可以赋值给void类型的指针变量,经过使用类型强制转换,void类型的指针便可以访问任何类型的数据。如:void pv, i;pv=void类型指针指向整型变量int pt=int pv;强制类型转换,并将指针所指地址的值赋值给指针变量5.3指 针 运 算〖*4〗1. 与指针有关的运算符C中提供了两个与地址有关的运算符,即*和&符号。*称为指针运算符,表示取指针变量的值。&称为取地址运算符,用来得到一个对象的地址。必须注意和&出现在程序中的位置。既可以作为乘法运算符,也可以声明一个变量为指针类型,又可以表示取对象的值。&既可以表示声明一个引用变量,也可以表示取对象的地址。例如:inty=ab;声明y等于a乘bint p;声明变量p为指针变量coutusing namespace std;int main{char a\[\]="dfgff1234kjkldssopxyz";char p=a,k;coutk;forp=a\[0\];p!=''\\0'';pifp==k{coutusing namespace std;int main{int a\[2\]\[3\]={11,12,13,21,22,23};int i,j;intp\[3\]=a;定义指针变量p,与a的值具有相同的指针类型fori=0;iusing namespace std;#include #include int main{srandtime0;int i,m;coutm;int a=new int\[m\];fori=0;iusing namespace std;int main{int i=10,&ri=i,k=20;定义ri是i的引用ri=k;cout