1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > c语言指针if p C语言指针习题及答案

c语言指针if p C语言指针习题及答案

时间:2018-11-16 23:34:07

相关推荐

c语言指针if p C语言指针习题及答案

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

1、指针习题及答案 一选择题 A) P= SCanf( %d ”, C) scanf( %d, *P=n ; 4. 已有变量定义和函数调用语句: B) P = scanf( %d D) P = *p = m ; int a=25;Print_value( F面函数的输出结果是 1 变量的指针,其含义是指该变量的 B A)值 B)地址 C)名 D)个标志 2已有定义int k=2;int 的赋值语句是 B *ptr1 ,*ptr2; o 且ptr1和ptr2均已指向变量 k,下面不能正确执行 A) k=*ptr1 +*ptr2 B) ptr2=k C) Ptrl=Ptr2 D) k=*ptr1*(*。

2、ptr2) 3.若有说明:int *p,m=5,n;以下程序段正确的是D void Prin t_value(i nt *x) Printf( %dn,+*x); B) 24 A) 23 5.若有说明:int *p1, *p2,m=5,n; C) 25 D)26 A) P 仁 p2= 以下均是正确赋值语句的选项是C C) P 仁 p2=p1 ; 6. 若有语句:int *p,a=4;和P= p2= *p1 =* p2 ; A) a,p,* *a= “ch in a; B) Char str1O= China1;等价于 Char str1O; str = China1*; C) Char *s=。

3、 ch in a”;等价于 Char *s; S= ”ch in a”; D) Char c4=d4= abC*; 8. 下面程序段中,for循环的执行次数是C D) for (; *s!= 20?; s+) Printf( *); A) 9B) 7 9. 下面能正确进行字符串赋值操作的是 A) Chars 5= ABODE M; C) Char *s : S= ABCDE ”; 10. 下面程序段的运行结果是 Char *s= “abcde”; s+=2 ; Printf( %d”,s); A) CdeB)字符?D? 11 .设p1和p2是指向同一个字符串的指针变量, A) c=*p1+*p。

4、2B) p2=c 12. s = AChinan; Char *p ; P=S测下面叙述正确的是 C) 6 C B) Char s5= ,A?応? ?C?,?D?,疋 D) 0; C)字符无?的地址D)不确定 C为字符变量,则以下不能正确执行的赋 C) P 仁 p2D) c=*p1*(*p2) 设有程序段:Char D A) S和P完全相同 B) 数组S中的内容和指针变量P中的内容相等 C) S数组长度和P所指向的字符串长度相等 D) 9与s0湘等 13. 以下与库函数StrCPy(Char *p1 ,char *p2)功能不相等的程序段是D A) StrCPyl (Char *p1,char。

5、 *p2) while (*p1+=*p2+)!= 20? ; 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 = anguage, *p ; P=a; while (*p!= ?u? Printf( %cn,*p-32); p+ ; A) LANGUAGEC) 。

6、LANGD) langUAGE B) language功能相等的程序段是_Co 16. 以下与库函数 StrCmP(Char *s,char *t) A) StrCmP1(Char *s,char *t) for ( ; *s+=*t+;) if (*s= = 20?) return 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)。

7、 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); B) Char a10,*p=a; P= China; D) Char a10,*p; p=a= China1; ;Char *p= ” It is mine ”;则以下不正确的叙 17. 以下说明不正确的是D A) Char a10= china ; C) Char *a; a= “ch in a”; 18. 设有说明语句:Char a=。

8、 C It is mine 述是Do A) a+1表示的是字符t的地址 B) P指向另外的字符串时,字符串的长度不受限制 C) p变量中存放的地址值可以改变 D) a中只能存放10个字符 19.若已定义Char s10;则在下面表达式中不表示s的地址是B A) s+1 B) s+ C) 贝収寸a数组兀素的正确引用是D o A) *则对a数组兀素地址的正确引用是D o A) p+5 B) *a+1 C) 则对a数组的第i行第j列元素值的正确引用是 A A)f(a+i)+j) B) (a+i)j C) *(a+i+j) D)*(a+i)+j 23.若有定义:int a23;则对a数组的第i行第j列。

9、元素地址的正确引用是_D A)*(ai+j)B)(a+i) 24. 若有程序段:int a23,(*p)3; p=a; A) *(P+2)B) p2 25. 若有程序段:int a23,(*p)3; p=a; C) *(a+j)D)ai+j 则对a数组元素地址的正确引用是 C) P1+1D) (p+1 )+2 A)(P+1)O B) V(P+2)+1) 26. 元素的地址可以表示为 C) *(p1+1)D) p1+2 若有定义:inta5;则a数组中首 C A) 则标识符P C A) 是一个指向整型变量的指针 B) 是一个指针数组名 C) 是一个指针,它指向一个含有四个整型元素的一维数组 D)。

10、 定义不合法 28. 以下与int *q5;等价的定义语句是C 。 A) intq5B) int *qC) int *(q)D) int (*q)5 29. 以下正确的说明语句是_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=且g iv4,则不正确的赋值语句是0 A) qi=bi;B) p=b;C) p=bi; 32.若尊対a彳井行白減运壹,则有下面说明D A) int p3;B) int k; int *a=p; i。

11、nt *a= 33.以下选项中,对指针变量 P的正确操作是 A) int a3, *p;B) int a5, *p; P= P=a; C) Char *a3 D) int b10; int *a=b+1; Bo C) int a5; D) int a5 int *p=a=100; int *p1 ,*p2=a; 8 仁 *p2; 则数值不为3的表达式是C B) P 仁 x+3,*p1+ D) p1=x+2,*+p1 34. 若有定义:int x10=0,1,2,3,4,5,6,7,8,9,*p1 ; A) x3 C) p1= x+2,*(p1+) 35. 下面程序段的输出是_C int a =。

