1、二级 C+笔试 308 及答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.下列关于数组初始化的说法,正确的是( )。(分数:2.00)A.对于 int a5;它的数组元素初值为 0B.int a5=1,3,5,7,8,9;是可以的,这时数组长度自动变为 6C.static int a5;的数组元素初值为 0D.int a5=1.3,5;是不合法的,因为数组长度为 5,而仅有 3 个数据,不知赋给哪个元素2.下面程序的执行结果是( )。 #includeiostream using namespace std; class buildin
2、g public: building() building(unsigned stories, float breadths, float lengths) story = stories; breadth = breadths; length = lengths; void getstory(void) cout“story is:“storyendl; void getarea(void) area = length*breadth*story;cout“area is:“areaendl; private: unsigned story; float length; float brea
3、dth; float area; ; void main(void) building b1,b2;building b3(10u,16.6,58.8); b1.getstory(); b1.getarea(); b2.getstory(); b2.getarea(); b3.getstory(); b3.getarea();(分数:2.00)A.story is:0 area is:0 story is:0 area is:0 story is:10 area is:9760.8B.story is:null area is:null story is:null area is:null s
4、tory is:10 area is:9760.8C.前两个对象输出的结果是不定的,后一个对象的结果正确D.前两个对象没有初值,因此程序编译时出错3.用链表表示线性表的优点是( )。(分数:2.00)A.便于随机存取B.花费的存储空间较顺序存储的大C.便于插入和删除操作D.数据元素的物理顺序与逻辑顺序相同4.下列关于对象的描述,不正确的是( )。(分数:2.00)A.对象只能描述有形的东西B.对象具有属性和服务两个主要因素C.现实世界中的一切事物都可以看作对象,但只有在具体的系统中加以论述才有意义D.对象的属性是对象的静态特征,服务是动态特征。并且对象的属性只能由本对象的服务来操作5.最常用的
5、一种基本数据模型是关系数据模型,它的表示应采用( )。(分数:2.00)A.树B.网络C.图D.二维表6.在软件测试设计中,软件测试的主要目的是( )。(分数:2.00)A.实验性运行软件B.证明软件正确C.演示软件的正确功能D.发现软件错误而执行程序7.下列说法不正确的是( )。(分数:2.00)A.基类指针可以指向它的公有派生类的对象B.指向基类的对象的指针可以指向派生类的对象,因而可以访问派生类的对象的成员C.基类指针不能指向其私有派生类的对象D.指向派生类对象的指针不可以指向基类的对象8.下面程序输出的结果是( )。 #includeiostream using namespace s
6、td; void main() char ch8=“good“,“better“,“best“; for(int i=1;i3;+i) coutchiendl; (分数:2.00)A.good betterB.better bestC.good bestD.good9.数据库的故障恢复,一般是由( )。(分数:2.00)A.数据流图完成B.数据字典完成C.DBA 完成D.PAD 图完成10.下面程序的运行结果是( )。 #includeiostream using namespace std; class A int a; public: A()a=0;1 A(int aa ) a=aa; v
7、irtual void show() couta“; ; class B:public A int b: public: B()b=0: B(int bb) b=bb; void show() coutb“ “; ; class C:public B int c; public: C(int cc) c=cc; void show() coutcendl; ; void main() A a( 8 ),*p;B b( 9 );C c( 10 ); p= p-show(); p= for(a=1,b=l;a=100;a+) if(b=10) break; if(b%3= =1) b+=3;con
8、tinue; couta; (分数:2.00)A.101B.6C.5D.413.根据数据结构中各数据元素之间前后关系的复杂程度,一般将数据结构分成( )。(分数:2.00)A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构14.下列函数的定义,正确的是( )。(分数:2.00)A.float sum(x, float x,y;B.float sum(float x,float ; C.float sum(float x,float D.float sum(floatx,float 15.当一个函数无返回值时,函数的类型应为( )。(分数:2.00)A.
9、任意B.voidC.intD.char16.在 C+语言里,一条语句以( )字符作为结束符。(分数:2.00)A.,B.;C.D.无符号17.对下面的程序,说法正确的是( )。 #includeiostream using namespace std; void sum(float m, float n) float sum=m+n; main() coutsum(5.3,6.5)endl;(分数:2.00)A.该程序是错误的,错误之处在于没有对 sum()函数进行说明B.程序书写规整,无语法错误,是正确的C.该程序语法无错误,但在调用函数 sum()时出错,因为 sum()函数被定义为 vi
10、od 类型,但却被主函数调用,因而是错误的D.虽然 sun()函数被定义为 void 类型,但调用时也不会出错,程序能够编译通过18.链表不具有的特点是( )。(分数:2.00)A.不必事先估计存储空间B.可随机访问任一元素C.插入删除不需要移动元素D.所需空间与线性表长度成正比19.下列语句中正确的是( )。(分数:2.00)A.int * p;i=8; p=B.int * p,i; p=C.float * p;int i;p=D.float * p;cout* p;20.一个函数为 void f(int,char=a),另一个函数为 void f(int),则它们( )。(分数:2.00)
11、A.不能在同一程序中定义B.可以在同一程序中定义并可重载C.可以在同一程序中定义,但不可以重载D.以上说法均不正确21.下列数据结构中,按“先进后出”原则组织数据的是( )。(分数:2.00)A.线性链表B.栈C.循环链表D.顺序表22.下面正确的是( )。(分数:2.00)A.4.1/2B.3.2%3C.3/2=1 结果为 2D.5.2/3 结果是 123.有如下程序: #includeiostream using namespace std; long fib(int n) if(n2) return(fib(n-1)+fib(n-2); else return(n); void main
12、() int i; cout“请输入一个整数:“; cini;coutendl; coutfib(i)endl; 当输入 4、2 时,该程序的输出结果是( )。(分数:2.00)A.5B.4C.5D.6 1 2 2 224.关于派生类的说法,不正确的是( )。(分数:2.00)A.派生类能够通过继承关键字改变对基类的函数成员的存取权限B.派生类可以拥有自己的新成员C.派生类可重载已有的函数成员D.派生类无法给基类的数据成员初始化25.有以下定义:“int t3)2”,能正确标识 t 数组元素地址的表达式是( )。(分数:2.00)A. templateclass T T max(T x,T y
13、) return(x= y ? x:y); templateclass T T max(T x,T y,T z) T t; t=(x=y ? x:y); return(t=z ? t:z); void main() int x = 10,y=18,maxi; float a = 1.2,b = 3.2,c = 2,max2; max1 = max(x,(int)c); max2 = max(a,b,(float)y); coutmaxiendl; coutmax2endl; (分数:2.00)A.18 3.2B.10 18C.10 3.2D.编译出错27.MyClock 为一个类,则指向“My
14、Clock a,* p;”语句时,调用该类构造函数( )次。(分数:2.00)A.1B.2C.3D.428.关于析构函数的说法,正确的是( )。(分数:2.00)A.析构函数用来释放构造函数为对象分配的内存空间。它可以被系统自动调用B.析构函数没有数据类型,其返回值为 void 型C.析构函数可以没有参数,也可有多个参数D.析构函数与构造函数不一样,它可以有多个,以方便使用29.关于类的继承的特性,不正确的是( )。(分数:2.00)A.子类对父类具有数据和程序代码的共性特征B.子类与父类间有所差别C.会增加代码的冗余D.类间具有层次结构30.下列字符数组的初始化,正确的是( )。(分数:2.
15、00)A.char ch5=“a“,“b“,“c“,“d“,“e“;B.char ch=a,b;C.char ch15=“welcome to china“;D.char ch14=“I am a student“;31.下列叙述中,正确的是( )。(分数:2.00)A.软件就是程序清单B.软件就是存放在计算,机中的文件C.软件应包括程序清单及运行结果D.软件包括程序、文档和数据32.对中断语句的说法,不正确的是( )。(分数:2.00)A.用户可以指定中断的位置B.用户可以指定转移的位置C.break 语句可以跳出本循环D.continue 语句可以结束本次循环33.char c=/41;p
16、rintf(“%o“,c); 的结果为( )。(分数:2.00)A.0101B.101C.41D.6534.循环链表的主要优点是( )。(分数:2.00)A.不再需要头指针了B.从表中任一结点出发都能访问到整个链表C.在进行插入、删除运算时,能更好地保证链表不断开D.已知某个结点的位置后,能够容易地找到它的直接前趋35.需求分析阶段的任务是确定( )。(分数:2.00)A.软件开发方法B.软件开发工具C.软件开发费用D.软件系统功能二、B填空题/B(总题数:15,分数:30.00)36.冒泡排序算法在最好的情况下的元素交换次数为U 【1】 /B。/U(分数:2.00)填空项 1:_37.当线性
17、表采用顺序存储结构实现存储时,其主要特点是U 【2】 /U。(分数:2.00)填空项 1:_38.为了克服软件危机提出了U 【3】 /U概念。(分数:2.00)填空项 1:_39.常用的黑箱测试有等价分类法、边值分析法、错误推测法和U 【4】 /U等 4 种。(分数:2.00)填空项 1:_40.在最坏情况下,堆排序需要比较的次数为U 【5】 /U。(分数:2.00)填空项 1:_41.执行语句: int result=100; cout(result= 60)结果是U 【6】 /U。(分数:2.00)填空项 1:_42.对于嵌套的 ifelse 语句,C+语法规定 else 总是与U 【7】
18、 /U匹配。(分数:2.00)填空项 1:_43.以下程序的输出是U 【8】 /U。 #includeiostream using namespace std; fun(intm) static int n=1; n=m*n; return(n); void main() int i; for(i=1;i=3;i+) coutfun(i);(分数:2.00)填空项 1:_44.当用数组元素作函数参数时,这属于U 【9】 /U传递。(分数:2.00)填空项 1:_45.请填写空格: #includeiostream using namespace std; void fun(int x,int
19、y,int * z) *2 = x + y; void main() int a=100,b=100,c,*p= fun(a,b,p); U【10】 /U; /输出调用 fun 函数后返回 a、b 的和。 (分数:2.00)填空项 1:_46.在类中定义和实现的函数称为U 【11】 /U。(分数:2.00)填空项 1:_47.重载函数的函数名称相同,但函数的实现和功能不同,系统是靠U 【12】 /U来决定采用哪个函数。(分数:2.00)填空项 1:_48.设置虚基类的目的是解决二义性问题,可通过U 【13】 /U标识虚基类。(分数:2.00)填空项 1:_49.如果一个类中含有纯虚函数,则该类
20、称为U 【14】 /U。(分数:2.00)填空项 1:_50.模板是实现代码重用机制的一种工具,其中使一个函数可以定义成对许多不同数据类型完成同一个任务的是指U 【15】 /U模板。(分数:2.00)填空项 1:_二级 C+笔试 308 答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.下列关于数组初始化的说法,正确的是( )。(分数:2.00)A.对于 int a5;它的数组元素初值为 0B.int a5=1,3,5,7,8,9;是可以的,这时数组长度自动变为 6C.static int a5;的数组元素初值为 0 D.int a5=1
21、.3,5;是不合法的,因为数组长度为 5,而仅有 3 个数据,不知赋给哪个元素解析:解析 数组一旦定义,其长度就不可变了;初始化数组的数据个数不要大于数组长度,否则会出现逻辑错;初始化数组的数据个数若小于数组长度,则先赋给前边的元素,后边的元素值自动初始化为0;静态数组如果没有初始化自动初始化为 0。2.下面程序的执行结果是( )。 #includeiostream using namespace std; class building public: building() building(unsigned stories, float breadths, float lengths) st
22、ory = stories; breadth = breadths; length = lengths; void getstory(void) cout“story is:“storyendl; void getarea(void) area = length*breadth*story;cout“area is:“areaendl; private: unsigned story; float length; float breadth; float area; ; void main(void) building b1,b2;building b3(10u,16.6,58.8); b1.
23、getstory(); b1.getarea(); b2.getstory(); b2.getarea(); b3.getstory(); b3.getarea();(分数:2.00)A.story is:0 area is:0 story is:0 area is:0 story is:10 area is:9760.8B.story is:null area is:null story is:null area is:null story is:10 area is:9760.8C.前两个对象输出的结果是不定的,后一个对象的结果正确 D.前两个对象没有初值,因此程序编译时出错解析:解析 该
24、题是关于构造函数重载的,由于前两个对象没有赋初值,值不定。3.用链表表示线性表的优点是( )。(分数:2.00)A.便于随机存取B.花费的存储空间较顺序存储的大C.便于插入和删除操作 D.数据元素的物理顺序与逻辑顺序相同解析:解析 链式存储结构克服了顺序存储结构的缺点:它的结点空间可以动态申请和释放,它的数据元素的逻辑次序靠结点的指针来指示,不需要移动数据元素。故链式存储结构下的线性表便于插入和删除操作。4.下列关于对象的描述,不正确的是( )。(分数:2.00)A.对象只能描述有形的东西 B.对象具有属性和服务两个主要因素C.现实世界中的一切事物都可以看作对象,但只有在具体的系统中加以论述才
25、有意义D.对象的属性是对象的静态特征,服务是动态特征。并且对象的属性只能由本对象的服务来操作解析:解析 抽象是分析对象的基本方法。5.最常用的一种基本数据模型是关系数据模型,它的表示应采用( )。(分数:2.00)A.树B.网络C.图D.二维表 解析:解析 关系数据模型采用二维表来表示的。6.在软件测试设计中,软件测试的主要目的是( )。(分数:2.00)A.实验性运行软件B.证明软件正确C.演示软件的正确功能D.发现软件错误而执行程序 解析:解析 使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。软件测试是为了发现错误而执行
26、程序的过程。测试要以查找错误为中心,而不是为了演示软件的正确功能。7.下列说法不正确的是( )。(分数:2.00)A.基类指针可以指向它的公有派生类的对象B.指向基类的对象的指针可以指向派生类的对象,因而可以访问派生类的对象的成员 C.基类指针不能指向其私有派生类的对象D.指向派生类对象的指针不可以指向基类的对象解析:解析 其前半句是正确的,但后半句是错误的。它可以访问派生类的对象中由基类继承下来的成员,但不可访问派生类新增成员。8.下面程序输出的结果是( )。 #includeiostream using namespace std; void main() char ch8=“good“,
27、“better“,“best“; for(int i=1;i3;+i) coutchiendl; (分数:2.00)A.good betterB.better best C.good bestD.good解析:解析 二维数组 ch 共 3 行 8 列,for 循环语句输出第 2、3 行的数组元素9.数据库的故障恢复,一般是由( )。(分数:2.00)A.数据流图完成B.数据字典完成C.DBA 完成 D.PAD 图完成解析:解析 数据库的故障恢复一般是由 DBA 完成的。10.下面程序的运行结果是( )。 #includeiostream using namespace std; class A
28、 int a; public: A()a=0;1 A(int aa ) a=aa; virtual void show() couta“; ; class B:public A int b: public: B()b=0: B(int bb) b=bb; void show() coutb“ “; ; class C:public B int c; public: C(int cc) c=cc; void show() coutcendl; ; void main() A a( 8 ),*p;B b( 9 );C c( 10 ); p= p-show(); p= for(a=1,b=l;a=1
29、00;a+) if(b=10) break; if(b%3= =1) b+=3;continue; couta; (分数:2.00)A.101B.6C.5D.4 解析:解析 该题是对 for 循环语句、条件语句、中断语句的综合考察。循环 for 语句执行了 4 次,当执行第 4 次循环的时候 b=10 退出循环,输出 a 的值为 4。13.根据数据结构中各数据元素之间前后关系的复杂程度,一般将数据结构分成( )。(分数:2.00)A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构 D.内部结构和外部结构解析:解析 根据数据结构中各数据元素之间前后关系的复杂程度,一般将数据结
30、构分成线性结构和非线性结构。14.下列函数的定义,正确的是( )。(分数:2.00)A.float sum(x, float x,y;B.float sum(float x,float ; C.float sum(float x,float D.float sum(floatx,float 解析:解析 选项 A 函数形参需指定类型;选项 B 函数头不能以分号结尾;选项 D 函数形参需指定类型。15.当一个函数无返回值时,函数的类型应为( )。(分数:2.00)A.任意B.void C.intD.char解析:解析 如果函数所体现的计算不需要返回结果,则数据类型可以指定为 void 类型。注意,
31、这种情况下在主调函数中调用该函数,该函数调用表达式不能被用作子表达式给其他变量赋值。16.在 C+语言里,一条语句以( )字符作为结束符。(分数:2.00)A.,B.; C.D.无符号解析:解析 在 C+语言里,一条语句以“;”字符作为结束符。17.对下面的程序,说法正确的是( )。 #includeiostream using namespace std; void sum(float m, float n) float sum=m+n; main() coutsum(5.3,6.5)endl;(分数:2.00)A.该程序是错误的,错误之处在于没有对 sum()函数进行说明B.程序书写规整,
32、无语法错误,是正确的C.该程序语法无错误,但在调用函数 sum()时出错,因为 sum()函数被定义为 viod 类型,但却被主函数调用,因而是错误的 D.虽然 sun()函数被定义为 void 类型,但调用时也不会出错,程序能够编译通过解析:解析 void 类型的函数的返回值类型是不确定的,不能使用函数的返回值。18.链表不具有的特点是( )。(分数:2.00)A.不必事先估计存储空间B.可随机访问任一元素 C.插入删除不需要移动元素D.所需空间与线性表长度成正比解析:解析 链表不能随机访问任一元素。19.下列语句中正确的是( )。(分数:2.00)A.int * p;i=8; p=B.in
33、t * p,i; p= C.float * p;int i;p=D.float * p;cout* p;解析:解析 选项 A 中的变量 i 没有定义就使用了;选项 C(float)i 把 i 中的数据取出后变为 float 型,就是一个数值,“ else return(n); void main() int i; cout“请输入一个整数:“; cini;coutendl; coutfib(i)endl; 当输入 4、2 时,该程序的输出结果是( )。(分数:2.00)A.5B.4C.5 D.6 1 2 2 2解析:解析 注意递归调用的过程,当输入 2 作为函数参数时,调用肋()函数直接返回参
34、数值 2;当输入参数大于 2 时有一个递归调用的过程。24.关于派生类的说法,不正确的是( )。(分数:2.00)A.派生类能够通过继承关键字改变对基类的函数成员的存取权限B.派生类可以拥有自己的新成员C.派生类可重载已有的函数成员D.派生类无法给基类的数据成员初始化 解析:解析 派生类可以通过构造函数的初始化列表,给基类的数据成员和对象成员初始化。25.有以下定义:“int t3)2”,能正确标识 t 数组元素地址的表达式是( )。(分数:2.00)A. templateclass T T max(T x,T y) return(x= y ? x:y); templateclass T T
35、max(T x,T y,T z) T t; t=(x=y ? x:y); return(t=z ? t:z); void main() int x = 10,y=18,maxi; float a = 1.2,b = 3.2,c = 2,max2; max1 = max(x,(int)c); max2 = max(a,b,(float)y); coutmaxiendl; coutmax2endl; (分数:2.00)A.18 3.2B.10 18 C.10 3.2D.编译出错解析:解析 本道题考查函数模板以及函数模板重载的使用,max1=max(x,(int)c)语句会实例化 T max(T x
36、, T y)函数模板,返回两个 int 数据中的最大值;max2=max(a,b,(float)y);语句会实例化 T max(T x, T y, T 2)函数模板,返回 3 个 float 数据中的最大值。27.MyClock 为一个类,则指向“MyClock a,* p;”语句时,调用该类构造函数( )次。(分数:2.00)A.1 B.2C.3D.4解析:解析 *p 不调用类的构造函数,*p 并不定义类对象,而是定义了一个指针指向一个 MyClock 的对象。28.关于析构函数的说法,正确的是( )。(分数:2.00)A.析构函数用来释放构造函数为对象分配的内存空间。它可以被系统自动调用
37、B.析构函数没有数据类型,其返回值为 void 型C.析构函数可以没有参数,也可有多个参数D.析构函数与构造函数不一样,它可以有多个,以方便使用解析:解析 析构函数没有数据类型,也没有参数,没有返回值,一个类只能有一个析构函数。29.关于类的继承的特性,不正确的是( )。(分数:2.00)A.子类对父类具有数据和程序代码的共性特征B.子类与父类间有所差别C.会增加代码的冗余 D.类间具有层次结构解析:解析 不会增加代码的冗余,反而会减少冗余。30.下列字符数组的初始化,正确的是( )。(分数:2.00)A.char ch5=“a“,“b“,“c“,“d“,“e“;B.char ch=a,b;
38、C.char ch15=“welcome to china“;D.char ch14=“I am a student“;解析:解析 选项 A 中一个数组元素存放一个字符,不能存放字符串;当把字符串整体赋给字符串时,字符数组的长度要比字符串长度大 1,用来存放终结符,所以选项 C 和选项 D 都不正确。31.下列叙述中,正确的是( )。(分数:2.00)A.软件就是程序清单B.软件就是存放在计算,机中的文件C.软件应包括程序清单及运行结果D.软件包括程序、文档和数据 解析:解析 软件包括程序、文档和数据。32.对中断语句的说法,不正确的是( )。(分数:2.00)A.用户可以指定中断的位置B.用
39、户可以指定转移的位置 C.break 语句可以跳出本循环D.continue 语句可以结束本次循环解析:解析 不论 break 语句还是 continue 语句转移的位置根据程序是默认的了,不用人为设置。33.char c=/41;printf(“%o“,c); 的结果为( )。(分数:2.00)A.0101B.101C.41 D.65解析:解析 printf(“%o“,c);以八进制输出 c,而/41就是八进制表示的字符。34.循环链表的主要优点是( )。(分数:2.00)A.不再需要头指针了B.从表中任一结点出发都能访问到整个链表 C.在进行插入、删除运算时,能更好地保证链表不断开D.已知
40、某个结点的位置后,能够容易地找到它的直接前趋解析:解析 循环链表的主要优点是从表中任一结点出发都能访问到整个链表。35.需求分析阶段的任务是确定( )。(分数:2.00)A.软件开发方法B.软件开发工具C.软件开发费用D.软件系统功能 解析:解析 需求分析是软件定义时期的最后一个阶段,它的基本任务就是详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统的工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。二、B填空题/B(总题数:15,分数:30.00)36.冒泡排序算法在最好的情况下的元素交换次数为U 【1】 /B。/U(分数:2.00)填空项 1:_ (正确答案:0
41、)解析:解析 冒泡排序算法在最好的情况下(已经有序的)元素交换次数为 0。37.当线性表采用顺序存储结构实现存储时,其主要特点是U 【2】 /U。(分数:2.00)填空项 1:_ (正确答案:逻辑结构中相邻的结点在存储结构中仍相邻)解析:解析 当线性表采用顺序存储结构实现存储时,其主要特点是逻辑结构中相邻的结点在存储结构中仍相邻。38.为了克服软件危机提出了U 【3】 /U概念。(分数:2.00)填空项 1:_ (正确答案:软件工程)解析:解析 软件工程的出现是由于软件危机的出现。39.常用的黑箱测试有等价分类法、边值分析法、错误推测法和U 【4】 /U等 4 种。(分数:2.00)填空项 1
42、:_ (正确答案:因果图法)解析:解析 常用的黑箱测试有等价分类法、边值分析法、因果图法和错误推测法 4 种。40.在最坏情况下,堆排序需要比较的次数为U 【5】 /U。(分数:2.00)填空项 1:_ (正确答案:O(nlog 2n)解析:解析 在最坏情况下,堆排序需要比较的次数为 O(nlog2n)。41.执行语句: int result=100; cout(result= 60)结果是U 【6】 /U。(分数:2.00)填空项 1:_ (正确答案:good)解析:解析 条件运算符中的条件表达式为真时取第一个表达式的值。42.对于嵌套的 ifelse 语句,C+语法规定 else 总是与U
43、 【7】 /U匹配。(分数:2.00)填空项 1:_ (正确答案:离它最近的且尚未配对的订语句)解析:解析 对于嵌套的 if.else 语句,C+语法规定 else 总是与离它最近的且尚未配对的 if 语句匹配。43.以下程序的输出是U 【8】 /U。 #includeiostream using namespace std; fun(intm) static int n=1; n=m*n; return(n); void main() int i; for(i=1;i=3;i+) coutfun(i);(分数:2.00)填空项 1:_ (正确答案:126)解析:解析 局部静态变量在离开作用域
44、之后,并没有被销毁,而是仍然驻留在内存当中,直到程序结束。第一次调用 fun 函数时 n 的值等于 1,第二次调用 fun 函数时 n 的值等于 2,第三次调用 fun 函数时 n 的值等于 6,每次调用 fun 函数时,保留上次调用时 n 的值不变。44.当用数组元素作函数参数时,这属于U 【9】 /U传递。(分数:2.00)填空项 1:_ (正确答案:数值)解析:解析 当用数组元素作函数参数时是值传递方式。45.请填写空格: #includeiostream using namespace std; void fun(int x,int y,int * z) *2 = x + y; voi
45、d main() int a=100,b=100,c,*p= fun(a,b,p); U【10】 /U; /输出调用 fun 函数后返回 a、b 的和。 (分数:2.00)填空项 1:_ (正确答案:cout*p;)解析:解析 函数 fun()通过指针可以带回返回值,a、b 的和存放在*p 中。46.在类中定义和实现的函数称为U 【11】 /U。(分数:2.00)填空项 1:_ (正确答案:内联函数)解析:解析 在类中定义的函数称为内联函数,类外定义的函数默认情况下都是非内联函数。用关键字 inline 可以强制转换,对于内联成员函数,编译时在所有调用该函数的地方将装入实际的函数代码,内联成员函数的声明必须出现在对它的每个调用之前。47.重载函数的函数名称相同,但函数的实现和功能不同,系统是靠U 【12】 /U来决定采用哪个函数。(分数:2.00)填空项 1:_ (正确答案:参数个数或参数类型)解析:解析 函数重载是指同一个函数名可以对应着多个函数的实现。函数重载要求编译器能够唯一地确定调用一个函数