C语言实验报告九

合集下载

c语言实验报告实验

c语言实验报告实验

c语言实验报告实验C 语言实验报告实验一、实验目的本次 C 语言实验的主要目的是通过实际操作和编程实践,加深对 C 语言基本语法、数据类型、控制结构、数组、指针等重要概念的理解和掌握,提高编程能力和解决实际问题的能力。

二、实验环境本次实验使用的编程环境为 Visual Studio 2019,操作系统为Windows 10。

三、实验内容1、基本数据类型和运算符的使用定义不同类型的变量,如整数型(int)、浮点型(float、double)、字符型(char)等,并进行赋值和运算操作。

熟悉各种运算符的优先级和结合性,包括算术运算符(+、、、/、%)、关系运算符(>、<、>=、<=、==、!=)、逻辑运算符(&&、||、!)、位运算符(&、|、^、~、<<、>>)等。

2、控制结构的应用使用ifelse 语句实现条件判断,根据不同的条件执行相应的代码块。

运用 switch 语句进行多分支选择,处理不同的情况。

利用 for 循环、while 循环和 dowhile 循环实现重复执行的操作,例如计算数列的和、打印特定的图案等。

3、数组和字符串的操作定义和使用一维数组、二维数组,进行数组元素的访问、赋值和遍历。

掌握字符串的存储和处理方式,使用字符数组和字符串函数(如strlen、strcpy、strcmp 等)进行字符串的操作。

4、指针的应用理解指针的概念和指针变量的定义,通过指针访问变量和数组元素。

实现指针与数组、指针与函数的结合使用,体会指针在程序中的灵活运用。

5、函数的定义和调用编写自定义函数,实现特定的功能,如计算阶乘、判断素数等。

掌握函数的参数传递方式(值传递和地址传递),理解函数的返回值。

6、结构体和共用体的使用定义结构体类型,创建结构体变量,访问结构体成员。

了解共用体的概念和使用场景,比较结构体和共用体的区别。

四、实验步骤1、实验准备打开 Visual Studio 2019 开发环境,创建一个新的 C 语言项目。

c语言课程设计实验报告

c语言课程设计实验报告

c语言课程设计实验报告一、教学目标本课程的目标是让学生掌握C语言的基本语法、数据结构、算法和编程技巧,培养学生独立编程和解决问题的能力。

具体目标如下:1.知识目标:–掌握C语言的基本语法和关键字。

–理解数据类型、变量、常量的概念及使用。

–熟悉运算符、表达式、语句的结构。

–学习函数的定义、声明和调用。

–掌握数组、指针、字符串的基本操作。

–了解结构体、共用体、枚举类型等数据结构。

–学习基本算法和排序、查找等常用算法。

2.技能目标:–能够使用C语言编写简单的程序,解决实际问题。

–熟练使用集成开发环境(IDE)进行程序调试和运行。

–掌握编程规范和代码注释,编写可读性强的代码。

–学会使用函数模块化编程,提高代码重用性。

3.情感态度价值观目标:–培养学生对计算机科学的兴趣,激发创新意识。

–培养学生的团队合作精神和自主学习能力。

–强化学生的编程实践能力,提高解决实际问题的能力。

二、教学内容根据课程目标,本课程的教学内容主要包括以下几个部分:1.C语言基本语法和关键字。

2.数据类型、变量、常量的使用和声明。

3.运算符、表达式、语句的结构和用法。

4.函数的定义、声明和调用。

5.数组、指针、字符串的基本操作和应用。

6.结构体、共用体、枚举类型等数据结构的概念和使用。

7.基本算法和排序、查找等常用算法。

8.第一周:C语言基本语法和关键字。

9.第二周:数据类型、变量、常量的使用和声明。

10.第三周:运算符、表达式、语句的结构和用法。

11.第四周:函数的定义、声明和调用。

12.第五周:数组、指针、字符串的基本操作和应用。

13.第六周:结构体、共用体、枚举类型等数据结构的概念和使用。

14.第七周:基本算法和排序、查找等常用算法。

三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式,包括:1.讲授法:教师通过讲解、示例等方式,向学生传授C语言的基本知识和编程技巧。

2.讨论法:教师引导学生进行问题讨论,培养学生的编程思维和解决问题的能力。

c语言综合实验报告

c语言综合实验报告

c语言综合实验报告C语言综合实验报告引言:C语言是一门广泛应用于计算机科学领域的编程语言,具有高效、灵活和可移植等特点。

在本次实验中,我们将通过综合实验来探索C语言的各种特性和用法。

本报告将详细介绍实验的目的、设计思路、实验过程、结果分析以及对C 语言的理解和应用。

一、实验目的本次综合实验旨在通过实践,加深对C语言的理解和应用。

具体目标包括:1. 熟悉C语言的基本语法和数据类型;2. 掌握C语言的输入输出操作;3. 理解和运用C语言的控制结构和函数;4. 实现一个简单的C语言项目,提升编程能力。

二、设计思路在本次实验中,我们选择了一个简单而实用的项目——学生成绩管理系统。

该系统可以实现学生信息的录入、查询、修改和删除等功能。

通过这个项目,我们能够全面运用C语言的各种特性和用法。

三、实验过程1. 定义结构体:首先,我们需要定义一个学生的结构体,包含学号、姓名和成绩等信息。

通过结构体,我们可以方便地对学生信息进行管理和操作。

2. 实现录入功能:接下来,我们编写一个函数,实现学生信息的录入。

通过用户输入学生的学号、姓名和成绩,我们可以将这些信息存储到结构体数组中,并将其保存到文件中。

3. 实现查询功能:为了方便查找学生信息,我们编写了一个查询函数。

该函数可以根据学号或姓名来查找学生信息,并将结果显示在屏幕上。

4. 实现修改功能:当需要修改学生信息时,我们可以调用修改函数。

该函数可以根据学号或姓名找到对应的学生信息,并允许用户修改学生的姓名和成绩。

5. 实现删除功能:最后,我们编写了一个删除函数,用于删除指定学生的信息。

用户只需要输入学号或姓名,系统就可以找到对应的学生并将其从结构体数组中删除。

四、结果分析经过实验,我们成功实现了学生成绩管理系统。

该系统具备录入、查询、修改和删除等功能,能够方便地管理学生的信息。

通过这个实验,我们不仅掌握了C语言的各种特性和用法,还提升了编程能力。

五、对C语言的理解和应用通过本次实验,我们对C语言有了更深入的理解和应用。

c语言大实验报告

c语言大实验报告

c语言大实验报告C 语言大实验报告一、实验目的本次 C 语言大实验的主要目的是通过实际的编程项目,深入巩固和应用 C 语言的基础知识,提高编程能力和解决实际问题的能力。

具体而言,包括熟练掌握数据类型、控制结构、函数、数组、指针等核心概念,并能够运用它们构建较为复杂的程序逻辑。

二、实验要求1、完成一个具有一定规模和功能的 C 语言程序,例如学生成绩管理系统、图书管理系统等。

2、程序应具备良好的代码结构和可读性,遵循编程规范。

3、实现数据的输入、处理和输出功能,能够进行数据的存储和查询。

4、对程序进行充分的测试,确保其稳定性和正确性。

