[电子书]谭浩强C程序设计第4版章节专项练习及详解

谭浩强C程序设计第4版章节专项练习及详解
微信关注公众号“冲刺线”开启微信学习时代,还有免费课程相送哦!
作者:冲刺线教育
出版社:冲刺宝典
版次:1 资料更新时间:2018-01-07 14:53
资料格式:电子书 资料大小:47.96 M
页数:331 下载次数:
免费阅读

第1章 程序设计和C语言

选择题

1.C语言编译程序的功能是______。

A.执行一个C语言编写的源程序

B.把C源程序翻译成ASCII码

C.把C源程序翻译成机器代码

D.把C源程序与系统提供的库函数组合成一个二进制执行文件

【答案】C查看答案

【解析】变异程序可以把用户按C寓言规定的语法写出的语句翻译成二进制的机器指令,每条C语句经过编译最终都将转换成二进制的机器指令。

2.计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是______。

A.C语言程序仅可以编译执行

B.C语言程序仅可以解释执行

C.C语言程序既可以编译执行,又可以解释执行

D.以上说法都不对

【答案】A查看答案

【解析】编译型语言编写的程序在执行之前,需要一个专门的编译过程把程序编译成机器语言的文件,比如.exe文件,再次运行时便不需要重新翻译,直接使用编译的结果便可以了,因为翻译只做了一次,运行时不需要翻译,所以编译型语言的程序执行效率高。解释则不同,解释型语言的程序不需要编译,在运行程序的时候才翻译,解释型语言每执行一次便需要翻译一次,效率低。C语言程序属于编译执行类型。

3.以下叙述中错误的是(  )。

A.C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令

B.C程序经过编译、链接步骤之后才能形成一个真正可执行的二进制机器指令文件

C.用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中

D.C语言源程序经编译后生成后缀为.obj的目标程序

【答案】A查看答案

【解析】A项错误,注释语句不会被翻译成二进制的机器指令。C源程序经过C编译程序编译之后生成后缀为.OBJ的二进制文件(称为目标文件),然后由“连接程序”(Link)的软件,把.OBJ文件与各种库函数连接起来生成一个后缀为.EXE的可执行文件。

4.以下叙述中错误的是______。

A.C语言的可执行程序是由一系列机器指令构成的

B.用C语言编写的源程序不能直接在计算机上运行

C.通过编译得到的二进制目标程序需要连接才可以运行

D.在没有安装C语言集成开发环境的机器上不能运行C源程序生成的exe文件

【答案】D查看答案

【解析】A项正确,C语言的可执行程序是由一系列机器指令组成的;BC项正确,用C语言编写的源程序必须经过编译,生成二进制目标代码,再经过连接才能运行;D项错误,C语言经过编译链接后的二进制目标代码可以脱离C语言集成开发环境独立运行。

5.以下叙述正确的是(  )。

A.C编译程序把文件后缀为.c的源程序文件编译成文件后缀为.obj的二进制文件

B.C编译程序把文件后缀为.c的源程序文件编译成文件后缀为.exe的可执行文件

C.C编译程序把文件后缀为.obj的二进制文件编译成文件后缀为.exe的可执行文件

D.链接程序把文件后缀为.c的源程序文件链接成文件后缀为.exe的可执行文件

【答案】A查看答案

【解析】C编译程序把文件后缀为C的源程序文件编译成文件后缀为.obj的二进制文件,链接将一个或多个目标文件与程序用到的库文件连接起来,形成一个可以在操作系统直接运行的执行程序.exe,故排除B、C、D项,A选项正确。

6.计算机能直接执行的程序是 ______ 。

A.源程序

B.目标程序

C.汇编程序

D.可执行程序

【答案】D查看答案

【解析】源程序是由程序设计语言构成的指令序列,需要特定的软件去执行。C语言是一种高级语言,C语言源程序经过编译器编译后,生成.obj文件,然后经过链接生成.exe文件,所以源程序是不能直接执行的。

7.针对简单程序设计,以下叙述的实施步骤正确的是_____。

