级软件工程程序设计机场实验报.docx
- 文档编号:9690586
- 上传时间:2023-05-20
- 格式:DOCX
- 页数:22
- 大小:39.84KB
级软件工程程序设计机场实验报.docx
《级软件工程程序设计机场实验报.docx》由会员分享,可在线阅读,更多相关《级软件工程程序设计机场实验报.docx(22页珍藏版)》请在冰点文库上搜索。
级软件工程程序设计机场实验报
《程序设计基础》(c语言)实践报告
专业:
班级:
姓名:
学号:
教师:
《程序设计基础》(c语言)课程组
教师寄语
课程简介
《程序设计基础》是计算机相关专业的专业基础课,其目的是为了培养学生程序设计的技能,使学生掌握程序设计的基本思想和方法,培养学生用计算机解决实际问题的能力。
该课程是后续理论和实践教学的基础和重要工具,将直接影响到专业兴趣的培养,后续专业课程教学内容的实施。
课程内容
本课程教学的主要内容包括:
1、程序与程序设计的基本概念;算法与算法的表示;结构化程序设计方法等。
2、C语言的基本组成,C程序的基本结构;C程序的上机过程;C语言的数据类型和各类运算规则。
3、顺序程序设计;选择结构程序设计;循环控制;函数;指针;结构体和文件等。
4、C程序的模块化结构;函数的定义与调用,包括函数的递归调用;变量存储属性;工程文件的建立和使用;编译预处理;库函数简介;文件的概念;文件的建立、打开与关闭;各种文件的读写方法。
补充说明
1、本课程作为一种与计算机“沟通”的语言工具,在某种程度上讲,和普通话、英语有一些类似。
对初学者而言,最好的学习方式就是在基本的语法规则框架下,不断的模仿和重复训练,最畏惧和担心的就是灵活与多变。
只有不畏惧,才能敢模仿,敢写、敢调试。
才能避免掉入语法漩涡止步不前。
2、课程共设8个单元,对于每个单元的实践内容,按照基础训练和差异化训练相结合的思想,设置了多道编程题目,同学们在每个单元可以根据实际情况,可选做3道,鼓励在有精力的情况下尽可能多练习。
3、课程的源码可以手写也可以打印出来粘贴,对程序运行结果打印粘贴。
4、单元内容即是平时基本功的训练,也可当做理论考试的复习。
实验1顺序结构程序设计
一、实验目的
1.熟悉C语言的编程环境,掌握C程序运行的一般步骤;
2.掌握C语言中数据的输入输出方法,常用输入/输出函数的使用;
3.掌握顺序结构程序设计方法,能编写简单的C程序;
二、实验内容
1、编写程序,输入一个四位数,打印输出其个位数、十位数、百位数和千位数。
2、编写程序,从键盘上输入两个电阻的值,求它们并联和串连的电阻值,输出结果保留两位小数。
3、编写一个程序,从键盘上输入学生的三门课程成绩,求总成绩和平均成绩。
4、输入一元二次方程的三个系数,求根。
5、输入三角形的三个边长a,b,c,输出面积s。
6、打印520
+1314
1834*10
三、实验源码及测试数据
1.#include
#include
main()
{
inta;
scanf("%d",&a);
if(a>=10000||a<1000)
printf("error\n");
else
printf("qian=%d\n",a/1000);
printf("bai=%d\n",a%1000/100);
printf("shi=%d\n",a%100/10);
printf("ge=%d\n",a%10/1);
}
2.#include
#include
main()
{
floatr1,r2,R1,R2;
scanf("%f,%f",r1,r2);
R1=r1+r2;
R2=(r1*r2)/(r1+r2);
printf("chuan=%.2f,bing=%.2f",R1,R2);
}
3.#include
main()
{
floata,b,c;
floats,x;
scanf("%f,%f,%f",&a,&b,&c);
s=a+b+c;
x=s/3;
printf("s=%f,x=%f",s,x);
}
4.#include
#include
main()
{
floata,b,c;
floaty1,y2;
scanf("%f,%f,%f",&a,&b,&c);
y1=(-b+sqrt(b*b-4*a*c))/(2*a);
y2=(-b-sqrt(b*b-4*a*c))/(2*a);
printf("y1=%f,y2=%f",y1,y2);
}
5.#include
#include
main()
{
doublea,b,c;
doubles,p;
scanf("%lf,%lf,%lf",&a,&b,&c);
p=(a+b+c)/2;
s=sqrt(p*(p-a)*(p-b)*(p-c));
printf("%lf",s);
}
6.#include
main()
{
inti,j;
printf("520\n");
printf("+1314\n");
printf("1834*10\n");
}
四、调试运行结果
五、实验体会
实验2选择结构程序设计
一、实验目的
1、了解C语言表示逻辑量的方法(以0代表“假”,以非0代表“真”)。
2、学会正确使用逻辑运算符和逻辑表达式。
3、熟练掌握if语句和switch语句。
4、结合程序掌握一些简单的算法。
二、实验内容
1.有一个函数
用scanf函数输入x的值(分别为x<1、1~10、≥10三种情况),求y值。
2、输入3个整数,要求按由小到大的顺序输出。
3、根据输入的三角形的三边判断是否能组成三角形,若可以则输出它的面积。
4、有y=ax*x+bx+c,输入a,b,c。
当a=0,b=0时,输出不是方程。
当a=0,b≠0时,输出是一元一次方程,x=-c/b。
当a≠0,△>0,输出方程X1,X2的解。
当a≠0,△<0,输出无实根。
5、键盘输入一个至多五位数,判断它是几位数,并将该数逆序输出。
例:
输入1456,输出结果是:
四位数,逆序后:
6541。
7、编写程序,要求从键盘输入成绩,输出对应的等级(100分为A,90-99为B,80-89为C,70-79为D,60-69为E,小于60为F)。
8、设计一个简单的计算机程序,用户输入运算数和四则运算符(+、-、*、/),输出计算结果。
三、实验源码及测试数据
1.#include
main()
{floatx,y;
scanf("%f",&x);
if(x<1)
y=x;
else
if(x>=1&&x<10)
y=2*x-1;
else
y=3*x-11;
printf("%f",y);
}
2.#include
main()
{
inta[3];
inti,j,t;
for(i=0;i<3;i++)
scanf("%d",&a[i]);
for(j=0;j<3;j++)
{
for(i=0;i<3-j;i++)
{
if(a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
}
}
for(i=0;i<3;i++)
printf("%d\n",a[i]);
}
3.#include
main()
{
floata,b,c;
floats,p;
scanf("%f%f%f",&a,&b,&c);
p=(a+b+c)/2;
if(a>b&&a>c)
{
if(b+c>a)
{
s=sqrt(p*(p-a)*(p-b)*(p-c))/2;
printf("%f\n",s);
}
}
if(b>a&&b>c)
{
if(a+c>b)
{
s=sqrt(p*(p-a)*(p-b)*(p-c))/2;
printf("%f\n",s);
}
}
if(c>a&&c>b)
{
if(a+b>c)
{
s=sqrt(p*(p-a)*(p-b)*(p-c))/2;
printf("%f\n",s);
}
}
else
{
printf("error\n");
}
}
4.#include
main()
{
floata,b,c;
floatx,x1,x2,delta;
scanf("%f%f%f",&a,&b,&c);
delta=b*b-4*a*c;
if(a==0&&b==0)
{
printf("不是方程\n");
}
elseif(a==0&&b!
=0)
{
printf("一元一次方程\n");
x=(-c)/b;
printf("%f",x);
}
elseif(a!
=0&&delta>0)
{
x1=(-b+sqrt(delta))/(2*a);
x2=(-b-sqrt(delta))/(2*a);
printf("%2f,%2f",x1,x2);
}
elseif(a!
=0&delta<0)
{
printf("无实根\n");
}
}
5.#include
main()
{
inti,y;
longs;
longa[5];
scanf("%d",&s);
a[0]=s/10000;
a[1]=(s-a[0]*10000)/1000;
a[2]=(s-a[0]*10000-a[1]*1000)/100;
a[3]=(s-a[0]*10000-a[1]*1000-a[2]*100)/10;
a[4]=s-a[0]*10000-a[1]*1000-a[2]*100-a[3]*10;
if(s>=10000&&s<100000)
printf("五位数");
if(s>=1000&&s<10000)
printf("四位数");
if(s>=100&&s<1000)
printf("三位数");
if(s>=10&&s<100)
printf("二位数");
if(s>=0&&s<10)
printf("一位数");
printf("\n");
y=a[0]+a[1]*10+a[2]*100+a[3]*1000+a[4]*10000;
printf("逆序=%d\n",y);
}
四、调试运行结果
四、实验心得体会
实验3循环结构程序设计
一、实验目的
1、掌握用while语句,do-while语句和for语句实现循环的方法。
2、掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。
3、调试程序的技巧。
二、实验内容
1、输入一行字符,分别统计出其中的英文字母、空格、数字和其它字符的个数。
2、猴子吃桃问题。
猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。
第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
以后每天早上都吃了前一天剩下的一半零一个。
到第10天早上想再吃时,见只剩一个桃子了。
求第一天共摘了多少桃子。
3、用for语句求1到100中是3的倍数的数的和。
n2k2
4、求∑2j^2+∑i!
(-1)^i
j=n1i=k1其中n1、n2键盘输入,输错重输(如:
n1>n2),k1>k2同上。
100
5、求∑n!
+(n^3-3n^2+2)(-1)^n
n=1
6、找出5000以内所有完数。
完数:
一个数是它所有的因子的和。
7、任意输入10个数,分别算出其中负数和正数的个数。
8、.键盘输入字符串,遇‘#’结束,分别统计字母、数字和其它字符个数。
9、计算1-100内所有含有6的数的和。
10、输出所有3位水仙花数。
所谓水仙花数是指所有位的数字的立方和等于该数。
例:
153=1^3+5^3+3^3。
b
11、梯形法求数值积分。
F(x)=∫(4-X*X)^0.5dx。
a
12、用二分法求3X^3+2X^2-4X=6的解。
13、用牛顿迭代法求3X^3+2X^2-4X=6的解。
14、利用循环嵌套,输出九九乘法表。
123456789
123456789
246810……
15、观察数列,输出其前20项,每4个数一行,每个数占8列。
2,2,4,4,6,16,8…
16、编写程序输出下面图形。
1
23
456
7890
三、实验源码及测试数据
四、调试运行结果
五、实验心得体会
实验4数组
一、实验目的
1、掌握一维数组和二维数组的定义、赋值和输入输出的方法;
2、掌握字符数组和字符串函数的使用;
3、掌握与数组有关的算法(特别是排序算法)。
二、实验内容
1、用冒泡排序法对10个整数排序。
10个整数用scanf函数输入。
2、有15个数存放在一个数组中,输入一个数,要求查找该数是数组中第几个元素的值。
如果该数不在数组中,则输出“无此数”。
3、将两个字符串连接起来,不要用strcat函数。
4、编写程序输出下面矩阵:
12345
23451
34512
45123
51234
5、输入10个数,逆序输出(折半)。
6、键盘输入7个评委对选手的打分,去掉最高分,去掉最低分,输出平均分,要求左对齐,保留到小数点后两位。
7、对某同学的作业记录作处理,输入作业每题的批改结果(对或错),遇#号结束,输出错题的题号。
8、键盘读入7个选手的编号与得分,要求输出优秀率(>=90),及格率(>=60),和平均分。
输出排行榜(编号+成绩)。
9、输入一个矩阵,找出所在行上最大,列上最小的数。
(可能没有)
10、读入下列数字存放在数组a[5][4]中,分别求各行、各列元素之和。
将结果补在最后1行和最后1列后,输出整个矩阵。
1246_
8233_
1579_
2517_
____
11、键盘输入7个评委对7个选手的打分,算出平均分,要求去掉最低分,最高分,输出成绩排行榜。
12、输入某游戏大赛10个队伍的名称(以字符串:
如goodgoodstudy),队伍过关数(整数),耗时数(如:
90分钟)。
输出排行榜(包括过关数、耗时,队伍名称)。
排行规则:
①先以过关数为标准。
②过关数一样的以时间为标准。
③过关数、时间一样的以队伍名称的首字母为标准。
三、实验源码及测试数据
四、调试运行结果
五、实验心得体会
实验5函数
一、实验目的
1、掌握定义函数的方法;
2、掌握函数实参与形参的对应关系以及“值传递”的方式;
3、掌握函数的嵌套调用和递归调用的方法;
4、掌握全局变量和局部变量动态变量、静态变量的概念和使用方法。
二、实验内容
1、编写三个函数分别求某学生三门课程总成绩和平均成绩和及格率。
2、用一个函数来实现将一行字符串中最长的单词输出。
此行字符串从主函数传递给该函数.
3、用递归法将一个整数n转换成字符串。
例如,输入483,应输出字符串“483”。
n的位数不确定,可以是任意的整数。
4、输入三个字符串,按由小到大的顺序输出这些字符串。
要求,对于三个字符串进行两两比较,将最小的串放在str1中,将最大的串放在str3中。
设计一个函数,对两个字符串进行交换。
提示:
使用strcmp(str1,str2)函数。
5、已知abc+bcc=1333,其中a、b、c均为一位整数,编写一个函数,求出a、b、c分别代表什么数字。
6、编写一个程序,包括主函数和如下子函数。
(1)输入10个无序的整数;
(2)用起泡方法从大到小排序;(3)要求输入一个整数,用折半查找法找出该数,若存在,在主函数中输出其所处的位置,否则,插入适当位置。
7、定义一个函数,功能是计算n个学生的成绩中,高于平均成绩的人数,并作为函数值。
用主函数来调用它,统计50个学生成绩中,高于平均成绩的有多少人?
8、编写函数
n2k2
求∑2j^2+∑i!
(-1)^i
j=n1i=k1
9、写函数实现2分法求方程
的根
10、写函数求求5000以内的完数。
11、写函数求输出数列2、2、4、4、6、16、8…前20项。
12、求函数1n=0
Hn=x
-2x+7n=1
hn-1(x)*(x^3+2)+hn-2(x)*(x^2-7x)。
n>1
13、比较数组a和数组b,得出a中的数(每一个)比b中的几个数大,并输出。
14、投票选班长,5个候选人,10个人每人投一票,输入投票结果,输出每个候选人的得票数。
三、实验源码及测试数据
四、调试运行结果
五、实验心得体会
实验6指针
一、实验目的
1、掌握指针的概念、会定义和使用指针变量
2、掌握指向数组的指针变量
3、掌握字符串指针的使用
二、实验内容
1、用指针实现,输入3个数,按从小到大输出。
2、编一个程序,打入月份号,输出该月的英文月名,要求用指针数组处理。
3、编写递归函数,将输入的以“?
”结束的字符串按与输入相反的顺序输出。
4、编写函数,在n个元素的一维数组中,统计比相邻元素大的数组元素个数并将统计数返回(不考虑a[0]和a[n-1]),要求以指针变量作函数参数。
5、用指向指针的指针的方法对5个字符串进行排序。
6、用指针的方式实现,3×3矩阵转置。
7、设有一个单项链表,现欲将其倒置,试编写一函数实现此功能
三、实验源码及测试数据
四、调试运行结果
五、实验心得体会
实验7结构体和共用体
一、实验目的
1、掌握C语言中的变量、数组、函数、指针、结构体等主要知识点。
2、掌握C程序的结构化程序设计方法,能使用C语言开发简单的应用程序。
3、掌握C程序的运行、调试方法等。
二、实验内容
1、定义一个结构体变量,其成员包括:
职工号、职工名、性别、年龄、工龄、工资、地址。
2、对上述定义的变量,从键盘输入所需的具体数据,然后用printf函数打印出来。
3、按上述的结构体类型定义一个结构体数组,从键盘输入每个结构体元素所需的数据,然后逐个输出这些元素的数据(为简化起见,可设数组只有三个元素)。
4、建立一个包括学生姓名,性别,年龄,一门课成绩的结构体,输出考分最高的学生个人信息。
5、一个45人班级有两门课,求所有成绩中的最高成绩,及对应的姓名,学号课程编号,分别求两门课的平均成绩,并找出两门课都低于平均分的学生信息,按1课程成绩从高到低排序。
6、已知一个无符号的整数占4个字节内存,现欲从低位存储地址开始,将其每个字节作为单独的一个ASCII码字符输出,使用共用体实现上述转换
三、实验源码及测试数据
四、调试运行结果
五、实验心得体会
实验8文件
一、实验目的
1.掌握文件以及缓冲文件系统、文件指针的概念;
2.学会使用文件打开、关闭、读、写等文件操作函数。
3.学会用缓冲文件系统对文件进行简单的操作。
二、实验内容
编程序并上机调试运行:
1、编程序求100以内的素数,分别将它输出到显示器和x.txt文件中,要求每行5个数。
2、有5个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学号、姓名、3门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件stud中。
设5名学生的学号、姓名和3门课成绩如下:
99101Wang89,98,67.5
99103Li60,80,90
99106Fun75.5,91.5,99
99110Ling100,50,62.5
99113Yuan58,68,7l
在向文件stud写入数据后,应检查验证stud文件中的内容是否正确。
3、将上题stud文件中的学生数据,按平均分进行排序(由高到低)处理,将已排序的学生数据存入一个新文件stu_sort中.
在向文件stu_sort写入数据后,应检查验证stu_sort文件中的内容是否正确。
4、对上题已排序的学生成绩文件进行插入处理,插入一个学生的3门课成绩。
程序先计算新插入学生的平均成绩,然后将它按成绩高低顺序插入,插入后建立一个新文件。
(BX12.7)
要插入的学生数据为:
99108Xin90,95,60
在向新文件stu_new写入数据后,应检查验证stu_new文件中的内容是否正确。
三、实验代码及测试数据
四、调试运行结果
五、实验心得体会
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 程序设计 机场 实验