数据结构实验报告1-复习C.doc
《数据结构实验报告1-复习C.doc》由会员分享,可在线阅读,更多相关《数据结构实验报告1-复习C.doc(7页珍藏版)》请在咨信网上搜索。
<p><span id="_baidu_bookmark_start_0" style="display: none; line-height: 0px;"></span>实验一、C语言回顾 复习C语言中关于函数、数组、指针、结构体等得知识,为数据结构实验做准备。 【实验学时】 2学时 【实验预习】 回答以下问题: 1、数组得定义与引用 数组定义 在定义数组时,应该说明数组得名字、类型、大小与维数。 数组定义形式 类型说明符 数组名[常量表达式] 数组元素得引用方法 数组名[下标] 2、函数得定义与调用 无参函数 类型说明符 函数名() { 函数体 }; 有参函数 类型说明符 函数名(形式参数表列) { 函数体 }; 函数调用 函数名([实参表列]) 3、指针得基本概念 指针一般指向一个函数或一个变量。在使用一个指针时,一个程序既可以直接使用这个指针所储存得内存地址,又可以使用这个地址里储存得函数得值.在计算机语言中,由于通过地址能找到所需得变量单元,可以说,地址指向该变量单元。因此,将地址形象化得称为“指针”。意思就是通过它能找到以它为地址得内存单元。 4、结构体类型变量得定义方法 结构体类型定义得一般形式 struct结构体名 { 成员表}; struct结构体名 { 成员表 }变量表; 5、结构体成员得访问方法 结构体变量名、成员名 (*指针变量名)、成员名 指针变量名—〉成员名 【实验内容与要求】 1、完成并调试程序:实现对一维数组元素得升序排序并输出结果(横线处仅能补充一条语句). #include〈stdio、h> void sort(int a[],int n);_________________________; int main(){ int s[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[],int n) { /*补充完整排序函数,可用选择或冒泡排序*/ } #include〈stdio、h> void sort(int a[],int n); int main() { int s[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(int a[],int n) { int i,j,t; for(i=0;i<n-1;i++) { ﻩﻩfor(j=0;j<n-i—1;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("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<stdio、h〉 h="">struct student{ int sno; char sname[10]; 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 a[100]; int n=3; inputData(a,n); sortData(a,n); printData(a,n); return 0; } void inputData(struct student s[],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(struct student s[],int n) { int i; printf(”\n======================\n"); for(i=0;i<n;i++){ __printf(“\n%s%s%4d”,s[i]、sno,s[i]、sname,s[i]、grade)_______________________________________; /*输出数据*/ } } void sortData(struct student s[],int n) { int i,j; struct student t; for(i=0;i<n—1;i++){ for(j=i+1;j〈n;j++) if(s[i]、grade<s[j]、grade) { _______t=s[i]______; /*实现数据交换*/ _____s[i]=s[j]________; _s[j]=t___________; } } } 4、完成并调试程序:结构体与指针。实现学生数据得输入、输出。(横线处仅能补充一条语句). #include<stdio、h〉 #include</p><stdlib、h〉 ypedef="" uct="" nt="" t="" ct="" tu="" void="" int="" h="inputData();" eturn="" stu="" q="NULL,*head=NULL;" char="" p="(STU">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 printData( STU *list) { STU *p=list; printf(”\n======================\n"); while(p!=NULL) { __printf(“%4d\n”)____________________________________________; /*输出数据*/ p=p—>next; } } 回答问题:此链表创建得就是有头结点链表还就是无头结点链表?_____有_________。 课后作业:完成下面三个程序 1、 在一组升序排列得整数数组中插入一数据,并使该数组仍保持升序,最后输出插入后得数组。 #include<stdio、h>int main() { ﻩint x[10+1]; int i; ﻩint a; ﻩint j,k; for(i=0;i〈20;i+=2){ ﻩx[i/2]=i; ﻩ} for(i=0;i<10;i++){ printf("%3d",x[i]); ﻩ} scanf(”%d”,&a); for(i=0;i〈10;i++){ if(a>x[i]){ ﻩ if(i==10—1){ ﻩ x[10]=a; ﻩ} } ﻩ else{ ﻩﻩj=i; ﻩ for(k=10—1;k>=j;k--){ ﻩx[k+1]=x[k]; ﻩﻩ } ﻩﻩ x[j]=a; ﻩﻩ break; ﻩﻩ} ﻩ} for(i=0;i<11;i++){ ﻩ printf("%3d”,x[i]); } ﻩreturn 0; } 2、 输入4*3列矩阵,并输出最大数与最小数所在得行与列。 #include <stdio、h> int main() { int a[3][4]={0}; int i,j,max,max_i,max_j; printf("Please input a 3X4 matrix:\n"); for(i=0;i〈3;i++) for(j=0;j<4;j++) scanf(”%d",&a[i][j]); max=a[0][0]; max_i=max_j=0; for(i=0;i〈3;i++) for(j=0;j<4;j++) if(a[i][j]〉max) { max=a[i][j]; max_i=i; max_j=j; } printf(”The max is %d,row %,col %d\n",max,max_i,max_j); } 3、 从键盘输入3名学生得学号、姓名与C语言成绩,输出最高分,最低分,平均分,并按由高到低得顺序输出学生得成绩. #include<stdio、h〉 struct Stu { int num; char name[20]; float score; }; void Input(struct Stu s[]) { int i; for(i=0;i〈3;++i) scanf("%d%s%f”,&s[i]、num,&s[i]、name,&s[i]、score); } void Sort(struct Stu *a[]) { int i,j; struct Stu *t,**p; for(i=0;i<2;++i) p="a+i;">score<a[j]->score)p=a+j; if(p!=a+j) { t=*p; *p=a[i]; a[i]=t; } } } int main() { struct Stu s[3],*a[3]; int i; Input(s); for(i=0;i〈3;++i) a[i]=&s[i]; Sort(a); for(i=0;i<3;++i) printf("%d %s %、2f\n",a[i]->num,a[i]—>name,a[i]—>score); return 0; } <!--2;++i)--><!--stdio、h--></stdio、h></stdlib、h〉><!--stdio、h〉-->- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 邹永林版 实验 报告 复习
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文