数据结构(邹永林版)实验报告1-复习C
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一、C语言回顾
复习C语言中关于函数、数组、指针、结构体等得知识,为数据结构实验做准备。【实验学时】
2学时
【实验预习】
回答以下问题:
1、数组得定义与引用
数组定义
在定义数组时,应该说明数组得名字、类型、大小与维数。数组定义形式
类型说明符数组名[常量表达式] 数组元素得引用方法数组名[下标]
2、函数得定义与调用
无参函数
类型说明符函数名() { 函数体};
有参函数
类型说明符函数名(形式参数表列) { 函数体};
函数调用函数名([实参表列])
3、指针得基本概念
指针一般指向一个函数或一个变量。在使用一个指针时,一个程序既可以直接使用这个指针所储存得内存地址,又可以使用这个地址里储存得函数得值.在计算机语言中,由于通过地址能找到所需得变量单元,可以说,地址指向该变量单元。因此,将地址形象化得称为“指针”。意思就是通过它能找到以它为地址得内存单元。
4、结构体类型变量得定义方法
结构体类型定义得一般形式 struct结构体名
{成员表};
struct结构体名{成员表 }变量表;
5、结构体成员得访问方法
结构体变量名、成员名(*指针变量名)、成员名指针变量名—〉成员名
【实验内容与要求】
1、完成并调试程序:实现对一维数组元素得升序排序并输出结果(横线处仅能补充一条语句).
#include〈stdio、h>
void sort(int a[],int n);_________________________;
int main(){
ints[10]={1,—9,89,120,76,45,43,6,7,2},i;
________________________________;
for(i=0;i〈10;i++)
printf("%4d",s[i]);
printf("\n");
return 0;
}
void sort(int a[],intn){ /*补充完整排序函数,可用选择或冒泡排序*/ }
#include〈stdio、h>
void sort(inta[],intn);
int main()
{
ints[10]={1,—9,89,120,76,45,43,6,7,2},i;
sort(s,10);
for(i=0;i<10;i++)
printf(”%4d”,s[i]);
printf("\n");
return 0;
}
void sort(inta[],intn)
{
inti,j,t;
for(i=0;i<n-1;i++)
{
ﻩﻩfor(j=0;j ﻩif(a[j]>a[j+1]) ﻩ{ ﻩﻩt=a[j]; ﻩa[j]=a[j+1]; ﻩﻩa[j+1]=t; } } } 2、完成并调试程序:字符串连接程序,不使用系统提供得字符串连接函数,将第二个字符串连接至第一个字符串后。(横线处仅能补充一条语句). #include〈stdio、h> #define M 80 int main(){ char sub1[M],sub2[M]; ﻩchar *ps1=sub1,*ps2=sub2; ﻩprintf("pleaseinput strings:\n"); printf("string1:"); ﻩgets(ps1); printf("string2:”); ﻩgets(ps2); ﻩwhile(*ps1!=’\0') _________ps1++________________; ﻩwhile(*ps2!=’\0’) _*(ps1++)=*(sp2++)________________________; *ps1='\0'; printf("new string:”); puts(sub1); ﻩreturn 0; } 3、完成并调试程序:结构体与数组。实现学生数据得输入、输出与按成绩排序.(横线处仅能补充一条语句)。 #include<stdio、h〉 #include<string、h> struct student{ intsno; charsname[10]; float grade; }; void inputData(struct student s[],intn); voidprintData(struct student s[],intn); voidsortData(struct student s[],int n); intmain(){ structstudent a[100]; intn=3; inputData(a,n); sortData(a,n); printData(a,n); return0; } void inputData(struct students[],int n){ int i; for(i=0;i〈n;i++){ _scanf(“%s%s%d”,s[i]、sno,s[i]、sname,s[i]、grade)___________________________________________________; /*读入数据*/ } } void printData(structstudent s[],intn){ inti; printf(”\n======================\n"); for(i=0;i<n;i++){ __printf(“\n%s%s%4d”,s[i]、sno,s[i]、sname,s[i]、grade)_______________________________________;/*输出数据*/ } } voidsortData(struct student s[],intn) {