1《C语言案例实践》实验一回顾.doc_第1页
1《C语言案例实践》实验一回顾.doc_第2页
1《C语言案例实践》实验一回顾.doc_第3页
1《C语言案例实践》实验一回顾.doc_第4页
1《C语言案例实践》实验一回顾.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验一、C语言回顾复习C语言中关于函数、数组、指针、结构体等的知识,为数据结构实验做准备。【实验学时】2学时【实验预习】回答以下问题:1、数组的定义与引用2、函数的定义与调用3、指针的基本概念4、结构体类型变量的定义方法5、结构体成员的访问方法【实验内容和要求】1、完成并调试程序:实现对一维数组元素的升序排序并输出结果(横线处仅能补充一条语句)。#includevoid sort(int a,int n);_;int main() int s10=1,-9,89,120,76,45,43,6,7,2,i; _; for(i=0;i10;i+) printf(%4d,si); printf(n); return 0;void sort(int a,int n) /*补充完整排序函数,可用选择或冒泡排序*/ #includevoid sort(int a,int n);void 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;i10;i+) printf(%4d,si); printf(n); return 0;void sort(int a,int n) int i,j,t;for(i=0;in-1;i+)for(j=0;jaj+1) t=aj; aj=aj+1; aj+1=t; 2、完成并调试程序:字符串连接程序,不使用系统提供的字符串连接函数,将第二个字符串连接至第一个字符串后。(横线处仅能补充一条语句)。#include#define M 80int main()char sub1M,sub2M;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#includestruct 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) int i; for(i=0;in;i+) _ scanf(“%s%s%d”,si.sno,si.sname,si.grade)_; /*读入数据*/ void printData(struct student s,int n) int i; printf(n=n); for(i=0;in;i+) _printf(“n%s%s%4d”,si.sno,si.sname,si.grade)_; /*输出数据*/ void sortData(struct student s,int n) int i,j; struct student t; for(i=0;in-1;i+) for(j=i+1;jn;j+) if(si.gradesj.grade) _t=si_; /*实现数据交换*/ _si=sj_; _sj=t_; 4、完成并调试程序:结构体与指针。实现学生数据的输入、输出。(横线处仅能补充一条语句)。#include#include#includetypedef struct STU int 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;float 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 printData( 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;i20;i+=2)xi/2=i;for(i=0;i10;i+)printf(%3d,xi);scanf(%d,&a);for(i=0;ixi)if(i=10-1)x10=a;elsej=i;for(k=10-1;k=j;k-)xk+1=xk;xj=a;break; for(i=0;i11;i+)printf(%3d,xi);return 0;2、 输入4*3列矩阵,并输出最大数和最小数所在的行和列。 #include int main() int a34=0; int i,j,max,max_i,max_j; printf(Please input a 3X4 matrix:n); for(i=0;i3;i+) for(j=0;j4;j+) scanf(%d,&aij); max=a00; max_i=max_j=0; for(i=0;i3;i+) for(j=0;jmax) 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 Stu int num; char name20; float score;void Input(struct Stu s) int i; for(i=0;i3;+i) scanf(%d%s%f,&si.num,&,&si.score);void Sort(struct Stu *a) int i,j; struct Stu *t,*p; for(i=0;i2;+i) p=a+i; for(j=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论