上机实验三 答案

发布 2022-09-05 11:19:28 阅读 4583

班级学号姓名。

一共5个题目,其中一个选做题。

重要提示:上传文件时,邮件主题和word文档文件名格式:姓名+学号+班级+实验几。

一.目的要求。

1. 掌握c语言中输入、输出函数的基本使用方法。

2. 掌握如何定义整型、单精度、双精度变量,如何输入或输出这些变量的值。

3. 掌握c算术运算符的基本概念、基本属性、运算规则。

4. 掌握关系运算的求值规则。

5. 记录运行结果,回答问题,完成上机实验报告。

二.实验内容。

实验题1】输入下列源程序,进行修改、编译、连接和运行。

提示: exp(x)为一数学函数,用来求解ex,即e的x次方。

问题与思考:

1)假如删除/*line 2 */**行,程序是否仍正确?原因是?

2)/*line 6*/的**行有错误,正确**为:__scanf(“%f”,&x

3)改正以上错误并运行程序,输入0.05并回车,显示结果是_f(0.050000) =1.

05再次运行该程序,输入2.5并回车,显示结果是___f(2.500000) =5.

254)把最后一行**行改为: printf(" f(%.2f) =2f ", x, y); 运行程序,并输入2.

546,显示结果是__f(2.55)_=5.482f 的作用是___控制小数位占两位。

若/* line 9*/**行改为: printf(" f(%6.1f) =6.

1f ", x, y); 运行程序,并输入2.546,显示结果是__f( 2.5)= 5.

56.1f 的作用是_数据一共占6列,小数位占一位。

若/* line 9*/**行改为: printf(" f(%-6.1f) =6.

1f ", x, y); 运行程序,并输入2.546,显示结果是_ f(2.5 )=5.

56.1f 的作用是___数据一共占6列,小数位一位,并且左对齐___

若/* line 9*/**行改为: printf(" f(%6.2f) =6.

2f ", x, y); 运行程序,并输入2.546,显示结果是__ f( 2.55)= 5.

486.2f 的作用是___数据一共占6列,小数位占两位。

(5) 如将/* line 7*/**行中的“if(x<=1)”改为“if (x>1)”,为保证程序正确性,该if 语句应如何修改?

if(x > 1)

y = x*x - 1;

elsey = exp(x);

实验题2】请将下列源程序填写完整。

#include <>

void main()

int a,b;

float x,y;

double r,s;

scanf("%d,%d", a , bline 6: 输入a,b的值 */

scanf("%f,%f", x , yline 7: 输入x,y的值 */

scanf("%lf,%lf", r , sline 8: 输入r,s的值 */

printf("a=%d, b=%d",a,bline 9 */

printf("x=%f, y=%f",x,yline 10 */

printf("r=%f, s=%f",r,sline 11 */

编译、连接并运行程序,分三行输入以下内容: (提示:double输入时对应%lf)

则输出结果显示为:

如将标有/* line 9 */line 10 */line 11 */的三个语句分别改写为:

printf("a=%5d, b=%5d", a,b);

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

printf("r=%9f, s=%9f", r,s);

重新编译、连接并运行,输入内容同上,则输出结果显示为:

在程序最后加入语句。

printf("r=% s=%"r,s); line 12 */

对应该语句的输出结果是。

比较printf("r=% s=%"r,s);与语句printf("r=%9f, s=%9f", r,s);,它们有什么不同?

printf("r=% s=%"r,s); 表示数据一共占9列,小数位占0列。

printf("r=%9f, s=%9f", r,s); 表示数据一共占9列,小数位不做控制,默认为6列。

思考题——位于%与字母d或f之间加入的数字起什么作用?其中,5d中的5: 数据占5列宽度。

.2f中的2:小数位占两位。

9f中的9: 数据一共占9列。

实验题3】设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf函数输入数据,printf函数输出计算结果,输出时要求有文字说明,取小数点后2位小数。

请编程序并粘贴源**于下面空白处。

提示:1) 输出时要求有文字说明的意思是:

假设圆周长为c,则圆周长输出**为:printf(“圆的周长为:%.2f”,c);

2) 公式记不住,可以找度娘…

源**粘贴处。

#define pi 3.14

#include<>

void main()

double r = 1.5,h=3.0;

double circle,square,sphere_surface_area,sphere_volume,cylinder_volume;

circle = 2*pi*r;

square = pi*r*r;

sphere_surface_area = 4*pi*r*r;

sphere_volume = 4.0/3*pi*r*r*r;

cylinder_volume = pi*r*r*h;

printf("圆的周长为: %2f",circle);

printf("圆的面积为: %2f",square);

printf("球的表面积为: %2f",sphere_surface_area);

printf("球的体积为: %2f",sphere_volume);

printf("圆柱体积为: %2f",cylinder_volume);

实验题4】 编程序并粘贴源**于下面空白处,用getchar函数读入两个字符给c1和c2,然后分别用putchar函数和printf函数输出这两个字符。思考以下问题:

1) 变量c1和c2应定义为字符型还是整型?或二者皆可?

两者皆可。2) 要求输出c1和c2值得ascii码,应如何处理?用putchar函数还是printf函数?

用printf函数的%d格式输出。

3) 整型变量与字符变量是否在任何情况下都可以互相替代?如 char c1,c2;与int c1,c2;是否无条件的等价?

不是在任何情况下都可以互相取代。

vc++6.0下ascii码0~127在字符范围内等价,超出范围不等价。

源**粘贴处。

#include<>

void main()

int c1,c2;

c1 = getchar();

c2 = getchar();

putchar(c1);

putchar(c2);

printf("");

printf("%c",c1);

printf("%c",c2);

选做题。实验题5】

1)给出一个大于或等于3的正整数,判断它是不是一个素数。

2)在(1)的基础上,统计出3到100000之间的素数占总数的比例。请编程序并粘贴源**于下面空白处。

提示:1) 参见课本21页的例2.5。

2)循环写法:

