文档库 最新最全的文档下载
当前位置:文档库 › 第6章 程序设计语言 习题与答案

第6章 程序设计语言 习题与答案

第六章习题 P159-161

一、复习题

1、简述自然语言与形式语言的概念以及区别、汇编语言与机器语言的概念及区别。

自然语言是某一社会发展中形成的一种民族语言,而形式语言是进行形式化工作的元语言,它是以数学和数理逻辑为基础的科学语言。用机器指令形式编写的程序称为机器语言,

用带符号或助记符的指令和地址代替二进制代码成为语言进化的目标。这些使用助记符语言的语言后来就被称之为汇编语言。(P144- P146)

2、试述计算机语言的类型,它们各有什么特点?

1.机器语言,是最低级的语言,由二进制码组成,最早期的程序员通过在纸带上打点来写程序

2.汇编语言,用助记符和地址符代替了二进制码,更易于编写。

3.高级语言,相对于汇编语言又上升了一步,更接近于自然语言,如C语言、Pascal、Java、C#等都是高级语言。(P145-147)

3、列举程序设计语言的几种范型。

程序语言大致分为命令式程序设计语言、面向对象的程序设计语言、函数式程序设计语言和逻辑型程序设计语言等范型。(P147-149)

4、简述语言虚拟机。

提示:语言虚拟机是某种语言的解释器。语言虚拟机是建立在硬件和操作系统之上,针对不同的硬件和操作系统有不同的虚拟机,通过语言虚拟机屏蔽掉硬件的差异。这样使得硬件系统能够支持这种语言编写的程序的有效执行。目前最流行的语言虚拟机是Java虚拟机。(P156)

5、计算机执行用高级语言编写的程序有哪些途径?它们之间的主要区别是什么?

提示:主要有编译、解释等方式,也有两种方式的混合使用的形式。

编译是使用编译器将高级语言编写的源程序转换成计算机可以执行的机器语言可执行程序,也可以理解为用编译器产生可执行程序的动作。编译方式是一次编译,然后执行程序可以反复多次执行。

解释是另一种将高级语言转换为可执行程序的方式。与编译不同,解释性语言的程序不需要编译,省了道工序,解释性语言在运行程序的时候才翻译,每个语句都是执行的时候才翻译。这样解释性语言每执行一次就要翻译一次,效率比较低。

近来随着网络的发展,为了实现跨平台但同时又保证一定的效率,出现了编译、解释混合的方式,先用伪编译形成效率较高中间代码,再用语言虚拟机进行解释执行,以屏蔽掉硬件的差异。(P154-157) 6、请画出编译程序的总框图。如果你是一个编译程序的总设计师,设计编译程序时应当考虑哪些问题?

作为一个编译程序的总设计师,首先要深刻理解被编译的源语言其语法及语义;其次,要充分掌握目标指令的功能及特点,如果目标语言是机器指令,还要搞清楚机器的硬件结构及操作系统的功能;第

三,对编译的方法及使用的软件工具也必

须准确化。总之,总设计师在设计编译程

序时必须估量系统功能要求、硬件设备及

软件工具等诸因素对编译程序构造的影响

等。(P154-156)

7、什么是IDE?

IDE集成开发环境的简称(Integrated Develop Environment)是一套用于程序开发的软件工具集合,一般包括源代码编辑器、编译器、调试器和图形用户界面工具。(P158)

8、简述程序设计语言的基本构成元素。

程序设计语言的语法元素主要有:字符集、表达式、语句、标识符、关键字和保留字、注释等组成。(P149-P151)

9、简述标识符及其作用域的概念

标识符是程序设计时设计人员用来命名事物的符号。标识符的作用域是指其被定义的有效的范围,同一个表现形式的标识符在不再的区域里可以代表不同的含义。(P150)

10、说明将源程序转化为计算机能够识别的指令的过程。

提示:该转化过程即为编译的基本过程,包括词法分析;语法分析;中间代码生成;代码优化;目标代码生成等五个阶段,各阶段有具体的任务。(P154-155)

二、练习题

(一)填空题

1、____________语言的书写方式接近于人们的思维习惯,使程序更易阅读和理解。

高级语言(P146)

2、程序语言中的控制成分包括顺序结构、__________和循环结构。

选择结构(P153)

3、在基于继电器的计算机器时代,所谓“程序设计”实际上就是设置__________开关,所以通常的情况是“设置程序”的时间比计算时间长。

继电器(P145)

4、自然语言的基本特征包括_________和_____________________。

歧义性、不够严格和不够统一的语法结构(P144)

5、自然语言的输入可以使用___________、___________、___________、___________等方式。

6、函数与过程最明显的区别在于_________________。

{过程本身不返回值,而函数本身返回值}(P154)

7、通常按照程序运行时数据的_____能否改变,将数据分为常量和变量。

{ 值}(P151)

8、__________是将源程序转换为一种中间类型的代码,通常其生成的是非常接近机器语言的二进制代码。

伪编译(P156)

9、集成开发环境(IDE)是一套用于程序开发的软件工具集合,一般包括___________、___________、___________和___________等工具。

{ 源代码编辑器、编译器、调试器和图形用户界面 } (P158)10、用运算符号按一定的规则连接起来的、有意义的式子称为__________。

表达式(P151)

11、保留字也叫___________,指在语言中已经定义过的字,使用者不能再将这些字来命名其他事物。

关键字(P150)

12、操作符是用来代表运算操作的符号,每个操作符表示一种运算操

作。通常语言中具备___________、___________、___________和___________等等几类。

赋值操作符、算术操作符、比较操作符、逻辑操作符、位操作符(P150)

13、类是面向对象语言必须提供的由用户定义的数据类型,它是将具有相同___________、___________、___________的多个对象抽象而成的。

状态、操作和访问机制(P148)

14、科学的语言基本上是___________性、___________性而非评论性的。

描述性、断定性(P145)

