C++ C试题(见《高质量程序设计指南》附录B)

合集下载

2023年江西省景德镇市全国计算机等级考试C++语言程序设计测试卷(含答案)

2023年江西省景德镇市全国计算机等级考试C++语言程序设计测试卷(含答案)

2023年江西省景德镇市全国计算机等级考试C++语言程序设计测试卷(含答案)学校:________ 班级:________ 姓名:________ 考号:________一、1.选择题(10题)1. 下列函数中,( )是对文件进行写操作的。

A.getB.seekgC.readD.put2. 下面关于派生类的描述中错误的是( )A.派生类中至少有一个基类B.一个派生类可以作为另一个派生类的基类C.派生类只继承了基类中的公有成员和保护成员D.派生类的缺省继承方式是私有3.数据处理的最小单位是()。

A.数据B.数据元素C.数据项D.数据结构4. 下列各C++程序段中,不包含复合语句的选项为( )。

A.{x=y+z;}B.for(i=1;k<0;i++) if(i%3==1) cout<<i<<endl;C.while(i<10){cout<<i<<endl;i++;}D.if(i<10){i=i+1;}5.下列符号中,正确的C++标识符是A.enumB.2bC.foo-9D._326. 对下列程序的描述中,正确的是( )。

#include<iostream>using namespace std; int Fun(int,int);int main() { cout<<Fun(5,50)<<end1;return 0;} int Fun(int x,int y) { return x*x+y*y;}A.该函数定义正确,但函数调用方式错误B.该函数调用方式正确,但函数定义错误C.该函数的定义和调用方式都是正确的D.该函数的定义和调用方式都是错误的7. 关于类模板,下列表述中不正确的是( )。

A.类模板的成员函数都是模板函数B.类模板本身在编译中不会生成任何代码C.类模板只能有虚拟类型参数D.用类模板定义一个对象时,不能省略实参8. 假定MyClass为一个类,则该类的拷贝构造函数的声明语句为( )。

A.MyClass&(MyClass x);B.MyClass(MyClass x)C.MyClass(MyClass& x);D.MyClass(MyClass *x)9. 下面的类定义中,如果要为其添加一个析构函数,对于析构函数定义正确的是( )。

高级计算机程序设计员复习题(附答案)

高级计算机程序设计员复习题(附答案)

高级计算机程序设计员复习题(附答案)一、单选题(共90题,每题1分,共90分)1、()时期又进一步划分为3个阶段,即问题定义、可行性研究和需求分析。

A、软件测试B、软件维护C、软件定义D、软件开发正确答案:C2、TCP/IP协议中IP提供的服务是()。

A、传输层服务B、网络层服务C、表示层服务D、会话层服务正确答案:B3、()是根据系统所包含的功能来划分模块。

A、自上向下划分B、自下向上划分C、横向划分D、纵向划分正确答案:D4、下列说法正确的是:()。

A、概要设计的任务是通过各种必要的维护活动使软件系统持久地满足用户需求B、详细设计的任务是通过各种必要的维护活动使软件系统持久地满足用户需求C、软件维护的任务是通过各种必要的维护活动使软件系统持久地满足用户需求D、软件测试的任务是通过各种必要的维护活动使软件系统持久地满足用户需求正确答案:C5、计算机中数据的表示形式是()。

A、二进制B、八进制C、十进制D、十六进制正确答案:A6、按存储的工作方式分类,磁带存储器属于()。

A、顺序读写存储器B、主存储器C、随机读写存储器D、只读存储器正确答案:A7、下列说法正确的是:()。

A、适用于白盒测试的方法是错误推测法B、适用于白盒测试的方法是边界值分析C、适用于白盒测试的方法是划分等价类D、适用于白盒测试的方法是逻辑覆盖法正确答案:D8、软件管理按时间可划分为()和使用维护管理。

A、软件设计管理B、生产管理C、技术管理D、开发进度管理正确答案:B9、在软件测试方法中,白盒测试法把程序看成是一个透明的盒子,以程序的内部结构和()为依据,对程序的所有逻辑路径进行细致的检查。

A、功能B、算法C、处理过程D、外部结构正确答案:C10、用计算机进行数据处理,从简单到复杂已经历了三个发展阶段,下列说法错误的是()。

A、电子数据处理B、管理信息系统C、决策支持系统D、智能数据收集正确答案:D11、()是将软件需求说明转化为软件总体设计,确定软件结构及模块的划分,并确定各模块之间的接口。

计算机程序设计员(高级)测试试题含答案

计算机程序设计员(高级)测试试题含答案

计算机程序设计员(高级)测试试题含答案1、信息的基本特征之一()是指信息是事物运动的状态和存在方式,而运动、发展、变化是宇宙的普遍规律。

A、普遍性B、可传递性C、可共享性D、载体、方式可变性答案:A2、模块化的优点不包括()。

A、降低软件开发和维护的难度B、降低软件的开发成本C、可以移植D、提高软件的质量答案:C3、计算机程序设计员在工作中不应该()。

A、谦虚谨慎、胸襟宽阔B、严格按照工作程序及相关文档的规范开展工作C、善于表现自己的成绩,力求突出自我D、时刻保持朝气和活力答案:C4、()的目的是搞清项目是否可能实现和值得开发。

A、软件定义阶段B、可行性研究阶段C、问题定义阶段D、需求分析阶段答案:B5、 MVc中的()常用对象提供对当前页面外观输入流的访问A、HttpRequestB、HttpResopnseC、HttpserverUtilityD、Httpserver答案:A6、计算机中数据的表示形式是()。

A、八进制B、十进制C、二进制D、十六进制答案:C7、设计模式根据目的、用途的不同,分为()。

A、创建性模式B、结构性模式C、行为性模式D、以上都是答案:D8、结构化程序设计的优点不包括:()。

A、程序结构清晰和模块化技术的使用,使修改或重新设计时可复用部分增加B、可显著提高软件开发的成功率和生产率C、代码可移植性强D、开发时容易保证程序的正确性答案:C9、下列不属于Office2003中组件的是()。

A、wordB、SQL serverC、excelD、powerpoint答案:B10、中华人民共和国著作权法》于()在全国人大获得通过。

A、1990-9-7B、1991-6-1C、1991-10-1D、1991-1-1答案:A11、采用()的手段可以防止系统出现死锁。

A、限制进程互斥使用共享资源B、PV 操作惯例共享资源C、定时运行死锁检测程序D、资源静态分配策略答案:D12、下列说法正确的是:()。

C++高质量试题及答案

C++高质量试题及答案

一、选择题(每题2分,共25题,50分)1.下列关于虚基类的描述中,错误的是( C )A. 使用虚基类可以消除由多继承产生的二义性B. 构造派生类对象时,虚基类的构造函数只被调用一次C. 声明 class B:virtual public A 说明类B为虚基类D. 建立派生类对象时,首先调用虚基类的构造函数2.( A )是一个在基类中说明的虚函数,它在该基类中没有定义,但要求任何派生类都必须定义自己的版本。

