【习题】c++对c的扩充
- 格式:doc
- 大小:783.50 KB
- 文档页数:11
计算机二级C++考试备考练习题及答案选择题1、下列叙述中错误的是( )。
A.gets函数用于从终端读入字符串B.getchar函数用于从磁盘文件读入字符C.fputs函数用于把字符串输出到文件D.fwrite函数用于以二进制形式输出数据到文件正确答案:B答案解析:本题考查的是C语言中输入、输出函数的使用,gets和getchar 函数用于从标准输入设备键盘读入字符串和字符;fputs用于把字符串输出到文件;fwrite用于以二进制形式输出数据到文件。
2、拷贝构造函数的参数一般是( )A.某对象名B.某对象成员名C.某对象的引用名D.指向对象的指针名正确答案:C3、C++语言是以哪种语言为基础逐渐发展演变而成的一种程序设计语言( )A.ASPB.CC.VBD.Java正确答案:B4、软件设计中划分模块的一个准则是( ).A.低内聚低耦合B.高内聚低耦合C.低内聚高耦合D.高内聚高耦合正确答案:B答案解析:一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。
5、下述关于数据库系统的叙述中,正确的是( )。
A.数据库系统减少了数据冗余B.数据库系统避免了一切冗余C.数据库系统中数据的一致性是指数据类型一致D.数据库系统比文件系统能管理更多的数据正确答案:A答案解析:数据库系统会减少数据冗余,但不可能避免一切冗余。
6、关于纯虚函数,下列表述中正确的是( )。
A.纯虚函数是没有给出实现版本(即无函数体定义)的虚函数B.纯虚函数的声明总是以″=0″结束C.派生类必须实现基类的纯虚函数D.含有纯虚函数的类不可能是派生类正确答案:B答案解析:纯虚函数是在声明虚函数时被″初始化″为O的虚函数。
纯虚函数没有函数体,纯虚函数的作用是在基类中为其派生类保留一个函数名称。
7、下列描述中错误的是( )A.派生类可以作为基类派生其他的子类B.派生类继承基类的所有数据成员C.派生类可以有多个基类D.派生类不能继承一些函数成员正确答案:B8、已知int m= 10;在下列定义引用的语句中,正确的是( )。
第三章计算机软件测试题一、判断题1.“引导程序”的功能是把操作系统从内存写入硬盘。
(______)提示:当计算机加电启动时,CPU先执行BIOS中的自检程序;若无异常,CPU继续执行BIOS 中的自举程序,它从硬盘读出引导程序并装入到内存;然后由引导程序把操作系统从硬盘读入内存。
2.C++语言是对C语言的扩充。
(______)提示:C语言是一种简洁高效的高级程序设计语言,C++语言是以C语言为基础发展起来的一种程序设计语言,是对C语言的扩充,是当前面向对象程序设计的主流语言。
3.MATLAB是将编程、计算和数据可视化集成在一起的一种数学软件。
(______)提示: MATLAB是一种提供数据可视化等功能的数值计算程序语言。
4.P3是世界著名的项目管理软件。
由于使用P3能管理一个大型工程系统的有关资源,所以,它应属于系统软件。
提示:系统软件是指为了有效地使用计算机系统、给应用软件开发与运行提供支持、或者能为用户管理与使用计算机提供方便的一类软件。
它具有一定的通用性,不是专门为某个具体应用而开发的。
5.PC机常用的操作系统有Windows、Unix、Linux等。
(______)提示:目前流行的PC机中常用的操作系统有Windows系统(Windows9X系统、Windows NT 系统、Windows2000系统、Windows XP、Windows Server 2003等)、UNIX操作系统、Linux 操作系统等。
6.Windows系列软件和Office系列软件都是目前流行的操作系统软件。
提示:Windows系统是目前最为普及的系统软件,Office系列是微软公司开发的目前最为流行的办公应用软件。
7.安装好操作系统后,任何硬件设备都不需安装驱动程序,就可以正常使用。
(______)提示:在Windows9X等系列的操作系统中,第一次使用某个硬件一般都需要安装驱动程序。
外设的生产厂商在提供硬件设备的同时必须提供该设备的驱动程序。
第一章概述1-1简述计算机程序设计语言的发展历程。
解:迄今为止计算机程序设计语言的发展经历了机器语言、汇编语言、高级语言等阶段,C++语言是一种面向对象的编程语言,也属于高级语言。
1-2面向对象的编程语言有哪些特点?解:面向对象的编程语言与以往各种编程语言有根本的不同,它设计的出发点就是为了能更直接的描述客观世界中存在的事物以及它们之间的关系。
面向对象的编程语言将客观事物看作具有属性和行为的对象,通过抽象找出同一类对象的共同属性(静态特征)和行为(动态特征),形成类。
通过类的继承与多态可以很方便地实现代码重用,大大缩短了软件开发周期,并使得软件风格统一。
因此,面向对象的编程语言使程序能够比较直接地反问题域的本来面目,软件开发人员能够利用人类认识事物所采用的一般思维方法来进行软件开发。
C++语言是目前应用最广的面向对象的编程语言。
1-3什么是结构化程序设计方法?这种方法有哪些优点和缺点?解:结构化程序设计的思路是:自顶向下、逐步求精;其程序结构是按功能划分为若干个基本模块;各模块之间的关系尽可能简单,在功能上相对独立;每一模块内部均是由顺序、选择和循环三种基本结构组成;其模块化实现的具体方法是使用子程序。
结构化程序设计由于采用了模块分解与功能抽象,自顶向下、分而治之的方法,从而有效地将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护。
虽然结构化程序设计方法具有很多的优点,但它仍是一种面向过程的程序设计方法,它把数据和处理数据的过程分离为相互独立的实体。
当数据结构改变时,所有相关的处理过程都要进行相应的修改,每一种相对于老问题的新方法都要带来额外的开销,程序的可重用性差。
由于图形用户界面的应用,程序运行由顺序运行演变为事件驱动,使得软件使用起来越来越方便,但开发起来却越来越困难,对这种软件的功能很难用过程来描述和实现,使用面向过程的方法来开发和维护都将非常困难。
1-4什么是对象?什么是面向对象方法?这种方法有哪些特点?解:从一般意义上讲,对象是现实世界中一个实际存在的事物,它可以是有形的,也可以是无形的。
第二章C++基础知识练习题1.请先阅读下面的2个程序,写出程序运行的结果,然后再上机运行程序,验证自己分析的结果是否正确。
程序1:#include <iostream> //包含头文件命令using namespace std; //使用名字空间stdint main(){cout<<"This "<<"is ";cout<<"a "<<"C++ ";cout<< "program."<<endl;return 0;}程序2:#include <iostream> //包含头文件命令using namespace std; //使用名字空间stdint main(){ int a,b,c;//定义三个变量a、b、ccout<<"Please input to a and b:"<<endl; //输出提示信息到屏幕cin>>a>>b; //等待用户从键盘输入数据c=a+b;cout<< "a+b=" ;cout<<c;cout<<endl;return 0;}2.输入以下程序,进行编译,观察编译结果,如果有错误,请修改程序,再进行编译,直到没有错误,然后进行连接和运行,并分析运行结果。
#include <iostream> //包含头文件命令using namespace std; //使用名字空间stdint main(){ int a,b;//定义两个变量a和bcout<<"Please input to a and b: "<<endl;//输出提示信息到屏幕cin>>a>>b; //等待用户从键盘输入数据cout<< "Max="<< max(a,b)<<endl; //输出结果信息至屏幕return 0; //主函数返回0至操作系统}int max(int x, int y) { return (x> y) ?x:y; } //求两个数中的大者的函数3.编写一个函数,用来求2个或3个正整数中的最大数,并在主函数中调用此函数。
第四章存储管理1. C存储管理支持多道程序设计,算法简单,但存储碎片多。
A. 段式B. 页式C. 固定分区D. 段页式2.虚拟存储技术是 B 。
A. 补充内存物理空间的技术B. 补充相对地址空间的技术C. 扩充外存空间的技术D. 扩充输入输出缓冲区的技术3.虚拟内存的容量只受 D 的限制。
A. 物理内存的大小B. 磁盘空间的大小C. 数据存放的实际地址D. 计算机地址位数4.动态页式管理中的 C 是:当内存中没有空闲页时,如何将已占据的页释放。
A. 调入策略B. 地址变换C. 替换策略D. 调度算法5.多重分区管理要求对每一个作业都分配 B 的内存单元。
A. 地址连续B. 若干地址不连续C. 若干连续的帧D. 若干不连续的帧6.段页式管理每取一数据,要访问 C 次内存。
A. 1B. 2C. 3D. 47.分段管理提供 B 维的地址结构。
A. 1B. 2C. 3D. 48.系统抖动是指 B。
A. 使用计算机时,屏幕闪烁的现象B. 刚被调出内存的页又立刻被调入所形成的频繁调入调出的现象C. 系统盘不干净,操作系统不稳定的现象D. 由于内存分配不当,造成内存不够的现象9.在 A中,不可能产生系统抖动现象。
A. 静态分区管理B. 请求分页式管理C. 段式存储管理D. 段页式存储管理10.在分段管理中 A 。
A. 以段为单元分配,每段是一个连续存储区B. 段与段之间必定不连续C. 段与段之间必定连续D. 每段是等长的11.请求分页式管理常用的替换策略之一有 A 。
A. LRUB. BFC. SCBFD. FPF12.可由CPU调用执行的程序所对应的地址空间为 D 。
A. 名称空间B. 虚拟地址空间C. 相对地址空间D. 物理地址空间13. C 存储管理方式提供二维地址结构。
A. 固定分区B. 分页C. 分段D. 物理地址空间14.当程序经过编译或者汇编以后,形成了一种由机器指令组成的集合,被称为B 。
A. 源程序B. 目标程序C. 可执行程序D. 非执行程序15.目录程序指令的顺序都以0作为一个参考地址,这些地址被称为 A 。
电子信息学院实验报告书课程名:面向对象程序设计题目:实验2 C++对C的扩充实验类别:设计研究型班级:BX1004学号:姓名:施程程1、实验目的〔1〕了解在面向过程程序设计中功能的扩充与增强,并善于在编写过程中应用这些新的功能。
〔2〕进一步熟悉在所用的系统上编辑、编译、连接和运行C++程序的方法。
〔3〕进一步熟悉C++程序的结构和编程方法。
2、实验内容要求事先编好解决下面问题的程序,然后上机输入并调试运行。
(1)输入以下程序,进行编译,观察编译情况,如果有错误,请修改程序,再进行编译,直到没有错误,然后进行连接和运行,分析运行结果。
#include<iostream>using namespace std;int main〔〕{int a,b;c=add〔a,b〕cout<<“a+b=”<<c<<endl;return 0;}int add〔int x,int y〕{z=x+y;return〔z〕;}(2)编一个程序,用来求2个或3个正整数中的最大数。
1、用不带默认参数的函数实现。
2、用带有默认参数的函数实现。
比照两种方法,分析用带有默认参数的函数的优点和应用场合,总结如何选择默认b参数的值。
请分析此题中默认参数的值应该在什么范围。
(3)对3个变量按由小到大顺序排序,要求使用变量的引用。
1、使用指针方法2、使用变量的的引用请总结引用时要注意什么问题。
(4)有5个字符串,要求对他们按由小到大的顺序排列,用string方法,(5)编译一个程序,用同一个函数名对n个数据进行从小到大排序,数据类型可以是整型、单精度型、双精度型。
1、用重载函数实现。
2、用函数模板实现。
比较这两种方法各有什么特点,什么情况下可以用函数模板代替重载函数?3.实验结果〔1〕程序:#include <iostream>using namespace std;int main( ){int add(int x,int y);int a,b,c;cin >> a >> b;c=add(a,b);cout <<" a+b=" << c <<endl;return 0;}int add(int x,int y){int z;z=x+y;return(z);}运行结果:〔2〕程序1:用不带默认参数的函数实现#include <iostream>using namespace std;int main( ){int max(int a,int b,int c);int max(int a,int b);int a,b,c;cin >> a >> b >> c;cout << " max(a,b,c)= " << max(a,b,c) << endl;cout << " max(a,b)= " <<max(a,b) << endl;return 0;}int max(int a,int b,int c){if(b>a) a=b;if(c>a) a=c;return a;}int max(int a,int b){if(a>b) return a;else return b;}运行结果:程序2:用带有默认参数的函数实现#include <iostream>using namespace std;int max(int a,int b,int c=0){if (b>a)a=b;if (c>a)a=c;return a;}int main(void){int a,b,c;cin >> a >> b >> c;cout << " max(a,b,c)= " << max(a,b,c) << endl;cout << " max(a,b)= " <<max(a,b) << endl;return 0;}运行结果:有时多次调用同一函数时用的是同样的实参直,C++提供的带有默认参数的的使用更加方便,给形参一个默认值,这样形参就不必一定要从实参取值了。
一、单项选择题(每题2分,共60分)1.下列关于C++与C语言关系描述中错误的是【】。
(A) C++是C语言的超集(B) C++对C语言进行了扩充(C) C++和C语言都是面向对象的程序设计语言(D) C++包含C语言全部的语法特征2. C++对C语言做了很多改进,下列描述中【】使得C语言发生了质变,即从面向过程变成面向对象。
(A) 增加了一些新的运算符(B) 允许函数重载,并允许设置默认参数(C) 规定函数说明必须用原型(D) 引进类与对象的概念3.下列关于面向对象概念的描述中,【】是错误的。
(A) 面向对象方法比面向过程方法更先进(B) 面向对象方法中使用了一些面向过程中没有的概念(C) 面向对象方法完全替代了结构化程序设计方法(D) 面向对象程序方法具有封装性、继承性和多态性4.对于语句cout<<endl<<x;中各个组成部分,下列叙述中错误的是【】。
(A) cout是一个输出流对象 (B) endl的作用是输出回车换行(C) x是一个变量 (D) <<称为提取运算符5.下列【】是C++合法的标识符。
(A) _256 (B) computer~1 (C) case (D) 5char6.下列【】是C++合法的字符型常量。
(A) 97 (B)”a” (C) ‘\t’ (D) a7.以下自定义变量名中,【】是合法的。
(A) CHINA (B) byte-size (C) double (D) A+a8.下列【】是C++合法的标识符。
(A) 2op (B) -256 (C) case (D) Dfe9.下列【】是C++合法的标识符。
(A) foo-bar (B) _256 (C) new (D) 2b10.下列整型常量的书写中,错误的是【】。
(A)0xaf (B) 0853 (C) 34 (D) OX1B11.下列【】属于float类型常量。
(A) 3.14f (B) 0.0314E2 (C) 3.14L (D) 3.1412.常量的书写格式决定了常量的类型和值,0x1011是【】。
C++对C的扩充
【实验目的】:
1.熟练掌握函数模板的使用。
2.能熟练掌握引用参数传递方式。
3.熟练掌握string类的用法。
4.掌握动态分配/撤销内存的运算符new和delete的用法。
【实验内容】:
1.从键盘上输入一个字符串”Hello C++”,并在屏幕终端输出该字符串。
提示:使用getline函数。
2.通过实验,判断下列语句哪些是错误的,并说明错误的原因。
1)char ch = "The long, winding road";
2)int ival = &ch;
3)char *pc = &ival;
4)string st( &ch );
5)pc = 0;
6)pc = '0';
7)st = pc;
8)st = &ival;
9)ch = pc[0];
10)ch = *pc;
11)pc = st;
12)*pc = ival;
3.读下面两个语义上等价的程序,其中一个使用C 风格字符串,另一个使用string 类
型,给两个程序都加上注释,并说明该程序完成了什么功能。
// ***** C风格字符串*****
// ***** string类型*****
4.利用函数模板,编写函数Maxl可分别求取2个整数、3个整数、2个双精度数、3
个双精度数的最大值。
提示:使用函数模板重载。
5.从键盘上输入5个英文单词,按要求完成下列操作。
a)比较单词的长度,从大到小输出这5个英文单词。
b)比较单词的各个字母,按照该单词在英文字典出现中的先后顺序,输出这5
个英文单词。
6.从键盘输入两个数字,分别赋值给变量a、b,设计一个子函数swap,实现这两个
数字交换次序。
要求:使用变量的引用作为函数swap的参数。
7.从键盘上输入N名学生的姓名、C语言成绩、高等数学成绩、数据结构成绩,使
用结构体进行存储。
编写程序,实现下述要求。
要求:该程序可实现按学生姓名的降序输出学生的信息;
可按照每名学生的平均成绩升序输出学生的基本信息;
可按照各科成绩的升序输出学生的信息。
提示:亦可从文件读取学生的成绩信息取代键盘录入。
8.完成教材第1章课后习题1 ~18(P33)。
【实验体会】:
1.5
1.6
1.7
1.9
1.10
1.12
1.13
1.14
1.15
1.16
1.17。