C语言课外编程实验报告1
- 格式:doc
- 大小:157.00 KB
- 文档页数:19
《C语⾔程序设计》实验报告(实验1-12)《C语⾔程序设计》实验报告2013~2014学年第⼆学期班级姓名学号指导教师实验⼀实验项⽬名称:C程序的运⾏环境和运⾏C程序的⽅法所使⽤的⼯具软件及环境:Visual C++ 6.0⼀、实验⽬的:1.了解在Visual C++ 6.0环境下如何编辑、编译、连接和运⾏⼀个C程序;2.通过运⾏简单的C程序,初步了解C源程序的特点。
⼆、预习内容:教材《C语⾔程序设计教程》第1章。
三、实验内容:1. 在Visual C++ 6.0环境下输⼊并运⾏下⾯的程序:#includeint main( ){printf("This is a C program.\n");return 0;}2. 在Visual C++ 6.0环境下输⼊下⾯的程序(有语法错误),编译、连接、调试该程序,直⾄程序⽆语法错误,然后运⾏程序,并观察分析运⾏结果。
#includeint main( ){int a,b,suma=3;b=4;sun=a+b;print(“%d+%d=%d\n”,a,b,sum);return 0;}四、实验结果:1. 运⾏结果(或截图):This is a C program.Press any key to continue2. (1) 改正后的源程序:#includeint main( ){int a,b,sum;a=3;b=4;sum=a+b;printf("%d+%d=%d\n",a,b,sum);return 0;}(2) 运⾏结果(或截图):3+4=7五、思考题:1. ⼀个C程序上机的步骤有哪些?答:上级输⼊与编辑源程序—对原程序进⾏编译–与库函数链接–运⾏可执⾏的⽬标程序。
2. 组成C程序的基本单位是函数,⼀个函数包括哪⼏个部分?答:⼀个函数包括两部分:分别为函数头或函数⾸部和函数体。
成绩指导教师签名实验⼆实验项⽬名称:数据类型、运算符和表达式所使⽤的⼯具软件及环境:Visual C++ 6.0⼀、实验⽬的:1.掌握整型、实型与字符型这三种基本类型的概念;2.掌握常量及变量的使⽤⽅法;3. 掌握基本算术运算符及其表达式的使⽤⽅法;4. 掌握++、--运算符、赋值运算符及其表达式的使⽤⽅法。
《程序设计基础》实验报告{float a, b;printf_s("please input cost price of TV:");scanf_s("%f", &a);b = a*K;printf_s("the current price of TV:");printf_s("%f", b);return 0;2、#include"stdafx、h"int main(){int a, b, c, d, e, f;printf_s("please input three figures:");scanf_s("%d", &a);b = a / 100;c = a % 100;d = c / 10;e = c % 10;f = e * 100 + d * 10 + b;printf_s("the new three figures:");printf_s("%d", f);return 0;}3、#include"stdafx、h"int main(){float a, b, c, d, e;printf_s("please input scores:\n");scanf_s("%f%f%f", &a, &b, &c);d = a + b + c;e = (a + b + c) / 3;printf_s("the total scores:");printf_s("%5、1f\n", d);printf_s("the average scores:");printf_s("%4、1f\n", e);return 0;}4、#include"stdafx、h"int main(){float a, b;printf("please input a number:");scanf_s("%f", &a);printf_s("the integer part is:");printf_s("%d\n", (int)a);b = a - (int)a;printf_s("the decimal part is:");printf_s("%2、1f", b);return 0;}5、#include"stdafx、h"int main(){int x, d, s;x = 298;d = x / 60;s = x % 60;printf_s("the minnutes is:");printf_s("%d\n", d);printf_s("the seconds is:");printf_s("%d", s);return 0;}实验总结:1、初步熟悉C语言运行环境,了解与使用Visual C++ 6、0集成开发环境;2、更加熟悉Visual C++ 6、0环境的功能键与常用的功能菜单命令;3、明白C语言程序的书写格式与C语言程序的结构;4、更加了解了C语言的上机步骤,以及编辑、编译与运行一个C程序的方法;5、初步熟悉Visual C++6、0环境下的程序调试方法。
c语言实验报告册C语言实验报告册。
实验一,C语言基本程序设计。
1. 实验目的。
通过本实验,掌握C语言的基本程序设计方法,包括变量的定义和使用、表达式的计算、控制结构的使用等。
2. 实验内容。
(1)编写一个C程序,实现输入两个整数,然后输出它们的和、差、积和商。
(2)编写一个C程序,实现输入一个实数,计算并输出它的绝对值。
3. 实验步骤。
(1)定义两个整型变量a和b,用来存储输入的整数。
(2)使用printf函数提示用户输入两个整数,并使用scanf函数将用户输入的值分别赋给变量a和b。
(3)定义四个整型变量sum、diff、product和quotient,分别用来存储a和b的和、差、积和商。
(4)分别计算a和b的和、差、积和商,并将结果分别赋给sum、diff、product和quotient。
(5)使用printf函数输出sum、diff、product和quotient的值。
4. 实验结果。
输入:a = 5。
b = 3。
输出:sum = 8。
diff = 2。
product = 15。
quotient = 1。
5. 实验结论。
通过本实验,我掌握了C语言的基本程序设计方法,包括变量的定义和使用、表达式的计算、控制结构的使用等。
在实际编程中,我需要注意变量的类型和范围,以避免数据溢出和精度丢失的问题。
实验二,C语言函数的使用。
1. 实验目的。
通过本实验,学习C语言函数的定义和调用,掌握函数参数的传递和返回值的使用。
2. 实验内容。
(1)编写一个C程序,实现输入两个整数,计算它们的最大公约数和最小公倍数。
(2)编写一个C程序,实现输入一个整数n,计算并输出1到n的阶乘之和。
3. 实验步骤。
(1)定义一个函数gcd,用来计算两个整数的最大公约数。
(2)定义一个函数lcm,用来计算两个整数的最小公倍数。
(3)定义一个函数factorial,用来计算一个整数的阶乘。
(4)在主函数中,调用gcd和lcm函数计算最大公约数和最小公倍数;调用factorial函数计算阶乘之和。
福建农林大学金山学院实验报告系(教研室):专业:年级:实验课程:C语言程序设计姓名:学号:实验室号:_计算机号:实验时间:指导教师签字:成绩:实验1:顺序结构程序设计一、实验目的和要求1.了解Visual C++ 6.0/DEV_C++的基本操作方法2.掌握C程序设计的基本步骤:编辑、编译、连接和运行3.掌握各种类型数据的输入输出方法4.能够编写一个简单的程序二、实验内容和原理1. 输入并运行一个简单、正确的程序。
# include <stdio.h>int main( ){printf ("This is a c program!\n");return 0;}2. 要使下面程序的输出语句在屏幕上显示:A,B,34,则从键盘输入的数据格式应为AB34__________ 。
#include<stdio.h>int main(){char a, b;int c;scanf("%c%c%d",&a,&b,&c);printf("%c,%c,%d\n",a,b,c);return0;问题1:要使上面程序的键盘输入数据格式为a=A,b=B,34,输出语句在屏幕上显示的结果也为A,B,34,则应修改程序中的哪条语句?怎样修改?scanf( “a=%c,b=%c,%d”,&a,&b,&c );问题2:要使上面程序的键盘输入数据格式为A,B,34,而输出语句在屏幕上显示的结果为“A”,“B”,34,则应修改程序中的哪两条语句?怎样修改?scanf( “%c,%c,%d”,&a,&b,&c);printf(“\”%c\”,\”%c\”,%d\n”,a,b,c);3、编程求一个圆的周长和面积。
用scanf输入圆半径,输出保留两位小数。
4、输入一个华氏温度F,要求输出摄氏温度C。
实验项目名称:实验一C 语言的运行环境的使用实验目的及要求:1. 了解 Windows 系统下 C 语言的运行环境,熟悉 C 程序编辑、调试、运行的基本操作方法。
2. 熟练掌握编辑、编译、连接和运行 C 程序的方法。
3. 通过运行简单的 C 程序,初步了解 C 源程序的特点。
4. 初步理解 C 语言的数据类型,了解变量定义、变量赋值以及简单运算方法,了解程序运行结果的基本输出方法。
实验内容(方法和步骤):1、编程实现在屏幕上显示如下三行文字Hello, world !Wolcome to the C language world!Everyone has been waiting for程序代码:#include <stdio.h>int main(){printf("Hello,World!\n");printf("Welcome to the C language world!\n");printf(Everyone has been waiting for.\n");return 0;}运行结果:2、编写程序,将两个整数相加,并输出结果。
程序代码:#include <stdio.h>int main(){int a,b,c;a=12;b=26;c=a+b;printf("c=%d\n",c);return 0";}运行结果:3. 编写程序,要求从键盘输入2 个整数,输出其中较大的数程序代码:#include <stdio.h>int main(){int max(int x,int y);int a,b,c;scanf("%d,%d",&a,&b);c=max(a,b);pintf("max=%d",c);return 0;}int max(int x,int y){ int z;if (x>y) z=x;else z=y;return(z);}运行结果:4.输入并运行下程序,观察运行结果。
(此文档为word格式,下载后您可任意编辑修改!)实验名称:熟悉C程序的运行环境一、实验目的和要求了解Turbo C++ 3.0的基本操作方法,学会独立使用该系统编辑、编译、连接和运行一个C程序通过运行简单的C程序,初步了解C源程序的特点二、实验内容和原理1.输入并运行一个简单、正确的程序# include <stdio.( ){printf ("This is a c program\n");}2. 输入一个有错误的程序,修改错误,直到程序能正确运行,分析程序运行结果。
# include <stdio. ( ){ int a, b, suma=123; b=456;sum=a+bprintf("sum is %d\n", sum);}3. 输入并运行一个需要在运行时输入数据的程序,输入数据,观察运行结果。
# include <stdio.( ){ int max (int x, int y);int a, b, c;scanf("%d, %d", &a, &b);c=max(a, b);printf("max=%d",c) ;}int max (int x, int y){ int z;z=y;if (x>y) z=x;return (z);}三、实验环境1. 硬件:PC机;2. 软件:Windows操作系统、TurboC++3.0 。
四、算法描述及实验步骤1. 内容1(1)启动TC++3.0,新建一个C文件;(2)输入程序1;(3)保存文件;(4)编译源程序,观察屏幕上显示的编译信息,修改出现的错误,直到编译成功,再次保存文件;(5)连接程序、运行程序,观察运行结果。
2. 内容2(1)启动TC++3.0,新建一个C文件;(2)输入程序2;(3)保存文件;(4)编译源程序,观察屏幕上显示的编译信息,修改出现的错误,直到编译成功;(5)连接程序、运行程序,观察运行结果。
实验一C语言的运行环境、运行过程和表达式的使用一、目的与要求1、了解Dos、Windows环境下C语言的运行环境,了解所用的计算机系统的基本操作方法,学会独立使用该系统。
2、了解在该系统上如何编辑、编译、连接和运行一个C程序。
3、通过运行简单的C程序,初步了解C源程序的特点。
4、掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用的格式转换符。
5、学会使用C的有关算术运算符,以及包含这些运算符的表达式二、上机实验及运行结果1、例题实验及运行结果例一:#include"stdio.h"void main(){printf("Hello,World!\n");printf("Wolcome to the C language world!\n");printf("Everyone has been waiting for.\n");}运行结果为Hello, world !Welcome to the C language world!Everyone has been waiting for.在第一次输入源程序时,由于粗心在printf(“Hello,world!”)后面忘记输入“;”,在编译中检查出来,修改后编译成功。
例二:#include"stdio.h"void main(){int a,b,sum;a=123;b=456;sum=a+b;printf("sum is %d\n",sum);}运行结果为:sum is 579。
一次编译就成功了。
例三:#include"stdio.h"void main(){int a,b,c;int max(int,int);scanf("%d,%d",&a,,&b);c=max(a,b);printf("max=%d",c);}int max(int x,int y){int z;if (x>y) z=x;else z=y;return(z);}键盘输入“8,9”,屏幕上输出“max=9”例四:#include"stdio.h"void main(){char c1 , c2;c1=97;c2=98;printf("%c %c", c1, c2);}在此基础上1)加一个printf语句,并运行之。
最新c语言实验一实验报告1000字范文整理了c语言实验一实验报告1000字范文,希望能帮助到您。
c语言实验一实验报告1000字范文一1、首先结合老师上课所讲内容,将课本知识点回顾一遍,并将重点知识点摘录到笔记本中,经常翻看,形成自己的知识结构体系,把握最基本的概念。
2、将老师评时布置的作业进行统一的整理,有些有代表性的程序代码可以摘录到笔记本上,一方面可以加深记忆,另一方面也方便自己后来的上机操作,可以经常翻看。
3、将书本上的例题,典型算法,以及老师布置的作业上面的程序全部自己敲一遍,有的可能需要2~3遍,做到最程序了然于心。
并且时常复习,每天可利用各种空隙时间在手机上编程,也可规定一段时间专门用来编程,临近考试的时间,可以每天都编写一段时间,锻炼自己的手感,减少错误率。
4、最后根据老师的建议,就是做题,事实证明这个是极为正确的。
通过做大量的上机实验题,发现自己的问题,如果是概念问题,那就继续回到课本,再将知识点巩固一遍,如果是新的题型,那就记住,下一次便不会再犯错。
通过做习题,你对知识的理解就会更加深一个层次,而且慢慢的你会发现,你开始有了C语言的思维,并且越来越喜欢上它,有时候分析出一个程序题,也是一种快乐。
最后,我想说,做题会使自己有质的飞跃,千万不能忽视做题的过程,还有就是一但有不懂,一定要去问老师,老师常常不仅能帮你解决问题,还可以打开你的思维,做到举一反三。
对于C语言,可以说,我对它是“爱恨交加”。
第一个阶段,我对它是完全不来电的,可以说从来没有一门课让我如此抓狂,刚开始的时候看书都很吃力,而且很难看进去。
整个人完全是懵圈的状态。
第二阶段,我开始对C语言有了一丁点兴趣,在期中考试过后,我意识到问题的严重性,如果自己再不想办法,就真的要出问题了。
第三阶段,我开始努力整理知识点,强迫自己去编代码,慢慢的我发现C语言跟我喜欢的数学也是相通的,它们都极具思维性,有时候你看到自己编的程序运行成功,你会收获莫名的快感。
运行结果:
分析:当对源程序进行编译时,如果屏幕上没有出现“出错信息”,就对其进行运行并得出结果运行结果是会出现如下信息:
得到的运行结果如下:
分析:当写完一个源程序要仔细检查,如果出现错误提醒就按照上面的指示对其进行修改,只有
输入的数为:
运行结果:
分析:如果在输入数时两个数中间用空格符隔开,即
为
当把其改为原来的程序再运行时错误提醒就会消失,并得到和上面的结果一样的结果:
分析:合并后没有出现错误提醒,即这样做是正确的。
输入的三个数为:
分析:在前面的比较两个数中的大数的基础上比较三个数的最大数,只要在输入的源程序没有错。
C语言课外编程实验报告一.实验目的编写程序实现以下功能学生成绩管理系统一班有10名学生,一学期有5门课程,编写程序实现如下功能:(1)录入每名学生的各科成绩(2)求出每名学生的平均成绩和总分(3)求每门课程的平均分、及格率、最高成绩和最低成绩(4)输出总成绩前5名的学生学号、各科成绩和总分(5)输出各科补考学生的学号和成绩要求:(1)编制一个主函数来实现功能菜单的显示和各功能函数的调用;(2)程序设计各步骤的相关文档齐全、清晰。
(3)在所有数据输入处理之前提供必要的提示二.实验相关数据实验所用到的主要算法有:三种基本结构,数组,自定义函数,指针。
N,M为本次实验经常用到的两个常数10和5,分别对应十个学生和五门课。
数组a用于存储所有学生所有课的成绩;数组b用于存储每个学生的姓名;数组c用于存储每个学生的学号;数组d用于存储每个学生的总分;函数input_score用于输入学生成绩;函数student_average用于计算每个学生的成绩平均值;函数student_total用于计算每个学生的总分;函数course_average用于计算每门课的平均分;函数course_jigelv用于计算每门课的及格率;函数course_zuigao用于计算每门课的最高成绩;函数course_zuidi用于计算每门课的最低成绩;函数sort用于输出前五名的信息;函数bukao用于输出补考信息;主函数实现了对所有自定义函数功能的调用。
三.实验内容主函数流程图如下:相关代码如下:int main(){int i,j;input_score();for(i=0;i<N;i++){for(j=0;j<M;j++)d[i]+=a[i][j];}printf("\n");printf("以下是每个学生的平均分:\n"); student_average(a);printf("\n");printf("以下是每个学生的总分:\n"); student_total(a);printf("\n");printf("以下是每门课的平均分:\n"); course_average(a);printf("\n");printf("以下是每门课的及格率:\n"); course_jigelv(a);printf("\n");printf("以下是每门课的最高成绩:\n");course_zuigao(a);printf("\n");printf("以下是每门课的最低成绩:\n");course_zuidi(a);printf("\n");printf("以下是前五名的情况:\n");sort(d);printf("\n");printf("以下是补考情况:\n");bukao(a);printf("\n");return 0;}以下实施严格步骤的分析:(1)对于姓名,学号的输入,只要使用单层循环输入数组b和c的相应项再输出就可以了。
而对于成绩的输入,必须使用双层循环输入对应于某个学生的某门课的成绩,然后再输出。
相关流程图如下:相关代码如下:void input_score(){int i,j;for(i=0;i<N;i++){printf("输入第%d个学生的姓名:",i+1);scanf("%s",&b[i]);printf("输入第%d个学生的学号:",i+1);scanf("%d",&c[i]);for(j=0;j<M;j++){printf("输入该学生的第%d门成绩:",j+1);scanf("%f",&a[i][j]);}}}注:i,j为循环变量。
(2)单个学生成绩的处理,平均分和总分所对应的自定义函数设计思路基本一致,先通过双层循环找出对应于数组a的元素,再通过一个变量s实现累加。
需要注意的是:累加变量s每次循环后要清零;输出时,平均值函数输出的是s/5.0,总分函数输出的则是s。
相关流程图如下:相关代码如下:void student_average(){int i,j;float s;s = 0;for(i=0;i<N;i++){for(j=0;j<M;j++)s+=a[i][j];printf("第%d个同学的平均分是%.2f\n",i+1,s/5.0);s = 0;}}void student_total(){int i,j;float s;s = 0;for(i=0;i<N;i++){for(j=0;j<M;j++)s+=a[i][j];printf("第%d个同学的总分是%.2f\n",i+1,s);s = 0;}}(3)每门课成绩的处理,平均分函数与求每个学生平均分的函数在思路上完全一致,但有一点很重要的不同是i,j 所对应的循环条件改变,而且在累加时,学生平均分函数加的是a[i][j],而课程平均分函数加的是a[j][i],这是二者最重要的不同之处。
相关代码如下:void course_average(){int i,j;float s;s = 0;for(i=0;i<M;i++){for(j=0;j<N;j++)s+=a[j][i];printf("第%d门课的平均分是%.2f\n",i+1,s/10.0);s = 0;}}及格率函数较为简单,只需通过双层循环找出符合要求的个体,用变量p记录元素个数,再除以总数就求出了及格率(用变量q表示)。
需要注意的是在循环末尾p和q都要清零。
相关流程图如下:相关代码如下: void course_jigelv() {int i,j;float p,s,q;s = 10;p = 0;for(i=0;i<M;i++) {for(j=0;j<N;j++)if (a[j][i] >= 60)p++;q = p/s;printf("第%d门课的及格率是%.2f\n",i+1,q);p = 0;q = 0;}}最高成绩和最低成绩函数只要在双层循环中对相邻元素进行比较,求出所需要的最值,再输出即可。
相关流程图如下:相关代码如下:void course_zuigao(){int i,j;float s;for(i=0;i<M;i++){s = a[0][i];for(j=0;j<N;j++)if (a[j][i] > s)s = a[j][i];printf("第%d门课的最高成绩是%.2f\n",i+1,s); }}void course_zuidi(){int i,j;float s;for(i=0;i<M;i++){s = a[0][i];for(j=0;j<N;j++)if (a[j][i] < s)s = a[j][i];printf("第%d门课的最低成绩是%.2f\n",i+1,s);}}(4)要求前五名的具体情况,首先要找出数组中对应的元素。
因此,一个关键问题就是如何在不打乱原数组元素的情况下找出所需的元素。
解决办法是,通过原数组的比较,找出所需元素对应的下标,在输出时只要输出这些下标对应的元素即可。
而在求出下标之前,需要先对总分数组d进行赋值。
相关流程图如下:相关代码如下:void sort(){int i,m1,m2,m3,m4,m5; for(i=0;i<N;i++) {if(d[i]<d[i+1])m1=i+1;}for(i=0;i<N;i++){if(d[i]<d[i+1])if(i+1!=m1)m2=i+1;}for(i=0;i<N;i++){if(d[i]<d[i+1])if(i+1!=m1)if(i+1!=m2)m3=i+1;}for(i=0;i<N;i++){if(d[i]<d[i+1])if(i+1!=m1)if(i+1!=m2)if(i+1!=m3)m4=i+1;}for(i=0;i<N;i++){if(d[i]<d[i+1])if(i+1!=m1)if(i+1!=m2)if(i+1!=m3)if(i+1!=m4)m5=i+1;}printf("第一名的学号是:%d\n第一门成绩是:%.2f\n第二门成绩是:%.2f\n第三门成绩是:%.2f\n第四门成绩是:%.2f\n第五门成绩是:%.2f\n总分是:%.2f\n",c[m1],a[m1][0],a[m1][1],a[m1][2],a[m1][3],a[ m1][4],d[m1]);printf("\n");printf("第二名的学号是:%d\n第一门成绩是:%.2f\n第二门成绩是:%.2f\n第三门成绩是:%.2f\n第四门成绩是:%.2f\n第五门成绩是:%.2f\n总分是:%.2f\n",c[m2],a[m2][0],a[m2][1],a[m2][2],a[m2][3],a[ m2][4],d[m2]);printf("\n");printf("第三名的学号是:%d\n第一门成绩是:%.2f\n第二门成绩是:%.2f\n第三门成绩是:%.2f\n第四门成绩是:%.2f\n第五门成绩是:%.2f\n总分是:%.2f\n",c[m3],a[m3][0],a[m3][1],a[m3][2],a[m3][3],a[ m3][4],d[m3]);printf("\n");printf("第四名的学号是:%d\n第一门成绩是:%.2f\n第二门成绩是:%.2f\n第三门成绩是:%.2f\n第四门成绩是:%.2f\n第五门成绩是:%.2f\n总分是:%.2f\n",c[m4],a[m4][0],a[m4][1],a[m4][2],a[m4][3],a[ m4][4],d[m4]);printf("\n");printf("第五名的学号是:%d\n第一门成绩是:%.2f\n第二门成绩是:%.2f\n第三门成绩是:%.2f\n第四门成绩是:%.2f\n第五门成绩是:%.2f\n总分是:%.2f\n",c[m5],a[m5][0],a[m5][1],a[m5][2],a[m5][3],a[ m5][4],d[m5]);}(5)补考函数也很简单,通过双层循环找出符合要求的元素,输出对应的信息即可。