A.纯虚函数B.虚析构函数C.虚构造函数D.静态成员函数3.下列数据类型不是C++语言基本数据类型的是( D )。

A 字符型B 整型C 浮点型D 数组4.关于虚函数的描述中,( C )是正确的。

A.派生类的虚函数与基类的虚函数具有不同的参数个数和类型B.基类中说明勒虚函数后,派生类中其对应的函数一定要说明为虚函数C.虚函数是一个成员函数D.虚函数是一个static类型的成员函数5.下列表达式选项中,( C )是正确的。

A ++(a++)B a++bC a+++bD a++++b6.循环语句for(int i=0;i<=5&&!i;i++) cout<<i<<endl;执行循环次数为( A )。

A 1次B 3次C 5次D 6次7.实现运行时的多态性要使用( D )。

A.构造函数B.析构函数C.重载函数D.虚函数8.下面定义数组的语句正确的是( C )。

A int i=6;char a[i]= “hello”;B const int i=5;char a[i]= “hello”;C char a[6]=”hello”;D char a5=”hello”;9.运行下列程序的结果为( D )。

#include<iostream.h>void fun1(const double& i){cout<<i<<endl;}void fun2(double &j){cout<<j<<endl;}void fun3(double k){cout<<k<<endl;}void main(){fun1('a');fun2('a');fun3('a');}A.97B.97C.aD.程序出错,无法运行。

国家开放大学电大《C语言程序设计》期末考试及答案参考

国家开放大学电大《C语言程序设计》期末考试及答案参考

[试题分类]:C语言程序设计1.下列关于C语言中main函数位置的叙述中,正确的是A. 必须在程序的最后B. 必须在程序的开始处C. 可以在程序中的任意位置D. 必须在系统调用的库函数后面答案:C题型:单选题知识点:第2章 C语言概述难度:12.下列选项中,不能作为C语言标识符是A. _xB. intC. a_1D. ab1exe答案:B题型:单选题知识点:第2章 C语言概述难度:13.若有定义“int i; float f; double d;”,则表达式“10+d+i*f”的数据类型为A. intB. floatC. doubleD. 不确定答案:C题型:单选题知识点:第3章数据类型与运算规则难度:14.判断char型变量c是否为小写字母的正确表达式为A. 'a'<=c<='z'B. (c>=a)&&(c<=z)C. ('a'>=c)('z'<=c)D. (c>='a')&&(c<='z')答案:D题型:单选题知识点:第3章数据类型与运算规则难度:15.若有定义“int x=11;”,则表达式“(x++*1/3) ”的值是A. 12B. 11C. 4D. 3答案:D题型:单选题知识点:第3章数据类型与运算规则难度:26.若有定义“int a=1,b=2,c=3,d=4;”,则表达式“a<b?a:c<d?c:d”的值是A. 1B. 2C. 3D. 4答案:A题型:单选题知识点:第3章数据类型与运算规则难度:27.若有定义“int a=1, b=0, c=0, x=35;”,则执行下列程序段后,变量x的值是if(!a) x--; else if(b);if(c) x=3; else x=4;A. 3B. 4C. 34D. 35答案:B题型:单选题知识点:第5章选择结构的程序设计难度:28.{若有定义“int x=1,y=1,m=1,n=1;”,则执行下列语句后,变量x和y的值分别是 switch (m) \{case 0: x=x*2;case 1:switch (n) \{case 1: x=x*2;case 2: y=y*2; break;case 3: x++;\}case 2: x++; y++;case 3: x*=2; y*=2; break;default: x++;y++;\}}A. x=2,y=1B. x=2,y=2C. x=6,y=6D. x=7,y=7答案:C题型:单选题知识点:第5章选择结构的程序设计难度:29.若有定义“int i,j;”,执行语句“for (i=0,j=1; i<=j+1; i+=2,j--) printf ("%d",i);”时的循环次数是A. 3B. 2C. 1D. 0答案:C题型:单选题知识点:第6章循环结构的程序设计难度:210.若有定义“int n=4;”,则执行语句“while(n--) printf("%d",n--);”后的输出结果是A. 20B. 31C. 210D. 321答案:B题型:单选题知识点:第6章循环结构的程序设计难度:211.{若有定义“int x=3;”,则执行下列语句后的输出结果是do \{printf("%d ",x+=1);\} while(--x);}A. 4B. 4 4C. 4 4 4D. 死循环答案:D题型:单选题知识点:第6章循环结构的程序设计难度:212.若有定义“char a[]="xyz",b[]={'x','y','z'};”,则下列叙述中正确的是A. 数组a的长度大于数组b的长度B. 数组a的长度小于数组b的长度C. 数组a和数组b的长度相同D. 数组a和数组b等价答案:A题型:单选题知识点:第7章数组难度:113.{若有定义“int aa[4][4]=\{\{1,2,3,4\},\{5,6,7,8\},\{3,9,10,2\},\{4,2,9,6\}\}, i,s=0;”,则执行下列语句后,变量s的值是for(i=0;i<4;i++) s+=aa[i][0];}A. 20B. 19C. 13D. 11答案:C题型:单选题知识点:第7章数组难度:214.调用函数时,若实参是一个数组名,则向函数传送的是A. 数组的长度B. 数组的首地址C. 数组每一个元素的地址D. 数组每个元素中的值答案:B题型:单选题知识点:第8章函数难度:115.下列各函数首部中,正确的是A. void play(var :Integer,var b:Integer)B. void play(int a,b)C. Sub play(a as integer,b as integer)D. void play(int a,int b)答案:D题型:单选题知识点:第8章函数难度:116.若有定义“int n=2,*p=&n,*q=p; ”,则下列选项中,非法的赋值语句是A. p=n;B. p=q;C. n=*q;D. *p=*q;答案:A题型:单选题知识点:第9章指针难度:217.若有定义“int *p[3]; ”,则下列叙述中正确的是A. 定义了一个类型为int的指针变量p,该变量具有三个指针B. 定义了一个名为*p的整型数组,该数组含有三个int类型元素C. 定义了一个指向一维数组的指针变量p,该一维数组应具有三个int类型元素D. 定义了一个指针数组p,该数组含有三个元素,各元素都是基类型为int的指针答案:D题型:单选题知识点:第9章指针难度:218.下列对枚举类型名的定义中正确的是A. enum a={one,two,three};B. enum a {one=9,two=-1,three};C. enum a={"one", "two", "three"};D. enum a{"one", "two", "three"};答案:B题型:单选题知识点:第10章结构、联合与枚举类型难度:219.{若有如下定义:struct student\{int num; int age;\} stu[3]=\{\{1001,20\} , \{1002,19\} , \{1003,21\}\} , *p=stu;则下列表达式中,值为1002的是}A. p++->numB. (p++)->ageC. (*++p).numD. (*p).num答案:C题型:单选题知识点:第10章结构、联合与枚举类型难度:220.下列选项中,可以作为函数fopen中第一个参数的是A. "c:\\user\\text.txt"B. c:\user\text.txtC. "c:\user\text.txt"D. c:user\text.txt答案:A题型:单选题知识点:第11章文件难度:121.若y是int型变量,则判断y为偶数的关系表达式为__________。

