C语言指针习题及答案.doc

上传人:坚持 文档编号:3566243 上传时间:2019-06-06 格式:DOC 页数:12 大小:69.50KB
下载 相关 举报
C语言指针习题及答案.doc_第1页
第1页 / 共12页
C语言指针习题及答案.doc_第2页
第2页 / 共12页
C语言指针习题及答案.doc_第3页
第3页 / 共12页
C语言指针习题及答案.doc_第4页
第4页 / 共12页
C语言指针习题及答案.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

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

2、函数调用语句:int a=25;print_value(下面函数的输出结果是 D 。void print_value(int *x) printf(“%dn”,+*x); A)23 B)24 C)25 D)265.若有说明:int *p1, *p2,m=5,n;以下均是正确赋值语句的选项是 C 。A)p1= p2= B)p1= p2= *p1=*p2 ;C)p1= p2=p1 ; D)p1= *p1=*p2 ;6.若有语句:int *p,a=4;和 p= 等价于 char *a; *a=”china” ;B)char str10=“china”; 等价于 char str10; str =“c

3、hina”;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)9 B)7 C)6 D)59.下面能正确进行字符串赋值操作的是 C 。A)char s5=“ABCDE”; B)char s5=A,B,C,D,E;C)char *s ; s=”ABCDE” ; D) char *s; scanf(“%s”,s)

4、;10.下面程序段的运行结果是 C 。char *s=”abcde” ;s+=2 ; printf(“%d”,s);A)cde B)字符c C)字符 c的地址 D)不确定11.设 p1 和 p2 是指向同一个字符串的指针变量,c 为字符变量,则以下不能正确执行的赋值语句是 B 。A)c=*p1+*p2 B)p2=c C)p1=p2 D)c=*p1*(*p2)12.设有程序段:char s =”china”; char *p ; p=s ;则下面叙述正确的是 D 。A)s 和 p 完全相同B)数组 s 中的内容和指针变量 p 中的内容相等C)s 数组长度和 p 所指向的字符串长度相等D)*p 与

5、 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 (*p1+=*p2+) ; D)strcpy4(char *p1,char *p2) while (*p2) *p1+=*p2+ ; 14.下面程序段的运行结果是 C 。char a =”langua

6、ge” , *p ;p=a ; while (*p!=u) printf(“%c”,*p-32); p+ ; A)LANGUAGE B)language C)LANG D)langUAGE16.以下与库函数 strcmp(char *s,char *t)功能相等的程序段是 C 。A)strcmp1(char *s,char *t) for ( ; *s+=*t+; )if (*s= =0) return 0 ;return (*s-*t) ; B)strcmp2(char *s,char *t) for ( ; *s+=*t+; )if (!*s) return 0 ;return (*s-*

7、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 。A)char a10=”china” ; B)char a10,*p=a; p=”china”;C)char *a; a=”china” ; D)char a10,*p; p=a=”china”;18.设有

8、说明语句: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+1 B)s+ C)则对 a 数组元素的正确引用是 D 。A)*则对 a 数组元素地址的正确引用是 D 。A)p+5 B)*a+1 C)则对 a 数组的第 i 行第 j 列元素值的正确引用是 A 。A)*(*(a+i)+j) B)(a+i)j

9、C)*(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.若有程序段:int a23,(*p)3; p=a;则对 a 数组元素地址的正确引用是 。A)*(p+2) B)p2 C)p1+1 D)(p+1)+225.若有程序段:int a23,(*p)3; p=a;则对 a 数组元素的正确引用是 C 。A)(p+1)0 B)*(*(p+2)+1) C)*(p1+1) D)p1+226.若有定义:int a5;则 a 数组中首元素的地址可以表示为 C

10、 。A)则标识符 p C 。A)是一个指向整型变量的指针B)是一个指针数组名C)是一个指针,它指向一个含有四个整型元素的一维数组D)定义不合法28.以下与 int *q5;等价的定义语句是 C 。A)int q5 B)int *q C)int *(q5) D)int (*q)529.以下正确的说明语句是 B 。A)int *b=1,3,5,7,9 ;B)int a5,*num5=C)int a=1,3,5,7,9; int *num5=a0,a1,a2,a3,a4;D)int a34,(*num)4; num1=30.若有定义:int b46,*p,*q4;且 0i=0; j-)printf(“%sn”,*(p-) ;四程序填空题1.下面函数的功能是从输入的十个字符串中找出最长的那个串,请填(2)空使程序完整。void fun(char str1081,char *sp) int i;

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

当前位置:首页 > 教育教学资料库 > 参考答案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。