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