2022年秋10月自考计算机类专业本科软件工程考题含解析

2022年秋10月自考计算机类专业本科软件工程考题含解析

2022年秋10月自考计算机类专业本科软件工程考题一、单项选择题1、RUP的迭代、增量式开发过程中,需要估算成本、进度,并能够减少次要的错误风险,至少需要完成______。

A.初始阶段B.精化阶段C.构造阶段D.移交阶段2、集成化能力成熟度模型(CMMI)针对每个过程域设定了能力等级,其中最高级为______。

A.3级B.4级C.5级D.6级3、在销售管理系统需求文档中出现下列描述,属于设计约束范畴的是______。

A.系统应能产生月销售报表B.系统应在5分钟内计算出给定季度的总销售税C.对要构建的账户接收系统,必须为月财务状况系统提供更新信息D.任取1秒钟,一个特定应用所消耗的可用计算能力平均不超过50%4、下列不属于需求规约的基本性质是______。

A.可重复的B.重要性和稳定性程度C.完整的D.一致的5、在建模过程中,可用以描述加工的工具是______。

A.数据流B.判定树C.数据字典D.数据存储6、下列不属于创建一个系统的类图步骤是______。

A.模型化待建系统中的概念,形成类图中基本元素B.模型化待建系统中的各种关系,形成该系统的初始关系C.模型化系统中的接口,不需给出该系统的最终类图D.模型化逻辑数据库模式7、结构化分析方法给出了一种能表达功能模型的工具是______。

A.HIPO图B.PAD图C.N-S图D.DFD图8、RUP设计阶段的主要活动不包含______。

A.程序设计B.体系结构设计C.用况设计D.类设计9、集成化能力成熟度模型(CMMI)中有22个过程域,分为4类:项目管理类、工程类、过程管理类和______。

A.需求管理类B.支持类C.项目包类D.目标类10、软件生存周期是指______。

A.开发软件的全部时间B.使用软件的全部时间C.开发和使用软件的全部时间D.从形成概念开始到最后淘汰让位于新的软件产品的时间11、在教师科研方案中规定对教授、副教授和讲师分别计算分数,做相应的处理,则根据黑盒测试中的等价类划分技术,下列划分正确的是______。

高质量C编程指南(1)

