Problem D: [CSP-S1][选择] 指针和引用1
Description
1. 下列哪个声明表示 p 是一个指向整型的指针?( )
A. int *p;
B. int p*;
C. int &p;
D. int p[];
2. 以下代码的输出是( )。
int a = 5;
int *p = &a;
*p = 10;
cout << a;
A. 5
B. 10
C. 地址值
D. 未定义
3. 下列哪个操作可以交换两个整数 x 和 y 的值?( )
A.
void swap(int a int b) {
int temp = a;
a = b;
b = temp;
}
B.
void swap(int *a int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
C.
void swap(int &a int &b) {
int temp = a;
a = b;
b = temp;
}
D. B和C
4. 若 int arr[5] = {1 2 3};,则 *(arr + 2) 的值是( )。
A. 1
B. 2
C. 3
D. 0
5. 以下代码的输出是( )。
int a = 10;
int &b = a;
int c = 20;
b = c;
cout << a;
A. 10
B. 20
C. 未定义
D. 编译错误
6. 下列哪个表达式表示指针 p 指向的数组的第3个元素?( )
A. p[2]
B. *(p + 3)
C. p + 2
D. *p + 2
7. 以下代码的输出是( )。
char *str = "Hello";
cout << *(str + 3);
A. 'H'
B. 'e'
C. 'l'
D. 'o'
8. 若 int **p;,则 p 是( )。
A. 指向整型的指针
B. 指向指针的指针
C. 整型数组
D. 函数指针
9. 以下代码的输出是( )。
int a = 5;
int *p = &a;
int **pp = &p;
**pp = 10;
cout << a;
A. 5
B. 10
C. 地址值
D. 编译错误
10. 下列哪个声明表示 p 是一个指向函数的指针,该函数返回 int?( )
A. int *p();
B. int (*p)();
C. int p[];
D. int &p;
Sample Input Copy
Sample Output Copy