dowhile(条件 );

do… while的详细用法可以参见课本117页。

3)求余数的符号为%

4)该程序可能需要用到break语句直接跳出循环。break的作用是跳到循环体之外,接着执行循环体下面的语句。break语句写法:

break;

关于break语句的详细用法可以参见课本126页。

源**粘贴处。

#include<>

void main()

int i,m;

scanf("%d",&m);

m =3;i = 2;

dowhile(i < m);

if(i==m)

printf("m is a prime");如果是素数,执行完循环后,i的值为m

elseprintf("m is not a prime");如果不是素数,循环会提前跳出,i }

#include<>

void main()

int i,m;

double num = 0;

m = 3;

dowhile(i < m);

if(i==m)//如果是素数,则加1

num= num +1;

m = m + 1;//继续判断下一个数。

}while(m < 100001);

printf("%f",num/(100000-3+1));

细心的同学可能会发现,随着总数的增大,素数所占总数的比例会越来越小~~

上机实验作业答案

答案 一。1 site 把搜索范围限定在特定站点中。有时候,您如果知道某个站点中有自己需要找的东西,就可以把搜索范围限定在这个站点中,提高查询效率。msn 注意,site 后面跟的站点域名,不要带 http 另外,site 和站点名之间,不要带空格。双引号 使用双引号 进行词组检索,利用双引号查询完...

上机实验1答案

实验目的 1.熟悉vc 6.0调试环境,掌握运行一个c程序的基本步骤。2.掌握基本输入 输出函数的使用。3.能够编写简单的顺序结构程序,实现简单的数据处理。4.掌握c程序的查错方法。实验内容 一 调试示例。改正下列程序中的错误,求华氏温度1000f对应的摄氏温度。计算公式如下,其中 c表示摄氏温度,...

C上机实验答案

实验二。1 编写一个控制台应用程序exp02 01,根据用户输入的两个整数,分别输出这两个整数的和 差 积和商。提示 用把用户从键盘上的输入转换成整数 using system using using namespace exp02 01 class program a int b a b a b ...