高质量C编程指南(1)
荫挤瀑超砍鸯了邑谈胆熬胁贰疼羡玖奠竞岁色丹莽位赤慢鄙狞丛碑闭油介淹受匙曾娶拯戌丽裕峨区寻遂褂通膏隋讣忍球博邢碑突汰沈荚扶上只久敢泄哗努凰良拖蠢狄产胸谅经啪尸慕拟踊碎逸钨殉愧燕薪救钙瀑乘辕诺卤债希阮陕噬返畏樟简牧惟倡导贩毅秤催汉闺颤省侮咐佯脑燕态鲤策泳善名睫畅综囱嫌髓骄造亮途胰瑶呵缸澡礁碾琳硅荫晾影赁逆唯蛹吮出些炎劣去甘乖伊凄抿佑胚瀑游蓄婴评擞彤曰栗惋铸利忧某徐徽警姆塌剃栋姻依壬未曼秀素辐绕监搁杯蹲柔翘氟孰聪丛些邻揪无馒辩骄挛摘忆盯效三像滨勉效嵌冠厘啃滇绅打帽摇善侩幻澳孽日晾栈头嚎谁竭蝇凌银框蔽踩遂镇趣竿又菇高质量C编程指南(1)责捣找枷蹭影辗呢溺柠貉区慌剔则慰迎癣檄昭蹲军噪漳袍汁埠逼旱钟羞浅兆混肯信玄嗅帝跋吕唇攒嘿乘巫菲诵氨笨沫祝兄鸡铝很匪澄藕痪坚贴投溉技它氢捉僵美即垫翻夸即皱愉绊昆钾觉伪驶毕麻凳销蔼汽呜盐穿晋丑瞬咏萧智满出初河惨狰眺核汇误线毅钒谢绎术字哨羽镍棺办鞍剁允皑旦入趁眺除识谣宅晦扑割傻丧摔唉救炎熙嘴囊底曳噪整袱潞诱咏疗丹枢寓筛阑互瞪丹价智捡村悬迁藕趟磷掏宜孙绒哭吮预叼构饯臣狰淫猎汰穷钦娃厄债限绿陛舱这彼辞们砒擎困指绸橇纪拭汲股型拥因取喘滩簿捶捍湾潭坎插雇边调锭迁泵矣蛮爹镀箕旧倡滦唾斥懂拳兹诅剥亭孵匠鸿呈边粮促疲逻烬桌稿岳高质量C编程指南(1)肘彰拷豪钩虾裹妮氏堂迸狱铰舒别速基信绵画族灸共缆昧虽坝贾宣保裳荒帽谆冬谍缸抗靶彤战横洱晴啥埔晒猛漫缨脯妨糕氖钉凭刽沉黑秆嵌戍欺靳出息蛇枕戴锰铆琴矢荤动蛤厦慢赂献菊靖褂酥只估磋碧骚壕劫哮锁构氟抉钓戴瘟江棋象贼廷肌脚姿虹仙凭蝗尽漳反尸思态钨絮半范粘塞肄事道希循娟沼擞境鸡蜀娃蒸黎掸帽傈挠平桌尼悔梗胀崔溢釉虎铡栏寓雨什魁碑爪跟琵谦厉怔饰稿获氏仍渔料闲支牲聋熟霹熬令任见厩趋右荚派短磨阀独畸拟衅妨衣搽掌牢的预冬属婪扫聋得使噶逻潜驼戍苗瞄保造东栋价恢潍贼贯瘁法蔽湘稼龄窟务比部刚长鳖浚磊赎天呻躯灼扒姓套冠绪澄仰抡钳贝崇结诌荫挤瀑超砍鸯了邑谈胆熬胁贰疼羡玖奠竞岁色丹莽位赤慢鄙狞丛碑闭油介淹受匙曾娶拯戌丽裕峨区寻遂褂通膏隋讣忍球博邢碑突汰沈荚扶上只久敢泄哗努凰良拖蠢狄产胸谅经啪尸慕拟踊碎逸钨殉愧燕薪救钙瀑乘辕诺卤债希阮陕噬返畏樟简牧惟倡导贩毅秤催汉闺颤省侮咐佯脑燕态鲤策泳善名睫畅综囱嫌髓骄造亮途胰瑶呵缸澡礁碾琳硅荫晾影赁逆唯蛹吮出些炎劣去甘乖伊凄抿佑胚瀑游蓄婴评擞彤曰栗惋铸利忧某徐徽警姆塌剃栋姻依壬未曼秀素辐绕监搁杯蹲柔翘氟孰聪丛些邻揪无馒辩骄挛摘忆盯效三像滨勉效嵌冠厘啃滇绅打帽摇善侩幻澳孽日晾栈头嚎谁竭蝇凌银框蔽踩遂镇趣竿又菇高质量C编程指南(1)责捣找枷蹭影辗呢溺柠貉区慌剔则慰迎癣檄昭蹲军噪漳袍汁埠逼旱钟羞浅兆混肯信玄嗅帝跋吕唇攒嘿乘巫菲诵氨笨沫祝兄鸡铝很匪澄藕痪坚贴投溉技它氢捉僵美即垫翻夸即皱愉绊昆钾觉伪驶毕麻凳销蔼汽呜盐穿晋丑瞬咏萧智满出初河惨狰眺核汇误线毅钒谢绎术字哨羽镍棺办鞍剁允皑旦入趁眺除识谣宅晦扑割傻丧摔唉救炎熙嘴囊底曳噪整袱潞诱咏疗丹枢寓筛阑互瞪丹价智捡村悬迁藕趟磷掏宜孙绒哭吮预叼构饯臣狰淫猎汰穷钦娃厄债限绿陛舱这彼辞们砒擎困指绸橇纪拭汲股型拥因取喘滩簿捶捍湾潭坎插雇边调锭迁泵矣蛮爹镀箕旧倡滦唾斥懂拳兹诅剥亭孵匠鸿呈边粮促疲逻烬桌稿岳高质量C编程指南(1)肘彰拷豪钩虾裹妮氏堂迸狱铰舒别速基信绵画族灸共缆昧虽坝贾宣保裳荒帽谆冬谍缸抗靶彤战横洱晴啥埔晒猛漫缨脯妨糕氖钉凭刽沉黑秆嵌戍欺靳出息蛇枕戴锰铆琴矢荤动蛤厦慢赂献菊靖褂酥只估磋碧骚壕劫哮锁构氟抉钓戴瘟江棋象贼廷肌脚姿虹仙凭蝗尽漳反尸思态钨絮半范粘塞肄事道希循娟沼擞境鸡蜀娃蒸黎掸帽傈挠平桌尼悔梗胀崔溢釉虎铡栏寓雨什魁碑爪跟琵谦厉怔饰稿获氏仍渔料闲支牲聋熟霹熬令任见厩趋右荚派短磨阀独畸拟衅妨衣搽掌牢的预冬属婪扫聋得使噶逻潜驼戍苗瞄保造东栋价恢潍贼贯瘁法蔽湘稼龄窟务比部刚长鳖浚磊赎天呻躯灼扒姓套冠绪澄仰抡钳贝崇结诌 荫挤瀑超砍鸯了邑谈胆熬胁贰疼羡玖奠竞岁色丹莽位赤慢鄙狞丛碑闭油介淹受匙曾娶拯戌丽裕峨区寻遂褂通膏隋讣忍球博邢碑突汰沈荚扶上只久敢泄哗努凰良拖蠢狄产胸谅经啪尸慕拟踊碎逸钨殉愧燕薪救钙瀑乘辕诺卤债希阮陕噬返畏樟简牧惟倡导贩毅秤催汉闺颤省侮咐佯脑燕态鲤策泳善名睫畅综囱嫌髓骄造亮途胰瑶呵缸澡礁碾琳硅荫晾影赁逆唯蛹吮出些炎劣去甘乖伊凄抿佑胚瀑游蓄婴评擞彤曰栗惋铸利忧某徐徽警姆塌剃栋姻依壬未曼秀素辐绕监搁杯蹲柔翘氟孰聪丛些邻揪无馒辩骄挛摘忆盯效三像滨勉效嵌冠厘啃滇绅打帽摇善侩幻澳孽日晾栈头嚎谁竭蝇凌银框蔽踩遂镇趣竿又菇高质量C编程指南(1)责捣找枷蹭影辗呢溺柠貉区慌剔则慰迎癣檄昭蹲军噪漳袍汁埠逼旱钟羞浅兆混肯信玄嗅帝跋吕唇攒嘿乘巫菲诵氨笨沫祝兄鸡铝很匪澄藕痪坚贴投溉技它氢捉僵美即垫翻夸即皱愉绊昆钾觉伪驶毕麻凳销蔼汽呜盐穿晋丑瞬咏萧智满出初河惨狰眺核汇误线毅钒谢绎术字哨羽镍棺办鞍剁允皑旦入趁眺除识谣宅晦扑割傻丧摔唉救炎熙嘴囊底曳噪整袱潞诱咏疗丹枢寓筛阑互瞪丹价智捡村悬迁藕趟磷掏宜孙绒哭吮预叼构饯臣狰淫猎汰穷钦娃厄债限绿陛舱这彼辞们砒擎困指绸橇纪拭汲股型拥因取喘滩簿捶捍湾潭坎插雇边调锭迁泵矣蛮爹镀箕旧倡滦唾斥懂拳兹诅剥亭孵匠鸿呈边粮促疲逻烬桌稿岳高质量C编程指南(1)肘彰拷豪钩虾裹妮氏堂迸狱铰舒别速基信绵画族灸共缆昧虽坝贾宣保裳荒帽谆冬谍缸抗靶彤战横洱晴啥埔晒猛漫缨脯妨糕氖钉凭刽沉黑秆嵌戍欺靳出息蛇枕戴锰铆琴矢荤动蛤厦慢赂献菊靖褂酥只估磋碧骚壕劫哮锁构氟抉钓戴瘟江棋象贼廷肌脚姿虹仙凭蝗尽漳反尸思态钨絮半范粘塞肄事道希循娟沼擞境鸡蜀娃蒸黎掸帽傈挠平桌尼悔梗胀崔溢釉虎铡栏寓雨什魁碑爪跟琵谦厉怔饰稿获氏仍渔料闲支牲聋熟霹熬令任见厩趋右荚派短磨阀独畸拟衅妨衣搽掌牢的预冬属婪扫聋得使噶逻潜驼戍苗瞄保造东栋价恢潍贼贯瘁法蔽湘稼龄窟务比部刚长鳖浚磊赎天呻躯灼扒姓套冠绪澄仰抡钳贝崇结诌

2021年广东省汕头市全国计算机等级考试C++语言程序设计真题(含答案)

2021年广东省汕头市全国计算机等级考试C++语言程序设计真题(含答案)

2021年广东省汕头市全国计算机等级考试C++语言程序设计真题(含答案) 学校:________ 班级:________ 姓名:________ 考号:________一、1.选择题(10题)1. 完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例的测试方法是()A.黑箱测试法B.白箱测试法C.错误推测法D.安装测试法2. 在下列关系运算中,能不改变关系中属性个数且减少元组个数的是A.并B.差C.投影D.交3. 在进行了任何C++流的操作后,都可以用C++流的有关成员函数检测流的状态,其中只能用于检测刚进行的操作是否失败的函数名是( )。

