c语言指针习题及答案69923

上传人:缘*** 文档编号:190275577 上传时间:2021-08-12 格式:DOCX 页数:8 大小:21.77KB
返回 下载 相关 举报
c语言指针习题及答案69923_第1页
第1页 / 共8页
c语言指针习题及答案69923_第2页
第2页 / 共8页
c语言指针习题及答案69923_第3页
第3页 / 共8页
c语言指针习题及答案69923_第4页
第4页 / 共8页
c语言指针习题及答案69923_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《c语言指针习题及答案69923》由会员分享,可在线阅读,更多相关《c语言指针习题及答案69923(8页珍藏版)》请在金锄头文库上搜索。

1、指针习题及答案一.选择题1 .变量的指针,其含义是指该变量的B 。A)值B)地址C)名D) 一个标志2 .已有定义int k=2;int *pt1*pt且ptri和ptr2均已指向变量 k,下面不能正确执行的赋值语 句是 B。A) k=*ptr1+*ptr2 B) ptr2=kC) ptr1=ptr2D) k=*ptr1*(*ptr2)3 .若有说明:int *p,m=5,n;以下程序段正确的是D 。A) p=&n;B) p = &n;scanf( %d ,&p);scanf( %d ,*p);C) scanf( %d ,&n);D) p = &n ;*p=n ;*p = m ;4.已有变量定

2、义和函数调用语句:int a=25;print_value(&a);下面函数的输出结果是 D。void print_value(int *x) printf( %dn ” ,+*x); A) 23B) 24C) 25D) 265 .若有说明:int *p1, *p2,m=5,n;以下均是正确赋值语句的选项是C。A) pi=&m; p2=&pi ;B) p1=&m; p2=&n; *pi =* p2 ;C) p1=&m; p2=p1 ;D) p1=&m; *pi=*p2 ;6 .若有语句:int *p,a=4;和p=&a ;下面均代表地址的一组选项是 DA) a,p,*&aB) &*a,&a,*

3、pC) *&p,*p,&aD) &a,&*p,p7 .下面判断正确的是C。A) char *a= china;等价于 char *a; *a= china;B) char str10= china ;等价于 char str10; str = china” ;C) char *s= china;等价于 char *s; s= china;D) char c4= abc ,d4= abc;等价于 char c4=d4= abc;8 .下面程序段中,for循环的执行次数是C。char*s= ta018bc ”;for ( ; *s!= 0 ; s+) printf( *);A) 9B) 79.下面

4、能正确进行字符串赋值操作的是 CA) char s5= ABCDE ;s5= AB,CDE,;C) char *s ; s= ABCDE;10 .下面程序段的运行结果是Cchar *s= abcde;s+=2 ; printf( %d ,s);A) cdeB)字符c11 .设pi和p2是指向同一个字符串的指针变量,语句是 B oA) c=*p1+*p2B) p2=cC) 6D) 5oB) charD) char *s; scanf( %s ,s);C)字符c的地址 D)不确定c为字符变量,则以下不能正确执行的赋值C) p1=p2D) c=*p1*(*p2)精选范本12.设有程序段:char s

5、 = china” ; char *p ; p=s ;则下面叙述正确的是 DA) s和p完全相同B)数组s中的内容和指针变量p中的内容相等C) s数组长度和p所指向的字符串长度相等D) *p与s0相等13.以下与库函数strcpy(char *p1,char *p2)功能不相等的程序段是 D。A) strcpy1(char *p1,char *p2) while (*p1+=*p2+)!= 0,) ; B) strcpy2(char *p1,char *p2) while (*p1=*p2)!= 0 ) p1+; p2+ C) strcpy3(char *p1,char *p2) while

6、(*p1+=*p2+); D) strcpy4(char *p1,char *p2) while (*p2) *p1+=*p2+ ; 14.下面程序段的运行结果是C。char a = language , *p ;p=a ;while (*p!= u ) printf( %c” ,*p-32); p+ ; A) LANGUAGEB) languageC) LANGD) langUAGE16.以下与库函数strcmp(char *s,char *t)功能相等的程序段是C。A) strcmp1(char *s,char *t) for ( ; *s+=*t+;) if (*s= = 0 ) ret

7、urn 0 ; return (*s-*t);B) strcmp2(char *s,char *t) for ( ; *s+=*t+;) if (!*s) return 0 ; return (*s-*t);C) strcmp3(char *s,char *t) for ( ; *t= =*s;) if (!*t) return 0 ; t+ ; s+ ; return (*s-*t);D) strcmp4(char *s,char *t) for ( ; *s=*t; s+, t+ ) if (!*s) return 0 ;return (*t-*s); 17 .以下说明不正确的是D oA)

