ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:21.24KB ,
资源ID:7890748      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-7890748.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(CH6指针练习题及答案Word格式文档下载.docx)为本站会员(b****4)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

CH6指针练习题及答案Word格式文档下载.docx

1、7、下面程序段的运行结果是( )char *s1=AbcdEf,*s2=aBs1+; t=(strcmp(s1,s2)0);,t);8、下面程序段的运行结果是( )char str=abc0def0ghi char *p=str;%s,p+5)9、若有以下定义和语句: int a4=0,1,2,3,*p; p=&a1; 则+(*p)的值是( )。10、若有定义:int a23=2,4,6,8,10,12;则*(&a00+2*2+1)的值是( ),*(a1+2)的值( )。11、若有定义:int a=2,4,6,8,10,12,*p=a;则*(p+1)的值是( ),*(a+5)的值是( )。12

2、、若有以下定义和语句:a2; 则*-p的值是()。13、若有以下定义和语句: int s23=0,(*p)3; 则(*(p+1)+2)的值是()。14、若有定义: 则a10的值是( ),*(*(a+1)+0)的值是( )。15、若有定义:int a=2,4,6,8,10,12,14,16,18,20,22,24,*q3,k;则下面程序段的输出是()。for(k=0;k3;k+) qk=&ak*4;,q23);16、若有以下输入:1,2(=0;j-) printf(,*(p-);18、以下程序的执行结果是()。 char *p1,*p2,str20=xyz p1=abcd p2=ABCDstrc

3、py(str+1,strcat(p1+1,P2+1);,str);19、若输入的值分别是1 3 5,下面程序的运行结果是()int a=0,i,*p,sum;a; for(i=0;=2;i+) scanf(,p); sum=s(p);sum=%d,sum); s(int *p)int sum=10; sum=sum+*p; return(sum);20、下面程序段的运行结果是()char s20= char *sp=s; sp+; puts(strcat(sp,);21、下面程序段的运行结果是()char a=12345,*p; int s=0;for(p=a;*p!=0p+) s=10*s+

4、*p-0,s);22、下面程序段的运行结果是()123456789 int i=0; p=a;while(*p) if(i%2=0) *p=* p+;i+; puts(a);23、下面程序的运行结果是()。 char *str=PascalC languageDbaseCobol; char *p; int k;p=str;k+) printf(%s,*(p+);二、选择题1、以下程序的运行结果是()void sub (int x,int y,int *z) *z=y-x; int a,b,c; sub(10,5,&a); sub(7,a,&b); sub(a,b,&c);%4d,%4d,%4

5、dn,a,b,c);A) 5, 2, 3 B) -5, -12, -7C) -5, -12, -17 D) 5, -2, -72、执行以下程序后,b的值为()int b,k=4,m=6,*p1=&k,*p2=&m; b=(-*p1)/(*p2)+7;,b);A)5 B)6 C)7 D)103、下面程序应能对两个整型变量的值进行交换。以下正确的说法是()int a=10,b=20;,a,b); swap(&a,&swap(int p,int q) int t; t=p;p=q;q=t;A)该程序完全正确B)该程序有错,只要将语句swap(&中的参数改为a,b即可C)该程序有错,只要将swap()

6、函数中的形参p和q以及t均定义为指针(执行语句为变)即可D)以上说法都不正确4、设*p,i;以下正确的语句是()。A)*p=&i; B)i=p; C)i=*p; D)p=2*p+1;5、设char s10;int i=1;以下正确的表达式是()。A)i+2 B)*(s+i) C)*(&s+i) D)*(s+)+i)6、设有语句:int a10=0,1,2,3,4,5,6,7,8,9,*p=a;以下对a数组的元素值不正确的引用是()。A)ap-a B)*(&ai) C)pi D)*(a0+1)7、设有说明int(*ptr)M;其中ptr是()。A)M个指向整型变量的指针 B)指向M个整型变量的函

7、数指针C)一个指向具有M个整型元素的一维数组的指针D)具有M个指针元素的一维指针数组,每一元素只能指向整型量8、如下程序的执行结果是()。main() int i; char *s=ansi!ni+) printf(%c,*(s+i);)a )a )a )a9、有四组对指针变量进行操作的语句,以下判断正确的选项是()(1)int *p,*q;q=p; int a,*p,*q;*p=*q=&(2)int a,*p,*q;q=&p=*q; int a=20,*p;*p=a;(3)int a=b=0,*p;p=&b=*p; int a=20,*p,*q=&*p=*q;(4)int a=20,*p,*