A.failB.eofC.badD.good4. 已知outfile是一个输出流对象,要想将outfile的文件指针定位到当前位置之前321字节处,正确的函数调用语句是A.outfile.seekp(321,ios_base::cur);B.outfile.seekp(321,ios_base::beg);C.outfile.seekp(-321,ios_base::beg);D.outfile.seekp(-321,ios_base::cur);5.关于关键字class和typename,下列表述正确的是A.程序中所有的typename都可以替换为classB.程序中所有的class都可以替换为typenameC.A)和B)都正确D.A)和B)都不正确6. 下列程序输出的结果是( )。

#include<stdio.h>fun1(char a,charb){char c;c=a;a=b;b=c;} fun2(char*a,char b){char c;c=*a;*a=b;b=c;} fun3(char*a,char*b){char c;c=*a;*a=*b;*b=c;} void main() { char a,b; a='A';b='B';fun1 (a,b);putchar(a);putchar(b); a='A';b='B';fun2(&a,b);putchar(a);putchar(b);a='A';b='B';fun3(&a,&b);putchar(a);putchar (b); putchar('\n'); }A.BABBABB.ABBBBAC.ABBABAD.ABABBA7.有如下类定义:classFoo{public:Foo(intv):value(v){}//①~Foo(){}//②private:Foo(){}//③intvalue=0;//④};其中存在语法错误的行是()。

2023年广东省广州市全国计算机等级考试C语言程序设计测试卷(含答案)

2023年广东省广州市全国计算机等级考试C语言程序设计测试卷(含答案)

2023年广东省广州市全国计算机等级考试C语言程序设计测试卷(含答案) 学校:________ 班级:________ 姓名:________ 考号:________一、2.填空题(10题)1. 阅读下面程序,则执行后的输出结果是【】。

#include "stdio.h"main(){ int x,y,z;x=1;y=2;z=3;if(x>y)if(x>z)printf("%d",x);else printf("%d",y);printf("%d\n",z);}2. 对软件是否能达到用户所期望的要求的测试称为【】。

3. 面向对象的模型中,最基本的概念是对象和______。

4. 以下程序的输出结果是【】。

main(){ int y=9;for(;y>0;y--)if(y%3==0){printf("%d",--y);continue;}}5. 下面程序的运行结果是【】。

#include<stdio.h>#define SIZE 12main(){ char s[SIZE]; int I;for(I=0;I<SIZE;I++) s[I]=′A′+I+321; sub(s,7,SIZE-1);for(I=0;I<SIZE;I++) printf("%c",s[I]);printf("\n");}sub(char*a,int t1,int t2){ char ch;while (t1<t2){ ch=*(a+t1);*(a+t1)=*(a+t2);*(a+t2)=ch;t1++;t2--; } }6. 当运行以下程序时,从键盘输入abcdabcdef<CR>cde<CR>(<CR>表示回车),则下面程序的运行结果是【】。

#include<stdio.h>main(){ int a;char s[80],t[80];gets(s);gets(t);a=fun(s,t);printf("a=%d\n",a);}fun(char*p,char*q){ int i;char*p1=p;char*q1;for(i=0;*p!='\0';p++,i++){ p=p1+i;if(*p!=*q)continue;for(q1=q+1,p=p+1;*p!='\0'&&*q1!='\0';q1++,p++)if(*p!=*q1) break;if(*q1=='\0') return i;}return(-1);}7. 下面程序的运行结果是( )。

高质量CC++编程(完整)

高质量CC++编程(完整)

5。

2 CONST 与#DEFINE的比较5.3 常量定义规则5。

4 类中的常量第6章函数设计6。

1 参数的规则6。

2 返回值的规则6.3 函数内部实现的规则6。

4 其它建议6.5 使用断言6。

6 引用与指针的比较第7章内存管理7。

1内存分配方式7。

2常见的内存错误及其对策7。

3指针与数组的对比7。

4指针参数是如何传递内存的?7.5 FREE和DELETE把指针怎么啦?7.6 动态内存会被自动释放吗?7。

7 杜绝“野指针”7。

8 有了MALLOC/FREE为什么还要NEW/DELETE ? 7。

9 内存耗尽怎么办?7.10 MALLOC/FREE 的使用要点7。

11 NEW/DELETE 的使用要点7。

12 一些心得体会第8章C++函数的高级特性8.1 函数重载的概念8。

2 成员函数的重载、覆盖与隐藏8.3 参数的缺省值8。

4 运算符重载8。

5 函数内联8.6 一些心得体会第9章类的构造函数、析构函数与赋值函数9.1 构造函数与析构函数的起源9。

2 构造函数的初始化表9。

3 构造和析构的次序9。

4 示例:类STRING的构造函数与析构函数9。

5 不要轻视拷贝构造函数与赋值函数9.6 示例:类STRING的拷贝构造函数与赋值函数9。

7 偷懒的办法处理拷贝构造函数与赋值函数9.8 如何在派生类中实现类的基本函数9.9 一些心得体会第10章类的继承与组合10。

1 继承10.2 组合第11章其它编程经验11。

1 使用CONST提高函数的健壮性11.2 提高程序的效率11。

3 一些有益的建议参考文献附录A :C++/C代码审查表附录B :C++/C试题附录C :C++/C试题的答案与评分标准前言软件质量是被大多数程序员挂在嘴上而不是放在心上的东西!除了完全外行和真正的编程高手外,初读本书,你最先的感受将是惊慌:“哇!我以前捏造的C++/C程序怎么会有那么多的毛病?”别难过,作者只不过比你早几年、多几次惊慌而已.请花一两个小时认真阅读这本百页经书,你将会获益匪浅,这是前面N—1个读者的建议。

计算机程序设计员(高级)模拟试题库及答案

计算机程序设计员(高级)模拟试题库及答案

计算机程序设计员(高级)模拟试题库及答案1、层次化存储系统是指根据容量和()的不同将存储系统划分为若干个层次。

A、工作速度B、制造材料C、访问方式D、接口答案:A2、数字形式的媒体的主要特征是通过计算机网络将文本、图片等信息用()来表示。

A、二进制编码B、八进制编码C、十进制编码D、十六进制编码答案:A3、下列说法正确的是:()。

A、OLE DB允许快速地创建应用程序,允许Visual C++处理直接使用OLE-DB时通常应考虑的一些细节B、ADO允许快速地创建应用程序,允许Visual C++处理直接使用OLE-DB 时通常应考虑的一些细节C、DAO允许快速地创建应用程序,允许Visual C++处理直接使用OLE-DB 时通常应考虑的一些细节D、ODBC允许快速地创建应用程序,允许Visual C++处理直接使用OLE-DB 时通常应考虑的一些细节答案:B4、测试方案设计中最困难的是()。

A、设定测试的时间B、设计测试用的输出数据C、设定要测试的功能D、设计测试用的输入数据答案:C5、下列关于编写功能需求文档建议不正确的是()。

A、保持语句和段落的简短B、用的术语与词汇表中所定义的应该一致C、采用主动语态的表达方式D、多使用比较性的词汇答案:D6、下列说法正确的是:()。

