《数据结构(邹永林版)实验报告1-复习C》由会员分享,可在线阅读,更多相关《数据结构(邹永林版)实验报告1-复习C(7页珍藏版)》请在人人文库网上搜索。
1、实验一、C语言回顾复习C语言中关于函数、数组、指针、结构体等的知识,为数据结构实验做准备。【实验学时】2学时【实验预习】回答以下问题:1、数组的定义与引用数组定义在定义数组时,应该说明数组的名字、类型、大小和维数。数组定义形式类型说明符数组名常量表达式数组元素的引用方法数组名下标2、函数的定义与调用无参函数类型说明符函数名()函数体;有参函数类型说明符函数名(形式参数表列)函数体;函数调用函数名(实参表列)3、指针的基本概念指针一般指向一个函数或一个变量。在使用一个指针时,一个程序既可以直接使用这个指针所储存的内存地址,又可以使用这个地址里储存的函数的值。在计算机语言中,由于通过地址能找到所需。
2、的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元。4、结构体类型变量的定义方法结构体类型定义的一般形式struct结构体名成员表;struct结构体名成员表变量表;5、结构体成员的访问方法结构体变量名.成员名(*指针变量名).成员名指针变量名-成员名【实验内容和要求】1、完成并调试程序:实现对一维数组元素的升序排序并输出结果(横线处仅能补充一条语句)。#includevoid sort(int a,int n);_________________________;int main()int s10=1,-9,89,120,76,4。
3、5,43,6,7,2,i;________________________________;for(i=0;ivoid sort(int a,int n);int main()int s10=1,-9,89,120,76,45,43,6,7,2,i;sort(s,10);for(i=0;iaj+1)t=aj;aj=aj+1;aj+1=t;2、完成并调试程序:字符串连接程序,不使用系统提供的字符串连接函数,将第二个字符串连接至第一个字符串后。(横线处仅能补充一条语句)。#include#define M 80int main()char sub1M,sub2M;char *ps1=sub1,*p。
4、s2=sub2;printf(please input 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#in。
5、cludestruct student int sno;char sname10;float grade;void inputData(struct student s,int n);void printData(struct student s,int n);void sortData(struct student s,int n);int main()struct student a100;int n=3;inputData(a,n);sortData(a,n);printData(a,n);return 0;void inputData(struct student s,int n) i。
6、nt i;for(i=0;i#include#includetypedef struct STUint sno;char sname10;float grade;struct STU *next;STU;STU *inputData(); /*创建链表,返回链表的头指针*/void printData( STU *list); /*输出链表*/int main()STU *h=NULL;h=inputData();printData(h);return 0;STU *inputData()STU *p=NULL,*q=NULL,*head=NULL;int sno;char sname10;f。
7、loat grade;scanf(%d%s%f,&sno,sname,&grade);while(sno!=-1) /*输入学号为-1时,结束输入*/ p=(STU *)malloc(sizeof(STU); /*此语句功能:_计算st__u的大小________________________*/p-sno=sno;strcpy(p-sname,sname);p-grade=grade;p-next=NULL;if(head=NULL) head=p;else q-next=p;q=p;scanf(%d%s%f,&sno,sname,&grade);return head;void prin。
8、tData( STU *list) STU *p=list;printf(n=n);while(p!=NULL) __printf(“%4dn”)____________________________________________; /*输出数据*/p=p-next;回答问题:此链表创建的是有头结点链表还是无头结点链表?_____有_________。课后作业:完成下面三个程序1、 在一组升序排列的整数数组中插入一数据,并使该数组仍保持升序,最后输出插入后的数组。#include int main()int x10+1;int i;int a;int j,k;for(i=0;ixi)if(。
9、i=10-1)x10=a;elsej=i;for(k=10-1;k=j;k-)xk+1=xk;xj=a;break;for(i=0;iint main()int a34=0;int i,j,max,max_i,max_j;printf(Please input a 3X4 matrix:n);for(i=0;imax)max=aij;max_i=i;max_j=j; printf(The max is %d,row %,col %dn,max,max_i,max_j); 3、 从键盘输入3名学生的学号、姓名和C语言成绩,输出最高分,最低分,平均分,并按由高到低的顺序输出学生的成绩。#includestruct Stuint num;char name20;float score;void Input(struct Stu s)int i;for(i=0;iscorescore)p=a+j;if(p!=a+j)t=*p;*p=ai;ai=t;int main()struct Stu s3,*a3;int i;Input(s);for(i=0;inum,ai-name,ai-score);return 0;。