1 / 13
文档名称:

从问题到程序--习题答案.docx

格式:docx   大小:61KB   页数:13页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

从问题到程序--习题答案.docx

上传人:小健 2021/7/9 文件大小:61 KB

下载得到文件列表

从问题到程序--习题答案.docx

文档介绍

文档介绍:从问题到程序一高级语言程序设计
第一早
练****br/>指出下面的哪些字符序列不是合法的标识符:
_abc x+- 3x1 Xf^l_4 Eoof
x_x_2 I am
答:不合法的标示符有:
a$#24 非法符号#
x+- 非法符号#
3x1 不是以英文字母开头
lam 非法符号“空格”
bg--l非法符号-
手工计算下列表达式的值:
125 + 0125 2) 0XAF - 0XFA
3) 24 * 3 /5 + 64) 36 + - (5 -23) /4
5) 35 * 012 + 27/4/7 *(12 -4)
答:1)210 2)-75 3) 20 4) 40 5) 350
在下面表达式的计算过程中,在什么地方将发生类型转换,各个转换是从什么类型转换 到什么类型,表达式计算的结果是什么?
3 *(2L + )-012 + 44
3* (int)sqrt(34) - sin(6) * 5 + 0x2AF
cos( + 4) - 6 *27L + 1526 -
答:1) 2) 在此题中十六进制数会在计算中(编译时)自动转成十进制数
3)
写程序计算第3题中各个表达式的值。
答:
#include<stdio. h>
#include<math. h>
int main() {
printf("%f\n”, 3 * (2L + 4. 5f) - 012 + 44);
printf("%f\n”, 3 * (int)sqrt(34) - sin(6) * 5 + 0x2AF); printf("%f\n”, cos(2. 5f + 4)-6 *27L + 1526 - 2. 4): system("pause");
return 0;
}
写程序计算下面各个表达式的值:
1 ) 2 34
1 257
+ 2) 1065
24*13
3) 23 582
7 96 3 67
./.4)兀 2+1 7) In ln( 10 1)2兀 +
5) logs2 n -1 6) e 冗 +i 7) arctan(log ()) 3 e + 兀
8)
13-(- )2 9 ) 1 2
345+ + /10) ln(2 兀 13+ e)
,,分别计算出直径100毫米和
150毫米的铁球与金球的重量。
答:
#include<>
double fl(double r) {
double v, w;
v=4. 0/3. 0*r*r*r*3. 1415926;
w=7. 86*v;
return w;
}
double f2(double r)(
double v, w;
v=4. 0/3. 0*r*r*r*3. 1415926;
w=19. 3*v;
return w;
)
int mainO {
printfC铁球的重量为:%f,金球的重量为:%f\nz/, fl (), f2 (. 0));
printfC铁球的重量为:%f,金球的重量为:%f\n”, fl(0. 15/2), f2(0. 15/2. 0));
system("pause");
return 0;
}
写程序计算5x2 + 2x+ 6的两个根,考虑用合适的方式输出。(提示:对这个具体问题,可以先人工计算
出判别式b2~ 4ac的值,以此作为已知信息,就可以写出程序
了。)
答:
#include <stdio. h>
#include <math. h>
void f(double a, double b, double c) {
double temp=b*b-4*a*c;
if(temp>0)
printf("方程的根为:%f, %f”, (-b+sqrt (temp)) /2/a, (-b-sqrt (temp)) /2/a): else if(temp==O)
printff方程有两个相同的根为:%f”,-b/2/a);
else
printff方程无解!");
}
int mainO (
f(5, 2, 6) ; //可以测试不同的数据
system("pause");
return 0;
}
在计算机上试验本章正文中的一些程序。对它们做一些修改,观察程序加工和运行的情 况,并对程序的行为做出解释。
在一个能正确工作工作的输出整数结果的程序里,将printf的相应转换描述改为%f 或者%ld,看看会出