- 13
- 0
- 约 9页
- 2020-12-10 发布于山东
- 举报
《C++指针》习题
学号
姓名
一、 选择题
1、有定义如下:
int a[5], *p;
则下列描述错误的是
B
A.表达式
p=p+1是合法的
B.表达式
a=a+1 是合法的
C.表达式
p-a
是合法的
D.表达式
a+2 是合法的
2、函数定义为
Fun(int i),
变量定义
n=100, 则下面调用该函数正确的
是
C
A. Fun(20)
B. Fun(20+n)
C.Fun(n)
D.Fun(n)
3、若有说明 int I,j=2,*p=i; 则能完成
A. i=*p; B.*p=*j; C. i=j;
4、设已有定义 char *st = how are you;
A. char a[11],*p;strcpy(p=a+1,st[4]);
B. char a[11];strcpy(++a,st);
C. char a[11];strcpy(a,st);
D. char a[],*p;strcpy(p=a[1],st+2);
i=j
赋值功能的语句是
D.i=**p;
下列程序中正确的是
B
A
5、设有数组 int array[3][4] ,下列引用数组元素的方法中错误的是
A. array[i][j] B.*(*(array+i)+j)
C. *(array[i]+j) D. *(array+i*4+j)
D
6、有定义 int s[4][5],(*ps)[5];ps=s; 则对数组 s 中元素引用的正确
的是
C
A. ps+1
B.*(ps+3)
C. ps[0][2]
D. *(ps+1)+3
7、设有说明 int b[4][4] A. *b[3][3] B
,以下不能等价表示元素 b[3][3]
.(*(*(b+3))+3) C .*(b[3]+3)
的是: B
D .*(*(b+3)+3)
8、若有说明 char *s[]={234,5678,9012,3456,7890};,
则表达
式 *s[1] *s[3] 比较的是
A. 1234 和 9012 B
B
.5
和3 C
.l
和9
D
.5678
和3456
9、设语句 char *s[]={Student,Teacher,Father,Mother},*ps=s[2];,
执行语句 cout*s[1],ps,*ps\n;, 则输出结果是
A. T,Father,F B . Teacher,F,Father
C. Teacher,Father,Father D .语法错无输出
A
10、设有以下说明语句:
char sl[20]=hello,s2[20]=china;const char *ptr=s1;
以下语句中不符合 A .strcpy(s2,ptr);
C++语法规则的语句是
B . ptr=s2; C
D
.ptr=ptr+4;
D
.*ptr=*s2;
11、设 s 和 t 分别为指向两个长度相同的字符数组的指针,则循环语句
while( C ) ;可以正确实现字符串 t 到 s 的完整复制功能。
A .*s=*t*t!=O B . s++=t++*t!=0
C. *s++=*t++
D
.*(++s)=*(++t)
12、设有说明: char s1[10],*s2=s1;
A.s1[]= ”computer ” B
C.s2=”computer ” D
则以下正确的语句是 C
.s1[10]= ”computer ”
.*s2=”computer ”
13、设有说明: int a[][4]={1,2,3,4,5,6,7,8,9,10},*p=*(a+1);
以下可得数值为 9 的表达式是 B
A. p+=3,*p++ B.p+=4,*(p++)
C. p+=4,*++p
D.p+=4,++*p
14、设有说明:
int a[4][4]={1,2,3,4,5,6,7,8,9,10},*p=a[1],(*q)[4]=a;
则
以下不能访问数值为A. *(a+1)+2
7 的数组元素的表达式是
B . p[2] C
A
. *(a[1]+2)
D
.
q[1][2]
二、填空题
1、在如下定义中 float a[ ]={100,200,300}; float *p[ ]={a[0], a[1],
a[2]}; 语句 cout*p[2] 的输出是 300
2 、 若有 说明 语句 char *name=newspaper;
wspaper ,cout*(name+3) 的输出是 s
3、int a[5]={100,
原创力文档

文档评论(0)