C语言指针习题 附答案 联系客服

发布时间 : 星期日 文章C语言指针习题 附答案更新完毕开始阅读3fcfbeb81a37f111f1855ba1

for(int i =0;i<3;i++) printf(\ return 0; }

B)int& fun() {

int s[3]={1,3,4};; return s; }

int main() {

int * result; result = fun();

for(int i =0;i<3;i++) printf(\ return 0; }

C)int* fun() {

int s[3]={1,3,4};; return &s; }

int main() {

int * result; result = fun();

for(int i =0;i<3;i++) printf(\ return 0; }

D)int& fun() {

int s[3]={1,3,4};; return &s; }

int main() {

int * result; result = fun();

for(int i =0;i<3;i++) printf(\

return 0; }

41、下列选项中声明了一个指针数组的是: A)int *p[2]; B)int (*p)[2]; C)typedef int* intPtr; intPtr p[2]; D)A和B E)A和C F)B和C

42、下面代码能通过编译的是: A)int main() {

int a[3]={1,2,3};

int *b[3]={&a[1],&a[2],&a[3]}; int **p = b; return 0; }

B)int main() {

int a[3]={1,2,3};

int *b[3]={a[1],a[2],a[3]}; int **p = b; return 0; }

C)int main() {

int a[3]={1,2,3};

int *b[3]={&a[1],&a[2],&a[3]}; int *p = b; return 0; }

D)int main() {

int a[3]={1,2,3};

int *b[3]={&a[1],&a[2],&a[3]}; int *p = &b; return 0; }

43、对于语句int *pa[5];下列描述中正确的是_______.

A) pa是一个指向数组的指针,所指向的数组是5个int型元素 B) pa是一个指向某数组中第5个元素的指针,该元素是int型变量 C) pa [5]表示某个元素的第5个元素的值

D) pa是一个具有5个元素的指针数组,每个元素是一个int型指针

44、若有以下定义,且0≤i<4,则不正确的赋值语句是_______. int b[4][6], *p, *q[4];

A) q[i] = b[i]; B) p = b;

C) p = b[i] D) q[i] = &b[0][0];

45、若要对a进行++运算,则a应具有下面说明_______. A) int a[3][2]; B) char *a[ ] = {“12”,”ab”}; C) char (*a)[3]; D) int b[10], *a = b;

46、若有以下说明语句:

char *language[ ] = {“FORTRAN”,”BASIC”,’’PASCAL”,’’JAVA”,”C”}; char **q;

q = language + 2;

则语句printf(“%o\\n”, *q) 输出的是_______. A) language[2]元素的地址; B)字符串PASCAL

C) language[2]元素的值,它是字符串PASCAL的首地址 D)格式说明不正确,无法得到确定的输出

47、若有以下程序: void main() {

char *a[3] = {\ char **ptr = a;

printf(\ %s\}

这段程序的输出是() A) I l B) o o C)o love D) I love

二、程序题

1、计算字符串中子串出现的次数。要求:用一个子函数subString()实现,参数为指向字符串和要查找的子串的指针,返回次数。

2、加密程序:由键盘输入明文,通过加密程序转换成密文并输出到屏幕上。 算法:明文中的字母转换成其后的第4个字母,例如,A变成E(a变成e),Z变成D,非字母字符不变;同时将密文每两个字符之间插入一个空格。例如,China转换成密文为G l m r e。要求:在函数change中完成字母转换,在函数insert中完成增加空格,用指针传递参数。

3、字符替换。要求用函数replace将用户输入的字符串中的字符t(T)都替换为e(E),并返回替换字符的个数。

4、编写一个程序,输入星期,输出该星期的英文名。用指针数组处理。

5、有5个字符串,首先将它们按照字符串中的字符个数由小到大排列,再分别取出每个字符串的第三个字母合并成一个新的字符串输出(若少于三个字符的输出空格)。要求:利用字符串指针和指针数组实现。

6、定义一个动态数组,长度为变量n,用随机数给数组各元素赋值,然后对数组各单元排序,定义swap函数交换数据单元,要求参数使用指针传递。 7、实现模拟彩票的程序设计:随机产生6个数字,与用户输入的数字进行比较,输它们相同的数字个数(使用动态内存分配)。 题号 答案 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. B D D B D A B C C A D D A B A D 4,12 D D 8,8 B C C A D B C D B 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. C C D D A D B D D C A E A D B D C C