练习题--指针(答案)

练习题--指针(答案)

ID:21990882

大小:90.50 KB

页数:30页

时间:2018-10-26

练习题--指针(答案)_第1页
练习题--指针(答案)_第2页
练习题--指针(答案)_第3页
练习题--指针(答案)_第4页
练习题--指针(答案)_第5页
资源描述:

《练习题--指针(答案)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、指针一、选择题1、以下程序的运行结果是(B)sub(intx,inty,int*z){*z=y-x;}voidmain(){inta,b,c;sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);printf("%4d,%4d,%4d",a,b,c);}(A)5,2,3(B)-5,-12,-7(C)-5,-12,-17(D)5,-2,-72、执行以下程序后,a的值为(C),b的值为(C)voidmain(){inta,b,k=4,m=6,*p1=&k,*p2=&m;a=p1==&m;b=(-*p1)

2、/(*p2)+7;printf("a=%d",a);printf("b=%d",b);}①(A)-1(B)1(C)0(D)4②(A)5(B)6(C)7(D)103、下面程序应能对两个整型变量的值进行交换。以下正确的说法是(D)voidmain(){inta=10,b=20;pirntf("(1)a=%d,b=%d",a,b);swap(&a,&b);printf("(2)a=%d,b=%d",a,b);}swap(intp,intq){intt;t=p;p=q;q=t;}(A)该程序完全正确(B)该程序有错

3、,只要将语句swap(&a,&b);中的参数改为a,b即可(C)该程序有错,只要将swap()函数中的形参p和q以及t均定义为指针(执行语句不变)即可(D)以上说法都不正确4、有四组对指针变量进行操作的语句,以下判断正确的选项是(D)(1)int*p,*q;q=p;inta,*p,*q;p=q=&a;(2)inta,*p,*q;q=&a;p=*q;inta=20,*p;*p=a;(3)inta=b=0,*p;p=&a;b=*p;inta=20,*p,*q=&a;*p=*q;(4)inta=20,*p,*q=&a;p=q;i

4、ntp,*q;q=&p;(A)正确:(1)不正确:(2)(3)(4)(B)正确:(1)(4)不正确:(2)(3)(C)正确:(3)不正确:(1)(2)(4)(D)以上结论都不正确5、以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是(B)voidmain(){int*p,*q,a,b;p=&a;printf("inputa:");scanf("%d",*p);...}(A)*p表示的是指针变量p的地址(B)*p表示的是变量a的值,而不是变量a的地址(C)*p表示的是指针变量p的值(D)*p只能用来说明

5、p是一个指针变量6、以下程序有错,错误原因是(D)//此题不严密,ch虽未置初值,但*p=*q无语法上的错误。voidmain(){int*p,i;char*q,ch;p=&i;q=&ch;*p=40;*p=*q;...}(A)p和q的类型不一致,不能执行*p=*q;语句(B)*p中存放的是地址值,因此不能执行*p=40;语句(C)q没有指向具体的存储单元,所以*q没有实际意义(D)q虽然指向了具体的存储单元,但该单元中没有确定的值,所以不能执行*p=*q;语句7、有如下语句inta=10,b=20,*p1,*p2;p1=

6、&a;p2=&b;若要让p1也指向b,可选用的赋值语句是(B)(A)*p1=*p2;(B)p1=p2;(C)p1=*p2;(D)*p1=p2;8、已有定义intk=2;int*ptr1,*ptr2;且ptr1和ptr2均已指向变量k,下面不能正确执行的赋值语句是(B)(A)k=*ptr1+*ptr2;(B)ptr2=k;(C)ptr1=ptr2;(D)k=*ptr1*(*ptr2);9、变量的指针,其含义是指该变量的(B)(A)值(B)地址(C)名(D)一个标志10、若已定义inta=5;下面对(1),(2)两个语句的正确

7、解释是(D)(1)int*p=&a;(2)*p=a;(A)语句(1)和(2)中的*p含义相同,都表示给指针变量p赋值(B)(1)和(2)语句的执行结果,都是把变量a的地址值赋给指针变量p(C)(1)在对p进行说明的同时进行初始化,使p指向a(2)将变量a的值赋给指针变量p(D)(1)在对p进行说明的同时进行初始化,使p指向a(2)将变量a的值赋于*p11、若有语句int*point,a=4;和point=&a;下面均代表地址的一组选项是(D)(A)a,point,*&a(B)&*a,&a,*point(C)*&point,

8、*point,&a(D)&a,&*point,point12、若已有说明float*p,m=3.14;要让p指向m,则正确的赋值语句是(B)(A)p=m;(B)p=&m;(C)*p=m;(D)*p=&m;13、若有说明:int*p,m=5,n;以下正确的程序段是(D)(A)p=&n;scanf("%d"

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。