15、_________是能被其他程序调用,在实现某种功能后能自动返回到调用程序去的程序。

子程序(P153)

16、形式语言是进行形式化工作的元语言,它是以________和________为基础的科学语言。

数学和数理逻辑(P145)

17、匈牙利命名法的基本原则是:标识符=____________+____________+____________。

属性类型对象描述(P150)

18、程序语言的分类没有统一的标准,根据程序设计的方法将程序语言大致分为____________、____________、____________和____________设计语言等类型。

命令式程序设计语言、面向对象的程序设计语言、函数式程序设计语言和逻辑型程序设计语言(P159)

19、逻辑型语言是一类以___________为基础的语言,其代表是Prolog 语言,这种语言与数据库SQL语言有很多相似之处。

形式逻辑(P148)

20、____________的选择是语言设计的第一件事。

字符集(P149)

(二)选择题

1、结构化程序设计主要强调的是______。

A、程序的规模

B、程序的易读性

C、程序的执行效率

D、程序的可移植性

B (P146)

2、程序设计语言从机器语言到高级语言的抽象,带来的主要好处是_____。

A、高级语言接近算法语言,易学、易掌握

B、可读性好,可维护性强,可靠性高

C、设计的程序可移植性好,重用率高

D、高级语言程序设计自动化

程度高,开发周期短

A (P146)

3、下面是关于解释程序和编译程序的论述,其中正确的一条是__________

A、编译程序和解释程序均能产生目标程序

B、编译程序和解释程序均不能产生目标程序

C、编译程序能产生目标程序而解释程序则不能

D、编译程序不能产生目标程序而解释程序能

A(P155)

4、近来计算机报刊中常出现的“Java”一词是指_________。

A、一种计算机语言

B、一种计算机设备

C、一个计算机厂商云集的地方

D、一种新的数据库软件

A(P156)

5、采用编译方法的高级语言源程序在编译后_________。

A、生成目标程序

B、生成可在DOS下直接运行的目标程序

C、生成可执行程序

D、生成可在DOS下直接运行的可执行程序

C (P155)

6、用高级程序设计语言编写的程序,要转换成等价的可执行程序,必须经过____。

A、汇编

B、编辑

C、解释

D、编译和连接

D(P155)

7、计算机硬件能直接执行的只有____。

A、符号语言

B、机器语言

C、机器语言和汇编语言

D、汇编语言

B (P145)

8、只有当程序要执行时,它才会将原程序翻译成机器语言,并且一次只能读取、翻译并执行原程序中的一行语句,此程序称为____。

A、目标程序错误!未定义书签。;

B、编辑程序;

C、解释程序;

D、汇编程序。

C ( P156)

9、构造编译程序应掌握____。

A、源程序

B、目标语言

C、编译方法

D、以上三项都是

D ( P154)

10、编译程序绝大多数时间花在

A、出错处理

B、词法分析

C、目标代码生成

D、表格管理

D ( P154)

11、如果一个变量在整个程序运行期间都存在,但是仅在说明它的函数内是可见的,这个变量的存储类型应该被说明为____。

A、静态变量

B、动态变量

C、外部变量

D、内部变量

D(P152)

12、在C语言中,函数的数据类型是指____。

A、函数返回值的数据类型

B、函数形参的数据类型

C、调用该函数时的实参的数据类型

D、任意指定的数据类型

A

13、自然语言的计算机处理可以分为___________

A、文字和语音

B、语义

C、语法

D、语用

A

14、DLL的优点有_____________

A、程序实现模块化

B、可方便地升级

C、程序加载速度快

D、程序不用编译

A B C (P157)

(三)判断题

1、汇编语言语句与特定的机器指令有一一对应的关系(对)

2、支撑机器语言的理论基础是冯诺依曼模型(错)

3、形式化语言是人工语言符号系统发展的第三阶段(错)

(四)讨论题

1、简述匈牙利命名法。

匈牙利命名法。其基本原则是:标识符=属性+类型+对象描述,其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分。命名要基于容易记忆容易理解的原则。(P150)

第6章程序设计语言习题与答案

2、试比较“while型”循环结构和“do-while型”循环结构。“while型”循环结构的逻辑含义是先判断条件,若成立,则执行需要重复的程序块,然后再去判断重复条件, 以决定是否继续循环。“do-while型”循环结构的逻辑含义是先执行需要重复的循环体,然后计算关系表达式,以决定是否继续循环。也就是说使用“while 型”循环结构可能不进行入循环,循环体一次也不执行;而“do-while 型”循环结构至少要执行一次循环体。

(P153)

3、试比较脚本语言与其他类型语言的区别

脚本语言语法简单。脚本通常是解释运行而非编译。脚本通常以文本(如ASCII)保存,只在被调用时进行解释或编译。,执行脚本语言通常需要相应的解释器。

脚本编程速度更快,脚本文件明显小于高级编程语言。脚本通常是解释执行的,速度较二进制文件执行要慢,且运行时更耗内存。(P147)

11 / 11

C语言程序设计 第六章 函数 试题及答案

