欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    C语言习题集答案指针.docx

    • 资源ID:2535057       资源大小:21.93KB        全文页数:23页
    • 资源格式: DOCX        下载积分:1金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要1金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C语言习题集答案指针.docx

    1、C语言习题集答案指针第五章 指针习题一选择题1. 若定义 int a=8,b,*p=&b; 则下面对赋值语句 p=&a; *p=a; 的正确解释为【 】。A)两个语句都是使p指向aB)p=&a;是使p指向a,而*p=a是将a的值赋予*pC)两个语句都是将a的值赋予*pD)p=&a是将a的值赋予*p,而*p=a是使p指向a2. 若定义 int b=8,*p=&b; 则下面均表示b的地址的一组选项为【 】。A)*p, *&b B)*p, &*b C)p, *&b, &*p D)&*p, p, &b3. 若定义 int a,b,*p1=&a,*p2=&b; 使p1指向b的赋值语句是【 】。A)*p1

    2、=&b; B) p1=&p2; C)p1=*&p2; D) p1=*&b;4. 若定义 int a,b,*p; 下述程序段中正确的是【 】。A)p=&a; scanf(%d,&p); B) scanf(%d,&a); *p=a;C)p=&a; scanf(%d,&b);*p=b; D) p=&a; scanf(%d,*p);5. 若有定义int a=7,b=9,*p1,*p2;下列赋值语句中,正确的是【 】。A)p2=&a;p1=&b;*&a=*p1; B) p1=&a;p2=*&p1;a=&*p2;C)p1=&b;p2=&p1;*p1=*p2; D) p2=*&a;p1=*&b;6. 执行下

    3、面程序段后,c的值是【 】。int a,b,c,*p;a=2;b=10;p=&a;c=a+b+*p;A)12 B)14 C) 22 D) 247. 若定义 int i,*p; 使p指向i的赋值语句是【 】。A) p=&i; B) *p=&i; C) *p=i; D) p=*&i;8. 若定义int i=100,*p=&i;设为i分配的内存地址为200201,则【 】。A)p为201 B) *p为100 C) *p为200 D) p为1009. 若有定义float a,b,*p;下述程序段中正确的是【 】。A) p=&b;scanf(%f,&a);*p=&a; B) a=10;*p=a;prin

    4、tf(%f,*p);C) scanf(%f,&b);*p=b; D) p=&a;*p=9;printf(%f,*&a);10. 下面程序是实现两个整数a和b交换的,请将程序填完整。# include main( ) int a,b; int *pa,*pb , p; pa=&a; pb=&b; scanf(%d%d,pa,pb); p=*pa; *pa=*pb; *pb=【 】; printf(a=%d,b=%dn,*pa,*pb);A) pa B) pb C) *pa D) p11. 若定义 int b7,*p=b; 则p+3表示【 】。A) 元素b3的值 B) 元素b4的地址C) 元素b4

    5、的值 D) 元素b3的地址12. 下列程序的输出值为【 】。# include main() int a= 1,3,5,7,9,d=1,*p=a; p+=3; d+=*p; printf(%dn, d);A) 10 B) 8 C) 6 D) 713. 下列操作中,正确的是 【 】。A) char s7; int *p=s=580; B) char s6; int *p,*p2=s;*p=*p2;C) int a7,*p; p=a; D) int a6,*p; p=&a;14. 若有定义int a=1,2,3,4, *p=a, i=2;,则*(p+i)的值是【 】。A) 1 B) 2 C) 3

    6、D) 415. 有下面的程序段,int a=9,8,7,6,5,4,3,2,1,0,*p=a,i;其中i=3,则对a中元素引用错误的是【 】。A) a10 B) p9 C) *(&ai) D) *(&pi)16. 下面的程序运行后, 输出结果是【 】。# include main() int a5= 1,2,3,4,5, *p=a; p+=3; *p=*p+3; printf(%dn,a3);A) 3 B) 7 C) 4 D) 617. 下面的程序运行后, 如果第一个printf语句输出100, 则第二个printf语句输出为【 】。# include main( ) long int a=

    7、1,2,3,4,5,6,7, *p; p=&a3; printf(%p,a); printf(%p,p);A) 106 B) 103 C) 112 D) 10C18. 下面的程序运行后, 输出为【 】。# include main( ) long int a= 1,2,3,4,5,6,7, *p; p=&a2; printf(%d, *p);A) 2 B) 4 C) 3 D) 119. 运行下面程序段的输出结果是【 】。# include main() int a10= 2,4,6,8,10; int y=0,x,*p; p=&a1; for(x=0; x3; x+) y+=*(p+x); p

    8、rintf(%dn,y);A) 20 B) 24 C) 12 D) 1820 若定义 int a7,*p1=a,*p2=p1; 则对数组元素a3的正确引用是【 】。A) *(p2+3) B) *(p1+4) C) p1+3 D) *(&a0+4)21. 若定义 int b8,*p=b; 则对数组元素b4地址的非法引用为【 】。A) p+4 B) &b+4 C) &b0+4 D) b+422. 以下程序的输出结果是【 】 。# include main() int a= 1,2,3,4,5,6,*p; p=a; *(p+4)+=2; printf(%d,%dn,*p,*(p+4);A) 1,6

    9、B) 4,4 C) 4,5 D) 1,723. 下列程序运行输出的值为【 】。# include main( ) int a= 1,3,5,7,9,b= 10,8,6,4,2,c,*p=a,*q=b; p+=2; q+=4; c=(*p+)/(*q)+4; printf(%dn, c);A) 6 B) 5 C) 7 D) 不确定值24. 若有说明 int i=2,j=3,a54=1,2,3,4,5,6,7,8,*p=a0;则对数组元素aij之地址的正确引用为【 】。A) *(p+i)+j B) *(*(a+i)+j) C) pi+j D) p+4*i+j25. 若有说明 int i=2,j=3

    10、,a34=1,2,3,4,5,6,7,8,9,*p=a0;则对数组元素aij之值的正确引用为【 】。A) *ai+j B) *(p+i)+j) C) (pi+j) D) *(p+i*4+j)26. 若有说明 int i=2,j=3,a54=1,2,3,4,5,6,7,8,9,*p=a0; 则pi*j的值为【 】 。A) 0 B) 6 C) 7 D) 527. 若有说明 int i=2,j=3,a54=1,2,3,4,5,6,7,8,(*p)4=a; 则对数组元素aij之地址的错误引用为【 】。A) p+4*i+j B) *(a+i)+j C) pi+j D) *(p+i)+j28. 若有说明

    11、int a34=1,2,3,4,5,6,7,8,9,(*p)4=a;则对数组元素a23之值的正确引用为【 】。A) *(p+2)+3) B) *(p2+3) C) *(p+2*4+3) D) (a+2)329. 下面程序的运行结果是【 】。# include main() int a34= 1,3,5,7,9,11,13,15,17,19,21,23,(*p)4; p=a; printf(%d,*(*(p+2)+3);A)9 B) 15 C) 21 D) 2330. 若有int a34,(*p)4=a;则对数组元素aij(其中0=i=2,0=j=3)之值的正确引用为【 】。A) *(p+i)j

    12、 B) *pij C)pij D) pi+j31. 设数组a的起始地址为100H,则printf语句输出为【 】。# include main() int a54= 1,2,3,4,5,6,7,8,9,10,11,12,13,14,14,16,17,(*p)4; p=a; printf(%pn,*(p+3)+3);A) 130 B) 160 C) 11E D) 13C32. 下面程序的运行结果是【 】。# include main( ) int a34= 1,3,5,7,9,11,13,15,17,19,21,23; int i,j,k=0; int (*p)4=a; for(i=0; i3;

    13、 i+) for(j=0; j2; j+) k+=*(*(p+i)+j); printf(%dn,k);A) 99 B) 60 C) 108 D) 6833. 若有int i, j, a54, *p5;for(i=0;i5;i+) pi=ai;i=j=3; 则对数组元素aij之值的正确引用为【 】。A) (*(p+i)j B)*(*(p+i)j) C)*(p+i)+j) D)*pij34. 若有int i, j, a54, *p5;for(i=0;i5;i+) pi=ai;i=4; j=2;则对数组元素aij之地址的正确引用为【 】。A) *(p+i+j) B) *pi+j C) pij D)

    14、 pi+j35. 以下选项中正确的是【 】。A) int a54, b45,*p; p=a; b=p;B) float a54, (*p)5, (*q)4; p=a; q=a;C) double a54,*p5; p0=a0;D) int a54,(*p)4; p=a00;36. 设 char str45; 所定义的数组在内存中的起始地址为50(十进制), 则数组元素str33的地址为十进制的【 】。A)62 B)86 C)63 D)6837. 若有说明:char *p1, *p2, *p3, *p4,ch; 则下列选项中错误的是【 】。A) getchar(*p3); B) ch=getch

    15、ar();C) p2=&ch; scanf(%c,p2); D) p4=&ch; *p4=getchar();38. 下列选项中含有错误的是【 】。A) char str10; str=string;B) char str1=string,str2=1234; strcpy(str1,str2);C) char *str ; str=string;D) char str7=s,t,r,i,n,g;39. 以下选项错误的是【 】。A) char *s; s=ab; B) char s10=ab;C) char *s=ab; D) char s10; s=ab;40. 若有char *c=Chin

    16、a,America,Russia,England,France; 则语句printf(%p,c3);的输出为【 】。A)字符串 England B)格式说明不正确C)字符串 England 的首地址 D)字母E41. 下面各程序段中不能正确实现两个字符串交换的是【 】。A)char p9=12345678,q9=abcdef,*t; t=p;p=q;q=t;B)char *p=12345678,*q= abcdef ,*t; t=p;p=q;q=t;C)char p9= 12345678,q9= abcdef ,t; int i; for (i=0;i9;i+) t=pi;pi=qi;qi=t

    17、;D)char p9= 12345678,q9= abcdef ,t9; strcpy(t,p);strcpy(p,q);strcpy(q,t);42. 运行下面的程序段,输出结果是【 】。char s120=abcd, s220=efg, s320=hi;strcat(strcpy(s2,s3),s1);puts(s2);A) hiabcd B) higabcd C) abcdhi D) abcdhig43. 若有 char str7; 要将键盘输入的字符串a pear存入str, 应使用【 】。A) gets(str); B) scanf(%s,str);C) str=a pear; D)

    18、 getchar(str);44. 运行下面的程序片段,将输出【 】(已知A的ASCII码是十进制的65)。char str =ABCD , *p=str ;printf ( %d n , *(p+4) );A)68 B)0 C)字符D的地址 D)不确定值45. 下列程序的运行结果是【 】。# include main() char ch210= 1234,5678,*p2; int i,j,s=0; for(i=0; i2; i+) pi=chi; for(i=0; i2; i+) s=10*s+pii-0; printf(%dn, s);A) 12 B) 56 C) 16 D) 5246.

    19、 若已定义char c,*p;,下述各程序段中能使变量c从键盘获取一个字符的是【】A) *p=c;scanf(%c,p); B) p=&c;scanf(%c,*p);C) p=&c;scanf(%c,p); D) p=*&c;scanf(%c,p);47. 若在定义语句int a,*p=&a;之后,接着执行以下选项中的语句,则能正确执行的是【】。A) scanf(%d,a); B) scanf(%d,*p);C) scanf(%d,p); D) scanf(%d,&p);48. 若有如下说明和语句,则【】是对数组元素的错误引用int a=1,2,3,4,5,6,7,8,9,0,*p,i;p=a

    20、; i=6;A) *(a+i) B) *(&ai) C) ap-a D) p+i49. 若有说明int a =1,2,3,4,5,6,7,8,9,10,*p=a,i; 则数组元素地址的正确表示是【】。A) &(a+1) B) *a+ C) &p D) &pi50. 下列各程序段中,对指针变量定义和使用正确的是【】A) char s6,*p=s; char *p1=*p; printf(%c,*p1);B) int a6,*p; p=&a;C) char s7;char *p=s=260;scanf(%c,p+2);D) int a7,*p; p=a;51. 若已定义int b5=3,4,7,9

    21、,*p2=b,*p1=p2;,则对数组元素b2的正确引用是【】A) &b0+2 B) *(p1+1) C) *(p1+2) D) *p2+252. 设有定义int a10=1,2,3,4,5, b10,*p;则下列语句正确的是【】A) p=a; B) b=a; C) a+; D) a=p;53. 以下选项中正确的是【】A) int a54,b34,*p; p=*a; b32=*(p+3*4+2);B) float a54,(*p)4,(*q)5; p=a; q=p;C) double a54,*p5; p0=*a; p1=*(a+1); p2=&a20; p3=a3; p4=*a+128;D)

    22、 int a54,(*p)4; int (*q)4; p=a; q=p;54. 若有说明 int a54;,则指向数组a的指针数组的正确定义方式为【】A) int (*p)4; B) int *p4; C) int *p5; D) int (*p)5;55. 下面程序的运行结果是【】。#include main( ) char s180=ABCD, s280=EFGH; char *ps1=s1,*ps2=s2; while(*ps1) ps1+; while(*ps1+=*ps2+) ; printf(%s: %sn,s1,s2);A) ABCD: EFGH B) EFGH: ABCDC)

    23、ABCDEF: ABCD D) ABCDEFGH: EFGH56. 设有定义char s20=Beijing, *p=s; 以下语句中描述正确的是【】A) 可以用*p表示s0 B) 可以用(*p+2),表示s2C) 可以用p表示s0 D) s和p都是指针变量二、读程序写结果1. #includemain() int a24 =1, 2, 3, 4, 5, 6, 7, 8; int (*pa)4=a; printf(%d, %d, *(*(pa+1)+2), pa13);2.#include main( ) int a= 1,3,5,7,9, b= 2,4,6,3,7, c, d=1, *p=a

    24、, *q=b; p+=3; q+=2; c=*p+; d+=*q; printf(%d,%d,%d,%dn, *p, *q, c, d);3. 若输入字符串Personal Computer,下列程序的运行结果是:#includemain() char str80,*p,ch=o; int count=0; gets(str); for(p=str; *p!=0; p+) if(*p=ch) count+; printf(There are %d o in %s.,count,str);4.#includemain() int a= 1,2,3,4,5,6,*p; p=a+1; *(p+3)+

    25、=2; printf(%d,%dn,*p,*(p+3);5. #includemain() char a10=123,*p=china; p=a; printf(%s,%c,p,*(p+2);6. #includemain() int a= 2,4,6,8,10; int x,*p; p=&a1; for(x=0; x=3; x+) printf(%d ,*(p+x);7. # include main() int x=3, y=5; int *p, *q, *t; p=&x; q=&q; t=p; p=q; q=t; printf(%d, %dn, x, y);8. #include#define N 10main() int aN, *p; int i; p=a; for(i=0; iN; i+) if(i%2=0) *p=i/2; else *p=3*i+1; p+; for(p=a; pa+N; p+) printf(%d ,*p);9. #include#define N 10main() int aNN; int *pN; int i,j; for(i=0; iN; i+) pi=ai; for(i=0; iN; i+) pi0=pii


    注意事项

    本文(C语言习题集答案指针.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开