admin 管理员组

文章数量: 1086019


2024年12月31日发(作者:网络编程应用的本质是什么)

第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

进行文件引用的原因,以下叙述正确的是

A) stdio.h文件中包含标准输入输出函数的函数说明,通过引用此文件以便能正确使用printf、scanf等函数

B) 将stdio.h中标准输入输出函数链接到编译生成的可执行文件中,以便能正确运行

C) 将stdio.h中标准输入输出函数的源程序插入到引用处,以便进行编译链接

D) 将stdio.h中标准输入输出函数的源程序插入到引用处,以便进行编译链接

参考答案:A

【解析】stdio.h文件中包含标准输入输出函数的函数说明,预处理指令#include是使程序可以去该

文件中找到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) 只有简单算法才能在有限的操作步骤之后结束

参考答案:B

【解析】C语言程序可以不包含三种基本结构,也可以包含其中的一种或多种,所以A错误。三种基本结构可以表示

任何复杂的算法,所以C错误。正确的算法,不管是简单算法还是复杂算法都可以在有限的操作步骤之后结束,这是

算法的有穷性,所以D错误。

28、以下叙述中正确的是

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

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

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

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

参考答案:A

【解析】C语言的程序中,函数不一定都放在同一个源文件中,可以分别放在不同源文件中,通过#include命令来引

用,所以B错误。结构化程序可以包含三种基本结构中的一种或几种,所以C,D错误。

29、C语言主要是借助以下哪种手段来实现程序模块化

A) 定义函数

B) 定义常量和外部变量

C) 使用丰富的数据类型

D) 使用三种基本结构语句

参考答案:A

【解析】C语言程序的模块化通过函数来体现,所以选择A。

30、以下叙述中错误的是( )。

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

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

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

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

参考答案:A

【解析】C语言中的非执行语句不会被编译,不会生成二进制的机器指令,所以A)错误。由C语言构成的

指令序列称C源程序,C源程序经过C语言编译程序编译之后生成一个后缀为.OBJ的二进制文件(称为目标文件);

最后要由"连接程序"把此.OBJ文件与C语言提供的各种库函数连接起来生成一个后缀为.EXE的可执行文件。

31、下列叙述中错误的是( )。

A) C程序可以由多个程序文件组成

B) 一个C语言程序只能实现一种算法

C) C程序可以由一个或多个函数组成

D) 一个C函数可以单独作为一个C程序文件存在

参考答案:B

【解析】在一个C语言程序中可以进行多种算法的实现,对算法的个数没有规定,所以B)错误。

32、以下四个程序中,完全正确的是( )。

A) #include

main();

{/*/ programming /*/

printf("programming!n");}

B) #include

main()

{/* programming */

printf("programming!n"); }

C) #include

main()

{/*/* programming */*/

printf("programming!n"); }

D) include

main()

{/* programming */

printf("programming!n"); }

参考答案:B

【解析】C语言中注释语句的注释方法是: /* 注释内容 */ 或 //注释一行。所以A)与C)错误,D)选项中预编译

命令include前丢掉了"#"号。所以选择B)。

33、对于一个正常运行的C程序,以下叙述中正确的是

A) 程序的执行总是从main函数开始,在程序的最后一个函数中结束

B) 程序的执行总是从程序的第一个函数开始, 在main函数结束

C) 程序的执行总是从main函数开始

D) 程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束

参考答案:C

【解析】任何一个C程序都是从主函数main开始,至主函数main结束,所以选择C选项。

34、以下叙述中正确的是

A) C语言规定必须用main作为主函数名,程序将从此开始执行

B) 可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行

C) C语言程序将从源程序中第一个函数开始执行

D) main的各种大小写拼写形式都可以作为主函数名,如:MAIN,Main等

参考答案:A

【解析】C语言中的主函数唯一为main()函数不能任意指定,所以B选项错误。C语言从主函数main()开始,到主函数

main()结束,所以C选项错误。主函数必须写成小写的main,不能混淆大小写,所以D选项错误。

