实验三 函数与程序结构实验
实验3 结构化程序设计初步

实验3 结构化程序设计初步1.实验目的(1)掌握C++赋值语句与输入输出语句的使用方法,区别C语言的输入输出语句(2)掌握关系运算符、逻辑运算符与条件运算符的运算规则并能熟练计算由这些运算符构成的表达式(3)深入掌握C++各种流程控制语句(选择语句、循环语句和跳转语句)的要点和使用方法(4)能够灵活地运用C++各种语句进行综合程序设计2.实验内容2.1程序分析题。
分析下面程序的运行结果,上机运行程序,观察其输出结果与你的分析结果是否相同?(1)有如下程序,从键盘输入123456.78↙后,变量c1、c2、a、b的值分别是多少?#include <iostream.h>void main( ){char c1,c2;int a;float b;cin>>c1>>c2>>a>>b;cout<<c1<<" "<<c2<<" "<<a<<" "<<b<<'\n';}(2)#include <iostream.h>#include <iomanip.h>void main( ){double a=123.456789012345;cout<<a<<endl;cout<<setprecision(9)<<a<<endl;cout<<setprecision(6)<<a<<endl;cout<<setiosflags(ios::fixed)<<a<<endl;cout<<setiosflags(ios::fixed)<<setprecision(8)<<a<<endl;}(3)#include <iostream.h>#include <iomanip.h>void main( ){double a=123.456789012345;cout<<setiosflags(ios::scientific)<<a<<endl;cout<<setiosflags(ios::scientific)<<setprecision(4)<<a<<endl;}#include <iomanip.h>void main( ){int b=123456;cout<<b<<endl;cout<<hex<<b<<endl;cout<<setiosflags(ios::uppercase)<<b<<endl;cout<<dec<<setw(10)<<b<<','<<b<<endl;cout<<setfill('*')<<setw(10)<<b<<endl;cout<<setiosflags(ios::showpos)<<b<<endl;}(5)有如下程序,从键盘输入86 24 75↙后,程序的输出结果为多少,为什么?#include <iostream.h>void main( ){int a,b,c;cin>>a>>oct>>b>>hex>>c;cout<<a<<" "<<b<<" "<<c<<endl;}(6)#include <iostream.h>#include <iomanip.h>void main( ){short a=-1;cout<<dec<<a<<" "<<oct<<a<<" "<<hex<<a<<endl;}(7)#include <stdio.h>void main( ){int a=-1;printf("dec:%d,oct:%o,hex:%x,unsigned:%u\n",a,a,a,a);}(8)以下程序中,为了给整型变量k1,k3赋值为10,给k2,k4赋值为20,如何输入数据?#include <stdio.h>void main( ){int k1,k2,k3,k4;scanf("%d%d",&k1,&k2);scanf("%d,%d",&k3,&k4);printf("k1=%d,k2=%d,k3=%d,k4=%d\n",k1,k2,k3,k4);}void main( ){int a=3,b=4,c=5,d=6,e,f;e=a>b&&(c=8);cout<<c<<" "<<e<<endl;f=a<b&&(e=c<d);cout<<e<<" "<<f<<endl;f=a<b||(d>0?d++:d--);cout<<d<<" "<<f<<endl;}(10)#include <iostream.h>void main( ){int x,y,z,w;z=(x=-1)?(y=-1,y+=x+5):(x=7,y=9);w=y*'a'/4;cout<<x<<" "<<y<<" "<<z<<" "<<w<<endl;}(11)#include <iostream.h>void main( ){int a=5,b=7,c=3,t;if(a= -1) cout<<"Yes"<<endl;else cout<<"No"<<endl;if(a>b) { t=a;a=b;b=t; }if(a>c) { t=a;a=c;c=t; }if(b>c) { t=b;b=c;c=t; }cout<<a<<" "<<b<<" "<<c<<endl;}解析:a被赋值为-1,输出YESIf语句成立则执行,不成立则不执行分析只有b>c成立,=后面的值赋给左边的,顺序从左到右(12)#include <iostream.h>void main( ){ char c='3';switch(c-'1'){case 0:case 1:cout<<c+1<<endl;case 2:cout<<c+2<<" "<<char(c+2)<<endl;default:cout<<c+3<<" "<<char(c+3)<<endl;}}‘3’是字符型,ASCLL码为051,执行Switch时,根据switch表达式的值找到与之匹配的case子句,就从此子句开始执行下去,不再进行判断(13)#include <iostream.h>void main( ){int a=2,b=7,c=5;switch(a>0){case 1:switch(b<0){case 1: cout<<"+";break;case 2: cout<<"-";break;}case 0:switch(c==5){case 0: cout<<"*";break;case 1: cout<<"/";break;default: cout<<"#";break;}default: cout<<"$";}cout<<"\n";}a>0是真,值为1,执行case1,继续下面,b<0是假,不执行其中的case1.case2c==5是真,值为1,执行case1,输出/,其后有break,被中断不再执行分句里其下的命令,default: cout<<"$"前面没有break,则输出$(14)#include <iostream.h>void main( ){int a=10,b=0;do{a+=2;b+=a;cout<<"a="<<a<<",b="<<b<<endl;if(b>20) break;}while(a!=14);}(15)#include <iostream.h>void main( ){int i,j;for(i=10;i<20;i++){for(j=2;j<=i/2;j++)if(i%j==0) break;if(j>i/2)cout<<i<<" ";}cout<<endl;}(16)#include <iostream.h>void main( ){int i,j,m=0;for(i=0;i<5;i++)for(j=0;j<5;j++)if(j>=i) m++;cout<<m<<endl;}(17)#include <iostream.h>void main( ){int i,j;for(i=1;i<=9;i++){for(j=1;j<=9;j++){ if(j>i) break;cout<<i<<"*"<<j<<"="<<i*j<<" ";}cout<<endl;}}(18)#include <iostream.h>void main( ){int i=1,sum=0;while(i<=100){if(i%2==0){ i++; continue;}sum+=i;i++;}cout<<sum<<endl;}2.2编程题(1)编写程序从键盘输入一个大写字母,将其转换为小写字母并输出。
《Python程序设计》实验3---Python基本数据类型及分支结构实验报告

