二级C语言复习资料指针.doc_第1页
二级C语言复习资料指针.doc_第2页
二级C语言复习资料指针.doc_第3页
二级C语言复习资料指针.doc_第4页
二级C语言复习资料指针.doc_第5页
免费预览已结束,剩余26页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1.设有定义:int x=0, *p; 紧接着的赋值语句正确的是( )。答案:AA)p=NULL;B)*p=NULL;C)p=x;D)*p=x;2.设已有定义:float x;则以下对指针变量p进行定义且赋初值的语句中正确的是( )。A)float *p=&x;B)int *p=(float)x;C)float p=&x;D)float *p=1024;3.有以下程序#include main() int n,*p=NULL;*p=&n;printf(Input n:);scanf(%d,&p);printf(output n:);printf(%dn,p);该程序试图通过指针p为变量n读入数

2、据并输出,但程序有多处错误,以下语句正确的是( )。答案:AA)int n,*p=NULL;B)*p=&n;C)scanf(%d,&p)D)printf(%dn,p);4.若有定义语句:double a, *p=&a;以下叙述中错误的是( )。答案:AA)定义语句中的 * 号是一个间址运算符B)定义语句中的 * 号是一个说明符C)定义语句中的p只能存放double类型变量的地址D)定义语句中 *p=&a 把变量a的地址作为初值赋给指针变量p5.若有定义语句:double x, y,*px,*py;执行px=&x; py=&y;正确的输入语句是( )。答案:AA)scanf(%lf %le, p

3、x, py);B)scanf(%f %f &x, &y);C)scanf(%f %f, x, y);D)scanf(%lf %lf,x, y);6.有以下程序#include main() int m=1,n=2,*p=&m,*q=&n,*r;r=p; p=q; q=r;printf(%d,%d,%d,%dn,m,n,*p,*q);程序运行后的输出结果是( )。答案:AA)1,2,2,1B)1,2,1,2C)2,1,2,1D)2,1,1,27.若有以下定义int x10, *pt=x;则对x数组元素的正确引用是( )。答案:AA)*(x+3)B)*&x10C)*(pt+10)D) pt+38.

4、有以下程序#include main() int i, s=0, t=1,2,3,4,5,6,7,8,9;for(i=0;i9;i+=2) s+=*(t+i);printf(%dn,s);程序执行后的输出结果是( )。答案:AA)25B)20C)45D)369.以下程序段完全正确的是( )。答案:AA)int k, *p=&k; scanf(%d, p);B)int *p; scanf(%d, p);C)int *p; scanf(%d, &p);D)int k, *p; *p=&k; scanf(%d, p);10.设有定义double a10 ,*s=a;以下能够代表数组元素a3的是( )

5、。答案:AA)*(s+3)B)(*s)3C)*s3D)*s+311.有以下程序#include void fun(char *c,int d) *c=*c+1;d=d+1;printf(%c,%c,*c,d);main() char b=a,a=Afun(&b,a);printf(%c,%cn,b,a);程序运行后的输出结果是( )。答案:AA)b,B,b,AB)b,B,B,AC)a,B,B,aD)a,B,a,B12.有以下程序#include void fun (char *c) while(*c) if( *c =a & *c = z)*c =*c - (a - A);c+;main()

6、char s81;gets(s);fun(s); puts(s);当执行程序时从键盘上输入Hello Beijing,则程序的输出结果是( )。答案:AA)HELLO BEIJINGB)Hello BeijingC)hello beijingD)hELLO Beijing13.设有以下函数:void fun(int n,char *s) 则下面对函数指针的定义和赋值均正确的是( )。答案:AA)void (*pf)(int, char*); pf=fun;B)void *pf(); pf=fun;C)void *pf(); *pf=fun;D)void (*pf)(int,char); pf=

7、&fun;14.有以下程序#include main() int a=1, b=3, c=5;int *p1=&a, *p2=&b, *p=&c;*p=*p1*(*p2);printf(%dn,c);执行后的输出结果是( )。答案:AA)3B)2C)1D)415.有以下程序#include void f(int *p,int *q);main() int m=1,n=2,*r=&m; f(r, &n); printf(%d,%d,m,n);void f(int *p,int *q) p=p+1; *q=*q+1;程序运行后的输出结果是( )。答案:AA)1,3B)2,3C)1,4D)1,216