35、以下叙述中错误的是

A) 算法正确的程序可以有零个输入

B) 算法正确的程序最终一定会结束

C) 算法正确的程序可以有零个输出

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

参考答案:C

【解析】算法的特征:①有穷性。一个算法(对任何合法的输入)在执行有穷步后能够结束,并且在有限的时间内完

成。②确定性。算法中的每一步都有确切的含义。③可行性。算法中的操作能够用已经实现的基本运算执行有限次

来实现。④输入:一个算法有零个或者多个输入,零个输入就是算法本身确定了初始条件。⑤输出:一个算法有一个

或者多个输出,以反映出数据加工的结果。所以C选项错误。

36、以下叙述中正确的是

A) C语句必须在一行内写完

B) C程序中的每一行只能写一条语句

C) C语言程序中的注释必须与语句写在同一行

D) 简单C语句必须以分号结束

参考答案:D

【解析】C语句可以跨行来写,但是必须以分号结束,所以A选项错误。C程序中的一行可以有多条语句,所以B选项错

误。C语言中的注释语句可以与原语句放在一行也可以不放在一行,所以C选项错误。

37、以下叙述中正确的是

A) 用C语言编写的程序只能放在一个程序文件中

B) C程序书写格式严格,要求一行内只能写一个语句

C) C程序中的注释只能出现在程序的开始位置和语句的后面

D) C程序书写格式自由,一个语句可以写在多行上

参考答案:D

【解析】C语言编写的程序可以放置于多个程序文件中,所以A错误。C程序中的一行可以有多条语句,所以B错误。C

语言中的注释语句可以与原语句放在一行也可以不放在一行,所以C错误。

38、以下关于C语言的叙述中正确的是

A) C语言的数值常量中夹带空格不影响常量值的正确表示

B) C语言中的变量可以在使用之前的任何位置进行定义

C) 在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致

D) C语言中的注释不可以夹在变量名或关键字的中间

参考答案:D

【解析】C语言的数值常量中不能夹带空格,所以A错误。C语言中的变量都必须先定义再使用,对变量的定义通常

放在函数体内的前部,但也可以放在函数外部或复合语句的开头,不能随便放置,所以B错误。在C语言中运算符两

侧的运算数据类型可以不一致,且结果与精度较高的保持一致,所以C错误。

39、下列叙述中错误的是

A) C程序可以由多个程序文件组成

B) 一个C语言程序只能实现一种算法

C) C程序可以由一个或多个函数组成

D) 一个C函数可以单独作为一个C程序文件存在

参考答案:B

【解析】一个C语言程序可以实现多种算法,可以由多个程序文件共同构成。一个C语言程序可以由一个或多个函

数组成,一个C函数可以单独作为一个C程序文件存在,被包含到其他程序中。所以选择B选项。

40、C语言源程序名的后缀是

A) .C

B) .exe

C) .obj

D) .cp

参考答案:A

【解析】C语言源程序名的后缀是.C,目标文件的扩展文件是.obj,可执行文件的扩展名是.exe。

41、下列叙述中正确的是

A) C程序中所有函数之间都可以相互调用

B) 在C程序中main函数的位置是固定的

C) 在C程序的函数中不能定义另一个函数

D) 每个C程序文件中都必须要有一个main函数

参考答案:C

【解析】C程序中主函数不能被其他函数调用,所以A选项错误。main函数可以放在程序开始,也可以放在中间,也可

以放在最后,位置不固定,但程序执行时必须从main函数开始,所以B选项错误。在C程序的函数中不能定义另一个

函数,可以声明或调用另一个函数,所以C选项正确。每个C程序中必须包含一个main函数,但不一定是每个C程序文

件中必须有,用户单独编写的某个函数也可以存储为一个C程序文件,所以D选项错误。

42、以下叙述正确的是

A) C语言函数可以嵌套调用,例如:fun(fun(x))

B) C语言程序是由过程和函数组成的

C) C语言函数不可以单独编译

