for(i=1;i<10;i++) }
(2) 数组指针 #include
float fun(float a[]) { }
(3) 指针数组 #include
int i; int i,j; float max; max=a[0]; for(i=1;i<10;i++)
if(max
while(max!=a[j])
j++;
printf(\return j;
max=a[i]; printf(\float a[10],*p,fun(); p=a;
for(p;p<10+a;p++) p=a; fun(p);
scanf(\ j=0;
while(max!=a[j])
j++;
printf(\if(max
max=a[i];
printf(\
return 0;
}
float a[10],fun(); for(i=0;i<10;i++)
scanf(\fun(a);
float fun(float *p) { }
(4) 指针指针 #include
float *p,a[10]; for(p=a;p
scanf(\float max,*q; q=p; max=*p; for(;q
if(max<*q) q=p;
while(max!=*q)
q++;
printf(\return 0;
max=*q;
printf(\float *q,max; q=p; max=*p; for(;q
if(max<*q) q=p;
while(max!=*q)
q++; max=*q;
printf(\
printf(\
return 0;
} 9.3.
fun(p);
用指向函数指针的知识实现两个整数求和功能。
#include \ int sum(int x,int y) { int a; a=x+y; return (a); } main ( ) {
int (*p)( ); int a,b,c;
printf(\输入两个数字\\n\ scanf(\ p=sum; c=(*p)(a,b);
printf(\ } 10.
第十次
10.1. 求实型二维数组每行元素的平均值。(使用指向数组的指针编写,结果保留3位小数) #include
10.2. 采用命令行参数方式实现第9章课后习题第五大题第9小题。
float a[3][6], (*p)[6]; int i, j; p=a;
for(i=0;i<3;i++)
p[i][5]=0;
printf(\请输入3行数字,每行5个,按回车键结束\\n\for(i=0;i<3;i++) { }
for(i=0;i<3;i++)
printf(\第%d行数字的平均数是 %.3f\\n\for(j=0;j<5;j++) { }
scanf(\*(*(p+i)+5)+=*(*(p+i)+j);
#include
int main(int argc, char *argv[]) { } 11.
第十一次
并打印出 3 门课程总平均成绩, 以及最高分的学生的数据(包括学号、姓名、 3 门课成绩、平均成绩)。
观察分析程序内容,对照执行结果。 1)指向结构变量的指针。 其中:%p 打印十六进制地址。
(*p).height '.'(dot)运算的优先级高于间接访问运算。表示所指向结构的内容的时候要加括号。 #include \
struct person //data structure for person {
11.1. 某班有5名学生,每名学生的数据包括学 号、姓名、 3 门课程的成绩。从键盘输入 5名学生数据,
char c; int b, d; float e; b=atoi(argv[1]); c=*argv[2]; d=atoi(argv[3]); if(c=='+') { }
else if(c=='-') { }
else if(c=='*') { }
else if(c=='/') { }
else printf(\return 0;
e=(b/1.0)/d;
printf(\e=b*d;
printf(\e=b-d;
printf(\e=b+d;
printf(\
char name[20]; int height,weight; }; void main() {
struct person *p,man={\ p = &man; //point to man printf(\
printf(\ printf(\
printf(\ printf(\
printf(\ printf(\}
2)指向结构数组的指针 #include \
struct person //data structure for person {
char name[20]; int height,weight; }; void main() {
struct person *p,student[10]={{\ p=student; //point to student printf(\
printf(\ printf(\
printf(\ printf(\ printf(\ printf(\} 12.
第十二次
据,并计算出 4门课程总平均成绩,并按平均成绩由最高到低排序将学生的数据(包括名次、学号、姓名、 4 门课成绩、平均成绩)写入文件。
12.1. 某班有 10 名学生,每名学生的数据包括学号、姓名、 4 门课程的成绩。从文件输入 10 名学生数