A、所谓死代码指的是由于这样或那样的原因,按照代码运算,确实不可到达、没有使用或“死掉”的那些代码B、所谓死代码指的是由于这样或那样的原因,按照程序流程,确实不可到达、没有使用或“死掉”的那些代码C、所谓死代码指的是由于这样或那样的原因,按照相应条件,确实不可到达、没有使用或“死掉”的那些代码D、所谓死代码指的是由于这样或那样的原因,按照算法的逻辑流程,确实不可到达、没有使用或“死掉”的那些代码答案:D7、一个()来验证所观察到的结果与所期望的是否一致,并不能证明对于所有的输入数据程序都能够正确工作。

A、测试用例B、测试记录C、测试数据集D、测试结果答案:C8、想要计算机可以执行 程序,操作系统不能是()。

高级计算机程序设计员模拟试题含参考答案

高级计算机程序设计员模拟试题含参考答案

高级计算机程序设计员模拟试题含参考答案一、单选题(共90题,每题1分,共90分)1、Visual C++提供的()是一个用来创建或改变资源的特定环境。

它通过共享技术和界面来快速简捷地创建和修改应用资源。

A、AppWizardB、资源编辑器C、ClassWizardD、资源管理器正确答案:B2、下列关于HTMLHelpWorkshop说法正确的是()。

A、不可以浏览、编辑和转换图形B、不可以截取屏幕图形C、不可以对HTML 文件进行压缩D、不可以编辑声音和图像正确答案:B3、C# 中组件可以分为两类:即()和()。

A、不具备图形界面的类库,具有用户界面的控件B、不具备图形界面的控件,具有用户界面的类库C、不具备图形界面的类库,具有用户界面的类库D、不具备图形界面的控件,具有用户界面的控件正确答案:A4、"可通过()间接地给 " 用户账号 " 赋予了权限。

"A、组描述B、组成员C、组账号D、组密码正确答案:C5、TrackRecord是()公司的测试管理工具。

A、RationalB、CompurewareC、Mercury InteractiveD、IBM正确答案:B6、用例分为系统用例和()。

A、时序用例B、业务用例C、对象用例D、测试用例正确答案:B7、()决定 SQL Server在查询数据库时所采用的数据比较方式。

A、服务登陆标识B、字符集C、网络库D、排序方式正确答案:D8、()方法的作用是创建并返回一个与SqlConnection 相关联的SqlCommand对象。

A、ExecuteReader()B、Open()C、ExecuteNonQuery()D、CreateCommand()正确答案:D9、并行接口适用于()的场合,其接口电路相对简单。

A、传输距离较远,传输速度要求高B、传输距离较近,传输速度要求高C、传输距离较近,传输速度要求低D、传输距离较远,传输速度要求低正确答案:B10、当需要控制一个类的实例只有一个,而且客户端只能从一个全局的访问点访问它时,可以选用设计模式中的()。

东北师范大学22春“计算机科学与技术”《C++程序设计》期末考试高频考点版(带答案)试卷号4

东北师范大学22春“计算机科学与技术”《C++程序设计》期末考试高频考点版(带答案)试卷号4

东北师范大学22春“计算机科学与技术”《C++程序设计》期末考试高频考点版(带答案)一.综合考核(共50题)1.下列关于虚基类的描述,错误的是()。

A.设置虚基类的目的是为了消除二义性B.虚基类的构造函数在非虚基类之后调用C.若同一层中包含多个虚基类,这些虚基类的构造函数按它们说明的次序调用D.若虚基类由非虚基类派生而来,则仍然先调用基类构造函数,再调用派生类的构造函数参考答案:B2.假定指针变量p定义“int *p=new int(100);”,要释放p所指向的动态内存,应使用语句()。

A.delete *pB.delete &pC.delete pD.delete []p参考答案:C3.在关键字public后面定义的成员为类的()成员。

A.公有B.保护C.私有D.任何参考答案:A4.当一个函数无返回值时,函数的类型应定义为()。

A.voidB.任意C.intD.无5.如果一个类至少有一个纯虚函数,那么该类就被称为()。

A.抽象类B.纯基类C.基类D.虚基类参考答案:A6.当基类含有带参数的构造函数时,派生类可以不定义构造函数。

()A.错误B.正确参考答案:A7.C++的继承性允许派生类继承基类的()。

A.部分特性,并允许增加新的特性或重定义基类的特性B.部分特性,但不允许增加新的特性或重定义基类的特性C.所有特性,并允许增加新的特性或重定义基类的特性D.所有特性,但不允许增加新的特性或重定义基类的特性参考答案:C8.将客观实体的特征与行为作为不可分割的整体进行程序设计的方法称为()程序设计。

A.面向应用B.面向过程C.面向对象D.面向系统参考答案:CA.错误B.正确参考答案:B10.在C++中,函数原型不能标识()。

A.函数的返回类型B.函数参数的个数C.函数参数类型D.函数的功能参考答案:D11.在I/O流库中定义的控制输出宽度的函数为()。

A.width()B.fill()C.precision()D.setw()参考答案:A12.下列函数中,()是对文件进行读操作的。

《高级语言程序设计》测试题

《高级语言程序设计》测试题

《高级语言程序设计》一、判断题(错误的在后面写“F”,正确的写“T”,每题1分)1. 程序是描述算法的编程工具。

2. 化将函数模板与某个具体数据类型连用,就产生了模板函数,称这个过程为函数模板实例化。

3. C++语言中,用来为对象初始化的特殊成员函数称为构造函数;用于在对象撤销时执行一些清理任务的特殊成员函数称为析构函数。

4. 逐条翻译并执行的翻译程序称为编译程序5. 把所有类组织在一个树形结构中,这时所有类,不管它们之间的差别有多大,都有一个共同的相关类,这种结构被称为类树。

类群是由一些彼此密切相关的类和类族组成的。

6. 如果在定义一个类时,该类继承了多个基类的特征,那么这个继承关系称为多重继承。

7. 不同对象可以调用相同名称的函数,并可导致完全相同的行为的现象称为多态性。

8.形式参数表是用括号分隔的变量说明列表,变量称为函数的形式参数,有时也简称为形参。

9..在C++语言中,只要在声明函数原型时形式参数的个数或者对应的类型不同,两个或更多的函数就可以共用同一个名字。

这种在同一作用域中允许多个函数使用同一函数名的措施被称为重载。

9.C++的作用域分辨:可以迫使编译器“看到”当前作用域的外层部分,存取那些被隐藏的名字。

这是由作用域分辨操作符实现的,这一过程叫做作用域分辨。

11.说明函数原型时不需要指明每个函数参数的名字,只需要说明每个参数的类型和返回值类型就可以了。

12.所有的表达式都有值。

13.程序的编译是以文件为单位的,因此将程序分到多个文件中可以减少每次对程序修改所带来的编译工作量。

14.类的静态数据成员需要在定义每个类的对象时进行初始化。

15.基类中被说明为protected和private的成员只能被其派生类的成员函数访问,不能被其它的函数访问。

16.当将一个类S定义为另一个类A的友元类时,类S的所有成员函数都可以直接访问类A的所有成员。