8、.若有定义语句:int a23,*p3;则以下语句中正确的是( )。答案:AA)p0=&a12;B)p0=a;C)p=a;D)p1=&a;17.设有定义语句int (*f)(int); 则以下叙述正确的是( )。答案:AA)f是指向函数的指针变量,该函数具有一个int类型的形参B)f是基类型为int的指针变量C)f是指向int类型一维数组的指针变量D)f是函数名,该函数的返回值是基类型为int类型的地址18.有以下程序#include void fun( int *a,int *b) int *c;c=a;a=b;b=c;main() int x=3, y=5, *p=&x, *q=&y ;f

9、un(p,q); printf(%d,%d,*p,*q);fun(&x,&y); printf(%d,%dn,*p,*q);程序运行后的输出结果是( )。答案:AA)3,5,3,5B)3,5,5,3C)5,3,3,5D)5,3,5,319.若有定义:int w35; 则以下不能正确表示该数组元素的表达式是( )。答案:AA)*(w+1)4B)*(*w+3)C)*(*(w+1)D)*(&w00+1)20.有以下程序#include int fun( char s) int n=0;while(*s =0) n=10*n+*s-0 ; s+; return (n);main() char s10=

10、 6,1, *, 4, *, 9, *, 0, *;printf(%dn,fun(s);程序的运行结果是( )。答案:AA)61B)61490C)9D)521.若有定义语句:int year=2009, *p=&year ;以下不能使变量year中的值增至2010的语句是( )。答案:AA)*p+;B)(*p)+;C)+(*p);D)*p+=1;22.若在定义语句:int a,b,c,*p=&c; 接着执行以下选项中的语句,则能正确执行的语句是( )。答案:AA)scanf(%d,p);B)scanf(%d%d%d,a,b,c);C)scanf(%d,a,b,c);D)scanf(%d,&p)

11、;23.若有以下程序#include void sp(int *a) int b=2;a=&b; *a = *a * 2; printf(%d, *a); main() int k=3, *p=&k;sp(p); printf(%d,%dn, k, *p); 则程序的输出结果是( )。答案:AA)4,3,3B)4,3,4C)6,3,6D)6,6,624.若有以下程序#include int k=7;void f(int *s) int *t=&k;*s=t;printf(%d,%d,%d, k, *t, *s); main() int i=3,*p=&i, *r = &p;f(r); prin

12、tf(%d,%d,%dn, i, *p, *r);则程序的输出结果是( )。答案:AA)7,7,7,3,7,7B)3,7,7,7,7,7C)7,7,7,3,3,3D)3,3,3,7,7,725.若有以下程序#include int *f(int *s,int *t) int *k;if (*s *t) k = s; s=t; t=k; return s;main() int i=3, j=5, *p=&i, *q=&j, *r; r=f(p,q); printf(%d,%d,%d,%d,%dn, i, j, *p, *q,*r); 则程序的输出结果是( )。答案:AA)3,5,3,5,5B)3

13、,5,5,3,5C)5,3,5,3,5D)5,3,3,5,526.若有以下程序#include void sp(int *a) int b=2;*a = *a * 2; printf(%d, *a); a=&b; *a = *a * 2; printf(%d, *a); main() int k=3;sp(&k); printf(%dn, k); 则程序的输出结果是( )。答案:AA)6,4,6B)6,4,3C)6,12,12D)9,4,927.若有以下程序#include int k=7,m=5;void f(int *s) int *t=&k;s=&t; *s=&m; printf(%d,

14、%d,%d, k, *t, *s); main() int i=3,*p=&i, *r = &p; f(r);printf(%d,%d,%dn, i, *p, *r);则程序的输出结果是( )。答案:AA)7,5,5,3,3,3,B)7,5,7,3,3,3,C)7,5,7,3,5,7,D)7,7,5,3,3,3,28.若有以下程序#include int *f(int *s, int *t) int k;if (*s *t) k = *s; *s=*t; *t=k; return s;main() int i=3, j=5, *p=&i, *q=&j, *r; r=f(p,q);printf(

15、%d,%d,%d,%d,%dn, i, j, *p, *q, *r); 则程序的输出结果是( )。答案:AA)5,3,5,3,5B)3,5,5,3,5C)3,5,3,5,5D)5,3,3,5,529.有以下程序#include main() int y=1,x,a=2,4,6,8,10,*p;p=&a1;for( x=0; x3; x+ ) y=y+*( p+x );printf( %dn, y );程序运行后的输出结果是( )。答案:AA)19B)17C)18D)2030.有以下程序#include main() int a34= 1,3,5,7,9,11,13,15,17,19,21,23

