实验6、指针和结构体(有答案)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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**********/

相关文档
最新文档