c语言指针习题及答案.doc
《c语言指针习题及答案.doc》由会员分享,可在线阅读,更多相关《c语言指针习题及答案.doc(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、. .指针主要容的习题及答案一选择题1.变量的指针,其含义是指该变量的B。A值 B地址 C名 D一个标志2.已有定义int k=2;int *ptr1,*ptr2;且ptr1和ptr2均已指向变量k,下面不能正确执行的赋值语句是B。Ak=*ptr1+*ptr2 Bptr2=k Cptr1=ptr2 Dk=*ptr1*(*ptr2)3.假设有说明:int *p,m=5,n;以下程序段正确的选项是D。Ap=&n ; Bp = &n ; scanf(“%d,&p); scanf(“%d,*p);Cscanf(“%d,&n); Dp = &n ; *p=n ; *p = m ;4.已有变量定义和函数调
2、用语句:int a=25;print_value(&a);下面函数的输出结果是D。void print_value(int *x) printf(“%dn,+*x); A23 B24 C25 D265.假设有说明:int *p1, *p2,m=5,n;以下均是正确赋值语句的选项是C。Ap1=&m; p2=&p1 ; Bp1=&m; p2=&n; *p1=*p2 ;Cp1=&m; p2=p1 ; Dp1=&m; *p1=*p2 ;6.假设有语句:int *p,a=4;和p=&a;下面均代表地址的一组选项是D。Aa,p,*&a B&*a,&a,*p C*&p,*p,&a D&a,&*p,p7.下面
3、判断正确的选项是C。Achar *a=china; 等价于 char *a; *a=china ;Bchar str10=“china; 等价于 char str10; str =“china;Cchar *s=china; 等价于 char *s; s=china ;Dchar c4=abc,d4=abc; 等价于 char c4=d4=abc ;8.下面程序段中,for循环的执行次数是C。char *s=ta018bc ;for ( ; *s!=0 ; s+) printf(“*) ;A9 B7 C6 D59.下面能正确进展字符串赋值操作的是C。Achar s5=“ABCDE; Bchar
4、 s5=A,B,C,D,E;Cchar *s ; s=ABCDE ; Dchar *s; scanf(“%s,s) ;10.下面程序段的运行结果是C。char *s=abcde ;s+=2 ; printf(“%d,s);Acde B字符c C字符c的地址 D不确定11.设p1和p2是指向同一个字符串的指针变量,c为字符变量,那么以下不能正确执行的赋值语句是B。Ac=*p1+*p2 Bp2=c Cp1=p2 Dc=*p1*(*p2)12.设有程序段:char s =china; char *p ; p=s ;那么下面表达正确的选项是D。As和p完全一样B数组s中的容和指针变量p中的容相等Cs数
5、组长度和p所指向的字符串长度相等D*p与s0相等13.以下与库函数strcpy(char *p1,char *p2)功能不相等的程序段是D。Astrcpy1(char *p1,char *p2) while (*p1+=*p2+)!=0) ; Bstrcpy2(char *p1,char *p2) while (*p1=*p2)!=0) p1+; p2+ Cstrcpy3(char *p1,char *p2) while (*p1+=*p2+) ; Dstrcpy4(char *p1,char *p2) while (*p2) *p1+=*p2+ ; 14.下面程序段的运行结果是C。 char
6、 a =language , *p ; p=a ; while (*p!=u) printf(“%c,*p-32); p+ ; ALANGUAGE Blanguage CLANG DlangUAGE16.以下与库函数strcmp(char *s,char *t)功能相等的程序段是C。Astrcmp1(char *s,char *t) for ( ; *s+=*t+; )if (*s=0) return 0 ;return (*s-*t) ; Bstrcmp2(char *s,char *t) for ( ; *s+=*t+; ) if (!*s) return 0 ;return (*s-*t
7、) ; Cstrcmp3(char *s,char *t) for ( ; *t=*s; ) if (!*t) return 0 ; t+ ; s+ ; return (*s-*t) ; Dstrcmp4(char *s,char *t) for ( ; *s=*t; s+, t+ ) if (!*s) return 0 ;return (*t-*s) ; 17.以下说明不正确的选项是D。Achar a10=china ; Bchar a10,*p=a; p=china;Cchar *a; a=china ; Dchar a10,*p; p=a=china;18.设有说明语句:char a=I
8、t is mine;char *p=It is mine;那么以下不正确的表达是D。Aa+1表示的是字符t的地址 Bp指向另外的字符串时,字符串的长度不受限制Cp变量中存放的地址值可以改变Da中只能存放10个字符19.假设已定义char s10;那么在下面表达式中不表示s1的地址是B。As+1 Bs+ C&s0+1 D&s120.假设有定义:int a5,*p=a;那么对a数组元素的正确引用是D。A*&a5 Ba+2 C*(p+5) D*(a+2)21.假设有定义:int a5,*p=a;那么对a数组元素地址的正确引用是D。Ap+5 B*a+1 C&a+1 D&a022.假设有定义:int a
9、23;那么对a数组的第i行第j列元素值的正确引用是 A。A*(*(a+i)+j) B(a+i)j C*(a+i+j) D*(a+i)+j23.假设有定义:int a23;那么对a数组的第i行第j列元素地址的正确引用是D。A*(ai+j) B(a+i) C*(a+j) Dai+j24.假设有程序段:int a23,(*p)3; p=a;那么对a数组元素地址的正确引用是。A*(p+2) Bp2 Cp1+1 D(p+1)+225.假设有程序段:int a23,(*p)3; p=a;那么对a数组元素的正确引用是C。A(p+1)0 B*(*(p+2)+1) C*(p1+1) Dp1+226.假设有定义:
10、int a5;那么a数组中首元素的地址可以表示为C。A&a Ba+1 Ca D&a127.假设有定义:int (*p)4;那么标识符pC。A是一个指向整型变量的指针B是一个指针数组名C是一个指针,它指向一个含有四个整型元素的一维数组D定义不合法28.以下与int *q5;等价的定义语句是C。Aint q5 Bint *q Cint *(q5) Dint (*q)529.以下正确的说明语句是B。Aint *b=1,3,5,7,9 ;Bint a5,*num5=&a0,&a1,&a2,&a3,&a4;Cint a=1,3,5,7,9; int *num5=a0,a1,a2,a3,a4;Dint a
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 指针 习题 答案
限制150内