C指针习题参考答案.docxVIP

  • 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)

1亿VIP精品文档

相关文档