华北水利水电大学C语言实验报告(六)

合集下载

c语言实验报告(附答案版)

c语言实验报告(附答案版)

c语言实验报告(附答案版)实验一、这个实验需要4学时才能完成。

2、目标1。

阅读程序问题1简单确定性问题解决(1)掌握c语言数据类型,熟悉如何定义一个整型、字符型的变量,以及对它们赋值的方法;(2)掌握不同类型数据之间的分配规律;(3)掌握存储器中数据的存储方式;(4)学会输入、输出函数的基本格式和使用方法;(5)学习使用算术运算符、逻辑运算符、关系运算符以及包含这些运算符的表达式。

2、编程题(1)如何使用if-else决策结构进行编程;(2)如何使用开关决策结构进行编程。

3.调整试题(1)熟悉c程序的编辑、编译、连接和运行的过程。

三、实验指导为了达到最佳的实验效果,以下提供了几种适合编程的指南供参考。

1、阅读程序题应先运用自己在课堂所学的知识,推导出结果,在上机时输入计算机,印证自己推导的结果,注意观察数据在内存中的存储方式、含不同种运算符表达式的输出结果。

2.编程问题必须先画流程图,反复思考,判断程序设计的正确性,完成程序设计。

应注意简单确定性问题的结构选择。

3、调试题应明确程序的调试、测试是一项非常烦琐的工作,也是非常重要的工作。

对于初学者来说应该建立良好的习惯,在调试程序的时候,应该尽可能考虑到程序运行时各种可能情况。