三、实验环境1、操作系统:Windows 102、编程工具:Visual Studio 2019四、实验内容本次实验我选择开发一个学生成绩管理系统,该系统能够实现学生成绩的录入、查询、修改、删除以及成绩统计分析等功能。

(一)数据结构设计为了存储学生的信息,我定义了一个结构体`Student` ,包含学生的学号、姓名、各科成绩等字段:```ctypedef struct {int id;char name50;float score3; //假设存储三门课程的成绩} Student;```同时,使用一个动态数组来存储多个学生的信息:```cStudent students;int numStudents = 0; //记录学生数量```(二)功能模块实现1、成绩录入通过循环让用户输入学生的信息,包括学号、姓名和各科成绩,并将其添加到动态数组中:```cvoid inputStudent(){Student newStudent;printf("请输入学号:");scanf("%d",&newStudentid);printf("请输入姓名:");scanf("%s", newStudentname);printf("请输入三门课程的成绩:");for (int i = 0; i < 3; i++){scanf("%f",&newStudentscorei);}students =(Student )realloc(students, (numStudents + 1) sizeof(Student));studentsnumStudents++= newStudent;}```2、成绩查询根据用户输入的学号,在动态数组中查找对应的学生信息并输出:```cvoid queryStudent(){int id;printf("请输入要查询的学号:");scanf("%d",&id);for (int i = 0; i < numStudents; i++){if (studentsiid == id) {printf("学号:%d\n", studentsiid);printf("姓名:%s\n", studentsiname);printf("成绩:");for (int j = 0; j < 3; j++){printf("%2f ", studentsiscorej);}printf("\n");return;}printf("未找到该学号的学生信息!\n");}```3、成绩修改先查询要修改的学生信息,然后让用户输入修改后的成绩:```cvoid modifyStudent(){int id;printf("请输入要修改的学号:");scanf("%d",&id);for (int i = 0; i < numStudents; i++){if (studentsiid == id) {printf("请输入修改后的三门课程成绩:");for (int j = 0; j < 3; j++){scanf("%f",&studentsiscorej);printf("修改成功!\n");return;}}printf("未找到该学号的学生信息!\n");}```4、成绩删除根据学号删除指定的学生信息,并重新调整动态数组:```cvoid deleteStudent(){int id;printf("请输入要删除的学号:");scanf("%d",&id);int found = 0;for (int i = 0; i < numStudents; i++){if (studentsiid == id) {found = 1;for (int j = i; j < numStudents 1; j++){studentsj = studentsj + 1;}numStudents;students =(Student )realloc(students, numStudents sizeof(Student));printf("删除成功!\n");return;}}if (!found) {printf("未找到该学号的学生信息!\n");}}```5、成绩统计分析计算所有学生的平均成绩,并输出最高和最低成绩:```cvoid statistics(){float totalScore = 0;float maxScore = students0score0;float minScore = students0score0;for (int i = 0; i < numStudents; i++){float sum = 0;for (int j = 0; j < 3; j++){sum += studentsiscorej;}totalScore += sum / 3;if (sum / 3 > maxScore) {maxScore = sum / 3;}if (sum / 3 < minScore) {minScore = sum / 3;}}printf("平均成绩:%2f\n", totalScore / numStudents);printf("最高成绩:%2f\n", maxScore);printf("最低成绩:%2f\n", minScore);}```(三)主函数在主函数中,通过菜单的方式让用户选择要执行的操作:```cint main(){int choice;while (1) {printf("1、录入成绩\n");printf("2、查询成绩\n");printf("3、修改成绩\n");printf("4、删除成绩\n");printf("5、成绩统计分析\n");printf("6、退出\n");printf("请选择操作:");scanf("%d",&choice);switch (choice) {case 1:inputStudent();break;case 2:queryStudent();break;case 3:modifyStudent();break;case 4:deleteStudent();break;case 5:statistics();break;case 6:free(students);return 0;default:printf("无效的选择,请重新输入!\n");}}return 0;}```五、实验结果经过多次测试,本系统能够稳定运行,实现了预期的各项功能。

c语言实验报告

c语言实验报告

c语言实验报告C语言实验报告一、引言C语言作为一种高级程序设计语言,具有简洁、高效、灵活的特点,在计算机科学领域得到广泛应用。

本实验报告旨在总结我对C语言实验的学习和理解,并介绍实验过程中遇到的问题和解决方法。

二、实验目的本次实验的主要目的是通过实践掌握C程序设计的基本语法和常用操作,培养编程思维和解决问题的能力。

具体实验要求包括熟悉C语言的数据类型、运算符、循环语句和函数定义等内容,并能够应用这些知识解决实际问题。

三、实验内容本次实验包括以下几个部分:变量的定义与使用、条件语句的应用、循环语句的运用、数组的定义与使用、函数的定义与调用以及实验总结等。

1. 变量的定义与使用在C语言中,可以使用关键字“int”、“float”、“char”等定义不同类型的变量。

变量是计算机程序中存储数据的基本单元。

在本次实验中,我通过定义不同类型的变量,并进行赋值和运算等操作,来加深对变量的理解和掌握。

2. 条件语句的应用条件语句在程序设计中起到了判断和选择不同执行路径的作用。

在C 语言中,可以使用“if”、“else if”、“else”等关键字来实现条件语句的控制。

通过实验,我学会了如何根据不同的条件执行不同的代码块。

3. 循环语句的运用循环语句是程序中重复执行某段代码的结构,能够提高程序的灵活性和效率。

在C语言中,我掌握了“for”、“while”、“do while”等不同类型的循环语句的使用方法,并在实际问题中进行了应用。

4. 数组的定义与使用数组是一种存储相同数据类型多个元素的容器。

在C语言中,可以通过定义数组名和下标位置来访问和操作数组中的元素。

通过实验,我深入了解了数组的索引范围、元素的访问以及数组在程序中的应用。

5. 函数的定义与调用函数是一段封装了特定功能的代码块,可以提高程序的模块化和可维护性。

在C语言中,我学会了如何定义函数并传递参数,以及通过函数调用来实现特定功能。

四、实验过程及结果在实验过程中,我采用了自上而下的方法,先分析问题,再逐步实现代码。

C语言程序设计实验实验报告

C语言程序设计实验实验报告

C语⾔程序设计实验实验报告《C语⾔程序设计实验》实验报告实验九⽂件编程(⼀)班级:_07某某专业1班_学号:______姓名:___实验样例_____⽇期:___2008.6.10_____台州学院数信学院计算机系制作⼀、实验⽬的和要求综合使⽤基本结构、基本算法、函数、指针、结构体、链表等知识设计程序。

⼆、实验指导1、注意:本次实验为综合性实验,需要综合本课程以前所学内容,完成编制⼀个⼩型应⽤程序。

需要复习课本以前所学内容,浏览上课讲解的相关内容。

2、实验时间安排:准备实验⽅案,上课时上机编程,课余完成整个设计并完成实验报告。

3、实验具体要求:以⼀张假想的学⽣期中成绩表为实验对象,编制⼀个⼩型应⽤程序,可以考虑实现以下功能:(1)成绩修改;(2)成绩查询;(3)成绩统计;(4)成绩输⼊。

