ImageVerifierCode 换一换
格式:DOCX , 页数:49 ,大小:50.49KB ,
资源ID:25459758      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/25459758.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C程序设计实用上机实验文本.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C程序设计实用上机实验文本.docx

1、C程序设计实用上机实验文本实验 1 简单的输入输出1.输入以下程序,编译运行后根据要求从键盘输入数据,并写出程序的输出结果。 文件名: S1_1.cpp注意: / 后面是程序注释,不必输入。下同。 #include void main(void) int a, b, sum;/ 定义放加数、被加数、和的变量空间coutab; /从键盘输入加数与被加数的具体数值 , 输入时两个整数用空格或回车键隔开sum=a+b; /计算加数与被加数的和,将相加结果赋值给和所在的变量空间 coutsum=sumendl; / 在屏幕上输出相加结果 , 双引号内的字符原样显示2.根据程序要求,完善程序后输入源程序

2、,编译连接,并写出运行结果。输入一个华氏温度,要求输出摄氏温度,公式为 c=5/9 (F-32),输入输出要有说明,便于操作。将文件命名为 S1_2.cpp。程序如下:#includevoid main() double f, c;/ 定义放华氏温度及摄氏温度的两个变量空间coutf; /从键盘输入华氏温度 c= ; /计算摄氏温度cout 摄氏温度 =cendl;要求:(1)完善程序;(2)将完善后的程序输入运行。运行时从键盘输入华氏温度为 50(时,输出的摄氏温度为10,输入的华氏温度为 100(时,输出的摄氏温度为 37.7778。3.仿照样例程序编写程序 编写程序,计算圆面积,半径从键

3、盘输入,输入数据前要有提示信息,便于操作。 提示:(1) 编程步骤:定义变量,输入条件,设计算法,输出结果。(2) 圆面积公式: ,其中, ,在程序中是个常数。4.进阶提高编写程序,已知三角形的三边 a,b,c,求三角形的周长和面积。要求从键盘输入三角形的三边,输入前有提示信息,便于操作。三角形的周长:三角形的面积:实验 2 条件和开关语句1.输入以下程序,编译运行后根据要求从键盘输入数据,并写出程序的输出结果。 编写程序,从键盘输入三个数,判断其能否构成三角形的三边。文件名: S2_1.cpp #includevoid main(void) float a,b,c;/ 定义变量,存放三角形的

