#6086. gesp四级真题分类二:指针与引用
gesp四级真题分类二:指针与引用
二、指针与引用(共23题)
题目文件
指针与引用(共23题)
1. 下面C++代码执行后输出是( )。
int arr[3] = {1,2,3};
int *p = NULL;
p = arr;
p++;
cout << *p << endl;
{{ select(1) }}
- 1,2,3
- 1
- 2
- 3
2. 如果变量 x 的地址是 0x6ffe14,下面C++代码执行以后输出的是( )。
int *p = NULL;
int x = 2;
p = &x;
p++;
cout << p << endl;
{{ select(2) }}
- 0x6ffe11
- 0x6ffe14
- 0x6ffe18
- 0x6ffe15
3. 下面C++代码执行后输出是( )。
int main() {
char *p = "I love GESP!";
cout << p+5 << endl;
}
{{ select(3) }}
- e
- I lov
- e GESP!
- GESP!
4. 下面C++代码执行以后输出的是( )。
int rc = 5;
int main() {
int rc;
cout << ++rc << endl;
}
{{ select(4) }}
- 0
- 1
- 6
- 不确定
5. 假设变量 a 的地址是 0x6ffe14,下面程序的输出是( )。
int main() {
int *p;
int a = 10;
p = &a;
p++;
cout << p << endl;
}
{{ select(5) }}
- 10
- 0x6ffe14
- 0x6ffe15
- 0x6ffe18
6. 如果下列程序输出的地址是 0x6ffe00,则 cout<<a+1<<endl; 输出的是( )。
int main() {
int a[2][3] = {0};
cout << a << endl;
}
{{ select(6) }}
- 0x6ffe04
- 0x6ffe0C
- 0x6ffe08
- 0x6ffe00
7. 运行下面代码,屏幕上输出是( )。
int arr[3] = {24, 9, 7};
int* p = arr;
p++;
cout << *p << endl;
{{ select(7) }}
- 24
- 9
- 7
- 不确定
8. 运行下面代码片段的结果是( )。
int x = 20;
int y = 24;
int* p = &x;
int* q = &y;
p = q;
{{ select(8) }}
- 将 x 赋值为 24
- 将 y 赋值为 20
- 将 q 指向 x 的地址
- 将 p 指向 y 的地址
9. 运行下面代码片段后,x 和 *p 的结果分别是( )。
int x = 20;
int* p = &x;
*p = *p + 2;
{{ select(9) }}
- 20 20
- 20 22
- 22 20
- 22 22
10. 执行下面代码后,输出为( )。
int main() {
int a = 5;
int* p = &a;
int** q = &p;
**q += 7;
cout << a << " " << *p;
}
{{ select(10) }}
- 5 5
- 12 12
- 12 5
- 5 12
11. 在C++中,声明一个指向整型变量的指针的正确语法是( )。
{{ select(11) }}
int* ptr;*int ptr;int ptr*;ptr int;
12. 运行下面程序后变量 a 的值是( )。
int a = 42;
int* p = &a;
*p = *p + 1;
{{ select(12) }}
- 42
- 43
- 编译错误
- 不确定
13. 小杨想让指针 p 指向整数变量 x,正确写法是( )。
{{ select(13) }}
int p = &xint *p = xint *p = &xp = *x
14. 小杨写了如下的指针接力程序,程序执行完后变量 a、*p1 和 *p2 的值分别是( )。
int a = 5;
int *p1 = &a;
int *p2 = p1;
*p2 = 10;
{{ select(14) }}
- 5 10 10
- 5 10 15
- 10 10 10
- 5 5 10
15. 执行完下面的代码后,*(p + 5) 和 arr[1][1] 的值分别是( )。
int arr[3][4] = {{1,2,3,4}, {5,6,7,8}, {9,10,11,12}};
int* p = &arr[0][0];
{{ select(15) }}
- 5 6
- 6 5
- 5 5
- 6 6
16. 已知:
int a[3][4] = {
{1,2,3,4},
{5,6,7,8},
{9,10,11,12}
};
int (*p)[4] = a;
则表达式 *(*(p+2)+1) 的值为( )。
{{ select(16) }}
- 6
- 10
- 9
- 11
17. 下面C++代码正确声明了一个返回int类型、接受两个int参数的函数。(判断题)
int add(int, int);
{{ select(17) }}
- 正确
- 错误
18. 下面C++代码的输出是15。(判断题)
void foo(int x) { x+=5; }
int main() { int a=10; foo(a); cout << a << endl; }
{{ select(18) }}
- 正确
- 错误
19. 以下代码能够正确初始化指针。(判断题)
int a = 5;
int *p = a;
{{ select(19) }}
- 正确
- 错误
20. 执行下面C++代码将输出11。(判断题)
int x = 10;
void f() {
int x = x + 1;
cout << x << endl;
}
int main() { f(); }
{{ select(20) }}
- 正确
- 错误
21. 执行下面C++代码将输出10。(判断题)
void func(int* p) { *p = 10; }
int main() { int a = 5; func(&a); cout << a << endl; }
{{ select(21) }}
- 正确
- 错误
22. 下面这段代码不合法,因为每一行都必须显式初始化3个元素。(判断题)
int arr[2][3] = {{1,2},{3}};
{{ select(22) }}
- 正确
- 错误
23. 以下代码能够正确初始化指针。(判断题)
int a = 5;
int *p = a;
{{ select(23) }}
- 正确
- 错误