C语言程序设计第六章函数试题及答案 1 选择题 *6.1建立函数的目的之一,以下正确的说法是。 A)提高程序的执行效率B)提高程序的可读性 C)减少程序的篇幅D)减少程序文件所占内存 参考答案:B *6.2 以下正确的说法是。 A)用户若需要调用标准库函数,调用前必须重新定义 B)用户可以重新定义标准库函数,若如此,该函数将失去原有意义 C)用户系统根本不允许用户重新定义标准库函数 D)用户若需要调用库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动寻找该文件。 参考答案:B 6.3 以下正确的函数定义形式是。 A)double fun(int x,int y) B)double fun(int x;int y) C)double fun(int x,int y); D)doubel fun(int x;int y); 参考答案:A *6.4 以下正确的函数形式是。 A)double fun(int x,int y){z=x+y;return z;} B)double fun(int x,y){int z;return z;} C)fun(x,y){int x,y;double z; z=x+y; return z;} D)double fun(int x,int y){double z;z=x+y;return z;} 参考答案:D *6.5以下正确的说法是。 A)实参和与其对应的形参占用独立的存储单元 B)实参和与其对应的形参共占用一个存储单元 C)只有当实参和与其对应的形参同名时才共占用一个存储单元 D)形参是虚拟的,不占用存储单元 参考答案:A 参考分析:本题并不严谨,因为实参可以是表达式,当实参为表达式时,实参并不单独占用独立的存储单元。 6.6 若调用一个函数,且此函数中没有return语句,则正确的说法是该函数。 A)没有返回值B)返回若干个系统默认值 C)返回一个用户所希望的函数值D)返回一个不确定的值 参考答案:D 参考分析:函数有没有返回值是由函数类型所决定的,当没有retrun语句,系统不能返回一个确定的值而已。 6.7 以下不正确的说法是,C语言规定。 A)实参可以是常量、变量或表达式 B)形参可以是常量、变量或表达式 C)实参可以是任意类型 D)实参应与其对应的形参类型一致

C语言程序设计课后各章节习题答案

第三章 8 输入一个非负数,计算以这个数为半径的圆周长和面积。 答#define PI 3.1415926 main() { float r,l,area; scanf("%f",&r); l=2*PI*r; area=PI*r*r; printf("l=%f\tarea=%f\n",l,area); } 9 输入任意一个3位数,将其各位数字反序输出(例如输入123,输出321)。 答main() { int x,y; printf("Input number:"); scanf("%d",&x); y=100*(x%10)+10*(x/10%10)+x/100; printf("%d--->%d\n",x,y); } 10 输入任意大小的3个整数,判断其中是否有两个奇数一个偶数。若是则输出YES,不是则输出NOT(要求用条件表达式进行判断,不使用if语句)。 答main() { int x,y,z,oddcount=0; printf("Input x,y,z:"); scanf("%d,%d,%d",&x,&y,&z); x%2==1?oddcount++:0; y%2==1?oddcount++:0; z%2==1?oddcount++:0; oddcount==2?printf("YES"):printf("NOT"); } 11 求前驱字符和后继字符。输入一个字符,找出它的前驱字符和后继字符,并按ASCII码值,按从大到小的顺序输出这3个字符及其对应的ASCII码值。 答 main() { char c; printf("Input character:"); scanf("%c",&c); printf("%c----->%d\n",c-1,c-1); printf("%c----->%d\n",c,c);

程序设计语言 习题与答案

第六章习题 P159-161 一、复习题 1、简述自然语言与形式语言的概念以及区别、汇编语言与机器语言的概念及区别。 自然语言是某一社会发展中形成的一种民族语言,而形式语言是进行形式化工作的元语言,它是以数学和数理逻辑为基础的科学语言。用机器指令形式编写的程序称为机器语言,用带符号或助记符的指令和地址代替二进制代码成为语言进化的目标。这些使用助记符语言的语言后来就被称之为汇编语言。(P144- P146) 2、试述计算机语言的类型,它们各有什么特点? 1.机器语言,是最低级的语言,由二进制码组成,最早期的程序员通过在纸带上打点来写程序 2.汇编语言,用助记符和地址符代替了二进制码,更易于编写。 3.高级语言,相对于汇编语言又上升了一步,更接近于自然语言,如C语言、Pascal、Java、C#等都是高级语言。(P145-147) 3、列举程序设计语言的几种范型。 程序语言大致分为命令式程序设计语言、面向对象的程序设计语言、函数式程序设计语言和逻辑型程序设计语言等范型。(P147-149) 4、简述语言虚拟机。 提示:语言虚拟机是某种语言的解释器。语言虚拟机是建立在硬件和操作系统之上,针对不同的硬件和操作系统有不同的虚拟机,通过语言虚拟机屏蔽掉硬件的差异。这样使得硬件系统能够支持这种语言编写的程序的有效执行。目前最流行的语言虚拟机是Java虚拟机。(P156) 5、计算机执行用高级语言编写的程序有哪些途径?它们之间的主要区别是什么? 提示:主要有编译、解释等方式,也有两种方式的混合使用的形式。 编译是使用编译器将高级语言编写的源程序转换成计算机可以执行的机器语言可执行程序,也可以理解为用编译器产生可执行程序的动作。编译方式是一次编译,然后执行程序可以反复多次执行。 解释是另一种将高级语言转换为可执行程序的方式。与编译不同,解释性语言的程序不需要编译,省了道工序,解释性语言在运行程序的时候才翻译,每个语句都是执行的时候才翻译。这样解释性语言每执行一次就要翻译一次,效率比较低。 近来随着网络的发展,为了实现跨平台但同时又保证一定的效率,出现了编译、解释混合的方式,先用伪编译形成效率较高中间代码,再用语言虚拟机进行解释执行,以屏蔽掉硬件的差异。 (P154-157) 6、请画出编译程序的总框图。如果你是一个编译程序的总设计师,设计编译程序时应当考虑哪些问题? 作为一个编译程序的总设计师,首先要深刻理解被编译的源语言其语法及语义;其次,

C语言程序设计第六章数组习题及答案