8、q=& int p,q;p;A)(1)正确,其余错 B)(1),(4)正确,其余错C)(3)正确,其余错 D)以下结论都不正确10、以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是() int *p,*q,a,b;,*p);. A)*p表示的是指针变量p的地址B)*p表示的是变量a的值,而不是变量a的地址C)*p表示的是指针变量p的值D)*p只能用来说明p是一个指针变量11、若有以下定义,则*(p+5)表示()。int a10,*p=a;A)元素a5的地址 B)元素a5的值 C)元素a6的地址 D)元素a6的值12、若有定义:int *p4;则标识符p()。A)是一个指

9、向整型变量的指针 B)是一个指针数组C)是一个指针,它指向一个含有四个整型元素的一维数组。D)说明不合法13、若有以下定义,且0=i6,则正确的赋值语句是()。int s46,t64,(*p)6;A)p=t; B)p=s; C)p=si; D)p=ti;int a46;则能正确表示a数组中任一元素aij(此处04,0=j6)地址的表达式是()A)&a00+6*i+j B)&a00+4*j+I C)&a00+4*i+j D)&a00+6*j+i15、以下选项中,对指针变量p的正确操作是()A)int a5,*p; B)int a5,*p;C)int a5;int *p=a=1000 D)int

10、a5;int *p1,*p2=a;*p1=*p2;16、若有以下定义,且05,则对数组a元素的非法引用是()int a5,*p=a;A)ai B)*(a+i) C)*(p+i) D)*(&a+i)17、设有以下定义:char *cc2=12345678 则正确的叙述是()A)cc数组的两个元素中各自存放了字符串和的首地址B)cc数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址C)cc是指针变量,它指向含有两个数组元素的字符型一维数组D)cc数组元素的值分别是18、若有以下定义:int x43=1,2,3,4,5,6,7,8,9,10,11,12; int (*p)3=x;则能够正确

11、表示数组元素x12的表达式是()A)*(*p+1)2) B)(*p+1)+2 C)*(*(p+5) D)*(*(p+1)+2)19、以下正确的叙述是()A)C语言允许main函数带形参,且形参个数和形参名均可由用户指定。B)C语言允许main函数带形参,形参名只能是argc和argv。C)当main函数带有形参时,传给形参的值只能从命令行中得到。D)若有说明,main(int argc,char *argv),则形参argc的值必须大于1。20、main函数的正确说明形式是()A)main(int argc,char *argv)B)main(int abc,char *abv)C)main(

12、int argc,char argv)D)main(int c,char *v)21、以下程序能找出数组x中的最大值和该值所在的元素下标,数组元素值从键盘输入。int x10,*p1,*p2,k;10;k+) scanf(,x+k);for(p1=x,p2=x;p1-x*p2) p2=p1;MAX=%d,INDEX=%dn, *p2,);A)p1-x B)p1C)p2-x D)x-p222、若有说明:char *language=FORTRANBASICPASCALJAVA则表达式*language1*language3比较的是()A)字符F和字符P B)字符串BASIC和字符串JAVAC)字

13、符B和字符J D)字符串FORTRAN和字符串PASCAL23、若有说明:则language2的值是()A)一个字符 B)一个地址 C)一个字符串 D)一个不定值24、语句int(*ptr)();的含义是()A)ptr是指向一维数组的指针变量 B)ptr是指向int型数据的指针变量C)ptr是指向函数的指针,该函数返回一个int型数据D)ptr是一个函数名,该函数的返回值的指向int型数据的指针25、若有函数max(a,b),并且已使函数指针变量p指向函数max,当调用该函数时,正确的调用方法是()A)(*p)max(a,b); B)*pmax(a,b); C)(*p)(a,b); D)*p(

14、a,b);26、已有函数max(a,b),为了让函数指针变量p指向函数max,正确的赋值方法是()A)p=max B)*p=max; C)p=max(a,b) D)*p=max(a,b)27、已有定义int(*p)();指针p可以()。A)代表函数的返回值 B)指向函数的入口地址C)表示函数的类型 D)表示函数返回值的类型28、若要对a进行+运算,则a应具有下面说明()A)int a32; B)char *a=12ab C)char (*a)3; D)int b10,*a=b;29、下面正确的程序段是()A)char str20;str); B)char *p;C)char str20;str

15、2); D)char str20,*p=str;,p2);30、下面程序段的运行结果是()char str=ABC,*p=str;,*(p+3);A)67 B)0 C)字符C的地址 D)字符31、下面程序段的运行结果是()char *p=abcdefgh p+=3;,strlen(strcpy(p,);A)8 B)12 C)4 D)732、下面说明不正确的是()A)char a10=china B)char 10,*p=a; p=C)char *a; a= D)char a10,*p; p=a=33、若有说明语句It is mine则以下不正确的叙述是()A)a+1表示的是字符t的地址B)p指

