C指针习题参考答案.docx
- 文档编号:3115738
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:15
- 大小:29.73KB
C指针习题参考答案.docx
《C指针习题参考答案.docx》由会员分享,可在线阅读,更多相关《C指针习题参考答案.docx(15页珍藏版)》请在冰豆网上搜索。
C指针习题参考答案
.
《C++指针》习题
学号姓名
一、选择题
1、有定义如下:
inta[5],*p;则下列描述错误的是B
A.表达式p=p+1是合法的B.表达式a=a+1是合法的
D.表达式p-a是合法的a+2是合法的C.表达式2、函数定义为Fun(int&i),变量定义n=100,则下面调用该函数正确的
是C
A.Fun(20)B.Fun(20+n)C.Fun(n)D.Fun(&n)
3、若有说明intI,j=2,*p=&i;则能完成i=j赋值功能的语句是B
A.i=*p;B.*p=*&j;C.i=&j;D.i=**p;
4、设已有定义char*st=howareyou;下列程序中正确的是A
A.chara[11],*p;strcpy(p=a+1,&st[4]);
B.chara[11];strcpy(++a,st);
C.chara[11];strcpy(a,st);
D.chara[],*p;strcpy(p=a[1],st+2);
5、设有数组intarray[3][4],下列引用数组元素的方法中错误的是D
A.array[i][j]B.*(*(array+i)+j)
C.*(array[i]+j)D.*(array+i*4+j)
6、有定义ints[4][5],(*ps)[5];ps=s;则对数组s中元素引用的正确
的是C
A.ps+1B.*(ps+3)C.ps[0][2]D.*(ps+1)+3
7、设有说明intb[4][4],以下不能等价表示元素b[3][3]的是:
B
A.*&b[3][3]B.(*(*(b+3))+3)C.*(b[3]+3)D.*(*(b+3)+3)
8、若有说明char*s[]={?
.78,9012,?
6,_x0007_890};,则表达
式*s[1]>*s[3]比较的是B
A.?
?
尴和9012B.'5'和'3'C.'l'和'9'D.?
?
尸和?
6
9、设语句char*s[]={Student,Teacher,Father,Mother},*ps=s[2];,执行语句cout<<*s[1]<<','< A.T,Father,FB.Teacher,F,Father C.Teacher,Father,FatherD.语法错无输出 10、设有以下说明语句: charsl[20]=hello,s2[20]=china;constchar*ptr=s1; 以下语句中不符合C++语法规则的语句是D A.strcpy(s2,ptr);B.ptr=s2;C.ptr=ptr+4;D.*ptr=*s2; 11、设s和t分别为指向两个长度相同的字符数组的指针,则循环语句while(C);可以正确实现字符串t到s的完整复制功能。 A.*s=*t&&*t! =OB.s++=t++&&*t! =0 .. . C.*s++=*t++D.*(++s)=*(++t) 12、设有说明: chars1[10],*s2=s1;则以下正确的语句是C A.s1[]=”computer”B.s1[10]=”computer” C.s2=”computer”D.*s2=”computer” 13、设有说明: inta[][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,*++pD.p+=4,++*p 14、设有说明: inta[4][4]={1,2,3,4,5,6,7,8,9,10},*p=a[1],(*q)[4]=a;则以下不能访问数值为7的数组元素的表达式是A A.*(a+1)+2B.p[2]C.*(a[1]+2)D.q[1][2] 二、填空题 1、在如下定义中floata[]={100,200,300};float*p[]={&a[0],&a[1], &a[2]};语句cout<<*p[2]的输出是300 2、若有说明语句char*name= ewspaper;则cout< wspaper,cout<<*(name+3)的输出是s。 3、inta[5]={100,200,300,400,500},*p1=&a[0];则表达式(*p1)++的值是100。 4、有如下定义中char*str[]={“Followme”,“BASIC”,“GreatWall”, “Department”}中输出”BASIC”字符串的语句是: cout< 5、执行以下语句: inta[5]={25,14,27,18},*p=a;(*p)++; 则*p的值为26,再执行语句: *p++;则*p的值为14 6、设有说明语句档牡猠嵛尽㈱尳瑜? 尶ぜ? ? ,*p=s;执行以下两个语句: cout<<*(p+5)<<'\n';cout<<(p+5)<<'\n';则输出为5和56。 7、设有如下函数定义。 如果在主函数中有语句cout< ”);则输出9 intf(char*s){char*p=s; while(*p++); return(p—s);} 8、执行以下程序后,y的值是10 intmain(){ inta[4]={2,4,6};inty=0,*p=a; for(;*p++;)if(*p)y+=*p; cout< 9、 三、程序阅读题 1、写出如下程序的运行结果。 chars[]=abcdefgh,*p=s; p+=3; cout< cout< .. . 2、写出如下程序的运行结果。 char*p=abcdefgh,*r; long*q=(long*)p; q++; r=(char*)q; cout< 3、写出如下程序的运行结果。 voidsub(intx,inty,int*z) { *z=y-x; } intmain() { inta,b,c; sub(10,5,&a); sub(7,a,&b); sub(a,b,&c);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 指针 习题 参考答案
![提示](https://static.bdocx.com/images/bang_tan.gif)