1.以下对一维整型数组a的定义,正确的是_。(2分) A.int a(10) ; B.int n = 10 , a[n] ; C.int n ; scanf( "%d" , &n ) ; int a[n] ; D.int a[10] ; 2.若有定义:int a[10] ;,则对a数组元素的正确引用是_。(2分) A.a[10] B.a[3.5] C.a(5) D.a[10-10] 3.对定义int a[10] = {6 , 7 , 8 , 9 , 10} ; 的正确理解是_。(2分) A.将5个初值依次赋给a[1]--a[5] B.将5个初值依次赋给a[0]--a[4] C.将5个初值依次赋给a[6]--a[10] D.因为数组长度与初值个数不相同,所以此语句不正确 4..若有定义:int a[3][4]; , 则对a数组元素的正确引用是_。(2分) A.a[3][4] B.a[1,3] C.a[1+1][0] D.a(2)(1) 5.以下对二维数组a初始化正确的语句是_。(2分) A.int a[2][ ]={{0 , 1 , 2}, {3 , 4 , 5}}; B.int a[ ][3]={{0, 1, 2}, {3, 4, 5}}; C.int a[2][4]={{0, 1 , 2}, {3 , 4}, {5}}; D.int a[ ][3]={{0, 1, 2}, { }, {3, 4}}; 6.对二维数组a进行如下初始化: int a[ ][3]={0 , 1 , 2 , 3 , 4 , 5}; 则a[1][1]的值是_。(2分) A.0 B.3 C.4 D.1 7.下面程序段的运行结果是_。(2分) #include int main( ){ int i , x[3][3] = {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9} ;

C语言单元复习题 第06部份 循环

第6章循环程序设计 一、单选题 1.以下关于循环的描述中,错误的是:()。 A.可以用for语句实现的循环一定可以用while语句实现 B.可以用while语句实现的循环一定可以用for语句实现 C.可以用do...while语句实现的循环一定可以用while语句实现 D.do...while语句与while语句的区别仅仅是关键字while的位置不同( 知识点:循环的基本概念;难度系数:1;答案:D ) 2.以下关于循环的描述中,错误的是:()。 A.while、do...while和for语句的循环体都可以是空语句 B.for和do...while语句都是先执行循环体,后进行循环条件判断 C.while语句是先进行循环条件判断,后执行循环体的 D.使用while和do...while语句时,循环变量初始化的操作应在循环语句之前完成( 知识点:循环的基本概念;难度系数:1;答案:B ) 3.以下关于循环体的描述中,错误的是:()。 A.循环体中可以出现break语句 B.循环体中可以出现continue语句 C.循环体中不能出现switch语句 D.循环体中还可以出现循环语句 ( 知识点:循环的基本概念;难度系数:1;答案:C ) 4.在while(x)语句中的x与下面条件表达式等价的是:()。 A.x==0 B.x==1 C.x!=l D.x!=0 ( 知识点:while语句;难度系数:1;答案:D ) 5.在C语言中,当while语句构成的循环中的条件为()时,结束循环。 A.0 B.1 C.真D.非0 ( 知识点:while语句;难度系数:1;答案:A ) 6.有以下程序段: int k=0; while(k=1) k++; while循环执行的次数是:()。 A.无限次B.有语法错,不能执行 C.一次也不执行D.执行一次 ( 知识点:while语句;难度系数:1;答案:A ) 7.有以下程序段: int x=0; while(x=1) {……} 则以下叙述中正确的是:()。 A.循环控制表达式的值为0 B.循环控制表达式的值为1 C.循环控制表达式不合法D.以上说法都不正确 ( 知识点:while语句;难度系数:1;答案:B ) 8.下述语句执行后,变量k的值是:()。 int k=0; while(k++<2); printf("%d",k); A.2 B.3 C.01 D.12

《C++程序设计语言》习题答案

1.简述C++语言的特点。 答:C++语言的主要特点如下: ?以C作为其子集,兼取了C语言简洁、相对低级的特性,但摒弃掉了C语言中若干不安全的特性,其语言表现力远远强于C语言; ?是一种强类型语言; ?具有较高的可移植性和可维护性; ?适合于大部分系统程序及应用程序的开发; ?是一种不限定应用领域的一种通用程序设计语言; ?是一种能支持面向过程、面向模块、面向对象和类属程序设计范型的混合型程序设计语言。 2.C++语言支持哪几种程序设计范型? 答:是一种能支持面向过程、面向模块、面向对象和类属程序设计范型的混合型程序设计语言。 3.C++中有哪些重要的程序设计理念? 答:C++中提供了以下这些重要的程序设计理念:类、派生类、继承、抽象类、接口与实现的分离及模板等重要的面向对象理念。

1.编写一个输出字符串“Welcome to C++!”的程序(参照2.1.3节程序)。 解1: #include #include using namespace std; int main() { string ss; ss = “Welcome to C++!”; cout << ss << endl; return 0; } 解2: #include using namespace std; int main(){ cout << “Welcome to C++!”<< endl; return 0; } 解3: #include using namespace std; int main(){ char* cc; cc = “Welcome to C++!”; cout << cc << endl; return 0; } 2.什么是程序设计范型? 答:所谓程序设计范型(Programming Paradigm)是人们在程序设计时所采用的基本方式模型。程序设计范型决定了程序设计时采用的思维方式、使用的工具,同时又有一定的应用范畴(即受一定的应用领域约束)。过程程序设计、模块化程序设计、函数程序设计、逻辑程序设计、面向对象程序设计等,都是我们常见的、不同的程序设计范型。 3.什么是面向过程、面向模块、面向对象及类属程序设计范型?它们各自的特点是什么? 答:所谓过程程序设计范型即:确定程序中所需要的过程;采用过程处理中所找到的最好的算法。它的特点是:过程程序设计的核心是确定程序设计时所需的过程(Procedure),其程序的组件粒度是过程,每个过程是语言中的过程(Procedure)或函数(Function)单元,它完成某一个/类特定的任务。该范型的侧重点在于处理过程——执行预期计算所需要的算法。 模块化程序设计范型是:确定程序中所需要的模块;将程序划分成模块,使得数据隐藏在程序的各模块之中。它的特点是:程序组件粒度是模块,将相关的数据和过程/函数聚集在某一模块中,模块对外只提供接口/界面,将其实现隐藏起来,其它模块不能随意访问该模块中的内容。 面向对象程序设计范型中程序设计的理念是:确定程序中所需要的类;为每一个类提供

(完整版)c语言第六章循环结构程序设计(习题册答案)

