GESP C++ 4级 2025.03
关于下述代码,说法错误的是( )。
int multiply(int x, int y);
int main() {
int a = 4;
int b = 5;
int result = multiply(a, b);
std::cout << "The result is: " << result << std::endl;
return 0;
}
int multiply(int x, int y) {
return x * y;
}
函数 multiply 的定义应该放到函数 main 之前。
函数声明 int multiply(int x, int y); 中明确指定了函数 multiply() 的返回值为整数类型。
在 main 函数中,函数 multiply 通过 multiply(a, b) 被调用,其中 a 和 b 是定义在 main 函数中的变量,它们作为实参传递给了 multiply 函数的形参 x 和 y。
运行上述代码,将输出 The result is: 20。
执行下述代码将输出( )。
int x = 10;
void func() { int x = 20; std::cout << x; }
int main() {
func();
std::cout << x;
return 0;
}
编译错误
执行下述代码后,变量 的值为( )。
int a = 10;
int* p = &a;
*p = 20;
随机值
编译错误
以下哪种参数传递方式可以避免拷贝大型对象?
只能用值传递
只能用引用传递
只能用指针传递
引用传递和指针传递均可
执行下述代码,将输出( )。
void swap(int a, int &b) {
int temp = a;
a = b;
b = temp;
}
int main() {
int x = 1, y = 2;
swap(x, y);
std::cout << x << y;
return 0;
}
下面的描述中,( )准确定义一个名为 Person 的结构体并正确初始化了一个 Person 结构体的变量 p。
struct Person {
string name;
int age;
};
Person p("Yang", 10);
struct Person {
string name,
int age;
};
Person p;
p.name = "Yang";
p.age = 10;
struct Person {
string name;
int age;
};
Person p = { "Yang", 10 };
struct Person {
string name;
int age;
};
Person p = new Person("Yang", 10);
给定如下代码:
struct Person {
std::string name;
int age;
struct Address {
std::string street;
std::string city;
};
Address address;
};
下面描述错误的是( )。
结构 Person 内嵌套结构 Address
Person 有一个 Address 类型的 address 成员
一个 Person 类型的变量 p 的 address 的初始化可以写成:p.address.street = "123 Main St"; p.address.city = "Anytown";
结构的嵌套可以减少命名冲突,因此可以不必控制嵌套层次
假设 int arr[2][3] = {{1,2,3},{4,5,6}};,则 arr[1][2] 的值是( )。
下面( )正确定义了二维数组。
int arr[3,4];
int arr[3][4];
int arr(3,4);
int a[3-4];
小杨正在爬楼梯,需要爬 阶才能到达楼顶。如果每次可以爬 个或 个台阶,下面代码采用递推算法来计算一共有多少种不同的方法可以爬到楼顶,则横线上应填写( )。
int f(int n) {
if (n == 1 || n == 2)
return n;
int f1 = 1;
int f2 = 2;
int res = 0;
for (int i = 3; i <= n; i++) {
____________________ // 在此处填入代码
}
return res;
}
res += f1 + f2;
f1 = f2;
f2 = res;
res = f1 + f2;
f1 = f2;
f2 = res;
res += f1 + f2;
f2 = res;
f1 = f2;
res = f1 + f2;
f2 = res;
f1 = f2;
