作业-指针
题量: 10 满分: 100
一. 单选题(共10题,100分)
1. (单选题)假定p所指对象的值为25,p+1所指对象的值为42,则*p++的值为( )。
- A. 25
- B. 42
- C. 26
- D. 43
正确答案: A:25;
2. (单选题)若int a[10]={0,1,2,3,0,8,9,10},则a[1]+*&a[9]的值为( )。
- A. 0
- B. 1
- C. 10
- D. 11
正确答案: B:1;
3. (单选题)
以下程序段的执行结果为( )。
int a,b,*p=&a,*q=&b;
*p=15;
*q=*p-5;
b=a+1-b;
printf("%d,%d\n",a,*q);
- A. 15,10
- B. 15,6
- C. 15,5
- D. 15,0
正确答案: B:15,6;
4. (单选题)若“int a[2]={1,3}, *p=&a[0]+1;” ,则 *p 的值是( )。
- A. 2
- B. 3
- C. 4
- D. &a[0]+1
正确答案: B:3;
5. (单选题)下列不正确的定义是( )。
- A. int *p=&i, i;
- B. int *p, i;
- C. int i, *p=&i;
- D. int i,*p;
正确答案: A:int *p=&i, i;;
6. (单选题)假定p指向的字符串为"string",则 printf("%s",p+3); 的输出结果为( )。
- A. string
- B. ring
- C. ing
- D. i
正确答案: C:ing;
7. (单选题)若有变量定义:“int i,j=7,*p=&i;”,则与“i=j;”语句等价的语句是( )。
- A. i=*p;
- B. *p=*&j;
- C. i=&j;
- D. i=&*p;
正确答案: B:*p=*&j;;
8. (单选题)
以下程序段的执行结果为( )。
int a=5,b=10,*p=&a,*q=&b;
*q=*p+1+*q;
printf("%d,%d\n",*p,*q);
- A. 5,12
- B. 5,15
- C. 5,16
- D. 5,20
正确答案: C:5,16;
9. (单选题)变量s的定义为“char *s= "Hello world!";”,要使变量p指向s所指向的同一个字符串,则应选取( )。
- A. char *p=s;
- B. char *p=&s;
- C. char *p;p=*s;
- D. char *p; p=&s;
正确答案: A: char *p=s;;
10. (单选题)若要使p指向二维整型数组a[10][20],则p的类型为( )。
- A. int *
- B. int **
- C. int *[20]
- D. int(*)[20]
正确答案: D: int(*)[20];