第六章循环结构程序设计 基础练习(A) 一、选择题 1、C语言中while和do-while循环的主要区别是(A)。 A) do-while的循环体至少无条件执行一次 B) while的循环控制条件比do-while的循环控制条件严格 C) C)do-while允许从外部转到循环体内 D) do-while的循环体不能是复合语句 2、以下描述中正确的是(C)。 A) 由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用 复合语句 B)do-while循环由do开始,用while结束,在while(表达式)后面不能写分号 C) 在do-while循环体中,一定要有能使while后面表达式的值变为零(“假”)的操 作 D)do-while循环中,根据情况可以省略while 3、设有程序段 int k=10; while(k) k=k-1; 则下面描述中正确的是(A)。 A)while循环执行10次B)循环是无限循环 C)循环体语句一次也不执行D)循环体语句执行一次 4、下列循环语句中有语法错误的是( D )。 A) while(x=y) 5;B) while(0) ; C) do 2;while(x==b);D) do x++ while(x==10); 5、已知int i=1;执行语句while (i++<4) ;后,变量i的值为(C)。 A) 3 B) 4 C) 5 D) 6 6、语句while(!E);中的表达式!E等价于(A)。 A)E==0 B)E!=1 C)E!=0 D)E==1 7、下面程序段的运行结果是(A)。 a=1; b=2; c=2; while(a main() { int num=0; while(num<=2) { num++; printf(“%d\n”,nu m); } } A)1 B)1 C)1 D)1 2 2 2 3 3 9、以下能正确计算1×2×3×…×10的程序段是(C)。

Java语言程序设计(郑莉)第六章课后习题答案

Java语言程序设计 第六章课后习题答案 1.将本章例6-1至6-18中出现的文件的构造方法均改为使用File类对象作为参数实现。 个人理解:File类只能对整文件性质进行处理,而没法通过自己直接使用file.Read()或者是file.write()类似方法对文件内容进行写或者读取。注意:是直接;下面只提供一个例2变化,其他的你自己做,10几道啊,出这题的人真他妈有病。 import java.io.*; public class test6_2{ public static void main(String[] args) throws IOException { String fileName = "D:\\Hello.txt"; File writer=new File(fileName); writer.createNewFile(); BufferedWriter input = new BufferedWriter(new FileWriter(writer)); input.write("Hello !\n"); input.write("this is my first text file,\n"); input.write("你还好吗?\n"); input.close(); } } 运行结果:(电脑系统问题,没法换行,所以一般使用BuffereWriter中newLine()实现换行) 2.模仿文本文件复制的例题,编写对二进制文件进行复制的程序. // CopyMaker类 import java.io.*; class CopyMaker { String sourceName, destName; BufferedInputStream source; BufferedOutputStream dest; int line; //打开源文件和目标文件,无异常返回true private boolean openFiles() {

高级语言程序设计第6章参考答案

1.6.3习题解答 编程题 1.写两个函数,分别求两个整数的最大公约数和最小公倍数,用主调函数调用这两个函数,并输出结果。两个整数由键盘输入。 分析: 求两个数a和b的最大公约数: 设这个数为x,则x一定小于等于a和b中的较小者min(a,b)。在区间[1, min(a,b)]中能找到的最后一个同时被a和b整除的那个数,就是a和b的最大公约数x。 求两个数a和b的最小公倍数: 设这个数为x,则x一定大于等于a和b中的较大者max(a,b),而小于等于a*b。在区间[max(a,b), a*b ]中找到的第一个能同时整除a和b的那个数,就是a和b的最小公倍数x。 参考程序代码: #include "stdio.h" f1(int a, int b)/*求最大公约数*/ { int x,i; for(i=1;i<=(a<=b?a:b);i++) { if(a%i==0&&b%i==0) { x=i; } } printf("\n最大公约数为: %d\n",x); } f2(int a, int b)/*求最小公倍数*/ { int i,x; for(i=((a>b)?a:b);i<=a*b;i++) { if(i%a==0&&i%b==0) { x=i; break; } } printf("\n最小公倍数为: %d\n",x); } void main()

{ int a,b; printf("\n请输入两个数:\n"); printf("a=");scanf("%d", &a); printf("b=");scanf("%d", &b); f1(a, b); f2(a, b); } 运行结果: 请输入两个数: a=4 b=16 最大公约数为:4 最小公倍数为:16 2.编写一个函数,其功能是对于给定的一个时间数(秒为单位),以“时:分:秒”的格式输出。 参考程序代码: #include print_time(long second) { int hour,minute; hour=(second/3600)%24; second%=3600; minute=second/60; second%=60; printf("%d:%d%ld\n", hour, minute, second); } void main() { long s; printf("请输入秒数:"); scanf("%ld", &s); print_time(s); } 运行结果: 请输入秒数:7278 2:1:18 3.编写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的信息。 分析: 素数指的是是指该数除了1和本身,不再有其他因子。考虑到完全平方数的因素,只需

C语言程序设计(第3版)第6章补充习题及答案

第6章补充习题及答案 习题 6.1 选择题 (1)在C语言的函数中,下列说法正确是_________。 A.必须有形参B.形参必须是变量名 C.可以有也可以没形参D.数组名不能作形参 (2)数组名作为实参传递给函数时,传递的是________。 A.该数组长度B.该数组的元素个数 C.该数组首地址D.该数组中各个元素的值(3)以下函数定义正确的是________。 A.int fnSum(int iNum1,int iNum2) B.int fnsum(int iNum1,iNum2) C.int fnsum(iNum1,iNum2) D.int fnsum(int iNum1;int iNum2) (4)简单变量做实参时,它和对应形参之间的数据传递方式为______。 A.地址传递 B.单向值传递 C.由实参传给形参,再由形参传回给实参 D.由用户指定传递方式 (5)C语言允许函数值类型默认定义,此时该函数值隐含的类型是______。 A.float B.int C.long D.double (6)以下说法正确的是。 A.定义函数时,形参类型说明可以放在函数体内 B.函数能嵌套定义 C.return后边的值不能为表达式 D.如果函数值的类型与返回值的类型不一致,以函数类型为准。 (7)如果未指定局部变量类型,其隐含的存储类别为。 A.自动(auto) B.静态(static) C.外部(extern) D.寄存器(register) (8)以下叙述中不正确的是。 A.在不同的函数中可以使用相同名字的变量 B.函数中的形式参数是局部变量 C.在一个函数内定义的变量只在本函数范围内有效 D.在一个函数内的复合语句中定义的变量在本函数范围内有效 6.2 填空题 (1)以下函数是求最大值的函数,请补充完整以下程序。 #include "stdio.h" ; main ( ) { int iNum1 ,iNum2, iMax; scanf("%d,%d",&iNum1,&iNum2); iMax= ; printf("%d",iMax); } fnMax ( int iNum1, int iNum2)

