强化习题
1C语言编译程序的功能是( )。
A.执行一个C语言编写的源程序
B.把C源程序翻译成ASCII码
C.把C源程序翻译成机器代码
D.把C源程序与系统提供的库函数组合成一个二进制执行文件
【答案】C
【解析】编译程序的功能是将“高级语言”翻译为“机器语言”。每条C语言语句,经过编译最终都将转换成二进制的机器指令。答案选择C选项。
2计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是( )。
A.C语言程序仅可以编译执行
B.C语言程序仅可以解释执行
C.C语言程序既可以编译执行,又可以解释执行
D.以上说法都不对
【答案】A
【解析】编译执行是指程序执行前需要一个专门的编译过程把程序编译成机器语言的文件,再次运行时不需要重新翻译,执行效率高;解释执行是指每个语句都是执行的时候才翻译,执行效率低。用C语言编写的程序必须经过编译器编译后,转换为二进制的机器指令来运行。答案选择A选项。
3构成C程序的三种基本结构是( )。
A.顺序结构、转移结构、递归结构
B.顺序结构、嵌套结构、递归结构
C.顺序结构、选择结构、循环结构
D.选择结构、循环结构、嵌套结构
【答案】C
【解析】结构化程序由三种基本结构组成:顺序结构、选择结构和循环结构。已经证明,由三种基本结构组成的算法可以解决任何复杂的问题。答案选择C选项。
4以下叙述中错误的是( )。
A.C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
B.C程序经过编译、链接步骤之后才能形成一个真正可执行的二进制机器指令文件
C.用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中
D.C语言源程序经编译后生成后缀为.obj的目标程序
【答案】A
【解析】A项错误,注释语句不会被翻译成二进制的机器指令。C源程序经过C编译程序编译之后生成后缀为.obj的二进制文件(称为目标文件),然后由“链接程序”(Link)的软件把.obj文件与各种库函数连接起来生成一个后缀为.exe的可执行文件。答案选择A选项。
5流程图是描述算法的很好的工具,一般的流程图中由几种基本图形组成。其中判断框的图形是( )。
A.菱形
B.长方形
C.平行四边形
D.椭圆型
【答案】A
【解析】传统的流程图由下图所示的几种基本图形组成。
答案选择A选项。
6以下叙述中错误的是( )。
A.C语言的可执行程序是由一系列机器指令构成的
B.用C语言编写的源程序不能直接在计算机上运行
C.通过编译得到的二进制目标程序需要连接才可以运行
D.在没有安装C语言集成开发环境的机器上不能运行C源程序生成的exe文件
【答案】D
【解析】A项正确,C语言的可执行程序是由一系列机器指令组成的;BC项正确,用C语言编写的源程序必须经过编译,生成二进制目标代码,再经过连接才能运行;D项错误,C语言经过编译链接后的二进制目标代码可以脱离C语言集成开发环境独立运行。答案选择D选项。
7计算机能直接执行的程序是( )。
A.源程序
B.目标程序
C.汇编程序
D.可执行程序
【答案】D
【解析】C语言是一种高级语言,C语言源程序经过C语言编译程序编译之后,生成一个后缀为.obj的二进制文件(称为目标程序),最后还要由“连接程序”(Link)软件,把此.obj文件与C语言提供的各种库函数连接在一起,生成后缀.exe的可执行程序。汇编程序是由汇编语言写成的程序,计算机不能直接执行。计算机能直接执行的程序是经过编译器处理转换为机器语言的程序。答案选择D选项。
8以下叙述正确的是( )。
A.C编译程序把文件后缀为.c的源程序文件编译成文件后缀为.obj的二进制文件
B.C编译程序把文件后缀为.c的源程序文件编译成文件后缀为.exe的可执行文件
C.C编译程序把文件后缀为.obj的二进制文件编译成文件后缀为.exe的可执行文件
D.链接程序把文件后缀为.c的源程序文件链接成文件后缀为.exe的可执行文件
【答案】A
【解析】C编译程序把文件后缀为C的源程序文件编译成文件后缀为.obj的二进制文件,链接将一个或多个目标文件与程序用到的库文件连接起来,形成一个可以在操作系统直接运行的执行程序.exe,故排除B、C、D项,答案选择A选项。
9以下叙述正确的是( )。
A.循环结构、选择结构、顺序结构都是结构化程序的基本结构
B.计算机可以直接执行C语言程序,不需要做任何转换
C.过于复杂的算法不能使用N-S流程图描述
D.只有不超过20步操作步骤的算法才是简单算法
【答案】A
【解析】计算机只能识别机器语言,C语言是高级语言,计算机无法直接执行,B项错误;N-S流程图是复杂流程算法的描述手段,C项错误;算法的复杂与简单,由算法的思想和时空复杂度决定的,不能用操作步骤数来衡量,D项错误;循环结构、选择结构、顺序结构都是结构化程序的基本结构,A项正确。答案选择A选项。
10下面叙述正确的是( )。
A.C语言程序的语句经过编译和链接转换成二进制机器指令后才能执行
B.任何算法需要包含三种基本结构中的两种以上
C.复杂算法是不能用三种基本结构来表达的
D.只要是简单算法,它的操作步骤都不会超过20步
【答案】A
【解析】B项错误,算法共有三种逻辑结构,即顺序结构、条件结构和循环结构,一个算法可以含有这三种逻辑结构的任意组合;C项错误,复杂算法可以用三种基本结构表达;D项错误,简单算法操作步骤不超过5步。答案选择A选项。
11C语言主要是借助以下( )功能来实现程序模块化的。
A.定义函数
B.定义常量和外部变量
C.三种基本结构语句
D.丰富的数据类型
【答案】A
【解析】C程序的模块化主要通过函数来实现。C语言允许对函数单独进行编译,从而可以实现模块化。答案选择A选项。
12关于程序设计基本概念,以下叙述错误的是( )。
A.计算机可以直接执行由任意高级语言编写的程序
B.高级语言都有与之对应的编译程序或解释程序
C.用任何一种计算机高级语言都可以把算法转换为程序
D.结构化算法可以解决任何复杂的问题
【答案】A
【解析】A项计算机只能识别机器语言,不能直接识别由高级语言编写的程序。结构化的程序是由三种基本的结构组成的:顺序结构、选择结构和循环结构,使用这三种结构能够解决任何问题。答案选择A选项。
13以下选项中叙述正确的是( )。
A.结构化程序的三种基本结构是循环结构、选择结构、顺序结构
B.C语言源程序不编译也能直接运行
C.使用N-S流程图不能描述复杂算法
D.计算机能够直接运行C语言源程序,不必进行任何转换
【答案】A
【解析】编译就是把高级语言变成计算机可以识别的二进制语言,不经过编译的源程序是不能运行的,B项错误。算法可以用各种描述方法进行描述,N-S流程图把算法的每一步都用一个矩形框来表示,把一个个矩形框按执行的次序连接起来就是一个算法描述,无论算法复杂与否都能用N-S流程图描述,C项错误。C语言源程序需要经过编译和连接生成目标文件和可执行文件后才能运行,D项错误。答案选择A选项。