第1章 C语言概述
1、以下叙述中错误的是()。
A) 使用三种基本结构构成的程序只能解决简单问题
B) 结构化程序由顺序、分支、循环三种基本结构组成
C) C语言是一种结构化程序设计语言
D) 结构化程序设计提倡模块化的设计方法
参考答案:A
【解析】使用顺序,选择(分支),循环三种基本结构构成的程序可以解决所有问题,而不只是解决简单问题,所以A)错误。
2、流程图是描述算法的很好的工具,一般的流程图中由几种基本图形组成。其中输入输出框的图形是
A) 平行四边形
B) 长方形
C) 椭圆型
D) 菱形
参考答案:A
【解析】算法可以用各种描述方法进行描述,目前最常用的有3种:伪代码、流程图和N-S结构图。传统的流程图由下图所示的几种基本图形组成。A选项正确。
3、以下叙述错误的是
A) 在进行模块化程序设计的时候,应首先完成每个模块的编写调试,再集中考虑主程序中的算法
B) 同一程序各模块可由一组人员同时进行编写调试,可提高编写程序的效率
C) 模块化的程序设计是采用自顶向下、逐步细化的原则
D) 程序的每个模块都可通过三种基本结构实现
参考答案:A
【解析】结构化程序设计把一个复杂问题的求解过程分阶段进行,需要保证自顶向下、逐步细化、模块化设计、结构化编码。进行模块化设计时,首先设计框架,并定义和调试好各个模块之间的输入输出关系,然后完成各个模块的编写调试后再集中编译,模块化的程序设计采用自顶向下、逐步细化的原则,A选项叙述错误,C选项叙述正确。各个模块可以由不同人员同时进行编写调试,提高编写程序的效率,B选项叙述正确。结构化程序主要由3种基本控制结构组成,顺序结构、选择结构、循环结构,这三种基本结构可以解决任何复杂的问题,D选项叙述正确。故选择A选项。
4、以下选项中叙述正确的是
A) 函数体必须由 { 开始
B) C程序必须由main语句开始
C) C程序中的注释可以嵌套
D) C程序中的注释必须在一行完成
参考答案:A
【解析】函数体是函数首部下面的花括号内的部分,所以函数体必须由{开始,A选项正确。一个源程序文件可以包括预处理命令、全局声明、函数定义,程序总是从main函数开始执行的,不是main语句,B选项错误。C程序中的允许两种注释,以//开头的单行注释;以/*开始,以*/结束的块式注释,D选项错误。函数可以嵌套,注释不能嵌套,C选项错误。
5、以下选项中叙述正确的是
A) 结构化程序的三种基本结构是循环结构、选择结构、顺序结构
B) C语言源程序不编译也能直接运行
C) 使用N-S流程图不能描述复杂算法
D) 计算机能够直接运行C语言源程序,不必进行任何转换
参考答案:A
【解析】结构化程序主要由3种基本控制结构组成,循环结构、选择结构、顺序结构,它们组成的算法结构可以解决任何复杂的问题,A选项正确。编译就是把高级语言变成计算机可以识别的二进制语言,不经过编译的源程序是不能运行的,B选项错误。算法可以用各种描述方法进行描述,N-S流程图把算
法的每一步都用一个矩形框来表示,把一个个矩形框按执行的次序连接起来就是一个算法描述,无论算法复杂与否都能用N-S流程图描述,C选项错误。C语言源程序需要经过编译和连接生成目标文件和可执行文件后才能运行,D选项错误。
6、以下选项中叙述正确的是
A) 使用三种基本结构就可以实现任何复杂算法
B) 只要程序包含了三种基本结构中的任意一种,就是结构化程序
C) 程序语法错误要在运行时才能发现
D) C语言程序不需要包含main()函数
参考答案:A
【解析】结构化程序主要由3种基本控制结构组成,循环结构、选择结构、顺序结构,它们组成的算法结构可以解决任何复杂的问题,A选项正确。结构化程序设计是以模块化设计为中心,将待开发的软件系统划分为若干个相互独立的模块,在设计其中一个模块时,不会受到其它模块的牵连,因而可将原来较为复杂的问题化简为一系列简单模块的设计,而不是说包含了三种基本结构就是结构化程序,B选
项错误。程序语法错误是在编译过程中发现的,一般来说编译器只能检查语法和最简单的语义错误,而不检查程序的逻辑错误,C选项错误。一个C程序由一个或若干个函数构成,而程序中有且只能有一个主函数,即main函数,C程序总是从main函数开始执行,其他函数由main函数直接或间接调用执行,所以C语言程序必须包含main函数,D选项错误。
7、以下选项中叙述正确的是
A) C程序中的语句要经过编译才能转换成二进制机器指令
B) 算法需要包含所有三种基本结构
C) 有些算法不能用三种基本结构来表达
D) 简单算法的操作步骤不能超过20步
参考答案:A
【解析】编译就是把高级语言变成计算机可以识别的二进制语言,不经过编译的源程序是不能运行的,A 选项正确。算法不一定要包含所有三种基本结构,也可以只包含一种或两种,B选项错误。结构化程序主要由3种基本控制结构组成,循环结构、选择结构、顺序结构,它们组成的算法结构可以解
决任何复杂的问题,C选项错误。算法的复杂程序不是由操作步骤多少决定的,而是按时间复杂度与空间复杂度来衡量,D选项错误。
8、以下选项中叙述正确的是
A) 复杂任务可以分解成简单子任务
B) C语言程序中的所有函数必须保存在同一个源文件中
C) 全部三种基本结构都包含的才是结构化程序
D) C语言程序可以定义多个不同内容的main函数
参考答案:A
【解析】结构化程序设计把一个复杂的问题的求解过程分成阶段进行,即复杂任务可以分解成简单子任务,A选项正确。C语言程序中的函数不一定要保存在同一个源文件中,外部函数可以被同程序中其他源文件中调用,B选项错误。结构化程序主要由3种基本控制结构组成,循环结构、选择结构、顺序结构,它们组成的算法结构可以解决任何复杂的问题。算法不一定要包含所有三种基本结构,也可以只包含一种或两种,C选项错误。C程序由一个或若干个函数构成,程序中有且只能有一个主函数,即main函数,D选项错误。
9、以下叙述中错误的是
A) 书写风格良好的程序执行效率高
B) 书写风格良好的程序易读性好
C) C程序可以在一行上写多条语句
D) C程序允许将一条语句分写在多行上
参考答案:A
【解析】书写风格良好的程序易读性好,方便团队合作,分模块来完成复杂的程序设计,B选项叙述正确。但是书写风格与程序执行效率无关,程序执行效率与程序的数据结构有关,由算法的时间复杂度和空间复杂度决定,A选项叙述错误。C语言程序书写规范中,良好的书写习惯中一般一行上写一条语句,这样方便阅读,但是一行写多条语句是符合C程序编写规则的,C选项叙述正确。C程序允许将一条较长的语句分写在多行,D选项叙述正确。叙述中错误的是A选项,故选择A选项。
10、结构化程序由顺序、选择、循环三种基本结构组成,以下相关叙述错误的是
A) 三种基本结构不可以嵌套使用
B) 顺序结构是按语句在程序中的先后顺序逐条执行,没有分支,没有转移
C) 选择结构是根据不同的条件执行不同分支中的语句
D) 循环结构是根据条件决定是否重复、重复执行多少次循环体语句
参考答案:A
【解析】结构化程序主要由3种基本控制结构组成,顺序结构是最基本的算法结构,当执行由这些语句构成的程序时,将按这些语句在程序中的先后顺序逐条执行,没有分支,没有转移,没有步骤之间的相互约束,没有对某一步骤的多次使用,完全按照步骤的原有次序依次执行,B选项叙述正确。选择结构根据不同的条件去执行不同分支中的语句,C选项叙述正确。循环结构就是根据各自的条件,使同一组语句重复执行多次,D选项叙述正确。三种结构可以嵌套使用,A选项叙述错误,选择A选项。
11、以下可以将任意一个两位整数n的个位数与十位数对换的表达式为
A) (n-n/10*10)*10+n/10
B) n-n/10*10+n/10
C) n/10+(n-n/10)
D) (n-n/10)*10+(n/10)
参考答案:A
【解析】A选项n/10得到十位数字,n-n/10得到个位数字,将个位数乘以10加上十位数字,(n-n/10*10)*10+n/10实现将任意一个两位整数个位数与十位数对换,A选项正确。B选项n-n/10*10得到个位数字,n/10为十位数字,n-n/10*10+n/10实现两位整数个位数与十位数之和,B选项错误。C选项n/10+(n-n/10)=n,不能实现题目中要求,C选项错误。D选项n/10是十位数字,n-n/10为原两位整数减去十位数字,不是个位数字,D选项错误。
12、以下叙述正确的是
A) 计算机只接收由0和1代码组成的二进制指令或数据
B) 计算机只接收由0和1代码组成的十进制指令或数据
C) 计算机可直接接收并运行C源程序
D) 计算机可直接接收并运行任意高级语言编写的源程序
参考答案:A
【解析】计算机认识自己的母语--机器语言,即0和1代码组成的二进制指令或数据,故A选项正确,B选项错误。C语言是一种高级语言,计算机不能直接运行C源程序和高级语言编写的源程序,C和D选项错误。
13、以下叙述正确的是
A) C编译程序把文件后缀为.c的源程序文件编译成文件后缀为.obj的二进制文件
B) C编译程序把文件后缀为.c的源程序文件编译成文件后缀为.exe的可执行文件
C) C编译程序把文件后缀为.obj的二进制文件编译成文件后缀为.exe的可执行文件
D) 链接程序把文件后缀为.c的源程序文件链接成文件后缀为.exe的可执行文件
参考答案:A
【解析】C编译程序把文件后缀为.c的源程序文件编译成文件后缀为.obj的二进制文件,链接将一个或多个目标文件与程序用到的库文件连接起来,形成一个可以在操作系统直接运行的执行程序.exe,故排除B,C,D选项,答案选A选项。
14、以下叙述正确的是
A) 循环结构、选择结构、顺序结构都是结构化程序的基本结构
B) 计算机可以直接执行C语言程序,不需要做任何转换
C) 过于复杂的算法不能使用N-S流程图描述
D) 只有不超过20步操作步骤的算法才是简单算法
参考答案:A
【解析】计算机只能识别机器语言,C语言是高级语言,计算机无法直接执行,排除B选项;N-S流程图是复杂流程算法的描述手段,因此C选项错误;算法的复杂与简单,不能用操作步骤数来衡量,D选项错误;循环结构、选择结构、顺序结构都是结构化程序的基本结构,答案为A选项。
15、下面叙述正确的是
A) 任何复杂任务都可以分解成简单子任务
B) C语言程序的所有函数只能处于同一个源文件中WEr
C) 包含全部三种基本结构的程序才是结构化程序
D) C语言程序可以定义多个不同内容的main函数
参考答案:A
【解析】C语言程序的函数可以处于不同的源文件,B选项错误;包含一种基本结构的程序就是结构化程序,C 选项错误;C语言只可以定义一个main函数,D选项错误,答案为A选项。
16、算法应当具有的特性不包括
A) 可行性
B) 有穷性
C) 确定性
D) 美观性
参考答案:D
【解析】一个算法应该具有以下五个重要的特征:有穷性,确定性,输入,输出以及可行性,故答案选D选项。
17、下面叙述正确的是
A) C语言程序的语句经过编译和链接转换成二进制机器指令后才能执行
B) 任何算法需要包含三种基本结构中的两种以上
C) 复杂算法是不能用三种基本结构来表达的
D) 只要是简单算法,它的操作步骤都不会超过20步
参考答案:A
【解析】算法共有三种逻辑结构,即顺序结构、条件结构和循环结构,一个算法可以含有这三种逻辑结构的任意组合,B选项错误;复杂算法可以用三种基本结构表达,C选项错误;简单算法操作步骤不超过5步,D选项错误。答案选A。
18、以下叙述正确的是
A) 只使用三种基本结构即可解决任何复杂问题
B) C语言程序并不是必须要定义main()函数
C) 只要程序包含了任意一种基本结构,就肯定是结构化程序
D) 程序中的语法错误只能在运行时才能显现
参考答案:A
【解析】C语言程序必须要定义main()函数,B选项错误;只有同时包含三种基本结构时,程序才是结构化程序,C选项错误;程序中的语法错误在编译时能显现,排除D选项,答案选A。
19、关于程序设计基本概念,以下叙述错误的是
A) 计算机可以直接执行由任意高级语言编写的程序
B) 高级语言都有与之对应的编译程序或解释程序
C) 用于任何一种计算机高级语言都可以把算法转换为程序
D) 结构化算法可以解决任何复杂的问题
参考答案:A
【解析】计算机只能识别机器语言,不能直接识别由高级语言编写的程序,答案为A选项。
20、在源程序的开始处加上
#include <stdio.h>
进行文件引用的原因,以下叙述正确的是
A) stdio.件中包含标准输入输出函数的函数说明,通过引用此文件以便能正确使用printf、scanf等函数
B) 将stdio.h中标准输入输出函数链接到编译生成的可执行文件中,以便能正确运行
C) 将stdio.h中标准输入输出函数的源程序插入到引用处,以便进行编译链接
D) 将stdio.h中标准输入输出函数的源程序插入到引用处,以便进行编译链接
参考答案:A
【解析】stdio.件中包含标准输入输出函数的函数说明,预处理指令#include<stdio.h>是使程序可以去该文件中到printf,scanf等函数以便使用,因此答案为A选项。
21、以下关于结构化程序设计的叙述中正确的是
A) 结构化程序使用goto语句会很便捷
B) 在C语言中,程序的模块化是利用函数实现的
C) 一个结构化程序必须同时由顺序、分支、循环三种结构组成
D) 由三种基本结构构成的程序只能解决小规模的问题
参考答案:B
【解析】滥用goto语句将使程序的流程毫无规律,可读性差,对于初学者来说尽量不要使用,所以A错误。一个结构化程序可以包含顺序、分支、循环结构中的一种或多种,所以C错误。由三种基本结构构成的程序可以解决任何复杂的问题,所以D错误。
22、计算机能直接执行的程序是
A) 源程序
B) 目标程序
C) 汇编程序
D) 可执行程序
参考答案:D
【解析】计算机能直接执行的程序是二进制的可执行程序,扩展名为.exe。所以选择D选项。
23、以下选项中关于程序模块化的叙述错误的是
A) 可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序
B) 把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块
C) 把程序分成若干相对独立的模块,可便于编码和调试
D) 可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序
参考答案:A
【解析】程序模块化思想中,可以采用自顶向下、逐步细化的方法。所以选项A中"自底向上"的说法是错误的。
24、关于算法,以下叙述中错误的是
A) 某个算法可能会没有输入
B) 某个算法可能会没有输入
C) 一个算法对于某个输入的循环次数是可以事先估计出来的
D) 任何算法都能转换成计算机高级语言的程序,并在有限时间内运行完毕
参考答案:D
【解析】算法的特征:①有穷性。一个算法(对任何合法的输入)在执行有穷步后能够结束,并且在有限的时间内完成。②确定性。算法中的每一步都有确切的含义。③可行性。算法中的操作能够用已经实现的基本运算执行有限次来实现。④输入:一个算法有零个或者多个输入,零个输入就是算法本身确定了初始条件。⑤输出:一个算法有一个或者多个输出,以反映出数据加工的结果。所以选择D选项。
25、C语言程序的模块化通过以下哪个选项来实现
A) 变量
B) 函数
C) 程序行
D) 语句
参考答案:B
【解析】C语言程序的模块化通过函数来体现,所以选择B。
26、以下不能用于描述算法的是
A) 文字叙述
B) 程序语句
C) 伪代码和流程图
D) E-R图
参考答案:D
【解析】算法的描述有伪代码、流程图、N-S结构图等。E-R是实体联系模型。所以选择D。
27、以下叙述中正确的是
A) 程序必须包含所有三种基本结构才能成为一种算法
B) 我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令
C) 如果算法非常复杂,则需要使用三种基本结构之外的语句结构,才能准确表达
D) 只有简单算法才能在有限的操作步骤之后结束基础c语言代码
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论