-1-四、实验内容1、阅读程序题(1)main(){/*定义字符变量*/charc1,C2;/*为字符变量分配整数*/C1=97;C2=98;printf(\/*以字符形式输出*/printf(\/*以整数形式输出*/}该程序的输出结果是ab(换行)9798。

思考:可以改成intc1、C2吗;输出是什么?完全相同的(2)main(){inta=7,b=5;printf(\}该程序的输出结果是0。

思考:如果将printf语句中的%d更改为%F,可以输出分数的值吗?当然(3)main(){inta=9;a+=a-=a+a;/*包含复合赋值运算符*/printf(\}该程序的输出结果是-18。

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

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

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

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

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

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

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

华北水利水电大学C语言实验6

华北水利水电大学C语言实验6

C语言程序设计实验报告实验6 综合程序设计班级 2013156 学号 201315613 姓名吴浩一、实验目的(1)掌握一维数组和二维数组的定义、赋值和输入输出方法。

(2)掌握字符数组的使用。

(3)掌握与数组有关的算法。

二、实验内容及步骤1、猴子吃桃问题。

猴子第1天摘了若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。

第2天早上又将剩下的桃子吃掉一半,又多吃了一个。

以后每天早上都吃了前一天剩下的一半零一个。

到第10天早上想吃时,只剩下一个桃子了。

求第一天共摘了多少个桃子?程序代码:#include <stdio.h>main(){ int day,x1,x2;day=9;x2=1;while(day>0){x1=(x2+1)*2;/*第一天的桃子数是第2天桃子数加1后的2倍*/x2=x1;day--; }printf("第一天摘的桃子数:%d\n",x1); }2、百马百担问题:100匹马,驮100担货,大马3担,中马2担,两匹小马驮一担,问共有大、中、小马各多少?程序代码:#include<stdio.h>void main(){int i, j;for (i=0;i<34;i++)//大马for (j=0;j<(100-i*3)/2+1;j++)//中马if ((100-i-j)%2==0 && 3*i+2*j+(100-i-j)/2 ==100)printf("大马%d\t中马%d\t小马%d\n",i,j,100-i-j);}3、已有一个已排好序的数组,要求输入一个数,将它插入数组中,保持数组依然有序。

程序代码:#include <stdio.h>void main(){int i,k;int a[6]={1,5,21,67,98};for (i=0;i<5;i++)printf("%d ",a[i]);printf("\n input a int number:\n");scanf("%d",&a[5]);for(i=5;i>0;i--)if(a[i]<a[i-1]){k=a[i-1];a[i-1]=a[i];a[i]=k;}for(i=0;i<6;i++)printf("%d ",a[i]);printf("\n");}4.有一篇文章,共有3行文字,每行有80个字符。

C语言实验报告范文

C语言实验报告范文

C语言实验报告范文一、实验目的本实验旨在通过编写C语言程序,加深对C语言基本语法的理解,并运用所学的知识实现基本的程序控制结构。

二、实验内容1.编写一个程序,实现两个整数之间的数值互换。

2.编写一个程序,实现计算学生的平均成绩并输出。

3.编写一个程序,实现一个简单的计算器,能够实现加、减、乘、除四则运算。

三、实验步骤1.实现整数互换程序(1)首先定义两个整数变量a和b,并且分别赋予初值。

(2)使用第三个变量temp作为中间变量,将a的值赋给temp。

(3)将b的值赋给a,即执行a=b。

(4)将temp的值赋给b,即执行b=temp。

(5)输出交换后的a和b的值。

(6)编译并运行程序,验证结果。

2.实现计算学生平均成绩程序(1)首先定义学生的姓名和成绩的变量。

(2)使用scanf函数依次输入学生的姓名和成绩,并将其保存在定义好的变量中。

(3)使用循环控制将所有学生的成绩进行累加。

(4)计算平均成绩,使用累加的成绩除以学生人数。

(5)输出平均成绩。

(6)编译并运行程序,验证结果。

3.实现简单计算器程序(1)定义两个操作数和运算符的变量。

(2)使用scanf函数依次输入两个操作数和运算符,并将其保存在定义好的变量中。

(3)根据运算符的不同,使用不同的控制结构实现加、减、乘、除四则运算。

(4)输出运算结果。

(5)编译并运行程序,验证结果。

四、实验结果1.整数互换程序输入:a=10,b=20输出:交换后:a=20,b=10验证结果正确。

2.计算学生平均成绩程序输入:学生1:姓名:张三,成绩:85学生2:姓名:李四,成绩:90学生3:姓名:王五,成绩:78输出:平均成绩:84.33验证结果正确。

3.简单计算器程序输入:操作数1:10操作数2:5运算符:*输出:运算结果:50验证结果正确。

五、实验总结通过本次实验,我进一步熟悉了C语言的基本语法和程序控制结构,并成功实现了整数互换、计算平均成绩和简单计算器的功能。

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

C语言程序设计实验报告——实验六
实验心得
c=add(a,b);
printf("sum is %f\n",c);
}
float add(float x,float y)
{
float z;
z=x+y;
return(z);
}
2.调试运行以下程序,分析调用函数前后程序中变量a和b的值是否发生改变?为什么?
void main( )
{
int a=3,b=6;
/*04*/ {
/*05*/ int a=14, b=15, temp;
/*06*/ temp=a/b;
/*07*/ #ifdef DEBUG
/*08*/ printf("a=%d, b=%d \n", a, b);
/*09*/ #endif
/*10*/ printf("temp =%d \n", temp);
#include <stdio.h>
#define NL printf("\n")
#define PRINT(F,V) printf("V=%F\t",V)
#define PRINT1(F,X1) PRINT(F,X1);NL
#define PRINT2(F,X1,X2) PRINT(F,X1);PRINT(F,X2);NL
main( )
{
int a,b,c,d;
float e,f,g,h;
long i,j;
char n,m;
a=1;b=2;c=3;d=4;e=1.5;f=2.5;g=3.5;h=4.5;
i=10;j=100;n='x';m='y';

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)。

华北水院高级语言程序设计(C语言)实验报告(六)
--学年第学期
级专业:学号:姓名:………………………………………………………………………………………………
一、实验题目:指针
二、实验目的:(略)
三、实验内容:
1. 程序验证(略)
2.程序设计
1)分别求出数组中所有3的倍数之和以及5的倍数之和。

形参n给了数组中数据的个数,利用指针three返回3的倍数之和,利用指针five返回5的倍数之和。

例如:数组中的值依次为:1,5,9,2,3,15,11,6,10;则利用指针three返回3的倍数之和33;利用指针five返回5的倍数之和30。

请在下面空白处完善这一函数的功能,并且调试运行出结果。

源代码:运行结果:
#include <stdio.h>
#define N 20
void fun(int *a,int n,int *three,int *five)
{
int i;
*three=0;*five=0;
for(i=0;i<n;i++)
if(a[i]%3==0)
*three+=a[i];
for(i=0;i<n;i++)
if(a[i]%5==0)
*five+=a[i];
}
void main()
{
int a[N]={1,5,9,2,3,15,11,6,10},i,n=9,three,five;
printf("The original data is:\n");
for(i=0;i<n;i++)
printf("%5d",*(a+i));
printf("\n\n");
fun(a,n,&three,&five);
printf("3的倍数之和:%d\n",three);
printf("5的倍数之和:%d\n",five);
}
华北水院高级语言程序设计(C语言)实验报告(六)
--学年第学期
级专业:学号:姓名: ………………………………………………………………………………………………2)从键盘输入一个字符串,实现利用字符指针将字符串的字符顺序逆置并输出。

(例如输入abcdef,输出fedcba)。

请编写相应的程序代码,并调试运行出正确结果。

源代码:运行结果:
#include<stdio.h>
#include<string.h>
void main()
{
int i;
int length;
char str[80];
char s;
printf("请输入一个字符串:\n");
scanf("%s",str);
length=strlen(str);
printf("字符串逆序输出为:\n");
for(i=length;i>0;i--)
{
s=str[i-1];
printf("%c",s);
}
printf("\n");
}
void fun(char *s)
{
int i,length;
char temp;
length=strlen(s);
for(i=0;i<length/2;i++)
{
temp=s[i];
s[i]=s[length-i-1];
s[length-i-1]=temp;
}
}。

相关文档
最新文档