C_上机实验答案
- 格式:doc
- 大小:191.00 KB
- 文档页数:12
华南农业大学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语言程序设计实验室上机题全部代码答案(实验报告)实验目的:本实验旨在让大一学生通过实际操作掌握C语言的基本语法和常见程序设计题型,提高编程能力。
实验要求:1. 学生需要在实验室中完成上机题,并编写相应的代码。
2. 要求代码具有良好的结构和规范,能够正确运行,并符合题目要求。
3. 学生需要记录代码的思路和过程,并在实验报告中进行详细说明。
实验过程:本次实验共包括以下几个上机题,分别是:1. 题目:输入两个整数,计算它们的和。
实现思路:- 首先,定义两个整型变量a和b,用来保存输入的两个整数。
- 然后,使用scanf函数分别读取两个整数的值。
- 接下来,定义一个整型变量sum,用来保存两个整数的和。
- 使用sum = a + b计算两个整数的和。
- 最后,使用printf函数将结果输出到屏幕上。
2. 题目:输入一个整数n,计算1到n之间所有整数的和。
实现思路:- 首先,定义一个整型变量n,用来保存输入的整数。
- 然后,使用scanf函数读取整数n的值。
- 接下来,定义一个整型变量sum,用来保存1到n之间所有整数的和。
- 使用for循环语句,从1循环到n,累加每个整数的值。
- 最后,使用printf函数将结果输出到屏幕上。
3. 题目:输入一个整数n,判断它是否是质数。
实现思路:- 首先,定义一个整型变量n,用来保存输入的整数。
- 然后,使用scanf函数读取整数n的值。
- 接下来,定义一个布尔型变量isPrime,用来保存n是否是质数的判断结果。
- 使用for循环语句,从2循环到n-1,判断n是否能被其中任意一个整数整除。
- 如果n能被任意一个整数整除,则将isPrime设为假;否则,将isPrime设为真。
- 最后,根据isPrime的值,使用printf函数输出相应的判断结果。
4. 题目:输入一个正整数n,输出n的所有因子。
实现思路:- 首先,定义一个整型变量n,用来保存输入的正整数。
(完整版)C++上机课题及部分答案编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整版)C++上机课题及部分答案)的内容能够给您的工作和学习带来便利。
同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。
本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为(完整版)C++上机课题及部分答案的全部内容。
上机考试题(1)定义一个学生成绩类Score,描述学生成绩的私有数据成员为学号(No)、姓名(Name [8])、数学(Math)、物理(Phi)、数据结构(Data)、平均分(ave)。
定义能输入学生成绩的公有成员函数Write(),能计算学生平均分的公有成员函数Average(),能显示学生成绩的公有成员函数Display()。
在主函数中用Score类定义学生成绩对象数组s[3]。
用Write()输入学生成绩,用Average()计算每个学生的平均分,最后用Display()显示每个学生的成绩。
实验数据:No Name Math Phi Data Ave1001 Zhou 80 70 601002 Chen 90 80 851003 Wang 70 75 89(2)建立一个存放素数的类Prime,具体要求如下。
①私有数据成员。
int a[25]:存放指定范围内的所有素数。
int n1,n2:存放指定范围的下限和上限int num:存放素数的个数。
②公有成员函数Prime(int m1,int m2):构造函数,用参数m1、m2初始化n1、n2,同时初始化num.void primef():求指定范围内的所有素数,把它们依次存放在数组a中。
并将求出的素数个数赋给num。
void show():显示求出的素数的个数及所有的素数,每行输出5个素数。
C语言程序设计练习题(答案)1.1上机实训项目实验1实验步骤1、进入VC环境从“开始”→“程序”→“Microsoft Visual Studio 6.0”→“Microsoft Visual C++ 6.0”,这时进入VC集成环境的主菜单窗口,屏幕显示如图1_1所示。
图1-1 VC集成环境的主菜单窗口2、VC环境下C程序的编辑、连接和运行(1)新建一个源程序①在VC环境中选择“文件”菜单,然后单击“新建”菜单项。
如图1-2所示图1-2 选择新建② 在弹出的新建对话框中设置好相应的内容,如图2-2所示。
要事先准备好保存文件的目录,例d:\lx 目录。
在图1-3中“文件”一栏的源程序文件的扩展名一定要输入C 语言程序的扩展名“.c ”。
设置好后,单击“OK ”,就回到了VC++的编辑界面,即将进行输入和编辑的源程序文件example.c 文件存放在D 盘的LX 目录下。
图1-3 新建对话框的设置③ 在图1-4的工作区中,输入源程序2.设置源程序的文件名,扩展名一定要为“.c ”且一定要输入扩展名1.单击该处3.设置存放目录图1-4 输入、编辑源程序④输入源程序文件后可在主菜单栏中选择“文件”(FILE),并在其下拉菜单中选择“保存”(SAVE),如图1-5所示。
图1-5 保存源程序⑤源程序的编译如图2-6所示,单击主菜单的“编译”(Build),在其下拉菜单中选择“编译example.c”(Compile example.c),或者单击工具栏上的“编译”按钮,如图1-6所示。
在单击“编译”后,屏幕上会出现一个如图1-7所示的对话框。
内容是“This build command requires an activeproject worksapce,Would you like to create a default project worksapce?”,要创建一个默认的项目工作区,单击“是(Yes)”,表示同意,将开始编译;单击“No ”,表示不同意,将取消编译。
实验一(第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;}实验结果:参见类型转换规则。
《C语言》上机实验题及参考答案作者名:不详来源:网友提供05年7月21日1、编程实现对键盘输入的英文名句子进行加密。
用加密方法为,当内容为英文字母时其在26字母中的其后三个字母代替该字母,若为其它字符时不变:2、编程实现将任意的十进制整数转换成R进制数(R在2-16之间)。
3、从键盘输入一指定金额(以元为单位,如345.78),然后显示支付该金额的各种面额人民币数量,要求显示100元、50元、10元、5元、2元、1元、1角、5分、1分各多少张。
4、随机产生20个[10,50]的正整数存放到数组中,并求数组中的所有元素最大值、最小值、平均值及各元素之和。
5、编程在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,空格用来分隔不同单词。
6、模拟n个人参加选举的过程,并输出选举结果:假设候选人有四人,分别用A、B、C、D表示,当选某候选人时直接输入其编号(编号由计算机随机产生),若输入的不是A、B、C、D则视为无效票,选举结束后按得票数从高到低输出候选人编号和所得票数。
7、任何一个自然数m的立方均可写成m个连续奇数之和。
例如:1^3=12^3=3+53^3=7+9+114^3=13+15+17+19编程实现:输入一自然数n,求组成n3的n个连续奇数。
8、已知abc+cba=1333,其中a,b,c均为一位数,编程求出满足条件的a,b,c所有组合。
9、编制一个完成两个数的四则运算程序。
如:用户输入34+56则输出结果90.00。
要求运算结果保留两位小数,用户输入时一次将两个数和操作符输入。
10、输入一个五位以内的正整数,(1)判断它是一个几位数;(2)请按序输出其各位数字;(3)逆序输出其各位数字。
如输入:56439,输出:5位数5,6,4,3,99,3,4,6,511、编写子函数:(1)用冒泡法将一个数组排成升序的函数---SUB1;(2)在升序数组中插入一个数,并且保持该数组仍为升序数组的函数---SUB2。
安装Visual C ++6.0下载请从群里下载Microsoft Visual Studio.rar。
将下载的文件Microsoft Visual Studio.rar解压后即可使用。
请直接运行文件“Microsoft Visual Studio\Common\MSDev98\Bin\MSDEV.EXE”实验一认识C语言【实验目的】1.熟悉C程序设计编程环境Visual C ++,掌握运行一个C程序设计的基本步骤,包括编辑、编译、连接和运行。
编辑:编写源程序文件.c编译:生成目标文件.obj连接:生成可执行文件.exe运行:执行.exe文件。
2.掌握C语言程序设计的基本框架,能够编写简单的C程序。
3.了解程序调试的思想,能找出并改正C程序中的语法错误。
【实验内容】1-1 在磁盘上新建一个文件夹,用于存放C程序,文件夹的名字可以是学号,如D:\3050888。
1-2 编程示例,在屏幕上显示一个短句“Hello World!”。
源程序# include <stdio.h>void main( ){printf("Hello World! \n");}运行结果Hello World!作为第一个实验,在Visual C++编程环境下,以上述C语言源程序为例,介绍运行一个C 程序的基本步骤,请读者按照以下步骤操作。
(1)启动VC++执行“开始”—>“程序”—>“Microsoft Visual Studio 6.0”—> “Microsoft Visual C++ 6.0”,进入VC++编程环境(如图1.1所示)。
图1.1 VC++窗口(2)新建文件执行“文件/File”—>“新建/New”,单击“文件/Files”选项卡(如图 1.2所示),先在“文件/File name”栏中输入test,把C源(程序)文件命名为test.cpp,在“目录/Location”框中选择你已经建立的文件夹,如,D:\3050888,然后选中“C++ Sourse Files”,单击“确定”按钮,在D:\3050888下就新建了文件test.cpp,并显示编辑窗口和信息窗口(如图1.3所示)。
C 语言程序设计上机实验指导与习题参考答案(第四版)(学生改编)实验 1:C语言程序初步一、实验目的(1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。
(2)了解在该系统上如何编辑、编译、连接和运行一个 C程序。
(3)通过运行简单的 C 程序,初步了解 C程序的特点。
(4)在教师的指导下,学会使用在线评判系统。
二、实验内容1.运行第一个 C 程序题目:ThefirstCProgram将下列程序输入visualc ,编译、连接和运行该程序。
includequotstdio.hquotmain printfquotThefirstCProgramnquot具体操作步骤(1)在编辑窗口中输入程序。
(2)保存程序,取名为a1.c。
(3)按照第一章中介绍的方法,编译、连接和运行程序。
,则该题完成。
4按照第三章介绍的方法,将代码提交到在线评判系统,系统返回“通过”2.在在线评判系统中提交实现了计算 ab 功能的程序题目 1001:计算ab由键盘输入两个整数,计算并输出两个整数的和。
实现该功能的程序如下,inclu dequotstdio.hquotmain int ab scanfquotddquotampaampbprintfquotdquotab(1)在程序编辑窗口中输入程序。
(2)保存程序,取名为a2.c。
(3)按照前二章中介绍的方法,编译、连接和运行程序。
(4)在程序运行过程中,输入 15 30↙↙表示输入回车符(5)如果看到如下输出结果,则表明1530 的结果正确,如果得不到如下结果,则需检查并更正程序。
45(6)按照第三章中介绍的方法进入在线评判系统。
(7)显示题目列表,点击题号为 1001,题名为“计算ab”的题目。
(8)查看完题目要求后,点击页面下端的“sumbit” ,参照第二章提交程序的方法提交程序a2.c。
(9)查看评判结果,如果得到“accepted”则该题通过,否则返回第一步检查程序是否正确。
L a b3R e p e t i t i o n S t r u c t u r e⒈从500开始,求被3、5、7除余数均为2的前50个数。
void main(){int i,j;j=500,i=1;for(;j>=500&&i<=50;j++){if(j%3==2&&j%5==2&&j%7==2){printf("%d",j);i++;printf(" ");}}}⒉打印形状为正方形和直角三角形的乘法九九表。
void main(){int i,j,a;for(i=1;i<=9;i++){for(j=1;j<=9;j++){a=j*i;printf("%d*%d=%-3d",a);printf(" ");}printf("\n");}}#include<stdio.h>void main(){int i,j,k,a;for(i=1;i<=9;i++){for(j=1;j<=i;j++){a=j*i;printf("%d*%d=-3%d",j,i,a);printf(" ");}for(k=1;k<=9-i;k++){printf(" ");}printf("\n");}}⒊由键盘输入一个正整数,判断它是否为素数(只能被1和自身整除的数)。
void main(){int num,n;printf("enter a number");scanf("%d",&num);for(n=2;n<=num-1;n++){if(num%n==0){printf("not a prime number");break;}}if(n==num)printf("prime number");}⒋按下面的近似公式计算常量e的值,e的计算公式如下:e=1+1/1!+1/2!+1/3!+……+1/n!由键盘输入误差δ,当最后一个子项1/n!的值小于δ时,计算结束。
void main(){int i=1;float a,sum=1,n=1;printf("enter a:\n");scanf("%f",&a);for(;1/n>=`a;i++){sum=sum+1/n;n=n*i;}printf("sum=%f",sum);}#include <stdio.h>void main(){- 1 -int i=1;float x,e=1,t=1;printf("enter x:\n");scanf("%f",&x);while(1/t>=x){ e=e+1/t;i++;t=t*i;}printf("e=%f",e);}⒌百马百担问题。
有100匹马,驮100担货,大马驮3担,中马驮2担,两个小马驮1担。
问有大、中、小马各多少匹?#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 %d %d\n",i,j,100-i-j);}}_⒍编写程序输出以下的图形:12 34 5 67 8 9 10void main(){int i,j,k,a=1;for(i=1;i<=4;i++){for(j=1;j<=4-i;j++)printf(" ");for(k=1;k<=i;k++){printf("%d",a);printf(" ");a++;}printf("\n");}}L a b4F u n c t i o n(P a r tⅠ)⒈求m!/(n!*(m-n)!) 的值。
要求:求某个数的阶层必须用自定义的函数实现。
#include<stdio.h>int fl(int x,int y,int z);void main(){int m,n,k;printf("enter m and n:\n");scanf("%d %d",&m,&n);k=fl(m,n,m-n );printf("%d",k);}int fl(int x,int y,int z){int a=1,b=1,c=1,i,j;for(i=1;i<=x;i++)a=a*i;for(i=1;i<=y;i++)b=b*i;for(i=1;i<=z;i++)c=c*i;j=a/(b*c);return(j);}⒉用二分法求下面方程2x3-4x2+3x-6=0的根,要求误差小于10-5。
#include<stdio.h>#include<math.h>float root(float x1,float x2);float f(float x);void main(){float x1,x2,f1,f2,x;do{- 2 -printf("enter x1 and x2:\n");scanf("%f,%f",&x1,&x2);f1=f(x1);f2=f(x2);}while(f1*f2>0);x=root(x1,x2);printf("x=%f\n",x);}float f(float x){float y;y=2*x*x*x-4*x*x+3*x-6;return(y);}float root(float x1,float x2){float x0,f0,f1,f2;do{x0=(x1+x2)/2;f0=f(x0);if((f0*f(x1))<0){x2=x0;f2=f0;}else{x1=x0;f1=f0;}}while(fabs(f0)>=1e-5);return(x0);}⒊随机产生50个200至500之间的整数,输出所有的整数,判断每个整数是否为素数;若是素数,则在输出整数时,用*标记。
要求每行输出10个数。
要求:判断一个整数是否为素数,必须用自定义的函数实现。
#include<stdio.h>#include<stdlib.h>#include<time.h>void prime(int x);void main(){int m,i;srand(time(NULL));for(i=1;i<=50;i++){m=200+(rand()%301);prime(m);if(i%10==0)printf("\n");}}void prime(int x){int j;for(j=2;j<=x-1;j++){if(x%j==0)break;}if(j==x)printf("*%d*",x);elseprintf(" %d ",x);}⒋通过输入两个加数给学生出一道加法运算题,如果输入答案正确,则显示“Right!”,否则提示重做,显示“Not correct! Try again!”,最多给三次机会,如果三次仍未做对,则显示“Not correct. You have tried three times!Test over!”程序结束。
#include <stdio.h>int add_judgement(int,int,int );void main(){int i=1,x,y,z,flag=0;printf("Plese chuti\n");scanf("%d+%d",&x,&y);printf("please input z:\n");while(i<=3){ scanf("%d",&z);flag=add_judgement(x,y,z);if(flag==1){ printf("Right\n");break;}else{ if(i<=2)printf("Not,correct.Try again!\n");printf("Please input z:\n");i++; }}if(i>3)printf("Not correct.You have tried three times!Test over!");- 3 -}int add_judgement(int a,int b,int c){int flag;if(c==a+b)f lag=1;elsef lag=0;return flag;}_⒌输入两个正整数,求其最大公约数和最小公倍数。
要求:求最小公约数必须用自定义的函数实现。
此题答案略L a b5F u n c t i o n(P a r tⅡ)⒈编程计算X n(要求:用递归函数)。
#include<stdio.h>long fac(int x,int y);void main(){int x,n;long y;printf("enter x and n:\n");scanf("%d %d",&x,&n);y=fac(x,n);printf("%ld\n",y);}long fac(int x,int y){long a;if(y==1)a=x;elsea=fac(x,y-1)*x;return(a);}⒉编程计算Ackermann函数Ack(m,n)(要求:用递归函数)。
对于m≥0,n ≥0,Ack(m,n)定义如下:Ack(0,n)=n+1Ack(m,0)= Ack(m-1,1)Ack(m,n)= Ack((m-1), Ack(m,n-1)) #include<stdio.h>int Ack(int m,int n);void main(){int m,n,a;printf("enter m and n:\n");scanf("%d,%d",&m,&n);a=Ack(m,n);printf("Ack=%d",a);}int Ack(int m,int n){int b;if(m==0&&n>0)b=n+1;elseif(m>0&&n==0)b=Ack(m-1,1);elseif(m>0&&n>0)b=Ack((m-1),Ack(m,n-1));return(b);}L a b6A r r a y(P a r tⅠ)⒈产生1000—5000之间的100个随机整数,找出其中的素数,用冒泡法对找出的素数进行排序。