也可以实现其他⾃定义的功能。

界⾯采⽤简易菜单形式,可以分级显⽰。

实验需要进⾏以下步骤:需求分析、程序设计、程序调试、程序运⾏,并对程序运⾏效果进⾏分析,提出改进⽅案。

初步锻炼学⽣的程序设计能⼒、程序调试能⼒、对实验结果进⾏综合分析的能⼒。

4、实验成绩评价标准:参见成绩评定表。

四、实验报告内容(参见样本,请另附页)实验报告必须包含以下内容:1、对你设计的程序功能进⾏的较详细描述。

2、画出程序测试⽤的学⽣期中成绩表(包含:表头、若⼲⾏包含学⽣成绩等信息的数据⾏)。

3、给出程序清单(包含结构体的声明与定义、所有的函数声明、所有的全局变量、所有的函数定义、必要的注释。

注:如果程序过长,可以不⽤给出所有的函数定义,只给出主要的函数定义)。

4、运⾏结果(写出运⾏时的主界⾯、各模块的实现界⾯等,不作具体要求,但要求能清晰地体现出程序的功能)。

5、对你的设计作⼀个评价(可以包含你所花的时间、精⼒,你遇到的困难及如何解决的,你的设计过程所遇到的其他事情;必须包含你对设计的客观评价,以及提出的改进⽅案)。

1、程序功能描述:(略)2、成绩表样表:3、程序清单:(红⾊部分是和上⼀个程序的区别之处)#includestruct student /*期中成绩表的结构声明*/{int num;char name[20];char sex;float YuWen;float ShuXue;float YingYu;float totle;};#define MAX_STU_NUMBER 100 /*宏定义最⼤学⽣数为100⼈*/struct student Stu[MAX_STU_NUMBER]; /*⼀次性定义100个学⽣的存储空间*/int STU_NUMBER; /*存放学⽣数*/char *FileName = "chengji.txt"; /*成绩存放的⽂件*//*所有的函数声明:*/int SelectMainMenu(); /*显⽰并选择主菜单。

C语言程序设计实验报告

C语言程序设计实验报告

C语言程序设计实验报告学院班级学号姓名指导教师实验1 简单程序设计1. 实验目的(1)熟悉C语言开发环境并掌握在该环境下如何编辑、编译、连接和运行一个C程序。

(2)通过运行一个简单的C程序过程,初步了解C程序的基本结构及特点。

2.实验要求(1)认真阅读和掌握和本实验相关的教材内容。

(2)编写一个C程序,输出一下信息:**************************Very good!**************************(3)上机运行程序。

(4)保存和打印出程序的运行结果,并结合程序进行分析。

3.实验重点和难点(1)C程序是由一个个函数构成,当一个函数调用另一个函数时,需要对被调函数作声明。

(2)用户自定以的函数最好写在一个头文件中,在需要的地方用文件包含命令即可。

(3)system(“cls”)函数的作用是清屏,它的声明在头文件stdlib.h中。

如果是在Linux操作系统的gcc环境下,清屏用system(”clear”)。

4.常见错误(1)数据声明或语句后面缺少分号。

(2)对被调函数没有声明。

(3)没有main函数或者有多个main函数。

5.程序代码6.实验结果7.心得体会1. 实验目的(1)掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量。

(2)掌握数据的输入输出的方法,能正确使用各种格式控制符。

(3)掌握算术运算符和赋值运算符。

2.实验要求(1)认真阅读和掌握和本实验相关的教材内容。

(2)输入圆半径和圆柱高,求圆周长、圆面积、圆球表面积、圆球体积和圆柱体积。

输入输出要有文字说明,输出结果取小数点后2位。

(3)上机运行程序。

(4)保存和打印出程序的运行结果,并结合程序进行分析。

3.实验重点和难点(1)用scanf和printf对数据进行输入输出时,不同的数据类型用不同的格式控制符。

(2)scanf函数中的格式控制后面应当是变量地址,而不是变量名。

4.常见错误(1)变量没有定义,直接使用。

c语言课程实验报告

c语言课程实验报告

c语言课程实验报告C语言课程实验报告引言:C语言作为一门广泛应用于计算机科学领域的编程语言,具有简洁高效的特点,被广泛用于系统软件、嵌入式设备等领域。

在C语言课程中,我们进行了一系列的实验,旨在通过实践提升我们的编程能力和理解C语言的各种特性。

本报告将对我们进行的实验进行总结和分析。

实验一:基本语法和数据类型在第一次实验中,我们学习了C语言的基本语法和数据类型。

通过编写简单的程序,我们熟悉了C语言的变量定义、运算符、控制语句等基本概念。

同时,我们也了解了C语言中常用的数据类型,如整型、浮点型、字符型等,并学会了如何进行类型转换和输入输出操作。

实验二:数组和字符串处理在第二次实验中,我们深入学习了C语言中的数组和字符串处理。

通过编写程序,我们掌握了数组的定义、初始化和访问方法,了解了一维数组和多维数组的特点。

同时,我们也学会了使用C语言提供的字符串处理函数,如strlen、strcpy、strcat等,实现字符串的复制、连接和比较等操作。

实验三:函数和指针第三次实验是函数和指针的学习。

我们学习了如何定义和调用函数,了解了函数的参数传递和返回值的相关知识。

同时,我们也深入研究了指针的概念和用法,掌握了指针的声明、初始化和使用方法。

通过实验,我们发现指针在C语言中具有重要的作用,可以提高程序的效率和灵活性。

实验四:文件操作和结构体在第四次实验中,我们学习了C语言中的文件操作和结构体。

通过使用文件读写函数,我们能够实现对文件的读取和写入操作,实现数据的永久存储。

同时,我们也学会了定义和使用结构体,实现对复杂数据的封装和处理。

这些知识对于实际项目的开发非常重要。

实验五:动态内存分配和链表在第五次实验中,我们学习了动态内存分配和链表的使用。

通过使用malloc和free函数,我们能够在程序运行时动态分配和释放内存,提高了内存的利用效率。

同时,我们也学会了使用链表数据结构,实现对数据的动态存储和管理。

链表在数据结构和算法中有着广泛的应用,对于解决实际问题非常有帮助。

C语言实验报告(精选9篇)

C语言实验报告(精选9篇)

C语言实验报告C语言实验报告(精选9篇)在经济发展迅速的今天,我们都不可避免地要接触到报告,通常情况下,报告的内容含量大、篇幅较长。

写起报告来就毫无头绪?下面是小编帮大家整理的C语言实验报告,欢迎阅读与收藏。

C语言实验报告1在这个星期里,我们在专业老师的带领下进行了c语言程序实践学习。

在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,更多的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。

由于时间的关系,我们的这次实践课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。

上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握它。

对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。

学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。

因为学时所限,课程不能安排过多的统一上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基础。

个人认为课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面:1、加深对课堂讲授内容的理解课堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。

然而要使用c语言这个工具解决实际问题,又必须掌握它。

通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c 语言的语法规定。

对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实践所致。

学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题。

C语言_实验九、结构体程序设计

C语言_实验九、结构体程序设计

