C语言程序设计实验报告
更新时间:2023-10-25 00:47:01 阅读量: 综合文库 文档下载
C语言程序设计实验报告
学院 数学与信息技术 班级 11软工转本1 学号 11130730 姓名 史 稳 瑶 指导教师 田 丰 春
实验1 简单程序设计
1. 实验目的
(1) 熟悉C语言开发环境并掌握在该环境下如何编辑、编译、连接和运行一个C程序。 (2) 通过运行一个简单的C程序过程,初步了解C程序的基本结构及特点。
2. 实验要求
(1) 认真阅读和掌握和本实验相关的教材内容。
(2) 输入三个整数,请把这三个数由小到大输出。试编写多种方法。 (3) 上机运行程序。
(4) 保存和打印出程序的运行结果,并结合程序进行分析。
3.实验重点和难点
(1) C程序是由一个个函数构成,当一个函数调用另一个函数时,需要对被调函数作声明。 (2) 用户自定以的函数最好写在一个头文件中,在需要的地方用文件包含命令即可。
(3) system(“cls”)函数的作用是清屏,它的声明在头文件stdlib.h中。如果是在Linux操作系统的gcc环境下,清屏用system(”clear”)。
4. 常见错误
(1) 数据声明或语句后面缺少分号。 (2) 对被调函数没有声明。
(3) 没有main函数或者有多个main函数。
5. 程序代码
#include
float a,b,c,t;
printf(\请输入三个数:\ scanf(\ if(a>b) {
t=a;a=b;b=t;} if(a>c)
{t=a;a=c;c=t; }
if(b>c)
{t=b;b=c;c=t; }
printf(\}
6. 实验结果
7. 心得体会
刚开始学习C语言,有一些小问题,数据声明时,分号会忘记,语句后面缺少分号。而且\\n斜杠会写反,有时会忘记声明函数。
实验2 顺序结构程序设计
1. 实验目的
(1) 掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量。 (2) 掌握数据的输入输出的方法,能正确使用各种格式控制符。 (3) 掌握算术运算符和赋值运算符。
2. 实验要求
(1) 认真阅读和掌握和本实验相关的教材内容。
(2) 输入圆半径和圆柱高,求圆周长、圆面积、圆球表面积、圆球体积和圆柱体积。输入输出要有文字说明,输出结果取小数点后2位。 (3) 上机运行程序。
(4) 保存和打印出程序的运行结果,并结合程序进行分析。
3.实验重点和难点
(1) 用scanf和printf对数据进行输入输出时,不同的数据类型用不同的格式控制符。 (2) scanf函数中的格式控制后面应当是变量地址,而不是变量名。
4. 常见错误
(1)变量没有定义,直接使用。
(2)企图利用整数除以整数得到精确结果。例如1/4结果不是0.25而是0,1/4.0结果才是0.25。 (3) printf和scanf函数中格式控制符的个数与变量或变量地址的个数不一致。 (4) scanf函数的地址表列因该是变量地址,而不是变量名。
(5) scanf函数在格式控制字符串中除了格式说明以外还有其他字符时,在输入数据时(6) 没有在对应的位置输入与这些字符相同的字符。
5. 程序代码
#include
int main() {
float h,r,l,s,sq,vq,vz; float p=3.141526;
printf(\请输入圆半径r,圆柱高h\ scanf(\
l=2*p*r; //圆周长 s=r*r*p; //圆面积 sq=4*p*r*r; //圆球表面积 vq=4.0/3.0*p*r*r*r; //圆球体积 vz=p*r*r*h; //圆柱体积 printf(\圆周长为: l=%6.2f\\n\ printf(\圆面积为: s=%6.2f\\n\ printf(\圆球表面积为: sq=%6.2f\\n\ printf(\圆球体积为: vq=%6.2f\\n\ printf(\圆柱体积为: vz=%6.2f\\n\ return 0; }
6. 实验结果
7. 心得体会
这边是基础的用scanf和printf对数据进行输入输出,不同的数据类型用不同的格式控制符。有点小睇混淆。才刚开始,还是觉得挺简单的。
实验3 选择结构程序设计
1. 实验目的
(1) 了解C语言表示逻辑变量的方法 (2) 学会正确使用关系运算符和逻辑运算符。 (3) 熟练掌握if语句和switch语句。
2. 实验要求
(1) 认真阅读和掌握和本实验相关的教材内容。
(2) 把百分制成绩转换成5级记分制,要求分别用if else 和switch语句。
90分以上(包括90): A 80至90分(包括80):B 70至80分(包括70):C 60至70分(包括60):D 60分以下:E
(3) 上机运行程序。
(4) 保存和打印出程序的运行结果,并结合程序进行分析。
3.实验重点和难点
(1) 注意关系运算符==和复制运算符=的区别。 (2) if和else的匹配原则。
(3) 在switch语句中正确使用break。
4. 常见错误
(1) 赋值运算符=和关系运算符等号=搞混。 (2) 在if语句为复合语句时,忘记写{}。 (3) if语句出现嵌套时,没正确配对。 (4) switch语句中,没正确使用break。
5. 程序代码
#include
int main() {
float score; char grade;
printf(\请输入学生成绩:\ scanf(\
while(score>100 || score<0) {
printf(\输入有误,请重新输入!\ scanf(\ }
switch ((int)(score/10)) {
case 10:
case 9:grade='A';break; case 8:grade='B';break; case 7:grade='C';break; case 6:grade='D';break; case 5: case 4:
6. 实验结果
7. 心得体会
有时候函数没定义就使用,有时候会定义函数,然后没有使用,定义函数时,形参没规定类型。函数调用时,实参前加类型。会把形参与实参搞混
实验7 指针的应用
1. 实验目的
(1) 熟练掌握指针的定义、赋值和使用。
(2) 掌握用指针引用数组的元素、熟悉指向数组的指针的使用。 (3) 熟练掌握字符数组与字符串的使用,掌握指针数组。 (4) 掌握指针函数与函数指针的用法。
2. 实验要求
(1) 认真阅读和掌握和本实验相关的教材内容。
(2) 有一个班4个学生,5门课程。①求第1门课程的平均分;②找出两门以上课程不及格的学生,输出他们的学号和全部课程成绩及平均成绩;③找出平均成绩在90以上或全部课程成绩在85分以上的学生。分别编3个函数实现以上3个要求。 (3) 上机运行程序。
(4) 保存和打印出程序的运行结果,并结合程序进行分析。
3.实验重点和难点
(1) 列指针变量的定义、赋值以及利用它引用数组元素。 (2) 行指针变量的定义、赋值以及它在二维数组中的使用。 (3) 函数指针变量的定义、赋值和利用它进行函数调用。
4. 常见错误
(1) 混淆变量值和变量地址。
(2) 指针变量没有初始化,就利用该指针变量引用变量。
(3) 利用指针变量引用一维数组元素和二维数组元素或地址时,引用的方法不对。 (4) 函数指针概念清楚。 (5) 混淆行指针变量和指针数组。
5. 程序代码
#include
void avsco(float *,float *);
void avcour1(char (*)[10],float *);
void fali2(char course[5][10],int num[],float *pscore,float aver[4]); void good(char course[5][10],int num[4],float *pscore,float aver[4]); int i,j,*pnum,num[4];
float score[4][5],aver[4],*pscore,*paver; char course[5][10],(*pcourse)[10]; printf(\ pcourse=course; for (i=0;i<5;i++)
scanf(\
printf(\ printf(\
for (i=0;i<5;i++)
printf(\ printf(\
pscore=&score[0][0]; pnum=&num[0];
for (i=0;i<4;i++) {
scanf(\ for (j=0;j<5;j++)
scanf(\}
paver=&aver[0]; printf(\
avsco(pscore,paver);
avcour1(pcourse,pscore); printf(\
fali2(pcourse,pnum,pscore,paver); printf(\
good(pcourse,pnum,pscore,paver); return 0; }
void avsco(float *pscore,float *paver)
{
int i,j;
float sum,average; for (i=0;i<4;i++) {
sum=0.0;
for (j=0;j<5;j++)
sum=sum+(*(pscore+5*i+j)); average=sum/5;
*(paver+i)=average; } }
void avcour1(char (*pcourse)[10],float *pscore) {
int i;
float sum,average1; sum=0.0;
for (i=0;i<4;i++)
sum=sum+(*(pscore+5*i)); average1=sum/4;
printf(\}
void fali2(char course[5][10],int num[],float *pscore,float aver[4]) {
int i,j,k,labe1;
printf(\ printf(\ for (i=0;i<5;i++)
printf(\ printf(\ for (i=0;i<4;i++) {
labe1=0;
for (j=0;j<5;j++)
if (*(pscore+5*i+j)<60.0) labe1++; if (labe1>=2) {
printf(\ for (k=0;k<5;k++)
printf(\ printf(\ } } }
void good(char course[5][10],int num[4],float *pscore,float aver[4]) {
int i,j,k,n;
printf(\
printf(\ for (i=0;i<5;i++)
printf(\ printf(\ for (i=0;i<4;i++) {
n=0;
for (j=0;j<5;j++)
if (*(pscore+5*i+j)>85.0) n++; if ((n==5)||(aver[i]>=90)) {
printf(\ for (k=0;k<5;k++)
printf(\ printf(\ } } }
6. 实验结果
7. 心得体会
指针这章有点小混乱 混淆变量值和变量地址。会忘记给指针变量没有初始化,就利用该指针变量引用变量。数组元素或地址有些模糊
实验8 结构体的应用
1. 实验目的
(1) 掌握结构体变量、结构体数组以及结构体指针的定义和使用。 (2) 掌握动态存储分配函数的用法和单向链表的创建、输出等操作。 (3) 掌握用typedef定义类型。
2. 实验要求
(1) 认真阅读和掌握和本实验相关的教材内容。
(2) 编写建立链表的函数creat,输出链表的函数print,删除链表中节点的函数del,插入节点的函数insert,再编写一个主函数,先后调用这些函数,在主函数中指定需要删除和插入的节点的数据。 (3) 上机运行程序。
(4) 保存和打印出程序的运行结果,并结合程序进行分析。
3.实验重点和难点
(1) 结构成员引用的三种方法。 (2) 链表节点数据类型的定义。
(3) malloc函数用于动态分配存储空间,它的返回值类型是void *,在实际使用中一般需要强类型转换成多需要的类型。该函数的声明在stdlib.h头文件中。 (4) 链表操作中,节点指针域的使用。
4. 常见错误
(1) 引用结构体成员时,成员运算符.和指向运算符->的使用混淆。 (2) 链表操作过程中不能正确利用指针域进行操作。 (3) 不能正确使用typedef声明新类型名。
5. 程序代码
#include
#define LEN sizeof(struct Student) struct Student {
long num; float score;
struct Student *next; };
int n;
int main() //主函数 {
struct Student *creat();
struct Student *del(struct Student *,long);
struct Student *insert(struct Student *,struct Student *); void print(struct Student *);
正在阅读:
C语言程序设计实验报告10-25
浅谈中国文化发展道路01-18
《青蛙》评课稿09-25
初三数学复习计划01-07
四年级运算定律与简便计算练习题大全08-18
江西省高安中学10-11学年高二下学期期中考试地理试题 人教课标版12-09
《红日》粤语中文谐音完美版04-20
东华理工大学毕业论文规范11-08
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 程序设计
- 语言
- 实验
- 报告
- 当前农村干部存在的问题及对策
- 高等数学试卷(一)
- 防汛防台应急预案
- 2013智慧东城东城区党委系统政务内网协同办公及门户网站建设项目(第三册)v1.5
- 天津文综精校版-2011普通高等学校招生统一考试
- 望江县安监局学习贯彻党代会精神 突出抓好四项重点工作
- 《软件测试》期末大作业2015-16学年第一学期
- 8学年上学期高二期中考试政治试题(B卷)(附答案) - 图文
- 文学思潮:- 语法文献库管理系统
- 没搞教室卫生的检讨书500字
- 医院感染护理学答案1
- 人力资源答案
- 数据结构之内排序(包括快速排序,希尔,归并排序,插入排序,选择排序等)
- 上海大学电子信息材料系导师介绍
- 2015-2016学年度北师大版小学五年级数学下册第二单元测试卷
- 人教版地理八年级上册第三章第一、二节复习提纲
- 操作系统试卷2008B - 完成版 - 图文
- 学校后勤工作简报
- 全民守法是依法治国的基础
- 小数乘除法易错题统计