2021年度自考C试题及答案9套合集.pdf
《2021年度自考C试题及答案9套合集.pdf》由会员分享,可在线阅读,更多相关《2021年度自考C试题及答案9套合集.pdf(128页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、全国自考C+程序设计模仿试卷(-)38一、单项选取题(本大题共20小题,每小题1分,共20分)在每小题列出四个备选项中只有一种是符合题目规定,请将其代码填写在题后括号内。错选 多选或未选均无分。1.编写C+程序普通需通过几种环节依次是()A.编辑、调试、编译、连接B.编辑、编译、连接、运营C.编译、调试、编辑、连接D.编译、编辑、连接、运营答案:B解析:(P 2 1)通过编辑、编译、连接和运营四个环节。编辑是将C+源程序输入计算机过程,保存文献名为cp p。编译是使用系统提供编译器将源程序cp p 生成机器语言过程,目的文献为o bj,由于没有得到系统分派绝对地址,还不能直接运营。连接是将目的
2、文献o bj转换为可执行程序过程,成果为e xe。运营是执行e xe,在屏幕上显示成果过程。2.决定C+语言中函数返回值类型是()A.r e t ur n 语句中表达式类型B.调用该函数时系统随机产生类型C.调用该函数时主调用函数类型D.在定义该函数时所指定数据类型答案:D解析:(P 5 1)函数返回值类型由定义函数时指定数据类型决定。A 项表达式值要转换成函数定义时返回类型。3 .下面论述不对的是()A.派生类普通都用公有派生B.对基类成员访问必要是无二义性C.赋值兼容规则也合用于多重继承组合D.基类公有成员在派生类中依然是公有答案:D解析:(P 1 3 6)继承方式有三种:公有、私有和保护
3、。多继承中,各种基类具备同名成员,在它们子类中访问这些成员,就产生了二义性,但进行访问时,不能存在二义性。赋值兼容规则是指派生类对象可以当作基类对象使用,只要存在继承关系,因此单继承或多继承都合用。基类中公有成员采用私有继承时.,在派生类中变成了私有成员,因此D项错误。4 .所谓数据封装就是将一组数据和与这组数据关于操作组装在一起,形成一种实体,这实体也就是()A.类B.对象C.函数体D.数据块答案:A解析:(P 3 9)类即数据和操作组合体,数据是类静态特性,操作是类具备动作。5.在公有派生类成员函数不能直接访问基类中继承来某个成员,则该成员一定是基类中()A.私有成员B.公有成员C.保护成
4、员D.保护成员或私有成员答案:A解析:(P 1 3 3)在派生类中基类保护或者基类公有都可以直接访问,基类私有成员只能是基类成员函数来访问。因此选取A项。6.对基类和派生类关系描述中,错误是()A.派生类是基类详细化B.基类继承了派生类属性C.派生类是基类定义延续D.派生类是基类特殊化答案:B解析:(P 1 2 9)派生类成员一种是来自基类,一种来自自身,因此派生类是基类扩展,也是基类详细化和特殊化,派生类是对基类扩展。B项基类不能继承派生类成员,因此错误。7.关于t h i s指针使用说法对的是()A.保证每个对象拥有自己数据成员,但共享解决这些数据代码B .保证基类私有成员在子类中可以被访
5、问。C.保证基类保护成员在子类中可以被访问。D.保证基类公有成员在子类中可以被访问。答案:A解析:(P 8 6)t h i s指针是隐藏,可以使用该指针来访问调用对象中数据。基类成员在派生类中能否访问,与继承方式关于,与t h i s没关于系。因此选取A项。8.所谓多态性是指()A.不同对象调用不同名称函数B.不同对象调用相似名称函数C.一种对象调用不同名称函数D.一种对象调用不同名称对象答案:B解析:(P 1 6 7)多态性有两种静态多态性和动态多态性,静态多态性是指调用同名函数,由于参数不同调用不同同名函数;动态多态性是指不同对象调用同名函数时,由于对象不同调用不同同名函数。多态性必定具备
6、相似函数名,因此选取B项。9.一种函数功能不太复杂,但规定被频繁调用,则应把它定义为()A.内联函数B.重载函数C.递归函数D.嵌套函数答案:A解析:(P 5 9)内联函数特性代码少,频繁调用,执行效率高。重载函数解决统一接口问题;递归是子程序调用,程序调用要耗费诸多空间和时间,循环/迭代都比递归有效率得多,递归只是从形式上,逻辑比较简洁。嵌套函数即重复调用,速度较慢。因此选取A项。1 0 .下面函数模板定义中不对的是()A.AB.BC.CD.D答案:A解析:(P 1 4 7)A 项中F 是一种返回Q类型值,而r e t u r n 中用返回类型作为返回值错误。因此选取A 项。1 1 .假设C
7、 la s s Y:p u b li c X,即类Y 是类X 派生类,则阐明一种Y 类对象时和删除Y 类对象时,调用构造函数和析构函多顺序分别为()A.X.Y;Y.XB.X.Y;X,YC.Y.X;X,YD.Y,X;Y,X答案:A解析:(P 1 3 0)派生类构造函数必要对这三类成员进行初始化,其执行顺序:调用基类构造函数;调用子对象构造函数;派生类构造函数体。析构函数在执行过程中也要对基类和成员对象进行操作,但它执行过程与构造函数正好相反,即对派生类新增普通成员进行清理;调用成员对象析构函数,对派生类新增成员对象进行清理;调用基类析构函数,对基类进行清理,因此选取A 项。1 2 .适当采用i
8、n li n e 定义函数状况是()A.函数体具有循环语句B.函数体具有递归语句C.函数代码少、频繁调用D.函数代码多、不常调用答案:C解析:(P 5 9)内联函数具备程序代码少、频繁调用和执行效率高特性,因此选取C 项。1 3 .假定一种类构造函数为A(i n t a a,i n t b b)a=a a;b=a*b b;,则执行A x(4,5);语句后,X.a 和x.b 值分别为()A.3 和 1 5B.5 和4C.4 和 2 0D.2 0 和 5答案:C解析:(P 75)a=4,由于后减,b 值与a、b b 有关,b =4*5=2 0,而与a a 没有任何关系。1 4.在类中阐明成员可以使
9、用核心字是()A.p u b li cB e x t e r nC.c p uD.r e g i s t e r答案:A解析:e x t e r n 用于声明外部变量。r e g i s t e r 声明寄存器类型变量。无c p u 类型。它们都不能声明类成员。p u b li c 声明为公有访问权限,因此选取A 项。1 5 .下列不能作为类成员是()A.自身类对象指针B.自身类对象C.自身类对象引用D.另一种类对象答案:B解析:类定义,如果有自身类对象,使得循环定义,B 项错误。在类中具备自身类指针,可以实现链表操作,固然也可以使用对象引用。类中可以有另一种类对象,即成员对象。所以选取B 选
10、项。1 6 .使用地址作为实参传给形参,下列说法对的是()A.实参是形参备份B.实参加形参无联系C.形参是实参备份D.实参加形参是同一对象答案:D解析:(P5 1)地址作为实参,表达实参加形参代表同一种对象。如果实参是数值,形参也是普通变量,此时形参是实参备份。因此选取D项。1 7 .下列程序输出成果是()ttinclude void main()int n 3 =1 0,2 0,3 0,4 0,5 0,6 0;int(*p)3 ;vnp=n;coutp 0 0 ,”*(p C O +1)/,/z(*p)2 aD.(*x).a()答案:B解析:(P4 1)对象访问成员方式为:对象名.成员。指针
11、可以有两种:(*对象指针).成员或者对象指针-成员。A 选项是访问数据成员,B 项是访问成员函数。2 0 .关于对象概念描述中,说法错误是()A.对象就是C 语言中构造变量B.对象代表着正在创立系统中一种实体C.对象是类一种变量D.对象之间信息传递是通过消息进行答案:A解析:(P3 7)A 对象在C+中才有,涉及数据和操作两项,而C 中变量只有数据,没有操作。所以A 项错误。二、填空题(本大题共20小题,每小题1分,共20分)请在每小题空格中填上对的答案错填、不填均无分。1 .C+流库预定义了4 个流,它们是cin、cout、clog和_ _。答案:(P1 9 3)cerr 解析cin、cou
12、t、clog和cerr分别用于原则输入、输出、原则错误流(缓冲)和原则错误流(非缓冲)。2.每个对象都是所属类一种答案:(P6 9)实例 解析类是对象抽象,对象是类一种实例。3 .在已经定义了整型指针ip后,为了得到一种涉及1 0 个整数数组并由i p 所指向,应使用语句一。答 案:(P7 8)i n t*i p=n e w i n t 1 0;解析n e w用来动态开辟空间。惯用来产生动态数组及对象构造函数。4 .函数模板中紧随te m p l a te 之后尖括号内类型参数都要冠以保存字。答案:(P1 4 5)c l a s s 解析类模板使用。te m p l a te c l a s
13、s T ,也可以引入多参数如:te m p l a te 5.定义类动态对象数组时,系统只可以自动调用该类 构造函数对其进行初始化。答案:(P8 0)无参 解析使用n e w创立对象数组,调用无参构造函数。6 .表达式c o ut e n d l 还可表达为_。答案:解析e n d l 与字符常量 n 等价。7 .在C+中,访问一种指针所指向对象成员所用指向运算符是答案:-解析指针使用成员有两种办法:指 向 运 算 符 和”成员访问运算符。8.如果一种类名称为M y C l a s s,使用这个类一种对象初始化该类另一种对象时,可以调用 构造函数来完毕此功能。答案:(P8 0)复制或拷贝复制或
14、拷贝构造函数就是用对象初始化新对象。9 .对赋值运算符进行重载时,应声明为 函数。答案:(P1 8 3)类成员 解析运算符重载办法有友元或者成员函数两种途径,但是赋值运算符只能使用成员函数办法来实现。1 0 .如果要把A 类成员函数f ()且返回值为v o i d 声明为类B 友元函数,则应在类B 定义中加入语句答案:(P1 0 9)f r i e n d v o i d A:f ();解析成员函数作为另一种类友元函数,格式为:f r i e n d 返回类型 类名:函数(形参)。1 1 .下列程序段输出成果是。f o r(i=0,j=1 0,k=0;i =j;i+,j-=3,k=i+j);c
15、 o ut k;答案:4 解析f o r 循环构造,三个表达式作用,初始化、循环判断条件和循环变量变化。循环执行了三次,k 作用是计算i、j 和。1 2 .Str i n g 类 办法返回查找到字符串在主串位置。答案:(P4 0)f i n d 解析s tr i n g 类对象办法f i n d,查不到字符串,则返回T。1 3 .i n t n=0;wh i l e (n=l)n+;wh i l e 循环执行次数是。答案:无限次 解析=是赋值运算符,不是关系运算符,且不等0,因此死循环。1 4 .控制格式输入输出操作中,函数 是用来设立填充字符。规定给出函数名和参数类型答案:(P1 95)s
16、e tf i l l (c h a r)解析格式控制办法使用,如s e tw,s e tf i l l 等等。1 5 .C+语言支持两种多态性分别是编译时多态性和 多态性。答案:(P1 6 7)运营时 解析多态性涉及静态(编译时)多态性和动态(运营时)多态性。1 6 .设函数s u m 是由函数模板实现,并且s u m 6)和s u m(4.6,8)都是对的函数调用,则函数模板具备一个类型参数。答 案:(P6 1)21 7 .执行下列代码s t r i n g s t r(He l l o C+”);c o u t s t r.s u b s t r(5,3);程序输出成果是。答案:(P4 2
17、)C+解析s u b s t r 取子字符串,第1 个参数表达要截取子串在字符串中位置,第2 个表达取多少个字符。1 8 .在面向对象程序设计中,将一组对象共同特性抽象出来形成。答案:(P3 8)类 解析类是相似特性对象抽象,对象是类一种实例。1 9 .定义类动态对象数组时,元素只能靠自动调用该类 来进行初始化。答案:(P7 7)无参构造函数 解析使用n e w 创立动态对象数组,不能有参数,因此只能调用无参构造函数,初始化对象2 0 .已知有2 0 个元素i n t 类型向量VI,若用VI初始化为V2 向量,语句是。答 案:(P1 5 1)v e c t o r V2(Vl);解析采用向量初
18、始化另一 种向量形式:v e c t o r n a m e l (n a m e);三、改错题(本大题共5小题,每小题2分,共10分)下面类定义中有一处错误,请用下横线标出错误所在行并给出修改意见。1.Si n c l u d e c l a s s Te s t p r i v a t e:i n t x,y=2 0;p u b l i c:Te s t (i n t i,i n t j)x=i,y=j;i n t g e t x()r e t u r n x;i n t g e t y()r e t u r n y;;v o i d m a i n O Te s t m t(1 0,2
19、0);c o u t m t.g e t x ()e n d l;c o u t m t.g e t y ()e n d l;答案:i n t x,y=2 0;在类内部不能对数据成员直接赋值。修改i n t x,y;2.Si n c l u d e c l a s s Te s t i n t x,y;p u b l i c:f u n(i n t i,i n t j)x=i;y=j;s h o w ()c o u t ,x=z z x;i f (y)c o u t,/,y=,y e n d l;c o u t e n d l;);v o i d m a i n()Te s t a;a.f u
20、 n(l);a.s h o w();a.f u n (2,4);a.s h o w ();)答案:i n t i,i n t j 调用时,既有一种参数,也有两个参数,且没有重载,因此参数需要带默认值。因此i n t i,i n t j 错误。修改i n t i,i n t j=0/注j 只要有一种i n t 类型数据就行。3.t t i n c l u d e c l a s s A i n t i;p u b l i c:v i r t u a l v o i d f u n ()=0;A(i n t a)i=a;);c l a s s B:p u b l i c A i n t j;p u
21、 b l i c:v o i d f u n ()c o u t ,zB:f u n()n;B(i n t m,i n t n=0):A(m),j (n);v o i d m a i n()(A *p a;B b(7);p a=&b;)答案:B(i n t m,i n t n=0):A(m),j(n)由于基类是抽象类,不能被实例化,因此在派生类中不能调用初始化基类对象。因此B(i n t m,i n t n=0):A始),j(n)错误,删去A(m)。修改B(i n t m,i n t n=0):j(n)4 Si n c l u d e c l a s s X p u b l i c:i n t
22、 x;p u b l i c:X(i n t x)c o u t x=x e n d l;X(X&t)x=t.X;c o u t t.x e n d l;v o i d f u n(X););v o i d f u n(X t)c o u t x=x x=x 表达式值要加括号。修改c o u t (t h i s-x=x)e n d l;5.t t i n c l u d e Si n c l u d e c l a s s B a s p u b l i c:B a s (c h a r *s 二 0)s t r c p y(n a m e,s);v o i d s h o w();p r
23、o t e c t e d:c h a r n a m e 2 0;);B a s b;v o i d s h o w()c o u t ,n a m e:b.n a m e e n d l;v o i d m a i n O B a s d 2(h e l l o );s h o w();)答案:v o i d s h o w。;是普通函数不是成员函数,但是要访问类成员,需要定义为友元函数。修改f r i e n d v o i d s h o w();四、完毕程序题(本大题共5小题,每小题4分,共20分)1 .在下,面程序横线处填上恰当字句,以使该程序执行成果为:5 0 4 3 4 2 1
24、 1 00 7.1 8.1 9.1 1 0.1 1 1.1Si n c l u d e t e m p l a t e v o i d f ();f o r (i n t i=0;i n/2;i+)t=a i ,a i =a n-l-i ,a =t;)v o i d m a i n ()i n t a 5 =1 0,2 1,3 4,4,5 0 ;d o u b l e d 6 =1 1.1,1 0.1,9.1,8.1,7.1 ;f (a,5);f (d,6);f o r (i n t i=0;i 5;i+)c o u t a i z,/;c o u t e n d l;f o r (i=0;i
25、 6;i+)c o u t d i ”;c o u t e n d l;)答案:T a ,i n t n,T t=0;解析 不同数据类型调用,使用了模板。f函数增长t变量,由于实参类型不同,因此t类型应当是T类型。2.在下面程序底画线处填上恰当字句,使该程序执行成果为4 0。#i n c l u d e c l a s s Te s t p u b l i c:Te s t (i n t i=0)x=i+x;i n t Ge t n u m O r e t u r n Te s t:x+7;);v o i d m a i n()Te s t t e s t;c o u t t e s t.Ge
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2021 年度 自考 试题 答案 套合集
限制150内