【计算机类职业资格】二级C++-98及答案解析.doc
《【计算机类职业资格】二级C++-98及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++-98及答案解析.doc(21页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+-98 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:46,分数:100.00)1.有如下程序: #includeiostream using namespace std; int main() int i,s=0; for(i=1;s20;i+=2)s+=i*i; coutiendl; return 0; 运行这个程序的输出结果是_。(分数:2.00)A.3B.5C.7D.92.要定义一个具有 5 个元素的一维数组 vect,并使其各元素的初值依次是 30,50,-88,0 和 0,则下列定义语句中错误的是_。(分数:2.00)A.int vect=30
2、,50,-88;B.int vect=30,50,-88,0,0;C.int vect5=(30,50,-88;D.int vect5=30,50,-88,0,0;3.已知有数组定义 char a34; 下列表达式中错误的是_。(分数:2.00)A.a2=“WIN“B.strcpy(a2,“WIN“)C.a23=“w“D.a01=a014.已知数组 arr 的定义如下: int arr5=1,2,3,4,5; 下列语句中输出结果不是 2 的是_。(分数:2.00)A.cout*arr+1endl;B.cout*(arr+1)endl;C.coutarr1endl;D.cout*arrendl;
3、5.有如下类定义: ciass A char*a; public: A():a(0) A(char*aa)/把 aa 所指字符串拷贝到 a 所指向的存储空间 a=_; strcpy(a,aa); A()(deletea; ; 横线处应填写的表达式是_。(分数:2.00)A.new charstrlen(aa)+1B.charstrlen(aa)+1C.charstrlen(aa)D.new charsizeof(aa)-16.要定义整型数组 x,使之包括初值为 0 的三个元素,下列语句中错误的是_。(分数:2.00)A.int x3=0,0,0);B.int x=0;C.static int
4、x3=0;D.int x=0,0,0;7.有如下语句序列: char str10;cinstr; 当从键盘输入”I love this game”时,str 中的字符串是_。(分数:2.00)A.“I love this game“B.“I love thi“C.“I love“D.“I“8.字符串“a+b=12/n/t”的长度为_。(分数:2.00)A.12B.10C.8D.69.下列有一维数组 a 的定义中,语法正确的是_。(分数:2.00)A.int a(10);B.int n=7,an;C.int n;cinn;int an;D.const int size=10;int asize;
5、10.有如下程序: #includeiostream using namespace std; int main() int*p; *p=9; cout“The value at p:“*p; return 0; 编译运行程序将出现的情况是_。(分数:2.00)A.编译时出现语法错误,不能生成可执行文件B.运行时一定输出:The value at p:9C.运行时一定输出:The value at p:*9D.运行时有可能出错11.下列语句中,错误的是_。(分数:2.00)A.const int buffer=256;B.const double*point;C.int const buffe
6、r=256;D.double*const point;12.有如下说明 int a10=1,2,3,4,5,6,7,8,9,10,*p=a; 则数值为 9 的表达式是_。(分数:2.00)A.*p+9B.*(p+8)C.*p+=9D.p+813.语句 int*p=p=B.int*p;p=k;C.int*p:*p=D.int*p;*p=k14.有如下定义: int a5=1,3,5,7,9,*p=a; 下列表达式中不能得到数值 5 的是_。(分数:2.00)A.a2B.a3C.*(p+2)D.*p+415.下列语句中,正确的是_。(分数:2.00)A.char*myString=“Hello-W
7、orld!“;B.char myString=“Hello-World!“;C.char myString11=“Hello-World!“;D.char myString12=“Hello-World!“;16.下列定义语句中,错误的是_。(分数:2.00)A.int px*;B.char*acp10;C.char(*pac)10;D.int(*p)();17.有如下语句序列: int x=100, coutx“-“rendl: 己知其中变量 x 的地址为 0012FF7C,则执行该语句序列的输出结果为_。(分数:2.00)A.100-100B.100-0012FF7CC.0012FF7C-
8、100D.0012FF7C-0012FFTC18.若字符指针 p 所指向的字符串为“abcdefg“,在执行语句_。 char*ap=new charstrlen(p)+1; 之后,ap 指向的字符数组的元素个数为(分数:2.00)A.9B.8C.7D.619.有如下程序段: int i=0,j=1; int / r=j; / int *P= / *p= / 其中会产生编译错误的语句是_。(分数:2.00)A.B.C.D.20.下列关于函数的描述中,错误的是_。(分数:2.00)A.函数可以没有返回值B.函数可以没有参数C.函数可以是一个类的成员D.函数不能被定义为模板21.下列关于 C+函数
9、的说明中,正确的是_。(分数:2.00)A.内联函数就是定义在另一个函数体内部的函数B.函数体的最后一条语句必须是 return 语句C.标准 C+要求在调用一个函数之前,必须先声明其原型D.编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式22.若有下面的函数调用: fun(a+b,3,max(n-1,b) 则 fun 的实参个数是_。(分数:2.00)A.3B.4C.5D.623.有如下程序: #includeiostream using namespace std; void function2(int n); void function1(int n) if(n=0)retu
10、rn; function2(n-2); void function2(int n) if(n=0)return; function1(n-1); int main() function1(5); return 0; 下列关于程序运行情况的描述中,正确的是_。(分数:2.00)A.function1 运行 1 次,function2 运行 2 次B.function1 运行 2 次,function2 运行 1 次C.function1 运行 2 次,function2 运行 3 次D.function1 运行 2 次,function2 运行 2 次24.假设函数 fun 已经定义,其原型为“
11、void fun(int a,int b=7,char*p=“*“);”下列函数调用中错误的是_。(分数:2.00)A.fun(5)B.fun(5,8)C.fun(6,“#“)D.fun(0,0,“=“)25.已知函数 FA 调用 FB,若要把这两个函数定义在同一个文件中,则_。(分数:2.00)A.FA 必须定义在 FB 之前B.FB 必须定义在 FA 之前C.若 FA 定义在 FB 之后,则 FA 的原型必须出现在 FB 的定义之前D.若 FB 定义在 FA 之后,则 FB 的原型必须出现在 FA 的定义之前26.下列函数原型声明中,错误的是_。(分数:2.00)A.int functio
12、n(int m,int n);B.int function(int,int);C.int function(int m=3,int n);D.int function(int27.在对函数进行原型声明时,下列语法成分中,不需要的是_。(分数:2.00)A.函数返回类型B.函数参数列表C.函数名D.函数体28.关于函数中的返回类型,下列表述中错误的是_。(分数:2.00)A.返回类型中有可能包含关键字 intB.返回类型中有可能包含自定义标识符C.返回类型中有可能包含字符*D.返回类型中可能包含29.若一个函数的原型为“int*Xfun1(int x,int ”,则该函数的返回值类型为_。(分数
13、:2.00)A.int *B.intC.int classA public: static int a; void init()a=1; A(int a=2)int();a+; ; int A:a=0; A obj; int main() coutobj.a; return 0; j 运行时输出的结果是_。(分数:2.00)A.0B.1C.2D.331.有如下程序: #includeiostream void fun(intx=y;y=t; int main() int a2=23,42; fun(a1,a0); std:couta0“,“a1std:endl; return 0; 执行后的输
14、出结果是_。(分数:2.00)A.42,42B.23,23C.23,42D.42,2332.有如下程序: #includeiostream using namespace std; int main() void function(double val); double val; function(val); coutval; return 0; void function(double val) val=3; 编译运行这个程序将出现的情况是_。(分数:2.00)A.编译出错,无法运行B.输出:3C.输出:3.0D.输出一个不确定的数33.有如下函数定义: void func(int a,in
15、tb+; 若执行代码段: int x=0,y=1; func(x,y); 则变量 x 和 y 的值分别是_。(分数:2.00)A.0 和 1B.1 和 1C.0 和 2D.1 和 234.已知函数 f 的原型是 void f(int *a,long ,变量 v1、v2 的定义是: int v1;loong v2; 下列调用语句中正确的是_。(分数:2.00)A.f(v1,B.f(v1,V2);C.f(D.f(35.在下列原型所示的 C+函数中,按“传值”方式传递参数的是_。(分数:2.00)A.void f1(int x);B.void f2(int*x);C.void f3(const in
16、t*x);D.void f4(int36.下列关于函数参数的叙述中,正确的是_。(分数:2.00)A.在函数原型中不必声明形参类型B.函数的实参和形参共享内存空间C.函数形参的生存期与整个程序的运行期相同D.函数的形参在函数被调用时获得初始值37.有如下程序: #includeiostream using namespace std; void f1(intx=y;y=z; void f2(int x,int y)int z=x;x=y;y=z; int main() int x=10,y=26; f1(x,y); f2(x,y); coutyendl; return 0; 运行时的输出结果是
17、_。(分数:2.00)A.10B.16C.26D.3638.已知函数 f 的原型是“void f(int *x,int ”,变量 v1、v2 的定义是“int v1,v2;”,下列调用语句中,正确的是_。(分数:2.00)A.f(v1,v2);B.f(v1,C.f(D.f(39.有如下程序: #includeiostream using namespace std; void f1(int void f2(int x)+x; int main() int x=10,y=12; f1(x); f2(y); coutx+yendl; return 0; 运行这个程序的输出结果是_。(分数:3.00
18、)A.22B.23C.24D.2540.有如下程序: #includeiostream using namespace std; class AA int n; public: AA(int k):n(k) int get()return n; int get()constreturn n+1; ; int main() AAa(5); const AA b(6); couta.get()b.get(); return 0; 执行后的输出结果是_。(分数:3.00)A.55B.57C.75D.7741.下面是重载为非成员函数的运算符函数原型,其中错误的是_。(分数:3.00)A.Fractio
19、n operator+(Fraction,Fraction);B.Fraction operator-(Fraction);C.FractionD.Fraction42.关于函数重载,下列叙述中错误的是_。(分数:3.00)A.重载函数的函数名必须相同B.重载函数必须在参数个数或类型上有所不同C.重载函数的返回值类型必须相同D.重载函数的函数体可以有所不同43.有如下程序: #includeiostream using namespace std; class MyClass public: MyClass(int x):val(x) void Print()constcout“const:v
20、al=“val“/t“; void Print()cout“val=“val“t“; private: int val; ; int main() const MyClass obj1(10); MyClass obj2(20); obj1.Print(); obj2.Print(); return 0; 程序的输出结果是_。(分数:3.00)A.val=10 const:val=20B.const:val=10 const:val=20C.const:val=10 val=20D.val=10 val=2044.下列有关函数重载的叙述中,错误的是_。(分数:3.00)A.函数重载就是用相同的
21、函数名定义多个函数B.重载函数的参数列表必须不同C.重载函数的返回值类型必须不同D.重载函数的参数可以带有默认值45.若已经声明了函数原型“void fun(int a,double b=0.0);”,则下列重载函数声明中正确的是_。(分数:3.00)A.void fun(int a=90,double b=0.0);B.int fun(int a,double );C.void fun(double a,int );D.bool fun(int a,double b=0.0);46.对 C+编译器区分重载函数无任何意义的信息是_。(分数:3.00)A.参数类型B.参数个数C.返回值类型D.常
22、成员函数关键字 const二级 C+-98 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:46,分数:100.00)1.有如下程序: #includeiostream using namespace std; int main() int i,s=0; for(i=1;s20;i+=2)s+=i*i; coutiendl; return 0; 运行这个程序的输出结果是_。(分数:2.00)A.3B.5C.7 D.9解析:解析 在这段程序中 for 循环共执行 3 次,每次循环变量 i 的值增 2,在执行第三次循环语句时,变量 s 的值等于 25,大于 20 而退出循环
23、,此时再执行循环变量 i 加 2 运算,所以最后变量 i 的值等于7。2.要定义一个具有 5 个元素的一维数组 vect,并使其各元素的初值依次是 30,50,-88,0 和 0,则下列定义语句中错误的是_。(分数:2.00)A.int vect=30,50,-88; B.int vect=30,50,-88,0,0;C.int vect5=(30,50,-88;D.int vect5=30,50,-88,0,0;解析:解析 此题考查的是一维数组定义时的初始化。当数组声明时没有给出数组的大小但是有初始化列表时,数组的大小就由列表中元素的个数来确定。所以选项 A 中数组只定义 3 个元素,不符合
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 C98 答案 解析 DOC
