国家二级c语言指针题库,全国计算机等级考试二级C语言指针测试题

《全国计算机等级考试二级C语言指针测试题》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级C语言指针测试题(10页珍藏版)》请在人人文库网上搜索。

1、全国计算机等级考试二级C语言指针测试题一、选择题(1)设有定义:int n1=0,n2,*p=&n2,*q=&n1;,以下赋值语句中与n2=n1;语句等价的是A)*p=*q;B)p=q;C)*p=&n1;D)p=*q;(2)若有定义:int x=0, *p=&x;,则语句printf(%dn,*p);的输出结果是A)随机值B)0C)x的地址D)p的地址(3) 以下定义语句中正确的是A) char a=Ab=B; B) float a=b=10.0;C) int a=10,*b=&a; D) float *a,b=&a;(4) 有以下程序main() int a=7,b=8,*p,*q,*r;p。

2、=&a;q=&b;r=p; p=q;q=r;printf(%d,%d,%d,%dn,*p,*q,a,b);程序运行后的输出结果是A) 8,7,8,7B) 7,8,7,8C) 8,7,7,8D) 7,8,8,7(5) 设有定义:int a,*pa=&a;以下scanf语句中能正确为变量a读入数据的是A) scanf(“%d”,pa) ;B) scanf(“%d”,a) ;C) scanf(“%d”,&pa) ;D) scanf(“%d”,*pa) ;(6) 设有定义:int n=0,*p=&n,*q=&p;则以下选项中,正确的赋值语句是A) p=1;B) *q=2;C) q=p;D) *p=5;。

3、(7) 有以下程序以下是引用片段:voidfun(char*a,char*b) a=b;(*a)+; main() charc1=A,c2=a,*p1,*p2; p1=&c1;p2=&c2;fun(p1,p2); printf(“%c%cn”,c1,c2); 程序运行后的输出结果是A) AbB) aaC) AaD) Bb(8) 若程序中已包含头文件stdio.h, 以下选项中,正确运用指针变量的程序段是A) int *i=NULL; B) float *f=NULL;scanf(&d,f); *f=10.5;C) char t=m, *c=&t;D) long *L;*c=&t; L=0;(9。

4、) 有以下程序以下是引用片段:#inc1ude main() printf(%dn,NULL);程序运行后的输出结果是A) 0B) 1C) -1D) NULL没定义,出错(10) 已定义以下函数int fun (int *p) return *p: 该函数的返回值是A) 不确定的值B) 形参p中存放的值C) 形参p所指存储单元中的值D) 形参p的地址值(11) 下列函数定义中,会出现编译错误的是A) max(int x, int y,int *z) B) int max(int x,y) *z=xy ? x:y; int z ;z=xy ? x:y;return z ;C) max (int 。

5、x,int y) D) int max(int x,int y) int z; return(xy?x:y) ; z=xy?x:y; return(z);(12) 有以下程序段以下是引用片段:main() inta=5,*b,*c; c=&b;b=&a; 程序在执行了c=&b:b=&a;语句后,表达式:*c的值是A) 变量a的地址B) 变量b中的值C) 变量a中的值D) 变量b的地址(13) 有以下程序以下是引用片段:main() chara,b,c,*d; a=;b=0xbc; c=xab;d=0127; printf(%c%c%c%cn,a,b,c,*d); 编译时出现错误,以下叙述中正确。

6、的是A) 程序中只有a=;语句不正确B) b=0xbc;语句不正确C) d=0127;语句不正确D) a=;和c=0xab;语句都不正确(14) 若有以下定义和语句以下是引用片段:#include inta=4,b=3,*p,*q,*w; p=&a;q=&b;w=q;q=NULL;则以下选项中错误的语句是A) *q=0;B) w=p;C) *p=a;D) *p=*w;(15) 有以下程序以下是引用片段:int*f(int*x,int*y) if(*x*y) returnx; else returny; main() inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=f(p,q);。

7、printf(“%d,%d,%d”,*p,*q,*r); 执行后输出结果是A) 7,8,8B) 7,8,7C) 8,7,7D) 8,7,8(16) 若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是A) p=q;B) *p=*q;C) n=*q;D) p=n;(17) 有以下程序以下是引用片段:voidfun(char*c,intd) *c=*c+1;d=d+1; printf(“%c,%c,”,*c,d); main() chara=A,b=a; fun(&b,a);printf(“%c,%cn”,a,b); 程序运行后的输出结果是A)B,a,B,aB) a,B,a,B。

8、C) A,b,A,bD) b,B,A,b(18) 若有说明语句:int a,b,c,*d=&c;,则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是A) scanf(%d%d%d,&a,&b,d);B) scanf(%d%d%d,&a,&b,&d);C) scanf(%d%d%d,a,b,d);D) scanf(%d%d%d,a,b,*d);(19) 若定义:int a=511,*b=&a;, 则printf(%dn,*b);的输出结果为A) 无确定值B) a的地址C) 512D) 511(20) 若有说明:int i, j=2,*p=&i;,则能完成i=j赋值功能的语句是A) i=*p。

9、;B) p*=*&j;C) i=&j;D) i=*p;(21) 下列程序段的输出结果是A) 2 1 4 3B) 1 2 1 2C) 1 2 3 4D) 2 1 1 2以下是引用片段:voidfun(int*x,int*y) printf(“%d%d”,*x,*y);*x=3;*y=4; main() intx=1,y=2; fun(&y,&x); printf(“%d%d”,x,y); (22) 下列程序的运行结果是A) 6 3B) 3 6C) 编译出错D) 0 0以下是引用片段:voidfun(int*a,int*b) int*k; k=a;a=b;b=k; main() inta=3,b=。