A.确定算法和数据结构、编码、调试、整理文档

B.编码、确定算法和数据结构、调试、整理文档

C.整理文档、确定算法和数据结构、编码、调试

D.确定算法和数据结构、调试、编码、整理文档

【答案】A查看答案

【解析】简单程序设计的步骤是首先要确定算法和数据结构,然后编码、调试,最后整理相关文档。

8.以下叙述中正确的是______。

A.程序设计的任务就是编写程序代码并上机调试

B.程序设计的任务就是确定所用数据结构

C.程序设计的任务就是确定所用算法

D.以上三种说法都不完整

【答案】D查看答案

【解析】程序设计是指设计、编程、调试程序的方法和过程。因为程序是软件的主体,软件的质量主要通过程序的质量来体现,在软件研究中,程序设计的工作非常重要,内容涉及相关的基本概念、工具、方法及方法学。

9.以下叙述中错误的是(  )。

A.C程序在运行过程中所有计算都以十进制方式进行

B.C程序在运行过程中所有计算都以二进制方式进行

C.所有C程序都需要编译链接无误后才能运行

D.C程序中字符变量存放的是字符的ASCII值

【答案】A查看答案

【解析】C程序在运行过程中所有计算都以二进制方式进行。

10.C语言源程序名的后缀是(  )。

A.C

B.exe

C.obj

D.cp

【答案】A查看答案

【解析】C语言源程序名的后缀为.C

11.关于程序设计基本概念,以下叙述错误的是(  )。

A.计算机可以直接执行由任意高级语言编写的程序

B.高级语言都有与之对应的编译程序或解释程序

C.用任何一种计算机高级语言都可以把算法转换为程序

D.结构化算法可以解决任何复杂的问题

【答案】A查看答案

【解析】A项计算机只能识别机器语言,不能直接识别由高级语言编写的程序。

12.以下关于算法的叙述中错误的是_____。

A.算法可以用伪代码、流程图等多种形式来描述

B.一个正确的算法必须有输入

C.一个正确的算法必须有输出

D.用流程图可以描述的算法可以用任何一种计算机高级语言编写成程序代码

【答案】B查看答案

【解析】一个正确的算法可以有零个或者多个输入,必须有一个或者多个输出。

13.以下叙述中错误的是(  )。

A.算法正确的程序最终一定会结束

B.算法正确的程序可以有零个输出

C.算法正确的程序可以有零个输入

D.算法正确的程序对于相同的输入一定有相同的结果

【答案】B查看答案

【解析】算法的5个特性:①有穷性;②确定性;③可行性;④有零个或多个输入;⑤有一个或多个输出。

14.以下选项中叙述正确的是(  )。

A.C程序中的语句要经过编译才能转换成二进制机器指令

B.算法需要包含所有三种基本结构

C.有些算法不能用三种基本结构来表达

D.简单算法的操作步骤不能超过20步

【答案】A查看答案

【解析】编译就是把高级语言变成计算机可以识别的二进制语言,不经过编译的源程序是不能运行的,A选项正确。算法不一定要包含所有三种基本结构,也可以只包含一种或两种,B选项错误。结构化程序主要由3种基本控制结构组成,循环结构、选择结构、顺序结构,它们组成的算法结构可以解决任何复杂的问题,C选项错误。算法的复杂程序不是由操作步骤多少决定的,而是按时间复杂度与空间复杂度来衡量,D选项错误。

15.流程图是描述算法的很好的工具,一般的流程图中由几种基本图形组成。其中判断框的图形是(  )。

A.菱形

B.长方形

C.平行四边形

D.椭圆型

【答案】A查看答案

【解析】传统的流程图由下图所示的几种基本图形组成。故A项正确。

16.构成C程序的三种基本结构是______。

A.顺序结构、转移结构、递归结构

B.顺序结构、嵌套结构、递归结构

C.顺序结构、选择结构、循环结构

D.选择结构、循环结构、嵌套结构

【答案】C查看答案

