C语言实验报告 生物1101 李谋鸿20111638

合集下载

2023最新-c语言程序设计实验报告【2篇】

2023最新-c语言程序设计实验报告【2篇】

c语言程序设计实验报告【2篇】c语言程序设计实验报告篇一实验名称计算出1000以内10个最大素数之和实验目的1、熟练掌握if、if…else、if…else if语句和witch语句格式及使用方法,掌握if语句中的嵌套关系和匹配原则,利用if语句和switch语句实现分支选择结构。

2、熟练掌握while语句、do…while语句和for语句格式及使用方法,掌握三种循环控制语句的循环过程以及循环结构的嵌套,利用循环语句实现循环结构。

3、掌握简单、常用的算法,并在编程过程中体验各种算法的编程技巧。

进一步学习调试程序,掌握语法错误和逻辑错误的检查方法。

实验内容计算并输出1000以内最大的10个素数以及它们的和。

要求:在程序内部加必要的注释。

由于偶数不是素数,可以不考虑对偶数的处理。

虽然在1000以内的素数超过10个,但是要对1000以内不够10个素数的情况进行处理。

输出形式为:素数1+素数2+素数3+…+素数10=总和值。

算法描述流程图main函数:判断素数:源程序#include#includeint sushu(int n)/* 判断素数的函数*/{int t,i;t=sqrt(n);for(i=2;i=t;i++)if(n%i==0)/* 如果不是素数,返回0 */return 0;return n;/* 如果是素数,返回该数*/}void main(){int i,j=0,n,m=0,a[1000],x;/*clrscr();*/printf(please input a number form 1 to 1000:);scanf(%d,amp;x);if(x==2)/* x=2时的处理*/printf(%dn,x);else if(x=1) /* x在1~1000范围外时的处理*/printf(error!n);else{if(x%2==0)/* x为偶数时,把x变为奇数*/x--;for(i=x;i1;i-=2)/* x为奇数时,做函数计算*/{n=sushu(i);/* 做判断素数的函数调用*/if(n!=0)/* 对素数的处理*/{a[j]=n;/* 把素数由大至小存入数组a[ ]中*/j++;if(j11)m+=n; /* 统计前10个素数之和*/}}if(j10)/* 当素数个数小于10个时,结果输出*/{for(i=0;i{n=a[i];printf(%d,n);printf(+);}printf(2=);printf(%dn,m+2);}else for(i=0;i10;i++)/* 当素数个数大于等于10个时,结果输出*/{n=a[i];printf(%d,n);if(i9)printf(+);else{printf(=);printf(%dn,m);}}}}测试数据分别输入1000、100、10测试。

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语言实验报告在生活中,报告有着举足轻重的地位,报告具有语言陈述性的特点。

相信许多人会觉得报告很难写吧,下面是小编为大家整理的C语言实验报告,仅供参考,欢迎大家阅读。

C语言实验报告1一周的C语言实训,虽然时间略显仓促,但却让我学到了很多实际运用的技能!一、心得与感想首先,在实训中的第一步是编写功能较为单一的小程序,虽然是小程序,但所用的知识却都是我们本学期学习的重点知识。

在做题的过程中让我们把这些知识复习了一遍,强化了知识!其次,这次作中所碰到的题目,在实训中已经接触过,所我们都比较深知这些题目的要求和算法,因次在编写小程序时比较快,而且算法也是比较简化,运算准确。

鉴次我明白很多编程题要经过多次编写修改与调试,才会得到最简略的算法。

再次,平时我们学C语言视乎都是为了考试或者做一些比较常规的题目,而这次实训却给我们的将所学知识运用于解决实际问题的机会,让人更有激情,这就是编写软件的在雏形,也让我们感受到了编写软件程序的乐趣。

