实验6、指针和结构体(有答案)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验6、指针和结构体
【实验目的】
1.掌握地址和指针的基本概念,学会定义和使用指针变量;
2.熟悉指针与数组之间的关系,能正确使用数组的指针和指向数组的指针变量;
3.掌握指针形参的作用,熟练掌握编写指针形参的函数;
4.掌握结构体类型变量和结构体指针的定义及结构体成员的引用方式;
5.掌握结构体数组的定义及应用方法;
6.掌握链表的定义及操作,并能熟练编写链表应用程序。
【实验内容】
1、程序填空
给定程序中函数fun的功能是:对形参s所指字符串中下标为奇数的字符按ASCII码大小递增排序,并将排序后下标为奇数的字符取出,存入形参p所指字符数组中,形成一个新串。
例如,形参s所指字符串为baawrskjghzlicda,执行后p所指字符数组中的字符串应为aachjlsw。
在以下程序的下划线处填入正确的内容并把下划线删除,使程序得出正确结果。不得增行或删行,也不得更改程序结构。
程序填空如下:
#include
void fun(char *s,char *p)
{ int i,j,n,x,t;
n=0;
for(i=0;s[i]!=’\0’;i++) n++;
for(i=1;i /**********found**********/ t=i ; /**********found**********/ for(j= t +2;j if(t!=i) { x=s[i]; s[i]=s[t]; s[t]=x; } } for(i=1,j=0;i /**********found**********/ p[j]= ’\0’ ; } main() { char s[80]=“baawrskjghzlicda”,p[50]; printf(“\nThe original string is: %s\n”,s); fun(s,p); printf(“\nThe result is: %s\n”,p); } 2、程序填空 学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,给定函数fun的功能是:把分数最低学生的数据放在b指定的数组中,分数最低的学生可能不 止一个,函数应返回分数最低学生的人数。在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确结果。不得增行或删行,也不得更改程序结构。 需填空程序如下: #include #define N 16 typedef struct { char num[10]; int s; } STREC; int fun(STREC *a,STREC *b) { int i,n=0,min; min=a[0].s; for(i=0;i /**********found**********/ if( min>a[i].s ) min=a[i].s; for(i=0;i if(a[i].s==min) /**********found**********/ {*( b+n )=a[i]; /**********found**********/ return n; } main() {STREC s[N]={{“GA05”,85},{“GA03”,76},{“GA02”,69}, {“Gh04”,85},{“G A01”,91},{“GA07”,72}, {“GA08”,64},{“GA06”,87},{“GA015”,85}, {“GA013”,91},{“GA012”,64},{“GA014”,91}, {“GA011”,91},{“GA017”,64},{“GA018”,64}, {“G A016”,72}}; STREC h[N]; int i,n; FILE *out; n=fun(s,h); printf(“The %d lowest score: \n”,n); for(i=0;i printf(“%s %4d\n”,h[i].num,h[i].s); printf(“\n”); out=fopen(“out14.dat”,“w”); fprintf(out,“%d\n”,n); for(i=0;i fprintf(out,“%4d\n”,h[i].s); fclose(out); } 3.程序改错 给定程序中函数fun的功能是:从低位开始取出长整型变量S中偶数位上的数,依次构成一个新数放在t中。高位仍在高位,低值仍在低位。 例如,当S中的数为7654321时,t中的数为642。 请改正程序中指定部位的错误,使它能够得出正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 需改正程序如下: #include /**********found**********/