从问题到程序习题答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

从问题到程序—高级语言程序设计

第二章

练习

1. 指出下面的哪些字符序列不是合法的标识符:

_abc x+- 3x1 Xf_1__4 Eoof___

x__x__2 ____ I am

答:不合法的标示符有:

a$#24非法符号#

x+- 非法符号#

3x1 不是以英文字母开头

I am非法符号“空格”

bg--1非法符号-

2. 手工计算下列表达式的值:

1)125 + 0125 2)0XAF - 0XFA

3)24 * 3 / 5 + 6 4)36 + - (5 - 23)/ 4

5)35 * 012 + 27 / 4 / 7 * (12 - 4)

答:1)210 2)-75 3)20 4)40 5)350

3. 在下面表达式的计算过程中,在什么地方将发生类型转换,各个转换是从什么类型转换到什么类型,表达式计算的结果是什么?

1)3 * (2L + 4.5f) - 012 + 44

2)3 * (int)sqrt(34) - sin(6) * 5 + 0x2AF

3)cos(2.5f + 4) - 6 *27L + 1526 - 2.4L

答:1)2)在此题中十六进制数会在计算中(编译时)自动转成十进制数3)

4. 写程序计算第3 题中各个表达式的值。

答:

#include<>

#include<>

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 - ;

system("pause");

return 0;

}

5. 写程序计算下面各个表达式的值:

1) 2 34

1 257

.

+ 2)1065

24*13

3)23 582

7 96 3 67

.

. / . 4)π2 +1 7)ln ln(10 1) 2π+

5)log5 2π−1 6)e π+1 7)arctan(log ( )) 3 e + π

8)

13−−9)1 2

3 4 5 + + / 10)ln(2π13+ e )

6. 已知铁的比重是,金的比重是。写几个简单程序,分别计算出直径100 毫米和

150 毫米的铁球与金球的重量。

答:

#include<>

double f1(double r){

double v,w;

v=*r*r*r*;

w=*v;

return w;

}

double f2(double r){

double v,w;

v=*r*r*r*;

w=*v;

return w;

}

int main(){

printf("铁球的重量为: %f,金球的重量为: %f\n",f12),f2);

printf("铁球的重量为: %f,金球的重量为: %f\n",f12),f2);

system("pause");

return 0;

}

7. 写程序计算5x2+ 2x + 6 的两个根,考虑用合适的方式输出。(提示:对这个具体问题,可以先人工计算出判别式b2 −4ac 的值,以此作为已知信息,就可以写出程序

了。)

答:

#include <>

#include <>

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==0)

printf("方程有两个相同的根为:%f",-b/2/a);

else

printf("方程无解!");

}

int main(){

f(5,2,6); 在计算机上试验本章正文中的一些程序。对它们做一些修改,观察程序加工和运行的情况,并对程序的行为做出解释。

9. 在一个能正确工作工作的输出整数结果的程序里,将printf 的相应转换描述改为%f

或者%ld,看看会出现什么问题。在一个能正确工作工作的输出双精度结果的程序里,

1、将printf 的相应转换描述改为%d 或者%ld,看看会出现什么问题。

第三章

练习

1. 下面的字符序列中哪些不是合法的变量名:

-abc __aa for

IBM/PC tihs

While r24_s25 __a__b a"bc _345

答:

-abc for to be IBM/PC ms-c #micro m%ust While a"bc

2. 假设整型变量a 的值是1,b 的值是2,c 的值是3,在这种情况下分别执行下

面各个语句,写出执行对应语句后整型变量u 的值。

1)u = a ? b : c;

2)u = (a = 2) ? b + a : c + a;

答:

1)u=2 2)u=4

3. 假设整型变量a 的值是1,b 的值是2,c 的值是0,写出下面各个表达式的值。

1)a && !((b || c) && !a)

2)!(a && b) || c ? a || b : a && b && c

3)!(a + b < c) && b <= c * a – b

答:

1)1 2)0 3)0

4. 下面程序在执行时,哪些地方将发生类型转换?程序打印的值是什么?

int f (int n, float m) {

return (m + n) / 4;

相关文档
最新文档