程序设计语言VB_习题集(含答案)

《程序设计语言VB》课程习题集 一、单选题 1. Visual Basic是一种面向(D )的程序设计语言。 A. 用户 B. 事件 C. 程序 D. 对象 2.在Visual Basic6.0中规定工程文件的扩展名是(A)。 A. vbp B. for C. frm D. bas 3. Visual Basic6.0中规定窗体文件的扩展名是(B )。 A. for B. frm C. vbp D. bas 4.如何使一个标签或按钮控件在运行时不可用(C)。 A. 把它的Visible属性设置成False B. 把它的Visible属性设置成True C. 把它的Enabled属性设置成False D. 把它的Enabled属性设置成True 5.控件的字体可在属性窗口的(A)属性中调整? A. Font B. Color C. Text D. Caption 6.若要将某命令按钮设置为默认命令按钮。则应设置为True的属性是(C )。 A. Value B. Cancel C. Default D. Enabled 7.在VB中,记录对象数据的是(C)。 A. 方法 B. 事件 C. 属性

8.在文本框上显示文本的属性是(B)。 A. Value B. Text C. Print D. Enabled 9. InputBox函数返回值的类型为(A)。 A. 字符串 B. 数值 C. 变体 D. 数值或字符串(视输入的数据而定) 10.设有语句:a = InputBox("请输入数值:","输入示例", "100") 程序执行后,若从键盘上输入数值20并按回车键,则变量a的值是(A)。 A. 字符串"20" B. 字符串"120" C. 默认值100 D. 数值120 11.下列控件中可用于接受用户输入文本,又可用于显示文本的是(B)。 A. Label控件 B. TextBox控件 C. Timer控件 D. CommandButton控件 12.语句PRINT "25*4"的输出结果是(A)。 A. 25*4 B. "100" C. 100 D. 出现错误信息 13.只能用来显示字符信息的控件是(B)。 A. 文本框 B. 标签框 C. 图片框 D. 图像框 14.下列可作为Visual Basic变量名的是(D)。 A. A%A B. 4A C. ?xy D. Stemp 15.下列哪个符号不能作为VB中的变量名(D)。 A. timefly

程序设计基础(C)第6--8章复习题答案

第6--8章复习题 一、判断题 (√)1.数组元素在内存中是按顺序、连续存放的。 (×)2.组成数组的数据可以是若干个不同的类型。 (√)3.字符数组可以存放字符串,也可以存放若干字符。 (×)4.多维数组中各维的大小必须相同。 (×)5.数组定义后没有被初始化也有一个确定的默认值。 (×)6.字符串的结束标志是‘\n’。 (√)7.定义数组时必须有数据类型说明,而不必有存储类型说明。 (×)8.数组在赋初值时允许越界。 (×)9.一维字符数组中可以存放多个字符串。 (√)10.定义函数时必须指出该函数的类型。 (×)11.函数说明必须放在函数体内,不可放在函数体外。 (√)12.定义函数时给出的参数是形参,调用函数时给出的参数是实参。 (√)13.函数调用时要求形参与实参个数相等、对应类型相同。 (√)14.函数的调用方式既可以传值也可以传地址。 (×)15.函数可以嵌套调用,也可以嵌套定义。 (√)16.函数的函数体可以是空的,也可以有若干条语句。 (√)17.预处理命令的前面必须加一个“#”。 (√)18.一条文件包含命令只能包含一个文件,若要包含多个文件时,可使用多条文件包含命令。 (×)19.带参数宏定义的参数个数不得超过2个。 (×)20.预处理命令的处理是在程序运行前进行的。 二、单选题 1.数组赋初值的初始值表中的数据项个数与数组元素个数的关系,错误的是( D )。 A.大于B.小于C.等于D.小于等于 2.设int a[2][3]; 下列数组元素的表示中错误的是( C )。 A.a[0][0] B.a[1][1] C.a[2][2] D.a[1][2] 3.下列数组带初始化的定义中,错误的是(B )。 A.int m[5]={3}; B.char s[5]= “ab123”; C.int n[]={6,6,4,3,2,1}; D.int p[3]={1,3,5}; 4.已知一个一维数组,有10个int元素,其中后面3个元素的值分别为3、2、1,其余元素为默认值。在下面的实现方法中,正确的是( C )。 A.int a[10]={3,2,1};

C语言程序设计第六章数组习题及答案

C语言程序设计第六章数组习题及答案 1.以下对一维整型数组a的定义,正确的是_。(2分) A.int a(10) ; B.int n = 10 , a[n] ; C.int n ; scanf( "%d" , &n ) ; int a[n] ; D.int a[10] ; 2.若有定义:int a[10] ;,则对a数组元素的正确引用是_。(2分) A.a[10] B.a[3.5] C.a(5) D.a[10-10] 3.对定义int a[10] = {6 , 7 , 8 , 9 , 10} ; 的正确理解是_。(2分) A.将5个初值依次赋给a[1]--a[5] B.将5个初值依次赋给a[0]--a[4] C.将5个初值依次赋给a[6]--a[10] D.因为数组长度与初值个数不相同,所以此语句不正确 4..若有定义:int a[3][4]; , 则对a数组元素的正确引用是_。(2分) A.a[3][4] B.a[1,3] C.a[1+1][0] D.a(2)(1) 5.以下对二维数组a初始化正确的语句是_。(2分) A.int a[2][ ]={{0 , 1 , 2}, {3 , 4 , 5}}; B.int a[ ][3]={{0, 1, 2}, {3, 4, 5}}; C.int a[2][4]={{0, 1 , 2}, {3 , 4}, {5}}; D.int a[ ][3]={{0, 1, 2}, { }, {3, 4}}; 6.对二维数组a进行如下初始化:

