实验2用C语言编写简单程序.docx

上传人:b****8 文档编号:28392958 上传时间:2023-07-13 格式:DOCX 页数:26 大小:841.25KB
下载 相关 举报
实验2用C语言编写简单程序.docx_第1页
第1页 / 共26页
实验2用C语言编写简单程序.docx_第2页
第2页 / 共26页
实验2用C语言编写简单程序.docx_第3页
第3页 / 共26页
实验2用C语言编写简单程序.docx_第4页
第4页 / 共26页
实验2用C语言编写简单程序.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

实验2用C语言编写简单程序.docx

《实验2用C语言编写简单程序.docx》由会员分享,可在线阅读,更多相关《实验2用C语言编写简单程序.docx(26页珍藏版)》请在冰豆网上搜索。

实验2用C语言编写简单程序.docx

实验2用C语言编写简单程序

实验2用C语言编写简单程序

2.1基本数据处理

【实验目的】

1.掌握算术表达式和赋值表达式的使用。

2.掌握基本输出函数的使用。

3.能够编程实现简单的数据处理。

4.掌握简单C程序的查错方法。

【实验内容】

1.调试示例

改正下列程序中的错误,求华氏温度100oF对应的摄氏温度。计算公式如下,其中:

c表示摄氏温度,f表示华氏温度。(源程序error02_1.c)

源程序(有错误的程序)

#include

intmain(void)

{

intcelsius;fahr;

fahr=100;

celsius=5*(fahr-32)/9;

printf("fahr=d,celsius=%d\n",fahr,celsius);

return0;

}

运行结果(改正后程序的运行结果)

fahr=100,celsius=37

 

(1)使用Guide打开源程序error02_1.c(如图2.1所示)。

(2)使用工具栏按钮

进行程序的编译和运行。

工具栏按钮中,

表示编译,

表示停止编译,

表示运行,

表示停止运行。

图2.1Guide打开文件界面

(3)单击

编译按钮,编译时出现的第一条错误信息是:

error02_1.c:

1:

20:

stdoi.h:

Nosuchfileordirectory

双击该错误信息,光标指向源程序第一行,错误信息指出不能打开”stdoi.h”文件,因为”stdio.h”被误写为”stdoi.h”。

改正为”stdio.h”后,重新编译,新产生的第一条错误信息是:

error02_1.c:

4:

error:

