1、 158 第第 8 章章 指指 针针 习习 题题 答答 案案一、在以下每一题的四个选项中,请选择一个正确的答案。【题 8.1】 D.【题 8.2】 B. 【题 8.3】 B.【题 8.4】 C.【题 8.5】 D.【题 8.6】 B.【题 8.7】 B.【题 8.8】 B.【题 8.9】 B.【题 8.10】 D.二、判断下列各叙述的正确性,若正确在( )内标记,若错误在( )内标记。【题 8.11】 【题 8.12】 【题 8.13】 【题 8.14】 【题 8.15】 【题 8.16】 【题 8.17】 【题 8.18】 【题 8.19】 【题 8.20】 第 8 章 指 针 159 三、
2、填空。请在下面各叙述的空白处填入合适的内容。【题 8.21】 A. 取内容 B. 取地址 【题 8.31】【题 8.22】 3 【题 8.23】 int 型 【题 8.24】 比较 【题 8.25】 二级指针【题 8.26】 0 【题 8.27】 *(p+3) 【题 8.28】 A. 地址 B. 地址 【题 8.29】 int *p=a 【题 8.30】 A四、阅读下面的程序,写出程序运行结果。【题 8.32】 20, 9, 9【题 8.33】 book【题 8.34】 aabc【题 8.35】 p!=q*p=*q五、程序填空。请在下面程序空白处填入合适的语句。【题 8.36】 A. *z B
3、. *z【题 8.37】 A. qm) 。 /*lx8_4.c*/ #include “stdio.h“#define N 6void move(int arrayN,int n,int m) int *p,array_end;array_end=*(array+n-1);for(p=array+n-1;parray;p-)*p=*(p-1);*array=array_end;m-;if(m0)move(array,n,m);void main( ) int numberN,n,m,i;printf(“n=“);scanf(“%d“,printf(“m(m0)max=stri;printf(“
4、The largest string: %sn“,max);【题 8.43】 编写程序,将所给的 5 个字符串进行排序。/*lx8_6.c*/ #include “stdio.h“#include “string.h“void main( ) char *temp,*str5=“ms_dos“,“windows“,“turbo T“,“basic“,“borland c+“;int i,j;printf(“Before sort:n“);for(i=0;i0) temp=stri;stri=strj;strj=temp;printf(“After sort:n“);for(i=0;i*max)
5、max=p;else if(*p=0;j-)sum+=aj;printf(“Sum=%dn“,sum);【题 8.48】 编写程序,用函数指针的方法,求任意给定的两个整数 x 和 y 的和、差。/*lx8_11.c*/#include “stdio.h“int add(int x,int y);int sub(int x,int y);void main( ) int n;int i,j;int (*func)(int,int);printf(“Please input two numbers:“);scanf(“%d %d“,printf(“Add operator_1n“);printf(
6、“Sub operator_2n“);printf(“nPlease input a character:“);scanf(“%d“, switch(n)第 8 章 指 针 165 case 1:func=add;break;case 2:func=sub;break;printf(“The result is:%dn“,func(i,j);int add(int x,int y) return x+y; int sub(int x,int y) return x-y; 【题 8.49】 编写程序,统计从键盘输入的命令行中第二个参数所包含的英文字符个数。/*lx8_12.c*/#include “stdio.h“#include “string.h“void main(int argc,char *argv ) int i,sum_c=0;int len=strlen(argv1);for(i=0;i=a printf(“The result is %dn“,sum_c);