D) C语言中除了main函数,其他函数不可作为单独文件形式存在

参考答案:A

【解析】C语言程序是由函数组成的,所以B错误。C语言函数可以单独进行编译,所以C错误。每个C程序中必须包含

一个main函数,但不一定是每个C程序文件中必须有,用户单独编写的某个函数也可以存储为一个C程序文件,所以

D错误。

43、有以下程序

#include

main()

{ int a=0, b=0;

/* 给a赋值 a=10;

b=20; 给b赋值 */

printf("a+b=%dn",a+b); /* 输出计算结果 */

}

程序运行后的输出结果是

A) 出错

B) a+b=30

C) a+b=10

D) a+b=0

参考答案:D

【解析】注释语句可以在一行也可以在多行,用/*……*/或//表示,。它不参与程序的运行,所以a与b的值仍然为0,

所以打印的结果为a+b=0。

44、以下叙述中正确的是

A) N-S流程图只能描述简单的顺序结构的程序

B) 程序的算法只能使用流程图来描述

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

D) 计算机可以直接处理C语言程序,不必进行任何转换

参考答案:C

【解析】N-S流程图是可以描述循环结构、选择结构、顺序结构等多种结构的程序,所以A选项错误。程序的算法可

以用流程图、伪代码、N-S结构图等方法表示,所以B选项错误。计算机只能处理二进制表示的目标程序,不能直接执

行由C语言编写的源程序,所以D选项错误。

45、以下叙述中正确的是

A) 书写源程序时,必须注意缩进格式,否则程序会有编译错误

B) 程序的主函数名除main外,也可以使用Main或_main

C) 程序可以包含多个主函数,但总是从第一个主函数处开始执行

D) 在C程序中,模块化主要是通过函数来实现的

参考答案:D

解析】C语言的源程序中对缩进没有要求,所以A选项错误。C语言中区分大小写,main函数不能写成Main或_main,

所以B选项错误。一个C程序有且只有一个主函数,所以C选项错误。

46、以下叙述中正确的是

A) 用户自己定义的函数只能调用库函数

B) 实用的C语言源程序总是由一个或多个函数组成

C) 不同函数的形式参数不能使用相同名称的标识符

D) 在C语言的函数内部,可以定义局部嵌套函数

参考答案:B

【解析】A选项中,"用户自己定义的函数只能调用库函数"描述是不正确的,也可以调用自定义函数;C选项中,

对于不同函数的形式参数可以使用相同名称的标识符;D选项中,关于函数的定义不可以嵌套,但函数的调用可

以嵌套。因此B选项正确。

47、以下叙述中正确的是

A) C语言程序所调用的函数必须放在main函数的前面

B) C语言程序总是从最前面的函数开始执行

C) C语言程序中main函数必须放在程序的开始位置

D) C语言程序总是从main函数开始执行

参考答案:D

【解析】C语言所调用的函数可以放在调用它的函数前,也可以放在调用它的函数后,所以A错误。C语言程序总是

从main函数开始执行,所以B错误。main函数的位置可以放在开始,也可以放在中间,也可以放在最后,所以C错误。

48、以下叙述中正确的是

A) 每个后缀为.C的C语言源程序都可以单独进行编译

B) 每个后缀为.C的C语言源程序都应该包含一个main函数

C) 在C语言程序中,main函数必须放在其他函数的最前面

D) 在C语言程序中,只有main函数才可单独进行编译

参考答案:A

【解析】一个普通的C函数可以单独作为一个C的程序文件存在被包含到其他程序中,每个后缀为.C的C语言源程

序都可以单独进行编译,所以B、D错误。main函数可以放在程序的开始,中间,最后,所以C错误。

49、简单程序设计步骤中不包括

A) 编码

B) 确定算法

C) 安装编译程序

D) 调试

参考答案:C

【解析】简单程序设计步骤为:确定数据结构、确定算法、编码、调试、整理文档,不包括安装编译程序,故

答案为C选项。

50、关于程序中的注释,以下叙述正确的是

