1、国家二级 C语言(C 语言基础知识)机试-试卷 3及答案解析(总分:50.00,做题时间:90 分钟)一、选择题(总题数:25,分数:50.00)1.以下叙述中错误的是(分数:2.00)A.C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件B.用 C语言编写的程序称为源程序,它以 ASCII代码形式存放在一个文本文件中C.C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令D.C语言源程序经编译后生成后缀为obj 的目标程序2.下列叙述中错误的是(分数:2.00)A.C程序可以由多个程序文件组成B.一个 C语言程序只能实现一种算法C.C程序可以由一个或多个函
2、数组成D.一个 C函数可以单独作为一个 C程序文件存在3.以下叙述中错误的是(分数:2.00)A.结构化程序由顺序、分支、循环三种基本结构组成B.C语言是一种结构化程序设计语言C.使用三种基本结构构成的程序只能解决简单问题D.结构化程序设计提倡模块化的设计方法4.以下叙述中错误的是(分数:2.00)A.算法正确的程序最终一定会结束B.算法正确的程序可以有零个输入C.算法正确的程序可以有零个输出D.算法正确的程序对于相同的输入一定有相同的结果5.以下选项中关于程序模块化的叙述错误的是(分数:2.00)A.把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块B.可采用自底向上、逐步细化的
3、设计方法把若干独立模块组装成所要求的程序C.把程序分成若干相对独立的模块,可便于编码和调试D.可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序6.C语言源程序名的后缀是(分数:2.00)A.exeB.objC.cD.cp7.关于算法,以下叙述中错误的是(分数:2.00)A.同一个算法对于相同的输入必能得出相同的结果B.一个算法对于某个输入的循环次数是可以事先估计出来的C.某个算法可能会没有输入D.任何算法都能转换成计算机高级语言的程序,并在有限时间内运行完毕8.以下不能用于描述算法的是(分数:2.00)A.程序语句B.E-R图C.伪代码和流程图D.文字叙述9.以下叙述中正确的
4、是(分数:2.00)A.程序的算法只能使用流程图来描述B.NS流程图只能描述简单的顺序结构的程序C.计算机可以直接处理 C语言程序,不必进行任何转换D.结构化程序的三种基本结构是循环结构、选择结构、顺序结构10.以下叙述中正确的是(分数:2.00)A.在 C语言程序设计中,所有函数必须保存在一个源文件中 B.在算法设计时,可以把复杂任务分解成一些简单的子任务C.只要包含了三种基本结构的算法就是结构化程序D.结构化程序必须包含所有的三种基本结构,缺一不可11.以下叙述中正确的是(分数:2.00)A.每个后缀为c 的 C语言源程序都应该包含一个 main函数B.在 C语言程序中,main 函数必须
5、放在其他函数的最前面C.每个后缀为c 的 C语言源程序都可以单独进行编译D.在 C语言程序中,只有 main函数才可单独进行编译12.有以下程序 #include main() int s,t,A=10; double B=6: s=sizeof(A); t=sizeof(B); printf(“d,dn“,s,t); 在 VC6平台上编译运行,程序运行后的输出结果是(分数:2.00)A.4,4B.2,4C.4,8D.10,613.对于一个正常运行的 C程序,以下叙述中正确的是(分数:2.00)A.程序的执行总是从程序的第一个函数开始,在 main函数结束 B.程序的执行总是从 main函数开
6、始,在程序的最后一个函数中结束C.程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束D.程序的执行总是从 main函数开始14.计算机能直接执行的程序是(分数:2.00)A.目标程序B.可执行程序C.汇编程序D.源程序15.以下叙述中正确的是(分数:2.00)A.可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行B.C语言程序将从源程序中第一个函数开始执行C.main的各种大小写拼写形式都可以作为主函数名,如:MAIN,Main 等D.C语言规定必须用 main作为主函数名,程序将从此开始执行16.以下叙述中错误的是(分数:2.00)A.C程序在运行过程中所有计算都
7、以二进制方式进行B.所有 C程序都需要编译链接无误后才能运行C.C程序在运行过程中所有计算都以十进制方式进行D.C程序中字符变量存放的是字符的 ASCII值17.下列叙述中正确的是(分数:2.00)A.在 C程序中 main函数的位置是固定的B.C程序中所有函数之间都可以相互调用C.每个 C程序文件中都必须要有一个 main函数D.在 C程序的函数中不能定义另一个函数18.以下叙述正确的是(分数:2.00)A.C语言程序是由过程和函数组成的B.C语言函数可以嵌套调用,例如:fun(fun(x)C.C语言函数不可以单独编译D.C语言中除了 main函数,其他函数不可作为单独文件形式存在19.C语
8、言程序的模块化通过以下哪个选项来实现(分数:2.00)A.变量B.程序行C.函数D.语句20.以下叙述中正确的是(分数:2.00)A.程序的主函数名除 main外,也可以使用 Main或 mainB.在 C程序中,模块化主要是通过函数来实现的C.程序可以包含多个主函数,但总是从第一个主函数处开始执行D.书写源程序时,必须注意缩进格式,否则程序会有编译错误21.以下叙述中正确的是(分数:2.00)A.C语言程序总是从最前面的函数开始执行B.C语言程序总是从 main函数开始执行C.C语言程序中 main函数必须放在程序的开始位置D.C语言程序所调用的函数必须放在 main函数的前面22.C语言主
9、要是借助以下哪种手段来实现程序模块化(分数:2.00)A.定义常量和外部变量B.使用丰富的数据类型C.使用三种基本结构语句D.定义函数23.以下四个程序中,完全正确的是(分数:2.00)A.#includestdioh main(); main() *Programming *printf(“programming!n“);B.#includestdioh *programming* printf(“programming!n“);C.#includestdioh main() main() *programming* printf(“programming!n“);D.includestdi
10、oh *programming* print(“programming!n“);24.以下关于结构化程序设计的叙述中正确的是(分数:2.00)A.结构化程序使用 goto语句会很便捷B.一个结构化程序必须同时由顺序、分支、循环三种结构组成C.由三种基本结构构成的程序只能解决小规模的问题D.在 C语言中,程序的模块化是利用函数实现的25.以下叙述中正确的是(分数:2.00)A.C程序中的每一行只能写一条语句B.简单 C语句必须以分号结束C.C语言程序中的注释必须与语句写在同一行D.C语句必须在一行内写完国家二级 C语言(C 语言基础知识)机试-试卷 3答案解析(总分:50.00,做题时间:90
11、分钟)一、选择题(总题数:25,分数:50.00)1.以下叙述中错误的是(分数:2.00)A.C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件B.用 C语言编写的程序称为源程序,它以 ASCII代码形式存放在一个文本文件中C.C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令 D.C语言源程序经编译后生成后缀为obj 的目标程序解析:解析:C 语言中的非执行语句例如宏定义命令,在预编译之后替换到代码中,该命令本身也就不存在了,不会转换成二进制的机器指令。由高级语言编写的程序称为“源程序”,把由二进制代码表示的程序称为“目标程序”。C 语言编写的源程序就是
12、一 ASCII的形式存放在文本文件中的。C 源程序经过 C编译程序编译之后生成一个后缀为 obi的二进制文件(称为目标文件),然后由称为“连接程序”(Link)的软件,把此obj 文件与 C语言提供的各种库函数连接起来生成一个后缀为EXE 的可执行文件。2.下列叙述中错误的是(分数:2.00)A.C程序可以由多个程序文件组成B.一个 C语言程序只能实现一种算法 C.C程序可以由一个或多个函数组成D.一个 C函数可以单独作为一个 C程序文件存在解析:解析:算法是指为解决某个特定问题而采取的确定且:有限的步骤。在 C语言中一个算法是用函数来实现的。一个 C语言源程序山许多函数组成,这些函数都是根据
13、实际任务,确定具体的算法,由用户自己编写。C 语言源程序可以放在不同的文件中,同一个源程序中的函数也可放在不同的文件中,所以一个C语言程序可以实现多种算法。3.以下叙述中错误的是(分数:2.00)A.结构化程序由顺序、分支、循环三种基本结构组成B.C语言是一种结构化程序设计语言C.使用三种基本结构构成的程序只能解决简单问题 D.结构化程序设计提倡模块化的设计方法解析:解析:结构化程序由顺序结构、选择结构和循环结构 3种基本结构组成。已经证明,由 3种基本结构组成的算法可以解决任何复杂的问题。由 3种基本结构所构成的算法称为结构化算法;由 3种基本结构所构成的程序称为结构化程序。4.以下叙述中错
14、误的是(分数:2.00)A.算法正确的程序最终一定会结束B.算法正确的程序可以有零个输入C.算法正确的程序可以有零个输出 D.算法正确的程序对于相同的输入一定有相同的结果解析:解析:算法是指为解决某个特定问题而采取的确定且有限的步骤。一个算法应该具有以下 5个特征:有穷性。一个算法包含的操作步骤应该是有限的。也就是说,在执行若干个操作步骤之后,算法将结束,而且每一步都在合理的时间内完成。 确定性。算法中的每一条指令必须有确切的含义,不能有二义性,对于相同的输入必能得出相同的执行结果。 可行性。算法中指定的操作,都可以通过已经验让过可以实现的基本运算执行有限次后实现。 有零个或多个输入。在计算机
15、上实现的算法是用来处理数据对象的,在大多数情况下这些对象需要通过输入来得到。 有一个或多个输出。算法的目的是为了求“解”,这些“解”只有通过输出才能得到。5.以下选项中关于程序模块化的叙述错误的是(分数:2.00)A.把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块B.可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序 C.把程序分成若干相对独立的模块,可便于编码和调试D.可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序解析:解析:如果应用结构化程序设计方法设计程序,那么可采用自顶向下,逐步细化的设计方法把若干独立模块组装成所要求的程序。6.C语
16、言源程序名的后缀是(分数:2.00)A.exeB.objC.c D.cp解析:解析:由 C语言构成的指令序列称为 C源程序,源程序文件的后缀为“c”。源程序经过 C编译程序编译生成后缀为“obj”的二进制文件(称为目杯文件),然后由称为“连接程序”(Link)的软件把目标文件与 C语言提供的各种库函数连接起来,生成后缀为“exe”的可执行文件。7.关于算法,以下叙述中错误的是(分数:2.00)A.同一个算法对于相同的输入必能得出相同的结果B.一个算法对于某个输入的循环次数是可以事先估计出来的C.某个算法可能会没有输入D.任何算法都能转换成计算机高级语言的程序,并在有限时间内运行完毕 解析:解析
17、:算法和程序不同,算法满足以下特性:算法有 5个特性,即有穷性、确定性、可行性、有零个或多个输入以及有一个或多个输出。算法的确定性是指算法中的每一个步骤都必须有明确定义,不允许有模棱两可的解释也不允许有多义性,因此对于相同的输入必有相同的输出,同时可以事先估计算法的时间复杂度,对于有循环的算法,以循环体内的循环次数来估测时间复杂度。8.以下不能用于描述算法的是(分数:2.00)A.程序语句B.E-R图 C.伪代码和流程图D.文字叙述解析:解析:E-R 图为实体一联系图,提供了表示实体型、属性和联系的方法,用来捕述现实世界的概念模型。描述算法的有流程图,盒图,伪代码,文字描述以及程序代码描述。9
18、.以下叙述中正确的是(分数:2.00)A.程序的算法只能使用流程图来描述B.NS流程图只能描述简单的顺序结构的程序C.计算机可以直接处理 C语言程序,不必进行任何转换D.结构化程序的三种基本结构是循环结构、选择结构、顺序结构 解析:解析:结构化程序有三种基本结构循环结构、选择结构、顺序结构,描述算法常见的有文字描述,流程图,盒图,伪代码等。N-S 图为盒图,可以描述比较复杂的程序结构,而计算机不能直接处理 C程序,只能处理二进制代码。10.以下叙述中正确的是(分数:2.00)A.在 C语言程序设计中,所有函数必须保存在一个源文件中 B.在算法设计时,可以把复杂任务分解成一些简单的子任务 C.只
19、要包含了三种基本结构的算法就是结构化程序D.结构化程序必须包含所有的三种基本结构,缺一不可解析:解析:模块化设计思想,就是把复杂的任务分成简单的子任务,心函数或者过程描述子任务,C 语言中一个程序可以包括多个源文件,每个源文件可以有符干个函数,结构化的程序由顺序结构、循环结构和选择结构三种基本结构组成,不一定全要包括这三种结构,而算法不等于程序。11.以下叙述中正确的是(分数:2.00)A.每个后缀为c 的 C语言源程序都应该包含一个 main函数B.在 C语言程序中,main 函数必须放在其他函数的最前面C.每个后缀为c 的 C语言源程序都可以单独进行编译 D.在 C语言程序中,只有 mai
20、n函数才可单独进行编译解析:解析:每一个 C语言的文件或函数都可以单独编译,但只有 main函数的才可以执行。12.有以下程序 #include main() int s,t,A=10; double B=6: s=sizeof(A); t=sizeof(B); printf(“d,dn“,s,t); 在 VC6平台上编译运行,程序运行后的输出结果是(分数:2.00)A.4,4B.2,4C.4,8 D.10,6解析:解析:关键字 sizeof用于测试不同类型变量所占的内存空间,返回所占的字节数。在 VC编译系统中,整型变量占用 4个字节的内存空间,而双精度型变量占用 8个字节的内存空间。13.
21、对于一个正常运行的 C程序,以下叙述中正确的是(分数:2.00)A.程序的执行总是从程序的第一个函数开始,在 main函数结束 B.程序的执行总是从 main函数开始,在程序的最后一个函数中结束C.程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束D.程序的执行总是从 main函数开始 解析:解析:一个 C语言源程序无论包括了多少函数,在正常情况下总是从 main函数开始执行,从 main函数结束。14.计算机能直接执行的程序是(分数:2.00)A.目标程序B.可执行程序 C.汇编程序D.源程序解析:解析:把山高级语言编写的程序称为“源程序”,山二进制代码表示的程序称为“目标程序
22、”(后缀名为obi),由汇编语言编写的程序称为“汇编程序”。为了把源程序转换成机器能接受的目标程序,软件工作者编制了一系列软件,通过这些软件可以把用户按规定语法写出的语句翻译成二进制的机器指令。这种只有翻译功能的软件称为“编译程序”,每种高级语言都有与它对应的编译程序。C 源程序经过 C编译程序编译之后生成一个后缀为obi 的二制进文件(称为目标文件),这个目标程序耍和 C语言的库函数相链接生成一个后缀为exe 的文件,这个文件可以在操作系统中直接执行,称为可执行程序。15.以下叙述中正确的是(分数:2.00)A.可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行B.C语言程序将
23、从源程序中第一个函数开始执行C.main的各种大小写拼写形式都可以作为主函数名,如:MAIN,Main 等D.C语言规定必须用 main作为主函数名,程序将从此开始执行 解析:解析:C 语言规定必须以 main作为主函数名。程序中的 main()是主函数的起始行,也是 C程序执行的起始行。每一个可执行的 C程序都必须有一个且只能有一个主函数。一个 C程序中可以包含任意多个不同的函数,但只能有一个主函数。程序要从 main()函数开始执行,最后在 main()函数中结束。16.以下叙述中错误的是(分数:2.00)A.C程序在运行过程中所有计算都以二进制方式进行B.所有 C程序都需要编译链接无误后
24、才能运行C.C程序在运行过程中所有计算都以十进制方式进行 D.C程序中字符变量存放的是字符的 ASCII值解析:解析:计算机程序都是编译为二进制的代码,计算机才会执行。17.下列叙述中正确的是(分数:2.00)A.在 C程序中 main函数的位置是固定的B.C程序中所有函数之间都可以相互调用C.每个 C程序文件中都必须要有一个 main函数D.在 C程序的函数中不能定义另一个函数 解析:解析:当一个程序作为另一个程序的子程序,并且它自己不独市执行时,这该程序可以没有主函数。主函数的位置不同定,并且可以调用程序中的其他函数,而其他函数不可以调用 main()函数。C 语吉规定,不能在函数的内部定
25、义函数。18.以下叙述正确的是(分数:2.00)A.C语言程序是由过程和函数组成的B.C语言函数可以嵌套调用,例如:fun(fun(x) C.C语言函数不可以单独编译D.C语言中除了 main函数,其他函数不可作为单独文件形式存在解析:解析:在 C语言中,允许函数的嵌套调用,即递归调用。在 C语言中不存在过程的概念,在 C语言中函数允许单独编译,可以作为单独的文件形式存在。19.C语言程序的模块化通过以下哪个选项来实现(分数:2.00)A.变量B.程序行C.函数 D.语句解析:解析:用函数作为程序模块以实现 C程序的模块化,程序有多个函数构成,每个函数可以实现一个具体的功能,实现程序的模块化设
26、计。20.以下叙述中正确的是(分数:2.00)A.程序的主函数名除 main外,也可以使用 Main或 mainB.在 C程序中,模块化主要是通过函数来实现的 C.程序可以包含多个主函数,但总是从第一个主函数处开始执行D.书写源程序时,必须注意缩进格式,否则程序会有编译错误解析:解析:C 语言中任何一个有效的程序都有且只能有一个 main()函数,不能写成其他形式,一个 C程序总是从主函数开始执行,到 main函数体执行完后结束,而不论 main函数在整个程序中的位置如何。而为了代码清晰容易看懂,最好加上注释,这是程序书写风格,与编译无关。21.以下叙述中正确的是(分数:2.00)A.C语言程
27、序总是从最前面的函数开始执行B.C语言程序总是从 main函数开始执行 C.C语言程序中 main函数必须放在程序的开始位置D.C语言程序所调用的函数必须放在 main函数的前面解析:解析:C 语言中一个源程序都有一个且只能有一个 main函数,即主函数;C 语言规定必须用 main作为主函数名。其后的一对圆括号中可以是空的,但不能省略。程序中的 main()是主函数的起始行,也是 C程序执行的起始行。每一个程序都必须有一个且只能有一个主函数。一个 C程序总是从主函数开始执行,到 main函数体执行完后结束,而不论 main函数在整个程序中的位置如何。而调用函数的定义位置和调用没有直接关系。2
28、2.C语言主要是借助以下哪种手段来实现程序模块化(分数:2.00)A.定义常量和外部变量B.使用丰富的数据类型C.使用三种基本结构语句D.定义函数 解析:解析:C 语言用函数实现软件的模块化设计。23.以下四个程序中,完全正确的是(分数:2.00)A.#includestdioh main(); main() *Programming *printf(“programming!n“);B.#includestdioh *programming* printf(“programming!n“); C.#includestdioh main() main() *programming* print
29、f(“programming!n“);D.includestdioh *programming* print(“programming!n“);解析:解析:在选项 A中,main()函数后而的分号是错误的,C 语言在函数名后而不能有分号。在 C语言中注释内容必须放住“*和“*”之间,“*”和“*”必须成对出现,按语法规定在注释之间不可以再嵌套“*和“*”。在选项 C的程序段中注释语句之间有嵌套:所以选项 C不正确。C 语言用#include命令行米实现文件包含的功能。#include 命令行的形式为:#include “文件名”,所以在选项D中 include前面少了一个#符号,因而选项 D不
30、正确。24.以下关于结构化程序设计的叙述中正确的是(分数:2.00)A.结构化程序使用 goto语句会很便捷B.一个结构化程序必须同时由顺序、分支、循环三种结构组成C.由三种基本结构构成的程序只能解决小规模的问题D.在 C语言中,程序的模块化是利用函数实现的 解析:解析:C 语言是结构化程序设计语言,顺序结构、选择结构、循环结构是结构化程序设计的三种基本结构,研究证明任何程序都可以由这三种基本结构组成。仉是程序可以包含一种或者几种结构,不是必须包含全部三种结构。自从提侣结构化设计以来,goto 就成了有争议的语句。首先,由于 goto语句可以灵活跳转,如果不加限制,它的确会破坏结构化设计风格。
31、其次,goto 语句经常带米错误或隐患。它可能跳过了某些对缘的构造、变量的初始化、重要的计算等语句。Goto 语句的使用会使程序容易发生错误并且也不易阅读,所以应避免使用。由三种基本结构构成的程序几乎能解决人部分问题。25.以下叙述中正确的是(分数:2.00)A.C程序中的每一行只能写一条语句B.简单 C语句必须以分号结束 C.C语言程序中的注释必须与语句写在同一行D.C语句必须在一行内写完解析:解析:C 语言的书写格式自由,一行可写多条语句,一条语句也可写在不同行上。C 语言注释是比较自由的,可以写在一行或者多行。C 语言规定每条语句和数据定义的最后必须有一个分弓,分号是 C语句的必要组成部分。