实验九、结构体程序设计一、实验目的1.掌握结构、结构数组、结构指针的定义及使用;2.掌握简单的链表的定义及使用;3.掌握共用体和枚举类型的定义及使用;4.掌握文件的简单的定义、打开、写、关闭等操作。

二、实验内容1.[题目内容]某考点建立一个考生人员情况登记表、表格内容如下:1)根据上表正确定义该表格内容要求的数据类型。

2)分别输入各成员项数据,并打印输出(为简便,假设有3个考生)编程序,然后上机调试运行程序。

2.[题目内容]某单位进行选举,有5位候选人:zhang、wang、li、zhao、liu。

编写一个统计每人得票数的程序。

要求每个人的信息使用一个结构体表示,5个人的信息使用结构体数组。

3.[题目内容]设张三20岁、李四22岁、王平23岁,编程输出3人中年龄最小者的姓名和年龄。

4.[题目内容]定义一个学生成绩结构体类型,包含“学号”、“姓名”、“性别”、“年龄”、“班级”、“英语”、“数学”、“物理”、“总分”、“名次”等信息。

编写6个函数分别用于:(1)使用结构体数组,输入全班10名学生的上述信息;(2)计算每一个学生的总分、平均分;(3)计算每一门课程的平均分;(4)查找成绩有不及格的学生信息;(5)按学生成绩总分降序排序;(6)输出全班学生的学号、总分及名次。

5.[题目内容]利用上一题的结构类型,创建包含10个结点的无序链表。

编写5个函数分别实现下述功能(参考前面第三部分内容):(1)显示链表;(2)添加结点;(3)删除结点;(4)计算每位学生的总分;(5)按英语成绩排序。

三、课后作业(写实验报告)1.学生成绩管理:有5个学生,每个学生的数据包括学号、班级、姓名、三门课成绩。

从键盘输入5个学生数据,要求打印出每个学生三门课的平均成绩,以及每门课程平均分、最高分学生数据(包括学号、班级、姓名、三门课成绩,平均分)。

(1)定义学生结构体。

(2)用一个函数实现5个学生数据的输入,用另一个函数负责求每个学生三门课程的平均成绩,再用一个函数求出平均分最高的学生并输出该学生的数据。

C语言实验报告9篇

C语言实验报告9篇

C语言实验报告C语言实验报告9篇随着个人素质的提升,报告的适用范围越来越广泛,我们在写报告的时候要注意语言要准确、简洁。

写起报告来就毫无头绪?以下是小编为大家整理的C语言实验报告,仅供参考,欢迎大家阅读。

C语言实验报告1一、实习目的1.掌握在集成环境中编辑、编译、连接和运行C程序的方法。

(1)运行TC(2)启动TC集成环境,输入一个源程序,编译并运行。

2.掌握单步执行、设置/去除断点,观察变量或表达式的值。

(3)在该程序中按CTRL+F7单步招待并在观察窗口中查看变量和表达式的值。

(4)设置/去除断点,继续调试。

1、熟练掌握if.switch分支语句的使用。

2、熟练掌握for.while.do.while循环语句的使用。

3、熟练掌握函数的定义、说明、参数传递及嵌套和递归调用方法。

4、熟练掌握一维数组、二维数组、字符数组的定义、说明和使用方法。

熟练掌握结构体和指针的综合应用链表的操作二、实习地点北京交通干部管理学院计算机系机房十三号.三、实习成果熟练掌握TC集成环境的使用方法。

认真编写实习报告和实习总结,描述实习操作和心得体会,总结在这次实习中的业务收获,作出自我评价。

熟练掌握并应用TC程序设计的各个知识点。

掌握结构体和指针的联合使用,学会链表的构造和常用操作方法,认真编写实习日志和实习体会。

并通过各种途径查找所需资料,拓宽视野,培养自学能力。

四、实习心得在短短一周的实习期间使我获取了不少新知识也巩固了许多老知识。

我体会到了老师和同学们的热心帮助,无论面对学习中多大的困难,同学们都会帮助你,老师也会帮助你,大家就像兄弟姐妹一样。

老师安排我们有具有的分工:首先,在计算机机房里同学们积极的对C语言进行巩固与实习,老师热心的讲解同学们提出的问题和实习过程中应该注意的事项和同学们的任何。

老师把我们分为几组,每一组十一个人,并且分配了具体的任务,在我们实习结束后每一组的同学都把自己组里的成果展示给大家一起分享,告诉大家编程的原理、方法等,使同学们既有动手能力,又能提高语言表达能力。

c语言实验报告总结

c语言实验报告总结

c语言实验报告总结在大学的计算机科学与技术专业中,学习C语言是一个非常重要的环节。

通过实验的方式,我们可以更好地理解和掌握这门编程语言。

在此次实验中,我对C语言的基本语法、数据类型、控制结构以及函数等方面进行了深入学习和实践,并取得了一定的成果。

首先,在实验中我通过编写简单的程序,掌握了C语言的基本语法规则。

C语言是一门结构化的编程语言,具有严格的语法要求。

通过实验,我深刻理解了C语言的语法规则对编写正确程序的重要性。

在每个实验环节中,我都会根据实验要求,遵循正确的语法结构,确保程序能够顺利运行。

其次,在实验过程中,我掌握了C语言的各种数据类型。

C语言中的数据类型包括整型、浮点型、字符型等多种类型,每一种类型都有其特定的用途和限制。

通过实验,我学会了如何定义不同类型的变量,并能够利用这些变量进行各种运算和操作。

这为我后续的程序设计提供了基础。

另外,在实验中我学习了C语言的控制结构。

控制结构在程序设计中起到了重要的作用,可以通过条件判断和循环控制实现不同的功能。

在实验中,我通过编写程序,学会了使用if语句、switch语句以及for、while、do-while等循环语句。

这些控制结构的灵活运用使我的程序更加健壮和实用。

在实验的过程中,我还学习了C语言中的函数。

函数是C语言中的一种代码模块,可以将一段具有特定功能的代码封装起来,提高代码复用性和可维护性。

通过实验,我了解了函数的定义、声明和调用等基本概念,并学会了如何自己编写函数,并在主程序中调用这些函数。

函数的使用使我的程序模块更加清晰,减少了代码的重复性,提高了代码的可读性和可维护性。

总的来说,这次C语言的实验让我受益匪浅。

通过实际动手编写程序,我不仅巩固了对C语言基础知识的理解,还掌握了更多实际应用的技巧。

同时,实验还培养了我的分析和解决问题的能力,使我在编写程序时可以更加深入地思考和分析。

在未来的学习和工作中,C语言将成为我必不可少的工具。

《c语言程序设计》实验报告

《c语言程序设计》实验报告

《c语言程序设计》实验报告《C语言程序设计》实验报告一、引言C语言是一种广泛应用于计算机编程的高级编程语言,具有灵活性和高效性的特点。

在《C语言程序设计》课程中,我们通过实验来巩固和应用所学的知识,提高我们的编程能力和解决问题的能力。

本实验报告将对我们在课程中进行的实验进行总结和分析。

二、实验一:Hello World程序实验一是我们在学习任何编程语言时的传统开始,即编写一个简单的Hello World程序。

这个程序的目的是在屏幕上显示出"Hello World"这个字符串。