16、, (*p)4=a,i,j,k=0;for( i=0;i3; i+ )for( j=0; j2; j+ ) k=k+*(*(p+i)+j);printf(%dn, k );程序运行后的输出结果是( )。答案:AA)60B)68C)99D)10831.有以下程序#include main() int c6=10,20,30,40,50,60, *p,*s;p = c; s = &c5;printf(%dn, s-p );程序运行后的输出结果是( )。答案:AA)5B)50C)6D)6032.有以下程序#include main() int a5=2,4,6,8,10, *p,*k;p = a;

17、k = &p;printf(%d , *( p+ ) );printf(%dn, *k );程序运行后的输出结果是( )。答案:AA)2 4B)4 4C)2 2D)4 633.有以下程序#include main() int aa33= 2,4,6 , i, *p = &aa00;for ( i=0; i2; i+) if( i = 0 ) aaii+1 = *p + 1;else +p;printf(%d , *p );程序运行后的输出结果是( )。答案:AA)2 3B)2 6C)4 3D)4 634.以下叙述中正确的是( )。答案:AA)int* p1; int * p2; int *p3

18、;都是合法的定义指针变量的语句B)指针变量只能通过求地址运算符(&) 来获得地址值C)语句p=NULL;与p=0;是等价的语句D)语句p=NULL;执行后,指针p指向地址为0的存储单元35.以下叙述中正确的是( )。答案:AA)如果企图通过一个空指针来访问一个存储单元,将会得到一个出错信息B)即使不进行强制类型转换,在进行指针赋值运算时,指针变量的基类型也可以不同C)设变量p是一个指针变量,则语句p=0;是非法的,应该使用p=NULL;D)指针变量之间不能用关系运算符进行比较36.以下叙述中正确的是( )。答案:AA)在对指针进行加、减算术运算时,数字1表示1个存储单元的长度B)如果p是指针变

19、量,则*p表示变量p的地址值C)如果p是指针变量,则&p是不合法的表达式D)如果p是指针变量,则*p+1和*(p+1)的效果是一样的37.以下叙述中正确的是( )。答案:AA)设有指针变量为 double *p,则 p+1 将指针p移动8个字节B)函数的类型不能是指针类型C)函数的形参类型不能是指针类型D)基类型不同的指针变量可以相互混用38.如果定义float a10, x;则以下叙述中正确的是( )。答案:AA)语句 a = &x; 是非法的B)表达式 a+1 是非法的C)三个表达式 a1、*(a+1)、*&a1表示的意思完全不同D)表达式*&a1是非法的,应该写成 *(&(a1)39.有

20、以下程序#include void fun( int x, int y, int *c, int *d ) *c = x+y; *d = x-y; main() int a=4, b=3, c=0, d=0;fun ( a, b, &c, &d );printf( %d %dn , c, d );程序的输出结果是( )。答案:AA)7 1B)4 3C)3 4D)0 040.有以下程序#include void fun( int *p, int *q ) int t;t = *p; *p = *q; *q=t; *q = *p;main() int a=0, b=9;fun ( &a, &b )

21、;printf( %d %dn , a,b );程序的输出结果是( )。答案:AA)9 9B)0 0C)9 0D)0 941.有以下程序#include main() int a = 2,4,6,8,10 , x, *p, y=1;p = &a1;for( x=0; x3;x+ ) y += *(p+x);printf( %dn,y );程序的输出结果是( )。答案:AA)19B)13C)11D)1542.有以下程序#include main() int a = 2,4,6,8 , *p=a, i;for( i=0; i4; i+ )ai=*p+;printf( %dn ,a2 );程序的输出

22、结果是( )。答案:AA)6B)8C)4D)243.设p是指针变量,语句p = NULL;等价于( )。答案:AA)p = 0;B)p = ;C)p = ;D)p = 0;44.有以下程序#include main() int a = 10,20,30,40 , *p=a, i ;for( i=0; i=3; i+ ) ai = *p; p+; printf(%dn, a2 );程序运行后的输出结果是( )。答案:AA)30B)20C)10D)4045.以下不能将s所指字符串正确复制到t所指存储空间的是( )。答案:AA)do*t+=*s+;while(*s );B)for(i=0;ti=si

