2023年山东省日照市全国计算机等级考试C++语言程序设计模拟考试(含答案)学校:________ 班级:________ 姓名:________ 考号:________一、1.选择题(10题)1.结构化程序设计的3种结构是( )A.顺序结构、选择结构、转移结构 B.分支结构、等价结构、循环结构 C.多分支结构、赋值结构、等价结构 D.顺序结构、选择结构、循环结构 2. 在C++语言中,不合法的实型数据的是A.0.123 B.123e3 C.2.1e3.5 D.123 3. 下列关于类定义的叙述中,正确的是A.类定义中包括数据成员和函数成员的声明 B.类成员的缺省访问权限是保护的 C.数据成员必须被声明为私有的 D.成员函数只能在类体外进行定义 4.数据流图中带有箭头的线段表示的是( )A.控制流 B.事件驱动 C.模块调用 D.数据流 5.数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是( )A.DB包括DBS和DBMS B.DBMS包括DB和DBS C.DBS包括DB和DBMS D.没有任务关系 6. 一棵非空的二叉树的先序序列和后序序列正好相同,则该二叉树一定满足 _______。
A.其中任意一结点均无左孩子 B.其中任意一结点均无右孩子 C.其中只有一个结点 D.是任意一棵二叉树 7. 对于语句 cout <<setfill('*') << setw(10)<<1<<setfill ('*')<< setw (2) <<2;的输出结果是A.* * * * * * * * *1*2 B.* * * * * * * *12 C.* * * * * * *1*2 D.12* * * * * * * * 8. 语句ofstream f("DATA.DAT",ios_base::app|ios_base::binary);的功能是建立流对象f,并试图打开文件DATA.DAT并与之连接,而且A.若文件存在,将文件指针定位于文件首;若文件不存在,建立一个新文件 B.若文件存在,将其截为空文件,若文件不存在,打开失败 C.若文件存在,将文件指针定位于文件尾;若文件不存在,建立一个新文件 D.若文件存在,打开失败;若文件不存在,建立一个新文件 9.下列说法正确的是( )A.内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方 B.内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方 C.类的内联函数必须在类体内定义 D.类的内联函数必须在类体外通过加关键字inline定义 10. 在C++语言程序中,对象之间的相互通信通过A.继承实现 B.调用成员函数实现 C.封装实现 D.函数重载实现 二、单选题(13题)11.类A是类B的友元,类B是类C的友元,则下列说法正确的是( )。
A.类B是类A的友元 B.类C是类A的友元 C.类A是类C的友元 D.以上都不对 12.如果类A被说明成类B的友元,则( )A.A.类A的成员即类B的成员 B.类B的成员即类A的成员 C.类A的成员函数不得访问类B的成员 D.类B不一定是类A的友元13.下列是if语句的基本形式: if(表达式)语句 其中“表达式”( )A.必须是逻辑表达式 B.必须是关系表达式 C.必须是逻辑表达式或关系表达式 D.可以是任意合法的表达式 14. 设有两个串p和q,求q在p中首次出现位置的运算称为( )A.连接 B.模式匹配 C.求子串 D.求串长 15.以三级模式为框架形成的三种数据库中,真实存在于计算机外存的数据库是( )A.概念数据库 B.用户数据库 C.物理数据库 D.逻辑数据库 16.设有表示学生选课的三张表,学生s(学号,姓名,性别,年龄,身份证号),课程c(课号,课名),选课Sc(学号,课号,成绩),则表Sc的关键字(键或码)为( )A.课号,成绩 B.学号,成绩 C.学号,课号 D.学号,姓名,成绩 17. 能正确表示逻辑关系:“a≥10或a≤0”的C++语言表达式是A.a>=10 or a<=0 B.a>=0|a<=10 C.a>+10&&a<=0 D.a>=10||a<=0 18. 一个栈的初始状态为空。
现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是( )A.12345ABCDE B.EDCBA54321 C.ABCDEl2345 D.5432lEDCBA 19.将E-R图转换为关系模式时,实体和联系都可以表示为_________A.属性 B.键 C.关系 D.域 20.实体是信息世界中广泛使用的一个术语,它用于表示( )A.有生命的事物 B.无生命的事物 C.实际存在的事物 D.一切事物 21. 若已定义 inta[]={1,2,3,4,5,6,7,8,9,10},p=a,i=5; 则对数组元素不正确的引用是( ) A.a[p-a] B.*(&a[i]) C.p[i] D.*(*(a+i)) 22.在E—R图中,用来表示实体联系的图形是()A.椭圆形 B.矩形 C.菱形 D.三角形 23.下面的语句中错误的是( )A.int a=5;int x[a]; B.eonst int a=5;int x[a]; C.int n=5;int *P=new int[a]; D.const int n=5;int *p=new int[a]; 三、2.填空题(12题)24. 为了克服软件危机提出了【 】概念。
25. 有以下程序:#include<iostream>using namespace std;class Base{public:Base(){K=0;}int x;};class Derivedl:virtual public Base{public:Derivedl(){x=10;}};class Derived2:virtua1 public Base26. 非成员函数应声明为类的______函数才能访问这个类的private成员27. C++语言支持的两种多态性分别是编译时的多态性和【 】的多态性28. 在C++语言中,每个类都有一个隐含的指针叫【 】指针该指针指向【 】29. 软件生命周期包括8个阶段为了使各时期的任务更明确,又可分为3个时期:软件定义期、软件开发期、软件维护期编码和测试属于【 】期30. 假定输入的10个整数为:32,64,53,87,54,32,98,56,98,83那么下列程序的运行结果是【 】include <iostream>using namespace std;int main(){int a,b,C,X;a = b = C = 0;for(int i = 0;i<10;i++){cin>>x;switch(x%3){case 0 :a+=x; break;case 1 :b+=x; break;case 2 : C+=x; break;}}cout<<a<<","<<b<<","<<C<<end1;return 0;}31. 下面程序的输出结果是【 】。
include<iostream.h>void main(){int a[6]={1,2,3,4,5,6};for(int i=0;i<5;i++)cout <<a[i] <<" ";cout <<end1;}32. 排序是计算机程序设计中的一种重要操作,常见的排序方法有插入排序、【 】和选择排序等33. 数据的逻辑结构有线性结构和【 】两大类34. 执行语句序列char str1[10]="ABCD",str2[10]="XYZxyz";for(int i=0;strl[i]=str2[i];i++);后,数组strl中的字符串是______35. 函数重载要求重载的函数必须有和原函数一样的【 】四、程序改错题(10题)36.使用VC++6.0打开考生文件夹下的源程序文件1.cpp本程序要求输入一个字符串,然后将其中的小写字母改成大写字母,字符可能输入多行,当输入字符“?”时,默认字符输入结束,最后把结果输出到屏幕中 注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//******error******的下面 试题程序: #includevoidmain{inti=0; charstr[120]; cout<<"Enterastringendwith?."<
试题程序: #include(iostream.h)classTC{inti; public: TC; voiddisplay; ~TC; }; //******error******TC:TC{cout<<"Constructor"<<","; i=0; )//******error******TC:display{tout<<"i="<#include//********error********usingstd;voidWriteFile(char*s){ofstreamout1;//********error********out1.open("1.txt",binary|app);for(inti=0;s[i]!=0;i++){//***。