**大学数学与信息工程学院《Python程序设计》实验报告实验名称:实验3 Python基本数据类型及分支结构班级:姓名:,学号:实验地点:日期:《一、实验目的:[实验目的和要求]1、熟练掌握Python三种数字类型及其应用2、熟练判断条件表达式的真假3、熟练掌握Python分支结构二、实验环境:1、计算机,局域网,python 软件三、~四、实验内容和要求:(直接将实验步骤及截图写在题目下面,结果必须截图)1、复数z=-3+4j,用Python程序求得对应的实部和虚部并计算z的绝对值,并思考输出的绝对值代表什么含义2、请将下列数学表达式用Python程序写出来,并运算结果1)427345x+-⨯=代码:a=2**4 b=7。
c=3 d=4 e=5x=(a+b-c*d)/e print(x)2)2131677()(mod )/x =+⨯代码:>a=3**2 b=1 c=16 d=7x=(a+b)*(c%d)/7 print(x)3、编写程序,根据输入的长和宽,计算矩形的面积并输出。
要求:输入语句input 实现同步赋值。
、lw=input('请输入矩形的长和宽,以空格分隔:') length,width=map(float,()) s=length*widthprint("矩形面积为:",s)4、编写程序,用户输入一个三位以上的整数(如果不是三位数则提示输入错误),输出其百位以上的数字。
例如用户输入1234,则程序输出12。
(提示:使用整除运算。
)代码:a=eval(input('请输入一个三位以上的整数:'))!b=int(a/100)if(a<99):print('输入错误')else:print(b)------------------------------------------------------------------------------------------------------------------------------5、已知某课程的百分制分数mark ,将其转换为5分制(优、良、中、及格、不及格)的评定等级grade ,评定条件如下:(注意:不要存在冗余条件) 、908090=7080607060mark mark mark mark mark ≥⎧⎪≤<⎪⎪≤<⎨⎪≤<⎪⎪<⎩优良成绩等级中及格不及格代码:mark=eval(input('请输入你的分数:')) if mark>=90: print('优') elif 90>mark>=80: print('良') elif 80>mark>=70:、print('中') elif 70>mark>=60: print('及格') elif mark<60:print('不及格')6、-7、 (1)编写计算n的阶乘的程序,n由用户输入。
C语言程序设计实验三答案

