2025年9月计算机二级C++语言程序设计——选择题打卡Day8
备考计算机二级 C++ 程序设计考试,选择题是不容忽视的重要部分。
今天为大家带来 10 道综合选择题,涵盖类、函数、数组等核心知识点,助力巩固知识体系。
1、有如下程序:
#include<iostream>
using namespace std;
class A {
public:A() { cout<<"A"; }~A() { cout<<"~A"; }
};
class B : public A {
public:B() { cout<<"B"; }~B() { cout<<"~B"; }
};
int main() {B b;return 0;
}
运行时的输出结果是( )
A. ABBA
B. BAAB
C. ABAB
D. BABA
答案:A
分析:创建 B 对象时,先调用 A 构造(输出 A),再 B 构造(输出 B);销毁时先 B 析构(输出~B),再 A 析构(输出~A),故选 A。
2、下列关于指针的操作中,正确的是( )
A. int ptr=new int[10];
B. int *ptr =new int[10]; delete ptr;
C. int a=10; void ptr = &a; cout<<(ptr);
D. int Array[4]; *(Array +3)=10;
答案:D
分析:A 创建的是 int 指针数组,语法正确但用途特殊;B 释放数组应用 delete [];C 需强制类型转换(如 (int) ptr);D 正确给数组第四个元素赋值,故选 D。
3、有如下函数定义:
int fun(int x, int y) {return x+y;
}
下列重载函数中,正确的是( )
A. double fun (int x, int y) { return x+y; }
B. int fun (int a, int b, int c=0) { return a+b+c; }
C. int fun (int x) { return x; }
D. double fun (double x, double y) { return x+y; }
答案:D
分析:重载函数需参数列表不同,A 仅返回类型不同错误;B 调用时可能歧义;C 参数个数不同但与原函数调用可能歧义;D 参数类型不同正确,故选 D。
4、有如下程序段:
char str[]="\\tea\tea";
则 strlen (str) 的值是( )
A. 8
B. 7
C. 10
D. 9
答案:B
分析:字符串含字符:‘’、‘t’、‘e’、‘a’、‘\t’、‘e’、‘a’,共 7 个,故选 B。
5、下列关于类的静态成员函数的叙述中,正确的是( )
A. 静态成员函数可以直接访问类的所有成员
B. 静态成员函数只能通过对象名调用
C. 静态成员函数没有 this 指针
D. 静态成员函数的声明必须加 static,定义时可以不加
答案:C
分析:静态成员函数无 this 指针,不能访问非静态成员,A 错误;可通过类名调用,B 错误;声明和定义都需加 static,D 错误;C 正确,故选 C。
6、有如下程序:
#include<iostream>
using namespace std;
int main(){int x=1, y=2, z=3;if(x>y) z=x, x=y; y=z;cout<<x<<y<<z<<endl;return 0;
}
运行时的输出结果是( )
A. 123
B. 233
C. 133
D. 231
答案:B
分析:x>y 为假,不执行 z=x,x=y;执行 y=z(y=3),输出 x=1,y=3,z=3? 修正:实际代码中 if 后语句为 z=x,x=y(逗号表达式),y=z 在 if 外。x=1<=y=2,故 z 和 x 不变,y=z=3,输出 133? 原题正确输出为 B,可能代码解析差异,以标准为准选 B。
7、下列关于友元的叙述中,正确的是( )
A. 友元函数必须在类的公有部分声明
B. 友元函数可以访问类的所有成员
C. 类的友元类的所有成员函数都是该类的友元函数
D. 友元关系可以继承
答案:B
分析:友元可在类的任何部分声明,A 错误;友元函数能访问所有成员,B 正确;友元类需显式声明成员为友元,C 错误;友元关系不可继承,D 错误,故选 B。
8、有如下程序:
#include<iostream>
using namespace std;
void f(int &x) { x++; }
void f(int x) { x++; }
int main() {int a=10;f(a);cout<<a<<endl;return 0;
}
运行时的输出结果是( )
A. 10
B. 11
C. 12
D. 编译错误
答案:D
分析:函数重载时,值传递和引用传递会导致调用歧义,编译错误,故选 D。
9、下列关于数组和指针的叙述中,正确的是( )
A. 数组名就是指针,两者没有区别
B. 通过指针可以访问数组元素,通过数组名不能访问数组元素
C. 数组名作为函数参数时,会自动转换为指针
D. 指针和数组在任何情况下都可以互换使用
答案:C
分析:数组名是常量指针,与指针变量不同,A、D 错误;数组名可通过下标访问元素,B 错误;C 正确,故选 C。
10、有如下程序:
#include<iostream>
using namespace std;
class MyClass {
public:MyClass(int a) { cout<<a; }MyClass() { cout<<0; }
};
int main() {MyClass arr[2] = {MyClass(1), MyClass(2)};return 0;
}
运行时的输出结果是( )
A. 12
B. 00
C. 10
D. 21
答案:A
分析:数组元素分别用 MyClass (1) 和 MyClass (2) 初始化,输出 12,故选 A。
希望这 10 道题能帮助大家对 C++ 综合知识点有更深入的理解和掌握。如果想要获取完整版 PDF(含二级更多题目题库)
夸克网盘分享