但是不仅仅是如此,更为重要的是在运用所学知识的过程中,记住这些知识,并能够广泛的运用!虽然我这次是编写一个菜单的程序,但是如果我么留心的话,我们身边有许多电子设备都是内置有程序的,我们也可以在此次专题实训过后,自行确定其他的专题进行编写程序,这样可以让我们的知识更加深化丰富!这次实训似乎是对我巨大的考验,程序在不慌不忙的进行着,按照我自身的进度,提前完成是没有问题的,但是很多客观条件让我不得不在最后的时间里才上交的作业。

每当我把程序写完以后,却由于每一台电脑的识别格式不一样而导致我所写的文件一次次的被损坏,尽管这样,我仍然没有放弃,最后还赶在截止时间到来之前上交了我的作业!这一次编写大作业的程序又让我感受到学程序可以锻炼缜密的思维了。

因为平时练习的都是小程序,所以句段比较少,一些错误都很容易被检查出来,但是这次实训却是上百段的语句,难以检查,似乎也没有经验去怎么检查,那一刹那感觉到很急,但又不知如何是好,可是又不轻易的向老师询问,因为好像蛮简单,相信自己能够检查出来,所以我一般都是独立思考的完成的,只有少部分是在老师和与同学讨论下完成的。

C语言实验报告

C语言实验报告
1068写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的信息
实验总结
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
实验报告(一)
姓名:乔丽龙学号:16110710303
实验
名称
程序设计结构运用,数组运用
指导教师
张福艳
实验
地点
A5--317
实验日期
2016.12.5
实验
目的
1 理解数组的存储特性及元素的引用
2 运用数组解决问题
同组
成员
实验过程
1101字符串逆序ቤተ መጻሕፍቲ ባይዱ出
1065数组逆序输出
1063求矩阵对角线之和
1062对数组排序

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语言程序设计实验报告

C语言程序设计实验报告一、实验目的增强学生对C语言函数的理解和应用能力,提高编程能力。

二、实验要求利用C语言函数实现对一些文件中的数据进行读取、处理和输出,并设计函数完成相应的功能。

三、实验内容和方法本次实验将设计一个程序,实现对一个文本文件中的数据进行读取、处理和输出的功能。

设计思路:1.打开指定的文件,并判断文件是否能够成功打开。

2.读取文件中的数据,并存储到相应的变量中。

3.根据需要进行数据的处理和计算。

4.将处理后的数据输出到文件或屏幕上。

具体步骤:1.首先定义一个函数,用于打开文件,并判断文件是否成功打开。

函数的参数为文件名,返回一个文件指针。

2.定义一个函数,用于读取文件中的数据,并将数据存储到相应的变量中。

函数的参数为文件指针和数据存储变量。

3.定义一个函数,根据需要进行数据的处理和计算,并将结果存储到相应的变量中。

函数的参数为输入数据和输出数据的变量。

4.定义一个函数,将处理后的数据输出到指定的文件或屏幕上。

函数的参数为要输出的数据和输出文件的指针。

四、实验过程1.实验环境准备确保系统中已安装C语言的编程环境,如Code::Blocks等。

2.创建源文件在编程环境中创建一个源文件,命名为experiment.c。

3.编写源代码```c#include <stdio.h>FILE* openFile(char* filename)FILE* fp = fopen(filename, "r");if (fp == NULL)printf("Open file failed.\n");return NULL;}return fp;void readFile(FILE* fp, int* data)for (int i = 0; i < 3; i++)fscanf(fp, "%d", &data[i]);}void processData(int* input, int* output) for (int i = 0; i < 3; i++)output[i] = input[i] * input[i];}void printData(int* data, FILE* fp)for (int i = 0; i < 3; i++)fprintf(fp, "%d ", data[i]);}fprintf(fp, "\n");int maiFILE* inputFile = openFile("input.txt"); int input[3];int output[3];if (inputFile != NULL)readFile(inputFile, input);processData(input, output);FILE* outputFile = fopen("output.txt", "w");if (outputFile != NULL)printData(output, outputFile);fclose(outputFile);} elseprintf("Open output file failed.\n");}fclose(inputFile);}return 0;```五、实验结果与分析程序运行后,会打开一个名为input.txt的文件,从文件中读取3个整数,并将它们的平方结果写入output.txt文件中。

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