8、 char a10= china” ;B) char a10,*p=a; p= china;C) char *a; a= china” ;D) char a10,*p; p=a= china;18 .设有说明语句:char a= It is mine” ;char *p= It is mine;则以下不正确的叙述是 D。A) a+1表示的是字符t的地址B) p指向另外的字符串时,字符串的长度不受限制C) p变量中存放的地址值可以改变D) a中只能存放10个字符19 .若已定义char s10;则在下面表达式中不表示s1的地址是 B。A) s+1B) s+C) &s0+1D) &s120 .若有

9、定义:int a5,*p=a;则对a数组元素的正确引用是 D。A) *&a5B) a+2C) *(p+5)D) *(a+2)21 .若有定义:int a5,*p=a;则对a数组元素地址的正确引用是D 。A) p+5B) *a+1C) &a+1D) &a022 .若有定义:int a23;则对a数组白第i行第j列元素值的正确引用是A 。A) *(*(a+i)+j)B) (a+i)jC) *(a+i+j)D) *(a+i)+j23 .若有定义:int a23;则对a数组白第i行第j列元素地址的正确引用是D 。A) *(ai+j)B) (a+i)C) *(a+j)D) ai+j24 .若有程序段:i

10、nt a23,(*p)3; p=a;则对a数组元素地址的正确引用是 。A) *(p+2)B) p2C) p1+1D) (p+1)+225 .若有程序段:int a23,(*p)3; p=a;则对a数组元素的正确引用是C 。A) (p+1)0B) *(*(p+2)+1)C) *(p1+1)D) p1+226 .若有定义:int a5;则a数组中首元素的地址可以表示为C。A) &aB) a+1C) aD) &a127 .若有定义:int (*p)4;则标识符p C。A)是一个指向整型变量的指针B)是一个指针数组名C)是一个指针,它指向一个含有四个整型元素的一维数组D)定义不合法28 .以下与int

11、 *q5;等价的定义语句是C。A) int q5B) int *qC) int *(q5)D) int (*q)529 .以下正确的说明语句是B。A) int *b=1,3,5,7,9;B) int a5,*num5=&a0,&a1,&a2,&a3,&a4;C) int a=1,3,5,7,9; int *num5=a0,a1,a2,a3,a4;D) int a34,(*num)4; num1=&a13;30 .若有定义:int b46,*p,*q4;且0W i4,则不正确的赋值语句是 D。A) qi=bi;B) p=b;C) p=bi;D) qi=&b0032 .若要对a进行自减运算,则a应

12、有下面说明D。A) int p3;B) int k;C) char *a3D) int b10;int *a=p;int *a=&k;int *a=b+1;33 .以下选项中,对指针变量 p的正确操作是B qA) int a3, *p; B) int a5, *p;C) int a5;D) int a5p=&a;p=a;int *p=a=100;int *p1,*p2=a;*p1=*p2;34 .若有定义:int x10=0,12345,6,7,8,9,*p1;则数值不为3的表达式是C 。A) x3B) p1=x+3,*p1+C) p1=x+2,*(p1+)D) p1=x+2,*+p135 .

13、下面程序段的输出是C。int a尸2,4,6,8,10,12,14,16,18,20,22,24,*q4Kfor (k=01; k4; k+) qk=&ak*3;printf( dn ,q30);A) 8B) 16C) 20D)输出不合法36 .若要对a进行自增运算,则a应具有下面说明D。A) int a32;B) char *a = “12,“ ab” ;C) char (*a) 3D) int b10, *a=b;37 .若有定义int a46;则能正确表示a数组中任一元素aij (i,j均在有效范围内)地址的表 达式 AoA) &a00+6*i+jB) &a0+4*j+iC) &a00+4*i+jD) &a00+6*j+I38 .下面程序的运行结果是B。main () int x5=2,4,6,8,10, *p, *pp ;p=x , pp = &p ;printf( %d” ,*(p+);printf( %3d ,*pp);A) 4 4B)24C)22D)4639 .若有定义 int x43=1,2,3,4,5,6,7,8,9,10,11,12; int (*p)3=x ;则能够正确表示数组元素x12的表达式是 D。A) *(*p+1)2)B) (*p+1)+2C) *(*(p+5)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号