实验三 选择结构程序设计一、实验目的与要求1. 理解C 语言表示逻辑量的方法,学会正确使用逻辑运算符和逻辑表达式。
2. 掌握利用if 结构实现选择结构的方法。
3. 掌握利用switch 结构实现多分支选择结构。
4. 结合程序掌握一些简单的算法,学习调试程序5. 实验4学时二、实验内容1.程序改错题改正下面程序中的错误。
输入实数x ,计算并输出下列分段函数f(x)的值(保留1位小数)。
)100(1=x x==)(x f y)100(≠x x输入输出示例1(改正后程序的运行结果)Enter x :100f )=输入输出示例2(改正后程序的运行结果)Enter x :23f )=源程序(有错误的程序)#include<>#include<>void main(void){double x;printf("Enter x: \n");scanf("=%f", x);if (x = 100) {y = 1/sqrt(x)}else (x != 100) {y = x;}printf("f(%.2f) = %.1f\n",x,y);}答:#include<>#include<>void main(void){double x,y;printf("Enter x:\n");scanf("%lf",&x);if (x=100)y = 1/sqrt(x);elsey= x;printf("f(%.2lf)=%.1lf\n",x,y);}2.一般编程题编程题1输入任意三个整数a,b,c ,求3个数中的最大值和最小值。
答:#include <>void main(){int a,b,c;printf("请输入三个整数:");scanf("%d %d %d",&a,&b,&c);if (a>=b)t=a,a=b,b=t;if (a>=c)t=a,a=c,c=t;if (b>=c)t=b,b=c,c=t;printf("最小值为:%d\n",a);printf("最大值为:%d\n",c);}编程题2输入x ,计算并输出下面分段函数f(x)的值(保留2位小数)。
Python实验报告(分享文档)

目录备注: 实验考核要求及成绩评定4.检查已输入的程序是否有错(包括输入时输错的和编程中的错误),如发现有错,及时改正。
5.运行程序并分析运行结果是否合理。
在运行时要注意当输入不同的数据时所得结果是否正确,应测试两组以上数据,分别检查在不同情况下结果是否正确。
列出1-7题源程序清单并记录上机运行结果。
1.编写Python程序, 进行摄氏度和华氏度之间的温度转换。
源程序:运行结果:2.天天向上的力量计算。
一年365天, 以第1天的能力值为基数, 记为1.0,当好好学习时能力值相比前一天提高1‰, 当没有学习时由于遗忘等原因能力值相比前一天下降1‰。
每天努力和每天放任, 一年下来的能力值相差多少呢?源程序:运行结果:思考:如果好好学习时能力值相比前一天提高5‰, 当放任时相比前一天下降5‰。
效果相差多少呢?源程序:运行结果:如果好好学习时能力值相比前一天提高1%, 当放任时相比前一天下降1%。
效果相差多少呢?源程序:运行结果:3.一年365天, 一周5个工作日, 如果每个工作日都很努力, 可以提高1%,仅在周末放任一下, 能力值每天下降1%, 效果如何呢?源程序:运行结果:4.每周工作5天, 休息2天, 休息日水平下降0.01, 工作日要努力到什么程度一年后的水平才与每天努力1%所取得的效果一样呢?(选作)源程序:运行结果:5.输入一个星期数字, 返回对应星期名称。
源程序:运行结果:6.利用print()函数实现简单的非刷新文本进度条及单行动态刷新文本进度条。
(1) 简单的非刷新文本进度条源程序:运行结果:(2) 单行动态刷新文本进度条源程序:运行结果:五、总结1.实验过程中的问题及解决方法:答: 在“温度转换”实例中对字符串的逆序截取那一部分不太熟悉,通过查询了“廖雪峰Python学习网站”之后得到了解决。
对format格式的输出还不太熟悉, 通过不断地练习得到了改善。
2.实验收获实验成绩评定表处理:if PM2.5值>= 75, 打印空气污染警告if 35 <= PM2.5值< 75, 打印空气良好提醒if PM2.5值< 35, 打印空气质量优, 建议户外运动输出: 打印空气质量提醒源程序:运行结果:2.编写一个根据体重和身高计算BMI值的程序, 并同时输出国际和国内的BMI指标建议值。
2024版C语言程序设计实验教案

