c语言报告 下载本文

金陵科技学院实验报告

四、实验结果与分析(程序运行结果及其分析)

结果正确,但是程序只看懂了一点点,是通过查书还有百度才完成了程序的编程,运行时有好多错误都查不出来,是通过老师的帮助才解决,纠结了好长时间。

五、实验体会(遇到问题及解决办法,编程后的心得体会)

对于子函数的运用还是不熟悉,虽然对于上一次而言好了许多,不过还是不怎么熟悉。许多的程序都不会做,不过在老师的提醒下我还是编写了出来。以后我会针对自己在这方面的薄弱环节多看书多做题,才能弥补回来。自己亲自动手编写程序让我增加了对C语言程序开发环境的了解,在上课的时候老师就讲,学习C语言最重要的是学习C语言的逻辑思维,不管以后从事什么行业,学习C语言都对自己的职业很有帮助,如果是从事编程工程工作的话,就更有帮助了,即使以后的编程工作可能不用C语言,但是拥有扎实的C语言基础是对工作很有用的。

27

金陵科技学院实验报告

实验项目名称: 构造类型程序设计 实验学时: 4 同组学生姓名: 实验地点: A206 实验日期: 2014/6/15 实验成绩: 批改教师: 郭海凤 批改时间:

28

金陵科技学院实验报告

实验4 构造类型程序设计

一、实验目的和要求

(1)熟悉结构体和共同体的概念;

(2))熟悉并掌握结构体变量、数组和共同体变量的定义、赋值与使用; (3)掌握结构体指针的定义与引用;

(4)掌握链表的概念,初步学会对链表进行操作;

(5)熟悉文件打开、关闭、写入、读出的方法;学会使用文件操作函数。

二、实验仪器和设备

奔腾以上计算机,装有windows XP以上版本操作系统和Visual C++ 6.0软件。

三、实验内容与过程

1、程序调试 (1) struct aa

{int x,*y;}*p;

int a[8]={10,20,30,40,50,60,70,80};

struct aa b[4]={100,&a[1],200,&a[3],10,&a[5],20,&a[7]}; main() {p=b;

printf(″%d″,*++p->y); printf(″%d\n″,++(p->x)); } (2) struc STU

{ char name[10]; int num; };

void f1(struct STU c)

{ struct STU b={“LiSiGuo”,2042}; c=b; }

void f2(struct STU *c)

{ struct STU b={“SunDan”,2044}; *c=b; } main( )

{ struct STU a={“YangSan”,2041},b={“WangYin”,2043}; f1(a) ;f2(&b) ;

printf(“%d %d\\n”,a.num,b.num); } 2、程序设计

29

金陵科技学院实验报告

说明,所有题目均需添加main(),在main()中调用子函数并设计完整的输入输出才可调试通过。

(1)(2)两题的学生记录由学号和成绩组成,结构体类型定义如下:

typedef struct { char num[10]; double s;

} STREC; (1)功能:a所指向的数组中有N名学生的数据,请编写函数double fun(STREC *a,STREC *b),把a数组中分数最高的学生数据放在b所指的数组中。分数最高的学生可能不止一个,函数返回分数最高的学生人数。

(2)功能:a所指的数组中有N名学生的数据,请编写函数double fun(STREC *a,STREC *b,int *n),把低于平均分的学生数据放在b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回。

(3)从键盘输入一系列字符(以$作为输入结束标志),将其存入文件file1.txt中,再从该文件中查找某个字符(该字符可以输入),如果查找成功将返回成功标志,否则返回不成功标志。

3、讨论、思考题

功能:N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写子函数double fun(STREC *h),找出学生的最高分,由函数值返回。

注意:链表的节点类型定义如下: struct slist { double s;

struct slist *next; };

typedef struct slist STREC;

程序清单及流程图: <1>

#include #include typedef slist {

double s; }

typedef struct slist STREC; double fun(STREC *a,STREC *b) {

int i,j=0; double k=0;

for(i=0;i<10;i++)

if((*a).num[i]>j)j=(*a).num[i];

30