12、2,4,6,8,10,12,14,16,18,20,22,24,*q4,k; for (k=01: k4; k+) qk= Printf( %d nq30); 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. 若有定义inta46;则能正确表示a数组中任一元素( i,j均在有效范围内) 地址的表达式_A。 A) Printf( %du,*(p+); Printf( %3d H,*pp); A) 44B) 24C)。

13、 22D) 46 39. 若有定义 int x43=1,2,3,4,5,67,8,9,10,11,12; int (*p)3=x ;则能够正确表示数组元素 x12的表达式是_D。 A) *(*p+1)2)B) (8+1 )+2 C) f(p+5)D) f(p+1)+2) 40. 若有说明:Char *language= FoRTRAN v,” BASIC ”, PASCAL ”,” JAVA ”,”C”;贝 U Ian guage的值是 B。 A) 一个字符B) 一个地址C) 一个字符串D) 一个不定值 41 设有定义:Char *cc2=1234”,”5678”;则正确的叙述是 _A。 A)。

14、 CC数组的两个元素中各自存放了字符串”1234” 和”5678”的首地址 B) CC数组的两个元素分别存放的是含有4个字符的一维 字符数组的首地址 C) CC是指针变量,它指向含有两个数组元素的字符型一维数组 D) CC元素的值分别维”1234”和”5678” 42. 已有定义int (*p)(); 指针P可以B。 A)代表函数的返回值 C)表示函数的类型 43. 已有函数max(a,b),为了让函数指针变量 A) p=max;B) p=max(a,b); 44. 若有函数max(a,b),并且已使函数指针变量 调用方法是C或p(a,b) A) (*p)max(a,b)B) *pmax(a,。

15、b); 45.以下正确的叙述是 C A) C语言允许main函数带形参,且形参个数和形参名均可由用户指定 B) 指向函数的入口地址 D) 表示函数返回值的类型 P指向函数max正确的赋值方法是A C) *p=max;D) *p=max(a,b) P指向函数max,当调用该函数时,正确的 C) (*P)(a,b);D 广p(a,b); B) C语言允许main函数带形参形参名只能是argc和argv C) 当main函数带有形参时,传给形参的值只能从命令行中得到 D) 若有说明:int main(int argc,char *argv),贝 U argc 的值必须大于 1 三程序阅读题 1. 写。

16、出下面程序的运行结果。5 fun C(Char *s,char a,i nt n) intj; *s=a; j=n ; while (*ssj) j return j; mai n () Char c6; int i ; for (i=1 ;i=5 ; i+) *(c+1 )=?A?+i+1; Printf( %d nn,func(c,?E?,5); 2. 写出下面程序的运行结果。6 fun (Char *s) Char *p=s; while (*p) p+ ; return (P-S); mai n () Char *a= “abcdef”; Printf( %d n H,fu n( a)。

17、; 3. 写出下面程序的运行结果。abcdefglkjih SUb(Char *a,i nt t1 ,i nt t2) Char ch; while (t1 t2) Ch = *(a+t1); *(a+t1)=*(a+t2) ; *(a+t2)=ch ; t1+ ; mai n (丿 Char s12; inti; for (i=0; i12 ; i+) si= ?A?+i+32 ; SUb(S,7,11); for (i=0; i12 ; i+) Pri ntf ( %c ”,si); Printf(h” ; 976531 4当运行以下程序时,写出输入虹的程序运行结果。 SUb(Char *。

18、a,char b) while (*(a+)!= 20?); while (*(a 1)=0; j-) Printf( %snH,*(p -); 四程序填空题 1. 下面函数的功能是从输入的十个字符串中找出最长的那个串,请填(2)空使程序完整。 void fun( Char str1081,char *sp) int i; *sp= 1strO; for (i=1; i10; i+) if (Strlen (*sp)strlen(stri) 2*sp=stri; 2. 下面函数的功能是将一个整数字符串转换为一个整数,例如:”1234”转换为1234,请填(3) 空使程序完整。 int chnu。

19、 m(char *p) int num=0,ke n,j ; len = strle n(p); for(; 1_*p!= ?0?】;p+) k= 2 b ,0? ; j=(-len); while ( 3i一 !=0 )k=k*10 ; num = num + k ; return (nu m); 3. 下面函数的功能使统计子串SUbStr在母串Str中出现的次数,请填空使程序完整。 int coun t(char *str, Char *substr) int i,j,k, num=O; for (i=0; 1 stril!= 20? ;i+) for( 2 】,k=0; SUbStrk=。

20、 =strj; k+; j+) if (SUbStr 3 _k 】=?0) nu m+ ; break ; return (num); 6. 下面函数的功能是将两个字符串s1和s2连接起来,请填 空使程序完整。 Void COnj(Char *s1 ,char *s2) while (*s1)1 s1+ ; while (*s2) *s1=2*s2】;s1+,s2+; *s 仁? 0?; 五.编程题 1. 定义3个整数及整数指针,仅用指针方法按由小到大的顺序输出。 2. 输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写三个函数: 输入10个数;进行处理;输出10个数。所有函数的参数均用指针。 3. 编写一个求字符串的函数(参数用指针),在主函数中输入字符串,并输出其长度。 4. 编写一个函数(参数用指针)将一个 3x 3矩阵转置。 5. 写函数原型为int StrCmP (Char *s1,char *s2); 的函数,该函数实现两个字符串的比较 (函数功能描述参见教材P137, StrCmP字符串处理函数)。 6. 利用指向行的指针变量求5x 3数组各行元素之和。。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。