int a[ ][3]={0 , 1 , 2 , 3 , 4 , 5}; 则a[1][1]的值是_。(2分) A.0 B.3 C.4 D.1 7.下面程序段的运行结果是_。(2分) #include int main( ){ int i , x[3][3] = {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9} ; for( i = 0 ; i < 3 ; i++ ) printf( "%2d" , x[i][2-i] ) ; return 0 ; } A.1 5 9 B.1 4 7 C.3 5 7 D.3 6 9 8.以下对数组s的初始化,错误的是_。(2分) A.char s[5] = { "abc" } ; B.char s[5] = { 'a' , 'b' , 'c' } ; C.char s[5] = "" ; D.char s[5] = "abcde" ; 9.对两个数组a和b进行如下初始化: char a[ ] = "ABCDEF" ; char b[ ] = { 'A' , 'B' , 'C' , 'D' , 'E' , 'F' } ; 则以下叙述正确的是_。(2分) A.a和b数组完全相同 B.a与b长度相同 C.a的长度比b短

C语言程序设计(第二版)-习题答案 第6章习题答案

《C语言程序设计(Visual C++6.0环境)》习题答案 习题六 一、思考题 1、编写程序,将10个整形数 2、4、6,…18,20赋给一个数组,然后使用指针输出显示该数组各元素的值。 #include “stdio.h” main() {int i,*p; int a[10]={2,4,6,8,10,12,14,16,18,20}; p=a; for(i=0;i<10;i++) printf(“%3d”,*(p+i)); } 2、编写程序,将两个字符串连接起来。 #include #define N 120 main() { char s1[N+N],s2[N],*p,*q; printf("输入2个字符串\n"); scanf("%s%s",s1,s2); for(p=s1;* p!='\0'; p++); for(q=s2;*p++=*q++;); printf("两字符串连接后:%s\n",s1); } 3、输入5个字符串,按英文字典排序从小到大顺序输出。 #include "stdio.h" #include "string.h" void sort(char *name[],int count) {char *temp; int i,j,min; for(i=0;i0) min=j; if(min!=i) {temp=name[i];name[i]=name[min];name[min]=temp;} }} main() {char *name[5]={"BASIC","FORTRON","PASAL","C","FOXBASE"};

C语言课后练习题答案第六章