通过这个实验,我们学会了如何编写基本的C语言程序,并且了解了程序的编译和运行过程。

三、实验二:计算圆的面积实验二要求我们编写一个程序,通过输入圆的半径,计算并输出圆的面积。

在这个实验中,我们学会了如何使用变量、常量和运算符来进行数学计算,并且学会了如何使用C语言的输入输出函数。

四、实验三:判断闰年实验三要求我们编写一个程序,判断输入的年份是否为闰年。

通过这个实验,我们学会了如何使用条件语句来进行逻辑判断,并且学会了如何使用布尔运算符和关系运算符。

五、实验四:字符串处理实验四要求我们编写一个程序,实现对字符串的基本操作,包括字符串的长度计算、字符串的复制和字符串的连接。

通过这个实验,我们进一步熟悉了C语言中的字符串处理函数,并且学会了如何使用循环和数组来处理字符串。

六、实验五:排序算法实验五要求我们编写一个程序,实现对一组数字的排序。

通过这个实验,我们学会了如何使用数组和循环来进行排序算法的实现,并且学会了如何评估和比较不同排序算法的效率。

七、实验六:文件操作实验六要求我们编写一个程序,实现对文件的读写操作。

通过这个实验,我们学会了如何使用C语言的文件处理函数来进行文件的打开、读取和写入,并且学会了如何处理文件指针和文件的结束标志。

八、实验七:数据结构实验七要求我们编写一个程序,实现对链表数据结构的基本操作,包括链表的插入、删除和查找等。

C语言实验报告(完稿)

C语言实验报告(完稿)

宁波工程学院2014 ~ 2015 学年第二学期电信学院C语言课程设计报告题目:学生信息管理系统班级:计科141姓名:林家辉学号:14401010116指导教师:洪立2015 年 6 月目录目录 (2)1.系统功能和结构 (3)1.1系统设计目的 (3)1.2系统功能分析 (4)1.3系统结构分析 (4)2.核心技术介绍 (12)3.函数功能介绍 (13)4.设计体会及总结 (13)参考文献: (14)附录一: (15)1、系统功能和结构1.1.1系统设计目的1、熟练掌握C语言课程中所学的理论知识;2、通过综合C语言的基本知识来解决实际问题;3、加强分析和解决问题的能力。

1.1.2 应用背景21世纪以来,人们的经济高速发展,生活也发生了日新月异的变化,特别是计算机的应用及普及到经济和社会生活的各个领域,而原本的旧管理方案越来越不适应现代社会的发展。

许多人还停留在以前的手写纸质记录文档,这大大阻碍了人类经济的发展。

为了适应现代人们强烈的时间观念,学校的学生信息管理系统软件为学校办公带来了极大的方便,因此,编写一个学生信息管理系统是很有必要的。

通过编写简化版的学生信息管理系统,为以后做软件系统打基础。

并且在信息管理方案越来越电子化的现代,我们可以通过编写小系统的方式来接触并解释系统的内涵。

1.2系统功能分析1.2.1函数功能void open(); //声明打开文件函数void xiugaixitong(); //声明修改学生信息系统函数void look(); //声明学生信息显示系统函数void find(); //声明学生信息查找函数void save(); //声明储存文件函数void tongji(); //声明学生信息统计函数void chaxun(); //声明学生信息查询函数void xiugai(); //修改学生信息函数void input(); //定义添加学生的函数void fenshuduan(); //按分数段查询1.2.2系统结构分析FILE *fp; //定义文件指针int count=3; //全局变量,为学生的数目,默认初始读取文件后有3名学生char filename[20]; //操作者输入的文件名struct Students //定义学生结构体{num[20]; //学号char name[20]; //姓名int score[5]; /*score[0]存数学成绩score[1]语文成绩score[2]英语成绩score[3]总分score[4]平均分*/ }Student[20]; //全局变量,结构体的名为Student1.2.3 各个函数流程图1.2.3.1 open(); //打开文件的函数/*************************************************Function: void open()Description: 打开文件Calls: //Called By: //Table Accessed: //Table Updated: //Input: // 输入filename文件名Output: // 将文件中的数据给赋值到结构体Student[z]里Return: //Others: // 用fp文件指针打开文件,成功打开则将数据提到结构体中*************************************************/1.2.3.2 xiugaixitong();//声明修改学生信息系统函数/*************************************************Function: void xiugaixitong()Description: 用于修改学生的信息Calls: void input(); 调用输入学生信息函数void xiugai(); 调用修改学生信息函数Called By: int main()Table Accessed: //Table Updated: //Input: int c; 用户输入cSwitch(c)case 1:input();break; //输入1则调用输入学生信息函数case 2:xiugai();break; //输入2则调用修改学生信息函数case 3:break //输入3则调用删除学生函数case 4:break; //输入4则调用查找学生函数case 5:printf("按任意键返回主菜单返回主菜单-------------\n");break; Output: //Return: //Others: // 在主函数switch语句中被调用*************************************************/1.2.3.3 void look()//声明学生信息显示系统函数/************************************************* Function: void look()Description: 用于学生信息在屏幕上的显示Calls: //Called By: // int main()Table Accessed: //Table Updated: //Input: int i; //i用于循环Output: 直接输出到屏幕上Return:Others:*************************************************/1.2.3.4 void tongji() //调用学生信息统计系统/************************************************* Function: void tongji()Description: 用于学生信息统计Calls: //Called By: int main()Table Accessed: //Table Updated: //Input: int n; //用于循环Output: 直接输出到屏幕上Return:Others: //*************************************************/1.2.3.5 void chaxun() //调用学生信息查询系统/*************************************************Function: // 函数名称Description: // 函数功能、性能等的描述Calls: // 被本函数调用的函数清单Called By: // 调用本函数的函数清单Table Accessed: // 被访问的表(此项仅对于牵扯到数据库操作的程序)Table Updated: // 被修改的表(此项仅对于牵扯到数据库操作的程序)Input: // 输入参数说明,包括每个参数的作// 用、取值说明及参数间关系。

c语言实验报告心得总结(精选14篇)

c语言实验报告心得总结(精选14篇)

c语言实验报告心得总结(精选14篇)(经典版)编制人:__________________审核人:__________________审批人:__________________编制单位:__________________编制时间:____年____月____日序言下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。

文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!并且,本店铺为大家提供各种类型的经典范文,如工作报告、合同协议、心得体会、演讲致辞、规章制度、岗位职责、操作规程、计划书、祝福语、其他范文等等,想了解不同范文格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you!Moreover, our store provides various types of classic sample texts, such as work reports, contract agreements, insights, speeches, rules and regulations, job responsibilities, operating procedures, plans, blessings, and other sample texts. If you want to learn about different sample formats and writing methods, please pay attention!c语言实验报告心得总结(精选14篇)【第1篇】c语言实验报告心得总结900字在初学c语言的一个学期后,我们进行了c语言实训阶段,尝试编写一个比较复杂的程序系统。

c语言实验报告总结(范本)

c语言实验报告总结(范本)

c语言实验报告总结‎c语言实验报告总结‎‎篇一:C‎语言上机实验心得C语‎言上机实验心得在科‎技高度发展的今天,计‎算机在人们之中的作用‎越来越突出。

