上海电机学院专升本《C++程序设计》考试大纲1.docx
- 文档编号:26083883
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:19
- 大小:21.85KB
上海电机学院专升本《C++程序设计》考试大纲1.docx
《上海电机学院专升本《C++程序设计》考试大纲1.docx》由会员分享,可在线阅读,更多相关《上海电机学院专升本《C++程序设计》考试大纲1.docx(19页珍藏版)》请在冰豆网上搜索。
上海电机学院专升本《C++程序设计》考试大纲1
2010年上海电机学院专升本《C++程序设计》考试大纲
一、基本要求
1.掌握C++语言的基本语法规则。
2.掌握程序设计的三种基本结构。
3.掌握函数、指针和结构体的基本知识及相关应用。
4.熟练掌握有关类与对象的相关知识。
5.能够采用面向过程和面向对象的编程思路和方法编写应用程序。
6. 能熟练使用VisualC++6.0集成开发环境编写和调度程序。
涉及主要内容:
C++语言与面向对象概述、基本数据类型及表达式、C++与结构化程序设计、数组、函数与预处理、指针、构造数据类型、类与对象、继承与派生、多态性、I/O流与文件、模板与异常处理等。
二、考试内容
第1章C++语言与面向对象概述
1.理解和掌握C++程序的基本结构、C++的基本词法和规范;
2.了解面向对象技术的基本概念;
3.初步掌握VisualC++集成开发系统的步骤和方法;
第2章基本数据类型及表达式
1.掌握简单的输入/输出;
2.掌握基本数据类型的应用;
3.掌握常量和变量的定义与应用;
4.掌握运算符与表达式的应用;
5.了解运算符的优先级;
6.了解数据类型转换。
第3章C++与结构化程序设计
1.掌握结构化程序设计方法;
2.掌握各种选择语句的使用;
3.掌握各种循环语句的使用;
4.掌握各种转向语句的使用;
5.学会综合运用结构控制语句进行简单的编程
第4章数组
1.掌握定义一维数组和二维数组的方法以及设定初值的方法;
2.掌握数组和循环配合的程序设计方法;
3.掌握数组操作的基本技巧并能解决实际问题;
4.掌握数组的一个典型应用——字符串处理,熟悉常用的字符串处理函数;
5.了解数组的概念;
6.了解数组元素的存放方式。
第5章函数与预处理
1.掌握函数的定义格式和函数的原型声明方法;
2.掌握函数的调用方法以及形式参数和实际参数之间的关系;
3.掌握函数的嵌套和递归调用使用方法;
4.掌握内联函数和函数重载的使用方法;
5.了解函数的作用域与生命期;
6.了解编译预处理的基本原理和使用方法。
第6章指针
1.掌握指针变量的定义格式及引用方法;
2.掌握指针变量的简单运算;
3.掌握用new与delete运算符动态分配与回收内存空间的方法;
4.掌握用指针变量处理一维数组与字符串数组的问题;
5.掌握用指针变量、数组作为函数参数时函数的使用方法;
6.了解指向函数的指针和指向指针的指针的使用方法。
第7章构造数据类型
1.掌握结构型的定义、结构型变量的定义和使用;
2.掌握共用型的定义、共用型变量的定义和使用;
3.掌握枚举型的定义、枚举型变量的定义和使用;
4.理解typedef作用,了解typedef的使用方法;
5.能综合运用上述方法和技术进行较复杂的程序设计
第8章类与对象
1.掌握类和对象的定义方法;
2.理解类的成员的访问控制的含义,公有、私有和保护成员的区别;
3.掌握构造函数和析构函数的含义与作用、定义方式和实现;
4.理解静态成员的特性;
5.掌握内联函数和重载函数在类设计上的应用;
6.掌握友元函数和友元类的含义和特点;
7.了解嵌套类的定义方式,掌握子对象的初始化方法;
8.理解对象指针和对象数组的定义和使用方法;
9.掌握常类型函数参数的使用要领;
10.掌握常对象、常成员的定义、使用方法
第9章继承与派生
1.掌握派生和继承的相关概念和使用方法;
2.掌握在继承中构造函数的设计方法和调用顺序;
3.掌握在继承中析构函数的设计方法和调用顺序;
4.掌握虚基类的相关概念和使用方法;
5.掌握运用类的继承和派生的相关知识进行综合程序设计
第10章多态性
1.理解静态联编和动态联编的概念;
2.掌握运算符重载的实现方法;
3.了解虚拟函数和动态联编对实现动态多态的作用;
4.理解纯虚拟函数和抽象类的概念和实现方法;
5.了解虚拟析构函数的概念和作用,掌握其声明和使用方法;
6.理解动态联编的实现机理,学会使用动态多态特性解决实际问题
第11章I/O流与文件
1.理解如何使用C++面向对象和输入/输出流;
2.使用定义在
3.理解如何输入/输出流的类层次;
4.理解如何输入/输出自定义类型的对象;
5.创建程序员定义的流操作程序;
6.掌握文件流的使用,了解字符串流的使用。
第12章模板与异常处理
1.能够设计和使用模板;
2.能够使用继承的模板;
3.理解容器与迭代器;
4.理解异常处理的重要性以及使用异常处理;
5.使用不同的C++异常处理技术;
6.能够处理不可预见的异常;
7.熟悉标准异常处理函数。
三、考试方式
笔试:
120分钟,满分150分。
四、附考试样题:
《C++程序设计》笔试试卷
一、选择题(25%)
1.以下C++标识符,哪个是正确的()。
A.voidB._text_1C.3_nameD.2a-one
2.下列哪个是C++源文件的扩展名()。
A..hB..dswC..cppD..dsp
3.sizeof(double)的结果是()。
A.8B.4C.2D.出错
4.字符串“\\\”ABC\“\\”的长度是()。
A.3B.5C.7D.9
5.设整型变量i为5,使整型变量k不为2的表达式是()。
A.k=i%2B.k=i/2C.k=6-(--i)D.k=i>3?
2:
1
6.下面for语句的循环次数为()。
for(inti=0,x=0;!
x&&i<=6;i++)
A.0B.5C.6D.7
7.下列语句中,不正确的是()。
A.staticinta[2][3]={1,2,3,4,5,6};B.staticinta[2][3]={{1},{4,5}};
C.staticinta[][3]={{1},{4}};D.staticinta[][]={{1,2,3},{4,5,6}};
8.设有如下形式的字符数组定义:
staticcharstr[]="Beijing";
则执行下列语句后的输出结果为()。
cout< A.7B.5C.8D.9 9.在C++程序中,直接或间接调用自己的函数称为()。 A.递归函数B.内联函数 C.重载函数D.成员函数 10.在下列语句中,将函数intfind(intx,inty)正确重载的是()。 A.floatfind(intx,inty)B.intfind(inta,intb) C.intfind(intx)D.floatfind(intx,inty) 11.下面的函数声明语句中,最正确的是()。 A.intmax(x,y);B.max(int,int); C.voidmax(int,int)D.intmax(intx,inty); 12.在inta=5,*p=&a;语句中,*p的值是()。 A.变量a的地址B.无意义 C.变量p的地址值D.5 13.若有: intfunc(int*p) { ...... } voidmain() { int(*q)(int*)=func; int*f(),k[10],a; ...... } 在必要的赋值后,对func函数的正确调用语句是()。 A.q=q(k);B.(*q)(&a); C.f=*f(k);D.func(f); 14.若有如下定义,则下列对成员变量a的访问,哪种是不合法的()。 structAA{ inta,b; }st,*p=&st; A.(*p).aB.*p.aC.p->aD.st.a 15.有关类和对象的说法不正确的是()。 A.对象是类的实例 B.一个类只有一个对象 C.任何一个对象只能属于一个类 D.类与对象的关系和数据与变量的关系相似 E.类是抽象的,对象是具体的 16.有关构造函数的说法不正确的是()。 A.构造函数名和类名相同 B.构造函数可被程序显式调用 C.构造函数可有返回类型 D.构造函数可有多个 E.构造函数都是由系统自动调用的 17.关于静态数据成员,下列说法错误的是()。 A.静态数据必须初始化 B.静态数据的初始化是在构造函数中进行的 C.说明静态数据成员时前面要加static D.引用静态数据成员时,要在静态数据成员名前加<类名>和作用域运算符 18.在多继承中,公有派生和私有派生对于基类成员在派生类中的可访问性与单继承的 规则()。 A.完全相同B.完全不同 C.部分相同,部分不同D.以上都不对 19.关于多继承二义性的描述,以下()是错误的。 A.一个派生类中的两个基类中都有某个同名成员,在派生类中对这个成员的访问 可能出现二义性 B.解决二义性最常用的方法是对成员名的限定 C.基类和派生类中出现同名函数,也存在二义性问题 D.一个派生类是从两个基类派生来的,而这两个基类又有一个共同的基类,对该 基类成员进行访问时,也可能出现二义性 20.下列属于动态多态的是()。 A.函数重载B.运算符重载C.虚函数D.构造函数重载 4.重载运算符的实质是函数调用,如果重载了后置单目运算符“++”,执行C++,则 相当于执行了哪个函数()。 A.c.operator++(c,0);B.c.operator++(); C.operator++(c);D.operator++(c,0); 21.当使用ifstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式 是()。 A.ios: : inB.ios: : outC.ios: : trunkD.ios: : binary 22.进行文件操作时包含()文件。 A.iostream.hB.fstream.hC.stdio.hD.stdlib.h 23.磁盘文件操作中,打开磁盘文件的访问模式常量时,()是以追加方式打开文件的。 A.inB.outC.appD.ate 24.关于函数模板,下面描述错误的是()。 A.函数模板必须由程序员实例化为可执行的函数模板 B.函数模板的实例化由编译器实现 C.一个类定义中,要有一个函数模板,则这个类是类模板 D.类模板的成员函数都是函数模板,类模板实例化后,成员函数也随之实例化 25.下列对模板的说明中,正确的是()。 A.template B.template C.template D.template 二、填空题(25%) 1.面向对象方法的主要特点是将___________和___________封装在一起。 2.面向对象中的抽象分为___________抽象和___________抽象,其封装是通过定义 ___________来实现的 3.在C++语言中,字符串常量"IlovevisualC++6.0.\n"的长度是___________。 4.已知数组e定义为inte[][4]={{1,2,3,4},{5,6,7,8}};则e是一个_________行_________ 列的二维数组,总共有___________个元素,最大行下标是___________,最大列下标是 ___________,其首行的各元素的值分别是___________。 5.执行下列语句序列后,数组str2中的字符串是___________ charstr1[]="ABCD",str2[10]="XYZxyz"; for(inti=0;str2[i]=str1[i];i++); 6.在C++中每条预处理指令都必须以__________开头;可以用预处理指令__________ 终止符号常量和宏的作用;每一条#if结构都用__________结束。 7.若有inta[6],*p=a;,则数组元素a[3]可以表示为*(p+__________)或p[_________]。 8.有如下结构体的定义: structAA{ int*a,b; charc; }; 则sizeof(AA)的值是___________。 9.若类Sample中只有如下几个数据成员: constfloatf,constcharc,则其构造函数应 定义为_________________________________ 10.如果派生类中没有给出纯虚函数的具体实现,这个派生类仍然是一个___________。 11.下面的程序向C盘的new文件写入内容,然后把该内容显示出来,试完成该程序。 #include voidmain() { charstr[100]; fstreamf; ___________; f<<"ChinaShangHai"; f.put('\n'); f.seekg(0); while(________) {f.getline(str,100);cout< ___________; } 12.异常处理中,如果没有匹配所抛出的对象类型的catch语句块,这时系统调用默认 ___________终止程序。 三、程序阅读(12%,每题3分) 1.假定输入的5个整数为19,29,39,49,59,写出下列程序的运行结果。 #include voidmain() { inta,b,c,x; a=b=c=0; for(inti=0;i<5;i++) { cin>>x; switch(x%3) { case0: a+=x;break; case1: b+=x;break; case2: c+=x;break; } } cout< } 2.阅读程序,说明其功能及输出的结果。 #include voidmain() { intk; charx,a[10]={'a','b','c','d','e','f','g','h','i','j'}; for(k=0;k<5;k++) { x=a[k]; a[k]=a[9-k]; a[9-k]=x; } for(k=0;k<10;k++)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+程序设计 上海 电机 学院 C+ 程序设计 考试 大纲