C语言程序设计实验教案contents •实验目标与要求•实验内容与步骤•实验难点与重点解析•实验报告撰写指导•课程回顾与拓展延伸•考核方式与评价标准目录01实验目标与要求掌握C语言的基本语法和程序结构熟悉C语言的开发环境和调试工具培养学生运用C语言解决实际问题的能力提高学生的编程思维和算法设计能力01020304010204学生需要具备一定的计算机基础知识,如操作系统、基本编程概念等学生需要安装并配置好C语言的开发环境,如编译器、调试器等学生需要按照实验步骤和要求完成实验任务,并提交实验报告学生需要积极参与实验讨论和交流,分享自己的经验和心得03Windows 、Linux 或Mac OS 等主流操作系统操作系统开发工具实验素材Visual Studio 、Code:Blocks 、GCC 等C 语言编译器和调试器提供必要的实验素材和代码示例,供学生参考和学习使用030201实验环境准备02实验内容与步骤•实验目的:掌握C语言的基本语法,包括变量、数据类型、运算符和表达式等。
实验内容编写程序,实现两个整数的四则运算。
编写程序,输入一个整数,判断其正负和奇偶性。
•编写程序,实现三个数的排序并输出。
实验步骤2. 使用编译器编译并运行程序。
1. 编写程序源代码。
3. 观察并记录程序运行结果。
实验一:基础语法练习•实验目的:掌握C语言的控制结构,包括条件语句、循环语句和跳转语句等。
实验内容编写程序,实现输入一个整数,判断其是否为素数。
编写程序,求1到100之间的所有偶数的和。
•编写程序,实现输入一个年份,判断其是否为闰年。
实验步骤1. 分析问题,确定算法。
2. 编写程序源代码。
3. 使用编译器编译并运行程序。
4. 观察并记录程序运行结果。
•实验目的:掌握C语言的函数和数组的使用方法。
实验内容编写程序,实现输入一个整数数组,输出其中的最大值和最小值。
编写程序,实现输入一个字符串,统计其中每个字符出现的次数。
程序设计基础实验报告

实验一 用C 语言编写简单程序一、实验目的1. 熟悉VC6.0的编程环境,掌握运行C 程序的基本步骤。
2. 了解C 程序的基本框架,模仿例题编写简单的C 语言程序。
3. 正确书写算术表达式、赋值表达式和关系表达式。
4. 掌握基本输入输出函数的使用,正确调用C 语言提供的数学库函数。
5. 掌握简单的单步调试方法。
二、实验环境Windows XP ;Visual C++ 6.0。
三、实验内容1.在屏幕上显示一个句子“What is a computer?”。
2.求华氏温度150F 对应的摄氏温度。
计算公式如下:其中,c 表示摄氏温度;f 表示华氏温度。
3.输入x ,计算下列分段函数的值(保留2位小数),请调用sqrt 函数求平方根,调用pow 函数求幂。
4. 输入一个正整数m (0100)m ≤≤,求100i m i =∑。
四、实验要求1. 将上机验证正确的源代码写到实验报告上。
2.根据自己的真实感受,认真填写实验分析和实验心得以及问题和建议。
3.按时提交实验报告。
553299c f =⨯-⨯21(1)2 x<02()0x x f x ⎧+++⎪=≥一、实验目的1.熟练掌握关系表达式的使用。
2.熟练掌握使用else-if 语句实现多分支结构程序设计。
二、实验环境Windows XP ;Visual C++ 6.0。
三、实验内容1.输入x ,计算并输出下列分段函数sign(x)的值。
2.输入月薪salary ,输出应交的个人所得税tax (保留2位小数)。
按照2011年开始实行的新的个人所得税法,计算公式为:tax = rate*(salary-3500)-deduction 。
当salary≤3500时,rate=0、deduction=0当3500<salary≤5000时,rate=3%、deduction=0当5000<salary≤8000时,rate=10%、deduction=105当8000<salary≤12500时,rate=20%、deduction=555当12500<salary≤38500时,rate=25%、deduction=1005当38500<salary≤58500时,rate=30%、deduction=2775当83500<salary 时,rate=45%、deduction=135053.输入一个正整数n ,再输入n 个学生的百分制成绩,统计各等级成绩的个数。
《C语言程序设计》实验报告