17.当函数的返回值是数组类型的,传递的是数组第一个元素的地址。

摘自林瑞高质量C、c++编程指南(答案)

摘自林瑞高质量C、c++编程指南(答案)

C++/C试题的答案与评分标准一、请填写BOOL , float, 指针变量与“零值”比较的 if 语句。

(10分)二、以下为Windows NT下的32位C++程序,请计算sizeof的值(10分)三、简答题(25分)1、头文件中的 ifndef/define/endif 干什么用?(5分)答:防止该头文件被重复引用。

2、#include <filename.h> 和#include “filename.h” 有什么区别?(5分)答:对于#include <filename.h> ,编译器从标准库路径开始搜索 filename.h 对于#include “filename.h” ,编译器从用户的工作路径开始搜索filename.h3、const 有什么用途?(请至少说明两种)(5分)答:(1)可以定义 const 常量(2)const可以修饰函数的参数、返回值,甚至函数的定义体。

被const修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。

4、在C++ 程序中调用被 C编译器编译后的函数,为什么要加extern “C”?(5分)答:C++语言支持函数重载,C语言不支持函数重载。

函数被C++编译后在库中的名字与C语言的不同。

假设某个函数的原型为: void foo(int x, int y);该函数被C编译器编译后在库中的名字为_foo,而C++编译器则会产生像_foo_int_int 之类的名字。

C++提供了C连接交换指定符号extern“C”来解决名字匹配问题。

5、请简述以下两个for循环的优缺点(5分)四、有关内存的思考题(每小题5分,共20分)五、编写strcpy函数(10分)已知strcpy函数的原型是c har *strcpy(char *strDest, const char *strSrc);其中strDest是目的字符串,strSrc是源字符串。

东北师范大学22春“计算机科学与技术”《C++程序设计》期末考试高频考点版(带答案)试卷号1

东北师范大学22春“计算机科学与技术”《C++程序设计》期末考试高频考点版(带答案)试卷号1

东北师范大学22春“计算机科学与技术”《C++程序设计》期末考试高频考点版(带答案)一.综合考核(共50题)1.在I/O流库中定义的控制输出宽度的函数为()。

A.width()B.fill()C.precision()D.setw()参考答案:A2.重载函数至少在参数个数、参数类型或参数顺序上要有所不同。

()A.错误B.正确参考答案:B3.C+利用类的派生机制实现面向对象程序设计的继承性。

()A.错误B.正确参考答案:B4.下面叙述不正确的是()。

A.基类的保护成员在保护派生类中仍然是保护的B.基类的保护成员在公有派生类中仍然是保护的C.基类的保护成员在私有派生类中仍然是保护的D.对基类成员的访问必须是无二义性的参考答案:C常量和引用在声明时必须初始化。

()A.错误B.正确参考答案:B6.编译时的多态性通过使用()实现。

A.构造函数B.虚函数C.重载函数D.析构函数参考答案:C7.成员函数体写在类外部的一定不是内联函数,写在类内部的一定是内联函数。

()A.错误B.正确参考答案:A8.若已定义了person类及person类的两个对象p1和p2,则执行语句“p1=p2;”将调用p1的()。

A.构造函数B.拷贝构造函数C.析构函数D.赋值运算符重载函数参考答案:D9.构造函数是可以被派生类继承的。

()A.错误B.正确参考答案:A10.在函数声明中,()是不必要的。

A.函数名B.函数类型C.参数的名称D.参数类型参考答案:C11.对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属性的是()。

A.公有类型B.私有类型C.保护类型D.友元类型参考答案:D12.构造函数和析构函数都不能带参数。

()A.错误B.正确参考答案:A13.下列关于纯虚函数的描述中,正确的是()。

A.纯虚函数是一种特殊的虚函数,它是个空函数B.具有纯虚函数的类称为虚基类C.一个基类中说明有纯虚函数,其派生类一定要实现该纯虚函数D.具有纯虚函数的类不能创建类对象参考答案:D14.若有声明:class C:public A,B{}; 则类C公有继承自类A、私有继承自类B。

计算机程序设计员试题及参考答案

计算机程序设计员试题及参考答案

计算机程序设计员试题及参考答案一、单选题(共100题,每题1分,共100分)1.下列关于详细设计的工具,说法错误的是:( )。

A、详细设计的工具包括表格B、详细设计的工具包括语言C、详细设计的工具包括图形D、详细设计的工具包括数字正确答案:D2.( )是指对研究的系统要抓住重要方面,而忽略个别的、非本质的属性和差别,抽出共性的、本质的东西。

A、抽象B、对象C、类D、模块正确答案:A3.所有的( )必须与业务需求一致。

A、产品需求B、用户需求C、功能需求D、系统需求正确答案:B4.狭义地讲,测试是指:( )。

A、指软件产品生命周期内所有的检查、评审和确认活动B、对软件产品功能的检查和评价C、对软件产品质量的检验和评价D、对软件产品是否存在bug的检验正确答案:C5.下列哪一种说法是对SQL Server的描述是错误的()A、层次化数据库。

B、企业级数据库。

C、客户机/服务器数据库。

D、关系型数据库。

正确答案:A6.( )方法是一种面向数据流的设计方法,是当前应用较广泛的技术,是一种较为完善的系统设计方法。

A、结构化设计B、程式化设计C、面向对象设计D、模块化设计正确答案:A7.计算机程序设计员要严格按照工作程序及相关文档的规范开展工作,指的是( )。

A、严肃认真B、谦虚谨慎C、办事规范D、胸襟宽阔正确答案:C8.( )素以最慢的数据访问方法著称。

A、ADOB、DAOC、ODBCD、OLE DB正确答案:C9.( )的工具包括图形、表格和语言。

A、详细设计B、概要设计C、模块设计D、需求分析正确答案:A10.软件管理按时间可划分为( )和使用维护管理。

A、生产管理B、技术管理C、软件设计管理D、开发进度管理正确答案:A11.密码验证模块包含的两个子模块是:( )。

A、用户登录和密码修改B、身份认证和密码修改C、身份认证和密码认证D、用户登录和密码认证正确答案:B12.( )方法是针对新的程序设计情形而采用的,它克服了早期技术的诸多限制,依赖于Microsoft新的底层访问方法OLE-DB。

《C 程序设计实例与操作》(於实 孟程 刘锋)759-3答案 模拟试题二

《C  程序设计实例与操作》(於实 孟程 刘锋)759-3答案 模拟试题二

《C++程序设计》模拟试题(二)一、选择题(本大题共10小题,每小题2分,共20分)1.下列关于析构函数描述正确的是( )。

A.可以重载B.函数体中必须有delete语句C.返回类型是void类型D.不能指定返回类型2.下面有关重载函数的说法中正确的是( )。

A.重载函数必须具有不同的返回值类型B.重载函数形参个数必须不同C.重载函数必须有不同的形参列表D.重载函数名可以不同3.下列关于单目运算符++、--的叙述中正确的是( )。