而C语言‎作为一种计算机的语言‎,学习它将有助于我们‎更好的了解计算机,与‎计算机进行交流,因此‎,我们一定要学好C语‎言,这对我们以后的发‎展是十分重要的。

说‎到这,上机实验当然就‎是一个必不可少的环节‎了,C语言灵活、简洁‎的特点,只有通过编程‎实践才能真正了解,真‎正说懂。

为了更好地学‎习语法规定、掌握程序‎设计方法、提高程序开‎发能力,我们必须实际‎上机、编写程序。

通‎过实验我也发现了自己‎不少的问题,这都是只‎看书上的程序而没有自‎己亲身上机编写程序而‎无法得知的,假如我们‎只因看熟书上的程序就‎以为自己已经掌握了C‎语言那就大错特错了。

‎我主要存在以下的这‎些缺点:1、‎学习耐心与细心不足‎,如scanf(“%‎d”, n);中的“‎”有时候会忘了。

而‎在最后输出时又错写‎成printf(“%‎d”, 从而错误得输‎出了地址而不是我原来‎想要的答案。

‎2、编程思想不够发‎散,看着题目有时想不‎出解答的方法,更不用‎说编写程序来解题了‎。

3、‎4、基本功不够,‎有些函数的表达不太精‎通,需要看书来核实,‎以致耗时较多。

知识‎不够广,有些内容没有‎学好,不能要用到时及‎时反映出来,认识程度‎不够深刻。

‎5、6、有‎时候不够精简,有一点‎用处不大或者说没有也‎可以的文字存在。

英‎语水平较差,对错误的‎地方虽然电脑有说,但‎由于是英文,理解上还‎是存在一点问题。

‎为了能更好地学好C语‎言,在今后学习中我要‎更多的动脑,综合运用‎所学,多看相关东西,‎多上机练习,提高电脑‎水平,增强自学能力,‎把已会的东西掌握好。

‎实验中我深刻意识到‎完成程序的编写,决不‎意味着万事大吉。

认为‎万无一失的程序,实际‎上机运行时可能会出现‎很多意想不到的问题。

‎有时编译程序检测出一‎大堆错误,有时程序能‎够顺利运行,但是运行‎结果并不是你预期中想‎要的。

C语言实验报告

C语言实验报告

C语⾔实验报告上机要求:禁⽌玩游戏、看视频及从事与课程⽆关的活动。

实验内容按照指导书内容填写,可以把⾃⼰上机编写的程序、遇到的问题、解决办法写上(得到⾼分的条件)。

在有输⼊输出的程序部分,应该写上输⼊输出的结果,以表⽰程序能正确⼯作。

实验⼀编程环境的使⽤⼀、⽬的和要求1.了解编程环境的使⽤。

2.学会处理简单的错误,观察运⾏结果。

3.掌握基本的输⼊输出。

⼆、实验原理VisualC++6.0是⼀个集成的开发环境,包括编辑、编译连接和调试。

编写程序的主要过程是:建⽴⼯作区、建⽴⼯程、添加源⽂件、输⼊程序、运⾏程序、改正出现的错误直到有正确的输出结果。

三、实验内容及步骤1.编程环境的使⽤。

(1)打开VisualC++6.0开发环境。

(2)单击“⽂件-〉新建”菜单命令,显⽰出“新建”对话框(如图1-3)。

在新建对话框单击“⼯程”标签,选中Win32 Console Application项,然后在⼯程框中键⼊控制台应⽤程序项⽬名称,并且选中空⼯程。

(3)添加C++源⽂件,输⼊⽂件名。

(4)打开编辑窗⼝,输⼊程序,保存。

(5)编译运⾏程序,找到其错误位置,改正错误。

2.编写如下程序,从键盘读⼊两个整数,计算它们的和差积商,将结果输出在屏幕上。

3.编写如下程序,从键盘读⼊两个字符,并输出在屏幕上。

四、思考问题1.如何使⽤不同的数据类型。

2.如何处理输⼊输出。

3.如何查找程序中的错误?实验⼆选择结构⼀、⽬的和要求1. 掌握if ...else 及其嵌套的⽤法。

2. 掌握switch 的⽤法。

⼆、实验原理if 语句是专门⽤来实现选择结构的语句,是根据⼀个条件满⾜与否来决定是否执⾏某条语句或从两个语句中选择⼀个语句执⾏。

if-else 语句的⼀般格式为:if (表达式1) 语句1else if (表达式2)语句2……else if (表达式n )语句nelse 语句n+1当程序中有多个条件判断时,若使⽤if 语句可能使嵌套太多,降低了程序的可读性,switch 语句能很好的解决这个问题。

c语言实验报告实验

c语言实验报告实验

c语言实验报告实验C 语言实验报告实验一、实验目的本次 C 语言实验的主要目的是通过实际编程操作,加深对 C 语言基本语法、数据类型、控制结构、函数等知识的理解和运用,提高编程能力和解决实际问题的能力。

二、实验环境操作系统:Windows 10编译器:DevC++ 511三、实验内容(一)基本数据类型与运算1、定义不同类型的变量,如整型(int)、浮点型(float、double)、字符型(char)等,并进行赋值和基本运算。

2、观察不同数据类型在内存中的存储方式和取值范围。

(二)控制结构1、编写使用 ifelse 语句实现条件判断的程序,根据输入的数值输出不同的结果。

2、运用 for 循环和 while 循环结构,实现计算指定范围内的整数和、平均值等。

(三)数组与字符串1、定义数组并进行初始化,实现数组元素的遍历和操作。

2、处理字符串的输入、输出和基本操作,如字符串的连接、比较等。

(四)函数1、定义和调用自定义函数,实现特定功能,如计算阶乘、判断素数等。

2、理解函数的参数传递方式(值传递和地址传递)。

四、实验步骤及代码实现(一)基本数据类型与运算```cinclude <stdioh>int main(){int num1 = 10;float num2 = 314;char ch ='A';printf("整型变量 num1 的值为:%d\n", num1);printf("浮点型变量 num2 的值为:%f\n", num2);printf("字符型变量 ch 的值为:%c\n", ch);int sum = num1 +(int)num2;printf("num1 和num2 的和(强制转换为整型)为:%d\n",sum);return 0;}```(二)控制结构1、 ifelse 语句```cinclude <stdioh>int main(){int num = 5;if (num > 10) {printf("数字大于 10\n");} else {printf("数字小于或等于 10\n");}return 0;}```2、 for 循环```cinclude <stdioh>int main(){int sum = 0;for (int i = 1; i <= 10; i++){sum += i;}printf("1 到 10 的整数和为:%d\n", sum);return 0;}```3、 while 循环```cinclude <stdioh>int main(){int num = 1;int product = 1;while (num <= 5) {product = num;num++;}printf("1 到 5 的乘积为:%d\n", product);return 0;}```(三)数组与字符串1、数组```cinclude <stdioh>int main(){int arr ={1, 2, 3, 4, 5};for (int i = 0; i < 5; i++){printf("数组元素 arr%d 的值为:%d\n", i, arri);}return 0;}```2、字符串```cinclude <stdioh>include <stringh>int main(){char str1 ="Hello, ";char str2 ="World!";char str320;strcpy(str3, str1);strcat(str3, str2);printf("连接后的字符串为:%s\n", str3);int result = strcmp(str1, str2);if (result == 0) {printf("两个字符串相等\n");} else if (result < 0) {printf("str1 小于 str2\n");} else {printf("str1 大于 str2\n");}return 0;}```(四)函数1、计算阶乘```cinclude <stdioh>int factorial(int n) {if (n == 0 || n == 1) {return 1;} else {return n factorial(n 1);}}int main(){int num = 5;int fact = factorial(num);printf("%d 的阶乘为:%d\n", num, fact);return 0;}```2、判断素数```cinclude <stdioh>int isPrime(int n) {if (n <= 1) {}for (int i = 2; i i <= n; i++){if (n % i == 0) {return 0;}}return 1;}int main(){int num = 7;if (isPrime(num)){printf("%d 是素数\n", num);} else {printf("%d 不是素数\n", num);}return 0;}五、实验结果与分析(一)基本数据类型与运算程序运行结果符合预期,不同数据类型的变量能够正确存储和运算,对浮点型数据的强制类型转换也能得到正确的结果。

C语言程序实验报告--谭浩强

C语言程序实验报告--谭浩强

C语言程序设计实验报告学校:内蒙古科技大学经济与管理学院班级:信息管理与信息系统2011级姓名:王*学号:**********目录实验一C语言开发环境建立 (3)实验二C语言程序初步 (3)实验三变量与赋值 (4)实验四运算符与表达式 (5)实验五数据类型 (7)实验六控制台输入/输出 (9)实验七关系运算与逻辑运算 (11)实验八分支程序的测试与调试 (12)实验九条件型循环结构及其测试 (16)实验十计数型循环结构及其测试 (20)实验十一函数及其测试 (24)实验十二变量的储存性质 (26)实验十三数组 (30)实验十四指针 (32)实验十五结构体和共用体 (37)实验十六文件 (40)实验11、实验目的与要求(1)掌握C语言开发环境的软/硬件配置和安装方法。

(2)为了自己的方便进行工作环境配置。

(3)测试所建立的C语言程序开发环境。

2、实验测试一个简单的程序,对所建立的程序开发环境进行测试例如,可以准备一个简单的程序如下。

#include <stdio.h>int main(void){printf("I am studying programming with C.");}编译结果运行结果3.分析与预期结果相同实验21.实验目的与要求(1)进一步熟悉c语言程序设计环境。

(2)明确c语言程序的结构。

2. 程序检测与调试程序一错误程序:main()(printf("This is c program.");)调试结果:程序缺少“#include<stdio.h>”,main函数下面应该是“{}”而不是“()”。

改正后的程序:#include<stdio.h>main(){printf("This is c program.\n");}程序二错误程序:#include<stdio.h>;main(){a=3,b=5;c=a*b;printf("The product is:",c)}调试结果:“#include<stdio.h>”后面没有“;”,对变量a,b,c没有定义,“}”前缺少“;”。

c语言程序设计实验报告

c语言程序设计实验报告

c语言程序设计实验报告C语言程序设计实验报告一、实验目的1. 熟悉C语言的基本语法和程序结构。

2. 掌握C语言的基本输入输出操作。

3. 学会使用C语言进行简单的数据处理。

二、实验环境- 操作系统:Windows 10- 编译器:Visual Studio 2019- 开发工具:Visual Studio Code三、实验内容本次实验主要包括以下几个部分:1. 编写一个C语言程序,实现基本的输入输出功能。

2. 编写一个C语言程序,实现简单的数学运算。

3. 编写一个C语言程序,实现数组的基本操作。

四、实验步骤4.1 实验一:基本输入输出编写一个程序,要求用户输入一个整数和一个浮点数,然后输出这两个数的和。

```c#include <stdio.h>int main() {int num1;float num2;printf("请输入一个整数和一个浮点数:");scanf("%d %f", &num1, &num2);printf("整数和浮点数的和是:%f\n", num1 + num2);return 0;}```4.2 实验二:数学运算编写一个程序,实现两个整数的加、减、乘、除运算,并输出结果。

```c#include <stdio.h>int main() {int a, b;printf("请输入两个整数:");scanf("%d %d", &a, &b);printf("加法结果:%d\n", a + b);printf("减法结果:%d\n", a - b);printf("乘法结果:%d\n", a * b);printf("除法结果:%d\n", a / b);return 0;}```4.3 实验三:数组操作编写一个程序,实现对整型数组的初始化、遍历和求和。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言实验报告九数学与软件科学学院实验报告学期:_2013_至_2014_ 第1 学期 2013_年12_月09_日课程名称: 程序设计基础教程-C语言_ 专业:_数学与应用数学_2012_级_1班实验编号: 09实验项目:结构体和共用__指导教师__ ____姓名:学号:实验成绩:一、实验目的及要求(1) 掌握C语言环境下结构体和共用体类型变量的定义和使用方法;(2) 掌握结构体类型数组的概念和使用;(3) 掌握指向结构体变量的指针变量、尤其是链表概念;二、实验内容1.首先熟悉结构体类型变量的基本声明方法、结构体类型变量的内存分配原则、初始化和引用结构体变量及其成员变量的基本方法;然后掌握结构体变量的输入、输出方法。

(参见教材例10-1~10-5)2.基于结构体数组的应用实验。

(1) 有n个学生,每个学生的数据包括学好(num)、姓名(name[20])、性别(sex)、年龄(age),以及三门课程的成绩(score[3])。

要求:在main()函数中输入这些学生的这些数据,然后设计一个函数count()来计算每个学生的总分和平均分,最后,打印出所有数据信息(包含原来输入的学生原始数据信息和求解出来的新信息)。

(2)对第(1)题实验,求出其中成绩最好的人和成绩最差的人,并显示出来。

(假定成绩最好和最差的人都只有一个)(3)*如果假定成绩最好和最差的人的个数不一定唯一,程序应该如何修改才能完成求出所有最好和最差者,以及输出它们来。

3.*链表实验。

(1) 建立一个链表,每个结点包含:职工号、工资。

用malloc()函数开辟新结点,用free()函数回收不用的结点空间。

要求从键盘输入5个员工的数据信息(用create_list()),然后,用函数output_list()将它们一一打印出来,用free_list()将链表中的结点空间回收。

假设职工编号为1001,1005,1008,1010,1101。

注:malloc()和free()为系统函数。

create_list(),output_list(),free_list()为用户自定义函数。

(2)在(1)的基础上,新增一个函数inset_node()插入员工1006和1032的数据信息。

要求新插入的员工后,员工仍然按职工号顺序排列。

(3) 在(2)的基础上,新增一个函数delete_node(),可以用来将指定员工的数据从链表中删除。

(4) 在(3)的基础上,增加回收所删除结点所占内存空间的功能。

(5)*如何查看和测试链表中结点的内存空间地址?能否由此分析(1)、(2)、(3)中链表结点的逻辑结构?三、实验准备:(1) 复习有关结构体方面的所有知识,尤其是10-3-4节所学的动态存储分配技术;(2) 编写所选实验题目的程序代码和流程图;(3) 检查源程序并给出其可能的运行结果说明。

四、实验步骤:(1) 上机验证所选题目的程序设计结果,并做相应测试和分析;(2) 进行实验分析;(3) 总结结构体程序设计和实现的基本方法及其经验,尤其是链表技术;(4) 编写实验报告。

五、实验结果分析与评价(1) 根据测试目标写出测试报告;(2) 测试结果分析说明;(3) 测试程序代码清单。

1.首先熟悉结构体类型变量的基本声明方法、结构体类型变量的内存分配原则、初始化和引用结构体变量及其成员变量的基本方法;然后掌握结构体变量的输入、输出方法。

(参见教材例10-1~10-5)答:(1)结构体声明方法:(先定义结构体类型,再声明结构体变量)struct 结构体数据类型名{类型标识符成员变量名;类型标识符成员变量名;. . . . . .}变量名表列;(2) 结构体类型变量的内存分配原则:其存储空间大小随着成员变量所占存储空间大小而变化。

其存储空间是连续分配的一段存储区域,大小为成员变量所占存储空间之总和。

(3)初始化:初始化列表中值的个数少于结构体成员变量个数时,余下的成员变量自动初始化为0 或NULL。

反之,将出现编译型错误:(4)引用结构体变量:既可以访问结构体中的成员变量,也可以将结构体变量作整体引用。

(5)结构体变量的输入、输出方法:利用scanf()和printf()函数完成利用gets()和puts()函数完成例题分析:例10-1 测试结构体数据类型student所占的存储空间长度程序如下:#include <stdio.h>struct student /*定义一个结构体*/{int nStno;char cName[20];char cSex;int nAge;float fScore;char cAddr[30];}struStud;int main(void) /*主函数,主要测试各个结构体的内存大小*/{int nSizeStud;printf("size of struStud are %d and %d.\n",sizeof(struct student),sizeof(struStud));nSizeStud=sizeof(struStud.nStno)+sizeof(ame)+sizeof(struStud.cSex);nSizeStud+=sizeof(struStud.nAge)+sizeof(struStud.fScore)+sizeof(struStud.cAdd r);printf("total size is %d\n",nSizeStud);return 0;}运行结果如下:结果分析:此例题主要是要我们掌握,结构体的所占的空间长度是怎么样的。

Int 占两个字节,char占一个字节,数组占30个,一共就有59个字节。

空间长度就是59.结构体存储空间以所有成员变量所需存储空间大小为分配依据。

sizeof()内可以是结构体数据类型标识符,也可以是结构体变量。

结果和计算各成员变量内存空间大小之和一致。

注意:sizeof()中,用结构体数据类型名测试大小必须以数据类型标识符形式表述。

否则,编译器将报告“Undefined symbol”结构体数据类型名“in function…”错误。

例10-3 输入并输出学生成绩记录#include <stdio.h>struct score_type /*定义一个结构体*/{int nStno;int nAge;float fScore;};int main(void) /*主函数*/{struct score_type struStud; /*声明一个结构体*/printf("enter nStno,nAge,fScore::");scanf("%d%d%f",&(struStud.nStno),&struStud.nAge,&struStud.fScore);printf("nStno=%d,nAge=%d,fScore=%1f\n",struStud.nStno,struStud.nAge,\struStud.fScore);return 0;}运行结果:Enter nStNo.nAge,fscore:1,20,95.5nStNo = 1,nAge = 20,fScore = 95.5结果分析:对结构体成员变量的访问用圆点操作符“·”,它被称为成员操作符,圆点运算优先级最高且是自左向右的结合,其具体格式如下:结构体变量名.成员变量名,它表示要访问结构体变量下的成员变量名域;由于取地址操作符优先级低于圆点操作符,对成员变量地址的引用可以不加括号。

然后还要注意在结构体定义完成后要记住加分号。

2.基于结构体数组的应用实验。

(1) 有n个学生,每个学生的数据包括学号(num)、姓名(name[20])、性别(sex)、年龄(age),以及三门课程的成绩(score[3])。

要求:在main()函数中输入这些学生的这些数据,然后设计一个函数count()来计算每个学生的总分和平均分,最后,打印出所有数据信息(包含原来输入的学生原始数据信息和求解出来的新信息)。

程序如下:#include<stdio.h>#include<stdlib.h>#define STUD_NUM 2 /*宏定义*/struct stud_info /*定义一个结构体*/{int num;char name[20];char sex;int age;int score[3];} ;void stud_gets(struct stud_info *studPtr,const int no);/*声明外部函数*/ void stud_input(struct stud_info *stud_arr,const int num);void stud_output(const struct stud_info *stud_arr,const int num); void stud_gets(struct stud_info *studPtr,const int no)/*分别定义*/ {int j,h;char cTemp[10];printf("The no %d's info is:\n",no);printf("num=");gets(cTemp);studPtr->num=atoi(cTemp);for(h=0;h<20;h++) {studPtr->name[h]=0;}printf("name=");gets(studPtr->name);printf("sex=");studPtr->sex=getchar();getchar();printf("age=");scanf("%d",&(studPtr->age));getchar();printf("\n score=");for(j=0;j<3;j++){scanf("%d",&(studPtr->score[j]));}getchar();}void stud_input(struct stud_info *stud_arr,const int num){int i;struct stud_info *studPtr=stud_arr;printf("Please input students'info.\n");printf("(num name sex age score)\n");for(i=0;i<num;studPtr++,i++) stud_gets(studPtr,i+1);return;}void stud_output(const struct stud_info *stud_arr,const int num) {int i;struct stud_info *studPtr;studPtr=stud_arr;printf("Information of the students are::\n");printf("\nnum name sex age score:\n");for(i=0;i<num;studPtr++,i++){printf("%-8d%-8s%-8c%-8d%-8d%-8d%-8d",studPtr->num,studPtr->name,studPtr->sex,studPtr->age,\studPtr->score[0],studPtr->score[1],studPtr->score[2]);return;}}void count(const struct stud_info *stud_arr,const int num){int i,snum,ave,max;char *pt;struct stud_info *studPtr=stud_arr;for(i=0;i<num;studPtr++,i++) {snum=studPtr->score[0]+studPtr->score[1]+studPtr->score[2]; ave=snum/3;if(i==0){max=snum;pt=studPtr->name;}else{if(max<snum) pt=studPtr->name;}printf("\n\nthe %d's score is %d\n ave is %d",num,snum,ave); }printf("\n\n\nthe best is ");for(i=0;i<20;i++){if(pt[i]!=0)printf("%c",pt[i]);}return;}int main(void){struct stud_info studArr[STUD_NUM]; clrscr();stud_input(studArr,STUD_NUM);stud_output(studArr,STUD_NUM);count(studArr,STUD_NUM);return 0;}运行结果如下:分析:程序分成六个模块,分别是结构体,struct stud_info,void stud_gets ,void stud_input,void stud_output,void count,main(void)这六个模块,程序首先声明了一个宏体(学生个数),然后进行了结构体的定义(学生信息结构),然后是构造获得学生信息的程序(输入三个学生信息),然后是输出程序(输出三个学生的信息),最后是主控制模块。

相关文档
最新文档