1《C语言案例实践》实验一回顾

更新时间:2024-01-04 09:38:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验一、C语言回顾

复习C语言中关于函数、数组、指针、结构体等的知识,为数据结构实验做准备。

【实验学时】

2学时

【实验预习】

回答以下问题:

1、数组的定义与引用

2、函数的定义与调用

3、指针的基本概念

4、结构体类型变量的定义方法

5、结构体成员的访问方法

【实验内容和要求】

1、完成并调试程序:实现对一维数组元素的升序排序并输出结果(横线处仅能补充一条语句)。

#include

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(\ printf(\ return 0; }

void sort(int a[],int n) { /*补充完整排序函数,可用选择或冒泡排序*/ }

#include void sort(int a[],int n); 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(\ printf(\ return 0; }

void sort(int a[],int n) { int i,j,t; for(i=0;ia[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } }

2、完成并调试程序:字符串连接程序,不使用系统提供的字符串连接函数,将第二个

字符串连接至第一个字符串后。(横线处仅能补充一条语句)。

#include #define M 80 int main(){ char sub1[M],sub2[M]; char *ps1=sub1,*ps2=sub2; printf(\ printf(\ gets(ps1); printf(\ gets(ps2); while(*ps1!='\\0') _________ps1++________________; while(*ps2!='\\0') _*(ps1++)=*(sp2++)________________________; *ps1='\\0'; printf(\ puts(sub1); return 0; }

3、完成并调试程序:结构体与数组。实现学生数据的输入、输出和按成绩排序。(横线处仅能补充一条语句)。

#include #include

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

_

scanf(“%s%s%d”,s[i].sno,s[i].sname,s[i].grade)___________________________________________________; /*读入数据*/

} }

void printData(struct student s[],int n) { int i;

printf(\ for(i=0;i

__printf(“\\n%s%sM”,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

if(s[i].grade

_______t=s[i]______; /*实现数据交换*/ _____s[i]=s[j]________; _s[j]=t___________; } } }

4、完成并调试程序:结构体与指针。实现学生数据的输入、输出。(横线处仅能补充一条语句)。

#include #include #include typedef struct STU{ int sno;

char sname[10]; 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 sname[10]; float grade;

scanf(\

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(\ }

return head; }

void printData( STU *list) { STU *p=list;

printf(\ while(p!=NULL) {

__printf(“M\\n”)____________________________________________; /*输出数据*/

p=p->next;

} }

回答问题:此链表创建的是有头结点链表还是无头结点链表?_____有_________。

课后作业:完成下面三个程序

1、 在一组升序排列的整数数组中插入一数据,并使该数组仍保持升序,最后输出插入后的

数组。

#include int main() {

int x[10+1]; int i; int a; int j,k;

本文来源:https://www.bwwdw.com/article/wtbx.html

Top