欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    【计算机类职业资格】计算机等级考试二级(C++)48及答案解析.doc

    • 资源ID:1339707       资源大小:89KB        全文页数:14页
    • 资源格式: DOC        下载积分:5000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要5000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    【计算机类职业资格】计算机等级考试二级(C++)48及答案解析.doc

    1、计算机等级考试二级(C+)48 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(每小题 2 分,共 70 分) 下列各(总题数:35,分数:70.00)1.有以下程序 main() char *p=“3697“,“2548“; int i,j; long num=0; for(i=0;iA.35B.37C.39D.39752.在公有派生的情况下,派生类中定义的成员函数只能访问原基类的【 】(分数:2.00)A.公有成员和私有成员B.私有成员和保护成员C.公有成员和保护成员D.私有成员、保护成员和公有成员3.派生类继承基类的方式有( )。(分数:2.00)A.SEEKNB.SE

    2、EK FOR 基本工资=NC.FIND 1000D.LOCATE FOR 基本工资=N4.C+语言中标点符号中表示一条预处理命令开始的是( )。(分数:2.00)A.StyleB.DefaultC.CaptionD.Cancel5.类 A 是类 B 的友元,类 B 是类 C 的友元,则下列说法正确的是( )。(分数:2.00)A.构造函数可以重载,析构函数不能重载B.构造函数不能重载,析构函数可以重载C.构造函数可以重载,析构函数也可以重载D.构造函数不能重载,析构函数也不能重载6.关于动态存储分配,下列说法正确的是【 】(分数:2.00)A.new 和 delete 是 C语言中专门用于动态

    3、内存分配和释放的函数B.动态分配的内存空间也可以被初始化C.当系统内存不够时,会自动回收不再使用的内存单元,因些程序中不必用 delete 释放内存空间D.当动态分配内存失败时,系统会立刻崩溃,因此一定要慎用 new7.每个 C+程序中都必须有且仅有一个( )。(分数:2.00)A.类B.预处理命令C.主函数D.语句8.下列语句的输出结果( )。 cout strlen(“/t/“/065/xff/n“); (分数:2.00)A.父类在前,子类在后B.父类在后,子类在前C.有继承关系的异常不能在同一个 try 程序段内D.先有子类,其他如何安排都无关9.以下定义数组中错误的是( )。(分数:2

    4、.00)A.查询B.数据访问页C.窗体D.报表10.在一个类体的下列声明中,正确的纯虚函数声明是【 】(分数:2.00)A.virtual void vf()0;B.void vf(int)0;C.virtual int vf(int);D.virtual void vf(int) 11.设变量已正确定义,则以下能正确计算 f=n!的程序段是_。 (分数:2.00)A.f=0; for(i=1;i1;i+) f*=i;D.f=1; for(i=n;i=2;i-) f*=i;12.下列关于输入流类成员函数 getline()的描述中,错误的是【 】(分数:2.00)A.该函数是用来读取键盘输入的

    5、字符串的B.该函数读取的字符串长度是受限制的C.该函数读取字符串时,遇到终止符便停止D.该函数读取字符串时,可以包含空格13.关于 continue 语句叙述不正确的是( )。(分数:2.00)A.某对象名B.某对象成员名C.某对象的引用名D.指向对象的指针名14.有以下程序 #includeiostreamh void fun(int a,int b,int C) a=456,b=567,c=678; void main( ) int x=10,y=20,z=30; fun(x,y,z); cout x , y , z end1; 输出结果是( )。 (分数:2.00)A.不能通过编译B.输

    6、出 6C.输出 x! =y+zD.输出 x=y+z15.if 语句的语法格式可描述为 格式 1:if() 或 格式 2:if()else 关于上面的语法格式,下列表述中错误的是(分数:2.00)A.部分可以是一个 if 语句,例如 if(if(a =0)?)B.部分可以是一个 if 语句,例如 if(?)if(?)C.如果在前加上逻辑非运算符!并交换和的位置,语句功能不变D.部分可以是一个循环语句,例如 if(?)while(?)?16.下面程序的运行结果为( )。 #include iostreamh void swap(int a,int b) int temp; temp=a+; a=b

    7、; b=temp; void main( ) int a=2,b=3; swap(a,b); couta“,“ print5; pd-print6; delete pd; return 0; (分数:2.00)39.语句 cout /n还可表示为 1。(分数:2.00)填空项 1:_40.将以下程序写成三目运算表达式是 1。 if(a B) max=a; else max=b; (分数:2.00)填空项 1:_41.插入排序算法的主要思想是:每次从未排序序列中取出一个数据,插入到已排序序列中的正确位置。InsertSort 类的成员函数 sort1 实现了插入排序算法。请将画线处缺失的部分补充

    8、完整。 class InserSort public: InsertSort(int*a0,int n0):a(a0),n(n0)参数 a0 是某数组首地址,n是数组元素个势 void sort2 此函数假设已排序序列初始化状态只包含 a0,未排序序列初始为a1an-1 for(int i=1;i3;j0;-j) if(t=aj-1)break; aj:aj-1; aj=t; protected: int*a,n;指针 a 用于存放数组首地址,n 用于存放数组元素个数 ; (分数:2.00)填空项 1:_42.表达式 xoperator+1 还可写成 2。(分数:2.00)填空项 1:_43.

    9、以下程序运行后的输出结果是 1。 #define S(x) 4*x*x+1 main2 int i=6,j=8; printf(“%d/n“,S(i+j); (分数:2.00)填空项 1:_44.以下程序用于判断 a、b、c 能否构成三角形,若能,输出 YES,否则输出 NO。当给 a、b、c 输入三角形三条边长时,确定 a、b、c 能构成三角形的条件是需同时满足三 个条件:a+bc,a+cb,b+ca。请填空。 main1 float a,b,c; scanf(“%f%f%f“, if(= 2)printf(“YES/n“); /*a、b、c 能构成三角形*/ else printf(“NO

    10、/n“); /*a、b、c 不能构成三角形*/ (分数:2.00)填空项 1:_45.在 MyClass 类的定义中,对赋值运算符=进行重载。请将画线处缺失的部分补充完整。 1MyClass:operator=(const MyClass rhs) if(this= value=rhs. value; return*this; (分数:2.00)46.若从键盘输入 70,则以下程序输出的结果是 1。 #includeiostreamh void main2 int a;cina; if(a50) couta; if(a40)couta; if(a30)couta (分数:2.00)填空项 1:

    11、_47.表达式 xoperator+(yoperator+(0)还可以写成 1。(分数:2.00)填空项 1:_48.友元类的所有成员函数都是另一个类的 1。(分数:2.00)填空项 1:_49.以下程序运行后的输出结果是 1。 #include char *ss(char *s) char *p,t; p=s+1;t=*s; while(*p) *(p-1)=*p; p+; *(p-1)=t; return s; main2 char *p,str10=“abcdefgh“; p=ss(str); printf(“%s/n“,p); (分数:2.00)填空项 1:_50.若要在 C 盘根目录

    12、下作为二进制文件打开文件 testdat,则应该用的语句是 1。(分数:2.00)填空项 1:_计算机等级考试二级(C+)48 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(每小题 2 分,共 70 分) 下列各(总题数:35,分数:70.00)1.有以下程序 main() char *p=“3697“,“2548“; int i,j; long num=0; for(i=0;iA.35B.37C.39 D.3975解析:此题考核的是指针数组。题目中定义的指针数组“*p”相当于一个两行四列的数组。执行 for()语句 i=0,j=0,pij=p00=3,满足 while 循环

    13、条件,执行循环体中的 if 语句得 num=3,j=2,此时 pij=p02=9, 满足循环条件,执行 while 循环体得 num=39,j=4,判断 while 条件且不符合并退出 while 循环;再次执行 for()语句 i=1,j=0,pij=p10=2,满足 while 条件,执行循环体中的 if 语句,但不符合 if 条件,所以 num 不进行运算, j 进行加 2 运算 j=2,此时 pij=p12=4,if 条件还是为假,num 不进行运算,j 进行加 2 运算 j=4,再执行 while 语句条件不符合退出循环。所以结果为 39。2.在公有派生的情况下,派生类中定义的成员函

    14、数只能访问原基类的【 】(分数:2.00)A.公有成员和私有成员B.私有成员和保护成员C.公有成员和保护成员 D.私有成员、保护成员和公有成员解析:本题考核派生类的定义和访问权限。当类的继承方式为公有继承时,基类的公有成员和保护成员的访问属性在派生类中不变,而基类私有成员不可访问。即基类的公有成员和保护成员分别作为派生类的公有成员和保护成员,派生类的其他成员可以直接访问它们。3.派生类继承基类的方式有( )。(分数:2.00)A.SEEKNB.SEEK FOR 基本工资=N C.FIND 1000D.LOCATE FOR 基本工资=N解析:利用 GOTO 命令将记录指针定位到记录号为 6 的记

    15、录上,NEXT5 是表示从当前记录起到其后的总共5 条记录的范围,因此本题所显示的 记录范围是从第 6 条记录开始到第 10 记录。4.C+语言中标点符号中表示一条预处理命令开始的是( )。(分数:2.00)A.StyleB.DefaultC.CaptionD.Cancel 解析:paint( )和 repaint( )方法都可以用于 Applet 的重新显示。5.类 A 是类 B 的友元,类 B 是类 C 的友元,则下列说法正确的是( )。(分数:2.00)A.构造函数可以重载,析构函数不能重载 B.构造函数不能重载,析构函数可以重载C.构造函数可以重载,析构函数也可以重载D.构造函数不能重

    16、载,析构函数也不能重载解析:所谓的访问控制只包含公有类型、私有类型和保护类型 3 种,友元可以是一个函数,也可以是一个类。6.关于动态存储分配,下列说法正确的是【 】(分数:2.00)A.new 和 delete 是 C语言中专门用于动态内存分配和释放的函数B.动态分配的内存空间也可以被初始化 C.当系统内存不够时,会自动回收不再使用的内存单元,因些程序中不必用 delete 释放内存空间D.当动态分配内存失败时,系统会立刻崩溃,因此一定要慎用 new解析:本题考核动态存储分配。用于动态分配的内存空间称为堆内存,它通常由操作系统进行管理且数量有限,其内存空间可以被初始化。若程序不断分配堆内存,

    17、则可能耗尽,在这种情况下,系统无法再对new 提出的内存分配请求给予满足,此时 new 会返回空指针 NULL,表示动态存储分配操作失败,不会造成系统崩溃。在 C程序中由 new 分配的动态内存空间必须通过 delete 运算符释放。7.每个 C+程序中都必须有且仅有一个( )。(分数:2.00)A.类B.预处理命令C.主函数 D.语句解析:每个 c+程序中都要有且仅有一个主函数,该函数是程序的入口,而语句、预处理命令和函数及类在程序中都可以有多个。8.下列语句的输出结果( )。 cout strlen(“/t/“/065/xff/n“); (分数:2.00)A.父类在前,子类在后 B.父类在

    18、后,子类在前C.有继承关系的异常不能在同一个 try 程序段内D.先有子类,其他如何安排都无关解析:本题中,表达式将 5 个初值赋给 a0至 a4,后面的部分,将自动会被依次补零处理。9.以下定义数组中错误的是( )。(分数:2.00)A.查询B.数据访问页 C.窗体D.报表解析:C+语言中拷贝构造函数的参数一般是某个对象的引用名。10.在一个类体的下列声明中,正确的纯虚函数声明是【 】(分数:2.00)A.virtual void vf()0; B.void vf(int)0;C.virtual int vf(int);D.virtual void vf(int) 解析:本题考核纯虚函数的声

    19、明。声明纯虚函数的一般格式为:virtual类型函数名(参数表)0;11.设变量已正确定义,则以下能正确计算 f=n!的程序段是_。 (分数:2.00)A.f=0; for(i=1;i1;i+) f*=i;D.f=1; for(i=n;i=2;i-) f*=i; 解析:n!=n*(n-1)*2*1,由于选项 A 中 f 的初值为 0,所以循环 n 次后,f 值依然为 0,故选项 A 错误; 选项 B 中循环的终止条件是“i1 时,由于初值“i=n”是符合条件“i1”的,且增量为+1,故循环中永远不会出 现不满足条件“i1”的值,所以出现死循环。12.下列关于输入流类成员函数 getline()

    20、的描述中,错误的是【 】(分数:2.00)A.该函数是用来读取键盘输入的字符串的B.该函数读取的字符串长度是受限制的 C.该函数读取字符串时,遇到终止符便停止D.该函数读取字符串时,可以包含空格解析:getline()函数允许从输入流中读取多个字符,并且允许指定输入终止字符(默认值是换行字符)。getline 的定义为 getline(str,MAX,DELIM),其含义是析取字符串到数组 str 中,直到遇到 MAX 个字符或者遇到字符 DELIM 析取分界符。13.关于 continue 语句叙述不正确的是( )。(分数:2.00)A.某对象名B.某对象成员名C.某对象的引用名 D.指向对

    21、象的指针名解析:C+语言中,在定义该函数时所指定的数据类型决定函数的返回值类型。14.有以下程序 #includeiostreamh void fun(int a,int b,int C) a=456,b=567,c=678; void main( ) int x=10,y=20,z=30; fun(x,y,z); cout x , y , z end1; 输出结果是( )。 (分数:2.00)A.不能通过编译B.输出 6C.输出 x! =y+zD.输出 x=y+z 解析:C+语言中判断文件操作成功主要有两个函数 good( )和 fail( ),其中 if(文件流名good( ) )和 if

    22、(!文件流名fail( ) ),还有 if(文件流名)都可以表示判断文件操作是否成功。15.if 语句的语法格式可描述为 格式 1:if() 或 格式 2:if()else 关于上面的语法格式,下列表述中错误的是(分数:2.00)A.部分可以是一个 if 语句,例如 if(if(a =0)?)B.部分可以是一个 if 语句,例如 if(?)if(?)C.如果在前加上逻辑非运算符!并交换和的位置,语句功能不变D.部分可以是一个循环语句,例如 if(?)while(?)?解析:16.下面程序的运行结果为( )。 #include iostreamh void swap(int a,int b) i

    23、nt temp; temp=a+; a=b; b=temp; void main( ) int a=2,b=3; swap(a,b); couta“,“ print5; pd-print6; delete pd; return 0; (分数:2.00)解析:39.语句 cout /n还可表示为 1。(分数:2.00)填空项 1:_ (正确答案:cout end1;)解析:“/n”表示换行,end1 也可表示换行。end1 和“/n”可以通用。40.将以下程序写成三目运算表达式是 1。 if(a B) max=a; else max=b; (分数:2.00)填空项 1:_ (正确答案:max=(

    24、aB) ?a:b;)解析:条件运算符要求有三个操作对象,称三目(元)运算符,它是 c+语言中惟一的一个三目运算符。条件表达式的一般形式为:表达式 1?表达式 2:表达式 3。所以我们可以写成(aB) ?a:b,它是一个“条件表达式”。执行顺序是如果(aB) 条件为真,则条件表达式取值 a 作为整个表达式的值,否则取值 b作为整个表达式的值。41.插入排序算法的主要思想是:每次从未排序序列中取出一个数据,插入到已排序序列中的正确位置。InsertSort 类的成员函数 sort1 实现了插入排序算法。请将画线处缺失的部分补充完整。 class InserSort public: InsertSo

    25、rt(int*a0,int n0):a(a0),n(n0)参数 a0 是某数组首地址,n是数组元素个势 void sort2 此函数假设已排序序列初始化状态只包含 a0,未排序序列初始为a1an-1 for(int i=1;i3;j0;-j) if(t=aj-1)break; aj:aj-1; aj=t; protected: int*a,n;指针 a 用于存放数组首地址,n 用于存放数组元素个数 ; (分数:2.00)填空项 1:_ (正确答案:j=n-l)解析:给变量 j 赋初值。42.表达式 xoperator+1 还可写成 2。(分数:2.00)填空项 1:_ (正确答案:+x)解析:

    26、C+语言中用成员函数重载+x 为 xoperator +-|_|-用友元函数重载+x 为:operator +(x)43.以下程序运行后的输出结果是 1。 #define S(x) 4*x*x+1 main2 int i=6,j=8; printf(“%d/n“,S(i+j); (分数:2.00)填空项 1:_ (正确答案:81)解析:带参数的宏定义是按#define 命令行中指定的字符串从左到右进行转换。本题中替换的式子为:4*i+j*i+j+1,代入 i,j 的值得 81。44.以下程序用于判断 a、b、c 能否构成三角形,若能,输出 YES,否则输出 NO。当给 a、b、c 输入三角形三

    27、条边长时,确定 a、b、c 能构成三角形的条件是需同时满足三 个条件:a+bc,a+cb,b+ca。请填空。 main1 float a,b,c; scanf(“%f%f%f“, if(= 2)printf(“YES/n“); /*a、b、c 能构成三角形*/ else printf(“NO/n“); /*a、b、c 不能构成三角形*/ (分数:2.00)填空项 1:_ (正确答案:(a+bc) value=rhs. value; return*this; (分数:2.00)解析:46.若从键盘输入 70,则以下程序输出的结果是 1。 #includeiostreamh void main2

    28、int a;cina; if(a50) couta; if(a40)couta; if(a30)couta (分数:2.00)填空项 1:_ (正确答案:707070)解析:本题考查对 if 语句的掌握,当输入 70 以后,程序中的 3 个 if 语句都成立,所以分别输出 70。 47.表达式 xoperator+(yoperator+(0)还可以写成 1。(分数:2.00)填空项 1:_ (正确答案:x+y+或 x+(y+))解析:因为 yoperator+(0)是对成员 y 重载运算符,所以是成员重载,在参数表中又有一个参数,所以是重载后缀+,所以是 x+(y+)。48.友元类的所有成员函

    29、数都是另一个类的 1。(分数:2.00)填空项 1:_ (正确答案:友元函数)解析:C+语言中友元类中的函数都是另一个类的友元函数。49.以下程序运行后的输出结果是 1。 #include char *ss(char *s) char *p,t; p=s+1;t=*s; while(*p) *(p-1)=*p; p+; *(p-1)=t; return s; main2 char *p,str10=“abcdefgh“; p=ss(str); printf(“%s/n“,p); (分数:2.00)填空项 1:_ (正确答案:bcdefgha)解析:函数 ss 的作用是将指针变量 s 指向的字符

    30、串的首字符移到最后一个位置,其他字符依次前移。其方 法是:首先将首字符进行了保存,保存在字符变量 t 中;其次,从指针变量 p 指向的字符(字符串 s 中的 第二个字符,即字符 b)开始,通过语句“*(p-1)=*p;”,依次前移,直到*p 指向的存储单元中的值为空为 止;最后通过语句“*(p-1)=t;”将保存在 t 中的字符放到移动后的字符串的末尾,所以本题输出的结果是 bcdefgha。50.若要在 C 盘根目录下作为二进制文件打开文件 testdat,则应该用的语句是 1。(分数:2.00)填空项 1:_ (正确答案:ifstream fin(“C:/testdat“,ios_binary);或ifstream fin;finopen(c:/test daf“ios_binary);)解析:C+中打开文件有两种方式ifstream fin(“testdat“);ifstream fin;finopen(“testdat“);,ios_binary 的意义是以二进制文件打开。


    注意事项

    本文(【计算机类职业资格】计算机等级考试二级(C++)48及答案解析.doc)为本站会员(吴艺期)主动上传,麦多课文档分享仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文档分享(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
    备案/许可证编号:苏ICP备17064731号-1 

    收起
    展开