A) 注释的内容必须放在一对/* 和 */之间

B) 注释必须置于所说明的语句前或语句后

C) 注释中间可以嵌套另一个注释

D) 注释内容错误会导致编译出错

参考答案:A

【解析】程序中,注释可以出现在程序的任何位置,B选项错误;注释中间不能嵌套另一个注释,C选项错误;

注释内容不影响程序编译,D选项错误,答案为A选项。

51、以下叙述正确的是

A) C程序总是以main()作为程序执行的起始行

B) main()函数若不带参数,其后面的一对圆括号可省略

C) 函数体内的定义语句和可执行语句允许任意穿插出现

D) C语言中的语句之间必须用分号作为分隔符

参考答案:A

【解析】main()函数后面的括号告诉编译器这是一个函数,不可以省略,排除B选项;在复合语句中,不仅可以

有执行语句,还可以有定义语句,定义语句应该出现在执行语句的前面,故排除C选项;C语言中的某些语句可

以不用分号,例如if语句,故D选项错误;答案为A选项。

52、以下叙述中错误的是

A) C程序必须由一个或一个以上的函数组成

B) 函数调用可以作为一个独立的语句存在

C) 若函数有返回值,必须通过return语句返回

D) 函数形参的值也可以传回给对应的实参

参考答案:D

【解析】形参是函数定义时由用户定义的形式上的变量,实参是函数调用时,主调函数为被调函数提供的原始

数据。在C语言中,实参向形参传送数据的方式是"值传递"。因此D选项正确。

53、以下叙述中错误的是

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

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

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

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

参考答案:B

【解析】C程序在运行过程中的所有计算都以二进制方式进行,所以B选项错误。

54、我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令。关于转换以下说法错误的是

A) 一条C语句可能会被转换成零条机器指令

B) 一条C语句可能会被转换成多条机器指令

C) 一条C语句对应转换成一条机器指令

D) 某种类型和格式的C语句被转换成机器指令的条数是固定的

参考答案:C

【解析】一个C语句经过编译后产生若干条机器指令。声明部分不是语句,不产生机器指令,只是对有关数据的声

明。而且固定类型和格式的C语句被转换成机器指令的条数固定。所以选择C选项。

55、以下选项中不合法的标识符是( )。

A) &a

B) FOR

C) print

D) 00

参考答案:A

【解析】C语言中标识符由字母、下划线、数字组成,且开头必须是字母或下划线。另外,关键字不能作为标

识符。因为C语言中区分大小写,所以B)选项中的"FOR"可以作为标识符来用。A)选项中含有非法字符&,所以

选择A)。

56、按照C语言规定的用户标识符命名规则,不能出现在标识符中的是( )。

A) 大写字母

B) 下划线

C) 数字字符

D) 连接符

参考答案:D

【解析】C语言中标识符由字母、下划线、数字组成,且开头必须是字母或下划线。所以D)选项中的连接符不

合法。

57、以下选项中,能用作用户标识符的是( )。

A) 0

B) 8 8

C) void

D) unsigned

参考答案:A

【解析】C语言中标识符由字母、下划线、数字组成,且开头必须是字母或下划线。另外,关键字不能作

为标识符。B)中以数字8开头,所以错误。C)与D)中用的是关键字void与unsigned,所以错误。

58、下列定义变量的语句中错误的是

A) int _int;

B) double int_;

C) char For;

D) float US$;

参考答案:D

【解析】C语言规定,变量命名必须符合标识符的命名规则。D选项中包含了非法字符"$",所以错误。标识符由字母、

数字或下划线组成,且第一个字符必须是大小写英文字母或者下划线,而不能是数字。大写字符与小写字符被认为

是两个不同的字符,所以For不是关键字for。

59、以下选项中,不合法的C语言用户标识符是

A) a_bB) AaBcC) a—bD) _1

参考答案:C

【解析】C语言规定,变量命名必须符合标识符的命名规则,C选项中包含了非法字符"-",所以错误。标识符由字母、

