1、二级 C+笔试 47 及答案解析(总分:98.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.循环 while (int i=0)i-;执行的次数是_ 。(分数:2.00)A.0B.1C.5D.无限2.按照“后进后出”原则组织数据的数据结构是_ 。(分数:2.00)A.队列B.栈C.双向链表D.二叉树3.在一个被调用函数中,关于 rerun 语句的描述,_ 是错误的。(分数:2.00)A.被调用函数中可以不用 return 语句B.被调用函数中可以使用多个 return 语句C.被调用函数中,如果有返回值,就一定要有 return 语句D.被调用函数中,一个
2、return 语句可以返回多个值给调用函数4.长度为 n 的简单插入排序法,最坏情况需要_ 次比较。(分数:2.00)A.nB.n (n-1)C.n (n-1)/2D.n-15.设 x 和 y 均为 bool 量,则 xY 为假的条件是_ 。(分数:2.00)A.二者均为真B.二者均为假C.其中一个为真D.其中一个为假6.假定 p 是一个指向 float 型数据的指针,则 p+1 所指数据的地址比 p 所指数据的地址大_ 。(分数:2.00)A.1B.2C.4D.87.设 int x:,则经过_ 后,语句*px=0;可将 x 值置为 0。(分数:2.00)A.int*px;B.int cons
3、t *px=&x;C.int* const px=&x:D.const int *px=&x;8.在面向对象方法中,一个对象请求另一对象为其服务的方式是通过发送_ 。(分数:2.00)A.调用语句B.命令C.口令D.消息9.关于链式存储结构和顺序存储结构的说法正确的是_ 。(分数:2.00)A.链式存储结构比顺序存储结构更优越B.顺序存储结构比链式存储结构更优越C.顺序存储结构所占空间可以不连续D.链式存储结构比顺序存储结构更易删除其中的元素。10.软件测试过程一般按 4 个步骤进行:单元测试、集成测试、验收测试(确认测试)和系统测试。在程序编码阶段进行的测试通常是_ 。(分数:2.00)A.
4、单元测试B.集成测试C.验收测试(确认测试)D.系统测试11.设 i 和 j 为 int 型变量,以下表达式中,与下标引用 xij不等效的是_ 。(分数:2.00)A.*(x+B.*(x+C.*(x+i+D.*(*(x+12.使用操作符 setw 对数据进行格式输出时,需要包含_ 头文件。(分数:2.00)A.iostreahB.fstreahC.iomanihD.stdlih13.以下函数声明中,存在语法错误的是_ 。(分数:2.00)A.int AA(int a,in;B.int *BB (int,in;C.void CC (int,int=5);D.void*DD (x,;14.设 x
5、和 y 均为 bool 量,则 xy 为真的条件是_ 。(分数:2.00)A.其中一个为假B.其中一个为真C.二者均为假D.二者均为真15.以下结构类型可用来构造链表的是_ 。(分数:2.00)A.street aaint a;int *b;B.struct bb int a;bb*b;C.struct ccint *a;cc b;D.struct dd int *a;aa b;16.在每个 c+ 程序中必须包含这样一个函数,该函数的函数名为_ 。(分数:2.00)A.mainB.MAINC.nameD.function17.设 void f1 (int *m,long & n);int a:
6、long b;则以下调用合法的是_ 。(分数:2.00)A.f1 (a,;B.f1(&a,;C.f1(a,&;D.f1(&a,&;18.下列不属于算法的基本特征的是_ 。(分数:2.00)A.可行性B.确定性C.有穷性D.无限性19.将两个字符串连接起来组成一个字符串时,选用_ 函数。(分数:2.00)A.strlen()B.strcpy()C.strcat()D.strcmp()20.下列各种函数中,_ 不是类的成员函数。(分数:2.00)A.构造函数B.析构函数C.友元函数D.拷贝构造函数21.下列对字符数组进行初始化的语句中,_ 是正确的。(分数:2.00)A.char s 1=“abc
7、d”;B.char s2 3=”xyz”;C.char s 3 3=a,x,yD.char s3 3=“xyz”,“mnp”;22.对于类中定义的成员,其隐含访问权限是_ 。(分数:2.00)A.publicB.protectedC.privateD.static23.计算机软件是_ 。(分数:2.00)A.程序B.数据C.文档D.程序、数据及相关文档的完整集合24.结构化程序设计主要强调的是_ 。(分数:2.00)A.程序的规模B.程序的易读性C.程序的执行效率D.程序的可移植性25.设 int f (int);和 int g(int);是函数 f 和 g 的原形,以下将 f 作为语句调用的
8、是_ 。(分数:2.00)A.g(f(3)B.f(g(3);C.g(f(3)+2);D.p=f(g (3)+1);26.设 int*p2=x,*p1=a;p2=*b,则 a 和 b 的类型分别是_ 。(分数:2.00)A.int*和 intB.int*和 int*C.int 和 int*D.int*和 int*27.用户的数据视图,也就是用户所见到的数据模式,是_ 。(分数:2.00)A.概念模式B.外模式C.内模式D.物理模式28.设 void f1(int*,long &);int a=1,2,3;long b;,则以下调用合法的是_ 。(分数:2.00)A.f1 (a,:B.f1(&a,
9、;C.fl(a,&;D.f1 (&a,&:29.在数据流图(DFD) 中,带有名字的箭头表示_ 。(分数:2.00)A.控制程序的执行顺序B.模块之间的调用关系C.数据的流向D.程序的组成成分30.下列字符常量表示中,_ 是错误的。(分数:2.00)A./105B.*C./4fD./a31.当需要打开 A 盘上的 abc.txt 文件用于输入时,则定义文件流对象的语句为_ 。(分数:2.00)A.fstream fin(“A: abtxt”);B.ofstream fin (“A: abtxt”);C.ifstream fin(“A: abtxt”,ios: ap;D.ifstream fin
10、(“A: abtxt”,ios: nocreat;32.不属于结构化程序设计方法的四条原则是_ 。(分数:2.00)A.自顶向下B.对象化C.模块化D.逐步求精33.设 int a 4;int *p=a,则 sizeof (p)和 sizeof (a)的值分别是_ 。(分数:2.00)A.4 和 4B.16 和 4C.16 和 16D.4 和 1634.下列_ 是正确的语句。(分数:2.00)A.;B.a=17C.x+yD.cout“/n”35.下列变量名中,_ 是合法的。(分数:2.00)A.CHINAB.byte-sizeC.doubleD.A+a二、B填空题/B(总题数:14,分数:28
11、.00)36.若源程序文件 abc. cpp 中只有一个函数,该函数的名称为U 【1】 /U。(分数:2.00)填空项 1:_37.要获得一数据或数据类型所占空间的字节数,应使用的操作符是U 【2】 /U。(分数:2.00)填空项 1:_38.条件表达式(x!=9)& (x=9)的结果是U 【3】 /U。(分数:2.00)填空项 1:_39.函数调用参数的传递方式有三种,值传递、U 【4】 /U和引用传递。(分数:2.00)填空项 1:_40.若函数模板在调用时有U 【5】 /U,则调用它时必须强制实例化。(分数:2.00)填空项 1:_41.设有二维数组 int a 1020;,则 aij的
12、地址可由首元素 a00的地址来表达,由此可得访问数组元素 aij的表达式为U 【6】 /U。(分数:2.00)填空项 1:_42.设函数 f 的原型是:char *f (const char*);,pf 是指向 f 的指针,则 pf 的定义是U 【7】 /U。(分数:2.00)填空项 1:_43.若结构 Arith 中有一成员定义为 char *op;,另有结构指针 p 定义为 Arith *p=new Arith,则要访问 p 所指对象中的。p 成员所指向的对象,应使用表达式U 【8】 /U。(分数:2.00)填空项 1:_44.定义类对象时自动调用U 【9】 /U为类对象中的数据成员赋初值
13、。(分数:2.00)填空项 1:_45.若要使用操作符 setw 进行输出的格式控制,则必须用#include 命令包含U 【10】 /U头文件。(分数:2.00)填空项 1:_46.C+目标程序经U 【11】 /U后生成扩展名为 exe 的可执行程序文件。(分数:2.00)填空项 1:_47.16 位计算机中整型占U 【12】 /U个字节存储空间。(分数:2.00)填空项 1:_48.要在屏幕上显示“Hello,world!”应执行语句 cout U 【13】 /U。(分数:2.00)填空项 1:_49.表达式 8&3 的结果是U 【14】 /U。(分数:2.00)填空项 1:_二级 C+笔
14、试 47 答案解析(总分:98.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.循环 while (int i=0)i-;执行的次数是_ 。(分数:2.00)A.0 B.1C.5D.无限解析:解析 由于 i=0,条件为 false,所以不会去执行 i-。2.按照“后进后出”原则组织数据的数据结构是_ 。(分数:2.00)A.队列 B.栈C.双向链表D.二叉树解析:解析 队列是按照“后进后出”原则组织数据的数据结构。3.在一个被调用函数中,关于 rerun 语句的描述,_ 是错误的。(分数:2.00)A.被调用函数中可以不用 return 语句B.被调用函数中可
15、以使用多个 return 语句C.被调用函数中,如果有返回值,就一定要有 return 语句D.被调用函数中,一个 return 语句可以返回多个值给调用函数 解析:解析 被调用函数中,一个 return 语句只能返回一个值给调用函数。4.长度为 n 的简单插入排序法,最坏情况需要_ 次比较。(分数:2.00)A.nB.n (n-1)C.n (n-1)/2 D.n-1解析:解析 简单插入排序法,最坏情况需要 n (n-1)/2 次比较。5.设 x 和 y 均为 bool 量,则 xY 为假的条件是_ 。(分数:2.00)A.二者均为真B.二者均为假 C.其中一个为真D.其中一个为假解析:解析
16、xy 为假的条件是二者均为假。6.假定 p 是一个指向 float 型数据的指针,则 p+1 所指数据的地址比 p 所指数据的地址大_ 。(分数:2.00)A.1B.2C.4D.8 解析:解析 一个 float 型数据占的字节为 4 位。7.设 int x:,则经过_ 后,语句*px=0;可将 x 值置为 0。(分数:2.00)A.int*px;B.int const *px=&x; C.int* const px=&x:D.const int *px=&x;解析:解析 因为* p1=a:所以 a 必然为指针类型,p2=*b,*b 为指针类型,而 b 必然是指向指针的指针,a 和 b 的类型分
17、别是 int*和 int*。8.在面向对象方法中,一个对象请求另一对象为其服务的方式是通过发送_ 。(分数:2.00)A.调用语句B.命令C.口令D.消息 解析:解析 一个对象请求另一对象为其服务的方式是发送消息调用。9.关于链式存储结构和顺序存储结构的说法正确的是_ 。(分数:2.00)A.链式存储结构比顺序存储结构更优越B.顺序存储结构比链式存储结构更优越C.顺序存储结构所占空间可以不连续D.链式存储结构比顺序存储结构更易删除其中的元素。 解析:解析 链式存储结构比顺序存储结构更易删除其中的元素。10.软件测试过程一般按 4 个步骤进行:单元测试、集成测试、验收测试(确认测试)和系统测试。
18、在程序编码阶段进行的测试通常是_ 。(分数:2.00)A.单元测试 B.集成测试C.验收测试(确认测试)D.系统测试解析:解析 单元测试(模块测试),针对每个模块进行的测试,可从程序的内部结构出发设计测试用例,多个模块可以平行地对立地测试,通常在编码阶段进行。11.设 i 和 j 为 int 型变量,以下表达式中,与下标引用 xij不等效的是_ 。(分数:2.00)A.*(x+B.*(x+C.*(x+i+ D.*(*(x+解析:解析 *(x+ i+ j) 没有定义变量 xij。12.使用操作符 setw 对数据进行格式输出时,需要包含_ 头文件。(分数:2.00)A.iostreahB.fst
19、reahC.iomanih D.stdlih解析:解析 使用操作符 setw 对数据进行格式输出时,必须包含 iomanip.h 头文件。13.以下函数声明中,存在语法错误的是_ 。(分数:2.00)A.int AA(int a,in;B.int *BB (int,in;C.void CC (int,int=5);D.void*DD (x,; 解析:解析 D 选项参数没有进行声明。14.设 x 和 y 均为 bool 量,则 xy 为真的条件是_ 。(分数:2.00)A.其中一个为假B.其中一个为真 C.二者均为假D.二者均为真解析:解析 x&y 为真的条件是其中一个为真。15.以下结构类型可
20、用来构造链表的是_ 。(分数:2.00)A.street aaint a;int *b;B.struct bb int a;bb*b; C.struct ccint *a;cc b;D.struct dd int *a;aa b;解析:解析 如果要构造链表,则必须有指向下一个结点的指针。16.在每个 c+ 程序中必须包含这样一个函数,该函数的函数名为_ 。(分数:2.00)A.main B.MAINC.nameD.function解析:解析 每个 C+程序必须包含一个主函数 main。17.设 void f1 (int *m,long & n);int a:long b;则以下调用合法的是_
21、。(分数:2.00)A.f1 (a,;B.f1(&a,; C.f1(a,&;D.f1(&a,&;解析:解析 如果调用合法,则只有 B 满足两个参数为指针和引用的条件。18.下列不属于算法的基本特征的是_ 。(分数:2.00)A.可行性B.确定性C.有穷性D.无限性 解析:解析 可行性、确定性和有穷性是算法的基本特征。19.将两个字符串连接起来组成一个字符串时,选用_ 函数。(分数:2.00)A.strlen()B.strcpy()C.strcat() D.strcmp()解析:解析 将两个字符串连接起来组成一个字符串,选用 strcat 函数来连接。20.下列各种函数中,_ 不是类的成员函数。
22、(分数:2.00)A.构造函数B.析构函数C.友元函数 D.拷贝构造函数解析:解析 构造函数、析构函数和拷贝构造函数都是类的成员函数。21.下列对字符数组进行初始化的语句中,_ 是正确的。(分数:2.00)A.char s 1=“abcd”; B.char s2 3=”xyz”;C.char s 3 3=a,x,yD.char s3 3=“xyz”,“mnp”;解析:解析 BCD 选项都不合字符数组的定义。22.对于类中定义的成员,其隐含访问权限是_ 。(分数:2.00)A.publicB.protectedC.private D.static解析:解析 类中定义的成员,隐含访问权限是 pri
23、vate。23.计算机软件是_ 。(分数:2.00)A.程序B.数据C.文档D.程序、数据及相关文档的完整集合 解析:解析 计算机软件是包括程序、数据及相关文档的完整集合。24.结构化程序设计主要强调的是_ 。(分数:2.00)A.程序的规模B.程序的易读性 C.程序的执行效率D.程序的可移植性解析:解析 程序的易读性是结构化程序设计强调的主要特征。25.设 int f (int);和 int g(int);是函数 f 和 g 的原形,以下将 f 作为语句调用的是_ 。(分数:2.00)A.g(f(3)B.f(g(3);C.g(f(3)+2);D.p=f(g (3)+1); 解析:解析 p=f
24、(g(3)+1):函数 f 被作为一个语句调用。26.设 int*p2=x,*p1=a;p2=*b,则 a 和 b 的类型分别是_ 。(分数:2.00)A.int*和 intB.int*和 int* C.int 和 int*D.int*和 int*解析:解析 a 的类型一定是一个 int *型,而 b 的类型是 int *类型。27.用户的数据视图,也就是用户所见到的数据模式,是_ 。(分数:2.00)A.概念模式B.外模式 C.内模式D.物理模式解析:解析 概念模式是数据库系统中全局数据逻辑结构的描述,是全体用户公共数据视图;外模式,也称子模式与用户模式,是用户的数据视图,也就是用户所见到的
25、数据模式:内模式,又称物理模式,它给出了数据库物理存储结构与物理存取方法。28.设 void f1(int*,long &);int a=1,2,3;long b;,则以下调用合法的是_ 。(分数:2.00)A.f1 (a,: B.f1(&a,;C.fl(a,&;D.f1 (&a,&:解析:解析 函数 f1 的第一个参数为 int*,第二个参数为 long &,所以 f1(a,b)为合法调用。29.在数据流图(DFD) 中,带有名字的箭头表示_ 。(分数:2.00)A.控制程序的执行顺序B.模块之间的调用关系C.数据的流向 D.程序的组成成分解析:解析 在数据流图(DFD) 中,带有名字的箭头
26、表示数据的流向。30.下列字符常量表示中,_ 是错误的。(分数:2.00)A./105B.*C./4f D./a解析:解析 /4f是错误的。31.当需要打开 A 盘上的 abc.txt 文件用于输入时,则定义文件流对象的语句为_ 。(分数:2.00)A.fstream fin(“A: abtxt”);B.ofstream fin (“A: abtxt”);C.ifstream fin(“A: abtxt”,ios: ap;D.ifstream fin(“A: abtxt”,ios: nocreat; 解析:解析 定义文件流对象的语句为 fstream fin (“A:abc。txt”,ios:
27、 nocreate);32.不属于结构化程序设计方法的四条原则是_ 。(分数:2.00)A.自顶向下B.对象化 C.模块化D.逐步求精解析:解析 对象化属于面向对象设计的方法。33.设 int a 4;int *p=a,则 sizeof (p)和 sizeof (a)的值分别是_ 。(分数:2.00)A.4 和 4B.16 和 4C.16 和 16D.4 和 16 解析:解析 a 为数组,所以 sizeof (a)为 16。34.下列_ 是正确的语句。(分数:2.00)A.; B.a=17C.x+yD.cout“/n”解析:解析 BCD 都没有语句结束符。35.下列变量名中,_ 是合法的。(分
28、数:2.00)A.CHINA B.byte-sizeC.doubleD.A+a解析:解析 B 中不该有“-”字符,C 为保留字,D 中“+”,字符不合法。二、B填空题/B(总题数:14,分数:28.00)36.若源程序文件 abc. cpp 中只有一个函数,该函数的名称为U 【1】 /U。(分数:2.00)填空项 1:_ (正确答案:main 函数)解析:解析 main 函数为源程序文件中必须有的函数。37.要获得一数据或数据类型所占空间的字节数,应使用的操作符是U 【2】 /U。(分数:2.00)填空项 1:_ (正确答案:sizeof ())解析:解析 要获得字节数,必须用 sizeof
29、()操作符。38.条件表达式(x!=9)& (x=9)的结果是U 【3】 /U。(分数:2.00)填空项 1:_ (正确答案:0)解析:解析 两个条件必然有一个不满足,由于两者是与的关系,所以为 0。39.函数调用参数的传递方式有三种,值传递、U 【4】 /U和引用传递。(分数:2.00)填空项 1:_ (正确答案:指针传递)解析:40.若函数模板在调用时有U 【5】 /U,则调用它时必须强制实例化。(分数:2.00)填空项 1:_ (正确答案:常规参数)解析:41.设有二维数组 int a 1020;,则 aij的地址可由首元素 a00的地址来表达,由此可得访问数组元素 aij的表达式为U
30、【6】 /U。(分数:2.00)填空项 1:_ (正确答案:*(&a 00+20*4*i+4*j))解析:解析 根据二维数组的定义,它的 aij元素的地址应该是&a 0 0+20*4*i+4*j,所以 aij元素的值是*(&a 00+20*4*i+4*j)。42.设函数 f 的原型是:char *f (const char*);,pf 是指向 f 的指针,则 pf 的定义是U 【7】 /U。(分数:2.00)填空项 1:_ (正确答案:char(*p)(const char*)=f;)解析:解析 如果要使指针指向函数,函数的原型应该改为上面的形式。43.若结构 Arith 中有一成员定义为 c
31、har *op;,另有结构指针 p 定义为 Arith *p=new Arith,则要访问 p 所指对象中的。p 成员所指向的对象,应使用表达式U 【8】 /U。(分数:2.00)填空项 1:_ (正确答案:*(p-op))解析:解析 访问结构指针所指向的指针的值,首先得到指向的指针(p-op),然后计算值 *(p-op)。44.定义类对象时自动调用U 【9】 /U为类对象中的数据成员赋初值。(分数:2.00)填空项 1:_ (正确答案:构造函数)解析:解析 构造函数在初始化对象时便会自动调用。45.若要使用操作符 setw 进行输出的格式控制,则必须用#include 命令包含U 【10】
32、/U头文件。(分数:2.00)填空项 1:_ (正确答案:iomanip.h)解析:解析 iomanip.h 头文件包含控制输出字符串格式的函数。46.C+目标程序经U 【11】 /U后生成扩展名为 exe 的可执行程序文件。(分数:2.00)填空项 1:_ (正确答案:连接)解析:解析 在过程中首先编译为.obj 文件,然后连接为可执行文件。47.16 位计算机中整型占U 【12】 /U个字节存储空间。(分数:2.00)填空项 1:_ (正确答案:两)解析:解析 16 位计算机血型占有的字节为 16/8=2。48.要在屏幕上显示“Hello,world!”应执行语句 cout U 【13】 /U。(分数:2.00)填空项 1:_ (正确答案:“/”Hello. world!/“”)解析:解析 “Hello,world!”的输出需要转义字符/,所以 cout“/”Hello. world!/“”。49.表达式 8&3 的结果是U 【14】 /U。(分数:2.00)填空项 1:_ (正确答案:0)解析:解析 8&3 为二进制的 00001000&00000011,结果为 0。