4、三边数据 coutabc; / 从键盘依次输入三边的值 if(a+bc)|(a+cb)|(b+ca) / 判断这三边是否能构成三角形 coutNot Trianglen; /不满足三角形三边条件 , 输出否定信息 elsecoutTrianglen; / 满足三边构成条件,输出确认信息将该源文件编译运行后,若输入 3 4 5(,输出结果是 ;若输入 1 2 5(,输出结果是 。结合程序流程分析原因。2.根据程序要求,完善程序后输入源程序,编译连接,并写出运行结果。(一) 编写程序 ,从键盘输入一个年份,判断该年份是否为闰年。 (2000 年是闰年 , 2200 不是闰年 )。将文件命名为 S2

5、_2.cpp。#includevoid main(void) int year; /定义变量,存放将输入的年份 coutyear; /输入欲判断的年份 if( ) / 判断该年份是否为闰年的条件coutyear is a leap yearendl; / 条件为真 , 说明输入的年份为闰年 , 输出 确认信息 elsecoutyear isnt a leap yearendl; / 否则 , 输出否定信息要求:(1)完善程序;(2)将该源文件编译运行后,若输入 2000(,输出结果是 ;若输入 2200( ,输出结果是 。结合程序流程分析原因。(二) 编写一个简易的计算器, 能根据输入的具有两

6、个操作数的表达式计算加、减、乘法。 将文件命名为 S2_3.cpp。#includevoid main() float a1, a2;/ 定义两个操作数 char oper; /定义运算符 float result; / 定义变量,存放结果 int flag=0; /? couta1opera2; /从键盘键入表达式,如 5+3( 4.5*7( 等 switch(oper)/ 利用开关语句结构判断进行何种运算 case +: / 加法 result=a1+a2; break; case -: /减法result=a1-a2; break; case *: / 乘法default:cout 输入

7、错误的运算符 !n;flag=1;if(flag=0) couta1opera2=resultendl; / 输出结果要求:(1)完善程序;(2)将该源文件编译运行后,若输入 4.5+7.2( ,输出结果是 ;若输入 4*5(,输出结果是 ;若输入 8/2(,输出结果是 。结合程序流程分析原因。( 3)整型变量 flag 在程序中起什么作用?3.仿照样例程序编写程序 设计一个函数,求出下列一元二次方程的实根: ,系数 a, b, c 的值从键盘上输入,求方程根 的计算公式为 : ,当小于 0 时, 输出“无实根! ”;否则输出 x 的两个实根。将文件命名为 S2_4.cpp4.进阶提高将文件

8、S2_3.cpp 中所设计的简易计算器进一步完善,使之可以进行除法操作。将文件命名 为 S2_5.cpp实验 3 循环语句( 1)1.输入以下程序,并写出程序的输出结果。 鸡兔共有 30 只,脚共有 90 只,问鸡兔各有多少? 文件名: S3_1.cpp#includevoid main() int x,y;/ 定义变量, x 代表鸡的数目, y 代表兔子的数目for( x=1;x30;x+)/鸡的数目从130皆有可能,所以程序将所有可能的解循环验 证一遍for(y=1;y30;y+) /* 同样兔子的数目从 130 皆有可能, 所以程序将所有可能 的解循环验证一遍 */if(2*x+4*y=

9、90&x+y=30) /在所有可能的解中将满足给定条件的解输出 cout鸡有:xt兔有:yendl; 该程序运行后的结果是 。2.根据程序要求,完善程序后输入源程序,编译连接,并写出运行结果。(一) 设计一个程序,输出所有的水仙花数。 所谓水仙花数是一个三位数, 其各位数字的立 方和等于该数本身。例如: ,因此 153 是一个水仙花数。将文件命名为 S3_2.cpp。#includevoid main() int a0, a1, a2;/ 定义变量, a0 代表个位, a1 代表十位, a2 代表百位int b; /b 为由 a2, a1, a0 所组成的百位数for( a2=1;a2=9;a

10、2+)/百位的位值从 19皆有可能 for(a1=0;a1=9;a1+)/十位的位值从 09皆有可能 for(a0=0;a=9;a+)个位的位值从 09皆有可能 b= ; /由每次循环的百、十、个位组成一个整数if(b= ) / 在所有可能的解中将满足给定条件的解输出coutbendl; 要求:( 1 )完善程序; (2)将该源文件编译运行后,结果为 。(二)求一个三位数的水仙花数(题目同上) 。将文件命名为 S3_3.cpp。#include void main(void) int a0, a1,a2; /定义变量, a0 代表个位, a1 代表十位, a2 代表百位int b; /b为由a

11、2, a1, a0所组成的百位数for(b=100;b=999;b+) /*将数字b从100到999循环,并将每个数拆开,看看是否 符合水仙花数的条件 */ a2=b/100; /剥出数字 b 的百位数a1= ; /剥出数字 b 的十位数a0=b%10; /剥出数字 b 的个位数if( ) /判断是否满足水仙花数的条件coutbt; /满足条件 , 输出这个数coutendl; 要求:完善程序,编译运行。3.仿照样例程序编写程序 编程计算:有 36 块砖要求 36 个人一次搬完,这 36 个人中有男人、女人和小孩。男人一次 可搬 4 块砖,女人一次可搬 2 块砖,小孩两人搬 1 块砖,问 36

12、 人中有多少男人、女人和小 孩。将文件命名为 S3_4.cpp。运行结果:男人 3,女人 5,小孩 28。4.进阶提高(1)求出 1599中能被 3整除,且至少有一位数字为 5的所有整数。如 15, 51, 513均是满足条件的整数。将文件命名为 S3_5.cpp。运行结果:15 45 51 54 57594 597等共66个数(2)设计一个程序,输入一个整数,求出该整数的各位数字之和。例如,输入 1234(,输出 10。将文件命名为 S3_6.cpp。实验 4 循环语句( 2)1.输入以下程序,并写出程序的输出结果。编程求两个正整数的最小公倍数和最大公约数。将文件命名为 S4_1.cpp。#

13、include void main(void) int a,b; / 定义变量,存放从键盘输入的两个正整数int t, x;coutab; / 输入两个正整数x=a*b; /将输入数据之积保存下来,求最小公倍数时用if(ab) /当a小于b时,交换a, b的值,使a大于b t=a; a=b; b=t;while(t=a%b) /欧几里德算法 a=b;b=t;cout 最大公约数 : bendl;cout最小公倍数:x/bendl; /两数之积除以最大公约数即为最小公倍数编译运行程序,当输入为 24 32(时,输出为 ;当输入为 35 21(时,输出为2.根据程序要求,完善程序后输入源程序,编译

14、连接,并写出运行结果。(1)编写程序,求任意三个数的最大公约数。将文件命名为 S4_2.cpp。#includevoid main(void) int a,b,c; /定义存放输入的三个整数的变量空间coutabc; / 从键盘输入三个整数for(int i=a; ; i-)/假设最大公约数为i,使i从a(或 b或c)到1逐次递减循环if( ) /*当i满足公约数的条件 (能被a,b,c同时整除)时,退出循环,这时的 i 即为最大公约数 */break;coutiendl;/ 输出结果要求:( 1 )完善程序;(2)编译运行程序,当输入 24 48 64(时,输出为 ;当输入 25 24 23

15、(时,输出为 。(2)编写程序,判断从键盘输入的正整数是否为素数。将文件命名 S4_3.cpp。#includevoid main(void) int a; /定义变量couta; /从键盘输入一个正整数for(int i=2;ia;i+) /变量i从2循环到a-1,验证i是否是a的因子if( ) 若i是a的因子,则a不是素数break;if( ) 退出循环,若i不是a的因子,a是素数couta 是素数 n; elsecouta 不是素数 n;要求:(1)完善程序; (2)编译运行程序,当输入 25(时,输出为 ;当输入 23(时,输出为 。(3)本程序判断一个数 a是否为素数,最多循环 a-

16、2次,试根据以下的提示信息(3)优化程序,使得循环次数最少。3.仿照样例程序编写程序(1)编写程序,求任意三个数的最小公倍数。将文件命名为 S4_4.cpp。(2)编写程序,求 100200 范围内的所有素数。将文件命名为 S4_5.cpp。4.进阶提高编程求 1000之内的所有“完数” 。所谓“完数”是指一个数恰好等于它的因子之和。例如,6是完数,因为 6 = 1 + 2+ 3。将文件名命名为 S4_6.cpp。(完数:6, 28, 496)实验 5 循环语句( 3)1.输入以下程序,并写出程序的输出结果。编程计算:2 + 22 + 222 + + 2222222 =?#includevoi

17、d main(void) int t=2; /定义变量,表示通项,初值为 2int s=0; /定义变量,表示通项的累加和,初值为 0for(int i=1;i=7;i+) /设计循环,最后的通项是由 7个 2组成的正整数 s=s+t; /求通项累加和t=t*10+2; /通项迭代,用前一项推导出后一项cout2+22+222+.+2222222=se ndl; 编译运行程序,程序的输出为 。2.根据程序要求,完善程序后输入源程序,编译连接,并写出运行结果。从键盘上输入一个整数 n 的值,按下式求出 y 的值,并输出 n 和 y 的值 (y 用实数表示 ):(n=5 y=153),将文件命名为

18、 S5_2.cpp。#includevoid main(void) float y=1,t=1; /t为通项,初值为1,即1!, y为结果,初值为1int n;coutn; /输入欲求的项数for(int i=2;i=n;i+) t= ; /根据前一项求后一项y= ; /通项累加和/输出结果cout1!+2!+3!+ +n!=yendl;要求:(1)完善程序; (2)编译运行程序,当输入为 6(时,输出为 。3.仿照样例程序编写程序 用迭代公式求,迭代公式为: ,要求初始值,精度为: 。求出当时,对应的值,将文件命名为 S5_3.cpp。 (答案: 0.90856)4.进阶提高编写程序计算下列

19、公式的值: 精确到第 n 项,其中 n=10, x=2.5 分别由键盘输入。将文 件命名为 S5_4.cpp。(答案:0.598472)实验 6 函数( 1)1.输入以下程序,并写出程序的输出结果。计算函数当 x=1 和 x=1.2 时的函数值。将文件命名为 S6_1.cpp。 #includefloat fun(float x) / 函数 fun 求形参 x 的函数值 , 并将结果返回 float y; / 定义函数值y=2*x*x+3*x+5; / 计算函数值return y; / 将结果返回void main(void) float y1, y2; / 定义 x 为 1 和 1.2 时的

20、函数值y仁fun(1.0); /将1.0作为实参调用fun函数,即将1.0赋给形参x,函数值即为所求 的结果y2=fun(1.2); /将1.2作为实参调用fun函数,即将1.2赋给形参x,函数值即为所求 的结果couty1=y1endl;couty2=y2endl; 编译运行后的输出结果是 。2.根据程序要求,完善程序后输入源程序,编译连接,并写出运行结果。(一) 用牛顿迭代法求的一个实根。其中, ,迭代公式为: ,的初值为 0,当时迭代结束。将文件命名为 S6_2.cpp (答案: 1)#include#include f( ) / 求形参 x 的函数 f(x)=x*x+3*x-4 的值

21、float y;y=x*x+3*x-4; return y; df( ) / 求 f(x) 的导数 2x+3 的值 float y;y=2*x+3;return y;void main(void) float x1, x0; / 定义存放新旧迭代值的变量x1=0; / 迭代变量赋初值do x0=x1; / 迭代循环 , 将新的迭代值变成旧的迭代值 , 再去求新的迭代值x1= ; / 用旧的迭代值求新的迭代值while( ); / 不满足结束条件 , 一直迭代循环coutx=x1endl; / 输出结果要求:(1)完善程序;(2)编译运行程序,输出为 。(二)利用二分法求的一个实根。 其中,二分

22、法的迭代公式为: ,其中和的初值从键盘输入, 当时迭代结束。将文件命名为 S6_3.cpp。#include #include float f(float x) / 根据形参 x 求函数 f(x)=x*x+3*x-4 的值 return x*x+3*x-4; void main(void) float x1,x2,x0;do /判断输入的初值是否满足要求 coutx1x2; /输入初值while(f(x1)*f(x2)0); / 当方程的解不在输入的初值范围之内, 重新循环输入初值 do x0=(x1+x2)/2; / 根据初值求方程的新的根 x0if( 0) / 实际的根在 x2 和 x0

23、之间x1=x0; / 将 x0 作为新的 x1else / 实际的根在 x1 和 x0 之间 ; /将 x0 作为新的 x2while(fabs(f(x0)1e-5); / 判断 x0 是否是满足方程的解的精度 coutx0=x0endl; / 输出 x0 要求: (1)完善程序; (2)编译运行程序,当输入 0 2(时,程序的输出是 ;当输入 -5 0( 时,程序的输出是 ;当输入 0 -2( 时,程序的输出是 ,为什么?3.仿照样例程序编写程序 利用弦截法求的一个实根。其中, ,弦截法的迭代公式为: ,其中和的初值从键盘输入,当时 迭代结束。将文件命名为 S6_4.cpp。编写调试运行程序

24、后,当输入 0 2(时,程序的输出是 ;当输入 -5 0(时,程序的输出是 ;当输入 0 -2( 时,程序的输出是 ,为什么?4.进阶提高用递归调用的方法编写 S6_2.cpp,用牛顿迭代法求的一个实根。 其中,迭代公式为:,的初值为0,当时迭代结束。将文件命名为 S6_5.cpp (答案:1)实验 7 函数( 2)1.输入以下程序,并写出程序的输出结果。设计一个程序,求出 100200之间的所有素数。(101 103 107199共21个数)。将文件命名为 S7_1.cpp。#includeint prime(int x) / 函数功能: 判断 x 是否为素数, 若是素数 , 函数返回值为

25、1, 否则 , 函数返回 值为 0 for(int i=2;ix/2;i+) if(x%i=0) /x 能被 2x/2 整除,说明 x 不是素数 return 0;return 1; /执行完循环, x 为素数,返回 1void main(void) for(int i=100;i=200;i+) / 将 i 从 100 到 200 依次循环,求出所有满足素数条件的 i if(prime(i)=1) / 利用 prime() 函数判断循环变量 i 是否为素数 coutit; / 若为素数,输出这个数 编译运行程序,程序的运行结果是 。2.根据程序要求,完善程序后输入源程序,编译连接,并写出运行

26、结果。输入一个整数n (2 nW 10000),输出它的所有的素数因子。用函数 int prime(int num)来判断整数 num 是否为素数,例如,若输入 2310(,则输出: 2, 3, 5, 7, 11。将文件命名为 S7_2.cpp。#includeint prime(int num) / 函数 prime 判断形参 num 是否为素数 , 若为素数 , 函数返回 1, 否则函数 返回 0 for(int i=2;inum/2;i+) if( )return 0;void main(void) int n;coutn; / 从键盘输入一个整数for(int i=2;i=n/2;i+

27、) /将i从2开始循环,判断i是否为n的因子 if( ) / 若 i 为 n 的因子且 i 为素数coutit; / 输出 icoutendl;要求:(1)完善程序;(2)编译运行程序,当输入 2145( ,程序的输出是 。3.仿照样例程序编写程序写一个函数验证哥德巴赫猜想;一个不小于 6 的偶数可以表示为两个素数之和,如 6=3+3,8=3+5, 10=3+7。在主函数中输入一个不小于 6的偶数n,函数中输出以下形式的结果:若输入 34,程序输出为:34=3+3134=5+2934=11+23将文件命名为 S7_3.cpp。编写程序,编译运行,当输入为 56(时,输出为 ;当输入为 122(时,输出为4.进阶提高编写函数int fun( int num),计算整数num的各位上的数字之积,并将计算结果作为函数值 返回。如输入263(,则返回36 (36 = 2X 6X 3)。要求在主函数中可以反复调用函数 fun,连续输入多个正整数并计算结果,直到输入 0 为止。将文件命名为 S7_4.cpp。编写程序,编译运行,当输入为 24( 3

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1