16、向另外的字符串时,字符串的长度不受限制C)p变量中存放的地址值可以改变D)a中只能存放10个字符34、若已定义char s10;则在下面表达式中不表示s1的地址是()A)s+1 B)s+ C)&s0+1 D)&s135、下面程序段的运行结果是()char s6; strcpy(s,%sA) B)abcd C)abcd D)编译出错36、若有说明:A)language2表示字符串pascalB)*language2的值是字母PC)language是一个字符型指针数组,它包含5个元素,每个元素都是一个指向字符串变量的指针D)language是一个字符型指针数组,它包含5个元素,其初值分别是:37、

17、设char s10,*p=s;以下不正确的表达是()A)p=s+5; B)s=p+s; C)s2=p4; D)*p=s0;38、设char *s;A)s=computer B)*s= C)*s= D)*s=c39、选择i的正确结果()。int i;a045+045b*s+;i+);A)7 B)8 C)11 D)1240、如下程序的执行结果是()。ann35bi=%dn,i);A)i=5 B)i=6 C)i=7 D)i=841、如下程序的执行结果是()。) ) ) )不正确42、如下程序的执行结果是()。 )a43、如下执行的程序结果是()。static int a =1,2,3,4,5,6;i

18、nt *p;*(p+3)+=2;%d,%dn,*p,*(p+3);)1,3 )1,6 )3,6 )1,444、以下正确的说明语句是()A)int *b=1,3,5,7,9; B)int a2; int *num2=&a0,&a1;C)int a=1,2; int *num2=a0,a1;D)int a34,(*num)4; num1=&a13;45、若有以下定义,且04,则不正确的赋值语句是()int b46,*p,*q4;A)qi=bi; B)p=b; C)p=bi; D)qi=&b00;46、若有定义:int a=2,4,6,8,10,12,14,16,18,20,22,24,*q4,k;

19、则下面程序段的输出是()ak*3;,q30);A) 8 B)16 C) 20 D)结果不确定47、若有以下定义,则数值不为3的表达式是()int x10=0,1,2,3,4,5,6,7,8,9,*p1;A)x3 B)p1=x+3,*p1+ C)p1=x+2,*(p1+)D)p1=x+2,*+p148、下面程序的运行结果是()int x5=2,4,6,8,10,*p,*pp;p=x;pp=&%3dn,*pp);A)4 4 B)2 4 C)2 2 D)4 649、若有以下说明和语句:char *q;q=language+2;则语句printf(%on,*q);A)输出的是language2元素地址

20、 B)输出的是字符串PASCALC)输出的是language2元素的值,它是字符串PASCAL的首地址D)格式说明不正确,无法得到确定的输出50、下面程序段的运行结果是()char *format=%s,a=%d,b=%dn int a=1,b=10; a+=b;printf(format,a+=bA)for,ab B)format, C)a+=b,a=11,b=10 D)以下结果都不对三、编程题1、有3个学生,每人考5门课,求每个学生的平均分和每门课的平均分数2、输入一个字符串,内有数字和非数字字符,如:a123x456 1760?302ab567,将其中连续的数字作为一个整数依次存放到一数

21、组a中,如123存放到a0中,456存放到a1中。3、求定积分:计算0,1之间函数1+x2、0,2之间函数1+x+x2+x3、0,3.5之间函数x/(1+x2)的定积分。附录:答案一、 填空题1、2 2、f 3、654321 4、12 5、one:two:three 6、HELLO! 7、1 8、of 9、2 10、12 12 11、4 12 12、113、0 14、8 8 15、24 16、12 17、LBCP 18、xbcdBCD 23、Pascal,C language,Dbase,Cobol二、 选择题15 BCCCB 610 DBCCB 1115 BCBCB 1620 DADCD 2

22、125 BCBDC 2630 ABDCB 3135 ADDBA 3640 CBBBB 4145 DABBA 4650 CBBCC 1、main( )float stu_ave(float (*p)5); float cour_ave(float *pt);float score35=100,60,70,80,67,62,71,98,45,57,90,39,89,39,90;int I;for(I=0;II+) printf(“%f”,stu_ave(score+i);5; printf(“%f”,cour_ave(score0+i);float stu_ave(float (*p)5) int j; float sum; float sum=0,ave; for(j=0;jj+) sum=sum +*(*p+j); re

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

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