《C语言程序设计》实验报告学院:专业:学号:姓名:成绩:课程代码: 2001301指导教师:实验中心:电气信息专业试验中心日期:目录实验总体要求实验一………………………………………………C语言的运行环境和运行过程实验二………………………………………………数据类型、运算符与表达式实验三………………………………………………程序结构(顺序、选择和循环) 实验四………………………………………………数组实验五………………………………………………函数实验六………………………………………………指针实验七………………………………………………结构体实验八………………………………………………类和对象实验总体要求C语言程序设计课程是一门实践性很强的课程,为了培养学生的计算机应用能力,除了课堂理论教学外,必须加强程序设计课程实验的教学环节。
1、课程实验教学目的通过C语言程序设计的课程实验教学,学生应具有使用计算机解决相关问题的能力,同时为学生今后学习其他计算机应用课程打下良好的程序设计基础。
⑴分析问题和解决问题能力的训练课程实验教学将课本上的理论知识和实际应用有机地结合起来,达到训练学生分析问题解决实际问题的能力,提高学生应用计算机知识开发应用系统的综合能力。
⑵逻辑思维能力的训练通过课程实验教学,使学生正确地掌握C语言的基本知识,较好掌握基本的程序算法,以及描述方法。
培养学生在程序设计解题思路、算法的描述、编程构思等方面的计算机逻辑思维能力。
⑶程序设计技能的训练通过C语言环境下的应用实例,训练学生编写程序的能力,掌握编程的思路和方法,掌握结构化程序设计的基本概念和基本技能。
通过课程实验教学,使学生掌握C程序设计语言的语法规则,数据结构的应用,掌握算法描述及相应代码描述,掌握结构化程序设计的基本方法,能熟练编写一般的应用程序。
2、课程实验教学要求⑴要求通过解题、程序设计和上机实践,加深对所学概念的理解,提倡理论与实践相结合的学习方法。
Matlab实验三答案

