第6章___程序设计基础
![第6章___程序设计基础](https://img.360docs.net/img8f/04ahww290gw6rk9lrlev-f1.webp)
![第6章___程序设计基础](https://img.360docs.net/img8f/04ahww290gw6rk9lrlev-02.webp)
二、填空题
1. S = S + X * X
X = X + 1
2. 1 + 2 + ……+ 9 + 10
3.25
4. "" , 1 , right(X,(LEN(X)-2))
5. X(I, J) = W
I = J
I + J = 5
6.24
SUBSTR(XY, 5, 4)
7.TRPN
8. FEDCBA
9.X%3==0
10.21
11.13 21
注意:12至16如果不把题中的ThisForm.Text1.Value=.T.改为ThisForm.Text1.Value=T,则答案均为T,一下为修改后的答案。
12.20
13.3
14.9
15.10
16.123
17.REPLACE 等级WITH “优秀”
18."通过"
19.编号%8==1
20.1534
21.97+i
22. a%i==0 AND b%i==0
23.a*b STEP 1
24.i/100i%10
25.
==========================
二.选择题
1.有如下程序:
A = 10
IF A = 10
S = 0
ENDIF
S = 1
? S
上面程序的执行结果是(B)。
A.0
B.1
C.程序出错
D.结果无法确定
2.有如下程序:
SET TALK OFF
STORE 2 TO S, K
DO WHILE S < 14
S = S + K
K = K + 2
ENDDO
? S, K
SET TALK ON
RETURN
程序运行后的输出结果是(C)。
A.22 10
B.22 8
C.14 8
D.14 10
3.有如下程序:
SET TALK OFF
DIME A(6)
K = 2
DO WHILE K <= 6
A(K) = 20 – 2 * K
K = K + 1
ENDDO
K = 5
DO WHILE K >= 2
A(K) = A(K) / (A(4) – 10)
K = K – 1
ENDDO
? A(1), A(6)
?A(2)
SET TALK ON
RETURN
程序运行第一个?的输出结果是(D)。
A.10 4
B.10 8
C. .T.
D. .F. 8
4.阅读下面这段程序:
SET TALK OFF
S = 0
I = 1
DO WHILE I <= 10
S = S + I
I = I + 1
ENDDO
? I, S
SET TALK ON
其运行结果是(A)。
A.11 55
B.11 45
C.10 55
D.10 45
5.有如下程序:
SET TALK OFF
M = 0
N = 100
DO WHILE N > M
M = M + N
N = N – 10
ENDDO
? M, N
RETURN
程序运行的结果是(D)。
A.0 10
B.10 90
C.90 100
D.100 90
6.阅读下列程序:
SET TALK OFF
CLEAR
STORE 1 TO X
STORE 20 TO Y
DO WHILE X <= Y
IF INT(X/2) <> X / 2
X = 1 + X ^ 2
Y = Y + 1
LOOP
ELSE
X = X + 1
ENDIF
ENDDO
? X
? Y
SET TALK ON
RETURN
运行结束X 和Y的值分别是(B)。
A. X= 10 Y = 22
B.X = 122.00 Y = 23
C.X = 3 Y = 22
D.X = 2 Y = 21
7.运行以下程序:
SET TALK OFF
INPUT “N=”TO N
T = 1
K = 1
S = 0
DO WHILE K <= 2 * N + 1
T = T * K
S = S + T
K = K + 2
ENDDO
?S
RETURN
当输入N=3时,输出S的值为(A)。
A.124
B.19
C.9
D.33
8.运行以下程序:
SET TALK OFF
N = 1
T = 1
S = 0
DO WHILE N <= 9
T = T * N
S = S + 2 * T
N = N + 3
ENDDO
? S
RETURN
最后输出结果为(D)。
A.38
B.10
C.625
D.66
9.阅读一下程序
SET TALK OFF
S = 0
K = 1
DO WHILE K <= 9
K = K + 1
DO CASE
CASE MOD(K, 3) = 1
LOOP
CASE MOD(K, 3) = 2
S = S + 2 * K
CASE MOD(K, 4) = 2
S = S + 3 * K
OTHER
S = S + K
ENDCASE
ENDDO
? S
RETURN
最后输出结果为(C)。
A. 35
B.45
C.60
D. 82
10.有如下程序:
SET TALK OFF
M = 0
N = 100
DO WHILE N > M
M = M + N
N = N – 10
ENDDO
? M
RETURN
运行此程序显示M的值是(C)。
A.0
B.10
C.100
D.99
11.阅读下列程序,其运行结果是(B)。
SET TALK OFF
X = 153
A = STR(X, 3)
I = 1
T = 0
DO WHILE I <= 3
T = T + V AL(SUBS(A, I,1)) ** 3
I = I + 1
ENDDO
? IIF(X = T, …YES?, …NO?)
SET TALK ON
RETURN
A. .T.
B.YES
C.NO
D.出错
12.阅读下列程序,其运行结果是(C)。
SET TALK OFF
DIME A(2, 2)
A(1, 1) = 1
A(1, 2) = 2
A(2, 1) = 3
A(2, 2) = 4
I = 1
J = 1
DO WHILE J <= 2
T = A(I, J)
A(I, J) = A(J, I)
A(J, I) = T
J = J + 1
ENDDO
I = I + 1
? A(1, 2), A(2, 1)
SET TALK ON
RETURN
A.1 2
B.2 3
C.3 2
D.4 2
13.阅读下列程序,其运行结果是(D)。
SET TALK OFF
S = 0
I = -5
DO WHILE I <= 5
IF ABS(I) <= 3
I = ABS(I)
ENDIF
J = 1
DO WHILE J <= ABS(I)
S = S + 1
J = J + 1
ENDDO
I = I + 1
ENDDO
? S
SET TALK ON
RETURN
A.5
B.4
C.9
D.21
14.运行下列程序后S的值是(C)。
SET TALK OFF
S = 0
P = 10
DO WHILE P <= 15
P = P + 1
S = S + P * 2
ENDDO
? S
A.172
B.130
C.162
D.150
15.运行下列程序段:
SET TALK OFF
STORE 0 TO X, Y
DO WHILE .T.
X = X + 1
Y = Y + X
IF X >= 5
EXIT
ENDIF
ENDDO
? X + Y
RETURN
输出的结果为(B)。
A.5
B.20
C.9
D.14 16.B 17.A
18.D 19.D 20.D 21.B 22.A 23.D 24.C 25.C
三、编程(16题以后是表单的题)
1.铁路托运行李,从甲地到乙地,按规定,每张客票托运行李不超过50千克,按每千克0.35元计算运费,如果超过50千克,超过的部分按每千克0.65计算运费。请编写一个程序计算托运费。假设行李的重量为W 千克,运费为F 元。那么计算的公式为:
?
?
?>-+<==)50(65.0*)50(35.0*50)50(*35.0W W W W
F
2.假设在运输货物时,每吨货物每公里运费P 与运输的距离S 有关,路途越远,每吨货物运价越低,其公式如下:
?????
????><≤<≤<≤<=)250(1)250200(2)200150(4)150100(6)100(8
S S S S S P
如果所付的总运费超过250元的,再给予九五折的优惠。从键盘输入货物的
吨数和运输公里数,求应付的运费。
SET TALK OFF CLEAR
INPUT"请输入重量:" TO W IF W <= 50 F = 0.35 * W ELSE F = 50 * 0.35 + (W - 50) * 0.65 ENDIF
?"运费F 为:" + STR(F,10,2) SET TALK ON RETURN
SET TALK OFF
CLEAR
INPUT "请输入货物的重量:" TO W
INPUT "请输入货物的运输距离:" TO S
IF W < 0 .OR. S < 0
EXIT
ENDIF
DO CASE
CASE S < 100
P = 8
CASE S >= 100 .AND. S < 150
P = 6
CASE S >= 150 .AND. S < 200
P = 4
CASE S >= 200 .AND. S < 250
P = 2
OTHERWISE
P = 1
ENDCASE
COST = P * W * S
IF COST > 250
COST = COST * 0.95
ENDIF
?"总运费F为:" + STR(COST, 10, 2)
SET TALK ON
RETURN
3.设计一个程序计算被3、4、5、6、7除都余2的最小4位数
SET TALK OFF
CLEAR
NUM= 1000
DO WHILE MOD(NUM,420) <> 2
NUM = NUM +1
ENDDO
?"NUM = " , NUM
SET TALK ON
RETURN
4.有一堆核桃,每次往外边拿两个,最后还剩下一个单的,如果每次往外边拿3个、4个、5个、6个,都是剩下一个单的,问这堆核桃最少有多少个?
提示:要解决这一问题,首先估计一下初值,题目中说拿6个,还能剩1个,所以最低限度应该有7个,然后看看这个值是否同样适合前几种情况,如果都符合,此数正是寻找的数,如果不符合,则令此数加1,再重新进行判定,直到正确为止。
SET TALK OFF
CLEAR
N = 7
DO WHILE .T.
IF MOD(N, 2) <> 1
N = N + 1
LOOP
ENDIF
IF MOD(N, 3) <> 1
N = N + 1
LOOP
ENDIF
IF MOD(N, 4) <> 1
N = N + 1
LOOP
ENDIF
IF MOD(N, 5) <> 1
N = N + 1
LOOP
ENDIF
IF MOD(N, 6) <> 1
N = N + 1
LOOP
ENDIF
EXIT
ENDDO
?"这堆核桃最少有" + STR(N, 4) + "个。"
SET TALK ON
RETURN
在若干数中,找出其中的最大值和最小值。
SET TALK OFF
CLEAR
INPUT "请输入数据的个数:" TO N
MAX_NUM = -9999999999
MIN_NUM = 9999999999
FOR I = 1 TO N
INPUT "请输入第" + STR(I) + "个数:" TO NUM
IF NUM > MAX_NUM
MAX_NUM = NUM
ENDIF
IF NUM < MIN_NUM
MIN_NUM = NUM
ENDIF
ENDFOR
?"最大值为:", MAX_NUM
?"最小值为:", MIN_NUM
SET TALK ON
RETURN
5.设计程序求S = 1! + 3!+5!+…+19!。
SET TALK OFF
CLEAR
S = 0
I =1
TEMP = 1
DO WHILE I<=19
S = S + TEMP
TEMP = TEMP *(I+1)*(I+2)
I = I+2
ENDFOR
?"S = " , S
SET TALK ON
RETURN
6.设计程序求S = 1! -1/3!+5!-…+1/19!。
SET TALK OFF
CLEAR
S = 0
I = 1
TEMP = 1
DO WHILE I <= 19
S = S + TEMP
TEMP = (-1)* TEMP/(I+1)/(I+2)
I =I+2
ENDDO
?"S = " , S
SET TALK ON
RETURN
7.提示:每次对折厚度为之前2倍:
SET TALK OFF
CLEAR
S = 0.5
K = 0
DO WHILE S < 8844000
S = S*2
K = K+1
END DO
?"K = " , K
SET TALK ON
RETURN
8.分个、十、百3种情况讨论:
SET TALK OFF
CLEAR
FOR S = 1 TO 1000
TEMP = S*S
IF S<10 AND MOD(TEMP ,10) == S
?"S = " , S
ENDIF
IF S >= 10 AND S<100 AND
MOD(TEMP,100) ==S
?"S = " , S
ENDIF
IF S>100 AND MOD(TEMP,1000) ==S
?"S = " , S
ENDIF
ENDFOR
SET TALK ON
RETURN
9.搬砖问题:36块砖,36个人搬,男搬4,女搬3,2个小孩抬一块,要求一次全搬完,问男、女、小孩各需搬若干?
* 设男孩为I个,女孩为J个,小孩为K个
SET TALK OFF
CLEAR
FOR I = 1 TO 9
FOR J = 1 TO 12
FOR K = 2 TO 72 STEP 2
IF (I + J + K = 36) .AND. (I * 4 + J * 3 + K * 0.5 = 36)
?"男孩为" + STR(I, 2) + "个;"
?"女孩为" + STR(J, 2) + "个:"
?"小孩为" + STR(K, 2) + "个."
RETURN
ENDIF
ENDFOR
ENDFOR
ENDFOR
SET TALK ON
RETURN
10. 1000000 = 106=26*56,显然要让2个数中不含0,则这2个数不能同时被2跟5整除,所以这两个数为26和56
11.
SET TALK OFF
CLEAR
GDP=1
K = 0
DO WHILE GDP < 2
GDP = GDP*(1+0..8)
K = K+1
END DO
?"K = " , K
SET TALK ON
RETURN
12.提示:如果A2+B2=C2,则A2=C2-B2即A2 = (C+B)-(C-B)
SET TALK OFF
CLEAR
K = 0
FOR N=100 TO 200
FLAG = 0
FOR I =1 TO N-1
TMP = (N+I)*(N-I)
T2 = SQRT(TMP)
IF FLAG ==0 AND FLOOR(T2)
== T2
FLAG =1
&& ?I,"^2+",FLOOR(T2),"^2 =
",N,"^2"
EXIT
ENDIF
ENDFOR
IF FLAG > 0
K = K+1
ENDIF
ENDFOR
? K
SET TALK ON
RETURN
13.每次反弹之后路程加高度的2倍
SET TALK OFF
CLEAR
H= 100
S =100
N = 1
DO WHILE S <=590
H = H*3/4
S = S + 2*H
N = N+1
END DO
?"N = " , N
SET TALK ON
RETURN
14
SET TALK OFF
CLEAR
K = 0
FOR X = -150 TO 150
FOR Y = -200 TO200
IF 8*X - 5*Y == 3
K = K+1
ENDIF
ENDFOR
ENDFOR
?"K = " , K
SET TALK ON
RETURN
15.提示:方法一、用一个标志数组标示对应的人是否已出局(F表示出局)
方法二、逆向思考,将最后出局的人标识为1,则反向倒推每一轮往圈里加一人,则最后一次添加的人即是顺推的起点,此人的标
号也就跟顺推中最后出局一人的编号之和为N(这里是50)。
方法1:
SET TALK OFF
CLEAR
DIMENSION FLAG(50)
N = 50
M = 5
K = 1
FOR I =1 TO N
FLAG(I) = .T.
ENDFOR
FOR I= 1 TO N-1
K = K+M
IF K > N
K = K-N
ENDIF
DO WHILE NOT FLAG(K)
K = K+1
IF K>N
K = K-N
ENDIF
ENDDO
FLAG(K)= .F.
ENDFOR
FOR K=1 TO 50
IF FLAG(K)
?K
EXIT
ENDIF
ENDFOR
SET TALK ON
RETURN
方法2:
SET TALK OFF
CLEAR
N = 1
M = 5
K = 1
DO WHILE N < 50
N = N+1
K = K +1+ M
K = MOD(K,N)
IF K == 0
K = N
ENDIF
ENDDO
?N- K
SET TALK ON
RETURN
======================================================
计算机科学导论第4章 程序设计基础(答案)
第4章程序设计基础 习题 一、选择题 1. A 2.D 3.C 4. A 5. B 6.D 7.A 8.B 9.C 10. B 11. D 12. A 13.B 14.D 15.C 二、简答题 1.结构化程序设计的思想是什么? 答:结构化程序设计的基本思想就是采用自顶向下、逐步求精的设计方法和单入口单出口的控制结构。 2.结构化程序设计的原则是什么? 答:结构化程序设计的原则是: (1) 使用顺序、选择、循环3种基本控制结构表示程序逻辑。 (2)程序语句组织成容易识别的语句模块,每个模块都是单入口、单出口。 (3)严格控制GOTO语句的使用。 3.结构化程序设计语言采用自顶向下的方法进行程序设计的特点是什么? 答:利用结构化程序设计语言采用自顶向下的方法进行程序设计的特点是: (1) 问题分解成子问题的结构必须与3种基本程序结构之一相对应。 (2) 问题的划分决定了程序的结构。一方面,子问题的划分决定了这一层次的程序是3种基本结构中的哪一种结构;另一方面,一个问题该如何划分成子问题是灵活的,并不是只有一种分解方法。分解的好坏就决定了设计的质量,也决定了程序的不同结构。 (3) 问题的边界应该清晰明确。只有这样才能精确地解决这些子问题,否则就会模棱两可,无从下手。 4.简述面向对象和结构化程序设计的区别。 答:面向对象是从本质上区别于传统的结构化方法的一种新方法、新思路。它吸收了结构化程序设计的全部优点,同时又考虑到现实世界与计算机之间的关系,认为现实世界是由一系列彼此相关并且能够相互通信的实体组成,这些实体就是面向对象方法中的对象,每个对象都有自己的自然属性和行为特征,而一类相似对象的共性的抽象描述,就是面向对象方法中的核心——类。 5. 从互联网上面搜索选择结构的使用方式。 答案略。 6.简述模块化方法的原理。
第10章 程序设计基础_习题参考答案
第10章习题参考答案 一、选择题 1.编写程序时,不需要了解计算机内部结构的语言是( C )。 A.机器语言B.汇编语言 C.高级语言D.指令系统 2.能够把由高级语言编写的源程序翻译成目标程序的系统软件叫( D )。 A.解释程序B.汇编程序 C.操作系统D.编译程序 3.结构化程序设计主要强调的是( B )。 A.程序的规模B.程序的可读性 C.程序的执行效率D.程序的可移植性 4.在面向对象方法中,一个对象请求另一个对象为其服务的方式是通过发送( D )。 A.调用语句B.命令C.口令D.消息 5.下列程序段的时间复杂度是( A )。 t=i; i=j; j=t; A.O(1) B.O(3) C.O(n) D.O(3n) 6.一位同学用C语言编写了一个程序,编译和连接都通过了,但就是得不到正确结果,那么下列说法正确的是( C )。 A.程序正确,机器有问题B.程序有语法错误 C.程序有逻辑错误D.编译程序有错误 二、填空题 1.程序设计的基本步骤是(分析问题,确定数学模型)、(设计算法,画出流程图)、(选择编程工具,按算法编写程序)、(调试程序,分析输出结果)。 2.用高级语言编写的程序称为(源程序),把翻译后的机器语言程序叫做(目标程序)。 3.结构化程序设计的3种基本逻辑结构为顺序、选择和(循环)。 4.面向对象程序设计以(对象)作为程序的主体。 5.在面向对象方法中,信息隐蔽是通过对象的(封装)性来实现的。 6.在最坏情况下,冒泡排序的比较次数为(n(n-1)/2)。 三、问答题 1.什么是程序?什么是程序设计? 程序是计算机指令的集合,这些指令描述了计算机的一系列操作步骤。 使用计算机解决实际问题,通常是先要对问题进行分析并建立数学模型(对数值计算问题)或提出对数据处理的需求(对非数值计算问题),然后进行算法设计,并用某一种程序设计语言编写程序,最后调试程序,使之运行后能产生预期的结果。这个过程称为程序设计。 2.什么是算法?它有何特征?如何描述算法? 计算机解决问题的方法和步骤,就是计算机解题的算法。 算法具有5个特性:有穷性、确定性、有效性、一般要有数据输入、要有结果输出。 描述算法有多种不同的工具:自然语言、流程图、结构化流程图和伪代码等。 3.简述冒泡排序、折半查询的基本思想。 冒泡法排序法是每趟将相邻的两个数两两进行比较,若满足排序次序,则进行下一次比较,若不满足排序次序,则交换这两个数,直到最后。总的比较次数为n-1次,此时最后的
java语言程序设计基础篇第十版第十四章练习答案
01 import class Exercise14_01 extends Application { @Override Not needed for running from the command line. */ public static void main(String[] args) { launch(args); } } 02 import class Exercise14_02 extends Application { @Override Not needed for running from the command line. */ public static void main(String[] args) { launch(args); } } 03 import class Exercise14_03 extends Application { @Override One is to use the hint in the book. ArrayList
java语言程序设计基础篇第十章第三题参看答案
10.3 /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ /** * * @author Administrator */ class MyInteger{ int value; String value1; MyInteger(int value){ this.value=value; } MyInteger(String value1){ this.value1=value1; } int getValue(){ return value; } boolean isEven(){ return value%2==0?true:false; } boolean isOdd(){ return value%2!=0?true:false; } boolean isPrime(){ for(int i=2;i 10.1 设计一个名为Time的类。这个类包含:表示时间的数据域hour、minute和secon d。 一个以当前时间创建Time对象的无参构造方法(数据域的值表示当前时间)。 一个构造Time对象的构造方法,这个对象有一个特定的时间值,这个值是以毫秒表示的、从1970年1月1日午夜开始到现在流逝的时间段(数据域的值表示这个时间)。一个构造带特定的小时、分钟和秒的Time对象的构造方法、 三个数据域hour、minute和second各自的get方法。 一个名为setTime(long elapseTime)的方法使用流逝的时间给对象设置一个新时间。代码: class Time{ long hour,minute,second。 long time。 public Time(){ time=System.currentTimeMillis()。 } public Time(long time){ this.time=time。 } public Time(long hour,long minute,long second){ time= (hour*3600+minute*60+second)*1000。 } public long getHour() { second = (time / 1000)。 minute = (second / 60)。 return hour = ( minute/ 60) % 24+8。 } public long getMinute() { second = (time / 1000)。 return minute = (second/ 60) % 60。 } public long getSecond() { return second = (time / 1000) % 60。 } public void setTime(long elapseTime) { time = elapseTime。 } } public class XiTi101 { public static void main(String[] args){ Time t1=new Time()。 System.out.println("时间:"+t1.getHour()+":"+t1.getMinute()+":"+ t1.getSecond())。 Time t2=new Time(555550000-8*60*60*1000)。 System.out.println("时间:"+t2.getHour()+":"+t2.getMinute()+":"+t2.getSecond())。 } } /*未来获得北京时间,必须加上8小时,所以之后必须减去8小时,即减去8*60*60*1000毫秒*/ 01 public class Exercise14_01 extends Application { @Override Not needed for running from the command line. */ public static void main(String[] args) { launch(args); } } 02 public class Exercise14_02 extends Application { @Override Not needed for running from the command line. */ public static void main(String[] args) { launch(args); } } 03 public class Exercise14_03 extends Application { @Override One is to use the hint in the book. ArrayList (i); } HBox pane = new HBox(5); ; ().add(new ImageView("image/card/" + (0) + ".png")); ().add(new ImageView("image/card/" + (1) + ".png")); ().add(new ImageView("image/card/" + (2) + ".png")); Not needed for running from the command line. */ public static void main(String[] args) { launch(args); } } 04 public class Exercise14_04 extends Application { @Override dd(txt); } Not needed for running from the command line. */ public static void main(String[] args) { launch(args); } 《Java语言程序设计(基础篇)》(第10版梁勇著) 第十章练习题答案 10.1 public class Exercise10_01 { public static void main(String[] args) { Time time1 = new Time(); System.out.println("Hour: " + time1.getHour() + " Minute: " + time1.getMinute() + " Second: " + time1.getSecond()); Time time2 = new Time(555550000); System.out.println("Hour: " + time2.getHour() + " Minute: " + time2.getMinute() + " Second: " + time2.getSecond()); } } class Time { private int hour; private int minute; private int second; public Time() { this(System.currentTimeMillis()); } public Time(long elapsedTime) { setTime(elapsedTime); } public Time(int hour, int minute, int second) { this.hour = hour; this.minute = minute; this.second = second; } public int getHour() { return hour; } public int getMinute() { return minute; } 01 import javafx、application、Application; import javafx、geometry、Pos; import javafx、scene、Scene; import javafx、scene、layout、GridPane; import javafx、stage、Stage; import javafx、scene、image、ImageView; public class Exercise14_01 extends Application { @Override // Override the start method in the Application class public void start(Stage primaryStage) { GridPane pane = new GridPane(); pane、setAlignment(Pos、CENTER); pane、setHgap(5); pane、setVgap(5); ImageView imageView1 = new ImageView("image/uk、gif"); ImageView imageView2 = new ImageView("image/ca、gif"); ImageView imageView3 = new ImageView("image/china、gif"); ImageView imageView4 = new ImageView("image/us、gif"); pane、add(imageView1, 0, 0); pane、add(imageView2, 1, 0); pane、add(imageView3, 0, 1); pane、add(imageView4, 1, 1); // Create a scene and place it in the stage Scene scene = new Scene(pane); primaryStage、setTitle("Exercise14_01"); // Set the stage title primaryStage、setScene(scene); // Place the scene in the stage primaryStage、show(); // Display the stage } /** * The main method is only needed for the IDE with limited * JavaFX support、Not needed for running from the command line、*/ public static void main(String[] args) { launch(args); } } 02 import javafx、application、Application; import javafx、geometry、Pos; import javafx、scene、Scene; import javafx、scene、layout、GridPane; import javafx、stage、Stage; import javafx、scene、image、ImageView; import javafx、scene、image、Image; 第1章程序设计基础 1.1程序设计基本概念 计算机作为一种智能工具正广泛地应用于人类社会的各行各业,它由硬件和软件组成。本节将介绍软件的一些基本概念。 1.程序 要利用计算机来处理问题,就必须要事先编写出使计算机按照人的意愿工作的应用程序。所谓程序,就是一系列遵循一定规则和思想并能正确完成指定工作的代码(也称为指令序列)。通常,一个计算机程序主要描述两部分内容,第一部分是描述问题的每个对象及它们之间的关系,第二部分是描述对这些对象进行处理的规则。其中关于对象及它们之间的关系涉及数据结构的内容,而处理规则是指求解某个问题的算法。因此,对程序的描述有如下等式: 程序=数据结构+算法 一个设计合理的数据结构往往可以简化算法,而一个好的程序有可靠性、易读性、可维护性等良好特性。 2.程序设计 所谓程序设计,就是根据计算机要完成的任务提出相应的需求,并在此基础上设计数据结构和算法,然后再编写相应的程序代码并测试该代码运行的正确性,直到能够得到正确的运行结果为止。通常,程序设计是很讲究方法的,一个良好的设计思想能够大大提高程序的高效性和合理性。因此有人提出如下关系: 程序设计=数据结构+算法+程序设计方法学 任何一个程序必须包含这三方面的内容。 3.算法 所谓算法,就是问题的求解方法。通常,一个算法由一系列求解步骤组成。正确的算法要求组成算法的规则和步骤的意义是唯一确定的,不能存在二义性,而且这些规则指定的操作是有序的,按算法指定的操作顺序执行能够在有限的执行步骤后给出正确的结果。 上面提到,算法不允许存在二义性,这是非常重要的,如果算法存在二义性,那么程序的编码工作将无法进行,同时,算法也不允许存在模糊的概念,因为二义性和模糊性都是不可操作的。如“加一吨的水”有明确的概念,这在程序的计算或控制中是可以 智慧树知到程序设计基础(C语言)测试第十章单元测试参考答案 ?总题数: 10 1 【单选题】 (10分) 若给出下列定义: char x[]="abcdefg"; char y[]={'a','b','c','d','e','f','g'}; 则正确的叙述为( )。 A.数组y的定义是错的 B.数组x的长度大于数组y 的长度 C.数组x和数组y的长度相同 D.数组x的长度小于数组y的长度 正确 本题总得分10分 2 【单选题】 (10分) 有下列程序,程序运行后的输出结果是()。 #include D.12ba56 正确 本题总得分10分 3 【单选题】 (10分) 设有如下的程序段: char s[]="girl", *t; t=s;则下列叙述正确的是()。 A.t指向s数组首元素 B.数组s中的内容和指针变量t中的内容相等 C.*t与&s[0]相等 D.s数组长度和t长度相等 正确 本题总得分10分 4 【单选题】 (10分) 有下列程序段,程序段运行后的输出结果是()。char b1[8]="abcdefg", b2[8], *pb=b1+3; while( --pb>=b1) strcpy(b2, pb); printf("%d", strlen(b2)); A.7 B.1 C.8 D.3 正确 本题总得分10分 5 【单选题】 (10分) 有下列程序,程序运行后的输出结果是()。java程序设计方案基础第十章第一题
java语言程序设计基础篇第十版第十四章练习答案
《Java语言程序设计(基础篇)》(第10版 梁勇 著)第十章练习题答案
java语言程序设计基础篇第十版第十四章练习答案
第1章 程序设计基础
智慧树知到程序设计基础(C语言)测试第十章单元测试参考答案