《高级语言程序设计》实验指导书.docx
《《高级语言程序设计》实验指导书.docx》由会员分享,可在线阅读,更多相关《《高级语言程序设计》实验指导书.docx(17页珍藏版)》请在冰豆网上搜索。
《高级语言程序设计》实验指导书
高级语言程序设计
(C语言程序设计)
上
机
实
验
指
导
书
南昌理工学院
计算机系
目录
上机实验总的目的和要求-----------------------------------------------2
实验一C语言基础----------------------------------------------------3
实验二简单条件判断------------------------------------------------4
实验三多路分支switch语句-------------------------------------5
实验四for循环语句--------------------------------------------------7
实验五循环嵌套与一维数组----------------------------------------9
实验六函数定义与调用---------------------------------------------10
实验七指针变量作为函数实(形)参---------------------------12
实验八指向结构体的指针------------------------------------------14
上机实验总的目的和要求
学习C语言程序设计课程必须重视实践环节。
即独立编写程序,独立上机调试程序。
上机的目的,绝不仅是为了验证教材和上课的内容或者验证自己所编的程序正确与否。
学习程序设计,上机实验的目的应该说是:
(1)加深对讲授内容的理解,尤其是一些语法规定,通过多次上机,就能自然地、熟练地掌握。
(2)熟悉所用的计算机系统的操作方法,了解和熟悉C语言程序开发的环境。
(3)学会上机调试程序,培养对程序的纠错能力。
善于发现程序中的错误,并能很快的排除这些错误。
上机实验一般包括以下几个步骤:
(1)准备好上机所需的程序。
手编程序应书写整齐,并经人工检查无误后才能上机,以提高上机效率。
对程序中存在的问题,应做出记号,切记不能事先不编程序或临时抄别人程序去上机。
(2)上机输入和调试自己的程序。
应该一人一机,独立上机。
上机过程中出现的问题,除了系统问题以外,应该自己调试,独立处理。
(3)上机结束后,应整理出实验报告,实验报告应包括以下内容:
a、题目。
b、程序清单(计算机打印出的程序清单)。
c、运行结果(必须是上面程序清单所对应打印输出的结果)。
d、对运行情况所做的分析以及本次调试程序所取得的经验。
如果程序未能通过,应分析其原因。
下面的每一次实验都对应教材中的相应内容。
上机时间为每次2小时。
实验一:
C语言基础
一、实验题目:
已知一梯形,其上底为12.3,下底为21.6,高为5,求其面积。
(数据要输入,结果要
输出,要用已学的程序结构、语句和运算规则编写本程序。
)
二、实验目的
根据所学C语言关于基本类型变量,加、减、乘、除等基本运算符的定义与使用规则,
输入/输出函数调用语句的使用格式,进行相应程序设计训练,巩固已学的基本知识。
三、实验内容
1、标识符的定义规则和表达式的组成
2、数据类型及定义变量的作用,掌握定义变量的方法
3、输入/输出函数调用语句的使用
4、C语言程序的一般描述格式
四、实验步骤
1、按C语言应用程序的固定框架编程。
2、按要求分别定义四个float类型变量s、x、g、m,分别代表上底、下底、高和面积。
利用输入函数调用语句分别输入相关数据,并进行相应运算。
3、使用输出函数调用语句输出面积值。
五、实验要求:
1、在规定的实验时间内所编程序能得出正确结果,完成实验任务
2、所编程序必须具备实现“实验题目”中要求的各程序功能要素
3、所编程序必须语句正确、速写规范、逻辑清晰
六、实验结果:
#include
intmain()
{
floats,x,g,m;
scanf("s=%f,x=%f,g=%f",&s,&x,&g);
m=(s+x)*g/2;
printf("m=%f\n",m);
return0;
}
七、实验心得:
实验二:
简单条件判断
随机算出任意两个圆面积的值s1、s2;假如s1>s2,则按先s1后s2的顺序从小到大输出两个面积值;假如s1(数据要输入时要有提示,要用已学的条件判断结构编写本程序,要看清题目的要求此题有多种编法。)二、实验目的根据所学C语言关于条件判断结构的使用规则、输入/输出函数调用语句的使用格式,进行相应程序设计训练,可以有多种编法,进行算法比较,巩固已学的基本知识。三、实验内容1、编写输入函数调用语句及相应提示形式2、描述符号常量PI的数值3、编写条件判断结构语句(注意条件嵌套和复合语句的用法)4、根据对面积的不同判断进行不同的输出处理。根据不同的输出结果,编写输出函数调用语句及相应提示形式5、继续巩固C语言程序一般描述格式四、实验步骤1、按C语言应用程序的固定框架编程。2、按要求定义一个int类型变量a。利用输入函数调用语句分别输入相关数据。3、使用条件判断if或if…else格式进行判断处理编程。4、使用输出函数调用语句输出相关值或信息。五、实验要求:1、在规定的实验时间内所编程序能得出正确结果,完成实验任务2、所编程序必须具备实现“实验题目”中要求的各程序功能要素3、所编程序必须语句正确、速写规范、逻辑清晰六、实验结果:#include#definePI3.14fintmain(){floatr1,r2,s1,s2,t;printf("输入两个半径值:");scanf("%f%f",&r1,&r2);s1=r1*r1*PI;s2=r2*r2*PI;if(s1>s2){t=s1;s1=s2;s2=t;printf("面积从小到大输出:s1=%fs2=%f\n",s1,s2);}elseif(s1{s1=s2;printf("最面积大值:s1=%f\n",s1);}elseprintf("相同面积值:s2=%f\n",s2);return0;}七、实验心得:实验三:多路分支switch语句一、实验题目:运输公司的运费计算,路程越远,吨公里运费越低。根据下表计算出具体单价、货重、路程距离的运费。路程范围(公里)折扣路程<250无250≤路程<5002%500≤路程<10005%1000≤路程<20008%2000≤路程<300010%3000≤路程15%二、实验目的根据所学C语言关于条件判断、多路分支结构的switch语句使用规则,进行相应程序设计训练,熟悉和掌握switch语句相关的使用技巧,巩固已学的基本知识。三、实验内容1、编写输入函数调用语句及相应提示形式2、编写条件判断结构语句,确定switch语句分支标号3、根据标号的设置,进行不同路程计算折扣4、计算具体运费四、实验步骤1、按要求定义float类型变量,运费基价p、货重w、路程s、折扣d。2、使用输入函数调用语句,进行运费基价p、货重w、路程s信息输入。3、根据折扣表中公里为250的倍数这一特征,确定每250设置一switch语句分支标号。4、根据p×w×s×(1-d)公式计算运费。5、使用输出函数调用语句输出相关值或信息。五、实验要求:1、在规定的实验时间内所编程序能得出正确结果,完成实验任务2、所编程序必须具备实现“实验题目”中要求的各程序功能要素3、所编程序必须语句正确、速写规范、逻辑清晰六、实验结果:#includeintmain(){intc,s;floatp,w,d,f;printf("pleaseenterprice,weight,discount:");scanf("%f,%f,%d",&p,&w,&s);if(s>=3000)c=12;elsec=s/250;switch(c){case0:d=0;break;case1:d=2;break;case2:case3:d=5;break;case4:case5:case6:case7:d=8;break;case8:case9:case10:case11:d=10;break;case12:d=15;break;}{f=p*w*s*(1-d/100);printf("freigh=%10.2f\n",f);return0;}七、实验心得: 实验四:for循环语句一、实验题目:在给定学生人数的情况下,逐次输入每个学生的成绩。若成绩<60,则输出“不及格”;若60≤成绩<70,则输出“及格”;若70≤成绩<80,则输出“良好”;若80≤成绩,则输出“优秀”。要求输出各档次成绩所占学生的比率和全部成绩的平均分(0<学生人数≤60)。二、实验目的根据所学C语言关于循环、条件判断结构的使用规则、输入/输出函数调用语句的使用格式,进行相应程序设计训练,可以有多种编法,进行算法比较,巩固已学的基本知识。三、实验内容1、选择合适的语句形式,确定学生的人数(0<人数≤60)2、编写循环结构语句(对所有学生的成绩进行循环处理)3、编写条件判断结构语句,根据输入的成绩,输出“不及格”、“及格”、“良好”、“优秀”。4、进行各档次成绩所占学生的比率和全部成绩的平均分的计算,并且输出。四、实验步骤1、设计while语句,进行学生人数的输入及合理性检查。2、设计for语句,进行对学生成绩的循环性处理。3、使用多路分支判断switch…case语句格式进行分支判断处理编程。4、使用输出函数调用语句输出对各档次成绩的评价。5、选择合适的语句形式进行各档次成绩所占学生的比率和全部成绩的平均分的计算。6、输出函数调用语句输出相关的计算结果。五、实验要求:1、在规定的实验时间内所编程序能得出正确结果,完成实验任务2、所编程序必须具备实现“实验题目”中要求的各程序功能要素3、所编程序必须语句正确、速写规范、逻辑清晰六、实验结果:#includeintmain(){inta=1,b,i,j,s1=0,s2=0,s3=0,s4=0;floatx=0.0;while(a){printf("输入学生人数:");scanf("%d",&j);if(j>0&&j<=60)a=0;}printf("\n");for(i=1;i<=j;i++){printf("\n");printf("输入成绩:");scanf("%d",&a);if(a<0||a>100)j=0;else{b=a/10-5;x=x+a;if(b<=0)b=0;switch(b){case0:s1++;printf("不及格!");break;case1:s2++;printf("及格!");break;case2:s3++;printf("良好!");break;case3:case4:s4++;printf("优秀!");break;}}}printf("\n");printf("学生人数:%d\n",j);a=s1*100/j;printf("不及格率:%d\n",a);a=s2*100/j;printf("及格率:%d\n",a);a=s3*100/j;printf("良好率:%d\n",a);a=s4*100/j;printf("优秀率:%d\n",a);x=x/j;printf("平均成绩:%f\n",x);return0;}七、实验心得:实验五:循环嵌套与一维数组一、实验题目:实现“冒泡”排序。在定义一维数组、长度为10的情况下,逐次输入每个数组元素的值。采用每次将相邻的前一个元素与后一个元素比较。如果前一个元素比后一个元素大,则两两相换。如此,将全数组比较完第1次后就会选出本次的最大值,且存放在数组的底部。长度为10的数组需要比较、选择10次,最终使整个数组的元素值以从小到大的次序摆放,并将该数组值输出。二、实验目的根据所学C语言关于循环、循环嵌套结构的使用规则,进行“冒泡”排序的相应程序设计训练,巩固已学的基本知识。三、实验内容1、定义长度为10的一维数组、编写循环结构语句(逐次输入每个数组元素的值)2、编写循环结构语句(对长度为10的一维数组元素选出本次最大值进行循环处理)3、编写循环结构语句(对长度为10的一维数组元素两两比较进行循环处理)4、输出整个数组的元素值,并将该数组值以从小到大的次序输出。四、实验步骤1、定义一维数组a[10]、用循环语句逐次输入每个数组元素的值。2、以j为逐次选出的当前最大值记数,并以for语句进行0~9次循环。3、以i为一维数组元素逐次两两比较进行循环处理的记数,并以for语句进行0~9-j次循环。5、设置暂存变量t。如果前一个元素比后一个元素大,则利用t进行存储位置的转换。6、对该数组进行“冒泡”排序,使该数组值以从小到大的次序输出。五、实验要求:1、在规定的实验时间内所编程序能得出正确结果,完成实验任务2、所编程序必须具备实现“实验题目”中要求的各程序功能要素3、所编程序必须语句正确、速写规范、逻辑清晰六、实验结果:#includeintmain(){inta[10];inti,j,t;printf("input10numbers:\n");for(i=0;i<10;i++)scanf("%d",&a[i]);printf("\n");for(j=0;j<9;j++)for(i=0;i<9-j;i++)if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}printf("thesortednumbers:\n");for(i=0;i<10;i++)printf("%d",a[i]);printf("\n");return0;}七、实验心得:实验六:函数定义与调用一、实验题目:把“选择排序”程序编成一个自定义函数。即在此函数内为一长度为10的一维数组、元素排序,排序后输出数组内容。函数的形参为数组名(带“[]”)。在主函数内定义一个长度为10的一维数组,并逐次输入每个数组元素的值。在调用“选择排序”函数前先输出数组内容。根据函数类型选择函数调用格式,实参为数组名。调用函数,进行“选择排序”。返回后输出数组内。根据自定义函数的描述位置,进行函数原型说明与否的选择。二、实验目的根据所学C语言关于一维数组、函数定义、函数原型说明、函数调用格式、函数的实(形)参等的使用规则,进行函数的相应程序设计训练,观察、比较三次数组的输出结果,体会函数的“地址传递”与“值传递”的区别与作用,巩固已学的基本知识。三、实验内容1、编写自定义函数的“选择排序”程序。处理长度为10的一维数组,函数的形参为数组名(带“[]”),确定函数类型。2、编写主函数,并在主函数内定义一个长度为10的一维数组,并逐次输入每个数组元素的值。3、根据函数类型选择函数调用格式,并确定实参的数组名。4、根据自定义函数的描述位置,进行函数原型说明与否的选择。四、实验步骤1、把原“选择排序”程序改写成自定义函数sort()。在函数内排序的数组为array[],即函数的形参为数组名array[],排序后输出排序结果数组array[]内容。确定函数类型为void。2、在主函数内定义一个长度为10的一维数组a[],并逐次输入每个数组元素的值。选择函数调用格式为语句形式,并确定实参为数组名a。3、在函数调用前和调用后分别在主函数内输出数组a[]内容。5、观察、比较三次数组的输出结果,体会函数“地址传递”的作用。五、实验要求:1、在规定的实验时间内所编程序能得出正确结果,完成实验任务2、所编程序必须具备实现“实验题目”中要求的各程序功能要素3、所编程序必须语句正确、速写规范、逻辑清晰六、实验结果:#includeintmain(){voidsort(intarray[],intn);inta[10],i;printf("enterarray:\n");for(i=0;i<10;i++)scanf("%d",&a[i]);sort(a,10);printf("Thesortedarray:\n");for(i=0;i<10;i++)printf("%d",a[i]);printf("\n");return0;}voidsort(intarray[],intn){inti,j,k,t;for(i=0;i{k=i;for(j=i+1;jif(array[j]k=j;t=array[k];array[k]=array[i],array[i]=t;}}七、实验心得: 实验七:指针变量作为函数实(形)参一、实验题目:把实验六的“冒泡”排序程序改编成一个自定义函数。即在此函数内为一长度为10的一维数组、元素排序,排序后输出数组内容。函数的形参为指向数组名的指针变量型。在主函数内根据函数类型选择函数调用格式,实参为指向数组名的指针变量型。调用函数,进行“冒泡”排序。返回后输出数组内。根据自定义函数的描述位置,进行函数原型说明与否的选择。二、实验目的根据所学C语言关于一维数组、函数定义、函数原型说明、函数调用格式、指向数组名的指针变量作为函数实(形)参等的使用规则,进行函数的相应程序设计训练,观察指针变量作为函数实(形)参的函数运行结果,体会指针变量作为函数参数的作用,巩固已学的基本知识。三、实验内容1、编写自定义函数的“冒泡”排序程序。处理长度为10的一维数组,函数的形参为指向数组名的指针变量型,确定函数类型。2、编写主函数,并在主函数内定义一个长度为10的一维数组,并逐次输入每个数组元素的值。3、根据函数类型选择函数调用格式,并确定实参为指向数组名的指针变量型。4、由于“函数定义”的位置在调用格式之前,所以本题不进行“函数原型说明”。四、实验步骤1、把原“冒泡”排序程序改写成自定义函数sort()。在函数内用指针变量*x指向排序的排序数组*(x+i),即函数的形参为*x,排序后输出排序结果数组*(x+i)内容。确定函数类型为void。2、在主函数内定义一个长度为10的一维数组a[]和指针变量*p,并把数组首地址赋给指针变量p,再逐次向p输入每个数组元素的值。选择函数调用格式为语句形式,并确定实参为指针变量*p。3、在主函数内:①在函数调用前先输出数组a[]内容;②在调用后输出由指针变量指向的数组内容。5、观察、比较两次数组的输出结果,体会指针变量作为函数参数的作用。五、实验要求:1、在规定的实验时间内所编程序能得出正确结果,完成实验任务2、所编程序必须具备实现“实验题目”中要求的各程序功能要素3、所编程序必须语句正确、速写规范、逻辑清晰六、实验结果:#include#defineM10voidsort(int*x,intn);intmain(){inti,*p,a[M];p=a;printf("输入排序数组元素:\n");for(i=0;iscanf("%d",p++);for(i=0;iprintf("%d",a[i]);p=a;sort(p,M);for(p=a,i=0;i{printf("%d",*p);p++;}printf("\n");return0;}voidsort(int*x,intn){inti,j,k,t;for(i=0;i{k=i;for(j=i+1;jif(*(x+j)>*(x+k))k=j;if(k!=i){t=*(x+i);*(x+i)=*(x+k);*(x+k)=t;}}}七、实验心得:实验八:指向结构体的指针一、实验题目:有一批3个学生的信息,信息的内容是姓名name、年龄age和成绩scor。3个学生的基本信息:①李宏、21岁,85分;②赵磊、19岁,89分;③马凡、22岁,87分;要求:1、算出该批学生的平均年龄(可以自动取整)。2、求出该批学生中最好成绩及其姓名。提示:1、算出平均年龄和最好成绩应在其它两个函数中。2、全题都要用“指向结构体的指针”表示,并且要用指向“->”运算符。二、实验目的根据所学C语言关于结构体类型定义、结构体数组定义、指向结构体的指针、用指向结构体的指针变量作为函数实(形)参等的使用规则,进行结构体的相应程序设计训练,观察指向结构体的指针作为函数参数的函数运行结果,体会指向结构体的指针作为函数参数的作用,巩固已学的基本知识。三、实验内容1、编写自定义类型:结构体类型的定义程序。描述两个函数:平均年龄和最好成绩函数,并确定这些函数的形参为指向结构体的指针变量,确定函数类型。2、编写主函数,并在主函数内定义结构体数组,并为长度为3的一维结构体数组赋初始值。3、根据函数类型选择函数调用格式,并确定实参为指向结构体数组的指针变量型。4、“函数定义”的位置要在调用格式之后,所以本题要进行“函数原型说明”。四、实验步骤1、在各函数外定义结构体类型structstu,并且该结构体有3各分量:char[10]name、intage和intscor。2、在主函数内定义结构体数组structstus[3]并为其赋初始值。用p作为指向结构体数组的指针变量,并把结构体数组首地址赋给指针变量p。选择函数调用格式为语句形式,并确定实参为指向结构体数组的指针变量*p。3、用指向结构
(数据要输入时要有提示,要用已学的条件判断结构编写本程序,要看清题目的要求此题有多种编法。
根据所学C语言关于条件判断结构的使用规则、输入/输出函数调用语句的使用格式,
进行相应程序设计训练,可以有多种编法,进行算法比较,巩固已学的基本知识。
1、编写输入函数调用语句及相应提示形式
2、描述符号常量PI的数值
3、编写条件判断结构语句(注意条件嵌套和复合语句的用法)
4、根据对面积的不同判断进行不同的输出处理。
根据不同的输出结果,编写输出函数调用语句及相应提示形式
5、继续巩固C语言程序一般描述格式
2、按要求定义一个int类型变量a。
利用输入函数调用语句分别输入相关数据。
3、使用条件判断if或if…else格式进行判断处理编程。
4、使用输出函数调用语句输出相关值或信息。
#definePI3.14f
floatr1,r2,s1,s2,t;
printf("输入两个半径值:
");
scanf("%f%f",&r1,&r2);
s1=r1*r1*PI;
s2=r2*r2*PI;
if(s1>s2)
{t=s1;s1=s2;s2=t;
printf("面积从小到大输出:
s1=%fs2=%f\n",s1,s2);
elseif(s1{s1=s2;printf("最面积大值:s1=%f\n",s1);}elseprintf("相同面积值:s2=%f\n",s2);return0;}七、实验心得:实验三:多路分支switch语句一、实验题目:运输公司的运费计算,路程越远,吨公里运费越低。根据下表计算出具体单价、货重、路程距离的运费。路程范围(公里)折扣路程<250无250≤路程<5002%500≤路程<10005%1000≤路程<20008%2000≤路程<300010%3000≤路程15%二、实验目的根据所学C语言关于条件判断、多路分支结构的switch语句使用规则,进行相应程序设计训练,熟悉和掌握switch语句相关的使用技巧,巩固已学的基本知识。三、实验内容1、编写输入函数调用语句及相应提示形式2、编写条件判断结构语句,确定switch语句分支标号3、根据标号的设置,进行不同路程计算折扣4、计算具体运费四、实验步骤1、按要求定义float类型变量,运费基价p、货重w、路程s、折扣d。2、使用输入函数调用语句,进行运费基价p、货重w、路程s信息输入。3、根据折扣表中公里为250的倍数这一特征,确定每250设置一switch语句分支标号。4、根据p×w×s×(1-d)公式计算运费。5、使用输出函数调用语句输出相关值或信息。五、实验要求:1、在规定的实验时间内所编程序能得出正确结果,完成实验任务2、所编程序必须具备实现“实验题目”中要求的各程序功能要素3、所编程序必须语句正确、速写规范、逻辑清晰六、实验结果:#includeintmain(){intc,s;floatp,w,d,f;printf("pleaseenterprice,weight,discount:");scanf("%f,%f,%d",&p,&w,&s);if(s>=3000)c=12;elsec=s/250;switch(c){case0:d=0;break;case1:d=2;break;case2:case3:d=5;break;case4:case5:case6:case7:d=8;break;case8:case9:case10:case11:d=10;break;case12:d=15;break;}{f=p*w*s*(1-d/100);printf("freigh=%10.2f\n",f);return0;}七、实验心得: 实验四:for循环语句一、实验题目:在给定学生人数的情况下,逐次输入每个学生的成绩。若成绩<60,则输出“不及格”;若60≤成绩<70,则输出“及格”;若70≤成绩<80,则输出“良好”;若80≤成绩,则输出“优秀”。要求输出各档次成绩所占学生的比率和全部成绩的平均分(0<学生人数≤60)。二、实验目的根据所学C语言关于循环、条件判断结构的使用规则、输入/输出函数调用语句的使用格式,进行相应程序设计训练,可以有多种编法,进行算法比较,巩固已学的基本知识。三、实验内容1、选择合适的语句形式,确定学生的人数(0<人数≤60)2、编写循环结构语句(对所有学生的成绩进行循环处理)3、编写条件判断结构语句,根据输入的成绩,输出“不及格”、“及格”、“良好”、“优秀”。4、进行各档次成绩所占学生的比率和全部成绩的平均分的计算,并且输出。四、实验步骤1、设计while语句,进行学生人数的输入及合理性检查。2、设计for语句,进行对学生成绩的循环性处理。3、使用多路分支判断switch…case语句格式进行分支判断处理编程。4、使用输出函数调用语句输出对各档次成绩的评价。5、选择合适的语句形式进行各档次成绩所占学生的比率和全部成绩的平均分的计算。6、输出函数调用语句输出相关的计算结果。五、实验要求:1、在规定的实验时间内所编程序能得出正确结果,完成实验任务2、所编程序必须具备实现“实验题目”中要求的各程序功能要素3、所编程序必须语句正确、速写规范、逻辑清晰六、实验结果:#includeintmain(){inta=1,b,i,j,s1=0,s2=0,s3=0,s4=0;floatx=0.0;while(a){printf("输入学生人数:");scanf("%d",&j);if(j>0&&j<=60)a=0;}printf("\n");for(i=1;i<=j;i++){printf("\n");printf("输入成绩:");scanf("%d",&a);if(a<0||a>100)j=0;else{b=a/10-5;x=x+a;if(b<=0)b=0;switch(b){case0:s1++;printf("不及格!");break;case1:s2++;printf("及格!");break;case2:s3++;printf("良好!");break;case3:case4:s4++;printf("优秀!");break;}}}printf("\n");printf("学生人数:%d\n",j);a=s1*100/j;printf("不及格率:%d\n",a);a=s2*100/j;printf("及格率:%d\n",a);a=s3*100/j;printf("良好率:%d\n",a);a=s4*100/j;printf("优秀率:%d\n",a);x=x/j;printf("平均成绩:%f\n",x);return0;}七、实验心得:实验五:循环嵌套与一维数组一、实验题目:实现“冒泡”排序。在定义一维数组、长度为10的情况下,逐次输入每个数组元素的值。采用每次将相邻的前一个元素与后一个元素比较。如果前一个元素比后一个元素大,则两两相换。如此,将全数组比较完第1次后就会选出本次的最大值,且存放在数组的底部。长度为10的数组需要比较、选择10次,最终使整个数组的元素值以从小到大的次序摆放,并将该数组值输出。二、实验目的根据所学C语言关于循环、循环嵌套结构的使用规则,进行“冒泡”排序的相应程序设计训练,巩固已学的基本知识。三、实验内容1、定义长度为10的一维数组、编写循环结构语句(逐次输入每个数组元素的值)2、编写循环结构语句(对长度为10的一维数组元素选出本次最大值进行循环处理)3、编写循环结构语句(对长度为10的一维数组元素两两比较进行循环处理)4、输出整个数组的元素值,并将该数组值以从小到大的次序输出。四、实验步骤1、定义一维数组a[10]、用循环语句逐次输入每个数组元素的值。2、以j为逐次选出的当前最大值记数,并以for语句进行0~9次循环。3、以i为一维数组元素逐次两两比较进行循环处理的记数,并以for语句进行0~9-j次循环。5、设置暂存变量t。如果前一个元素比后一个元素大,则利用t进行存储位置的转换。6、对该数组进行“冒泡”排序,使该数组值以从小到大的次序输出。五、实验要求:1、在规定的实验时间内所编程序能得出正确结果,完成实验任务2、所编程序必须具备实现“实验题目”中要求的各程序功能要素3、所编程序必须语句正确、速写规范、逻辑清晰六、实验结果:#includeintmain(){inta[10];inti,j,t;printf("input10numbers:\n");for(i=0;i<10;i++)scanf("%d",&a[i]);printf("\n");for(j=0;j<9;j++)for(i=0;i<9-j;i++)if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}printf("thesortednumbers:\n");for(i=0;i<10;i++)printf("%d",a[i]);printf("\n");return0;}七、实验心得:实验六:函数定义与调用一、实验题目:把“选择排序”程序编成一个自定义函数。即在此函数内为一长度为10的一维数组、元素排序,排序后输出数组内容。函数的形参为数组名(带“[]”)。在主函数内定义一个长度为10的一维数组,并逐次输入每个数组元素的值。在调用“选择排序”函数前先输出数组内容。根据函数类型选择函数调用格式,实参为数组名。调用函数,进行“选择排序”。返回后输出数组内。根据自定义函数的描述位置,进行函数原型说明与否的选择。二、实验目的根据所学C语言关于一维数组、函数定义、函数原型说明、函数调用格式、函数的实(形)参等的使用规则,进行函数的相应程序设计训练,观察、比较三次数组的输出结果,体会函数的“地址传递”与“值传递”的区别与作用,巩固已学的基本知识。三、实验内容1、编写自定义函数的“选择排序”程序。处理长度为10的一维数组,函数的形参为数组名(带“[]”),确定函数类型。2、编写主函数,并在主函数内定义一个长度为10的一维数组,并逐次输入每个数组元素的值。3、根据函数类型选择函数调用格式,并确定实参的数组名。4、根据自定义函数的描述位置,进行函数原型说明与否的选择。四、实验步骤1、把原“选择排序”程序改写成自定义函数sort()。在函数内排序的数组为array[],即函数的形参为数组名array[],排序后输出排序结果数组array[]内容。确定函数类型为void。2、在主函数内定义一个长度为10的一维数组a[],并逐次输入每个数组元素的值。选择函数调用格式为语句形式,并确定实参为数组名a。3、在函数调用前和调用后分别在主函数内输出数组a[]内容。5、观察、比较三次数组的输出结果,体会函数“地址传递”的作用。五、实验要求:1、在规定的实验时间内所编程序能得出正确结果,完成实验任务2、所编程序必须具备实现“实验题目”中要求的各程序功能要素3、所编程序必须语句正确、速写规范、逻辑清晰六、实验结果:#includeintmain(){voidsort(intarray[],intn);inta[10],i;printf("enterarray:\n");for(i=0;i<10;i++)scanf("%d",&a[i]);sort(a,10);printf("Thesortedarray:\n");for(i=0;i<10;i++)printf("%d",a[i]);printf("\n");return0;}voidsort(intarray[],intn){inti,j,k,t;for(i=0;i{k=i;for(j=i+1;jif(array[j]k=j;t=array[k];array[k]=array[i],array[i]=t;}}七、实验心得: 实验七:指针变量作为函数实(形)参一、实验题目:把实验六的“冒泡”排序程序改编成一个自定义函数。即在此函数内为一长度为10的一维数组、元素排序,排序后输出数组内容。函数的形参为指向数组名的指针变量型。在主函数内根据函数类型选择函数调用格式,实参为指向数组名的指针变量型。调用函数,进行“冒泡”排序。返回后输出数组内。根据自定义函数的描述位置,进行函数原型说明与否的选择。二、实验目的根据所学C语言关于一维数组、函数定义、函数原型说明、函数调用格式、指向数组名的指针变量作为函数实(形)参等的使用规则,进行函数的相应程序设计训练,观察指针变量作为函数实(形)参的函数运行结果,体会指针变量作为函数参数的作用,巩固已学的基本知识。三、实验内容1、编写自定义函数的“冒泡”排序程序。处理长度为10的一维数组,函数的形参为指向数组名的指针变量型,确定函数类型。2、编写主函数,并在主函数内定义一个长度为10的一维数组,并逐次输入每个数组元素的值。3、根据函数类型选择函数调用格式,并确定实参为指向数组名的指针变量型。4、由于“函数定义”的位置在调用格式之前,所以本题不进行“函数原型说明”。四、实验步骤1、把原“冒泡”排序程序改写成自定义函数sort()。在函数内用指针变量*x指向排序的排序数组*(x+i),即函数的形参为*x,排序后输出排序结果数组*(x+i)内容。确定函数类型为void。2、在主函数内定义一个长度为10的一维数组a[]和指针变量*p,并把数组首地址赋给指针变量p,再逐次向p输入每个数组元素的值。选择函数调用格式为语句形式,并确定实参为指针变量*p。3、在主函数内:①在函数调用前先输出数组a[]内容;②在调用后输出由指针变量指向的数组内容。5、观察、比较两次数组的输出结果,体会指针变量作为函数参数的作用。五、实验要求:1、在规定的实验时间内所编程序能得出正确结果,完成实验任务2、所编程序必须具备实现“实验题目”中要求的各程序功能要素3、所编程序必须语句正确、速写规范、逻辑清晰六、实验结果:#include#defineM10voidsort(int*x,intn);intmain(){inti,*p,a[M];p=a;printf("输入排序数组元素:\n");for(i=0;iscanf("%d",p++);for(i=0;iprintf("%d",a[i]);p=a;sort(p,M);for(p=a,i=0;i{printf("%d",*p);p++;}printf("\n");return0;}voidsort(int*x,intn){inti,j,k,t;for(i=0;i{k=i;for(j=i+1;jif(*(x+j)>*(x+k))k=j;if(k!=i){t=*(x+i);*(x+i)=*(x+k);*(x+k)=t;}}}七、实验心得:实验八:指向结构体的指针一、实验题目:有一批3个学生的信息,信息的内容是姓名name、年龄age和成绩scor。3个学生的基本信息:①李宏、21岁,85分;②赵磊、19岁,89分;③马凡、22岁,87分;要求:1、算出该批学生的平均年龄(可以自动取整)。2、求出该批学生中最好成绩及其姓名。提示:1、算出平均年龄和最好成绩应在其它两个函数中。2、全题都要用“指向结构体的指针”表示,并且要用指向“->”运算符。二、实验目的根据所学C语言关于结构体类型定义、结构体数组定义、指向结构体的指针、用指向结构体的指针变量作为函数实(形)参等的使用规则,进行结构体的相应程序设计训练,观察指向结构体的指针作为函数参数的函数运行结果,体会指向结构体的指针作为函数参数的作用,巩固已学的基本知识。三、实验内容1、编写自定义类型:结构体类型的定义程序。描述两个函数:平均年龄和最好成绩函数,并确定这些函数的形参为指向结构体的指针变量,确定函数类型。2、编写主函数,并在主函数内定义结构体数组,并为长度为3的一维结构体数组赋初始值。3、根据函数类型选择函数调用格式,并确定实参为指向结构体数组的指针变量型。4、“函数定义”的位置要在调用格式之后,所以本题要进行“函数原型说明”。四、实验步骤1、在各函数外定义结构体类型structstu,并且该结构体有3各分量:char[10]name、intage和intscor。2、在主函数内定义结构体数组structstus[3]并为其赋初始值。用p作为指向结构体数组的指针变量,并把结构体数组首地址赋给指针变量p。选择函数调用格式为语句形式,并确定实参为指向结构体数组的指针变量*p。3、用指向结构
{s1=s2;printf("最面积大值:
s1=%f\n",s1);}
elseprintf("相同面积值:
s2=%f\n",s2);
实验三:
多路分支switch语句
运输公司的运费计算,路程越远,吨公里运费越低。
根据下表计算出具体单价、货重、路程距离的运费。
路程范围(公里)
折扣
路程<250
无
250≤路程<500
2%
500≤路程<1000
5%
1000≤路程<2000
8%
2000≤路程<3000
10%
3000≤路程
15%
根据所学C语言关于条件判断、多路分支结构的switch语句使用规则,进行相应程序
设计训练,熟悉和掌握switch语句相关的使用技巧,巩固已学的基本知识。
2、编写条件判断结构语句,确定switch语句分支标号
3、根据标号的设置,进行不同路程计算折扣
4、计算具体运费
1、按要求定义float类型变量,运费基价p、货重w、路程s、折扣d。
2、使用输入函数调用语句,进行运费基价p、货重w、路程s信息输入。
3、根据折扣表中公里为250的倍数这一特征,确定每250设置一switch语句分支标号。
4、根据p×w×s×(1-d)公式计算运费。
5、使用输出函数调用语句输出相关值或信息。
intc,s;
floatp,w,d,f;
printf("pleaseenterprice,weight,discount:
scanf("%f,%f,%d",&p,&w,&s);
if(s>=3000)c=12;
elsec=s/250;
switch(c)
case0:
d=0;break;
case1:
d=2;break;
case2:
case3:
d=5;break;
case4:
case5:
case6:
case7:
d=8;break;
case8:
case9:
case10:
case11:
d=10;break;
case12:
d=15;break;
f=p*w*s*(1-d/100);
printf("freigh=%10.2f\n",f);
实验四:
for循环语句
在给定学生人数的情况下,逐次输入每个学生的成绩。
若成绩<60,则输出“不及格”;若60≤成绩<70,则输出“及格”;若70≤成绩<80,则输出“良好”;若80≤成绩,则输出“优秀”。
要求输出各档次成绩所占学生的比率和全部成绩的平均分(0<学生人数≤60)。
根据所学C语言关于循环、条件判断结构的使用规则、输入/输出函数调用语句的使用
格式,进行相应程序设计训练,可以有多种编法,进行算法比较,巩固已学的基本知识。
1、选择合适的语句形式,确定学生的人数(0<人数≤60)
2、编写循环结构语句(对所有学生的成绩进行循环处理)
3、编写条件判断结构语句,根据输入的成绩,输出“不及格”、“及格”、“良好”、“优秀”。
4、进行各档次成绩所占学生的比率和全部成绩的平均分的计算,并且输出。
1、设计while语句,进行学生人数的输入及合理性检查。
2、设计for语句,进行对学生成绩的循环性处理。
3、使用多路分支判断switch…case语句格式进行分支判断处理编程。
4、使用输出函数调用语句输出对各档次成绩的评价。
5、选择合适的语句形式进行各档次成绩所占学生的比率和全部成绩的平均分的计算。
6、输出函数调用语句输出相关的计算结果。
inta=1,b,i,j,s1=0,s2=0,s3=0,s4=0;
floatx=0.0;
while(a)
{printf("输入学生人数:
scanf("%d",&j);
if(j>0&&j<=60)a=0;
printf("\n");
for(i=1;i<=j;i++)
{printf("\n");
printf("输入成绩:
scanf("%d",&a);
if(a<0||a>100)j=0;
else
{b=a/10-5;
x=x+a;
if(b<=0)b=0;
switch(b)
{case0:
s1++;printf("不及格!
");break;
s2++;printf("及格!
s3++;printf("良好!
s4++;printf("优秀!
printf("学生人数:
%d\n",j);
a=s1*100/j;printf("不及格率:
%d\n",a);
a=s2*100/j;printf("及格率:
a=s3*100/j;printf("良好率:
a=s4*100/j;printf("优秀率:
x=x/j;printf("平均成绩:
%f\n",x);
实验五:
循环嵌套与一维数组
实现“冒泡”排序。
在定义一维数组、长度为10的情况下,逐次输入每个数组元素的值。
采用每次将相邻的前一个元素与后一个元素比较。
如果前一个元素比后一个元素大,则两两相换。
如此,将全数组比较完第1次后就会选出本次的最大值,且存放在数组的底部。
长度为10的数组需要比较、选择10次,最终使整个数组的元素值以从小到大的次序摆放,并将该数组值输出。
根据所学C语言关于循环、循环嵌套结构的使用规则,进行“冒泡”排序的相应程序设计训练,巩固已学的基本知识。
1、定义长度为10的一维数组、编写循环结构语句(逐次输入每个数组元素的值)
2、编写循环结构语句(对长度为10的一维数组元素选出本次最大值进行循环处理)
3、编写循环结构语句(对长度为10的一维数组元素两两比较进行循环处理)
4、输出整个数组的元素值,并将该数组值以从小到大的次序输出。
1、定义一维数组a[10]、用循环语句逐次输入每个数组元素的值。
2、以j为逐次选出的当前最大值记数,并以for语句进行0~9次循环。
3、以i为一维数组元素逐次两两比较进行循环处理的记数,并以for语句
进行0~9-j次循环。
5、设置暂存变量t。
如果前一个元素比后一个元素大,则利用t进行存储位置的转换。
6、对该数组进行“冒泡”排序,使该数组值以从小到大的次序输出。
inta[10];
inti,j,t;
printf("input10numbers:
\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(j=0;j<9;j++)
for(i=0;i<9-j;i++)
if(a[i]>a[i+1])
{t=a[i];a[i]=a[i+1];a[i+1]=t;}
printf("thesortednumbers:
printf("%d",a[i]);
实验六:
函数定义与调用
把“选择排序”程序编成一个自定义函数。
即在此函数内为一长度为10的一维数组、元素排序,排序后输出数组内容。
函数的形参为数组名(带“[]”)。
在主函数内定义一个长度为10的一维数组,并逐次输入每个数组元素的值。
在调用“选择排序”函数前先输出数组内容。
根据函数类型选择函数调用格式,实参为数组名。
调用函数,进行“选择排序”。
返回后输出数组内。
根据自定义函数的描述位置,进行函数原型说明与否的选择。
根据所学C语言关于一维数组、函数定义、函数原型说明、函数调用格式、函数的实(形)参等的使用规则,进行函数的相应程序设计训练,观察、比较三次数组的输出结果,体会函数的“地址传递”与“值传递”的区别与作用,巩固已学的基本知识。
1、编写自定义函数的“选择排序”程序。
处理长度为10的一维数组,函数的形参为数组名(带“[]”),确定函数类型。
2、编写主函数,并在主函数内定义一个长度为10的一维数组,并逐次输入每个数组元素的值。
3、根据函数类型选择函数调用格式,并确定实参的数组名。
4、根据自定义函数的描述位置,进行函数原型说明与否的选择。
1、把原“选择排序”程序改写成自定义函数sort()。
在函数内排序的数组为array[],即函数的形参为数组名array[],排序后输出排序结果数组array[]内容。
确定函数类型为void。
2、在主函数内定义一个长度为10的一维数组a[],并逐次输入每个数组元素的值。
选择函数调用格式为语句形式,并确定实参为数组名a。
3、在函数调用前和调用后分别在主函数内输出数组a[]内容。
5、观察、比较三次数组的输出结果,体会函数“地址传递”的作用。
{voidsort(intarray[],intn);
inta[10],i;
printf("enterarray:
sort(a,10);
printf("Thesortedarray:
voidsort(intarray[],intn)
{inti,j,k,t;
for(i=0;i{k=i;for(j=i+1;jif(array[j]k=j;t=array[k];array[k]=array[i],array[i]=t;}}七、实验心得: 实验七:指针变量作为函数实(形)参一、实验题目:把实验六的“冒泡”排序程序改编成一个自定义函数。即在此函数内为一长度为10的一维数组、元素排序,排序后输出数组内容。函数的形参为指向数组名的指针变量型。在主函数内根据函数类型选择函数调用格式,实参为指向数组名的指针变量型。调用函数,进行“冒泡”排序。返回后输出数组内。根据自定义函数的描述位置,进行函数原型说明与否的选择。二、实验目的根据所学C语言关于一维数组、函数定义、函数原型说明、函数调用格式、指向数组名的指针变量作为函数实(形)参等的使用规则,进行函数的相应程序设计训练,观察指针变量作为函数实(形)参的函数运行结果,体会指针变量作为函数参数的作用,巩固已学的基本知识。三、实验内容1、编写自定义函数的“冒泡”排序程序。处理长度为10的一维数组,函数的形参为指向数组名的指针变量型,确定函数类型。2、编写主函数,并在主函数内定义一个长度为10的一维数组,并逐次输入每个数组元素的值。3、根据函数类型选择函数调用格式,并确定实参为指向数组名的指针变量型。4、由于“函数定义”的位置在调用格式之前,所以本题不进行“函数原型说明”。四、实验步骤1、把原“冒泡”排序程序改写成自定义函数sort()。在函数内用指针变量*x指向排序的排序数组*(x+i),即函数的形参为*x,排序后输出排序结果数组*(x+i)内容。确定函数类型为void。2、在主函数内定义一个长度为10的一维数组a[]和指针变量*p,并把数组首地址赋给指针变量p,再逐次向p输入每个数组元素的值。选择函数调用格式为语句形式,并确定实参为指针变量*p。3、在主函数内:①在函数调用前先输出数组a[]内容;②在调用后输出由指针变量指向的数组内容。5、观察、比较两次数组的输出结果,体会指针变量作为函数参数的作用。五、实验要求:1、在规定的实验时间内所编程序能得出正确结果,完成实验任务2、所编程序必须具备实现“实验题目”中要求的各程序功能要素3、所编程序必须语句正确、速写规范、逻辑清晰六、实验结果:#include#defineM10voidsort(int*x,intn);intmain(){inti,*p,a[M];p=a;printf("输入排序数组元素:\n");for(i=0;iscanf("%d",p++);for(i=0;iprintf("%d",a[i]);p=a;sort(p,M);for(p=a,i=0;i{printf("%d",*p);p++;}printf("\n");return0;}voidsort(int*x,intn){inti,j,k,t;for(i=0;i{k=i;for(j=i+1;jif(*(x+j)>*(x+k))k=j;if(k!=i){t=*(x+i);*(x+i)=*(x+k);*(x+k)=t;}}}七、实验心得:实验八:指向结构体的指针一、实验题目:有一批3个学生的信息,信息的内容是姓名name、年龄age和成绩scor。3个学生的基本信息:①李宏、21岁,85分;②赵磊、19岁,89分;③马凡、22岁,87分;要求:1、算出该批学生的平均年龄(可以自动取整)。2、求出该批学生中最好成绩及其姓名。提示:1、算出平均年龄和最好成绩应在其它两个函数中。2、全题都要用“指向结构体的指针”表示,并且要用指向“->”运算符。二、实验目的根据所学C语言关于结构体类型定义、结构体数组定义、指向结构体的指针、用指向结构体的指针变量作为函数实(形)参等的使用规则,进行结构体的相应程序设计训练,观察指向结构体的指针作为函数参数的函数运行结果,体会指向结构体的指针作为函数参数的作用,巩固已学的基本知识。三、实验内容1、编写自定义类型:结构体类型的定义程序。描述两个函数:平均年龄和最好成绩函数,并确定这些函数的形参为指向结构体的指针变量,确定函数类型。2、编写主函数,并在主函数内定义结构体数组,并为长度为3的一维结构体数组赋初始值。3、根据函数类型选择函数调用格式,并确定实参为指向结构体数组的指针变量型。4、“函数定义”的位置要在调用格式之后,所以本题要进行“函数原型说明”。四、实验步骤1、在各函数外定义结构体类型structstu,并且该结构体有3各分量:char[10]name、intage和intscor。2、在主函数内定义结构体数组structstus[3]并为其赋初始值。用p作为指向结构体数组的指针变量,并把结构体数组首地址赋给指针变量p。选择函数调用格式为语句形式,并确定实参为指向结构体数组的指针变量*p。3、用指向结构
{k=i;
for(j=i+1;jif(array[j]k=j;t=array[k];array[k]=array[i],array[i]=t;}}七、实验心得: 实验七:指针变量作为函数实(形)参一、实验题目:把实验六的“冒泡”排序程序改编成一个自定义函数。即在此函数内为一长度为10的一维数组、元素排序,排序后输出数组内容。函数的形参为指向数组名的指针变量型。在主函数内根据函数类型选择函数调用格式,实参为指向数组名的指针变量型。调用函数,进行“冒泡”排序。返回后输出数组内。根据自定义函数的描述位置,进行函数原型说明与否的选择。二、实验目的根据所学C语言关于一维数组、函数定义、函数原型说明、函数调用格式、指向数组名的指针变量作为函数实(形)参等的使用规则,进行函数的相应程序设计训练,观察指针变量作为函数实(形)参的函数运行结果,体会指针变量作为函数参数的作用,巩固已学的基本知识。三、实验内容1、编写自定义函数的“冒泡”排序程序。处理长度为10的一维数组,函数的形参为指向数组名的指针变量型,确定函数类型。2、编写主函数,并在主函数内定义一个长度为10的一维数组,并逐次输入每个数组元素的值。3、根据函数类型选择函数调用格式,并确定实参为指向数组名的指针变量型。4、由于“函数定义”的位置在调用格式之前,所以本题不进行“函数原型说明”。四、实验步骤1、把原“冒泡”排序程序改写成自定义函数sort()。在函数内用指针变量*x指向排序的排序数组*(x+i),即函数的形参为*x,排序后输出排序结果数组*(x+i)内容。确定函数类型为void。2、在主函数内定义一个长度为10的一维数组a[]和指针变量*p,并把数组首地址赋给指针变量p,再逐次向p输入每个数组元素的值。选择函数调用格式为语句形式,并确定实参为指针变量*p。3、在主函数内:①在函数调用前先输出数组a[]内容;②在调用后输出由指针变量指向的数组内容。5、观察、比较两次数组的输出结果,体会指针变量作为函数参数的作用。五、实验要求:1、在规定的实验时间内所编程序能得出正确结果,完成实验任务2、所编程序必须具备实现“实验题目”中要求的各程序功能要素3、所编程序必须语句正确、速写规范、逻辑清晰六、实验结果:#include#defineM10voidsort(int*x,intn);intmain(){inti,*p,a[M];p=a;printf("输入排序数组元素:\n");for(i=0;iscanf("%d",p++);for(i=0;iprintf("%d",a[i]);p=a;sort(p,M);for(p=a,i=0;i{printf("%d",*p);p++;}printf("\n");return0;}voidsort(int*x,intn){inti,j,k,t;for(i=0;i{k=i;for(j=i+1;jif(*(x+j)>*(x+k))k=j;if(k!=i){t=*(x+i);*(x+i)=*(x+k);*(x+k)=t;}}}七、实验心得:实验八:指向结构体的指针一、实验题目:有一批3个学生的信息,信息的内容是姓名name、年龄age和成绩scor。3个学生的基本信息:①李宏、21岁,85分;②赵磊、19岁,89分;③马凡、22岁,87分;要求:1、算出该批学生的平均年龄(可以自动取整)。2、求出该批学生中最好成绩及其姓名。提示:1、算出平均年龄和最好成绩应在其它两个函数中。2、全题都要用“指向结构体的指针”表示,并且要用指向“->”运算符。二、实验目的根据所学C语言关于结构体类型定义、结构体数组定义、指向结构体的指针、用指向结构体的指针变量作为函数实(形)参等的使用规则,进行结构体的相应程序设计训练,观察指向结构体的指针作为函数参数的函数运行结果,体会指向结构体的指针作为函数参数的作用,巩固已学的基本知识。三、实验内容1、编写自定义类型:结构体类型的定义程序。描述两个函数:平均年龄和最好成绩函数,并确定这些函数的形参为指向结构体的指针变量,确定函数类型。2、编写主函数,并在主函数内定义结构体数组,并为长度为3的一维结构体数组赋初始值。3、根据函数类型选择函数调用格式,并确定实参为指向结构体数组的指针变量型。4、“函数定义”的位置要在调用格式之后,所以本题要进行“函数原型说明”。四、实验步骤1、在各函数外定义结构体类型structstu,并且该结构体有3各分量:char[10]name、intage和intscor。2、在主函数内定义结构体数组structstus[3]并为其赋初始值。用p作为指向结构体数组的指针变量,并把结构体数组首地址赋给指针变量p。选择函数调用格式为语句形式,并确定实参为指向结构体数组的指针变量*p。3、用指向结构
if(array[j]k=j;t=array[k];array[k]=array[i],array[i]=t;}}七、实验心得: 实验七:指针变量作为函数实(形)参一、实验题目:把实验六的“冒泡”排序程序改编成一个自定义函数。即在此函数内为一长度为10的一维数组、元素排序,排序后输出数组内容。函数的形参为指向数组名的指针变量型。在主函数内根据函数类型选择函数调用格式,实参为指向数组名的指针变量型。调用函数,进行“冒泡”排序。返回后输出数组内。根据自定义函数的描述位置,进行函数原型说明与否的选择。二、实验目的根据所学C语言关于一维数组、函数定义、函数原型说明、函数调用格式、指向数组名的指针变量作为函数实(形)参等的使用规则,进行函数的相应程序设计训练,观察指针变量作为函数实(形)参的函数运行结果,体会指针变量作为函数参数的作用,巩固已学的基本知识。三、实验内容1、编写自定义函数的“冒泡”排序程序。处理长度为10的一维数组,函数的形参为指向数组名的指针变量型,确定函数类型。2、编写主函数,并在主函数内定义一个长度为10的一维数组,并逐次输入每个数组元素的值。3、根据函数类型选择函数调用格式,并确定实参为指向数组名的指针变量型。4、由于“函数定义”的位置在调用格式之前,所以本题不进行“函数原型说明”。四、实验步骤1、把原“冒泡”排序程序改写成自定义函数sort()。在函数内用指针变量*x指向排序的排序数组*(x+i),即函数的形参为*x,排序后输出排序结果数组*(x+i)内容。确定函数类型为void。2、在主函数内定义一个长度为10的一维数组a[]和指针变量*p,并把数组首地址赋给指针变量p,再逐次向p输入每个数组元素的值。选择函数调用格式为语句形式,并确定实参为指针变量*p。3、在主函数内:①在函数调用前先输出数组a[]内容;②在调用后输出由指针变量指向的数组内容。5、观察、比较两次数组的输出结果,体会指针变量作为函数参数的作用。五、实验要求:1、在规定的实验时间内所编程序能得出正确结果,完成实验任务2、所编程序必须具备实现“实验题目”中要求的各程序功能要素3、所编程序必须语句正确、速写规范、逻辑清晰六、实验结果:#include#defineM10voidsort(int*x,intn);intmain(){inti,*p,a[M];p=a;printf("输入排序数组元素:\n");for(i=0;iscanf("%d",p++);for(i=0;iprintf("%d",a[i]);p=a;sort(p,M);for(p=a,i=0;i{printf("%d",*p);p++;}printf("\n");return0;}voidsort(int*x,intn){inti,j,k,t;for(i=0;i{k=i;for(j=i+1;jif(*(x+j)>*(x+k))k=j;if(k!=i){t=*(x+i);*(x+i)=*(x+k);*(x+k)=t;}}}七、实验心得:实验八:指向结构体的指针一、实验题目:有一批3个学生的信息,信息的内容是姓名name、年龄age和成绩scor。3个学生的基本信息:①李宏、21岁,85分;②赵磊、19岁,89分;③马凡、22岁,87分;要求:1、算出该批学生的平均年龄(可以自动取整)。2、求出该批学生中最好成绩及其姓名。提示:1、算出平均年龄和最好成绩应在其它两个函数中。2、全题都要用“指向结构体的指针”表示,并且要用指向“->”运算符。二、实验目的根据所学C语言关于结构体类型定义、结构体数组定义、指向结构体的指针、用指向结构体的指针变量作为函数实(形)参等的使用规则,进行结构体的相应程序设计训练,观察指向结构体的指针作为函数参数的函数运行结果,体会指向结构体的指针作为函数参数的作用,巩固已学的基本知识。三、实验内容1、编写自定义类型:结构体类型的定义程序。描述两个函数:平均年龄和最好成绩函数,并确定这些函数的形参为指向结构体的指针变量,确定函数类型。2、编写主函数,并在主函数内定义结构体数组,并为长度为3的一维结构体数组赋初始值。3、根据函数类型选择函数调用格式,并确定实参为指向结构体数组的指针变量型。4、“函数定义”的位置要在调用格式之后,所以本题要进行“函数原型说明”。四、实验步骤1、在各函数外定义结构体类型structstu,并且该结构体有3各分量:char[10]name、intage和intscor。2、在主函数内定义结构体数组structstus[3]并为其赋初始值。用p作为指向结构体数组的指针变量,并把结构体数组首地址赋给指针变量p。选择函数调用格式为语句形式,并确定实参为指向结构体数组的指针变量*p。3、用指向结构
k=j;
t=array[k];array[k]=array[i],array[i]=t;
实验七:
指针变量作为函数实(形)参
把实验六的“冒泡”排序程序改编成一个自定义函数。
函数的形参为指向数组名的指针变量型。
在主函数内根据函数类型选择函数调用格式,实参为指向数组名的指针变量型。
调用函数,进行“冒泡”排序。
根据所学C语言关于一维数组、函数定义、函数原型说明、函数调用格式、指向数组名的指针变量作为函数实(形)参等的使用规则,进行函数的相应程序设计训练,观察指针变量作为函数实(形)参的函数运行结果,体会指针变量作为函数参数的作用,巩固已学的基本知识。
1、编写自定义函数的“冒泡”排序程序。
处理长度为10的一维数组,函数的形参为指向数组名的指针变量型,确定函数类型。
3、根据函数类型选择函数调用格式,并确定实参为指向数组名的指针变量型。
4、由于“函数定义”的位置在调用格式之前,所以本题不进行“函数原型说明”。
1、把原“冒泡”排序程序改写成自定义函数sort()。
在函数内用指针变量*x指向排序的排序数组*(x+i),即函数的形参为*x,排序后输出排序结果数组*(x+i)内容。
2、在主函数内定义一个长度为10的一维数组a[]和指针变量*p,并把数组首地址赋给指针变量p,再逐次向p输入每个数组元素的值。
选择函数调用格式为语句形式,并确定实参为指针变量*p。
3、在主函数内:
①在函数调用前先输出数组a[]内容;②在调用后输出由指针变量指向的数组内容。
5、观察、比较两次数组的输出结果,体会指针变量作为函数参数的作用。
#defineM10
voidsort(int*x,intn);
{inti,*p,a[M];
p=a;
printf("输入排序数组元素:
for(i=0;iscanf("%d",p++);for(i=0;iprintf("%d",a[i]);p=a;sort(p,M);for(p=a,i=0;i{printf("%d",*p);p++;}printf("\n");return0;}voidsort(int*x,intn){inti,j,k,t;for(i=0;i{k=i;for(j=i+1;jif(*(x+j)>*(x+k))k=j;if(k!=i){t=*(x+i);*(x+i)=*(x+k);*(x+k)=t;}}}七、实验心得:实验八:指向结构体的指针一、实验题目:有一批3个学生的信息,信息的内容是姓名name、年龄age和成绩scor。3个学生的基本信息:①李宏、21岁,85分;②赵磊、19岁,89分;③马凡、22岁,87分;要求:1、算出该批学生的平均年龄(可以自动取整)。2、求出该批学生中最好成绩及其姓名。提示:1、算出平均年龄和最好成绩应在其它两个函数中。2、全题都要用“指向结构体的指针”表示,并且要用指向“->”运算符。二、实验目的根据所学C语言关于结构体类型定义、结构体数组定义、指向结构体的指针、用指向结构体的指针变量作为函数实(形)参等的使用规则,进行结构体的相应程序设计训练,观察指向结构体的指针作为函数参数的函数运行结果,体会指向结构体的指针作为函数参数的作用,巩固已学的基本知识。三、实验内容1、编写自定义类型:结构体类型的定义程序。描述两个函数:平均年龄和最好成绩函数,并确定这些函数的形参为指向结构体的指针变量,确定函数类型。2、编写主函数,并在主函数内定义结构体数组,并为长度为3的一维结构体数组赋初始值。3、根据函数类型选择函数调用格式,并确定实参为指向结构体数组的指针变量型。4、“函数定义”的位置要在调用格式之后,所以本题要进行“函数原型说明”。四、实验步骤1、在各函数外定义结构体类型structstu,并且该结构体有3各分量:char[10]name、intage和intscor。2、在主函数内定义结构体数组structstus[3]并为其赋初始值。用p作为指向结构体数组的指针变量,并把结构体数组首地址赋给指针变量p。选择函数调用格式为语句形式,并确定实参为指向结构体数组的指针变量*p。3、用指向结构
scanf("%d",p++);
for(i=0;iprintf("%d",a[i]);p=a;sort(p,M);for(p=a,i=0;i{printf("%d",*p);p++;}printf("\n");return0;}voidsort(int*x,intn){inti,j,k,t;for(i=0;i{k=i;for(j=i+1;jif(*(x+j)>*(x+k))k=j;if(k!=i){t=*(x+i);*(x+i)=*(x+k);*(x+k)=t;}}}七、实验心得:实验八:指向结构体的指针一、实验题目:有一批3个学生的信息,信息的内容是姓名name、年龄age和成绩scor。3个学生的基本信息:①李宏、21岁,85分;②赵磊、19岁,89分;③马凡、22岁,87分;要求:1、算出该批学生的平均年龄(可以自动取整)。2、求出该批学生中最好成绩及其姓名。提示:1、算出平均年龄和最好成绩应在其它两个函数中。2、全题都要用“指向结构体的指针”表示,并且要用指向“->”运算符。二、实验目的根据所学C语言关于结构体类型定义、结构体数组定义、指向结构体的指针、用指向结构体的指针变量作为函数实(形)参等的使用规则,进行结构体的相应程序设计训练,观察指向结构体的指针作为函数参数的函数运行结果,体会指向结构体的指针作为函数参数的作用,巩固已学的基本知识。三、实验内容1、编写自定义类型:结构体类型的定义程序。描述两个函数:平均年龄和最好成绩函数,并确定这些函数的形参为指向结构体的指针变量,确定函数类型。2、编写主函数,并在主函数内定义结构体数组,并为长度为3的一维结构体数组赋初始值。3、根据函数类型选择函数调用格式,并确定实参为指向结构体数组的指针变量型。4、“函数定义”的位置要在调用格式之后,所以本题要进行“函数原型说明”。四、实验步骤1、在各函数外定义结构体类型structstu,并且该结构体有3各分量:char[10]name、intage和intscor。2、在主函数内定义结构体数组structstus[3]并为其赋初始值。用p作为指向结构体数组的指针变量,并把结构体数组首地址赋给指针变量p。选择函数调用格式为语句形式,并确定实参为指向结构体数组的指针变量*p。3、用指向结构
sort(p,M);
for(p=a,i=0;i{printf("%d",*p);p++;}printf("\n");return0;}voidsort(int*x,intn){inti,j,k,t;for(i=0;i{k=i;for(j=i+1;jif(*(x+j)>*(x+k))k=j;if(k!=i){t=*(x+i);*(x+i)=*(x+k);*(x+k)=t;}}}七、实验心得:实验八:指向结构体的指针一、实验题目:有一批3个学生的信息,信息的内容是姓名name、年龄age和成绩scor。3个学生的基本信息:①李宏、21岁,85分;②赵磊、19岁,89分;③马凡、22岁,87分;要求:1、算出该批学生的平均年龄(可以自动取整)。2、求出该批学生中最好成绩及其姓名。提示:1、算出平均年龄和最好成绩应在其它两个函数中。2、全题都要用“指向结构体的指针”表示,并且要用指向“->”运算符。二、实验目的根据所学C语言关于结构体类型定义、结构体数组定义、指向结构体的指针、用指向结构体的指针变量作为函数实(形)参等的使用规则,进行结构体的相应程序设计训练,观察指向结构体的指针作为函数参数的函数运行结果,体会指向结构体的指针作为函数参数的作用,巩固已学的基本知识。三、实验内容1、编写自定义类型:结构体类型的定义程序。描述两个函数:平均年龄和最好成绩函数,并确定这些函数的形参为指向结构体的指针变量,确定函数类型。2、编写主函数,并在主函数内定义结构体数组,并为长度为3的一维结构体数组赋初始值。3、根据函数类型选择函数调用格式,并确定实参为指向结构体数组的指针变量型。4、“函数定义”的位置要在调用格式之后,所以本题要进行“函数原型说明”。四、实验步骤1、在各函数外定义结构体类型structstu,并且该结构体有3各分量:char[10]name、intage和intscor。2、在主函数内定义结构体数组structstus[3]并为其赋初始值。用p作为指向结构体数组的指针变量,并把结构体数组首地址赋给指针变量p。选择函数调用格式为语句形式,并确定实参为指向结构体数组的指针变量*p。3、用指向结构
{printf("%d",*p);
p++;
voidsort(int*x,intn)
for(i=0;i{k=i;for(j=i+1;jif(*(x+j)>*(x+k))k=j;if(k!=i){t=*(x+i);*(x+i)=*(x+k);*(x+k)=t;}}}七、实验心得:实验八:指向结构体的指针一、实验题目:有一批3个学生的信息,信息的内容是姓名name、年龄age和成绩scor。3个学生的基本信息:①李宏、21岁,85分;②赵磊、19岁,89分;③马凡、22岁,87分;要求:1、算出该批学生的平均年龄(可以自动取整)。2、求出该批学生中最好成绩及其姓名。提示:1、算出平均年龄和最好成绩应在其它两个函数中。2、全题都要用“指向结构体的指针”表示,并且要用指向“->”运算符。二、实验目的根据所学C语言关于结构体类型定义、结构体数组定义、指向结构体的指针、用指向结构体的指针变量作为函数实(形)参等的使用规则,进行结构体的相应程序设计训练,观察指向结构体的指针作为函数参数的函数运行结果,体会指向结构体的指针作为函数参数的作用,巩固已学的基本知识。三、实验内容1、编写自定义类型:结构体类型的定义程序。描述两个函数:平均年龄和最好成绩函数,并确定这些函数的形参为指向结构体的指针变量,确定函数类型。2、编写主函数,并在主函数内定义结构体数组,并为长度为3的一维结构体数组赋初始值。3、根据函数类型选择函数调用格式,并确定实参为指向结构体数组的指针变量型。4、“函数定义”的位置要在调用格式之后,所以本题要进行“函数原型说明”。四、实验步骤1、在各函数外定义结构体类型structstu,并且该结构体有3各分量:char[10]name、intage和intscor。2、在主函数内定义结构体数组structstus[3]并为其赋初始值。用p作为指向结构体数组的指针变量,并把结构体数组首地址赋给指针变量p。选择函数调用格式为语句形式,并确定实参为指向结构体数组的指针变量*p。3、用指向结构
for(j=i+1;jif(*(x+j)>*(x+k))k=j;if(k!=i){t=*(x+i);*(x+i)=*(x+k);*(x+k)=t;}}}七、实验心得:实验八:指向结构体的指针一、实验题目:有一批3个学生的信息,信息的内容是姓名name、年龄age和成绩scor。3个学生的基本信息:①李宏、21岁,85分;②赵磊、19岁,89分;③马凡、22岁,87分;要求:1、算出该批学生的平均年龄(可以自动取整)。2、求出该批学生中最好成绩及其姓名。提示:1、算出平均年龄和最好成绩应在其它两个函数中。2、全题都要用“指向结构体的指针”表示,并且要用指向“->”运算符。二、实验目的根据所学C语言关于结构体类型定义、结构体数组定义、指向结构体的指针、用指向结构体的指针变量作为函数实(形)参等的使用规则,进行结构体的相应程序设计训练,观察指向结构体的指针作为函数参数的函数运行结果,体会指向结构体的指针作为函数参数的作用,巩固已学的基本知识。三、实验内容1、编写自定义类型:结构体类型的定义程序。描述两个函数:平均年龄和最好成绩函数,并确定这些函数的形参为指向结构体的指针变量,确定函数类型。2、编写主函数,并在主函数内定义结构体数组,并为长度为3的一维结构体数组赋初始值。3、根据函数类型选择函数调用格式,并确定实参为指向结构体数组的指针变量型。4、“函数定义”的位置要在调用格式之后,所以本题要进行“函数原型说明”。四、实验步骤1、在各函数外定义结构体类型structstu,并且该结构体有3各分量:char[10]name、intage和intscor。2、在主函数内定义结构体数组structstus[3]并为其赋初始值。用p作为指向结构体数组的指针变量,并把结构体数组首地址赋给指针变量p。选择函数调用格式为语句形式,并确定实参为指向结构体数组的指针变量*p。3、用指向结构
if(*(x+j)>*(x+k))k=j;
if(k!
=i)
{t=*(x+i);*(x+i)=*(x+k);*(x+k)=t;}
实验八:
指向结构体的指针
有一批3个学生的信息,信息的内容是姓名name、年龄age和成绩scor。
3个学生的基本信息:
①李宏、21岁,85分;②赵磊、19岁,89分;③马凡、22岁,87分;
要求:
1、算出该批学生的平均年龄(可以自动取整)。
2、求出该批学生中最好成绩及其姓名。
提示:
1、算出平均年龄和最好成绩应在其它两个函数中。
2、全题都要用“指向结构体的指针”表示,并且要用指向“->”运算符。
根据所学C语言关于结构体类型定义、结构体数组定义、指向结构体的指针、用指向结构体的指针变量作为函数实(形)参等的使用规则,进行结构体的相应程序设计训练,观察指向结构体的指针作为函数参数的函数运行结果,体会指向结构体的指针作为函数参数的作用,巩固已学的基本知识。
1、编写自定义类型:
结构体类型的定义程序。
描述两个函数:
平均年龄和最好成绩函数,并确定这些函数的形参为指向结构体的指针变量,确定函数类型。
2、编写主函数,并在主函数内定义结构体数组,并为长度为3的一维结构体数组赋初始值。
3、根据函数类型选择函数调用格式,并确定实参为指向结构体数组的指针变量型。
4、“函数定义”的位置要在调用格式之后,所以本题要进行“函数原型说明”。
1、在各函数外定义结构体类型structstu,并且该结构体有3各分量:
char[10]name、intage和intscor。
2、在主函数内定义结构体数组structstus[3]并为其赋初始值。
用p作为指向结构体数组的指针变量,并把结构体数组首地址赋给指针变量p。
选择函数调用格式为语句形式,并确定实参为指向结构体数组的指针变量*p。
3、用指向结构
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1