《数据结构》(C语言版)严蔚敏著-数据结构实验指导
/学年第学期
姓名:______________学号:______________班级:______________指导教师:______________
数学与统计学院
2022
预备实验C语言的函数数组指针结构体知识
一、实验目的
1、复习C语言中函数、数组、指针、结构体与共用体等的概念。2、熟悉利用C语言进行程序设计的一般方法。
二、实验预习
说明以下C语言中的概念1、函数:
2、数组:
3、指针:
4、结构体
5、共用体
三、实验内容和要求
1、调试程序:输出100以内所有的素数(用函数实现)。#include
intiprime(intn){/某判断一个数是否为素数某/intm;for(m=2;m某m<=n;m++)
if(n%m==0)return0;return1;
}
intmain(){/某输出100以内所有素数某/
inti;printf(\for(i=2;i<100;i++)
if(iprime(i)==1)printf(\return0;
}
运行结果:
2、调试程序:对一维数组中的元素进行逆序排列。#include#defineN10intmain(){
2
inta[N]={0,1,2,3,4,5,6,7,8,9},i,temp;
printf(\for(i=0;i
temp=a[i];a[i]=a[N-i-1];a[N-i-1]=temp;
printf(\for(i=0;i
return0;}
运行结果:
3、调试程序:在二维数组中,若某一位置上的元素在该行中最大,而在该列中最小,则该元素即为该二维数组的一个鞍点。要求从键盘上输入一个二维数组,当鞍点存在时,把鞍点出来。#include
#defineM3#defineN4intmain(){inta[M][N],i,j,k;printf(\请输入二维数组的数据:\\n\
for(i=0;i
for(j=0;j
for(j=0;j
for(i=0;i
/某出第i行的最大值某/
if(a[i][j]>a[i][k])k=j;
for(j=0;j
if(a[j][k]
/某在第i行到鞍点某/
break;if(j==M)
printf(\
3
}
return0;}
运行结果:
4、调试程序:利用指针输出二维数组的元素。#includeintmain(){
inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};int某p;
for(p=a[0];p
printf(\
return0;}
运行结果:
5、调试程序:设有一个教师与学生通用的表格,教师的数据有姓名、年龄、职业、教研室四项,学生有姓名、年龄、专业、班级四项,编程输入人员的数据,再以表格输出。#include
#defineN10tructtudent{charname[8];/某姓名某/intage;/某年龄某/charjob;/某职业或专业,用或t表示学生或教师某/
union{
intcla;
/某班级某/
charoffice[10];/某教研室某/}depa;
c语言暑期培训班}tu[N];intmain(){
inti;intn;
printf(“\\n请输入人员数(<10):\\n”);canf(“%d”,&n);for(i=0;i
canf(\if(tu[i].job==’’)canf(\
4
ele
canf(\}printf(“nameagejobcla/office”);for(i=0;i
if(tu[i].job==’’)
printf(\
eleprintf(\
}
}
四、实验小结
五、教师评语
5
intmain(){
SqStack;
printf(\CreateStack(&);
printf(\PrintStack(&);return0;
}算法分析:输入元素序列12345,为什么输出序列为54321?体现了栈的什么
特性?
2、在第1题的程序中,编写一个十进制转换为二进制的数制转换算法函数(要求利用栈来实现),并验证其正确性。实现代码

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。