`fahr'undeclared(firstuseinthisfunction)

双击该错误信息,光标指向源程序第四行,错误信息指出”fahr”变量没有被定义。

仔细观察后,反省”fahr”前的分号应该为逗号。

将”fahr”前的分号改为逗号后,重新编译,编译正确。

(4)单击

编译按钮,编译正确。

(5)单击

运行按钮,运行结果为:

fahr=d,celsius=37

结果不符合题目的要求,仔细检查源程序,发现函数printf中的”fahr=d”的”d”应为”%d”。

改正后,重新编译和运行,运行结果与题目要求的结果一致。

2.编程题

求华氏温度150oF对应的摄氏温度。计算公式如下,其中:

c表示摄氏温度,f表示华氏温度。

输入输出示例

fahr=150,celsius=66

3.编程题

求摄氏温度26℃对应的华氏温度。计算公式如下,其中:

c表示摄氏温度,f表示华氏温度。

输入输出示例

celsius=26,fahr=78

4.编程题

已知某位学生的数学、英语和计算机课程的成绩分别是87分、72分和93分,求该生3门课程的平均分。

输入输出示例

math=87,eng=72,comp=93,average=84

5.编程题

当n为152时,分别求出n的个位数字(digit1)、十位数字(digit2)和百位数字(digit3)的值。

输入输出示例

整数152的个位数字是2,十位数字是5,百位数字是1

提示:

n的个位数字digit1的值是n%10,十位数字digit2的值是(n/10)%10,百位数字digit3的值是n/100。

思考:

如果n是一个四位数,如何求出它的每一位数字?

6.改错题

改正下列程序中的错误,计算某个数x的平方y,并分别以“y=x*x”和“x*x=y”的形式输出x和y的值。请不要删除源程序中的任何注释。(源程序error02_2.cpp)

输入输出示例(假设x的值为3)

9=3*3

3*3=9

源程序(有错误的程序)

#include

intmain(void)

{

inty;

y=x*x;

printf("%d=%d*%d",x);/*输出

printf("d*%d=%d",y);

return0;

}

2.2计算分段函数

【实验目的】

1.使用if语句计算分段函数。

2.正确书写关系表达式。

3.掌握基本输入函数的使用,能正确调用C语言提供的数学库函数。

4.掌握简单的单步调试方法。

【实验内容】

1.调试示例

改正下列程序中的错误,输入x、计算并输出下列分段函数f(x)的值(保留1位小数)。(源程序error02_3.c)

源程序(有错误的程序)

#include

intmain(void)

{

doublex,y;

printf("Enterx:

");

scanf("%lf",x);

if(x!

=0){

y=1/x

}

else{

y=0;

}

printf("f(%.2f)=%.1f\n",x,y);

return0;

}

运行结果1(改正后程序的运行结果)

Enterx:

10

f(10.00)=0.1

运行结果2

Enterx:

0

f(0.00)=0.0

在运行结果中,凡是加下划线的内容,表示用户输入的数据,每行的最后以回车结束;其余内容都为输出结果。

在本书的所有实验题目中,都遵循这一规定。

(1)使用软件GUIDE打开源程序error02_3.c。

执行“编译”菜单|“编译”命令,或者单击

(编译)按钮,编译程序。

在窗口下方的“信息查看栏”中,出现了编译错误信息,如图2.2所示。

图2.2编译错误信息

(2)第一条编译错误信息是:

error02_3.c:

6:

warning:

formatargumentisnotapointer(arg2)

双击该错误信息,光标定位于第6行,scanf("%lf",x),错误信息指出“x”的前面少了“&”。

(3)在第6行的“x”前面加上“&”。

(4)单击

(编译)按钮重新编译,新出现的第一条错误信息是:

error02_3.c:

9:

error:

syntaxerrorbefore'}'token

双击该错误信息,光标定位于第9行,错误信息指出在第9行的“}”前缺少分号。

(5)在第8行的“y=1/x”后面加上分号“;”。

(6)单击

(编译)按钮重新编译,编译成功,如图2.3所示。

(7)单击“保存文件”按钮(

),保存文件。

图2.3编译成功后的源程序

(8)执行“调试”菜单|“逐过程”命令,或者单击调试工具条中的

(逐过程)按钮(如图2.4所示),程序调试开始。

图2.4调试工具条

(9)编辑窗口中的箭头指向第3行,表示程序将要执行该行,如图2.5所示。

在图2.5下方的“本地变量”窗口中列出了变量的值。

图2.5程序调试开始,箭头指向第3行

(10)单击

(逐过程)按钮2次,程序执行到第6行(scanf("%lf",&x);),如图2.6所示。

同时在运行窗口中显示“Enterx:

”(如图2.7所示),此时将要执行输入语句。

图2.6程序单步调试,箭头指向第6行

图2.7运行窗口,等待输入

(11)继续单击

(逐过程)按钮一次,在运行窗口中输入“10”(如图2.8所示)。

图2.8在运行窗口中输入10

(12)按回车键后,箭头指向第7行“if(x!

=0){”(如图2.9所示),观察“本地变量”窗口中变量x的值为10。

图2.9程序单步调试,箭头指向第7行,窗口下方显示变量x的值

(13)继续单击

(逐过程)按钮2次,箭头指向第13行“printf("f(%.2f)=%.1f\n",x,y);”,在“本地变量”窗口中可以看到变量y的值为0.10000000000000001(如图2.10所示)。

图2.10程序单步调试,箭头指向第13行,窗口下方显示变量y的值

(14)继续单击

(逐过程)按钮1次,箭头指向第14行“return0;”(如图2.11所示),运行窗口显示运行结果(如图2.12所示),运行结果符合题目要求。

图2.11程序单步调试,箭头指向第14行

图2.12运行窗口显示运行结果

(15)单击

(结束调试)按钮,程序调试结束。

2.编程题

输入华氏温度,输出对应的摄氏温度。计算公式如下,其中:

c表示摄氏温度,f表示华氏温度。

输入输出示例

Entercelsius:

150

fahr=65

3.编程题

输入存款金额money、存期year和年利率rate,根据下列公式计算存款到期时的利息interest(税前),输出时保留2位小数。

interest=money(1+rate)year-money

输入输出示例

Entermoney,yearandrate:

100030.025

interest=76.89

4.编程题

输入x,计算并输出下列分段函数f(x)的值(保留2位小数),请调用sqrt函数求平方根,调用pow函数求幂。

输入输出示例(共运行3次)

第一次运行:

Enterx:

10

f(10.00)=3.16

第二次运行:

Enterx:

-0.5

f(-0.50)=-2.75

第三次运行:

Enterx:

0

f(0.00)=0.00

5.改错题

改正下列程序中的错误,输入实数x,计算并输出下列分段函数f(x)的值,输出时保留1位小数。

(源程序error02_4.cpp)

输入输出示例(共运行2次)

第一次运行:

Enterx:

10

f(10.0)=0.1

第二次运行:

Enterx:

234

f(234.0)=234.0

源程序(有错误的程序)

#include

intmain(void)

{

doublex,

printf("Enterx:

\n");

scanf("=%f",x);

if(x=10){

y=1/x

}

else(x!

=10){

y=x;

}

printf("f(%.2f)=%.lf\n"xy);

return0;

}

6.编程题

输入2个整数num1和num2,计算并输出它们的和、差、积、商与余数。

输入输出示例

Enternum1:

5

Enternum2:

3

5+3=8

5-3=2

5*3=15

5/3=1

5%3=2

7.编程题(选作)

输入2个整数time1和time2,表示火车的出发时间和到达时间,计算并输出旅途时间。有效的时间范围是0000~2359(前两位表示小时,后两位表示分钟),不需要考虑出发时间晚于到达时间的情况。

输入输出示例(括号内为说明文字)

Entertime1:

712(出发时间是7:

12)

Entertime2:

1411(到达时间是14:

11)

Thetrainjourneytimeis6hours59minutes

8.编程题(选作)

输入一个四位数,将其加密后输出。方法是将该数每一位上的数字加9,然后除以10取余,作为该位上的新数字,最后将千位和十位上的数字互换,百位和个位上的数字互换,组成加密后的新四位数。

输入输出示例(括号内为说明文字)

Enteranumber:

1257

Theencryptednumberis4601(每一位上的数字加9除以10取余后得0146,交换后得到4601)

2.3指定次数的循环

【实验目的】

1.熟练掌握for语句的使用。

2.熟练掌握指定次数的循环程序设计方法。

3.掌握运行到光标位置的调试方法。

【实验内容】

1.调试示例

改正下列程序中的错误,计算表达式1+2+3+…+100的值。(源程序error02_5.c)

源程序(有错误的程序)

#include

intmain(void)

{

inti,sum;

for(i=1,i<=100,i++){

sum=sum+i;

}

printf("sum=%d\n",sum);

return0;

}

运行结果(改正后程序的运行结果)

sum=5050

(1)在GUIDE中打开源程序error02_5.c,编译程序,出现的第一条错误信息是:

error02_5.c:

5:

error:

syntaxerrorbefore')'token

双击该错误信息,光标指向“for”这一行,错误信息指出在for语句的括号里面有语法错误,仔细观察后,发现误把分号“;”写成了“,”。

改正后,重新保存后编译成功。

(2)执行“调试”|“逐过程”命令或者按F10快捷键,开始调试程序。

(3)鼠标单击第7行,将光标定位在第7行。

这就是当前的光标位置(如图2.13所示)。

图2.13光标在程序中的位置

(4)执行“调试”|“运行到光标处”命令或者单击工具栏中的“

”按钮,程序运行到光标位置(如图2.14所示)。

如2.14程序运行到光标处

(5)单击“本地变量”选项卡,在本地变量窗口中,第一次循环时i的值为1,正确;而sum的值为4199248,不正确。

仔细分析程序,发现sum没有赋初值。

执行“调试”|“结束调试”命令或者单击工具栏中的“

”按钮结束调试。

改正错误,在for语句前增加一条语句“sum=0;”,重新保存并编译,然后再进行

(2)~(4)步骤的操作,如图2.15所示的“本地变量”窗口中显示sum的值为0,正确。

图2.15程序运行到光标位置,观察变量sum的值

(6)把光标定位在“return”这一行,执行“调试”|“运行到光标处”命令或者单击工具栏中的“

”按钮,程序运行到光标位置(如图2.16所示),变量窗口中显示sum的值是5050,正确。

图2.16程序运行到光标位置,再次观察变量sum的值

(7)执行“调试”|“结束调试”命令或者单击工具栏中的“

”按钮,程序调试结束。

2.编程题1

输入一个正整数m(0≤m≤100),求

输入输出示例

Enterm:

10

sum=5005

思考:

输入2个正整数m和n(m≤n),求

3.编程题2

输入2个正整数m和n(m≤n),求

输出时保留3位小数。

输入输出示例

Enterm:

5

Entern:

15

sum=1.235

思考:

输入2个正整数m和n(m≤n),求

4.编程题3

输入一个正整数n,计算1+13+15+…的前n项之和,输出时保留6位小数。

输入输出示例(运行2次)

第一次运行:

Entern:

5

sum=1.787302

第二次运行:

Entern:

23

sum=2.549541

5.编程题4

输入一个正整数n,计算

的前n项之和,输出时保留3位小数。

输入输出示例(运行2次)

第一次运行:

Entern:

3

sum=0.893

第二次运行:

Entern:

10

sum=0.819

思考:

输入一个正整数n,计算

…的前n项之和。

6.改错题

改正下列程序中的错误,输入2个整数lower和upper,输出一张华氏-摄氏温度转换表,华氏温度的取值范围是[lower,upper],每次增加2oF。计算公式如下,其中:

c表示摄氏温度,f表示华氏温度。(源程序error02_6.c)

输入输出示例(运行2次)

第一次运行:

Enterlower:

32

Enterupper:

35

fahrcelsius

320.0

341.1

第二次运行:

Enterlower:

40

Enterupper:

30

fahrcelsius

源程序(有错误的程序)

/*输出华氏-摄氏温度转换表*/

#include

intmain(void)

{

intfahr,lower,upper;/*fahr表示华氏度*/

doublecelsius;/*celsius表示摄氏度*/

lower=30;/*变量lower给定转换范围的下限*/

upper=40;/*变量upper给定转换范围的上限*/

printf("fahrcelsius\n");/*显示表头*/

/*温度转换*/

for(fahr=lower,fahr<=upper,fahr++)

;

celsius=5/9*(fahr-32.0);

printf("%3.0f%6.1f\n",fahr,celsius);

return0;

}

7.编程题5

输入2个正整数m和n,计算m!

+n!

输入输出示例

Enterm:

3

Entern:

8

3!

+8!

=40326

8.编程题6

输入实数x和正整数n,计算xn,不允许调用pow函数求幂。

输入输出示例

Enterx:

2

Entern:

7

2的7次方是128

【实验结果与分析】

将源程序、运行结果和分析以及实验中遇到的问题和解决问题的方法,写在实验报告上。

2.4使用函数

【实验目的】

1.熟练掌握库函数的调用。

2.了解函数的定义和调用。

【实验内容】

1.编程题1

输入一个正整数n,生成一张3的乘方表,输出30~3n的值,可调用幂函数计算3的乘方。

输入输出示例

Entern:

3

pow(3,0)=1

pow(3,1)=3

pow(3,2)=9

pow(3,3)=27

2.编程题2

输入一个正整数n,生成一张阶乘表,输出1!

~n!

的值。要求定义和调用函数fact(n)计算n!

函数类型为double。

输入输出示例

Entern:

3

1!

=1

2!

=2

3!

=6

3.编程题3

根据下列公式可以计算出从n个不同元素中取出m个元素(m≤n)的组合数。编写程序,输入2个正整数m和n(m≤n),计算并输出组合数。要求定义和调用函数fact(n)计算n!

函数类型为double。

输入输出示例

Enterm:

5

Entern:

12

result=792

4.编程题4

计算y=

+

+…+

的值(保留2位小数),可调用sqrt函数计算平方根。

输入输出示例

sum=20435.99

5.编程题5(选作)

某客户为购房办理商业贷款,选择了按月等额本息还款方式,计算公式如下。在贷款本金(loan)和月利率(rate)一定的情况下,住房贷款的月还款额(money)取决于还款月数(month)。客户打算在5~30年的范围内选择还清贷款的年限,想得到一张“还款年限-月还款额”表以供参考。编写程序,输入贷款本金loan和月利率rate,输出“还款年限-月还款额”表,还款年限的范围是5~30年,输出时分别精确到年和元。

【实验结果与分析】

将源程序、运行结果和分析以及实验中遇到的问题和解决问题的方法,写在实验报告上。

.

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

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

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