C语言程序设计实践实验题目Word版
《C语言程序设计》设计性实验题目
嘉应学院计算机学院设计性实验《实验报告》学期:2013—2014学年第一学期课程:《C语言/VC++程序设计》系班:学号:姓名:2013年11月设计性实验任务书一、实验名称编写程序实现给学生出加法运算题二、实验目的利用C语言综合掌握顺序程序设计、选择结构程序设计和循环程序设计方法。
三、实验内容利用C语言编写程序,给学生出加法运算题,然后判断学生输入的答案对错与否,按下列要求以循序渐进的方式编程。
程序1通过输入两个加数给学生出一道加法运算题,如果输入答案正确,则显示“正确!”,否则显示“错误!”,程序结束。
程序2通过输入两个加数给学生出一道加法运算题,如果输入答案正确,则显示“正确!”,否则显示“错误! 请再尝试一次!”,直到做对为止。
程序3通过输入两个加数给学生出一道加法运算题,如果输入答案正确,则显示“正确!”,否则提示重做,显示“错误! 请再尝试一次!”,最多给三次机会,如果三次仍未做对,则显示“错误! 你已经尝试了三次。
测试结束。
”,程序结束。
程序4连续做10道题,通过计算机随机产生两个1~10之间的加数给学生出一道加法运算题,如果输入答案正确,则显示“正确!”,否则显示“错误!”,不给机会重做,10道题做完后,按每题10分统计总得分,然后打印出总分和错误题总数。
程序5 通过计算机随机产生10道加减运算题,两个操作数为1~10之间的随机数,运算类型为随机产生的加、减运算中的一种,如果输入答案正确,则显示“正确!”,否则显示“错误!”,不给机会重做,10道题做完后,按每题10分统计总得分,然后打印出总分和错误题总数。
【思考题】如果程序5要能进行加、减、乘、整除中的任意一种运算,又应该如何修改呢?五、实验结果1、每个学生新建一个文件夹,该文件夹以该生班内序号+姓名命名,如学生王小明,班内序号为01,那么此文件夹的名字应该为:01王小明。
2、将实验内容中的程序1、程序2、程序3、程序4、程序5分别命名为p1.c、p2.c、p3.c、p4.c、p5.c保存在该文件夹中,即该文件夹应该包含5个源程序和《《C语言程序设计》设计性实验报告题目》这个word文档。
C语言课后实验设计题目及答案
设 total:桃子的总数
x1 :前一天的桃子数
x2 : 后一天的桃子数
day: 天数
计算公式:x1=(x2+1)*2 第1天的桃子数是第2天桃子数加1后的2倍。
(2)求1-1/2+1/3-1/4+⋯⋯,输入1个正整数n(n<=100),计算并输出1-1/2+1/3-1/4+⋯⋯的前n项和(保留3位小数)。
实验项目四 分支结构程序设计
题目
(1)输入四个整数,输出其中的最小值。
实验报告
1、主程序:
// zx.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "stdio.h"
#include "math.h"
}
2、主程序:
// s.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "stdio.h"
#include "math.h"
int main(int argc, char* argv[])
{
x=x*x*x*x;return(x);
}
int main(int argc, char* argv[])
{
float x;
printf("请输入X=");
scanf("%f",&x);
double s;
C语言程序设计本科实验题目1-3
C语言程序设计本科实验题目1-31. 实验题目:学生信息管理系统2. 实验目的:通过设计一个学生信息管理系统,巩固和应用C语言的基本知识和编程技巧。
3. 实验内容:3.1 设计一个数据结构,用于存储学生的基本信息,包括学号、姓名、性别、年龄和成绩。
3.2 编写函数实现以下功能:3.2.1 添加学生信息:从键盘输入学生的基本信息,并将其添加到学生信息管理系统中。
3.2.2 查询学生信息:根据学号或姓名查找学生的基本信息,并在屏幕上输出。
3.2.3 修改学生信息:根据学号或姓名修改学生的基本信息。
3.2.4 删除学生信息:根据学号或姓名删除学生的基本信息。
3.2.5 统计学生人数:统计学生信息管理系统中学生的总人数。
3.2.6 查找平均成绩:计算并输出学生信息管理系统中所有学生的平均成绩。
3.3 编写主函数,调用以上函数完成学生信息的输入、查询、修改、删除和统计等功能。
4. 实验要求:4.1 设计学生信息的数据结构时,要考虑存储的有效性和合理性,以保证数据的完整性和准确性。
4.2 编写的函数要具有良好的模块化和可重用性,函数功能要明确,代码要简洁规范。
4.3 程序的输入和输出应具有一定的界面友好性,给用户提供清晰明了的操作提示。
4.4 实验报告中需包含程序的运行结果和测试用例,以及对程序功能和性能的评价。
5. 实验思路:5.1 首先,定义一个结构体,用于存储学生的基本信息;结构体包括学号、姓名、性别、年龄和成绩等成员变量。
5.2 然后,编写添加学生信息的函数,根据用户输入的数据,利用结构体变量存储相应的学生信息,并将学生信息添加到学生信息管理系统中。
5.3 接下来,编写查询学生信息的函数,根据用户输入的学号或姓名,在学生信息管理系统中查找相应的学生信息,并在屏幕上输出。
5.4 然后,编写修改学生信息的函数,根据用户输入的学号或姓名,在学生信息管理系统中找到相应的学生信息,并根据用户输入的新数据,修改相应的学生信息。
c语言程序设计实验.设计.习题.答案.顺序结构与逻辑运算
}
实验四部分
4-1-a该程序的功能是:输入两个数:a、b,判断a*a+b*b的值,若a*a+b*b的值等于3或1,则y=a+b;若a*a+b*b的值等于0,则y=b-a;若a*a+b*b的值等于其他值,则输出“eerror”;最后输出y的值。
运行结果画面:
#include<stdio.h>
main()
{
int a,M;
scanf("%d",&a);
M=a>0?a:-a;
printf("abs(a)=%d\n",M);
}
4-4运行结果画面:
#include<stdio.h>
main()
{
int c,t,m;
printf("input the number of coat and trousers your want buy:\n");
scanf("%d",&x);
h=x/60;
m=x%60;
printf("%d小时%d分钟",h,m);
}
3-7我使用的算法:进行千分位转换,四舍五入。
运行结果画面:
#include<stdio.h>
main()
{
double x;
scanf("%lf",&x);
printf("%7.2f\n",x);
怎样终止调试状态(程序复位)?在菜单栏中选择“调试”,然后选择“StopDebugging”。
单步调试状态下,向下运行一条语句的操作方法(分两种情况回答,第一种,跟踪到自定义函数内部,第2种,不跟踪到自定义函数内部):第一种选择“Step Into”,跟踪到自定义函数内部;第2种选择“Step over”,不跟踪到自定义函数内部
(完整word)C语言程序设计经典100例(全)
【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4.组成所有的排列后再去掉不满足条件的排列。
2.程序源代码:main(){int i,j,k;printf(”\n");for(i=1;i<5;i++)/*以下为三重循环*/for(j=1;j〈5;j++)for (k=1;k〈5;k++){if (i!=k&&i!=j&&j!=k)/*确保i、j、k三位互不相同*/printf("%d,%d,%d\n",i,j,k);}}==============================================================【程序2】题目:企业发放的奖金根据利润提成。
利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于 40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1。
5%,高于 100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?1.程序分析:请利用数轴来分界,定位。
注意定义时需把奖金定义成长整型。
2。
程序源代码:main(){long int i;int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;scanf("%ld”,&i);bonus1=100000*0.1;bonus2=bonus1+100000*0。
75;bonus4=bonus2+200000*0。
5;bonus6=bonus4+200000*0。
3;bonus10=bonus6+400000*0.15;if(i〈=100000)bonus=i*0.1;else if(i〈=200000)bonus=bonus1+(i-100000)*0。
C语言程序设计课程实验题目
C语言程序设计课程实验题目(每组实验内容 2 学时)实验一 C 语言上机步骤实验目的:熟练掌握在Turbo C 系统上编辑、编译、连接和运行 C 程序的方法。
实验内容:1.启动 Turbo C 系统。
①进入 MS-DOS方式。
②CD\TC↙③ TC↙2.编辑修改源程序。
①按“ F3”,然后输入: exam↙ ( 默认文件名为“ NONAME”.C)② 输入下列源程序。
main(){ int a,b,sum;a=1;b=2;sum=a+b;printf("sum=%d\n",sum);}③ 源程序存盘。
方法一:按“ F2”键,将以源文件名存盘。
方法二:选取菜单项“ File/Write To”,将以新文件名存盘。
3.编译连接程序。
方法一:编译、连接分步执行。
按“ Alt+F9 ”键,编译生成目标文件“exam.obj ”;再按“ F9” , 连接生成可执行文件“ exam.exe”方法二:编译、连接连续执行。
按“ F9”键,首先编译生成目标文件“exam.obj ”;接着自动连接生成可执行文件“ exam.exe”4.运行程序。
方法一:编辑状态下,按“Ctrl+F9 ”键,此时是编译、连接、运行连续进行。
方法二:按“ Alt+X ”键,然后输入: exam↙ ( 必须编译、连接成功 ) 。
5.显示运行结果。
若按方法一运行程序,按“Alt+F5 ”键,查看运行结果,按任意键返回到Turbo C 编辑状态。
若按方法二运行程序,直接显示结果。
6.退出。
按“ Alt+x ”键,退出 Turbo C 。
实验二运算符和表达式实验目的:掌握 C 语言运算符的优先级和结合方向。
实验内容:1.若有定义 int x,a,b,c,*p=&x;,写出顺序执行下列表达式后x 的值,然后通过程序验证。
要求:先写出运算结果,然后利用程序验证。
①x=a=b=10②x=25%(c=3)③*p+=2+3④x/=(x+(*p%=2),(a&&5+3))⑤x*=x+=x-=x⑥x=((a=4%3,a!=1),++*p>10)验证程序:main(){ int x,a,b,c,*p=&x;x=a=b=10;printf("x=%d\n",x);x=25%(c=3);printf("x=%d\n",x);*p+=2+3;printf("x=%d\n",x);x/=(x+(*p%=2),(a&&5+3));printf("x=%d\n",x);x*=x+=x-=x;printf("x=%d\n",x);x=((a=4%3,a!=1),++*p>10);printf("x=%d\n",x);}2.若有定义 int a=2,b=-3,c=4,*p=&a,*q=&b;,计算下列各表达式的值,然后通过程序验证。
《C语言程序设计》实验题
《C语言程序设计》实验指导目录实验一 C程序的运行环境和运行一个C程序的方法 (1)实验二数据类型、运算符和表达式 (2)实验三最简单的C程序设计 (4)实验四选择结构程序设计 (6)实验五循环控制 (8)实验六数组 (10)实验七函数 (12)实验八预处理命令 (13)实验九指针 (15)实验十结构体和共用体 (17)实验十一位运算 (20)实验十二文件 (21)实验一:C程序的运行环境和运行一个C程序的方法(2学时)实验性质:验证性实验一、实验目的1.了解所用的计算机系统的基本操作方法,学会独立使用该系统。
2.了解在该系统上如何编辑、编译、连接和运行一个C程序。
3.通过运行简单的C程序,初步了解C源程序的特点。
二、实验内容1.调用编辑程序,输入教材第一章例1.1程序,并进行编译和运行。
应了解所用的系统是用什么命令进行编译和连接运行的。
编译和连接后所得到的目标程序的后缀是什么形式的?2.输入并运行教材第一章中例1.2。
3.输入并运行教材第一章中例1.3,了解如何在运行时向程序变量输入数据。
实验二数据类型、运算符和表达式(2学时)实验性质:验证性实验一、实验目的1.掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用格式转换符。
2.学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。
3.进一步熟悉C程序的编辑、编译、连接和运行的过程。
二、实验内容1.输入并运行教材第三章例3.6.即:#include<stdio.h>main(){char c1,c2;c1=97;c2=98;printf(‚%c %c\n‛,c1,c2);printf(‚%d %d\n‛,c1,c2);}在此基础上①将第二行改为:int c1,c2;再使之运行,分析结果。
②再将第三行、第四行改为:c1=300;c2=400;再使之运行,分析其运行结果。
C语言程序设计综合实训题目
一、参考题目及选题(1)学生信息管理系统设计问题描述:学生信息包括:学号, 姓名, 年龄, 性别, 出生年月, 政治面貌, 籍贯, 家庭住址, 电话, E-mail等。
试设计一学生信息管理系统, 使之能提供以下功能:(1)系统以菜单方式工作(2)学生信息录入功能(学生信息用文件保存)(3)学生信息浏览功能(4)学生信息排序、查询功能对信息进行排序, 可以按学号, 按姓名, 按性别, 按出生年月日, 按籍贯进行查询(5)信息统计a) 可以按性别, 按出生年, 按籍贯统计学生人数b) 可以按班级统计学生人数c) 可以按政治面貌统计学生人数按班级统计学生党员人数, 团员人数, 以及所占比例, 设计并输出统计报表。
(6)学生信息的删除与修改●设计要求:●界面比较美观;有一定的容错能力, 比如输入的成绩不在0~100之间, 就提示不合法, 要求重新输入;●最好用链表的方式实现。
算法分析:首先, 一个学生包括这么多的属性, 应该考虑定义一个结构, 其次, 我们应该考虑数据的存储形式:是定义一个数组来存储, 还是定义一个链表呢?在这里假如我们以数组的方式来存储, 当然可以, 但是我们知道, 假如我们定义一个数组的话, 我们首先必须知道学生人数大概是多少, 以便我们确定数组的大小, 但是题目中没有给出, 而且题目要求中有大量的删除、插入操作, 所以用链表的方式比较方便。
对于菜单的实现, 其实也比较简单, 首先我们用printf语句把程序的功能列出来, 然后等待用户输入而执行不同的函数, 执行完了一个功能后又回到菜单。
文件的读写操作大家参照书中的有关文件的章节。
(2)、学生综合测评系统每个学生的信息为: 学号、姓名、性别、家庭住址、联系电话、语文、数学、外语三门单科成绩、考试平均成绩、考试名次、同学互评分、品德成绩、任课教师评分、综合测评总分、综合测评名次。
考试平均成绩、同学互评分、品德成绩、任课教师评分分别占综合测评总分的60%, 10%, 10%, 20%。
c语言程序设计实验题目
1. 编写一个程序,要求用户输入两个整数,然后计算这两个整数的和、差、积和商。
2. 编写一个程序,要求用户输入一个半径,然后计算并输出圆的周长和面积。
3. 编写一个程序,要求用户输入一个正整数n,然后计算并输出1到n的所有偶数之和。
4. 编写一个程序,要求用户输入一个字符串,然后统计并输出该字符串中大写字母、小写字母、数字和其他字符的个数。
5. 编写一个程序,要求用户输入一个正整数n,然后计算并输出斐波那契数列的前n项。
6. 编写一个程序,要求用户输入一个正整数n,然后判断该整数是否为素数。
7. 编写一个程序,要求用户输入一个正整数n,然后计算并输出n的阶乘。
8. 编写一个程序,要求用户输入一个正整数n,然后计算并输出n的平方根。
9. 编写一个程序,要求用户输入一个正整数n,然后计算并输出n的立方根。
10. 编写一个程序,要求用户输入一个正整数n,然后计算并输出n的第k个斐波那契数。
C语言程序设计实验及习题(1-4)
C语⾔程序设计实验及习题(1-4)ffB v vbvv bgbb实验⼀C程序运⾏环境及简单程序的运⾏2.程序改错并调试改正后的程序⑴下列程序的功能为:计算x*y的值并将结果输出,程序中有8处错误,尝试改正并上机调试之(程序以⽂件名sy1_2.cpp#includevoid main{ int x=2;y=3;aA=x*yprint ("a=%d",a);printf(‘\n’);}⑵下列程序的功能为:输⼊圆的半径,计算圆⾯积并将结果输出;程序中有9处错误,尝试改正并上机调试之(程序以⽂件名sy1_3.cpp存盘)。
#include stdio.h;int mian();float r; area;printf("input r:\n"); scanf("%f",r);area=3.14159r*r;printf("r=%f , area=%f\n"3.编写程序并上机调试⑴输⼊三个整数a、b、c,显⽰出其中的最⼤值。
4.分析与总结⑴总结C程序的结构和书写规则。
⑵阅读:附件1-C语⾔程序的跟踪调试。
特别提⽰:当程序在编译时发现很多错误,此时应从上到下逐⼀改正,或改⼀个错误,就重新再编译,因为有时⼀个错误会引起很多错误信息。
习题⼀⼀、选择题参考答案:1~5 C B A C D 6~10 C C A C B 11~14 A A C B⼆、综合题绘制NS 算法流程图。
(1)输⼊10个数,求其中的最⼤值。
(2)输⼊3个数,将它们升序排列输出。
(3)输⼊2个数,求它们的最⼤公约数。
(4)输⼊⼀元⼆次⽅程的系数a 、b 、c ,判断其根。
实验⼆顺序结构程序设计1.阅读程序,尝试写出程序的运⾏结果,然后输⼊并调试程序,对照其实际输出与分析的结果是否⼀致,若不⼀致,请找出原因。
⑴以下程序⽤于测试C中不同类型数据所占内存字节数,运⾏并体会sizeof运算符的使⽤⽅法。
C语言程序设计实训题目一
C语言程序设计实训题目(一人完成一题,一般选取相同题目的最多允许3人)指导教师:孙杰1.设计一个多功能计算软件实现功能:1)具备整型数据、浮点型数据的算术(加、减、乘、除)运算功能。
依次输入第一个运算数、运算符(+,-,*,/)、第二个运算数,然后输出结果。
结果可以作为下一个运算的第一运算数。
按‘C’清屏,按‘R’返回菜单。
例如:输入:2+5输出:72)实现单运算符表达式计算的功能。
输入的操作数可以包含整数或浮点数。
输入表达式如下:例如:输入:2+5输出:72.学生成绩管理系统1) 具备对成绩的管理功能(添加、删除、排序)2) 具备对成绩的统计功能(最高分,最低分,平均分,及格率等)3) 具备按学号、姓名、或课程名查询成绩的功能。
备注:成绩记录以下信息:班级,学号,姓名,课程名,成绩(百分制)。
可以用能表示学生成绩的结构体数组存储数据。
3.设计一个通讯录管理软件。
实现功能:1) 通讯录编辑(添加、删除)。
2) 按不同的项进行查找。
3) 对已存在的通讯录按不同的项排序。
4) 将通讯录写入文件5) 从文件读入通讯录备注:通讯录至少应该有以下数据项:姓名,地址,电话,邮编,E-mail。
4、汉诺塔问题(Towers of Hanoi)汉诺塔的问题是假设有三根木桩A、B和C。
在木桩A上放置了N个圆盘,由上到下编号为1,2,,…,N,编号越大的圆盘直径越大。
而我们必须将圆盘由木桩A通过木桩B全部搬到木桩C,如图1所示。
木桩A木桩B木桩C木桩A木桩B 木桩C图1在移动过程中,必须按照下述移动规则:1.直径较小的圆盘永远置于直径较大的圆盘上;2.圆盘可任意地由任何一个木桩移到其他的木桩上; 3.每一次仅能移动一个圆盘。
假设现在有三个木桩A 、B 、C ,在木桩A 上,由大到小依次放置了三个中空的圆盘,则按照上述的移动规则,其移动的过程如图2所示:图2(a) initial(1)A →C(2)A →B (3)C →B (4)A →C (5)B →A(6)B →C(7)A →C因此当N=3时,移动次序如下:(1) 从木桩A 将圆盘1移动到木桩C 。
C语言程序设计实践实验题目-推荐下载
实验内容:
程序 1:搬砖问题:36 块砖,36 人搬,男搬 4,女搬 3,两个小孩抬 1 砖,要求一次搬完,
问男、女和小孩各若干?
#include “stdio.h” main() {
int men,women,children; men=0; while(men<=8)
{women=0; while(women<=11) {children=36-men-women; if((men*4+women*3+children/2= =36)&&children%2= =0) printf(“men=%d,women=%d,children=%d\n”,men,women,children); women++;}
#include<stdio.h>
main()
{int a[10];
int n=8,i,k=0,j=1,len;
len=n;
i=0; //给数组赋值
for(i=0;i<n;i++)
a[i]=i+1; //i 为元素下标,j 代表当前要报的数 ,len 表示圈中当前人数
while(len>0){ if(a[k%n]>0){ if(j%3==0){ printf("%d\n",a[k%n]);//找到要出圈的人,并把圈中人数减一 ,最
C语言程序设计实践实验题目Word版
C语⾔程序设计实践实验题⽬Word版实验题⽬:循环结构程序设计实验⽬的:1.熟悉VC++6.0的运⾏环境,掌握C程序的执⾏⽅法;2.掌握三种基本数据类型、部分运算符号和常⽤函数;3.掌握三种循环控制语句及break和continue语句的使⽤⽅法;4.掌握循环结构的嵌套及正确控制计数型循环结构次数的⽅法。
实验内容:程序1:搬砖问题:36块砖,36⼈搬,男搬4,⼥搬3,两个⼩孩抬1砖,要求⼀次搬完,问男、⼥和⼩孩各若⼲?#include “stdio.h”main(){int men,women,children;men=0;while(men<=8){women=0;while(women<=11){children=36-men-women;if((men*4+women*3+children/2= =36)&&children%2= =0)printf(“men=%d,women=%d,children=%d\n”,men,women,children);women++;}men++;}}程序2 打印形状为直⾓三⾓形的乘法⼝诀。
#include "stdio.h"main(){int i,j,result;for (i=1;i<10;i++){ for(j=1;j{result=i*j;printf("%d*%d=%-3d",i,j,result);/*-3d表⽰左对齐,占3位*/}printf("\n");/*每⼀⾏后换⾏*/}程序3 求1000以内的所有素数。
#include “stdio.h”main( ){int m,i;for(m=2;m<=100;m++){ for(i=2;i<=m-1;i++)if(m%i==0) break;if(i>m-1) printf("%5d",m);}}程序4:计算和统计旅客运费程序。
C语言程序设计综合实训题目
一、参考题目及选题(1)学生信息管理系统设计问题描述:学生信息包括:学号,姓名,年龄,性别,出生年月,政治面貌,籍贯,家庭住址,电话,E-mail等。
试设计一学生信息管理系统,使之能提供以下功能:(1)系统以菜单方式工作(2)学生信息录入功能(学生信息用文件保存)(3)学生信息浏览功能(4)学生信息排序、查询功能对信息进行排序,可以按学号,按姓名,按性别,按出生年月日,按籍贯进行查询(5)信息统计a)可以按性别,按出生年,按籍贯统计学生人数b)可以按班级统计学生人数c)可以按政治面貌统计学生人数按班级统计学生党员人数,团员人数,以及所占比例,设计并输出统计报表。
(6)学生信息的删除与修改设计要求:●界面比较美观;●有一定的容错能力,比如输入的成绩不在0~100之间,就提示不合法,要求重新输入;●最好用链表的方式实现。
算法分析:首先,一个学生包括这么多的属性,应该考虑定义一个结构,其次,我们应该考虑数据的存储形式:是定义一个数组来存储,还是定义一个链表呢?在这里假如我们以数组的方式来存储,当然可以,但是我们知道,假如我们定义一个数组的话,我们首先必须知道学生人数大概是多少,以便我们确定数组的大小,但是题目中没有给出,而且题目要求中有大量的删除、插入操作,所以用链表的方式比较方便。
对于菜单的实现,其实也比较简单,首先我们用printf语句把程序的功能列出来,然后等待用户输入而执行不同的函数,执行完了一个功能后又回到菜单。
文件的读写操作大家参照书中的有关文件的章节。
(2)、学生综合测评系统每个学生的信息为:学号、姓名、性别、家庭住址、联系电话、语文、数学、外语三门单科成绩、考试平均成绩、考试名次、同学互评分、品德成绩、任课教师评分、综合测评总分、综合测评名次。
考试平均成绩、同学互评分、品德成绩、任课教师评分分别占综合测评总分的60%,10%,10%,20%。
A、学生信息处理(1)输入学生信息、学号、姓名、性别、家庭住址、联系电话,按学号以小到大的顺序存入文件中。
《c语言程序设计》实验指导书答案
《c语言程序设计》实验指导书答案《C语言程序设计》实验指导书答案实验一:C语言环境搭建与基本语法1. 问题:如何在计算机上搭建C语言开发环境?答案:搭建C语言开发环境通常需要安装编译器和集成开发环境(IDE)。
常见的编译器有GCC,而IDE如Visual Studio Code、Code::Blocks等。
安装完成后,配置好编译器路径,即可开始编写和编译C语言程序。
2. 问题:C语言的基本数据类型有哪些?答案:C语言的基本数据类型包括整型(int)、字符型(char)、浮点型(float和double)以及更复杂的结构体(struct)和联合体(union)等。
3. 问题:如何定义一个变量?答案:定义变量的基本语法是:`类型名变量名;`。
例如,定义一个整型变量a:`int a;`。
4. 问题:如何实现变量的输入和输出?答案:使用`scanf`函数进行输入,使用`printf`函数进行输出。
例如,输入一个整数并输出:`scanf("%d", &a); printf("%d", a);`。
实验二:控制结构1. 问题:C语言中的条件语句有哪些?答案:C语言中的条件语句主要有`if`语句和`switch`语句。
2. 问题:如何使用`if`语句?答案:`if`语句的基本语法是:`if (条件) { 语句 }`。
例如,判断一个数是否为正数:`if (a > 0) { printf("正数"); }`。
3. 问题:如何使用`switch`语句?答案:`switch`语句用于多条件分支选择。
基本语法是:`switch (表达式) { case 常量1: 语句1; break; case 常量2: 语句2; break; ... default: 默认语句; }`。
4. 问题:C语言中的循环语句有哪些?答案:C语言中的循环语句主要有`for`循环、`while`循环和`do-while`循环。
程序设计语言-C实验题目-全
程序设计语言-C实验题目-全《程序设计语言-C》实验题目实验一基本输入输出1、字符变量的字符形式输出和整数形式输出。
2、从键盘上输入一个字符,如果它是大写字母,则把它转换成小写字母输出;否则,直接输出。
3、编一程序,完成如下功能:从键盘上输入1个学生的5门课的成绩,计算出总成绩和平均成绩。
实验二分支结构1、输入任意三个float类型的浮点数num1、num2、num3,按从小到大的顺序排序输出。
2、输入整型x,求x的绝对值。
3、从键盘上输入一个百分制成绩score(0-100),按下列原则输出其等级:score≥90,等级为A;80≤score<90,等级为B;70≤score<80,等级为C;60≤score<70,等级为D;score<60,等级为E。
附加题:书P72,第8题实验三循环结构1、书P98 第2题2、求Fibonacci数列的前40个数。
该数列的生成方法为:F1=1,F2=1,Fn=Fn-1+Fn-2(n>=3),即从第3个数开始,每个数等于前2个数之和。
1 123 5 8 13….3、打印出所有的“水仙花数”。
所谓“水仙花数”是指一个3位数,其各位数字的立方和等于该数本身。
例如,153是一个“水仙花数”,因为153=13+53+33。
(370,371,407)实验四循环结构21、书P99 第17题2、输入5个同学3门功课的成绩,输出每个同学3门功课的平均分、每门功课的最高分、最低分、平均分。
3、制作一个《成绩管理系统》的菜单:实验五函数1、写一个判素数的子函数,在主函数输入一个整数,输出是否素数的信息,当输入-1时停止。
2、写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果,两个整数由键盘输入。
3、在《成绩管理系统》完成“添加学生信息”、“统计每位同学的平均分”、“统计每门课程的平均分”子功能。
实验六数组1、申明大小为20的int数组(大小通过define定义),初值为随机产生的10以内的int值(随机函数附后),从键盘输入要查找的元素search,显示search3、在《成绩管理系统》完成“统计每位同学的平均分、统计每门课程的平均分”子功能,要求输入5个同学3门功课的成绩,输出每个同学3门功课的平均分、每门功课的平均分,用二维数组实现。
C程序设计实践题目
《C程序设计实践》题目A1: 设计一个菜单程序,选择数字键1~3分别在屏幕输出“正三角形”、“菱形”和“平行四边形”,选择其他数字结束操作并回到输入界面。
要求:(1)主函数菜单设计(2)每个图形单独是一个函数,即三个子函数。
A2: 字符左右排序。
以行为单位对字符串按给定的条件进行排序,排序后的结果仍按行重新存入字符串数组中。
排序条件:将字符串从中间一分为二,右边部分按字符的ASCII码升序排序,排序后左边部分与右边部分进行交换。
如果原字符串长度为奇数,则最中间的字符不参与处理,仍放在原位置上。
例如,原字符串:hgfedcba876594321则处理后字符串:abcdhgfe123498765要求(1)子函数Exch()实现左右部分交换(2)子函数Sort():完成排序功能A3: 循环输入任意三位正整数,判断该三位数是否等于其每位数字的阶乘之和,直到输入999为止。
要求:调用函数判断该三位数是否等于其每位数字的阶乘之和A4: 求兔子问题。
第1年有1对兔子,每对兔子从出生后第3个年起,就可每年生1对兔子,兔子的寿命是6年,问第n年有多少对兔子?要求:调用函数计算兔子数量A5. 输入一个正整数(短整数)、计算输出该数的各位数字之和,各位数字的平均和、反复执行、直到输入的数为999为止。
要求:(1)将各位数字存于数组中(2)分别调用子函数计算各位数字之和,各位数字的平均和。
A6. 从键盘上输入一个字符串(不多于40个,以回车换行符作为输入结束标记),将其中的大写字母改为小写字母,其它字符不变,然后逆序输出。
要求:(1)调用子函数实现将字符串中的大写字母改为小写字母(2)调用子函数实现逆序输出功能A7. 有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完?要求:(1)调用子函数计算天数A8. 计算任意多个三个数的最大公约数,直到输入999为止。
要求:(1)调用子函数求最大公约数A9. 输入一行字符串,将字符串中所有下标为偶数位置上的字母转换为大写。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验题目:循环结构程序设计实验目的:1.熟悉VC++6.0的运行环境,掌握C程序的执行方法;2.掌握三种基本数据类型、部分运算符号和常用函数;3.掌握三种循环控制语句及break和continue语句的使用方法;4.掌握循环结构的嵌套及正确控制计数型循环结构次数的方法。
实验内容:程序1:搬砖问题:36块砖,36人搬,男搬4,女搬3,两个小孩抬1砖,要求一次搬完,问男、女和小孩各若干?#include “stdio.h”main(){int men,women,children;men=0;while(men<=8){women=0;while(women<=11){children=36-men-women;if((men*4+women*3+children/2= =36)&&children%2= =0)printf(“men=%d,women=%d,children=%d\n”,men,women,children);women++;}men++;}}程序2 打印形状为直角三角形的乘法口诀。
#include "stdio.h"main(){int i,j,result;for (i=1;i<10;i++){ for(j=1;j<i;j++){result=i*j;printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/}printf("\n");/*每一行后换行*/}}程序3 求1000以内的所有素数。
#include “stdio.h”main( ){int m,i;for(m=2;m<=100;m++){ for(i=2;i<=m-1;i++)if(m%i==0) break;if(i>m-1) printf("%5d",m);}}程序4:计算和统计旅客运费程序。
由键盘输入旅客行李重量(w),按公式:若( w<=50kg )f=1.5*w ,若(w>50kg)f=1.5*50 + 2.8*(w-50) ( w>50kg )计算运费,要求:(1)打印每位旅客的顺序号,行李重量,应付运费;(2)假定每天最多办理100人的行李托运手续或当w≤0时循环结束, 下班时打印出全天的运费总收入和办理的总人数。
方法一(while结构)#include “stdio.h”main( ){int num=0;float w,f,total=0;scanf("%f ",&w);while (w>0&&num<100 ){ if (w<=50) f=1.5*w;else f=1.5*50+2.8*(w-50);num++;printf ( "%d,%6.0f,%8.2f\n",num,w,f);total+=f; scanf ("%f",&w); }printf ("Customers=%d TotalIncome=%10.2f\n",num,total);}方法二(do-while结构)#include “stdio.h”main( ){int num=0;float w,f,total=0;do{ scanf("%f ",&w);if (w<=0) break;if (w<=50) f=1.5*w;else f=1.5*50+2.8*(w-50);num++;printf ( "%d %6.0f %8.2f\n",num,w,f);total+=f;} while (num<100);printf ("Customers=%d TotalIncome=%10.2f\n",num,total);}方法三(for结构)#include “stdio.h”main( ){int num;float w,f,total=0;scanf("%f",&w);for (num=1;w>0&&num<=100;num++){if (w<=50) f=1.5*w;else f=1.5*50+2.8*(w-50);printf ( "%d %6.0f %8.2f\n",num,w,f);total+=f; scanf("%f",&w);}printf ("Customers=%d TotalIncome=%10.2f\n",num,total); }实验二:数组实验目的:1.更加灵活的使用一维数组和二维数组2.把数组和指针结合使用实验内容:1.约瑟夫环问题由n个人围成一个首尾相连的圈报数。
从第一个人开始,从1开始报数,报到3的人出圈,剩下的人继续从1开始报数,直到所有的人都出圈为止。
求出所有人的出圈顺序。
#include<stdio.h>main(){int a[10];int n=8,i,k=0,j=1,len;len=n;i=0;//给数组赋值for(i=0;i<n;i++)a[i]=i+1;//i为元素下标,j代表当前要报的数 ,len表示圈中当前人数while(len>0){if(a[k%n]>0){if(j%3==0){printf("%d\n",a[k%n]);//找到要出圈的人,并把圈中人数减一,最后一个人才输出a[k%n]=-1;j=1;k++;len--;}else{//报数不是3k++;j++;}}else//遇到空位了,就跳到下一位,但j不加一,也就是这个位置没有报数k++;}}2.学生成绩统计与分析输入10名学生的英语、C语言、计算机文化基础成绩,统计每名学生三科成绩的平均分,分析三门课程的优秀率,85分以上为优秀。
#include <stdio.h>void main(){int grade[10][4];int i,j,average,egood,cgood,jgood;{printf("请输入第%d个学生的英语、c语言、计算机\n",i+1);for(j=0;j<3;j++)scanf("%d", &grade[i][j] );}egood=cgood=jgood=0;for(i=0;i<10;i++) //10个人{average=0;for(j=0;j<3;j++) //三门课程{average+=grade[i][j];if(grade[i][j]>=85){if(j==0) egood++; if(j==1) cgood++; if(j==2) jgood++;}}grade[i][3]=average/3;}for(i=0;i<10;i++)printf("第%d个学生的三科平均分为:%d\n",i+1,grade[i][3]);printf("英语成绩优秀的学生为%d\n",egood);printf("C语言成绩优秀的学生为%d\n",cgood);printf("计算机成绩优秀的学生为%d\n",jgood);}3.利用指针实现数组合并数组a:“1,7,9,11,13,15,17,19”;数组b:“2,4,6,8,10”,两个数组合并为数组c,按升序排列。
#include<stdio.h>void main(){ int paixu (int c[]);int a[8]={1,7,9,11,13,15,17,19};int b[5]={2,3,6,8,10};int c[13];int *p,*q,*s;for(p=a,s=c;p<8+a;p++,s++)*s=*p;for(q=b;q<b+5;q++,s++)*s=*q;paixu(c);}paixu(int c[]){int i,j,k;for(j=0;j<12;j++)if(c[i]>c[i+1]){ k=c[i];c[i]=c[i+1];c[i+1]=k;}for(i=0;i<13;i++) printf("%d\n",c[i]); }1.更加灵活的使用数组和指针作为函数参数;2.更加灵活使用指针处理字符串。
实验内容:1.字符串复制输入一个长度不大于30的字符串,将此字符串中从第m个字符开始的剩余全部字符复制成为另一个字符串,并将这个新字符串输出。
要求用指针方法处理字符串。
2.插入字符串从键盘上先后读入两个字符串,假定存储在字符数组s1和s2中。
注意,这两个字符串最长均可达到26个字符、最短均可为0个字符。
将字符串s2插入字符串s1中,生成一个新的字符串s。
插入方法为s2的第i个字符插入到原s1的第i个字符后,如果s2比s1(假定s1的长度为L1)长,则s2的第L1个字符开始到s2结尾的所有字符按在s2中的顺序放在新生成的字符串s之后。
用指针完成程序。
3.学生成绩管理系统某班期末考试科目为数学(MT)、英语(EN)和物理(PH),有最多不超过30人参加考试。
(1)计算每个学生的总分;(2)按总分成绩由高到低排出成绩的名次;(3)打印出名次表,包括名次、学生编号、各科分数、总分;要求程序运行后先打印出一个菜单,提示用户选择:成绩录入、成绩排序、成绩查找,在选择某项功能后执行相应的操作。
1.更加灵活的使用数组作为函数参数;2.初步掌握开发一个小型实用系统的基本方法;3.初步掌握书写程序设计开发文档的能力。
实验内容:程序一:学生信息管理系统编写程序,实现学生信息的管理(包括学生信息的建立、增加、删除、修改、查找),要求:小组分工情况一I设计一个学生成绩管理系统至少具有以下功能:(1)菜单功能:采用文本菜单界面。
(2)学生信息的建立。
(3)学生信息的增加。
(4)学生信息的删除。
(5)学生信息的修改。
(6)学生信息的查找。
II数据库结构struct student{ char num[10];char name[10];char xibie[10];char sex;int age;}st[30];二总体设计框架结构图(系统的功能结构图)三、详细设计(流程图!!!)四、程序源代码(参考答案)1.用结构体数组完成2.用结构体指针完成1. #include "stdio.h"#include "string.h" typedef struct node{ char num[10];char name[10];char xibie[10];char sex;int age;}st;int n;st *creslink(){int i;st s[10];printf("请输入要录入的人数:");scanf("%d",&n);for (i=0;i<=n-1;i++){ printf("请输入第%d名学生的学号,姓名,系别,年龄,性别:",i+1);scanf("%s%s%s%d%c",s[i].num,s[i].name,s[i].xibie,&s[i].age,&s[i].sex);}return s;}int getlen(st s[]){return n;}insert(st s[],char num[],char name[],char xibie[],int age,char sex){ strcpy(s[n].num,num);strcpy(s[n].name,name);strcpy(s[n].xibie,xibie);s[n].age=age;s[n].sex=sex;n++;}delete(st s[],char num[]){int i,j;for(i=0;i<n;i++)if(strcmp(s[i].num,num)==0)break;for(j=i+1;j<n;j++)s[j-1]=s[j];n--;}void list(st s[]){ int i;printf("学号\t姓名\t系别\t年龄\t性别\n");for(i=0;i<n;i++)printf("%s\t%s\t%s\t%d\t%c\n",s[i].num,s[i].name,s[i].xibie,s[i].age,s[i].sex); }void main(){int k,f,age;char num[10],name[10],xibie[10],sex;st *s;while(1){printf("\n\n\t\t\t学生信息管理系统\n");printf("\t\t*************************************\n");printf("\t\t\t1.录入学生信息\n");printf("\t\t\t2.插入新学生信息\n");printf("\t\t\t3.删除学生信息\n");printf("\t\t\t4.输出学生信息\n");printf("\t\t\t5.输出学生总数\n");printf("\t\t\t6.退出\n");printf("\t\t*************************************\n");printf("请选择:");scanf("%d",&k);switch(k){case 1:s=creslink();break;case 2: printf("请输入新学生的学号,姓名,系别,年龄,性别:");scanf("%s%s%s%d%c",num,name,xibie,&age,&sex);insert(s,num,name,xibie,age,sex);break;case 3:printf("请输入要删除的学生的学号:");scanf("%s",num);delete(s,num);break;case 4:list(s);break;case 5:f=getlen(s);printf("学生总数为:%d",f);break;case 6:return;}}}2.#include "stdio.h"#include "string.h"#define null 0typedef struct node{ char num[10];char name[10];char xibie[10];char sex;int age;struct node *next;}slink;slink *creslink(){slink *head,*p,*s;int i,n;printf("请输入要录入的人数:");scanf("%d",&n);if(n<1)return null;p=head=(slink *)malloc(sizeof(slink));head->next=null;for (i=1;i<=n;i++){s=(slink *)malloc(sizeof(slink));printf("请输入第%d名学生的学号,姓名,系别,年龄,性别:",i);scanf("%s%s%s%d%c",s->num,s->name,s->xibie,&s->age,&s->sex);p->next=s;p=s;}p->next=null;return head;}int getlen(slink *head){slink *p;int n;p=head->next;n=0;while (p!=null){n++;p=p->next;}return n;}insert(slink *head,char num[],char name[],char xibie[],int age,char sex) {slink *p,*q;p=head;while(p->next!=null) p=p->next;q=(struct node *)malloc (sizeof(slink));strcpy(q->num,num);strcpy(q->name,name);strcpy(q->xibie,xibie);q->sex=sex;q->age=age;q->next=p->next;p->next=q;}delete(slink *head,char num[]){slink *p,*q;p=head;while(p->next!=null&&strcmp(p->next->num,num)!=0)p=p->next;q=p->next;p->next=q->next;free(q);}void list(slink *head){slink *p;printf("学号\t姓名\t系别\t年龄\t性别\n");p=head->next;while(p!=null){printf("%s\t%s\t%s\t%d\t%c\n",p->num,p->name,p->xibie,p->age,p->sex); p=p->next;}printf("\n");}void main(){int k,f,age;char num[10],name[10],xibie[10],sex;slink *head;while(1){printf("\n\n\t\t\t学生信息管理系统\n");printf("\t\t*************************************\n");printf("\t\t\t1.录入学生信息\n");printf("\t\t\t2.插入新学生信息\n");printf("\t\t\t3.删除学生信息\n");printf("\t\t\t4.输出学生信息\n");printf("\t\t\t5.输出学生总数\n");printf("\t\t\t6.退出\n");printf("\t\t*************************************\n");printf("请选择:");scanf("%d",&k);switch(k){case 1:head=creslink();break;case 2: printf("请输入新学生的学号,姓名,系别,年龄,性别:");scanf("%s%s%s%d%c",num,name,xibie,&age,&sex);insert(head,num,name,xibie,age,sex);break;case 3:printf("请输入要删除的学生的学号:");scanf("%s",num);delete(head,num);break;case 4:list(head);break;case 5:f=getlen(head);printf("学生总数为:%d",f);break;case 6:return;}} }实验五文件操作实验目的:1.初步了解C语言中文件操作的类型;2.掌握文件的打开、关闭及读写的操作3.能熟练进行字符及数据块的读写操作,为后续的课程设计打好基础。