国家二级(C++)机试模拟试卷274
选择题
1.有如下程序:
#include
using namespace std;
int main()
{
void function(double val);
double val;
function(val);
cout<<val;
return 0;
}
void function(double val)
{
val=3;
}
编译运行这个程序将出现的情况是( )。(D)
A. 编译出错,无法运行
B. 输出:3
C. 输出:3.0
D. 输出一个不确定的数
解析:本题考查函数调用及传值方式传递参数,执行函数function时,并没有将3的值传回来,而val又没有初始化,所以会输出一个不确定的值,D选项正确。
2.如下类定义:
class AA
{
int a;
public:
int getRef()const { return &a; }//①
int getValue()const { return a; } //②
void set(int n)const { a=n; } //③
friend void show(AA aa)const { cout<<a; } //④
};
其中四个函数的定义中正确的是( )。(B)
A. ①
B. ②
C. ③
D. ④
解析:本题考查常成员函数,常成员函数只能引用本类中的数据成员,而不能修改它。所以本题答案为B。
3.对虚函数的调用( )。(D)
A. 一定使用动态联编
B. 必须使用动态联编
C. 一定使用静态联编
D. 不一定使用动态联编
解析:虚函数在运行阶段和类的对象绑定在一起,这样成为动态联编。虚函数声明只能出现在类声明中虚函数原型中,而不能在成员的函数体实现的时候。必须由成员函数来调用或者通过指针、引用来访问虚函数。如果通过对象名来访问虚函数,则联编在编译过程中认为是静态联编。
4.当需要将一个函数bool isnumber(char c)声明为内联函数时,则此内联函数的函数原型为( )。(C)
A. enum bool isnumber(char c);
B. define bool isnumber(char c);
C. inline bool isnumber(char c);
D. extern bool isnumber(char c);
解析:此题考查的是内联函数的相关知识点。函数原型应指出函数名、返回值类型以及在调用函数时必须提供的参数的个数和类型,因为要声明为内联函数,故应加inline关键字。
5.下列数据结构中,能用二分法进行查找的是( )。(D)
A. 无序线性表
B. 线性链表
C. 二叉链表
D. 顺序存储的有序表
解析:二分法查找只适用于顺序存储的有序表,表中的元素按值从小到大排列。
6.在软件开发中,需求分析阶段可以使用的工具是( )。(B)
A. N-S图
B. DFD图
C. PAD图
D. 程序流程图
解析:在需求分析阶段可以使用的工具有数据流图DFD图,数据字典DD,判定树与判定表,所以选择B。
7.有如下程序:
#include
using namespace std;
class A
{
public:
A(){cout<<\\(B)
A. BAA~A~B~A
B. ABA~B~A~A
C. BAA~B~A~A
D. ABA~A~B~A
解析:此题考查的是类的构造函数和析构函数。派生类构造函数的执行顺序为:首先调用基类的构造函数,调用顺序按它们被继承时说明的顺序;然后调用子对象的构造函数,调用顺序按它们在类中说明的顺序;最后是派生类构造函数中的内容。因此本题中,首先调用基类构造函数输出A,然后调用子对象的构造函数输出B,p=new A再调用类A的构造函数输出A;析构函数的调用顺序和构造函数的调用顺序相反。
8.若有如下程序:
#includc
using namespace std;
int s=0:
class sample
{
static int n;
public:
sample(int i)
{
n=i;
}
static void add()
{
S+=n:
}
};
int sample::n=0;
int main()
{
sample a2),b(5);
sample::add0;
cout<<s<<endl:
ream 0:
}
程序运行后的输出结果是( )。(B)
A. 2
B. 5
C. 7
D. 3
解析:执行语句“sample a(2),b(5)”;的结果是使n的值最终变为5,sample::add()语句调用函数static void add(),使得S=S+n=5。
9.下列字符串中,不可以用做C++标识符的是( )。(D)
A. y_2006
B. _TEST_H
C. Return
D. switch
解析:本题考查c++标识符的命名规则,其规则有如下几点:①所有标识符必须由字母、数字或下画线组成,且必须由字母或下画线开头;②所有标识符不能使用c++已有的关键字;③大、小写字母表示不同意义,即代表不同的标识符。选项C中虽然return是关键字,但因首字母大、小写不同,也可用于标识符,但不建议使用。故答案为D。
10.下列变量名中,合法的( )。(A)
A. CHINA
B. byte-size
C. double
D. A+a
解析:变量的定义要符合标识符的定义规则。选项B)byte-size中含有不合法的字符“.”;选项C)中的变量名是C++中的保留字;选项D)变量名中同样含有非法的字符“+”;只有选项A)符合要求。
11.函数swap(a,n)可完成对a数组从第1个元素到第n个元素两两交换。其中b[0]=1;b[1]=2;swap(b,2)。在运行调用函数中的语句后,b[0]和b[1]的值分别为(
本文档预览:3600字符,共15330字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载