C++程序设计专升本.docx
- 文档编号:26441090
- 上传时间:2023-06-19
- 格式:DOCX
- 页数:47
- 大小:43.77KB
C++程序设计专升本.docx
《C++程序设计专升本.docx》由会员分享,可在线阅读,更多相关《C++程序设计专升本.docx(47页珍藏版)》请在冰豆网上搜索。
C++程序设计专升本
C++程序设计教学大纲及进程
教材《C++程序设计教程》,《C++实验指导书》,《C++习题解答》清华大学出版社钱能编著
总时数150,面授50学时,自学100学时。
注上星号(*)的,为学习重点;
基本要求
∙掌握C++程序设计语言的基本语法与规则。
∙灵活运用过程化编程方法,对一些简单的问题,能通过编程实现加以解决。
∙基本把握各语法现象,重点把握函数、程序结构、指针、引用、类概念。
对一些简单的程序设计实例,会举一反三。
∙了解结构化程序设计和面向对象程序设计方法之差别,理解面向对象程序设计的方法。
∙能够分析面向对象程序的程序结构,阅读和理解面向对象的程序。
∙能够简单模仿面向对象程序,并能上机实现之。
授课内容、课时与具体要求
课时
授课内容
要求
第一周
面授4学时
╱
自学8学时
1.C++入门
§1.1从C到C++
§1.2程序与语言
§1.3结构化程序设计
§1.4面向对象程序设计
§1.5程序开发过程
§1.6最简单的程序
§1.7函数
了解程序设计概念,了解语言与程序,C与C++的关系
了解C++最简单程序结构
了解函数的使用和概念
学会最简单程序开发,熟悉编程环境(启动集成开发环境,路径设置,程序工程设置,编辑与修改,编译,连接,运行,查看结果)
2.基本数据类型与输入输出
§2.1基本数据类型
§2.2变量定义
§2.3常量
§2.4常量定义
§2.5I/O流控制
§2.6printf与scanf
了解基本数据类型和常量的表示范围
掌握变量定义与初始化
掌握常量定义
学会常用I/O流输出的格式控制
了解printf()和scanf()函数
巩固对C++简单程序结构的理解
作业:
2.1,2.2,2.3,2.6,2.7
第二周
面授4课时
╱
自学8学时
3.表达式和语句
§3.1表达式
§3.2算术运算和赋值
§3.3算术类型转换
§3.4增量和减量
§3.5关系与逻辑运算
§3.6if语句
§3.7if语句嵌套
§3.8条件运算符
§3.9逗号表达式
§3.10求值次序与副作用
理解运算符的优先级和结合性,表达式,左值表达式
理解不同的操作数会影响操作符的意义,理解算术运算和赋值缩写的区别
理解隐式转换和强制转换,理解数据超过该数据类型表示范围时的溢出
理解增量和减量操作
理解关系和逻辑运算,短路表达式
理解if…else的二义性及解决方法
理解条件运算符和逗号表达式的用法
理解表达式副作用产生的原因
作业:
3.1,3.5,3.6
第三周
面授4课时
╱
自学8学时
4.过程化语句
§4.1while语句
§4.2do…while语句
§4.3for语句
§4.4switch语句
§4.5转向语句
§4.6过程应用:
求
§4.7过程应用:
判明素数
§4.8过程应用:
求积分
掌握while,do…while,for循环结构
掌握switch语句的使用特点和与if语句的互补关系
理解goto语句有限的使用价值。
学会一般的级数求和
学会判断一个数是否为素数,求一定范围的素数(两重循环)
作业:
4.1,4.2,4.3,4.4,4.5,6,4.7,4.8,4.10
第四周
面授4课时
╱
自学8学时
5.函数(*)
§5.1函数概述
§5.2函数原型
§5.3全局与局部变量
§5.4函数调用机制
§5.5静态局部变量
§5.6递归函数
§5.7内联函数
§5.8重载函数
§5.9默认参数的函数
理解函数调用的各种类型
理解函数声明和函数原型的作用
理解函数相互之间的独立性
理解函数调用的栈机制
理解静态局部变量,全局变量和局部变量三者的差异
掌握递归函数的原理和编制规则
理解内联函数的使用场合
理解重载函数的概念
掌握默认参数的函数的使用
作业:
5.1,5.4,5.5,5.6,5.7
第五周
面授3课时
╱
自学6学时
6.程序结构
§6.1外部存储类型
§6.2静态存储类型
§6.3作用域
§6.4可见性
§6.5生命期
§6.7头文件
§6.8多文件结构
§6.9编译预处理
理解外部存储类型和静态存储类型在多文件程序中的作用
理解变量的各种作用域
理解可见性与生命期
学会头文件的内容选择
理解多文件结构
了解编译预处理的常用指令
作业:
6.1,6.2
第六周
面授4课时
╱
自学8学时
7.数组
§7.1数组定义
§7.2访问数组元素
§7.3初始化数组
§7.4向函数传递数组
§7.5二维数组
§7.6数组应用:
排序
§7.7数组应用:
Jose题
§7.8数组应用:
矩阵乘法
掌握数组定义、初始化和元素的访问
理解向函数传递数组的实质
理解二维数组的定义、初始化与元素访问
学会最简单的冒泡排序,学会最常用的插入排序。
了解快速排序方法
了解求Josephus问题的算法技巧
作业:
7.2,7.4,7.5,7.6
第七、八周
面授6课时
╱
自学12学时
8.指针(*)
§8.1指针概念
§8.2指针运算
§8.3指针与数组
§8.4堆内存分配
§8.5const指针
§8.6指针与函数
§8.7字符指针
§8.8指针数组
§8.9命令行参数
§8.10函数指针
掌握指针的概念,学会定义指针、间接引用指针和指针初始化方法
掌握指针运算的方法
掌握指针与数组的区别与联系
掌握堆内存操作的new和delete
理解const指针的表达及不同用法
掌握指针作为参数,作为函数返回的用法,理解void指针的意义
理解字符指针,学会字符串的赋值、比较、复制等操作
掌握指针数组和二级指针的使用
学会函数指针的使用
作业:
8.5,8.6,8.8,8.9
第九周
面授2课时
╱
自学4学时
9.引用
§9.1引用的概念
§9.2引用的操作
§9.3什么能被引用
§9.4用引用传递函数参数
§9.5返回多个值
§9.6用引用返回值
§9.7用const限定引用
§9.8返回堆中变量的引用
理解引用的概念。
学会引用的操作。
掌握引用的规则
掌握引用传递函数参数的方法,并理解它与指针的差别
学会使用引用返回多个值
理解引用返回的意义和使用方法
掌握用const限定引用来保证其引用的安全
学会堆内存分配中的引用使用
作业:
9.1,9.3
第十周
面授4课时
╱
自学8学时
10.结构
§10.1结构
§10.2结构与指针
§10.3结构与数组
§10.4传递结构参数
§10.5返回结构
§10.6链表结构
§10.7创建与遍历链表
§10.8删除链表结点
§10.9插入链表结点
学会结构定义与初始化方法
学会指向结构的指针操作
学会定义结构数组,传递结构参数和传递结构的引用之方法
学会返回一个结构和返回一个结构引用的方法
掌握链表结构和常用操作:
遍历结点,创建链表,插入结点和删除结点
作业:
10.3
第十一周
面授3课时
╱
自学6学时
11.类
§11.1从结构到类
§11.2软件方法的发展必然
§11.3定义成员函数
§11.4调用成员函数
§11.5保护成员
§11.6屏蔽类的内部实现
*§11.7再论程序结构
理解类产生的必然性
理解类的结构
学会类的定义,成员函数的定义
学会定义对象,使用成员函数
理解保护数据成员的概念
理解类的封装性
理解面向对象程序的结构
作业:
11.1,11.2,11.3
第十周
面授4课时
╱
自学8学时
12.构造函数
§12.1类与对象
§12.2构造函数的需要性
§12.3构造函数的使用
§12.4析构函数
§12.5带参数的构造函数
§12.6重载构造函数
§12.7缺省构造函数
§12.8类成员初始化的困惑
§12.9构造类成员
§12.10构造对象的顺序
理解类与对象的关系
理解构造函数的必要性
学会使用构造函数和析构函数
学会使用重载构造函数
把握缺省构造函数的作用
理解类中含有其它类对象的意义,学会对其初始化的方法
理解构造对象的顺序
作业:
12.1,12.2,12.3
第十二周
面授4课时
╱
自学8学时
13.面向对象程序设计
§13.1抽象
§13.2分类
§13.3设计和效率
§13.4讨论Josephus问题
§13.5结构化方法
§13.6结构化方法的实现
§13.7面向对象方法
*§13.8面向对象方法的实现
§13.9面向对象程序的维护
理解抽象的概念
学会分类的方法
了解结构化程序设计方法,理解Josephus问题的结构化方法解答
理解面向对象程序设计方法,理解Josephus问题的面向对象方法的解答
理解程序维护的概念,理解对Josephus问题解答程序的维护
作业:
13.1
第十三周
面授4课时
总复习
实验:
《C++实验指导书》实验一、实验二、实验三、实验四、实验五
《C++程序设计》练习题
一、选择题
1.C++中,各基本数据类型之间的存储空间大小顺序为____。
A)char B)char=shortint C)char≤shortint D)char≤shortint≤int≤longint≤float≤double 2.下面正确的选项是____。 a.0和’\0’值相等b.0和’0’值相等 c.’\0’和’0’值相等d.0、’\0’和’0’值都不相等 3.符合C++语法的赋值表达式是____。 a.d=3+e+f=d+6;b.d=7+e,f=d+4; c.d=2+e,e++,d+5=1;d.d=6+e++=d+8; 4.若有说明语句: charch=’\72’;则变量ch____。 A)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法 5.设变量f为float型,n为int型,则能将f中的数值保留小数点后两位,第三位进行四舍五入运算的语句是____。 A)f=(f*100+0.5)/100.0; B)n=f*100+0.5,f=n/100.0; C)f=f*100+0.5/100.0; D)f=(f/100+0.5)*100.0; 6.判断char型变量ch是否为大写字母的正确表达式是____。 A)’A’<=ch<=’Z’ B)(ch>=’A’)&(ch<=’Z’) C)(ch>=’A’)&&(ch<=’Z’) D)(’A’<=ch)||(’Z’>=ch) 7.若intx=43,ch=’A’,y=0;则表达式x>=y&&ch<’B’&&! y的值是____。 A)0B)语法错C)1D)其它值 8.能正确计算10! 的程序段是____。 A)do{n=1;s=1; s=s*n; n++; }while(n<=10); B)do{n=1;s=0; s=s*n; n++; }while(n<=10); C)n=1;s=1; do{s=s*n; n++; }while(n<=10); D)n=1;s=0; do{s=s*n; n++; }while(n<=10); 9.对for(表达式1;;表达式3)可理解为____。 A)for(表达式1;0;表达式3) B)for(表达式1;1;表达式3) C)for(表达式1;表达式1;表达式3) D)for(表达式1;表达式3;表达式3) 10.若有定义: inta[3][4];则对a数组某一元素的正确表示是____。 A)a[2][4]B)a[1,3]C)a[1+1][0]D)a (2) (1) 11.若在函数中有定义: inta[][4]={0,0};则错误的叙述是____。 A)数组a的每个元素都为初值0 B)二维数组a的第一维大小为1 C)数组a有4个元素 D)只有元素a[0][0]和a[0][1]为初值0,其余元素不能确定其值 12.下列程序中____。 1#include 2intmain(){ 3inta[]={1,2,3}; 4cin>>a; 5for(intn=1;n<3;n++)a[0]=a[0]+a[n]; 6cout<<”a[0]=”< 7} A)第4行有错B)第5行有错C)第6行有错D)没有错 13.下列正确的函数定义是____。 A)doublefunc(intx,inty){z=x+y;returnz;} B)intfunc(intx,y){intz=x+y;return;} C)voidfunc(x,y){intx,y;doublez;z=x+y;} D)doublefunc(intx,inty){doublez;z=x+y;returnz;} 14.若有inta=4;int*point=&a;下列均表示地址的选项是____。 A)a,point,*&a B)&*a,&a,*point C)*&point,*point,&a D)&a,&*point,point 15.若inta=3;则函数调用fn(a)能正确通过编译的是____。 A)intfn(intn); floatfn(intn); B)intfn(intn); intfn(int&n); C)intfn(intn); intfn(intn,intm=0); D)intfn(intn); intfn(floatn); 16.在下列定义之后,错误的语句是____。 intn=6; constintci=6; int*constcp=&n; constint*pci=&ci; constint*constcpc=&ci; A)n=ci;B)*cp=ci;C)pci=cpc;D)cpc++; 17.a是整型变量,下列引用定义中错误的是____。 A)int*&p=&a; B)int&b=*newint(5); C)constint&n=a; D)int&*f=&a; 18.有关字符串操作的语句,前后等价的是____。 A)char*a=”china”;与char*a;*a=”china”; B)charstr[10]=”china”;与charstr[10];str[]=”china”; C)char*s=”china”;与char*s;s=”china”; D)charc[4]=”abc”,d[4]=”abc”;与charc[4]=d[4]=”abc”; 19.若chars[]=”china”;char*p=s;则叙述正确的是____。 A)s和p能执行*(s+1)=3;和*(p+1)=5;所以都是指针变量 B)数组s中的内容和指针变量p中的内容相等 C)s数组长度和p所指向的字符串长度相等 D)*p与s[0]相等 20.对typedef的叙述,错误的是____。 A)用typedef可以定义各种类型名,但不能用来定义变量 B)用typedef可以增加新类型 C)用typedef只是将已存在的类型用一个新的标识符来代表 D)使用typedef有利于程序的通用和移植 21.一个C++程序的执行是从____。 A)main函数开始,到main函数结束 B)第一个函数开始,到最后一个函数结束 C)main函数开始,到最后一个函数结束 D)第一个函数开始,到main函数结束 22.x、i、j、k都是int型变量,执行x=(i=4,j=16,k=32);后x的值为____。 A)4B)16C)32D)52 23.’A’的ASCII码为65,n为int型,执行n=’A’+’6’–‘3’;后,n的值为____。 A)’D’B)68C)不确定的值D)编译出错 24.在C++中,int和int*两种类型数据在内存中所占字节数____。 A)由用户自己定义B)均为2个字节 C)是任意的D)由适应于硬件的编译系统选择决定 25.unsignedchar型数据的取值范围为____。 A)–128~127B)0~127C)0~255D)0~32767 26.设x值既可以在区间[5,15]内,也可以在区间[100,200]内,则x应表示为____。 A)(x>=5)&&(x<=15)&&(x>=100)&&(x<=200) B)(x>=5)||(x<=15)||(x>=100)||(x<=200) C)(x>=5)&&(x<=15)||(x>=100)&&(x<=200) D)(x>=5)||(x<=15)&&(x>=100)||(x<=200) 27.x、y、z是int型变量,且x=3,y=4,z=5;则下面表达式中值为0的是____。 A)’x’&&’y’B)x<=yC)x||y+z&&y–zD)! ((x z||1) 28.下列程序输入一系列正整数,输出其中的最大者。 若输入以0表示结束,则while中的条件应为____。 #include intmain(){ inta,max=0; cin>>a; while(){
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 程序设计
![提示](https://static.bdocx.com/images/bang_tan.gif)