23、;i+);C)while(*t=*s)t+;s+;D)for(i=0,j=0;ti+=sj+; );46.有以下程序#include void swap(char *x, char *y) char t;t=*x; *x=*y; *y=t;main() char *s1=abc, *s2=123;swap(s1,s2); printf(%s,%sn,s1,s2);程序执行后的输出结果是( )。答案:AA)1bc,a23B)abc,123C)123,abcD)321,cba47.有以下函数int fun(char *x, char *y) int n=0;while ( (*x=*y) & *x

24、!=0 ) x+; y+; n+;return n ;函数的功能是( )。答案:AA)统计x和y所指字符串中最前面连续相同的字符个数B)查找x和y所指字符串中是否有0C)将y所指字符串赋给x所指存储空间D)统计x和y所指字符串中相同的字符个数48.有以下函数int fun(char *s) char *t=s;while(*t+);return(t-s);该函数的功能是( )。答案:AA)计算s所指字符串占用内存字节的个数B)比较两个字符串的大小C)计算s所指字符串的长度D)将s所指字符串复制到字符串t中49.有以下程序(注:字符a的ASCII码值为97) #include main() ch

25、ar *s = abc ;do printf (%d, *s%10); +s; while ( *s );程序运行后的输出结果是( )。答案:AA)789B)abcC)7890D)97989950.设有定义:char *c;以下选项中能够使c正确指向一个字符串的是( )。答案:AA)char str =string; c=str;B)scanf(%s,c);C)c=getchar( );D)*c=string;51.有以下程序( 说明:字母A的ASCII码值是65 ) #include void fun (char *s) while( *s ) if( *s%2 ) printf(%c,*s

26、);s+;main() char a =BYTE;fun(a);printf(n);程序运行后的输出结果是( )。答案:AA)YEB)BTC)YTD)BY52.有以下程序#include void fun(char *p) +p;printf(%sn,*p); main() char *a = Morning, Afternoon, Evening, Night;fun(a);程序的运行结果是( )。答案:AA)AfternoonB)fternoonC)MorningD)orning53.有以下程序#include main() char ch =uvwxyz,*pc;pc=ch;printf

27、(%cn, *(pc+5);程序运行后的输出结果是( )。答案:AA)zB)0C)元素ch5的地址D)字符y的地址54.有以下程序#include main() char s=012xy;int i,n=0;for(i=0;si!=0;i+)if(si=a&si=z)n+;printf(%dn,n);程序运行后的输出结果是( )。答案:AA)2B)0C)3D)555.有以下程序#include void fun1(char *p) char *q;q=p;while(*q!=0) (*q)+; q+; main() char a=Program, *p;p=&a3; fun1(p); prin

28、tf(%sn,a);程序执行后的输出结果是( )。答案:AA)ProhsbnB)PrphsbnC)ProgsbnD)Program56.有以下函数int aaa(char *s) char *t=s;while(*t+);t-;return(t-s);以下关于aaa函数功能叙述正确的是( )。答案:AA)求字符串s的长度B)比较两个串的大小C)将串s复制到串tD)求字符串s所占字节数57.有以下程序#include void fun( char *a, char *b ) while( *a=* ) a+;while( *b=*a ) b+;a+; main() char *s=*a*b* ,

29、 t80;fun(s,t); puts(t);程序的运行结果是( )。答案:AA)a*b*B)a*bC)*a*bD)ab58.下列函数的功能是void fun(char *a,char *b) while(*b=*a)!=0) a+; b+; ( )。答案:AA)将a所指字符串赋给b所指空间B)使指针b指向a所指字符串C)将a所指字符串和b所指字符串进行比较D)检查a和b所指字符串中是否有059.设有如下程序段#include char s20=Beijing, *p;p=s;则执行p=s;语句后,以下叙述正确的是( )。答案:AA)可以用*p表示s0B)s数组中元素的个数和p所指字符串长度相

30、等C)s和p都是指针变量D)数组s中的内容和指针变量p中的内容相同60.有以下程序#include int b=2;int fun(int *k ) b=*k+b; return (b); main() int a10=1,2,3,4,5,6,7,8, i;for(i=2;i4;i+) b=fun(&ai)+b; printf(%d ,b);printf(n);程序运行后的输出结果是( )。答案:AA)10 28B)8 10C)10 12D)10 1661.若有以下程序#include char *a=you;char b =Welcome you to China!;main() int i, j=0; char *p;for (

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论