10、6,*x=&a,*y=&b; fun(x,y); printf(“%d%d”,a,b); (23) 有如下程序段int *p,a=10,b=1p=&a; a=*p+b;执行该程序段后,a的值为A) 12B) 11C) 10D) 编译出错(24) 有以下函数char fun(char *p) return p; 该函数的返回值是A) 无确切的值B) 形参p中存放的地址值B) 一个临时存储单元的地址D) 形参p自身的地址值(25) 请选出正确的程序段A) int *p; B) int *s, k;scanf(%d,p);*s=100; C) int *s, k; D) int *s, k;char。

11、 *p, c; char *p, e;s=&k; s=&k;p=&c; p=&c;*p=a; s=p; *s=1;(26) 若有以下定义和语句:double r=99, *p=&r;*p=r;则以下正确的叙述是A) 以下两处的*p含义相同,都说明给指针变量p赋值B) 在double r=99, *p=&r;中,把r的地址赋值给了p所指的存储单元C) 语句*p=r;把变量r的值赋给指针变量pD) 语句*p=r;取变量r的值放回r中(27) 以下程序运行后,a的值是A) 4 B) 1 C) 0 D) 运行时出错,a无定值以下是引用片段:main() inta,k=4,m=6,*p1=&k,*p2=。

12、&m; a=p1=&m; printf(%dn,a); (28) 有以下程序以下是引用片段:intfun(intx,inty,int*cp,int*dp) *cp=x+y;*dp=x-y; main() inta,b,c,d; a=30;b=50; fun(a,b,&c,&d); printf(%d,%dn,c,d); 输出结果是A) 50,30B) 30,J50C) 80,-20D) 80,20(29) 若有定义和语句:int *pp,*p,a=10,b=20;pp=&p;p=&a;p=&b;printf(%dn,*p,*pp);则输出结果是:A)10,20B)10,10C)20,10D)2。

13、0,20(30) 以下程序的输出结果是以下是引用片段:#include subl(chara,charb)charc;c=a;a=b;b=c; sub2(char*a,charb)charc;c=*a;*a=b;b=c; sub3(char*a,char*b)charc;c=*a;*a=*b;*b=c;chara,b; a=A;b=B;sub3(&a,&b);putchar(a);putchar(b); a=A;b=B;sub2(&a,b);putchar(a);prtchar(b); a=A;b=B;sub1(a,b);putchar(a);putchar(b); A) BABBABB) A。

14、BBBBAC) BABABAD) BAABBA(31) 若有说明:int i,j=7, *p=&i;,则与i=j;等价的语句是A) I= *P;B) *P=*&J;C) i=&j;D) i=* *p;(32) 要求函数的功能是交换x和y中的值,且通过正确调用返回交换结果。能正确招待此功能的函数是A)funa(int *x,int *y) B) funb(int x,int y)int *p; int t;*p=*x;*x=*y;*y=*p;t=x;x=y;y=t;C) func(int *x,int *y) D) fund(int x,int y)*x=*y;*y=*x; *x=*x+*y; 。

15、*y=*x-*y; *x=*x-*y; 二、填空题:(1) 有以下程序以下是引用片段:voidf(inty,int*x) y=y+*x;*x=*x+y; main() intx=2,y=4; f(y,&x); printf(“%d%dn”,x,y); 执行后输出的结果是【1】 。(2) 下面程序的运行结果是: 2 。以下是引用片段:voidswap(int*a,int*b) int*t; t=a;a=b;b=t; main() intx=3,y=5,*p=&x,*q=&y; swap(p,q); printf(“%d%dn”,*p,*q); (3) 设有以下程序:以下是引用片段:main() 。

16、inta,b,k=4,m=6,*p1=&k,*p2=&m; a=pl=&m; b=(*p1)/(*p2)+7; printf(“a=%dn”,a); printf(“b=%dn”,b); 执行该程序后,a的值为【3】 ,b的值为【4】 。(4) 下列程序的输出结果是 【5】 。以下是引用片段:voidfun(int*n) while(*n)-); printf(“%d”,+(*n); main() inta=100; fun(&a); (5) 以下函数用来求出两整数之和,并通过形参将结果传回,请填空。以下是引用片段:voidfunc(intx,inty,6z) *z=x+y;(6) 函数 vo。

17、id fun(float *sn, int n)的功能是:根据以下公式计算S,计算结果通过形参指针sn传回;n通过形参传入,n的值大于等于0。请填空。以下是引用片段:voidfun(float*sn,intn) floats=0.0,w,f=-1.0; inti=0; for(i=0;i=n;i+) f=7*f; w=f/(2*i+1); s+=w; 8=s; (7) 以下函数的功能是,把两个整数指针所指的存储单元中的内容进行交换。请填空。以下是引用片段:exchange(int*x,int*y) intt; t=*y;*y=【9】;*x=【10】; (8) 下面函数要求用来求出两个整数之和,。

18、并通过形参传回两数相加之和值,请填空。int add(int x,int y, 【11】 z) 【12】 =x+y;答案:一、选择题01) A 02) B 03) C 04) C 05) A06) D 07) A 08) D 09) A 10) C11) B 12) C 13) D 14) A 15) B16) D 17) D 18) A 19) D 20) B21) A 22) B 23) B 24) B 25) C26) D 27) C 28) C 29) D 30) A31) B 32) D二、填空题(1) 8 4(2) 3 5(3) 0(4) 7(5) 0(6) int *(7) 1(8) *sn(9) *x(10) t(11) int *(12) *z。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值