第一章习题(答案) 1.答:用高级语言描述问题更接近人们的习惯,且具有通用性。不必了解计算 机的机型、内部结构及其CP的指令系统,只要掌握某种高级语 言本身 所规定的语法和语义,便可直接使用该语言来编程,这样做大幅降低了 编程的程序,必须将高级语言翻译成机器语言后,才能被计算机接受并 运行。 2.答:特点:(1)语言简洁、紧凑、使用灵活方便。C语言共有32个关键字。 (2)运算符丰富 (3)数据类型丰富。 (4)具有结构化的控制语句。 (⑤)可以直接访问物理地址。 (6)生成的目标代码质量高。 (门可铭情性好 中级语言:C把高级语言的最佳成分同汇编语言的控制和灵活性巧妙的 结合到了一起,所以有时也把C语言称做中级语言。 3.答:程序结构清晰;便于多人共同开发一个大型程序:便于模块共享。 4.编程 printf("This is a first c program!"n): pntf“率率幸*幸*率来幸幸幸率率率率率毕*半率华*率率率率率率率率率幸率率率华n门归 } 5.答案:A 6.答案:C 7.答案:B 8.答案:D 9.答案:C 10.答案:定义:算法解决问题方法和步骤。 算法是对特问题求解的一种描述,它是指令的有限序列 算法是为解决一个问题的方法和步骤。 举例:图书管理、人事管理、收费管理 11.答:定义:结构化程序就是用高级语言表示的结构化算法。 1
1 第一章 习题(答案) 1.答:用高级语言描述问题更接近人们的习惯,且具有通用性。不必了解计算 机的机型、内部结构及其 CPU 的指令系统,只要掌握某种高级语言本身 所规定的语法和语义,便可直接使用该语言来编程,这样做大幅降低了 编程的程序,必须将高级语言翻译成机器语言后,才能被计算机接受并 运行。 2.答:特点:⑴语言简洁、紧凑、使用灵活方便。C 语言共有 32 个关键字。 ⑵运算符丰富。 ⑶数据类型丰富。 ⑷具有结构化的控制语句。 ⑸可以直接访问物理地址。 ⑹生成的目标代码质量高。 ⑺可移值性好。 中级语言:C 把高级语言的最佳成分同汇编语言的控制和灵活性巧妙的 结合到了一起,所以有时也把 C 语言称做中级语言。 3.答:程序结构清晰;便于多人共同开发一个大型程序;便于模块共享。 4.编程 main( ) { printf(“**************************************”\n”); printf(“This is a first c program!”\n); printf(“**************************************”\n”); } 5.答案:A 6.答案:C 7.答案:B 8.答案:D 9.答案:C 10.答案:定义:算法解决问题方法和步骤。 算法是对待问题求解的一种描述,它是指令的有限序列。 算法是为解决一个问题的方法和步骤。 举例:图书管理、人事管理、收费管理 11.答:定义:结构化程序就是用高级语言表示的结构化算法
内容:①自顶向下②逐步细化③模块化设计④结构化编码 12.答:(1) (2) (开始 开始) 定义三个整型 定义一个整 变X,Y,Z 型变量X 输入两个数 给) 一个整 2-X X-Y X/2 V=7 输出偶数 /输出X,y (结束 8)求1+2+3++100。 开始 定文SUM, I=1 SUM=0 M与N互换 1≤100 am-sum+ 输出 1+2+3++100 输出最大公
2 内容:①自顶向下 ②逐步细化 ③模块化设计 ④结构化编码 12.答:⑴ ⑵ ⑶ 求 1+2+3+.+100。 ⑷开始 输入n n被3 整除 n被5整除 打印:n 能被3 、 5 整除 打印:n 不能被 3、5 整除 结束 N Y 开始 输入两个数 定义三个整型 变量 X,Y,Z Z=X X=Y Y=Z 输出 X,Y 结束 开始 定义 SUM,I I=1 SUM=0 I≤100 Sum=sum+i I=i+1 输出 1+2+3+.+100 开始 输入 M,N M > N M 与 N 互换 M % N≥R R = 0 M ≥ N R ≥ N 输出最大公 约数 开始 定义一个整 型变量 X 输入一个整 数 X/2 输出偶数 输出奇数 结束 Y N Y N
(⑤)求方程式ax2+bx+c=0的根。分别考虑:①有两个不等的实根:② 有两个相等的实根。 开始 足义a,b,d 输入abe D>0 Y X1=-(b+sqrt(d))/(2*a) D=0 X2=-(b-sqrt(d))/(2*a) X1=-h/2*a =-b/(2*a) 输出x1,x2 (6)将100~200之间的素数打印出来。 开始 二
3 ⑸求方程式 ax 2 +bx+c=0 的根。分别考虑:①有两个不等的实根;② 有两个相等的实根。 Y n Y n ⑹将 100~200 之间的素数打印出来。 ⑺ Y n 开始 输入 a,b,c 定义 a,b,c,d, x1,x2 D=b*b-4*a*c D > 0 X1=-(b+sqrt(d))/(2*a) X2=-(b-sqrt(d))/(2*a) D=0 X1=-b/(2*a) X2=-b/(2*a) 输出 x1,x2 开始 定义 n,r,i N=100 R=n/i R=0 I=i+1 N=n+1
Y=x-1 输出y 13.答:ain0 int a.b.c: scanf(“%d,%d”,&a,&b):/*键盘输入两个数*/ C=a /朱计算两个数的乘积* printf(“c=%d”,c: /输出乘积* 14.答:①算法:S1:1999→Y
4 y n ⑺ Y n Y n y 13.答:main() { int a,b,c; scanf(“%d,%d”,&a,&b);/*键盘输入两个数*/ c=a*b; /*计算两个数的乘积*/ printf(“c=%d”,c); /*输出乘积*/ } 14.答:① 算法:S1:1999 Y I-5&& 0>x Y=x X=0 Y=x-1 0<x&&x<10 Y=x+1 输出 y
S2:若y不能被4整除,则输出整除,则输出“不是闰年”。然后转到S6。 S3,若v能被4整除,不能被10整除,则输出v“是闰年“。然后转到S6 S4:若y能被100整除,又能被400整除,输出整除,输出y“是闰年“, 否则输出“不是国年”。然后转到S6 S5:输出y“不是闰年 S6:y+1◆y S7:当y≤2000时,转S2继续执行,如y>2000,算法停止。 流程图: 2000→ y4的余数为0 是 、y/100的余数不为0 是 y/400的余数 输出y 输出y 是 为0 否 非闻年 “是闰年” 输出y“ 是闰年“ 输出 “非间年“ Y+1→y 直到y>2000 ②算法::①分析问题这是一个一元二次方程(代数问题,须中学代数知识) ②确定处理方案用求根公式 ③确定解题步骤 确定a、b、c的值 求出b2-4ac的值 如果b2-4ac>0(双实根) X1=. X2=. 如果b2-4ac=0(单实根) X1=X2=
5 S2:若 y 不能被 4 整除,则输出整除,则输出“不是闰年”。然后转到 S6。 S3:若 y 能被 4 整除,不能被 10 整除,则输出 y“是闰年“。然后转到 S6 S4: 若 y 能被 100 整除,又能被 400 整除,输出整除,输出 y“是闰年“, 否则输出“不是闰年”。然后转到 S6 S5:输出 y“不是闰年” S6:y+1 y S7:当 y≤2000 时,转 S2 继续执行,如 y>2000,算法停止。 流程图: ②算法: :①分析问题 这是一个一元二次方程(代数问题,须中学代数知识) ②确定处理方案 用求根公式 ③确定解题步骤 确定 a 、 b 、 c 的值 求出 b 2 -4ac 的值 如果 b 2 -4ac >0 (双实根) X1= . X2=. 如果 b 2 -4ac =0 (单实根) X1=X2= . 2000 y 是 是 y/4 的余数为 0 y/100 的余数不为 0 否 是 否 否 输出 y “非闰年” 输出 y “是闰年” y/400 的余数 为 0 输出 y“ 是闰年“ 输出 y “非闰年“ Y+1 y 直到 y>2000
如果b2-4acmax 否 读入一个数给x 输出max 6
6 如果 b 2 -4ac 10 x>max 是 否 max=x 读入一个数给 x 输出 max