C语言实验报告九

合集下载

c语言综合实验报告

c语言综合实验报告

c语言综合实验报告《C语言综合实验报告》一、实验目的本次实验旨在通过综合性的C语言编程实践,加深学生对C语言程序设计的理解和掌握,提高学生的编程能力和解决问题的能力。

二、实验内容1. 编写一个简单的C语言程序,实现对用户输入的两个整数进行加法运算并输出结果。

2. 设计一个C语言程序,实现对用户输入的字符串进行逆序输出。

3. 编写一个C语言程序,实现对用户输入的一组整数进行排序并输出排序后的结果。

4. 设计一个C语言程序,实现对用户输入的一组学生成绩进行统计,包括平均分、最高分、最低分等。

三、实验过程1. 首先,对于加法运算的程序,我们使用scanf函数获取用户输入的两个整数,然后利用printf函数输出它们的和。

2. 对于字符串逆序输出的程序,我们使用gets函数获取用户输入的字符串,然后使用循环和数组实现逆序输出。

3. 对于排序程序,我们使用冒泡排序算法对用户输入的整数进行排序,并使用printf函数输出排序后的结果。

4. 对于学生成绩统计程序,我们使用循环获取用户输入的学生成绩,并计算平均分、最高分、最低分等统计信息,最后使用printf函数输出结果。

四、实验结果经过以上步骤,我们成功编写了四个C语言程序,分别实现了加法运算、字符串逆序输出、整数排序和学生成绩统计等功能。

这些程序在实际运行中均能正常工作,并得到了预期的结果。

五、实验总结通过本次实验,我们深入理解了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语言程序设计实验报告学校:内蒙古科技大学经济与管理学院班级:信息管理与信息系统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 语言大实验报告一、实验目的本次 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语⾔程序设计实验》实验报告实验九⽂件编程(⼀)班级:_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实验报告实验名称: C语言实验报告实验内容:本次实验主要针对C语言编程进行实验。

通过实验的设计和完成,检验和加深对C语言的理解和应用能力。

实验步骤:1. 实验准备在开始实验之前,需要准备好以下必要的工具和材料:- 计算机- C语言编译器(比如GCC、Clang等)- 文本编辑器(比如Notepad++、Sublime Text等)2. 实验环境搭建在计算机上安装C语言编译器,并配置好相应的环境变量。

这样可以在终端或命令提示符中执行相关的C程序。

3. 编写实验代码根据实验要求,使用文本编辑器编写C语言代码。

根据实验的要求和功能需求,合理设计和组织代码结构,包括头文件的引用、变量的定义、函数的声明和定义等。

4. 编译和运行代码在命令行或终端中使用编译器对编写好的C语言代码进行编译,并生成可执行文件。

编译命令的具体格式根据不同的编译器而有所差异,但一般形式如下:```gcc -o output_file input_file.c```其中,"output_file"表示生成的可执行文件名,"input_file.c"表示待编译的C源代码文件名。

编译成功后,通过命令行或终端执行生成的可执行文件,检查程序的运行结果是否符合预期。

5. 实验结果分析根据实际运行结果,对实验数据进行分析和归纳。

可以通过输出结果、打印特定信息或观察程序的行为来判断程序是否正确地实现了预期的功能。

6. 实验总结在实验报告中对本次实验的过程、方法、结果进行总结,并提出实验中遇到的问题和解决方法。

同时,对所学习的C语言相关知识点进行总结和归纳,以加深对相关知识的理解和记忆。

实验结果:通过本次实验的设计和实现,我成功完成了对C语言编程的实验,达到了预期的目标。

通过编写实际的代码,我巩固了对C语言语法和基本概念的理解。

在实验过程中,我遇到了一些问题,通过查阅资料和与同学的讨论,我成功解决了这些问题。

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语言的基本语法和编程思想。

具体的实验内容包括:实现简单的算术运算、条件判断、循环结构以及函数调用等基本操作。

C语言是一种广泛应用的程序设计语言,具有简单、高效、灵活的特点。

它使用结构化编程方法,支持面向过程和面向对象的编程风格。

C语言的核心思想是利用变量、表达式、控制流结构和函数等基本元素来构建程序。

二、实验过程和方法:1. 编写算术运算的C程序。

2. 编写条件判断的C程序。

3. 编写循环结构的C程序。

4. 编写函数调用的C程序。

5. 运行程序,观察输出结果。

三、实验结果分析与讨论:通过对实验所编写的C程序进行运行,可以得到相应的输出结果。

下面对实验结果进行分析和讨论。

1. 算术运算的C程序算术运算是C语言的基本操作之一,可以实现加、减、乘、除等数学运算。

在实验中,我们编写了一段简单的算术运算的C 程序,实现了两个数的加法、减法、乘法和除法运算,并输出相应的结果。

通过运行实验程序,可以观察到加法、减法、乘法和除法运算的结果是正确的,符合数学运算规则。

这说明我们编写的算术运算的C程序是正确的。

2. 条件判断的C程序条件判断是C语言中一种重要的控制结构,可以根据特定条件的成立与否来执行不同的操作。

在实验中,我们编写了一段简单的条件判断的C程序,根据输入的数字判断其正负性,并输出相应的结果。

通过运行实验程序,可以观察到当输入的数字为正数时,程序输出“正数”,当输入的数字为负数时,程序输出“负数”,当输入的数字为0时,程序输出“零”。

这符合我们编写程序时设定的条件判断逻辑,说明我们编写的条件判断的C程序是正确的。

3. 循环结构的C程序循环结构是C语言中一种常用的控制结构,可以重复执行特定的操作。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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语言实验报告实验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)。

数学与软件科学学院实验报告学期:_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.cAddr);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)这六个模块,程序首先声明了一个宏体(学生个数),然后进行了结构体的定义(学生信息结构),然后是构造获得学生信息的程序(输入三个学生信息),然后是输出程序(输出三个学生的信息),最后是主控制模块。

相关文档
最新文档