C语言指针习题及答案

上传人:cn****1 文档编号:490743597 上传时间:2023-04-22 格式:DOCX 页数:13 大小:45.67KB
返回 下载 相关 举报
C语言指针习题及答案_第1页
第1页 / 共13页
C语言指针习题及答案_第2页
第2页 / 共13页
C语言指针习题及答案_第3页
第3页 / 共13页
C语言指针习题及答案_第4页
第4页 / 共13页
C语言指针习题及答案_第5页
第5页 / 共13页
点击查看更多>>
资源描述

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

1、指针主要内容的习题及答案选择题1 .变量的指针,其含义是指该变量的B。A)值B)地址C)名D)一个标志2 .已有定义intk=2;int*ptr1,*ptr2;且ptU和ptr2均已指向变量k,下面不能正确执行的赋值语句是B。A)k=*ptr1+*ptr2B)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.已有变量定义和函数调用语句:inta=25;print_valu

2、e(&a);下面函数的输出结果是D。voidprint_value(int*x)printf(%dn”,+*x);A)23B)24C)25D)265.若有说明:int*p1,*p2,m=5,n;以下均是正确赋值语句的选项是C。A)p1=&m;p2=&p1;B)p1=&m;p2=&n;*p1=*p2;C)p1=&m;p2=p1;D)p1=&m;*p1=*p2;6 .若有语句:int*p,a=4;和p=&a;下面均代表地址的一组选项是D。A)a,p,*&aB)&*a,&a,*pC)*&p,*p,&aD)&a,&*p,p7 .下面判断正确的是_C。A) char*a=china;等价于char*a;

3、*a=china”;B) charstr10=China;等价于charstr10;str=China;C) char*s=china;等价于char*s;s=china”;D) charc4=abdd4=abc;等价于charc4=d4=abd;8 .下面程序段中,for循环的执行次数是C。char*s=ta018bc”;for(;*s!=0;s+)printf(*);A)9B)7C)6D)59 .下面能正确进行字符串赋值操作的是C。A)chars5=ABCDE”;B)chars5=A,B,C,D,E;C)char*s;s=ABCDE”;D)char*s;scanf(%s”,s);10 .下

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

5、段是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 .下面程序段的运行结果是Cochara=language,*p;p=a;while(*p!=u)printf(%c,*p-32);p+;A) LANGUAGEB)languageC)LANGD)langU

6、AGE16.以下与库函数strcmp(char*s,char*t)功能相等的程序段是C。A)strcmp1(char*s,char*t)for(;*s+=*t+;)if(*s=0)return0;return(*s-*t);B) strcmp2(char*s,char*t)for(;*s+=*t+;)if(!*s)return0;return(*s-*t);C) strcmp3(char*s,char*t)for(;*t=*s;)if(!*t)return0;t+;s+;return(*s-*t);D) strcmp4(char*s,char*t)for(;*s=*t;s+,t+)if(!*s

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

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

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

10、)D)int(*q)529 .以下正确的说明语句是B。A) int*b=1,3,5,7,9;B) inta5,*num5=&a0,&a1,&a2,&a3,&a4;C) inta=1,3,5,7,9;int*num5=a0,a1,a2,a3,a4;D) inta34,(*num)4;num1=&a13;30 .若有定义:intb46,*p,*q4;且0&i4,则不正确的赋值语句是D。A)qi=bi;B)p=b;C)p=bi;D)qi=&b32.若要对a进行自减运算,则a应有下面说明D。A)intp3;B)intk;C)char*a3D)intb10;int*a=p;int*a=&k;int*a=

11、b+1;33 .以下选项中,对指针变量p的正确操作是B。Ainta3,*p;B)inta5,*p;C)inta5;D)inta5p=&a;p=a;int*p=a=100;int*p1,*p2=a;*p1=*p2;34 .若有定义:intx10=0,1,2,3,4,5,6,7,8,9,*p1;则数值不为3的表达式是C。A)x3B)p1=x+3,*p1+C)p1=x+2,*(p1+)D)p1=x+2,*+p135 .下面程序段的输出是C。inta=2,4,6,8,10,12,14,16,18,20,22,24,*q4,k;for(k=01;k4;k+)qk=&ak*3;printf(%dn”,q3

12、0);A)8B)16C)20D)输出不合法36 .若要对a进行自增运算,则a应具有下面说明D。A)inta32;B)char*a=12,“ab;C)char(*a)3D)intb10,*a=b;37 .若有定义inta46;则能正确表示a数组中任一元素aij(i,j均在有效范围内)地址的表达式AoA)&a00+6*i+jB)&a00+4*j+iC)&a00+4*i+jD)&a00+6*j+I38 .下面程序的运行结果是B。main()intx5=2,4,6,8,10,*p,*pp;p=x,pp=&p;printf(%d”,*(p+);printf(%3d”,*pp);A)44B)24C)22D

13、)4639 .若有定义intx43=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)D)*(*(p+1)+2)40.若有说明:char*language=FORTRAN,BASIC,PASCAL,JAVA,”C;WJlanguage2的值是B。A)一个字符B)一个地址C)一个字符串D)一个不定值41.设有定义:char*cc2=1234”,“5678”;则正确的叙述是A。A) cc数组的两个元素中各自存放了字符串“1234”和“5678”的首地址B) cc数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址C) cc是指针变量,它指向含有两个数组元素的字符型一维数组D) cc元素的值分别维“1234”和“5678”42 .已有定义int(*p)();指针p可以B。A)代表函数的返回值B)指向函数的入口地址C)表示函数的类型D)表示函数返回值的类型43 .已有函数max(a,b),为了让函数指针变量p指向函数max,正确的赋值方法是AoA)p=max;B)p=max(a,b);C)*p=max;D)*p=max(a,b);44 .若有函数max(a,b),并且已使函数指针变量p指向函数max,当调用该函数时,正确的调用方法是C或p(a,b)。

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

当前位置:首页 > 商业/管理/HR > 营销创新

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