C语言上机实训
- 格式:docx
- 大小:4.80 MB
- 文档页数:27
C上机实验报告实验实验报告:C语言上机实验一、实验目的通过编写C语言程序,掌握C语言的基本语法及应用,提高对C语言程序设计的理解与掌握。
二、实验内容1.编写程序,计算并输出n的阶乘。
2.编写程序,判断输入的年份是否为闰年。
3.编写程序,判断输入的数是否为质数。
4.编写程序,判断输入的字符串是否为回文字符串。
5.编写程序,实现选择排序并输出排序结果。
三、实验过程及结果1.阶乘计算程序```c#include <stdio.h>//函数声明int factorial(int n);int maiint n;printf("请输入一个整数n:");scanf("%d", &n);printf("%d的阶乘为:%d\n", n, factorial(n)); return 0;int factorial(int n)if (n == 0 , n == 1)return 1;} elsereturn n * factorial(n-1);}```实验结果:程序能够正确计算并输出n的阶乘。
2.闰年判断程序```c#include <stdio.h>int isLeapYear(int year);int maiint year;printf("请输入一个年份:");scanf("%d", &year);if (isLeapYear(year))printf("%d是闰年\n", year);} elseprintf("%d不是闰年\n", year);}return 0;int isLeapYear(int year)if (year % 400 == 0 , (year % 4 == 0 && year % 100 != 0)) return 1;} elsereturn 0;}```实验结果:程序能够正确判断输入的年份是否为闰年。
上机实验二变量的定义及基本数据类型一、实验概要1、熟练掌握C语言变量的定义和使用。
2、掌握C语言的基本数据类型。
二、实验内容1.运行下面程序,写出运行结果,并分析原因。
#include"stdio.h"main(){char x,y,z;x='a';y=3+x;printf("%c\t%d\n",x,x);printf("%c\t%d\n",y,y);x=-28;z=98+x;printf("%c\t%d\n",x,x);printf("%c\t%d\n",z,z);}2. 运行下面程序,写出运行结果,并分析原因。
#include"stdio.h"main(){char x,y;x=’a’;y=’B’;printf("%c \n",x-32);printf("%c \n",y+32);}3 运行下面程序,写出运行结果,并分析原因。
#include “stdio.h”main( ){char c1=’a’,c2=’b’,c3=’c’,c4=’\101’,c5=’\116’;printf(“%c%c\t%c\tabc”,c1,c2,c3);printf(“\t\b%c%c\n”,c4,c5);}4. 运行下列程序,写出运行结果。
#include “stdio.h”main( ){char x,y;x=’a’; /*第5行*/y=’b’; /*第6行*/printf(“x=%c,y=%c\n”,x,y);printf(“x=%d,y=%d\n”,x,y);}并分析在下面三种情况下的运行结果:(1)该程序的变量定义原来为char x,y;现在改成int x,y; 运行程序,分析运行结果。
(2)将5、6行改为:x=a;y=b; 再运行程序,分析程序为什么有错误出现。
华南农业大学C语言实验上机实验第四版参考答案c语言程序设计上机实验指导与习题参考答案(第四版)实验1c语言程序初步一、实验目的(1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。
(2)了解在该系统上如何编辑、编译、连接和运行一个c程序。
(3)通过运行简单的c程序,初步了解c程序的特点。
(4)在教师的指导下,学会使用在线评判系统。
二、实验内容1.运行第一个c程序[题目:thefirstcprogram]将下列程序输入visualc++,编译、连接和运行该程序。
#include\main(){printf(\}[具体操作步骤](1)在编辑窗口中输出程序。
(2)留存程序,取名为a1.c。
(3)按照第一章中介绍的方法,编译、连接和运行程序。
(4)按照第三章了解的方法,将代码递交至在线评判系统,系统回到“通过”,则该题顺利完成。
2.在在线评判系统中提交实现了计算a+b功能的程序[题目1001:排序a+b]由键盘输入两个整数,计算并输出两个整数的和。
实现该功能的程序如下,#include\main(){inta,b;scanf(\printf(\}(1)在程序编辑窗口中输出程序。
(2)留存程序,取名为a2.c。
(3)按照前二章中介绍的方法,编译、连接和运行程序。
(4)在程序运行过程中,输入1530l(l则表示输出回车符)(5)如果看到如下输出结果,则表明15+30的结果正确,如果得不到如下结果,则需检查并更正程序。
45(6)按照第三章中了解的方法步入在线评判系统。
(7)显示题目列表,点击题号为1001,题名为“计算a+b”的题目。
(8)查阅回去题目建议后,页面页面下端的“sumbit”,参考第二章递交程序的方法递交程序a2.c。
(9)查看评判结果,如果得到“accepted”则该题通过,否则返回第一步检查程序是否正确。
3实验2基本数据类型、运算和表达式一、实验目的(1)掌握c语言数据类型,熟悉如何定义一个整型和实型的变量,以及对它们赋值的方法。
计算机c语言实训报告计算机c语言实训报告(通用3篇)计算机c语言实训报告篇1一、课题名称:简洁计算器设计一个简洁的程序来模拟计算器的功能。
二、设计目的:1、通过理论学问与实际需求相结合,编辑解决一些日常中的实际问题,培育初步的独立分析和设计力量。
2、了解应用程序设计解决实际问题的详细过程和实现方法,把握应用C语言进行程序设计的基本规范;3、重点把握C语言的程序编写、函数设计、算法设计和程序调试方法;4、初步把握系统开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能。
三、设计任务:1、通过结构体数组和共用体数组来存放输入的每一数字或运算符号的记录(包括1、2、3等数字,+、--、_、等运算符号),然后将其信息存入文件中。
输入一个算术计算式,就在屏幕上显示结果。
2、输入简洁的加减乘除算术计算式,并在屏幕上显示计算结果;四、设计要求:1、用C语言实现程序设计并进行调试;2、画出查询模块的流程图;3、系统的各个功能模块要求用函数的形式实现;4、界面友好(良好的人机互交)。
5、完成设计说明书(A4)。
五、代码设计:#include stdio.h main { float x,y;char operator;printf(x,yun suan fu ,y: ); scanf(%f%c%f,x,operator,y); switch(operator){case +: printf(%.2f+%.2f=%.2f,x,y,x+y); break; case -:printf(%.2f-%.2f=%.2f,x,y,x-y); break; case _:printf(%.2f_%.2f=%.2f,x,y,x_y); break; case /: if(y==0)printf(chushushilingwuyiyi); elseprintf(%.2f/%.2f=%.2f,x,y,x/y); break;default: printf(yunsunfuwuxiao); } }?七、设计总结:学习C程序这门课一个学期了,这是我们学的第一门专业课,所以作为我这个计算机系的同学来说当然非常重要,老师在第一节课说过,C语言是计算机的基础,大多数软件都需要用C语言来编写,通过一个学期的学习,使我初步把握了一些关于这门课的学问这次的课程设计是对我们一个学期来所学的学问的综合考察,里面涉及到了我们大多数所学学问。
c语言实训心得体会范文(精选7篇)c语言实训心得体会范文(精选7篇)某些事情让我们心里有了一些心得后,不如来好好地做个总结,写一篇心得体会,这样我们可以养成良好的总结方法。
那么好的心得体会都具备一些什么特点呢?下面是小编精心整理的c语言实训心得体会范文(精选7篇),仅供参考,大家一起来看看吧。
c语言实训心得体会1两周的上机实习结束了,在这段时间内,我的C语言知识得到了温习,编程能力得到了很大的提高,我觉得这次实习很重要,而且是恰逢其时,当然通过自己编程的过程,也有了一些心得:编程要的是正确的结果,体会的是艰辛的过程,收获的是好心情。
首先编程的时候你不能觉得这是一个繁琐的过程,在遇到出错的时候要有信心解决,不要害怕出错,不能忽略细节,尤其是对标点以及输入输出函数,要正确使用。
其次,编程要有一个扎实的知识储备,没把课本看好,没把例题看好,不会编出正确的程序,同时,如果不多看程序,不断吸收别人的编程思想,就不会编出精彩的程序;当然也不能忽略与别人讨论与请教,在这过程中,我们可以相互交流编程想法,找到解决问题的最佳路径,这种团结协作的精神也是必须要有的。
两周很短,编程的过程却很漫长,思考,编程,改错,运行,这就是编程的感觉。
感谢帮助我,还有一起讨论问题的同学,感觉老师细心的指导,在遇到小问题的时候,他也是很耐心的解答,感谢这次上机机会,让我重新温习了C语言,也让我对明年的等级考试更有信心。
在初学C语言的一个学期后,我们进行了C语言实训阶段,尝试编写一个比较复杂的程序系统。
在这次实训中,我对对C语言有了一个更深的了解认识,也对这个学期学的知识得到巩固,还尝试运行编程,每次运行程序成功,让我对下面的项目就充满信心。
通过自己与同学合作编写程序,最终把最初的理论知识转化基本技能。
这次的实训,使我对C语言的学习产生浓厚的兴趣。
通过这次实训,也使我们发现了许多问题。
在实训中,我们认识到自己还有很多的知识没学好,基础知识没理清,而且许多东西还要去翻书,去上网搜索。
实验一(第1章实验)实验目的:1.掌握运行C语言程序的全过程。
2.熟悉编译环境。
3.初步熟悉C语言程序的语法规定。
4.了解简单函数的使用方法。
实验内容:1.编程且上机运行:求3个整数的和。
2.编程且上机运行:求2个数的和、差、积和商。
3.编程且上机运行:输入3个数,求最大值。
4.编程且上机运行:输入圆的半径,求圆的面积和周长。
5.在屏幕上输出:“hello world!”实验结果:实验二(第3章实验)1.实验目的:理解C语言的类型系统。
实验内容:写程序测试数据-2在类型char,int,unsigned int,long int,unsigned long int 中存储情况。
实验过程:实验结果:参见各种类型的存储实现描述。
2.实验目的:了解混合类型计算中类型的转换规则。
实验内容:写程序测试多种类型数据一起运算时类型的转换及表达式结果的类型。
注意unsigned int和int数据运算时类型转换的方向。
实验过程:/** 类型转换问题* 试问下面两个表达式等价吗?*/#include <stdio.h>#include <stdlib.h>int main() {unsigned int ui,uj;ui = 1;uj = 2;if (ui < uj)printf("\n%u < %u is true !\n", ui, uj);elseprintf("\n%u < %u is false !\n", ui, uj);if (ui - uj < 0)printf("\n%u - %u <0 is true !\n", ui, uj);elseprintf("\n%u - %u <0 is false !\n", ui, uj);system("pause");return 0;}实验结果:参见类型转换规则。
实验一上机操作初步一、实验内容:说明:前三题为必做题目,后两题为选做题目。
1、输出入下信息:(实验指导书P79)*************************Very Good*************************2、计算两个整数的和与积。
(实验指导书P81)3、从键盘输入一个角度的弧度值x,计算该角度的余弦值,将计算结果输出到屏幕。
(书P3)4、在屏幕上显示一个文字菜单模样的图案:=================================1 输入数据2 修改数据3 查询数据4 打印数据=================================5、从键盘上输入两个整数,交换这两个整数。
二、参考答案:1、#include <stdio.h>void main( ){ printf(“********************\n”);printf(“ Very Good\n”);printf(“********************\n”);}2、#include <stdio.h>void main( ){ int a,b,c,d;printf(“Please enter a,b:”);scanf(“%d,%d”,&a,&b);c=a+b;d=a*b;printf(“%d+%d=%d\n”,a,b,c);printf(“%d*%d=%d\n”,a,b,d);}3、#include <stdio.h>#include <math.h>void main( ){ double x,s;printf(“Please input value of x:”);scanf(“%lf”,&x);s=cos(x);printf(“cos(%lf)=%lf\n”,x,s);}4、#include <stdio.h>void main( ){ printf(“==================================\n”);printf(“ 1 输入数据 2 修改数据\n”);printf(“ 3 查询数据 4 打印数据\n”);printf(“===================================\n”);}5、#include <stdio.h>void main( ){ int x,y,t;printf(“Please enter x and y:”);scanf(“%d%d”,&x,&y);t=x; x=y; y=t;printf(“After swap:x=%d,y=%d\n”,x,y);}实验二简单的C程序设计一、实验内容:说明:前四题为必做题目,后两题为选做题目。
实验一C语言程序上机操作(最新)实验一C语言程序上机操作一、实验目的1.熟悉C语言的集成环境,了解菜单的使用方法。
2.掌握一个Turbo C程序上机操作的全过程。
二、操作简介:本实验将进一步介绍TURBO C系统的软件、硬件环境,主菜单、编辑环境的使用等基本操作。
三、实验内容:(一)TURBO C环境简介1.硬件环境IBM—PC或其它兼容机配有一个3寸软盘驱动器,硬盘一个。
2.软件环境⑴ Windows 环境⑵ DOS 环境⑶ UNIX\XENIX环境。
本章仅介绍1.2两部分3. Turbo C 系统运行的软件构成INSTALL.EXE 安装程序文件TC.EXE 集成编译TCINST.EXE 集成开发环境的配置设置程序TCHELP.TCH 帮助文件 读取TCHELP.TCH的驻留程序README 关于Turbo C的信息文件TCCONFIG.EXE 配置文件转换程序MAKE.EXE 项目管理工具TCC.EXE 命令行编译TLINK.EXE Turbo C系列连接器TLIB.EXE Turbo C系列库管理工具C0?.OBJ 不同模式启动代码C?.LIB 不同模式运行库GRAPHICS.LIB 图形库EMU.LIB 8087仿真库FP87.LIB 8087库*.H Turbo C头文件*.BGI 不同显示器图形驱动程序*.C Turbo C例行程序(源文件)其中: 上面的?分别为:T Tiny(微型模式)S Small(小模式)C Compact(紧凑模式)M Medium(中型模式)L Large(大模式)H Huge(巨大模式)(二)TURBO C上机操作过程1.C程序上机步骤流程图如图7.2所示。
2.DOS环境下运行TURBO C(1) 启动DOS系统,在DOS下直接进入TURBO C C:\>CD\TC↙C:\>TC↙(2) 启动TURBO C 系统文件C:\TC>TC ↙图 7.1主菜单(3) 在图7.1主菜单下用F10键和←、→键,选择主菜单中的FILE 项,并由此进入图7.3,用户在图7.3下用↑、↓键选NEW项即可进入编辑程序(新文件)状态。
<<计算机上机实习>>实习报告班级学号/序号姓名指导教师完成日期第一部分:分析设计与说明第二部分:程序框图第三部分:源程序清单第四部分:原始数据第五部分:运行结果第六部分:实习心得第一部分:分析设计与说明第一步:建立一个机械10704班的学生成绩信息文件和学分文件,采用文本文档格式。
第二步:程序设计思定义一个结构体用于存放chengji文件中的数据。
1 .编写菜单,,在主函数中编写菜单,采用二级菜单形式,相应的选项对应相应的函数。
2 .编写第一个函数,用于读取文件chengji中的数据。
3 .编写第一个函数,用于读取文件xuefen中的数据。
4 .编写第二个函数,用于计算平均分和排名次,并将结果保存。
5 .编写第三个函数,计算各分数段的人数,并将结果保存。
6 .编写第四个函数,统计不及格的情况,并将结果保存。
7. 编写第六个函数,作各科成绩的饼状图。
8. 编写第八个函数,矩形表示。
9. 编写第九个函数,用于解线性方程组。
10.编写第九个函数,编写五角星动画函数。
说明:十个函数中,前七个函数属于学生信息管理函数,在第一个二级菜单下,后三个保存在第二个二级菜单下。
主函数起调配其他函数的功能。
第二部分:程序框架主函数函数1:学生管理函数2:解线性方程组动画制作菜单1 菜单2 菜单31.解线性方程组1.线性图1.计算平均分和名次2.作动画2.计算分数段人数3.统计不及格情况4.输入优秀学生5.作分布图6.查找7.删除第三部分:源程序清单# include "stdio.h"# include"conio.h"#include"math.h"#include "stdlib.h"#include "dos.h"# include"graphics.h"#define PI 3.14159#define H PI/180#define N 4struct stu{int num,mingci;char name[20];int score[5];float aver;}stu1[40];struct xuefen{int num;char kcname[20];int xf,a,b,c,d,e;float courseaver ; }course[5];struct chengji{float kcave;float bzcha;int exc;int good;int mid;int pass;int nopass;}chengji[5];main () /*主菜单*/{ char ch1;do{ clrscr();printf("\n\n\n\n\n\n\n\n\n");printf(" **********c语言程序设计上机实习**********\n");printf(" ---------------------\n\n");printf(" 1 学生成绩管理\n\n") ;printf(" 2 解线性方程组 \n\n") ;printf(" 3 动画\n\n");printf(" 4 退出\n\n");printf(" 输出选择序号\n");while ((ch1=getchar(),ch1!='1'&&ch1!='2'&&ch1!='3'&&ch1!='4'));switch(ch1){case'1': section1(); break;case'2': section2(); break;case'3': section3(); break;case'4': exit(0);}}while(1);}section1() /*第1个2级菜单*/{char ch21;do{ clrscr();printf("\n\n\n\n\n\n\n\n\n\n");printf(" **********学生成绩管理系统***********\n");printf(" ---------------------\n\n");printf(" 1. 输入原始数据并显示 2. 计算平均分及名次\n\n") ;printf(" 3. 计算分数段人数 4. 输出课程平均分 \n\n") ;printf(" 5. 统计不及格情况 6. 输出优秀学生 \n\n");printf(" 7. 作分布图 8. 返回上级菜单 \n\n");printf(" 输入选择序号\n");while((ch21=getchar(),ch21!='1'&&ch21!='2'&&ch21!='3'&&ch21!='4'&&ch21!='5'&&ch21!=' 6'&&ch21!='7'&&ch21!='8'));switch(ch21){case'1': function1_1(); break;case'2': function1_2(); break;case'3': function1_3(); break;case'4': function1_4(); break;case'5': function1_5(); break;case'6': function1_6(); break;case'7': function1_7(); break;case'8': return(0);}}while(1);}section2() /*第2个2级菜单*/{char ch22;do{ clrscr();printf("\n\n\n\n\n\n\n\n\n\n");printf(" **********解线性方程组***********\n"); printf(" ---------------------\n\n");printf(" 1.解方程组\n\n");printf(" 2.返回上级菜单\n\n");printf(" 输入选择序号\n");while ((ch22=getchar(),ch22!='1'&&ch22!='2'));switch(ch22){case'1': function2_1(); break;case'2': return(0);}}while(1);}section3() /*第3个2级菜单*/{char ch23;do{ clrscr();printf("\n\n\n\n\n\n\n\n\n\n");printf(" **********作动画***********\n");printf(" ---------------------\n\n");printf(" 1.作动画\n\n");printf(" 2.返回上级菜单\n\n");printf(" 输入选择序号\n");while ((ch23=getchar(),ch23!='1'&&ch23!='2'));switch(ch23){case'1': function3_1(); break;case'2': return(0);}}while(1);}function1_1(){FILE *fp,*fp1,*fp2,*fp3;char strr1[200], strr2[200];int i,j;printf("加入读入原始数据并显示的程序内容\n");if((fp=fopen("C:\\chengji.txt","r"))==NULL){printf("cannot open the file\n");exit(0);}if((fp1=fopen("C:\\chengji1.txt","w"))==NULL){printf("cannot open the file\n");exit(0);}if((fp2=fopen("C:\\xuefen.txt","r"))==NULL){printf("cannot open the file\n");exit(0);}if((fp3=fopen("C:\\xuefen1.txt","w"))==NULL){printf("cannot open the file\n");exit(0);}/*fgets(strr,50,fp);*/fgets(strr1,200,fp);for(i=0;i<40;i++){ fscanf(fp,"%d%s",&stu1[i].num,stu1[i].name);for(j=0;j<5;j++)fscanf(fp,"%d",&stu1[i].score[j]);}/*fputs(strr,50,fp1;*/fprintf(fp1,"学号姓名毛邓三近代史听力英语高数\n ");for(i=0;i<40;i++){ fprintf(fp1,"%-5d%-10s",stu1[i].num,stu1[i].name);for(j=0;j<5;j++)fprintf(fp1,"%-8d",stu1[i].score[j]);fprintf(fp1,"\n");}for(i=0;i<40;i++){ printf("%-5d%-10s",stu1[i].num,stu1[i].name);for(j=0;j<5;j++)printf("%-5d",stu1[i].score[j]);}fgets(strr2,200,fp2);for(i=0;i<5;i++){ fscanf(fp2,"%d%s%d",&course[i].num,course[i].kcname,&course[i].xf);}fprintf(fp3,"编号课程名称课程学分\n ");for(i=0;i<5;i++){ fprintf(fp3,"%-5d%-10s%-5d",course[i].num,course[i].kcname,course[i].xf); fprintf(fp3,"\n");}for(i=0;i<5;i++){ printf("%-5d%-10s%-5d",course[i].num,course[i].kcname,course[i].xf); printf("\n"); }printf("*********按Enter键继续************\n");getchar();getchar();fclose(fp);fclose(fp1);fclose(fp2);fclose(fp3);}function1_2(){ int i,j,s;float sum;FILE *fp4;printf("加入计算平均分及名次的程序内容\n");sum=0;s=0;for(i=0;i<5;i++)s=s+course[i].xf;for(i=0;i<40;i++){sum=0;for(j=0;j<5;j++)sum+=stu1[i].score[j]*course[j].xf;stu1[i].aver=sum/s;}for(j=0;j<39;j++)for(i=0;i<39-j;i++)if(stu1[i].aver<stu1[i+1].aver){stu1[40]=stu1[i];stu1[i]=stu1[i+1];stu1[i+1]=stu1[40];}for(i=0;i<40;i++)stu1[i].mingci=i+1;for(i=0;i<40;i++){printf("%-5d%-10s",stu1[i].num,stu1[i].name);for(j=0;j<5;j++)printf("%-10d",stu1[i].score[j]);printf("%-6.1f%-5d",stu1[i].aver ,stu1[i].mingci);printf("\n");}if((fp4=fopen("C:\\mingci.txt","w"))==NULL){printf("cannot open fille\n");return;}fprintf(fp4, "学号姓名毛邓三近代史听力英语高数平均分名次\n"); for(i=0;i<40;i++){fprintf(fp4,"%-5d%-10s",stu1[i].num,stu1[i].name);for(j=0;j<5;j++)fprintf(fp4,"%-6d",stu1[i].score[j]);fprintf(fp4,"%-6.1f%4d",stu1[i].aver ,stu1[i].mingci);fprintf(fp4,"\n");}printf("**************按Enter键继续****************\n");getchar(); getchar();fclose(fp4);}function1_3(){FILE *fp5;int i,j;printf("加入计算分数段人数程序\n");if((fp5=fopen("C:\\dumain.txt","w"))==NULL){printf("can not open this file\n");exit(0);}fprintf(fp5,"范围 >90 80~90 70~80 60~70 <60\n");printf("范围 >90 80~90 70~80 60~70 <60\n");for(j=0;j<5;j++){ course[j].a=0;course[j].b=0;course[j].c=0;course[j].d=0 ;course[j].e=0;for(i=0;i<40;i++){if(stu1[i].score[j]>=90&&stu1[i].score[j]<=100) course[j].a++;else if(stu1[i].score[j]>=80) course[j].b++;else if(stu1[i].score[j]>=70) course[j].c++;else if(stu1[i].score[j]>=60) course[j].d++;else if(stu1[i].score[j]>0) course[j].e++; }fprintf(fp5,"%-8s%-8d%-8d%-8d%-8d%-8d\n",course[j].kcname,course[j].a,course[j] .b,course[j].c,course[j].d,course[j].e);printf("%-8s%-8d%-8d%-8d%-8d%-8d\n",course[j].kcname,course[j].a,course[j].b,co urse[j].c,course[j].d,course[j].e); }printf("**********按Enter键继续***********\n");getchar();getchar();fclose(fp5);}function1_4(){FILE *fp6;int i,j;int sum1;for (j=0;j<5;j++){ sum1=0;for(i=0;i<40;i++)sum1=sum1+stu1[i].score[j];course[j].courseaver=sum1/40.0;} for(j=0;j<5;j++)printf("%-8s%-6.2f\n",course[j].kcname,course[j].courseaver);if((fp6=fopen("C:\\coursepj.txt","w"))==NULL){ printf("cannot open file\n");exit(0);}fprintf(fp6,"课程名平均分\n");for(j=0;j<5;j++)fprintf(fp6,"%-8s%-6.2f\n",course[j].kcname,course[j].courseaver);printf("加入输出课程平均分程序内容\n");printf("**********按Enter键继续***********\n");getchar();getchar();fclose(fp6);}function1_5(){int i,j;FILE *fp7;printf("加入统计不及格情况程序内容\n");if((fp7=fopen("C:\\bujige.txt","w"))==NULL){printf("can not open this file\n");exit(0);}fprintf( fp7,"学号姓名课程学分成绩 \n");printf("学号姓名课程学分成绩\n");for(i=0;i<40;i++)for(j=0;j<5;j++){if(stu1[i].score[j]<60){fprintf(fp7,"%-5d%-14s%-10s%-8d%-5d\n",stu1[i].num,stu1[i].name,course[j].kcname,course[j].xf,stu1[i].score[j]);printf("%-5d%-14s%-10s%-8d%-5d\n",stu1[i].num,stu1[i].name,course[j].kcname,course[j].xf,stu1[i].score[j]);}}printf("**********按Enter键继续***********\n");getchar();getchar();fclose(fp7);}function1_6(){ int i,j;FILE *fp8;printf("加入输出优秀学生程序内容\n");if((fp8=fopen("C:\\youxiu.txt","w"))==NULL){ printf("can not open this file\n");exit(0);}fprintf(fp8,"学号姓名毛邓三近代史听力英语数学平均成绩名次\n");printf("学号姓名毛邓三近代史听力英语高数平均成绩名次\n");for(i=0;i<40;i++){ if(stu1[i].aver>=90||stu1[i].mingci<=3||(stu1[i].aver>=85&&(stu1[i].score[0] >=99||stu1[i].score[1]>=99||stu1[i].score[2]>=99||stu1[i].score[3]>=99||stu1[i] .score[4]>=99||stu1[i].score[5]>=99))){ printf("%-5d %-10s ",stu1[i].num,stu1[i].name);for(j=0;j<5;j++)printf("%-8d",stu1[i].score[j]);printf("%5.2f %5d\n",stu1[i].aver,stu1[i].mingci);fprintf(fp8,"%-5d%-10s",stu1[i].num,stu1[i].name);for(j=0;j<5;j++)fprintf(fp8,"%-8d",stu1[i].score[j]);fprintf(fp8,"%5.2f%5d\n",stu1[i].aver,stu1[i].mingci);}}printf("***********按Enter键继续**********\n");getchar();getchar();fclose(fp8);}function1_7(){ int e1=0,e2=0,e3=0,e4=0,e5=0,f1=0,f2=0,f3=0,f4=0,f5=0,c1=0,c2=0,c3=0,c4=0,c5=0,b1=0 ,b2=0,b3=0,b4=0,b5=0,d1=0,d2=0,d3=0,d4=0,d5=0;char*a1="maodeng",*a2="jindaishi",*a3="tingli",*a4="yingyu",*a5="gaoshu",*k1=">=90" ,*k2=">=80",*k3=">=70",*k4=">=60",*k5="<60";int gdriver=DETECT,gmode=0;float r=50.0,x,y,q;char ch1,str1[80]; int i=0,m;float n;printf("加入作分布图程序内容\n");for(i=0;i<40;i++){if(stu1[i].score[0]>=90) e1++;else if(stu1[i].score[0]>=80) e2++;else if(stu1[i].score[0]>=70) e3++;else if(stu1[i].score[0]>=60) e4++;else e5++;if(stu1[i].score[1]>90) f1++;else if(stu1[i].score[1]>80) f2++;else if(stu1[i].score[1]>70) f3++;else if(stu1[i].score[1]>60) f4++;else f5++;if(stu1[i].score[2]>90) c1++;else if(stu1[i].score[2]>80) c2++;else if(stu1[i].score[2]>70) c3++;else if(stu1[i].score[2]>60) c4++;else c5++;if(stu1[i].score[3]>90) b1++;else if(stu1[i].score[3]>80) b2++;else if(stu1[i].score[3]>70) b3++;else if(stu1[i].score[3]>60) b4++;else b5++;if(stu1[i].score[4]>90) d1++;else if(stu1[i].score[4]>80) d2++;else if(stu1[i].score[4]>70) d3++;else if(stu1[i].score[4]>60) d4++;else d5++;}initgraph(&gdriver,&gmode," ");setbkcolor(0);setcolor(0);circle(100,120,r);circle(400,120,r);circle(100,240,r);circle(400,240,r);circle(100,360,r);setcolor(2); /*毛邓三 */for(q=0.0;q<=50;q+=0.01)arc(100,120,0,e1*9,q);setcolor(3);for(q=0.0;q<=50;q+=0.01)arc(100,120,e1*9,(e1+e2)*9,q);setcolor(5);for(q=0.0;q<=50;q+=0.01)arc(100,120,(e1+e2)*9,(e1+e2+e3)*9,q);setcolor(6);for(q=0.0;q<=50;q+=0.01)arc(100,120,(e1+e2+e3)*9,(e1+e2+e3+e4)*9,q); setcolor(14);for(q=0.0;q<=40;q+=0.01)arc(100,120,(e1+e2+e3+e4)*9,360,q);setcolor(15);outtextxy(90,173,a1);setcolor(2); /*近代史饼状图*/for(q=0.0;q<=50;q+=0.01)arc(400,120,0,f1*9,q);setcolor(3);for(q=0.0;q<=50;q+=0.01)arc(400,120,f1*9,(f1+f2)*9,q);setcolor(5);for(q=0.0;q<=50;q+=0.01)arc(400,120,(f1+f2)*9,(f1+f2+f3)*9,q);setcolor(6);for(q=0.0;q<=50;q+=0.01)arc(400,120,(f1+f2+f3)*9,(f1+f2+f3+f4)*9,q); setcolor(14);for(q=0.0;q<=40;q+=0.01)arc(400,120,(f1+f2+f3+f4)*9,360,q);setcolor(15);outtextxy(385,173,a2);setcolor(2); /*听力饼状图*/for(q=0.0;q<=50;q+=0.01)arc(100,240,0,c1*9,q);setcolor(3);for(q=0.0;q<=50;q+=0.01)arc(100,240,c1*9,(c1+c2)*9,q);setcolor(5);for(q=0.0;q<=50;q+=0.01)arc(100,240,(c1+c2)*9,(c1+c2+c3)*9,q);setcolor(6);for(q=0.0;q<=50;q+=0.01)arc(100,240,(c1+c2+c3)*9,(c1+c2+c3+c4)*9,q); setcolor(14);for(q=0.0;q<=50;q+=0.01)arc(100,240,(c1+c2+c3+c4)*9,360,q);setcolor(15);outtextxy(90,293,a3);setcolor(2); /*英语饼状图*/for(q=0.0;q<=50;q+=0.01)arc(400,240,0,b1*9,q);setcolor(3);for(q=0.0;q<=50;q+=0.01)arc(400,240,b1*9,(b1+b2)*9,q);setcolor(5);for(q=0.0;q<=50;q+=0.01)arc(400,240,(b1+b2)*9,(b1+b2+b3)*9,q);setcolor(6);for(q=0.0;q<=50;q+=0.01)arc(400,240,(b1+b2+b3)*9,(b1+b2+b3+b4)*9,q); setcolor(14);for(q=0.0;q<=50;q+=0.01)arc(400,240,(b1+b2+b3+b4)*9,360,q);setcolor(15);outtextxy(385,293,a4);setcolor(2); /*高数饼状图*/for(q=0.0;q<=50;q+=0.01)arc(100,360,0,d1*9,q);setcolor(3);for(q=0.0;q<=50;q+=0.01)arc(100,360,d1*9,(d1+d2)*9,q);setcolor(5);for(q=0.0;q<=50;q+=0.01)arc(100,360,(d1+d2)*9,(d1+d2+d3)*9,q);setcolor(6);for(q=0.0;q<=50;q+=0.01)arc(100,360,(d1+d2+d3)*9,(d1+d2+d3+d4)*9,q); setcolor(14);for(q=0.0;q<=50;q+=0.01)arc(100,360,(d1+d2+d3+d4)*9,360,q);setcolor(15);outtextxy(90,413,a5);outtextxy(225,69,k1);outtextxy(225,89,k2);outtextxy(225,109,k3);outtextxy(225,129,k4);outtextxy(225,149,k5);setcolor(2);moveto(200,70); /*矩形表示*/rectangle(200,70,220,77);setfillstyle(1,2);floodfill(201,71,2);setcolor(3);moveto(200,90);rectangle(200,90,220,97);setfillstyle(1,3);floodfill(201,91,3);setcolor(5);moveto(200,110);rectangle(200,110,220,117);setfillstyle(1,5);floodfill(201,111,5);setcolor(6);moveto(200,130);rectangle(200,130,220,137);setfillstyle(1,6);floodfill(201,131,6);setcolor(14);moveto(200,150);rectangle(200,150,220,157);setfillstyle(1,14);(1,14);floodfill(201,151,14);getch();closegraph();printf("************按Enter键继续*********\n");getchar();getchar();}function2_1(){ double a[N][N]={5,7,6,5,7,10,8,7,6,8,10,9,5,7,9,10}; double b[N]={23,32,33,31},X[N];int i,j,k,l1,t;float l,temp1,temp2,sum;printf("加入解线性方程组的程序内容\n");printf("计算下列方程组的解:\n");printf("\n");for(i=0;i<N;i++){for(j=0;j<N;j++){printf("%4.2f",a[i][j]);if(j+1<N)printf("X%d=",j+1);elseprintf("X%d=",j+1);}printf("%4.2f\n",b[i]);printf("\n\n");}for(k=0;k<N-1;k++){t=k;temp1=a[t][k];for(i=k+1;i<N;i++){if(fabs(temp1)<fabs(a[i][k])) {temp1=a[i][k];t=i;}}if(t!=k){ for(j=0;j<N;j++){ temp1=a[k][j];a[k][j]=a[t][j];a[t][j]=temp1;}temp2=b[k];b[k]=b[t];b[t]=temp2;}for(i=k+1;i<N;i++){l=a[i][k]/a[k][k];b[i]-=l*b[k];for(j=k;j<N;j++){a[i][j]-=l*a[k][j];}}}X[N-1]=b[N-1]/a[N-1][N-1]; for(i=N-2;i>=0;i--){sum=0;for(j=i+1;j<N;j++)sum+=a[i][j]*X[j];X[i]=(b[i]-sum)/a[i][i];}printf("result:\n\n");for(i=0;i<N;i++){printf("X[%d]=%8.4f\n\n",i+1,X[i]);}printf("************按Enter键继续*********\n"); getchar();getchar();}function3_1(){ int i,j,k;int x[5],y[5],x1[5],y1[5],x0[10],y0[10],r,R=200; int color[10]={10,1,2,5,14,7,6,3,4,15};int gdriver=DETECT,gmode=10;initgraph(&gdriver,&gmode," ");r=(R*sin(18*H))/cos(36*H);printf("加入作动画程序内容\n");for(i=0;i<=360;i+=6){for(j=0;j<5;j++){ x[j]=320+R*cos(PI/2+j*72*H+i);y[j]=240-R*sin(PI/2+j*72*H+i);x1[j]=320+r*cos(126*H+j*72*H+i);y1[j]=240-r*sin(126*H+j*72*H+i);}for(j=0;j<5;j++){line(320,240,x[j],y[j]);line(320,240,x1[j],y1[j]);line(x[j],y[j],x1[j],y1[j]);}for(j=0;j<4;j++)line(x1[j],y1[j],x[j+1],y[j+1]);line(x1[4],y1[4],x[0],y[0]);for(j=0;j<10;j+=3){x0[j]=320-r*cos(108*H+j*36*H+i);y0[j]=240+r*sin(108*H+j*36*H+i);for(k=1;k<10;k++){ setfillstyle(1,color[k]);floodfill(x0[k],y0[k],RED);}}cleardevice();delay(10);setbkcolor(10);cleardevice();setcolor(4);circle(320,240,200);}i=0;for(j=0;j<5;j++){ x[j]=320+R*cos(PI/2+j*72*H+i);y[j]=240-R*sin(PI/2+j*72*H+i);x1[j]=320+r*cos(126*H+j*72*H+i);y1[j]=240-r*sin(126*H+j*72*H+i);}for(j=0;j<5;j++){line(320,240,x[j],y[j]);line(320,240,x1[j],y1[j]);line(x[j],y[j],x1[j],y1[j]);}for(j=0;j<4;j++)line(x1[j],y1[j],x[j+1],y[j+1]);line(x1[4],y1[4],x[0],y[0]);for(j=0;j<10;j++){x0[j]=320-r*cos(108*H+j*36*H+i);y0[j]=240+r*sin(108*H+j*36*H+i);for(k=0;k<10;k++){ setfillstyle(1,color[k]);floodfill(x0[k],y0[k],RED);}}getch();closegraph();printf("************按Enter键继续*********\n"); getchar();getchar();}第四部分:原始数据学号姓名毛邓三近代史听力英语高数1 安志娇 80 90 85 78 902 蔡君87 70 66 78 503 曹瑞90 86 71 76 844 董小虎79 81 76 83 785 付璐90 86 68 63 506 高辉81 83 92 87 837 韩世彬82 78 73 83 938 韩亚文70 76 80 77 719 胡克良81 87 48 67 7510 胡世伟90 85 75 79 7011 胡文娟67 79 55 70 6312 户哲85 88 80 83 9913 季春珑88 85 78 66 9814 江晓星88 63 63 65 3915 李海澜84 72 60 72 6016 李淼79 86 85 86 9517 李瑞74 87 85 70 8818 梁斯敏82 81 69 73 419 刘杰84 80 70 82 9320 刘日升71 73 71 67 8321 刘涛69 86 69 74 1522 吕明霞90 92 78 82 9623 马明辉84 83 55 55 6024 裴家友69 85 72 74 8425 石恒72 77 73 70 8826 石义财70 74 66 83 6627 舒喆60 63 85 60 4628 宋腾92 83 94 76 9329 唐虹光81 86 86 79 9630 万新88 82 82 89 9231 温育森71 84 46 77 6732 吴海云74 85 71 80 8733 吴勇81 82 62 50 6034 谢勇88 75 66 63 6035 徐淼81 76 55 67 7836 严坤72 82 76 71 6037 严伟82 82 73 83 7438 晏健84 84 78 81 9739 阳振华82 83 81 76 8540 杨涛73 74 71 77 60第五部分:调试过程与总结程序看起来很复杂、过程繁多,但是分为几大块,每一块完成一个功能,几块之间相互不影响,这样就很快理清了整个过程。
C语言上机实训
姓名:黄小龙学号:031540921
实验1 C语言开发环境及简单程序
设计
【实验题1-1】编写如下程序,计算并输出两个整数的和与积
【实验题1-2】输入并运行一个有自定义函数的程序,自定义函数MAX的功能是求两个整数中的大数并返回该大数。
通过主函数调用MAX函数。
【实验题1-3】以下程序的功能:从键盘输入圆的半径,计算并输出圆的面积。
请在程序的空白处填写适当内容。
【实验题1-4】以下程序的功能:从键盘输入两个整型变量A,B,然后交换它们的值并输出。
请在程序的空白处填上适当的内容。
【实验题1-5】编写一个简单程序,由键盘任意输入三个数a,b,c, 计算并输出算式(a+b)/c
的计算结果。
实验2 基本数据类型与表达式计算
【实验题2-1】以下程序可能存在错误,请上机调试并运行程序。
【实验题2-2】以下程序的功能:求解y=sin(根号ax)+ ln(a+x)。
程序可能有多出错误,请上机调试并运行程序。
【实验题2-4】编写程序,从键盘输入华氏温度F,将其转化成摄氏温度C并输出(要求精确到小
数点后两位)。
转换公式为C=5/9*(F-32)。
【实验题2-5】设圆柱体的圆底半径radium=3.5cm,高height=4.6cm。
分别计算并输出该圆柱体的总面积area和体积volume。
要求输出结果精确到小数点后两位。
实验3 选择结构程序设计
【实验题3-1】以下程序的功能:将百分制成绩转为五级计分制。
但未达到预期的结果,请查找原因并调试程序以实现程序功能。
【实验题3-2】以下程序的功能:若输入的是大写字母则转为小写字母输出;否则,输出信息“输入的不是一个大写字母”。
请选择合适的内容填入程序空白处。
【实验题3-3】输入一个年号,判断其是否为闰年。
闰年的条件:如果年份能被四整除,但不能被100整出,或者年份能被400整除,则该年份为闰年。
【实验题3-4】计算并输出下列分段函数值:
X^2 + 2x - 6 (x<0且x!=-3)
F(x) = x^2-5x + 6 (0<=x<10且!=2,x!=3)
X^2 - x- 15 (x>=10或x = 2或x = 3 或x=-3)
其中,x由键盘输入。
【实验题3-5】输入三角形的三条边长,判断能
否构成三角形?如果能,则可构成何种三角形?
【实验题3-6】某运输公司的运费按如下方法进
行计算:货物的基本运费为10元/(km·t),
但对于路程较远者可进行优惠,优惠的标准如下
表所示。
路程s/km 总运费优惠率/%
S<50 0
50<=S<100 2
100<=S<200 5
200<=S<400 8
400<=S<800 11
S>=800 15
实验4 循环结构程序设计
【实验题4-1】以下程序拟实现以直角三角形的形式在荧幕上输出九九乘法表,但实际输出结果如下。
请查找原因,并调试程序以实现程序功能。
(for语句后面的循环条件括号后不能接;否则程序功能会出错)
【实验题4-2】以下程序的功能:计算1-3+5-7+···-99+101的值。
请选择合适的内容填入程序中空白处。
【实验题4-3】下面程序的功能:输出200以内个位数为6且能被3整除的所有数。
选择合适内容填入程序空白处。
【实验题4-4】分别用while语句、do....while 语句及for语句编写一个程序,计算sum=1+2+3+···+100的结果。
要求画出相应的算法流程图。
While语句的:
i++的位置若放在sum+=i 之前,就会导致多加一个101。
所以放对条件的位置很关键。
Do...while语句的:
While与do...while本质上没有什么区别,while语句(表达式)后不接; do...while 后要接;否则程序无法运行。
For语句的:
写清楚for 后面的(表达式1;表达式2;表达式3 )就OK了,另外,要记得对定义的变量附初值。
否则程序无法运行。
实验5 函数(1)
【实验题5-1】以下程序的功能:从键盘输入两个数,计算出他们的和,并将结果输出在屏幕上。
调试运行程序,观察出现了什么错误,提出两种修改方案。
【实验题5-2】下程序的功能:输出3~1000之的间的素数。
请选择合适的内容填入程序的空白处,并调试运行程序。
【实验题5-3】从键盘输入一个整数n,计算n^3,并将结果输出在屏幕上。
要求计算n^3用函数实现。
【实验题5-4】从键盘输入一个整数n,计算2n+1与++n之和。
要求计算两数之和用函数实现。
注意写计算表达式的时候3*n之间的乘号不要丢掉,否则会提示:invalid suffix “n” on integer constant.
调用用户自定义函数是只写ifun=fun(n); 就可以了,不要在括号里加上int。
Ifun=fun(int n) ×
【实验题5-5】编写程序,计算Cmn=n!/(n-m)!m!。
要求如下:
1)编写一个函数计算n!;
2)编写主函数,输入n和m, 调用第1)项中的函数完成计算;
3)输出并计算C58、C712的结果。
【实验题5-6】从键盘输入一个整数i,编写一个递归函数n~i=1 i,并将结果输出在屏幕上。