‍实验一、C语言回顾 复习C语言中关于函数、数组、指针、结构体等得,咨信网zixin.com.cn" /> ‍实验一、C语言回顾 复习"/>
收藏 分销(赏)

数据结构实验报告1-复习C.doc

上传人:快乐****生活 文档编号:4347260 上传时间:2024-09-09 格式:DOC 页数:7 大小:28.50KB
下载 相关 举报
数据结构实验报告1-复习C.doc_第1页
第1页 / 共7页
数据结构实验报告1-复习C.doc_第2页
第2页 / 共7页
点击查看更多>>
资源描述
<p><span id="_baidu_bookmark_start_0" style="display: none; line-height: 0px;">‍</span>实验一、C语言回顾 复习C语言中关于函数、数组、指针、结构体等得知识,为数据结构实验做准备。 【实验学时】 2学时 【实验预习】 回答以下问题: 1、数组得定义与引用&nbsp; 数组定义&nbsp; 在定义数组时,应该说明数组得名字、类型、大小与维数。&nbsp;数组定义形式&nbsp; 类型说明符&nbsp;数组名[常量表达式]&nbsp;数组元素得引用方法&nbsp;数组名[下标]&nbsp; 2、函数得定义与调用&nbsp; 无参函数&nbsp; 类型说明符&nbsp;函数名()&nbsp;{&nbsp;&nbsp;&nbsp;函数体&nbsp;};&nbsp; 有参函数&nbsp; 类型说明符&nbsp;函数名(形式参数表列)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;函数体&nbsp;};&nbsp; 函数调用&nbsp;函数名([实参表列])&nbsp; 3、指针得基本概念&nbsp; 指针一般指向一个函数或一个变量。在使用一个指针时,一个程序既可以直接使用这个指针所储存得内存地址,又可以使用这个地址里储存得函数得值.在计算机语言中,由于通过地址能找到所需得变量单元,可以说,地址指向该变量单元。因此,将地址形象化得称为“指针”。意思就是通过它能找到以它为地址得内存单元。&nbsp; 4、结构体类型变量得定义方法&nbsp; 结构体类型定义得一般形式&nbsp;&nbsp;struct结构体名&nbsp; {&nbsp;&nbsp;&nbsp;成员表};&nbsp; &nbsp;struct结构体名&nbsp;&nbsp;{&nbsp;成员表&nbsp;}变量表;&nbsp; 5、结构体成员得访问方法&nbsp; 结构体变量名、成员名&nbsp;(*指针变量名)、成员名&nbsp;指针变量名—〉成员名&nbsp; 【实验内容与要求】 1、完成并调试程序:实现对一维数组元素得升序排序并输出结果(横线处仅能补充一条语句). #include〈stdio、h&gt; void sort(int a[],int n);_________________________; int main(){ &nbsp; &nbsp;int s[10]={1,—9,89,120,76,45,43,6,7,2},i; &nbsp; &nbsp;________________________________; &nbsp;  for(i=0;i〈10;i++)     &nbsp;  printf(&quot;%4d",s[i]); &nbsp; &nbsp;printf("\n&quot;);    return 0; } void sort(int a[],int n) { &nbsp;/*补充完整排序函数,可用选择或冒泡排序*/   } #include〈stdio、h> void sort(int a[],int n); int main() { &nbsp;  int s[10]={1,—9,89,120,76,45,43,6,7,2},i; &nbsp;  sort(s,10);    for(i=0;i<10;i++) &nbsp; &nbsp; &nbsp; &nbsp;printf(”%4d”,s[i]); &nbsp;  printf("\n"); &nbsp; &nbsp;return 0; } void sort(int a[],int n)  { int i,j,t; for(i=0;i<n-1;i++) { ﻩﻩfor(j=0;j&lt;n-i—1;j++) ﻩ if(a[j]>a[j+1]) ﻩ { ﻩﻩ &nbsp;  t=a[j]; ﻩ   &nbsp;a[j]=a[j+1]; ﻩﻩ  &nbsp; a[j+1]=t; &nbsp;  } } } 2、完成并调试程序:字符串连接程序,不使用系统提供得字符串连接函数,将第二个字符串连接至第一个字符串后。(横线处仅能补充一条语句). #include〈stdio、h> #define M 80 int main(){ char sub1[M],sub2[M]; ﻩchar *ps1=sub1,*ps2=sub2; ﻩprintf(&quot;please input strings:\n"); printf(&quot;string1:"); ﻩgets(ps1); printf("string2:”); ﻩgets(ps2); ﻩwhile(*ps1!=’\0&#39;) _________ps1++________________; ﻩwhile(*ps2!=’\0’) _*(ps1++)=*(sp2++)________________________; *ps1=&#39;\0&#39;; printf(&quot;new string:”); puts(sub1); ﻩreturn 0; } 3、完成并调试程序:结构体与数组。实现学生数据得输入、输出与按成绩排序.(横线处仅能补充一条语句)。 #include&lt;stdio、h〉 h=&quot;&quot;&gt;struct student{ &nbsp; &nbsp;  &nbsp;   &nbsp; int sno;   &nbsp; 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];   &nbsp;int n=3; &nbsp;  inputData(a,n); &nbsp; &nbsp;sortData(a,n); &nbsp;  printData(a,n); &nbsp;  return 0; } void inputData(struct student s[],int n) {   &nbsp; int i; &nbsp; &nbsp;for(i=0;i〈n;i++){   &nbsp; &nbsp;   _ scanf(“%s%s%d”,s[i]、sno,s[i]、sname,s[i]、grade)___________________________________________________; /*读入数据*/ &nbsp; &nbsp;} } void printData(struct student s[],int n) {   &nbsp;  int i; &nbsp; &nbsp; printf(”\n======================\n");     &nbsp;for(i=0;i<n;i++){ &nbsp; &nbsp;   &nbsp; &nbsp; &nbsp; __printf(“\n%s%s%4d”,s[i]、sno,s[i]、sname,s[i]、grade)_______________________________________; /*输出数据*/   &nbsp;} } void sortData(struct student s[],int n) { &nbsp;  int i,j; &nbsp; &nbsp;struct student t;   &nbsp;for(i=0;i&lt;n—1;i++){ &nbsp; &nbsp; &nbsp;   &nbsp; &nbsp;for(j=i+1;j〈n;j++) &nbsp;     &nbsp;   &nbsp;if(s[i]、grade&lt;s[j]、grade) {   &nbsp;   &nbsp;   &nbsp;         &nbsp; &nbsp; &nbsp; &nbsp; _______t=s[i]______; /*实现数据交换*/ &nbsp; &nbsp; &nbsp;    &nbsp; &nbsp;   _____s[i]=s[j]________; &nbsp; &nbsp; &nbsp; &nbsp;    &nbsp;   _s[j]=t___________; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}   &nbsp; } } 4、完成并调试程序:结构体与指针。实现学生数据得输入、输出。(横线处仅能补充一条语句). #include&lt;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;   &nbsp; &nbsp; &nbsp; strcpy(p-&gt;sname,sname);   &nbsp; &nbsp;  p-&gt;grade=grade; &nbsp;   &nbsp; &nbsp;p-&gt;next=NULL; &nbsp; &nbsp; &nbsp; &nbsp;if(head==NULL)  head=p; &nbsp; &nbsp;  &nbsp; else  q->next=p; &nbsp;  &nbsp; &nbsp; q=p; &nbsp;    &nbsp; scanf(&quot;%d%s%f&quot;,&sno,sname,&amp;grade);   &nbsp;} &nbsp; &nbsp;return head; } void printData( STU *list) { &nbsp; &nbsp; STU *p=list; &nbsp;   printf(”\n======================\n&quot;); &nbsp;   while(p!=NULL) {   &nbsp; &nbsp; &nbsp;    __printf(“%4d\n”)____________________________________________; /*输出数据*/ p=p—>next;   &nbsp;} } 回答问题:此链表创建得就是有头结点链表还就是无头结点链表?_____有_________。 课后作业:完成下面三个程序 1、 在一组升序排列得整数数组中插入一数据,并使该数组仍保持升序,最后输出插入后得数组。 &nbsp; #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(&quot;%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&gt;=j;k--){ ﻩx[k+1]=x[k]; ﻩﻩ } ﻩﻩ x[j]=a; ﻩﻩ break; ﻩﻩ} ﻩ}   &nbsp;  &nbsp; for(i=0;i<11;i++){ ﻩ printf("%3d”,x[i]); } ﻩreturn 0; } 2、 输入4*3列矩阵,并输出最大数与最小数所在得行与列。    #include &lt;stdio、h&gt; int main() {   &nbsp; int a[3][4]={0}; &nbsp; &nbsp; int i,j,max,max_i,max_j; &nbsp;   printf("Please input a 3X4 matrix:\n"); &nbsp; &nbsp; for(i=0;i〈3;i++)   &nbsp; &nbsp; &nbsp;for(j=0;j&lt;4;j++) &nbsp;    &nbsp; &nbsp;scanf(”%d",&a[i][j]);     max=a[0][0];     &nbsp;max_i=max_j=0; &nbsp; &nbsp; for(i=0;i〈3;i++) &nbsp; &nbsp; &nbsp; &nbsp;for(j=0;j&lt;4;j++)     &nbsp; &nbsp; &nbsp; &nbsp;if(a[i][j]〉max)    &nbsp;        { &nbsp;   &nbsp; &nbsp; &nbsp;   &nbsp; &nbsp;max=a[i][j];     &nbsp; &nbsp;         max_i=i; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;   &nbsp; &nbsp;max_j=j; &nbsp; &nbsp; &nbsp;   &nbsp;  }   &nbsp; &nbsp;  printf(”The max is %d,row %,col %d\n&quot;,max,max_i,max_j); } 3、 从键盘输入3名学生得学号、姓名与C语言成绩,输出最高分,最低分,平均分,并按由高到低得顺序输出学生得成绩.   &nbsp; &nbsp;#include&lt;stdio、h〉 struct Stu {   &nbsp; &nbsp;  int num; &nbsp;     &nbsp;char name[20];    &nbsp; &nbsp;  float score; }; void Input(struct Stu s[]) { &nbsp; &nbsp; &nbsp;  int i; &nbsp; &nbsp;  &nbsp; for(i=0;i〈3;++i)         &nbsp; &nbsp; &nbsp; &nbsp;scanf(&quot;%d%s%f”,&amp;s[i]、num,&s[i]、name,&s[i]、score); } void Sort(struct Stu *a[]) { &nbsp;  &nbsp; &nbsp; int i,j;    &nbsp;   struct Stu *t,**p; &nbsp; &nbsp;   &nbsp;for(i=0;i&lt;2;++i) p=&quot;a+i;&quot;&gt;score<a[j]-&gt;score)p=a+j; &nbsp; &nbsp; &nbsp;     &nbsp; &nbsp;  if(p!=a+j) &nbsp;     &nbsp; &nbsp; &nbsp;   &nbsp;{ &nbsp; &nbsp; &nbsp;  &nbsp; &nbsp;     &nbsp; &nbsp; &nbsp;   t=*p;    &nbsp; &nbsp; &nbsp;  &nbsp;  &nbsp;   &nbsp; &nbsp; &nbsp;  *p=a[i];    &nbsp;   &nbsp; &nbsp; &nbsp; &nbsp;    &nbsp;   &nbsp; a[i]=t; &nbsp; &nbsp; &nbsp;  &nbsp; &nbsp;   &nbsp; }    &nbsp; &nbsp; &nbsp;} } int main() { &nbsp; &nbsp; &nbsp; &nbsp;struct Stu s[3],*a[3];     &nbsp; &nbsp; int i; &nbsp; &nbsp; &nbsp;  Input(s);   &nbsp; &nbsp;  &nbsp;for(i=0;i〈3;++i)   &nbsp; &nbsp;  a[i]=&amp;s[i];        &nbsp;Sort(a); &nbsp; &nbsp; &nbsp;  for(i=0;i<3;++i) &nbsp; &nbsp;  &nbsp; &nbsp;   &nbsp; &nbsp; printf(&quot;%d %s %、2f\n&quot;,a[i]-&gt;num,a[i]—&gt;name,a[i]—&gt;score);   &nbsp; &nbsp;  return 0; } <!--2;++i)--><!--stdio、h--></stdio、h></stdlib、h〉><!--stdio、h〉-->
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服