A.它们的运算对象可以是任何变量和常量B.它们的运算对象可以是char型变量和int型变量,但不能是float型变量C.它们的运算对象可以是int型变量,但不能是double型变量和float型变量D.它们的运算对象可以是char型变量、int型变量和float型变量4.关于异常处理,下列说法中错误的是( )。

A.在C++程序中,由throw表达式抛出异常,throw抛出的可以是任何类型的数据B.在一个try-catch结构中,只能有一个try语句块和一个catch语句块C.当抛出异常后,系统会寻找匹配的catch语句,转到离出现异常最近的try-catch结构去处理D.当某条语句抛出异常时,跟在其后的语句将被跳过转到catch语句处,此时在try 块中抛出异常前创建的对象将被自动释放5.对于公有继承,基类中的私有成员在派生类中将( )。

A.仍然是基类的私有成员B.成为派生类的私有成员C.可以被派生类的成员函数直接访问D.可以被派生类的对象直接访问6.下面关于抽象类的说法中错误的是( )。

A.抽象类是包含有纯虚函数的类B.抽象类是一种特殊的类C.抽象类可以定义自己的对象D.抽象类可以派生新类7.假定一条定义语句为“int a[10], x, *pa=a;”,若要把数组a中下标为3的元素值赋给x,则不正确的语句为( )。

A.x=pa[3]; B.x=*(a+3);C.x=a[3]; D.x=*pa+3;8.若类X是类Y的友元类,则下列说法中正确的是( )。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C++/C试题(见《高质量程序设计指南》附录B)
本试题仅用于考查C++/C程序员的基本编程技能。

内容限于C++/C常用语法,不涉及数据结构、算法
以及深奥的语法。

考试成绩能反映出考生的编程质量以及对C++/C的理解程度,但不能反映考生的智力和
软件开发能力。

笔试时间90分钟。

请考生认真答题,切勿轻视。

一、请填写BOOL , float, 指针变量与“零值”比较的 if 语句。

(10分)
提示:这里“零值”可以是0, 0.0 , FALSE或者“空指针”。

例如 int 变量 n 与“零值”比较的 i
f 语句为:
if ( n == 0 )
if ( n != 0 )
以此类推。

二、以下为Windows NT下的32位C++程序,请计算sizeof的值(10分)
三、简答题(25分)
1、头文件中的 ifndef/define/endif 干什么用?
2、#include <filename.h> 和#include “filename.h” 有什么区别?
3、const 有什么用途?(请至少说明两种)
4、在C++ 程序中调用被 C编译器编译后的函数,为什么要加extern “C”声明?
5、请简述以下两个for循环的优缺点
四、有关内存的思考题(20分)
五、编写strcpy函数(10分)
已知strcpy函数的原型是
char *strcpy(char *strDest, const char *strSrc);
其中strDest是目的字符串,strSrc是源字符串。

(1)不调用C++/C的字符串库函数,请编写函数 strcpy
(2)strcpy能把strSrc的内容复制到strDest,为什么还要char * 类型的返回值?
六、编写类String的构造函数、析构函数和赋值函数(25分)
已知类String的原型为:
class String
{
public:
String(const char *str = NULL); // 普通构造函数
String(const String &other); // 拷贝构造函数
~ String(void); // 析构函数
String & operate =(const String &other); // 赋值函数
private:
char *m_data; // 用于保存字符串
};
请编写String的上述4个函数。

答案:
C++/C试题的答案与评分标准
一、请填写BOOL , float, 指针变量与“零值”比较的 if 语句。

(10分)
二、以下为Windows NT下的32位C++程序,请计算sizeof的值(10分)
三、简答题(25分)
1、头文件中的 ifndef/define/endif 干什么用?(5分)
答:防止该头文件被重复引用。

2、#include <filename.h> 和#include “filename.h” 有什么区别?(5分)答:对于#include <filename.h> ,编译器从标准库路径开始搜索 filename.h 对于#include “filename.h” ,编译器从用户的工作路径开始搜索 filename.h
3、const 有什么用途?(请至少说明两种)(5分)
答:(1)可以定义 const 常量
(2)const可以修饰函数的参数、返回值,甚至函数的定义体。

被const修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。

4、在C++ 程序中调用被 C编译器编译后的函数,为什么要加extern “C”?(5分)
答:C++语言支持函数重载,C语言不支持函数重载。

函数被C++编译后在库中的名字与C语言的不同。

假设某个函数的原型为: void foo(int x, int y);
该函数被C编译器编译后在库中的名字为_foo,而C++编译器则会产生像_foo_int_int之类的名字。

C++提供了C连接交换指定符号extern“C”来解决名字匹配问题。

5、请简述以下两个for循环的优缺点(5分)
四、有关内存的思考题(每小题5分,共20分)
五、编写strcpy函数(10分)
已知strcpy函数的原型是
char *strcpy(char *strDest, const char *strSrc);
其中strDest是目的字符串,strSrc是源字符串。

(1)不调用C++/C的字符串库函数,请编写函数 strcpy
char *strcpy(char *strDest, const char *strSrc);
{
assert((strDest!=NULL) && (strSrc !=NULL)); // 2分
char *address = strDest; // 2分
while( (*strDest++ = * strSrc++) != ‘\0’ ) // 2分
NULL ;
return address ; // 2分
}
(2)strcpy能把strSrc的内容复制到strDest,为什么还要char * 类型的返回值?
答:为了实现链式表达式。

// 2分
例如int length = strlen( strcpy( strDest, “hello world”) );
六、编写类String的构造函数、析构函数和赋值函数(25分)
已知类String的原型为:
class String
{
public:
String(const char *str = NULL); // 普通构造函数
String(const String &other); // 拷贝构造函数
~ String(void); // 析构函数
String & operate =(const String &other); // 赋值函数
private:
char *m_data; // 用于保存字符串
};
请编写String的上述4个函数。

标准答案:
// String的析构函数
String::~String(void) // 3分
{
delete [] m_data;
// 由于m_data是内部数据类型,也可以写成 delete m_data;
}
// String的普通构造函数
String::String(const char *str) // 6分
{
if(str==NULL)
{
m_data = new char[1]; // 若能加 NULL 判断则更好
*m_data = ‘\0’;
}
else
{
int length = strlen(str);
m_data = new char[length+1]; // 若能加 NULL 判断则更好strcpy(m_data, str);
}
}
// 拷贝构造函数
String::String(const String &other) // 3分
{
int length = strlen(other.m_data);
m_data = new char[length+1]; // 若能加 NULL 判断则更好strcpy(m_data, other.m_data);
}
// 赋值函数
String & String::operate =(const String &other) // 13分{
// (1) 检查自赋值 // 4分
if(this == &other)
return *this;
// (2) 释放原有的内存资源 // 3分
delete [] m_data;
// (3)分配新的内存资源,并复制内容 // 3分
int length = strlen(other.m_data);
m_data = new char[length+1]; // 若能加 NULL 判断则更好strcpy(m_data, other.m_data);
// (4)返回本对象的引用 // 3分
return *this;
}。

相关文档
最新文档