Matlab实验三答案实验三 MATLAB语⾔的程序设计⼀、实验⽬的:1、熟悉MATLAB程序编辑与设计环境2、掌握各种编程语句语法规则及程序设计⽅法3、函数⽂件的编写和设计4、了解和熟悉跨空间变量传递和赋值⼆、实验基本知识:1、程序流程控制语句for循环结构语法:for i=初值:增量:终值语句1……语句nend说明:1.i=初值:终值,则增量为1。
2.初值、增量、终值可正可负,可以是整数,也可以是⼩数,只须符合数学逻辑。
while 循环结构语法:while 逻辑表达式循环体语句end说明:1、whiIe结构依据逻辑表达式的值判断是否执⾏循环体语勾。
若表达式的值为真,执⾏循环体语句⼀次、在反复执⾏时,每次都要进⾏判断。
若表达式的值为假,则程序执⾏end之后的语句。
2、为了避免因逻辑上的失误,⽽陷⼊死循环,建议在循环体语句的适当位置加break语句、以便程序能正常执⾏。
(执⾏循环体的次数不确定;每⼀次执⾏循环体后,⼀定会改变while 后⾯所跟关系式的值。
)3、while循环也可以嵌套、其结构如下:while逻辑表达式1循环体语句1while逻辑表达式2循环体语句2end循环体语句3endelse if 表达式2(可选)语句2else(可选)语句3endend说明:1.if结构是⼀个条件分⽀语句,若满⾜表达式的条件,则往下执⾏;若不满⾜,则跳出if结构。
2.else if表达式2与else为可选项,这两条语句可依据具体情况取舍。
3.注意:每⼀个if都对应⼀个end,即有⼏个if,记就应有⼏个end。
switch-case结构语法:switch表达式case常量表达式1语句组1case常量表达式2语句组2……otherwise语句组nend说明:1.switch后⾯的表达式可以是任何类型,如数字、字符串等。
2.当表达式的值与case后⾯常量表达式的值相等时,就执⾏这个case后⾯的语句组如果所有的常量表达式的值都与这个表达式的值不相等时,则执⾏otherwise后的执⾏语句。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C 语言程序设计 实验报告专业 信息安全 班级 1103 日期 成绩 实验组别 第 1次实验 指导教师 学生姓名 严志颖 学号 U201114113 同组人姓名 实验名称 函数与程序结构实验一、实验目的1.熟悉和掌握函数的定义、声明;函数调用与参数传递方法;以及函数返回值类型的定义和返回值使用。
2.熟悉和掌握不同存储类型变量的使用。
3.熟悉多文件编译技术。
二、实验任务1.源程序改错题下面是计算s=1!+2!+3!+…+n!的源程序,在这个源程序中存在若干语法和逻辑错误。
要求在计算机上对这个例子程序进行调试修改,使之能够正确完成指定任务。
#include "stdio.h"void main(void){int k;for(k=1;k<6;k++)printf("k=%d\tthe sum is %ld\n",k,sum_fac(k));}long sum_fac(int n){long s=0;int i;long fac;for(i=1;i<=n;i++)fac*=i;s+=fac;return s;}2.源程序修改替换题(1)修改第1题中sum_fac 函数,使其计算量最小。
(2)修改第1题中sum_fac 函数,计算!1!31!211n s ++++= 。
3.跟踪调试题计算fabonacci 数列前n 项和的程序如下:其中,long sum=0,*p=∑声明p 为长整型指针并用&sum 取出sum 的地址对p 初始化。
*p 表示引用p 所指的变量(*p 即sum )。
void main(void){int i,k;long sum=0,*p=∑scanf("%d",&k);for(i=1;i<=k;i++){sum+=fabonacci(i);printf("i=%d\tthe sum is %ld\n",i,*p);}}long fabonacci(int n){if(n==1 || n==2)return 1;elsereturn fabonacci(n-1)+fabonacci(n-2);}单步执行程序,观察p,i,sum,n值。
(1)刚执行完scanf("%d",&k);语句,p,i值是多少?(2)从fabonacci函数返回后光条停留在哪个语句上?(3)进入fabonacci函数,watch窗口显示的是什么?(4)当i=3,从调用fabonacci函数到返回,n值如何变化?4.编程设计题(1)编程让用户输入两个整数,计算两个数的最大公约数并且输出之(要求用递归函数实现求最大公约数)。
同时以单步方式执行该程序,观察递归过程。
(2)编程验证歌德巴赫猜想:一个大于等于4的偶数都是两个素数之和。
编写一个程序证明对于在符号常量BEGIN和END之间的偶数这一猜测成立。
例如,如果BEGIN为10,END为20,程序的输出应为:GOLDBACH'S CONJECTURE:Every even number n>=4 is the sum of two primes.10=3+712=5+7……20=3+175.选做题1、设file1.c如下:#include <stdio.h>int x,y; /* 外部变量的定义性说明 */char ch; /* 外部变量的定义性说明 */void main(void){x=10;y=20;ch=getchar();printf("in file1 x=%d,y=%d,ch is %c\n",x,y,ch);func1();}file2.c如下:extern int x,y; /* 外部变量的引用性说明 */extern char ch; /* 外部变量的引用性说明 */void func1(void){x++;y++;ch++;printf("in file2 x=%d,y=%d,ch is %c\n",x,y,ch); }三、实验步骤及结果1.源程序改错题程序缺少调用函数的声明;变量的初始化;等。
修改后的正确程序为:#include <stdio.h>long sum_fac(int n);int main(){int k;printf("please input k: ");scanf("%d",&k);printf("k=%d\tthe sum is %ld\n",k,sum_fac(k));return 0;}long sum_fac(int n){long s=0;int i;static long fac=1;for(i=1;i<=n;i++){fac=fac*i;s=s+fac;}return s;}运行结果:2.源程序修改替换题○1减小运算量. #include <stdio.h>long sum_fac(int n,int t);int main(){int k=0,i;long m;do{printf("please input k: ");scanf("%d",&k);}while(k<0);for(i=1;i<=k;i++)m=sum_fac(k,i);printf("k=%d\tthe sum is %ld\n",k,m);return 0;}long sum_fac(int n,int t){static long fac=1,s=0;if(t<=n){fac=fac*t;s=s+fac;}return s;}运行结果如图:○2计算!1!31!211S n ++++= 的程序如下: #include <stdio.h>double sum_fac(int n);int main(){int k;printf("please input k: ");scanf("%d",&k);printf("k=%d\tthe sum is %lf\n",k,sum_fac(k));return 0;}double sum_fac(int n){double s=0.0;int i=1;long fac=1;do{fac=fac*i;s=s+1.0/fac;i++;}while(i<=n);return s;}运行结果:3.跟踪调试题(1)刚执行完scanf("%d",&k);语句,p,i值是多少?输入k=6;p和i的值如右图:(2)从fabonacci函数返回后光条停留在哪个语句上?答:从fabonacci函数返回后光条停留在“printf("i=%d\tthe sum is %ld\n",i,*p);”语句上(3)进入fabonacci函数,watch窗口显示的是什么?在k=3输入时:最后一个截图为程序结束时的各变量数值。
(4)当i=3,从调用fabonacci函数到返回,n值如何变化?4.编程设计题○1计算最大公约数的程序:int gcd(int u,int v){int temp;while (v!=0){temp = u%v;u=v;v=temp;}return u;}int main(){int m,n;printf("Please input two numbers:");scanf("%d%d",&m,&n);printf("gcd=%d",gcd(m,n));运行结果:○2验证哥德巴赫猜想程序:#include<stdio.h>#include<math.h>#define N 40int gedebahe(int);int main(){int i=6,n;printf(" 4 = 2 + 2\n");for(;i<=N;i+=2){for(n=3;n <= i/2;n+=2)if(gedebahe(n))if(gedebahe(i-n)){printf("%4d = %2d + %2d\n",i,n,i-n); break;}if(n > i/2) printf("error %d\n",i);}return 0;}int gedebahe(int i){int j;if(i <= 1) return 0;if(i == 2) return 1;if(!(i % 2)) return 0;for(j = 3;j <= sqrt(i);j += 2)if(!(i % j)) return 0;return 1;运行结果:○3编写程序如下:#include<stdio.h>#include<math.h>#define M 10#define N 20int gedebahe(int);int main(){int i,n;printf("GOLDBACH'S CONJECTURE:\n");printf("Every even number n>=4 is the sum of two primes.\n"); for(i=M;i<=N;i+=2){for(n=3;n <= i/2;n+=2)if(gedebahe(n))if(gedebahe(i-n)){printf("%d = %d + %d\n",i,n,i-n);break;}if(n > i/2) printf("error %d\n",i);}return 0;}int gedebahe(int i){int j;if(i <= 1) return 0;if(i == 2) return 1;if(!(i % 2)) return 0;for(j = 3;j <= sqrt(i);j += 2)if(!(i % j)) return 0;return 1;}运行结果如图:四、实验体会通过此次实验,我大致了解了C程序函数的特点,总体感觉这次试验难度较大,需要以后多加练习,只有深入理解C语言程序的特点才能为以后编程打下基础。