数字或下划线组成,且第一个字符必须是大小写英文字母或者下划线,而不能是数字。

60、阅读以下程序

#include

main()

{ int case ;

floatprintF;

printf("请输入2个数:");

scanf("%d %f",&case,&printF );

printf("%d %fn",case,printF );

}

该程序在编译时产生错误,其出错原因是

A) 定义语句出错,case是关键字,不能用作用户自定义标识符

B) 定义语句出错,printF不能用作用户自定义标识符

C) 定义语句无错,scanf不能作为输入函数使用

D) 定义语句无错,printf不能输出case的值

参考答案:A

【解析】C语言中标识符的定义中区分大小写,所以printF与printf不一样,可以作为标识符。而case是C语言中的关

键字,不能作为变量名。scanf是标准的输入函数,printf是标准的输出函数,所以选择A选项。

61、以下选项中合法的标识符是

A)1_ _B) 1-1C) 1_1D) _11

参考答案:D

【解析】C语言中的标识符由下划线、字母和数字组成,且必须以下划线或字母开始,所以只有D选项正确。

62、以下选项中不属于C语言标识符的是

A) 常量

B) 用户标识符

C) 关键字

D) 预定义标识符

参考答案:A

【解析】常量是指在程序运行过程中其值不能被改变的量,如5、1.0、字符'a'等。C语言的标识符分为3类:关键字、

预定义标识符和用户标识符。常量不属于标识符,所以选择A。

63、以下叙述中正确的是

A) 语言中的关键字不能作变量名,但可以作为函数名

B) 标识符的长度不能任意长,最多只能包含16个字符

C) 标识符总是由字母、数字和下划线组成,且第一个字符不得为数字

D) 用户自定义的标识符必须"见名知义",如果随意定义,则会出编译错误

参考答案:C

解析】C语言中的关键字即不能做变量名也不能做用户函数名,所以A错误。标识符的命名规则,即由下划线字母数

字组成,且必须以下划线和字母开始,也不能和关键字一致。不同C语言规定标识符的有效长度可能会不同,但没有

限制最大长度,所以B错误。用户定义的标识符只要满足标识符命名规则没有特殊要求,不必一定"见名知义",所以

D错误。

64、C语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述正确的是

A) 关键字可用作用户标识符,但失去原有含义

B) 预定义标识符可用作用户标识符,但失去原有含义

C) 在标识符中大写字母和小写字母被认为是相同的字符

D) 用户标识符可以由字母和数字任意顺序组成

参考答案:B

【解析】关键字不可用作C语言的标识符,所以A错误。在标识符中大写字母与小写字母作为不同字符处理,所以C

错误。标识符由下划线、字母、数字组成,且必须以下划线和字母开始,所以D错误。

65、关于C语言的变量名,以下叙述正确的是

A) 变量名不可以与关键字同名

B) 变量名不可以与预定义标识符同名

C) 变量名必须以字母开头

D) 变量名是没有长度限制的

参考答案:A

【解析】合法的标识符由字母(大、小写均可)、数字和下划线组成,并且必须以字母或下划线开头。关键字是

指被C语言保留的,不能用作其他用途的标识符,它们在程序中都代表着固定的含义,用户不可重新定义,A

选项正确。预定义标识符是系统已经有过定义的标识符,用户可以重新定义,所以可以作为变量名,B选项错误。

变量名除了以字母开头以外,还可以以下划线开头,C选项错误。变量名没有长度限制,但不可超过编译器可以

辨识的范围,D选项错误。

66、以下选项中可用作C语言中合法用户标识符的是

A) _123 B) voidC) -abcD) 2a

参考答案:A

【解析】合法的标识符由字母(大、小写均可)、数字和下划线组成,并且必须以字母或下划线开头,A选项正

确,void为关键字,B选项错误。C选项以"-"开头,不合法。D选项由数字开头,不合法。关键字是指被C语言保

留的,不能用作其他用途的一些标识符,它们在程序中都代表着固定的含义。


本文标签: 程序 函数 C语言 选项 结构