1、程序设计语言基础练习试卷 1及答案与解析 1 _语言不是面向对象的程序设计语言。 ( A) Java ( B) C+ ( C) Smalltalk ( D) Fortran 2 程序设计语言可划分为低级语言和高级语言两大类。与高级语言相比,用低级语言开发的程序,其 (1),但在 (2)的场合,还经常全部或部分地使用低级语言。在低级语言中,汇编语言与机器语言十分接近,它使用了 (3)来提高程序的可读性。高级语言有很多种类,其中, PROLOG是一种 (4)型语言,它具有很强的 (5)能力。 ( A)运行效率低, 开发效率低 ( B)运行效率低,开发效率高 ( C)运行效率高,开发效率低 ( D)
2、运行效率高,开发效率高 ( A)对时间和空间有严格要求 ( B)并行处理 ( C)事件驱动 ( D)电子商务 ( A)简单算术表达式 ( B)助记符号 ( C)伪指令 ( D)定义存储语句 ( A)命令 ( B)交互 ( C)函数 ( D)逻辑 ( A)控制描述 ( B)输入 /输出 ( C)函数定义 ( D)逻辑推理 7 在高级语言中,子程序调用语句中的 (1)在个数、类型、顺序方面都要与子程序说明中给出的 (2)相一致。用 高级语言编写的程序经编译后产生的程序叫 (3)。用不同语言编写的程序产生 (3)后,可用 (4)连接在一起生成机器可执行的程序。在机器里真正执行的是 (5)。 ( A)
3、实际参数 ( B)条件参数 ( C)形式参数 ( D)局部参数 ( A)实际参数 ( B)条件参数 ( C)形式参数 ( D)局部参数 ( A)程序库 ( B)目标程序 ( C)机器指令代码 ( D)模块 ( A)编译程序 ( B)目标程序 ( C)链接程序 ( D)解释程序 ( A)源程序 ( B)目标程序 ( C)过程 ( D)机器指令代码 12 程序语言的语句从功能上大体可分为 _两大类。 ( A)声明语句和可执行语句 ( B)简单语句和复杂语句 ( C)顺序语句和判定语句 ( D)程序语句和注释语句 13 若程序中定义了局部变量与全局变量,则 _。 ( A)在函数内只能访问局部变量,但
4、不能访问全局变量 ( B)局部变量与全局变量的名字不得相同 ( C)一个函数被多次调用时,其定义的局部变量必定分配同一个存储单元 ( D)函数中定义的局部变量与全局变量同名时,在函数内引用的是局部变量 14 结构化程序中的基本结构不包括 _。 ( A)嵌套 ( B)顺序 ( C)循环 ( D)选择 15 已知 n为一正整数,在下面的循环语句中,循环体的重复次数约为 _。 s=0; i=1; while (i n) i=i*2; s=s+i; ( A) n-1 ( B) n/2 ( C) (n-1)2 ( D) 1og2n 16 在 C语言中,若有定义 “int a10; ”,则 _不能表示 a
5、1的地址。 ( A) a+l ( B) &a0=1 ( C) a+ ( D) &a1 17 C程序代码 “while(c=getchar()!=a)putchar(c); ”中存在 _错误。 ( A)调用 ( B)语法 ( C)逻辑 ( D)运行 18 _不属于程序语言翻译软件。 ( A)编译程序 ( B)解释程序 ( C)汇编程序 ( D)编辑程序 19 _是正确的叙述。 ( A)解释方式比编译方式更适用于规模较大的程序 ( B)解释方式下生成的目标代码长,编译方式下生成的目标代码短 ( C)解释方式下不生成源程序的目标代码 ( D)解释方式只能用于批处理 20 由多个源文件组成的 C程序,
6、经过编辑、预处理、编译、链接等阶段才能生成最终的可执行程序。此过程中,在 _阶段可以发现被调用的函数未定义。 ( A)编辑和预处理 ( B)预处理 ( C)编译 ( D)链接 21 若程序 P经编译并链接后可执行,则 _。 ( A) P是正确的程序 ( B) P中没有语法错误 ( C) P中没有逻辑错误 ( D) P在运行中不会出错 22 需编译运行的程序,其 _错误在编译时不能发现。 ( A)逻辑 ( B)语法 ( C)括号不匹配 ( D)关键字拼写 23 程序员一般用 _软件编写和修改程序。 ( A)预处 ( B)文本编辑 ( C)链接 ( D)编译 24 若循环体执行的次数为 m,则在
7、do-while型循环中,循环条件的执行次数为(1),在 while-do型循环中,判断循环条件的次数为 (2)。 ( A) m-1 ( B) m ( C) m+1 ( D) 2m ( A) m-1 ( B) m ( C) m+1 ( D) 2m 26 在下面的程序代码中, a是整型全局变量, b是整型局部变量, x是整数形参,若调用 com()时以引用调用的方式传递信息,则输出结果为 (1);若调用 com()进以传值的方式传递信息,则输出结果为 (2)。( A) 8 ( B) 12 ( C) 14 ( D) 16 ( A) 8 ( B) 12 ( C) 14 ( D) 16 28 某 C语
8、言程序中, x是一个浮点型变量, m是一个值为正整数的整型常量,表达式 x%m (x被 m除取余数 )在 (1)时会报错,这是一种 (2)错误。 ( A)编译 ( B)预处 ( C)编辑 ( D)运行 ( A)词法 ( B)语法 ( C)语义 ( D)运行 程序设计语言基础练习试卷 1答案与解析 1 【正确答案】 D 【试题解析】 Fortran主要用于数值计算,不是面向对象语言。其余三个选项都是面向对象语言。选项 D为正确答案。 【知识模块】 程序设计语言基础 2 【正确答案】 C 【知识模块】 程序设计语言基础 3 【正确答案】 A 【知识模块】 程序设计语言基础 4 【正确答案】 B 【
9、知识模块】 程序设计语言基础 5 【正确答案】 D 【知识模块】 程序设计语言基础 6 【正确答案】 D 【试题解析】 程序设计语言可划 分为低级语言和高级语言两大类。与高级语言相比,用低级语言开发的程序,其运行效率高,开发效率低 (第 1空的正确答案为选项 C)。 但在对时间和空间有严格要求的场合,还经常全部或部分地使用低级语言。第 2空的正确答案为选项 A。 在低级语言中,汇编语言与机器语言十分接近,为了克服机器语言难读、难编、难记和易出错的缺点,人们用与代码指令实际含义相近的英文缩写词、字母和数字等符号来取代指令代码 (如用 ADD表示运算符号 “+”的机器代码 ),于是就产生了汇编语言
10、。所以说,汇编语言是一种用助记符表示的仍然面向机器的计算 机语言。第 3空的正确答案为选项 B。 高级语言有很多种类,其中, PROLOG语言是人工智能与专家系统领域最著名的 逻辑程序设计语言,它具有很强的逻辑推理能力。第 4空的正确答案为选项 D,第 5空的正确答案为选项 D。 【知识模块】 程序设计语言基础 7 【正确答案】 A 【知识模块】 程序设计语言基础 8 【正确答案】 C 【知识模块】 程序设计语言基础 9 【正确答案】 B 【知识模块】 程序设计语言基础 10 【正确答案】 C 【知识模块】 程序设计语言基础 11 【正确答案】 D 【试题解析】 在编程时,参数是传递信息的一种
11、方式。调用语句中的参数为实际参数,子程序说明中的参数为形式参数。在调用时,实际参数与形式参数的个数、类型、顺序都要一致。第 1空的正确答案为选项 A,第 2空的正确答案为选项 C。 用高级语言编写的程序经编译后产生的程序叫目标程序 (第 3空的正确答案为选项 B)。 用不同语言编写的程序产生目标程序后,可用链接程序连接在一起 (第 4空的正确答案为选项 C),生成机器可执行的程序。 在机器里真正执行的是机器指令代码 (第 5空的正确答案为选项 D)。 【知识模块】 程序设计语言基础 12 【正确答案】 A 【试题解析】 声明语句用于声明处理的数据,可执行语句对数据运算进行处理。从功能上来看,程
12、序语言的语句从功能上大体可分为声明语句和可执行语句两大类。本题正确答案为选项 A。 【知识模块】 程序设计语言基础 13 【正确答案】 A 【试题解析】 变量的作用域是引用变量的代码范围,可以是局部的,也可以是全局的。全局变量的作用域是整个程序或文件,在函数内完全可以 访问全局变量。所以,选项 A的说法是错误的。在程序运行过程中,每次调用一个函数,都会为该函数的运行创建活动记录,其中包括函数运行所需要的数据信息以及控制信息,在函数运行结束后,则释放这些活动记录。如果函数多次运行,那么定义的局部变量不一定分配同一个存储单元。所以,选项 C的说法错误。局部变量的作用域是定义该变量的函数。根据最近嵌
13、套原则,如果全局变量与局部变量的名称相同,那么,在局部变量的作用域中,引用的是局部变量。选项 D的说法正确,相应,选项 B的说法错误。 【知识模块】 程序设计语言基础 14 【正确 答案】 A 【试题解析】 结构化程序中的基本结构包括顺序结构、循环结构和选择结构。不包括嵌套结构。所以,选项 A为本题正确答案。 【知识模块】 程序设计语言基础 15 【正确答案】 D 【试题解析】 i是循环控制变量,其值从 1开始,到大于等于 n时退出循环。 i在循环体中的变化是每次乘以 2,所以,假设 k为循环次数,那么,需要 2k =n时才会退出循环。因此, k =1og2n时循环终止。本题正确答案为选项 D
14、。 【知识模块】 程序设计语言基础 16 【正确答案】 D 【试题解析】 在 C语言中,数组名作为地址常量,表示数组中的第一个元素的地址。本题正确答案为选项 D。 【知识模块】 程序设计语言基础 17 【正确答案】 B 【试题解析】 在这段代码中,左括号有 4个,右括号有 3个,括号不匹配,属于表达式形式的错误,也就是语法错误。本题正确答案为选项 B。 【知识模块】 程序设计语言基础 18 【正确答案】 D 【试题解析】 对于选项 A,编译程序把用高级程序设计语言书写的源程序,翻译成等价的计算机汇编语言或机器语言的目标程序的翻译程序。对于选项 B,解释程序是高级语言 翻译程序的一种,它将源语言
15、 (如 BASIC)书写的源程序作为输入,解释一句后就提交计算机执行一句,并不形成目标程序。对于选项 C,汇编程序用于把汇编语言解释成机器语言 (生成目标文件 )。对于选项 D,编辑程序用于创建、编写和修改源程序代码。它不属于程序语言编译软件。本题正确答案为选项 D。 【知识模块】 程序设计语言基础 19 【正确答案】 D 【试题解析】 对于选项 A,编译程序把用高级程序设计语言书写的源程序,翻译成等价的计算机汇编语言或机器语言的目标程序的翻译程序。对于选项 B,解释程序是高级语言翻 译程序的一种,它将源语言 (如 BASIC)书写的源程序作为输入,解释一句后就提交计算机执行一句,并不形成目标
16、程序。对于选项 C,汇编程序用于把汇编语言解释成机器语言 (生成目标文件 )。对于选项 D,编辑程序用于创建、编写和修改源程序代码。它不属于程序语言编译软件。本题正确答案为选项 D。 【知识模块】 程序设计语言基础 20 【正确答案】 D 【试题解析】 对于选项 A和选项 B,编辑阶段创建和修改源程序,预处理阶段分析宏定义,以及替换宏引用。对于选项 C,编译过程把源程序翻译为与之等价的目标程序。在此过程 中,要进行词法,语法和语义分析,生成中间代码,进行代码优化,以及生成目标代码。对于选项 D,链接是将各个编译单元中的变量和函数引用与定义进行绑定,保证程序中的变量和函数都有对应的实体。所以,被
17、调用函数未定义,是在此过程中发现的。选项 D为正确答案。 【知识模块】 程序设计语言基础 21 【正确答案】 B 【试题解析】 一般的程序错误,可大致分为语法错误和语义错误。 语法错误可以看作是编码出现了违反语言规则的错误,一般编译或者链接时,都会报错。所以,如果程序编译链接可执行,那么,可以说明它没有语法 错误。选项 B的说法是正确的,为本题正确答案。 语义错误,也可以叫做逻辑错误,也就是说代码完全符合语言规范,不会出现编译 /链接的错误,但是,在逻辑上有错误。所以,编译链接正确,也不能保证没有逻辑错误,所以,选项 C的说法错误。而如果一个程序有逻辑错误,就不能说它是正确的,也不能保证它运行
18、没有错误。所以,选项 A和选项 D的说法也都是错误的。 【知识模块】 程序设计语言基础 22 【正确答案】 A 【试题解析】 语法错误可以看作是编码出现了违反语言规则的错误,一般编译或者链接时,都会报错。语义错误,也 可以叫做逻辑错误,也就是说代码完全符合语言的规范,不会出现编译 /链接的错误,但是,在逻辑上有错误。所以,选项 A为正确答案。 【知识模块】 程序设计语言基础 23 【正确答案】 B 【试题解析】 程序员所编写的源程序是文本文件,可以使用文本编辑程序进行编辑和修改。本题正确答案为选项 B。 【知识模块】 程序设计语言基础 24 【正确答案】 C 【知识模块】 程序设计语言基础 2
19、5 【正确答案】 B 【试题解析】 在 while-do型循环中,首先判断循环条件,然后确定是否 执行循环体,所以,循环条件的计算次数总会比循环体多一次。所以,如果若循环体执行的次数为 m,则在 do-while型循环中,循环条件的执行次数为 m+1。第 2空的正确答案为选项 C。在 do-while型循环中,首先执行循环体,然后判断循环条件,决定是否进行下一次循环。所以,循环条件的计算次数与循环体少的计算次数相同。所以,第 2空的正确答案为选项 B。 【知识模块】 程序设计语言基础 26 【正确答案】 D 【知识模块】 程序设计语言基础 27 【正确答案】 B 【试题解析】 在引用调用方式
20、传递参数时,被调用函数执行过程中,针对形参的修改将反映到实参变量中。针对本题,引用调用方式下, com的执行语句对 x的修改结果就是 a的值,也就是说, a的值在 com中改为 8,也就是 y=4+4, com()的返回值为 8,所以输出为 16(8+8)。第 1空的正确答案为选项 D。在值调用方式传递参数时,函数执行过程中对形参的修改不影响实参的值。针对本题,在值调用方式下,在 com中修改 x的值,不会影响 a,所以输出为 12(4+8)。第 2空的正确答案为选项 B。 【知识模块】 程序设计语言基础 28 【正确答案】 A 【知识模块】 程序设计语言基础 29 【正确答案】 D 【试题解析】 对于第 1个空, %要求参与运算的两个数都是整数,而题目中的操作数,其中有一个是浮点数,不符合 %运算规则,也就是运算对象与运算符不匹配,属于语义错误。而在编译过程中,将进行静态语义的分析,会发现这个问题。所以,第 1个空的正确答案为选项 A,第 2个空的正确答案为选项 D。 【知识模块】 程序设计语言基础