#PTRT02. 指针程序阅读与辨错
指针程序阅读与辨错
指针程序阅读与辨错
说明
本题为指针专题理论练习。请根据 C++ 指针基础知识选择最合适的答案。
1. 下列程序调用普通 swap(int a,int b) 后输出是什么? int x=10,y=20; swap(x,y); cout<<x<<" "<<y;
{{ select(1) }}
- A. 10 20
- B. 20 10
- C. 10 10
- D. 编译错误
2. 若 void swap(int *a,int *b) 内正确交换 *a 和 *b,调用 swap(&x,&y) 后 x=10,y=20 的输出是( )。
{{ select(2) }}
- A. 10 20
- B. 20 10
- C. 20 20
- D. 地址值
3. 执行 int a=5,b=10; int *p1=&a,*p2=&b; *p1=*p2+5; 后 a 的值是( )。
{{ select(3) }}
- A. 5
- B. 10
- C. 15
- D. 20
4. 已知 int arr[5]={1,2,3,4,5}; int *p=arr;,*(p+2) 的值是( )。
{{ select(4) }}
- A. 1
- B. 2
- C. 3
- D. 4
5. 代码 for(int i=0;i<5;i++) sum += *(p+i); 对数组 {1,2,3,4,5} 求得 sum 为( )。
{{ select(5) }}
- A. 5
- B. 10
- C. 15
- D. 20
6. int a=10; float *p=&a; 会出现( )。
{{ select(6) }}
- A. 类型不匹配
- B. 野指针
- C. 空指针
- D. 正常运行
7. int *p=nullptr; 之后,下面哪项是正确判断?
{{ select(7) }}
- A. 可以直接执行 *p=10
- B. p 指向 a
- C. p 当前不指向有效对象,不能解引用
- D. nullptr 等价于随机地址
8. 语句 int *p = &10; 的判断是( )。
{{ select(8) }}
- A. 正确,p 指向常量 10
- B. 错误,不能直接对字面量 10 取地址
- C. 正确,p 保存整数 10
- D. 只有运行时才报错
9. void inc(int *p){ (*p)++; } int x=5; inc(&x); 执行后 x 为( )。
{{ select(9) }}
- A. 5
- B. 6
- C. 4
- D. 不确定
10. int a=1; int *p=&a; int *q=p; *q=7; 执行后 a 的值是( )。
{{ select(10) }}
- A. 1
- B. 7
- C. p 的地址
- D. q 的地址
粤公网安备44195502000195号