【解析】结构化程序由三种基本结构组成:顺序结构、选择结构和循环结构。已经证明,由三种基本结构组成的算法可以解决任何复杂的问题。

17.C语言主要是借助以下______功能来实现程序模块化的。

A.定义函数

B.定义常量和外部变量

C.三种基本结构语句

D.丰富的数据类型

【答案】A查看答案

【解析】C程序的模块化主要通过函数来实现。C语言允许对函数单独进行编译,从而可以实现模块化。

18.以下选项中叙述正确的是(  )。

A.结构化程序的三种基本结构是循环结构、选择结构、顺序结构

B.C语言源程序不编译也能直接运行

C.使用N—S流程图不能描述复杂算法

D.计算机能够直接运行C语言源程序,不必进行任何转换

【答案】A查看答案

【解析】编译就是把高级语言变成计算机可以识别的二进制语言,不经过编译的源程序是不能运行的,B项错误。算法可以用各种描述方法进行描述,N—S流程图把算法的每一步都用一个矩形框来表示,把一个个矩形框按执行的次序连接起来就是一个算法描述,无论算法复杂与否都能用N—S流程图描述,C项错误。C语言源程序需要经过编译和连接生成目标文件和可执行文件后才能运行,D项错误。

19.以下选项中关于程序模块化的叙述错误的是____。

A.把程序分成若干相对独立的模块,可便于编码和调试

B.把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块

C.可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序

D.可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序

【答案】C查看答案

【解析】把一个大程序分解成若干相对独立的子程序,大大提高了程序编制的效率。软件编制人员在进行程序设计时,首先应当集中考虑主程序中的算法,写出主程序后再动手逐步完成子程序的调用。对于这些子程序也可用调试主程序的同样方法逐步完成其下一层,就是自顶向下、逐步细化、模块化的程序设计方法。

20.以下关于结构化程序设计的叙述中正确的是______。

A.一个结构化程序必须同时由顺序、分支、循环三种结构组成

B.结构化程序使用goto语句会很便捷

C.在C语言中,程序的模块化是利用函数实现的

D.由三种基本结构构成的程序只能解决小规模的问题

【答案】C查看答案

【解析】A项错误,一个结构化程序是顺序、分支、循环三种结构的结合,不是必须由此组成;B项错误,程序虽然能够对输入数据的各种情况进行正确的处理,但由于程序中使用goto语句进行流程的跳转,使得程序的执行流程混乱,程序的可读性、可维护性均较差;D项错误,C语言能够编写非常强大的程序。

21.以下叙述中错误的是(  )。

A.使用三种基本结构构成的程序只能解决简单问题

B.结构化程序由顺序、分支、循环三种基本结构组成

C.C语言是一种结构化程序设计语言

D.结构化程序设计提倡模块化的设计方法

【答案】A查看答案

【解析】结构化程序由顺序、分支和循环三种基本结构组成,由三种基本结构组成的算法可以解决任何复杂的问题。由三种基本结构所构成的算法称为结构化算法;由三种基本结构所构成的程序称为结构化程序。

22.以下叙述中正确的是(  )。

A.在算法设计时,可以把复杂任务分解成一些简单的子任务

B.在C语言程序设计中,所有函数必须保存在一个源文件中

C.只要包含了三种基本结构的算法就是结构化程序

D.结构化程序必须包含所有的三种基本结构,缺一不可

【答案】A查看答案

【解析】A项正确,模块化的程序设计方法;B项错误,C语言中,函数可以放在不同的源文件中;CD两项错误,由三种基本结构所构成的程序称为结构化程序,三种基本结构可以任意组合。

23.以下选项中叙述正确的是(  )。

A.使用三种基本结构就可以实现任何复杂算法

B.只要程序包含了三种基本结构中的任意一种,就是结构化程序

C.程序语法错误要在运行时才能发现

D.C语言程序不需要包含main()函数

【答案】A查看答案