语言程序设计实验报告
1实验目的
1.熟练掌握if、if...else、if...else if语句,掌握if语句中的嵌套关系和匹配原则,利用if语句实现分支选择结构。

2.熟练掌握for语句格式及使用方法
3.掌握简单、常用的算法,并在编程过程中体验各种算法的编程技巧.进一步学习调试程序,掌握语法错误和逻辑的检查方法。

4.掌握C函数的定义方法,函数的调用方法,参数说明以及返回值,掌握实参与形参的对应关系以及参数之间的“值传递”的方式。

5.在编程的过程中加深函数调用的设计思想。

2实验内容
编写计算函数Y值的程序。

(1+x),x<2
Y= 1+(x-2)*(x-2),2<=x<4
(x-2)*(x-2)+(x-1)*(x-1)*(x-1) ,4<=x
要求:1.利用if-else-if语句
2.X,Y为单精度类型
3.通过scanf函数输入x的值
4.输出结果形式:x=取值,y=计算结果值
5.运行程序,针对x不同取值范围分别输入x,以验证y是否正确
4源程序
#include<stdio.h>
#include<math.h>
main()
{
float x,y;
scanf("%f",&x);
if (x<2)
y=1+x;
else if (x<4)
y=1+(x-2)*(x-2);
else
y=(x-2)*(x-2)+(x-1)*(x-1)*(x-1); printf("x=%f,y=%f",x,y);
}
5测试数据
测试数据分别为:0, 3,5
6运行结果
当测试数据为 0 时:
当测试数据为 3 时:
当测试数据为 5 时:
7出现问题及解决方法
因为要求“输出格式为:x=取值,y=计算结果值;”所以采用printf("x=%f,y=%f",x,y);从而使输出结果符合题目要求。

8实验心得
通过该实验,我对分支(if,if``else,if```else if```)的用法更加熟练,并掌握了函数的定义与调用,并对C程序设计有了总体的认识。

C语言程序设计实验报告
1实验目的
1.熟练掌握while语句,do-while语句,和for语句,利用3中循环语句实现循环结构;
2.熟练掌握简单常用算法。

3.掌握简单、常用的算法,并在编程过程中体验各种算法的编程技巧.进一步学习调试程序,掌握语法错误和逻辑的检查方法。

4.掌握C函数的定义方法,函数的调用方法,参数说明以及返回值,掌握实参与形参的对应关系以及参数之间的“值传递”的方式。

5.在编程的过程中加深函数调用的设计思想。

3实验内容
输出1000以内的最大10个素数以及它们的和
要求1)可以不对偶数进行处理
2)输出形式为:素数1+素数2+……+素数10=总和值
4算法描述流程图
4源程序
#include<stdio.h>
#include<math.h>
main()
{
int m,i,k,a[10],n=1,s=0;
for(m=999;;m=m-2)
{
k=(int)sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)
break;
if(i>=k+1)
{a[n]=m;
n++;
s=s+m;
}
if(n>=11)
break;
}
printf("%d+%d+%d+%d+%d+%d+%d+%d+%d+%d=%d\n", a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],a[10],s);
}
5测试数据
1000
6运行结果
7出现问题及解决方法
1)在本实验中,需按要求的格式输出“素数1+素数2+...+素数10=总和值.”,因采用
printf("%d+%d+%d+%d+%d+%d+%d+%d+%d+%d=%d\n",
a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],a[10],s);从而满足实验要求。

2)对c语言编程不熟练,导致编程很是困难,经过认真地学习课本的内容和做实验后编程有所改善。

3)实验的过程中会忘记声明变量,得认真地检查发现问题。

4)判断素数的程序编写错误,在同学的帮忙下得以解决。

8实验心得
通过该实验,我对分支(if,if``else,if```else if```)和循环结构(for,while,do```while)的几种用法更加熟练,并掌握了函数的定义与调用,参数说明以及返回值使用。

并对C程序设计有了总体的认识。

相关文档
最新文档