C语言课后练习题答案第六章 作业七:循环结构程序设计(二) (一)选择题(20分) 1.若有如下语句 int x=3; do{printf(""%d\n",x-=2);}while(!(--x)); 则上面程序段__b__. a)输出的是1 b)输出的是1和-2 c)输出的是3和0 d)是死循环输出2次循环1次 2.下面程序的运行结果是__d__. #include main() {int y=10; do{y--;}while(--y); printf("%d\n",y--); } a)-1 b)1 c)8 d)0 3.若i为整型变量,则以下循环执行次数是__b__. for(i=2;i==0;)printf("%d",i--); a)无限次 b)0次 c)1次 d)2次 4.执行语句for(i=1;i++<4; );后变量i的值是__c__. a)3 b)4 c)5 d)不定 (二)填空题(20分) 1.下面程序段的运行结果是__a=-5__. i=1;a=0;s=1; do{a=a+s*i;s=-s;i++;}while(i<=10); printf("a=%d",a); 2.下面程序段的运行结果是__8__. i=1;s=3;

do{s+=i++; if(s%7==0) continue; else ++i; }while(s<15); printf("%d",i); 3.以下程序的输出为(x=8 ) #include main() { int i, j, x=0; for ( i=0; i<2; i++ ) { x++; for ( j=0; j<=3; j++ ) {if ( j%2) contiunue; x++; } x++; } printf ( “ x=%d\n”, x); } 4.以下程序的输出为(k=0,m=5) #include main() { int i, j, k=0, m=0; for ( i=0; i<2; i++ ) { for ( j=0; j<3; j++ ) k++; k - = j ; } m = i + j; printf ( “ k=%d, m=%d\n”, k, m); } (三)编程题(60分) 1.编程计算a+aa+aaa+…+aa…a(n个a)的值,n和a的值由键盘输入。#include main() {long s=0,t=0; int count=1,m,a;

C语言程序设计教程第六章课后习题参考答案

C语言程序设计教程第六章课后习题参考答案 P158 1求三个实数最大值 #include float max(float,float,float); int main() { float a,b,c,m; printf("请输入三个实数:"); scanf("%f %f %f",&a,&b,&c); printf("最大数为%f\n",max(a,b,c)); return 0; } float max(float a,float b,float c) { float t; if(a>b&&a>c) t=a; else if(b>a&&b>c) t=b; else t=c; return t; } P158 2求最大公约数最小公倍数 #include int fun1(int a,int b); int fun2(int a,int b); int main() {

int a,b; printf("请输入两个整数:"); scanf("%d %d",&a,&b); printf("最大公约数为:%d\n",fun1(a,b)); printf("最小公倍数为:%d\n",fun2(a,b)); } int fun1(int a,int b) { int t,r; if(a { t=a; a=b; b=t; } while((r=(a%b))!=0) { a=b; b=r; } return b; } int fun2(int a,int b) { int n; n=(a*b)/fun1(a,b); return n; } P158 3求完全数 #include void wan(int n);

C语言程序设计-第6章 练习题

一、单项选择题 题目1 在下面的函数声明语句中存在着语法错误的是()。 a. AA(int, int) b. AA(int a; int b) c. AA(int a, int) d. AA(int a, int b) 题目2 如果一个函数定义仅允许为所在的程序文件调用,则应在该函数定义的最前面添加的关键字为()。 a. extern b. static c. default d. auto 题目3 假定一个函数定义为“extern char* f1(char* x){return x;}”,表示该函数作用域的关键字为()。 a. extern b. char c. int d. char*

题目4 假定一个函数的原型语句为“int ff(int* x);”,一个整型数组为a[10],则下面函数调用表达式不正确的是()。 a. ff(a) b. ff(a[0]) c. ff(&a[0]) d. ff(a+3) 题目5 假定一个函数原型语句为“int f1(int a[],int n);”,与数组参数等价的表示为()。 a. int** a b. int& a c. int* a d. int a 题目6 假定一个函数的参数说明为const int a,则在函数体中不能进行的操作是()。 a. a==0 b. a=10 c. printf("%d",a) d. int x=a 题目7 在函数体中定义的变量具有()。

a. 文件作用域 b. 局部作用域 c. 函数作用域 d. 全局作用域 题目8 在函数外定义的变量,若带有作用域关键字static,则它具有()。 a. 全局作用域 b. 文件作用域 c. 函数作用域 d. 局部作用域 题目9 在函数体中定义一个静态变量时,选用的存储属性关键字为()。 a. static b. register c. extern d. auto 题目10 假定一个函数原型为“void ff(int a[],int n)”,则对应的函数指针类型为()。 a. *ff(int[],int) b. void (*ff)(int*a,int)

第6章-程序设计语言-习题与答案

第六章习题 (1)复习题 1、简述自然语言错误!未定义书签。与形式语言错误!未定义书签。得概念以及区别、汇编语言与机器语言得概念及区别。 自然语言就是某一社会发展中形成得一种民族语言,而形式语言就是进行形式化工作得元语言,它就是以数学与数理逻辑为基础得科学语言。用机器指令形式编写得程序称为机器语言, 用带符号或助记符得指令错误!未定义书签。与地址代替二进制代码成为语言进化得目标。这些使用助记符语言得语言后来就被称之为汇编语言. (P135 P136) 2、什么就是高级程序设计语言错误!未定义书签。?它有什么特点? 高级语言就是汇编语言得一种抽象。高级语言得设计目标就就是使程序员摆脱汇编语言错误!未定义书签。细节得繁琐。高级语言同汇编语言都有一个共性,那就就是:它们必须被转化为机器语言错误!未定义书签。,这个转化得过程称为解释或编译。 (1)高级语言接近算法语言,易学、易掌握; (2)高级语言设计出来得程序可读性好,可维护性强,可靠性高; (3)高级语言与具体得计算机硬件关系不大,其程序可移植性好,重用率高; (4)高级语言自动化程度高,开发周期短,利于提高程序得质量。 (P138) 3、列举程序设计语言得几种范型. 程序语言大致分为命令式程序设计语言、面向对象得程序设计语言、函数式程序设计语言与逻辑型程序设计语言等范型。 (P138—140) 4、简述语言虚拟机。 提示:语言虚拟机就是某种语言得解释器.语言虚拟机就是建立在硬件与操作系统之上,针对不同得硬件与操作系统有不同得虚拟机,通过语言虚拟机屏蔽掉硬件得差异。这样使得硬件系统能够支持这种语言编写得程序得有效执行。目前最流行得语言虚拟机就是Java虚拟机。(P147) 5、计算机执行用高级语言错误!未定义书签。编写得程序有哪些途径?它们之间得主要区别就是什么? 提示:主要有编译、解释等方式,也有两种方式得混合使用得形式。 编译就是使用编译器将高级语言编写得源程序转换成计算机可以执行得机器语言可执行程序,也可以理解为用编译器产生可执行程序得动作。编译方式就是一次编译,然后执行程序可以反复多次执行。 解释就是另一种将高级语言转换为可执行程序得方式。与编译不同,解释性语言得程序不需要编译,省了道工序,解释性语言在运行程序得时候才翻译,每个语句都就是执行得时候才翻译.这样解释性语言每执行一次就要翻译一次,效率比较低. 近来随着网络得发展,为了实现跨平台但同时又保证一定得效率,出现了编译、解释混合得方式,先用伪编译形成效率较高中间代码,再用语言虚拟机进行解释执行,以屏蔽掉硬件得差异。 (P144-147)

语言程序设计练习题含程序及参考答案

C语言练习题 (所提供的源程序均采用自定义函数方式解决,如不采用函数方式,也可直接在main函数中借鉴该思想编程,因时间有限,所有程序未能一一验证,仅供参 考使用) 1、定义一个函数int fun(int a,int b,int c),它的功能是:若a,b,c能构成等边三角形函数返回3,若能构成等腰三角形函数返回2,若能构成一般三角形函数返回1,若不能构成三角形函数返回0。 #include <> int fun(int a,int b,int c) { if(a+b>c && b+c>a && a+c>b) { if(a==b && b==c ) return 3; else if(a==b||b==c||a==c) return 2; else return 1; } else return 0; } void main() { int a,b,c,shape; printf("\nInput a,b,c: "); scanf("%d%d%d",&a,&b,&c); printf("\na=%d, b=%d, c=%d\n",a,b,c); shape =fun(a,b,c); printf("\n\nThe shape : %d\n",shape); }

2、编写一个程序,将两个变量的值交换, 例如变量a中的值原为 3,b中的值原为8,程序运行后 a 中的值为8,b中的值为3。 #include <> void fun(int *x,int *y) { int t; t=*x;*x=*y;*y=t } void main() { int a=3,b=8; printf("%d %d\n",a,b); fun(&a,b); printf("%d %d\n",a,b); }

相关文档