【解析】结构化程序主要由循环结构、选择结构、顺序结构三种基本控制结构组成,它们组成的算法结构可以解决任何复杂的问题,A项正确。结构化程序设计是以模块化设计为中心,将待开发的软件系统划分为若干个相互独立的模块,而不是说包含了三种基本结构就是结构化程序,B项错误。程序语法错误是在编译过程中发现的,一般来说编译器只能检查语法和最简单的语义错误,而不检查程序的逻辑错误,C项错误。C程序总是从main函数开始执行,其他函数由main函数直接或间接调用执行,所以C语言程序必须包含main函数,D项错误。

24.结构化程序由顺序、选择、循环三种基本结构组成,以下相关叙述错误的是(  )。

A.三种基本结构不可以嵌套使用

B.顺序结构是按语句在程序中的先后顺序逐条执行,没有分支,没有转移

C.选择结构是根据不同的条件执行不同分支中的语句

D.循环结构是根据条件决定是否重复、重复执行多少次循环体语句

【答案】A查看答案

【解析】结构化程序主要由3种基本控制结构组成,顺序结构是最基本的算法结构,当执行由这些语句构成的程序时,将按这些语句在程序中的先后顺序逐条执行,没有分支,没有转移,没有步骤之间的相互约束,没有对某一步骤的多次使用,完全按照步骤的原有次序依次执行,B选项叙述正确。选择结构根据不同的条件去执行不同分支中的语句,C选项叙述正确。循环结构就是根据各自的条件,使同一组语句重复执行多次,D选项叙述正确。三种结构可以嵌套使用,A选项叙述错误,选择A选项。

25.以下选项中叙述正确的是(  )。

A.复杂任务可以分解成简单子任务

B.C语言程序中的所有函数必须保存在同一个源文件中

C.全部三种基本结构都包含的才是结构化程序

D.C语言程序可以定义多个不同内容的main函数

【答案】A查看答案

【解析】结构化程序设计把一个复杂的问题的求解过程分成阶段进行,即复杂任务可以分解成简单的任务,A项正确。C语言程序中的函数不一定要保存在同一个源文件中,外部函数可以被同程序中其他源文件中调用,B项错误。结构化程序主要由3种基本控制结构组成,循环结构、选择结构、顺序结构,它们组成的算法结构可以解决任何复杂的问题。算法不一定要包含所有三种基本结构,也可以只包含一种或两种,C项错误。C程序由一个或若干个函数构成,程序中有且只能有一个主函数,即main函数,D项错误。

26.以下叙述错误的是(  )。

A.在进行模块化程序设计的时候,应首先完成每个模块的编写调试,再集中考虑主程序中的算法

B.同一程序各模块可由不同人员同时进行编写调试,可提高编写程序的效率

C.模块化的程序设计是采用自顶向下、逐步细化的原则

D.程序的每个模块都可通过三种基本结构实现

【答案】A查看答案

【解析】结构化程序设计把一个复杂问题的求解过程分阶段进行,需要保证自顶向下、逐步细化、模块化设计、结构化编码。进行模块化设计时,首先设计框架,并定义和调试好各个模块之间的输入输出关系,然后完成各个模块的编写调试后再集中编译,模块化的程序设计采用自顶向下、逐步细化的原则,A选项叙述错误,C选项叙述正确。各个模块可以由不同人员同时进行编写调试,提高编写程序的效率,B选项叙述正确。结构化程序主要由3种基本控制结构组成,顺序结构、选择结构、循环结构,这三种基本结构可以解决任何复杂的问题,D选项叙述正确。故选择A选项。

27.以下叙述正确的是(  )。

A.只使用三种基本结构即可解决任何复杂问题

B.C语言程序并不是必须要定义main()函数

C.只要程序包含了任意一种基本结构,就肯定是结构化程序

D.程序中的语法错误只能在运行时才能显现

【答案】A查看答案

【解析】A项正确,程序设计语言仅仅使用顺序、选择和循环三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。B项错误,C语言程序必须要定义main()函数;C项错误,只有同时包含三种基本结构时,程序才是结构化程序;D项错误,程序中的语法错误在编译时能显现。

配套考试学习软件