搜档网
当前位置:搜档网 › 第10章 程序设计基础_习题参考答案

第10章 程序设计基础_习题参考答案

第10章  程序设计基础_习题参考答案
第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次,此时最后的

元素为最大数或最小数,此为一趟排序。接着进行第二趟排序,方法同前,只是这次最后一个元素不再参与比较,比较次数为n-2次,依次类推。

作为折半查找的表必须是顺序存储的有序表,即表采用顺序结构存储,表中的元素按关键字值递增(或递减)排列。假设表中的关键字值递增排列,则折半查找的实现方法是:首先取整个有序表的中间元素A m的关键字同给定值x比较,若相等,则查找成功;否则,若A m的关键字小于x,则说明待查元素只可能落在表的后半部分中,接着只要在表的后半部分子表中查找即可;若A m的关键字大于x,则说明待查元素只可能落在表的前半部分中,接着只要在表的前半部分子表中查找即可。这样,经过一次关键字的比较,就缩小一半的查找空间,重复进行下去,直到找到关键字为x的元素,或者表中没有待查元素(此时查找区间为空)为止。

4.在一档电视节目中,有一个猜商品价格的游戏,竟猜者如在规定的时间内大体猜出某种商品的价格,就可获得该件商品。现有一件商品,其价格在0~8000元之间,采取怎样的策略才能在较短的时间内说出正确(大体上)的答案呢?请设计算法并画出相应的N-S 流程图。

采用折半查找的思路,请自行画出N-S流程图。

5.什么是可视化程序设计?它与面向对象程序设计有何区别和联系?

可视化程序设计利用可视化程序设计语言本身所提供的各种工具构造应用程序的各种界面,使得整个界面设计是在“所见即所得”的可视化状态下完成。相对于编写代码方式的程序设计而言,可视化程序设计具有直观形象、方便高效等优点。

可视化程序设计也是基于面向对象的思想,但不需通过编写程序代码的方式来定义类或对象,而是直接利用工具箱中提供的大量界面元素(在Visual Basic中称为控件),在设计应用程序界面时,只需利用鼠标把这些控件对象拖动到窗体的适当位置,再设置它们的属性,就可以设计出所需的应用程序界面。界面设计不需要编写大量代码,底层的一些程序代码由可视化程序设计语言自动生成。

C++程序设计基础课后答案 第八章

8.1 阅读下列程序,写出执行结果 1.#include class Bclass { public: Bclass( int i, int j ) { x = i; y = j; } virtual int fun() { return 0 ; } protected: int x, y ; }; class Iclass:public Bclass { public : Iclass(int i, int j, int k):Bclass(i, j) { z = k; } int fun() { return ( x + y + z ) / 3; } private : int z ; }; void main() { Iclass obj( 2, 4, 10 ); Bclass p1 = obj; cout << p1.fun() << endl; Bclass & p2 = obj ; cout << p2.fun() << endl; cout << p2.Bclass :: fun() << endl; Bclass *p3 = &obj;

cout << p3 -> fun() << endl; } 2.#include class Base { public: virtual void getxy( int i,int j = 0 ) { x = i; y = j; } virtual void fun() = 0 ; protected: int x , y; }; class A: public Base { public: void fun() { cout<<"x = "<

java程序设计方案基础第十章第一题

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毫秒*/

C++程序设计基础(第4版)(上)习题解答

《C++程序设计基础》(第4版)(上) 习题与解答 第1章基本数据与表达式 1.1 选择题 1.一个最简单的C++程序,可以只有一个(C )。 (A)库函数(B)自定义函数(C)main函数(D)空函数 2.用C++语言编写的源程序要成为目标程序必须要经过(D )。 (A)解释(B)汇编(C)编辑(D)编译3.C++程序中的简单语句必须以(B )结束。 (A)冒号(B)分号(C)空格(D)花括号4.假设有说明int a=0; double x=5.16;,则在以下语句中,(C )属于编译错误。 (A)x=a/x; (B)x=x/a; (C)a=a%x; (D)x=x*a; 5.执行C++程序时出现的“溢出”错误属于(C )错误。 (A)编译(B)连接(C)运行(D)逻辑 6.在下列选项中,全部都是C++关键字的选项为(C )。 (A)while IF Static (B)break char go (C)sizeof case extern (D)switch float integer 7.按C++标识符的语法规定,合法的标识符是(A )。 (A)_abc (B)new (C)π(D)"age" 8.在C++语句中,两个标识符之间(A )不能 ..作为C++的分隔符。 (A)数字(B); (C): (D)+ 9.下列正确的八进制整型常量表示是(B )。 (A)0a0 (B)015 (C)080 (D)0x10 10.下列错误的十六进制整型常量表示是(C )。 (A)0x11 (B)0xaf (C)0xg (D)0x1f 11.在下列选项中,全部都合法的浮点型数据的选项为(B )。 (A)-1e3.5 15. 2e-4 (B)12.34 -1e+5 0.1E-12 (C)0.2e-2 -12345. e-5 (D)5.0e(1+4)0.1 8e+2 12.在下列选项中,正确的字符常量为(D )。 (A)"a" (B)'name' (C)a (D)'\101' 13.在下列选项中,(D )不能 ..交换变量a和b的值。 (A)t=b; b=a; a=t; (B)a=a+b; b=a-b; a=a–b; (C)t=a; a=b; b=t; (D)a=b; b=a; 14.关于下列语句,叙述错误的是(A )。

相关主题