模块化程序设计练习题及答案
- 格式:doc
- 大小:31.50 KB
- 文档页数:7
模块计时考试题及答案一、单项选择题(每题2分,共10题)1. 模块化编程的主要优点是什么?A. 提高代码的可读性B. 降低程序的运行效率C. 增加程序的复杂性D. 减少代码的可维护性答案:A2. 在模块化编程中,模块之间如何实现通信?A. 通过全局变量B. 通过模块内部的函数C. 通过模块间的接口D. 通过直接访问其他模块的内部数据答案:C3. 下列哪个不是模块化设计的原则?A. 模块独立性B. 模块的高内聚性C. 模块的低耦合性D. 模块的复杂性答案:D4. 模块化编程中,模块的划分依据是什么?A. 功能B. 个人喜好C. 程序的大小D. 程序的运行时间答案:A5. 在模块化编程中,哪个因素可以提高程序的可维护性?A. 模块的独立性B. 模块的复杂性C. 模块的耦合性D. 模块的冗余性答案:A6. 模块化编程中,模块的复用性主要依赖于什么?A. 模块的独立性B. 模块的内聚性C. 模块的耦合性D. 模块的大小答案:A7. 在模块化编程中,模块的封装性主要指的是什么?A. 模块内部数据的隐藏B. 模块内部功能的隐藏C. 模块内部数据和功能的隐藏D. 模块内部数据和功能的公开答案:C8. 模块化编程中,模块的接口设计应该遵循什么原则?A. 尽可能复杂B. 尽可能简单C. 尽可能多的功能D. 尽可能少的功能答案:B9. 模块化编程中,模块的测试通常包括哪些方面?A. 功能测试B. 性能测试C. 安全性测试D. 所有选项答案:D10. 模块化编程中,模块的文档编写应该包含哪些内容?A. 模块的功能描述B. 模块的接口定义C. 模块的使用示例D. 所有选项答案:D二、多项选择题(每题3分,共5题)1. 模块化编程的优点包括哪些?A. 提高代码的可读性B. 提高程序的运行效率C. 降低程序的可维护性D. 提高程序的可扩展性答案:ABD2. 在模块化编程中,模块之间的通信方式包括哪些?A. 通过全局变量B. 通过模块内部的函数C. 通过模块间的接口D. 通过直接访问其他模块的内部数据答案:C3. 模块化设计的原则包括哪些?A. 模块独立性B. 模块的高内聚性C. 模块的低耦合性D. 模块的复杂性答案:ABC4. 模块化编程中,模块的划分依据通常是什么?A. 功能B. 个人喜好C. 程序的大小D. 程序的运行时间答案:A5. 在模块化编程中,哪些因素可以提高程序的可维护性?A. 模块的独立性B. 模块的复杂性C. 模块的耦合性D. 模块的冗余性答案:A三、简答题(每题5分,共2题)1. 请简述模块化编程中模块的独立性对程序开发的重要性。
《Python程序设计》习题与答案python教材答案《Python程序设计》习题与答案第一章:Python基础题目1:计算器程序设计答案:代码可以如下所示:```pythondef add(a, b):return a + bdef subtract(a, b):return a - bdef multiply(a, b):return a * bdef divide(a, b):if b == 0:return "Error: Division by zero is not allowed"return a / b```题目2:变量和数据类型答案:Python中的常见数据类型有整型(int)、浮点型(float)、字符串型(str)、布尔型(bool)等。
题目3:条件语句答案:条件语句用于根据不同的条件执行不同的代码块。
常见的条件语句有if语句、if-else语句和if-elif-else语句。
题目4:循环语句答案:循环语句用于多次执行相同或类似的代码块。
常见的循环语句有for循环和while循环。
第二章:函数和模块题目1:函数的定义和调用答案:函数是一段可重复使用的代码块,用于完成特定的任务。
函数的定义可以通过def关键字来实现,而函数的调用则通过函数名和参数完成。
题目2:内置函数答案:Python提供了丰富的内置函数,如print()、len()、input()等。
这些内置函数可以直接使用,无需额外定义。
题目3:模块的导入和使用答案:Python模块是一组相关的函数、类和变量的集合,用于组织、重用和扩展代码。
模块的导入可以使用import语句,然后通过模块名和函数名来调用模块中的内容。
第三章:文件操作题目1:文件的打开和关闭答案:文件操作前需要通过open()函数打开文件,在完成操作后需要使用close()函数关闭文件。
例如:```pythonfile = open("test.txt", "w")# 执行文件操作file.close()```题目2:读取文件内容答案:使用Python的read()函数可以读取整个文件的内容,或者使用readline()函数读取一行内容。
node.js程序设计考试题
Node.js程序设计考试题可以涉及多个方面,包括基本概念、
模块化、异步编程、事件驱动、文件操作、网络编程等内容。
以下
是一些可能包含在考试题中的问题和答案:
1. 什么是Node.js?它的特点是什么?
Node.js是建立在Chrome V8引擎之上的JavaScript运行时环境,可以用于快速构建可扩展的网络应用。
其特点包括非阻塞I/O、事件驱动、轻量高效等。
2. 什么是模块化?Node.js中如何实现模块化?
模块化是指将程序分解为独立的部分,每个部分称为模块,有
助于提高代码的可维护性和复用性。
在Node.js中,可以使用
require和module.exports来实现模块化。
3. 什么是回调函数?在Node.js中如何处理回调地狱问题?
回调函数是一种常见的异步编程方式,用于处理异步操作的结
果。
在Node.js中,回调地狱问题可以通过使用Promise、
async/await等方式来解决,以避免层层嵌套的回调函数。
4. 如何在Node.js中进行文件操作?
Node.js提供了fs模块来进行文件操作,包括读取文件、写入文件、修改文件、删除文件等操作。
5. Node.js中如何实现网络编程?
Node.js提供了net和http模块来实现网络编程,可以创建TCP或者HTTP服务器,也可以发送HTTP请求等。
以上是一些可能涉及到的Node.js程序设计考试题,希望能够帮助到你。
如果还有其他问题,欢迎继续提出。
程序设计题库及答案详解一、选择题1. 下列哪个选项不是面向对象编程的三大特性?A. 封装B. 继承C. 多态D. 过程化答案:D2. 在Java中,以下哪个关键字用于定义类?A. classB. interfaceC. enumD. struct答案:A3. 以下哪个是Python中的循环结构?A. forB. whileC. both A and BD. none of the above答案:C二、填空题1. 程序设计中的________是用来定义数据的属性和方法的集合。
2. 在C语言中,________关键字用于声明一个函数。
答案:void 或者 int(根据函数返回类型而定)3. 在JavaScript中,________方法用于将字符串转换为数字。
答案:parseInt 或 parseFloat(根据转换类型而定)三、简答题1. 请简述什么是递归函数,并给出一个简单的递归函数示例。
答案:递归函数是指在函数内部调用自身的函数。
递归函数通常用于解决可以分解为相同问题的子问题的问题。
以下是一个计算阶乘的递归函数示例:```cint factorial(int n) {if (n == 0) return 1;return n * factorial(n - 1);}```2. 解释什么是堆栈,并说明它们在程序设计中的应用。
答案:堆栈是两种不同的数据结构。
堆是一种优先队列,其中最大或最小元素可以在对数时间内被找到。
栈是一种遵循后进先出(LIFO)原则的数据结构。
在程序设计中,堆栈广泛应用于内存管理、函数调用、表达式求值、回溯算法等领域。
四、编程题1. 编写一个函数,实现字符串的反转。
```pythondef reverse_string(s):return s[::-1]```2. 给定一个整数数组nums,请找出数组中最长递增子序列的长度。
答案:```pythondef lengthOfLIS(nums):if not nums: return 0dp = [1] * len(nums)for i in range(1, len(nums)):for j in range(i):if nums[i] > nums[j]:dp[i] = max(dp[i], dp[j] + 1)return max(dp)```五、案例分析题1. 描述一个场景,其中使用多线程可以提高程序的效率,并解释为什么。
第四章模块化程序设计一、选择题1.以下说法正确的是()。
(A)C程序总是从第一个定义的函数开始执行。
(B) C程序中被调用的函数必须在main函数中定义。
(C) C程序总是从main函数开始执行。
(D) C程序中的main函数必须放在程序的开始部分。
2.设函数的定义格式为fun (float x ){……},则该函数的类型是()。
(A) void类型(B) int类型(C) float类型(D) double类型3.函数调用表达式fun ( (exp1,exp2),(exp3,exp4,exp5) )中的参数个数是()。
(A) 1(B) 2(C) 4(D) 54.以下程序的输出结果是()。
(A) -1 (B) 0 (C) 1 (D) 2int fun(int a,int b) {int c=a; if (a>b) c=1; else if (a==b) c=0; else c= -1; return(c);}main( ) { int x=2,y; y=fun(x,x+1); printf(“%d”,y); }5.以下程序的输出结果是()。
(A) 0 (B) 1 (C) 5 (D) 6fun(int a ,int b, int c) { c=a*b; a=b; b=a;}main( ){int c=1; fun(2,3,c); printf(“%d\n”,c);}6.以下程序的输出结果是()。
(A) 5.5 (B) 3.0 (C) 4.0 (D) 8.25double fun(int n) { int i; double s=1.0; for(i=1; i<=n; i++) s=s+1.0/i; return(s); }main( ){ int i,m=3; float a=0; for(i=0; i<m; i++) a=a+fun(i); printf(“%f\n”,a); }7.以下程序的输出结果是()。
程序设计试卷及答案一、选择题(每题2分,共20分)1. 下列哪个选项是正确的?A. 程序设计是一种艺术形式B. 程序设计是一种科学C. 程序设计只涉及硬件的操作D. 程序设计只需要机器语言的理解和应用2. C语言中的函数可以返回多个值吗?A. 可以B. 不可以3. 以下哪个关键字用于定义常量?A. constB. staticC. volatileD. extern4. 以下哪个选项是正确的?A. 集成开发环境(IDE)只用于调试程序代码B. 集成开发环境(IDE)只用于编译程序代码C. 集成开发环境(IDE)用于编写、调试和编译程序代码D. 集成开发环境(IDE)只用于编写程序代码5. 在C语言中,以下哪个运算符用于获取变量的地址?A. &B. *C. ->D. sizeof6. 下列哪个选项是正确的?A. 结构体是由相同类型的数据组成B. 结构体是 C 语言中的一种数据类型C. 结构体可以包含函数D. 结构体只能包含基本数据类型的成员7. 以下哪个关键字用于定义函数的形参类型?A. voidB. intC. externD. typedef8. 哪个是指针的正确声明方式?A. int *p;B. pointer p;C. p int;D. ptr int;9. 标识符的命名规则中,以下哪个选项是错误的?A. 可以使用数字作为标识符的开头B. 可以使用下划线作为标识符的开头C. 标识符可以由字母、数字和下划线组成D. 标识符长度可以任意长短10. 哪个是正确的if语句的用法?A. if (条件) 语句;B. if 条件语句;C. if 条件 then 语句;D. if (条件) then 语句;二、填空题(每空2分,共20分)1. C语言中,定义带有两个整型参数和整型返回值的函数的声明应该是:`int add(int a, int b);`2. 在C语言中,通过`malloc()`函数动态分配内存之后,应使用`free()`函数释放内存。
单元四:模块化程序设计1、当调用函数时,实参是一个数组名,则向函数传送的是()A、数组的长度B、数组的首地址C、数组每一个元素的地址D、数组每个元素中的值2、下列程序的执行结果为()float f1(float x){ float k=2;k=k*x;return k;}void main(){ float b=4.3;printf("%.1f",f1(b));}A、8.6B、9.0C、8.0D、83、执行下列程序后, 变量a的值应为()float f1(float x){return x+1.3;}void main( ){float a;a=f1(2.4);printf(“%f\n”,a);}A、3.700000B、3C、4D、不确定4、程序的输出是()int w=3;void main(){int w=10;printf("%d\n",fun(5)*w);}fun(int k){if(k==0)return w;return(fun(k-1)*k);}A、360B、3600C、1080D、12005、下面程序段运行后的输出结果是(假设程序运行时输入5,3回车)void swap(int a,int b ){int t;t=a; a=b; b=t;}main(){ int a,b;scanf("%d,%d", &a, &b);swap(a,b);printf ("a=%d,b=%d\n",a,b);}A、a=5,b=3B、a=3,b=5C、5,3D、3,56、以下程序实现了求两个数的最大公约数和最小公倍数,请将程序填写完整。
int hcf( ){ int r;r=a%b;while( ){a=b;b=r;;}return b;}int mcf(int a,int b){int t;t= ;return t;}void main(){int a,b,c,d;scanf("%d,%d",&a,&b);c=hcf(a,b);;printf("\n最大公约数=%d,最小公倍数=%d\n",c,d); }7、使用函数调用的方法求n!,请将程序填写完整。
《Visual_Basic程序设计》试题及其答案Visual_Basic程序设计试题及其答案Visual_Basic程序设计是一门与Windows操作系统密切相关的编程语言,广泛应用于图形用户界面(GUI)的开发。
下面是一套Visual_Basic程序设计的试题,以及详细的答案解析。
一、概念题(共10题,每题2分,共20分)1. 什么是Visual_Basic程序设计?答案:Visual_Basic程序设计是一种基于BASIC语言的集成开发环境(IDE),用于Windows平台的程序开发和编程。
2. Visual_Basic程序设计的特点是什么?答案:Visual_Basic具有简单易学、图形化编程界面、可视化设计、事件驱动等特点。
3. 什么是控件?答案:控件是Visual_Basic程序设计中用于构建用户界面的基本元素,如按钮、文本框、标签等。
4. Visual_Basic程序中的数据类型有哪些?答案:Visual_Basic支持多种数据类型,包括整数、浮点数、字符串、布尔值等。
5. 什么是条件结构?答案:条件结构是一种根据不同条件执行不同操作的程序结构,如If语句和Select Case语句。
6. 什么是循环结构?答案:循环结构是一种重复执行特定操作的程序结构,如For循环和While循环。
7. 什么是函数?答案:函数是一段可重复调用的代码,通常用于实现特定功能,并可以返回结果。
8. 如何定义和调用函数?答案:在Visual_Basic中,可以使用Function关键字定义函数,并使用函数名调用函数。
9. 什么是异常处理?答案:异常处理是一种处理程序运行过程中可能出现的错误或异常情况的机制,以保证程序的稳定性。
10. Visual_Basic程序如何进行调试?答案:Visual_Basic提供了丰富的调试工具,包括断点调试、单步调试等,以帮助程序员发现和解决问题。
二、编程题(共2题,每题40分,共80分)题目一:设计一个Visual_Basic程序,实现计算器的基本功能。
基本编程练习题目(入门练手程序编写)
1、实现发光二极管按设定的时间间隔(比如500ms)闪烁。
2、接在P0口的8个LED灯D1—D8从左到右循环依次点亮,产生走马灯效果。
3、利用循环移位函数_crol_和_cror_形成发光二极管左右来回滚动的效果。
(提
示:主程序中加入intrins.h,P2=_cror_(P2,1)语句表示P2口数据循环右移1位)
4、要求16只LED分两组按预设的多种花样变换显示(D2到D9,D10到D17
分别从上到下、从下到上显示一次,再分别从两边到中间,从中间到两边显示一次,再分别全亮全灭交替三次)
5、要求编程实现交通灯功能:要求东西向绿灯亮20秒,黄灯闪烁5次后红灯亮,
红灯亮后,南北向由红灯变为绿灯,20秒后南北向黄灯闪烁5此后变红灯,东西向变绿灯,如此循环往复。
6、要求实现单支数码管按数字0~9循环显示,时间间隔100ms。
7、编程实现8支数码管按0、1、2、3、4、5、6、7滚动显示,时间间隔100ms。
8、编程实现8支数码管同时显示“12345678”。
9、编程实现数码管闪烁显示“76543210”,采用动态刷新法显示一串数字,在停
止刷新时所有数字显示消失。
10、根据电路图,按下K1时,P0口LED上移一位;按下K2时,P0口LED
下移一位;按下K3时,P2口LED上移一位;按下K4时,P2口LED下移一位。
单元5 函数应用与模块化程序设计试题及答案(一)选择题1.Python中“==”运算符用于比较两个对象的值,下列选项中属于is比较对象的因素的是()。
[单选题] *A.id()(正确答案)B.sum()C.max()D.min()2.调用以下函数返回的值是()。
def myfun()pass [单选题] *A.0B.出错不能运行C.空字符串D.None(正确答案)3.函数如下。
def showNumber(numbers):for n in numbers:print(n)下列选项中在调用函数时会报错的是()。
[单选题] *A.showNumber([2,4,5])B.showNumber('abcesf ')C.showNumber(3.4)(正确答案) D.showNumber((12,4,5))4.函数如下。
def chanageInt(number2):number2 = number2+1print("changeInt:number2=",number2) number1 = 2chanageInt(number1)print("number:",number1)输出结果正确的是()。
[单选题] * A.changeInt: number2= 3number: 3B.(正确答案)changeInt:number2= 3number: 2C.number: 2changeInt: number2= 2D.number: 2changeInt: number2= 35.函数如下。
def changeList(list):list.append(" end")print("list",list)#调用strs =['1','2']changeList(strs)print("strs",strs)下列对strs和list的值输出正确的是() [单选题] *A.strs['1','2']B.list['1','2']C.list['1', '2', ' end']D.strs['1', '2', ' end'](正确答案)6.导入模块的方式错误的是()。
数控加工工艺及编程模块化试题题库【题库说明】✧试题内容根据知识模块分类,可根据教学内容和进程,到各个知识模块中随机选择试题。
✧各教学项目作业或测验可在各项目题库中选题。
✧各位教师应在教学过程中不断丰富题库内容。
模块一项目一认识数控机床知识点1:认识数控机床及系统一、填空1.成一个切削加工的工艺系统,2.3.以及一些辅助功能的控制。
4.数控装置(CNC)硬件通常由微机基本系统部分和它与外部设备联系的接口电路组成。
微机基本系统是由CPU、存储器(EPROM、RAM)、硬件接口等几个主要部分组成5.二、判断1.数控机床:它与普通机床在基本的金属切削原理上相同;与普通机床工艺可行性能相似;它在一定程度上沿袭了普通机床加工的工艺分析和加工方法。
◎2.数控加工工艺人员不仅要掌握机械制造专业知识,还要掌握计算机的使用和数控编程知识和技能,并有较丰富的加工经验。
◎3.加工工艺的思考体现了人的智慧和灵活性,数控工艺恰当决断应是编程的关键所在。
◎4.数控机床是一个装有程序控制系统的机床,该系统能够逻辑地处理具有使用代码,或其他符号编码指令规定的程序。
◎5.数控装置是数控系统的核心,数控机床几乎所有的控制功能都由它控制实现。
◎6.计算机硬件系统又称为“裸机”,计算机只有硬件是不能工作的,必须配置软件才能够使用。
◎三、选择1.下列有关数控机床描述不正确的是:A、是一种具有高质、高效、高度自动化、高度灵活性的,适合精度要求高的、形状复杂零件加工的工具。
B、是将电子、计算机等技术与传统机床技术相融合,将精密机械技术、计算机技术、微电子技术、检测传感技术、自动控制技术、接口技术等在系统工程的基础上有机综合应用的新型的机电一体化产品。
C、由于它的高效、高度自动化特点,尤其适合对切削余量大的工件加工的机床。
2.对加工中心机床描述不正确的是:A、加工中心是一种比普通数控机床多加装了刀具库和自动换刀装置而构成的数控机床。
它的出现打破了一台机床只能进行一种工序加工的传统观念。
c语言试题模块化以下是一个简单的C语言试题模块化示例,其中包含一个主函数和三个子函数。
```cinclude <>// 子函数1:计算两个整数的和int add(int a, int b) {return a + b;}// 子函数2:计算两个整数的差int subtract(int a, int b) {return a - b;}// 子函数3:计算两个整数的积int multiply(int a, int b) {return a b;}// 主函数int main() {int num1 = 5;int num2 = 3;int sum = add(num1, num2);int difference = subtract(num1, num2);int product = multiply(num1, num2);printf("The sum of %d and %d is %d\n", num1, num2, sum);printf("The difference of %d and %d is %d\n", num1, num2, difference);printf("The product of %d and %d is %d\n", num1, num2, product); return 0;}```在这个示例中,我们定义了三个子函数(add、subtract和multiply)来执行加、减和乘运算。
主函数中,我们调用了这些子函数,并将结果打印到控制台上。
通过将代码拆分成多个函数,可以使代码更易于理解和维护,并且可以轻松地重复使用这些函数来执行其他计算任务。
模块设计练习试卷2(题后含答案及解析)题型有:1. 选择题选择题(每小题2分,共70分)下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上。
1.以下能用宏而不需要VBA就能完成的操作是______。
A.事务性或重复性的操作B.数据库的复杂操作和维护C.自定义过程的创建和使用D.些错误过程正确答案:A 涉及知识点:模块设计2.已知程序段:s=0Fori=1To10Step2s=s+1i=i*2Nexti当循环结束后,变量i的值为______,变量s的值为______。
A.104B.113C.223D.164正确答案:C 涉及知识点:模块设计3.VBA中去除前后空格的函数是______。
A.LtrimB.RtrimC.TrimD.Ucase正确答案:C 涉及知识点:模块设计4.VBA中不能进行错误处理的语句结构是______。
A.OnError,Then标号B.OnError.Goto标号C.OnErrorResumeNextD.OnErrorGotoO正确答案:A 涉及知识点:模块设计5.表达式4+5\6*7/8Mod9的值是______。
A.4B.5C.6D.7正确答案:B 涉及知识点:模块设计6.设a=6,则执行x=IF(a>5,-1,0)后,x的值为A.6B.5C.0D.1正确答案:D 涉及知识点:模块设计7.VBA中定义静态变量可以用关键字______。
A.ConstB.DimC.PublicD.Static正确答案:D 涉及知识点:模块设计8.在VBA中,下列变量名中不合法的是______。
A.你好B.nihaoC.nihaoD.ni—hao正确答案:B 涉及知识点:模块设计9.在窗体中添加了一个文本框和一个命令按钮(名称分别为tText和bCommand),并编写了相应的事件过程。
运行此窗体后,在文本框中输入一个字符,则命令按钮上的标题变为“计算机等级考试”。
第四章模块化程序设计练习题及参考答案一、填空题一、以下程序的运行结果是(111),把x概念为静态变量运行结果是(123)。
void increment(void){ int x=0; x+=1; printf("%d",x);}main(){ increment(); increment(); increment(); }二、假设输入的值是-125,以下程序的运行结果是(-125=-5*5*5)#include ""main(){ int n; void f(int n); scanf("%d",&n); printf("%d=",n);if(n<0) printf("-"); n=fabs(n); fun(n);}void fun(int n){ int k,r;for(k=2;k<=sqrt(n);k++){ r=n%k;while(r==0){printf("%d",k); n=n/k;if(n>1)printf("*");r=n%k;}}if(n!=1) printf("%d\n",n);}3、设有以下宏概念:#define WIDTH 80#define LENGTH WIDTH+40那么执行赋值语句:v=LENGTH*20;(v为int型)后,v的值是(880)4、设有以下宏概念:#define WIDTH 80#define LENGTH (WIDTH+40)那么执行赋值语句:k=LENGTH*20;(k为int型变量)后,k的值是(2400)五、下面程序的运行结果是(5)#define DOUBLE(r) r*rmain(){ int x=1,y=2,t; t=DOUBLE(x+y); printf("%d\n",t);}六、下面程序的运行结果是(36)#define MUL(z) (z)*(z)main(){ printf("%d\n",MUL(1+2)+3); }7、下面程序的运行结果是(212)#define POWER(x) ((x)*(x))main(){ int i=1; while(i<=4) printf("%d,",POWER(i++)); }八、下面程序的运行结果是(9)#define MAX(a,b) (a>b?a:b)+1main(){ int i=6,j=8,k; printf("%d\n",MAX(i,j)); }二、选择题一、以下正确的说法是(D)成立自概念函数的目的之一是:A)提高程序的执行效率B)提高程序的可读性C)减少程序的篇幅D)减少程序文件所占内存二、以下正确的说法是(B)A)用户假设需挪用标准库函数,挪用前必需从头概念B)用户能够从头概念标准库函数,假设如此,该函数将失原有含义。
《计算机程序设计(C语言)》见面课及答案见面课:模块化程序设计方法1、下面的描述,哪一个不符合模块化程序设计的特点()A.程序设计的复杂性提高了B.提高了代码的重用性C.易于维护和功能扩充D.有利于团队开发正确答案:程序设计的复杂性提高了2、下列叙述中正确的是A.在模块化程序设计中,一个模块应该尽量多的包括与其他模块联系的信息B.在自顶向下、逐步细化的设计过程中,首先应设计解决问题的第一个细节C.在模块化程序设计中,一个模块内部的控制结构也要符合结构化原则D.在程序设计过程中,不能同时采用结构化程序设计方法与模块化程序设计方法正确答案:在模块化程序设计中,一个模块内部的控制结构也要符合结构化原则3、C语言中模块化设计主要通过()实现A.算法B.顺序、选择、循环结构C.函数D.预编译正确答案:函数4、模块化程序设计要求标准是()A.高内聚,高耦合B.高内聚,低耦合C.低内聚,高耦合D.低内聚,低耦合正确答案:高内聚,低耦合5、下面描述不正确的是()A. C语言中函数模块化后可以以动态链接库存在B. C语言中函数模块化后可以库文件方式存在C. C语言中函数模块化后可以以静态链接库方式存在D.C语言中函数模块化后必须和主函数在一个文件中正确答案:C语言中函数模块化后必须和主函数在一个文件中见面课:程序流程控制深入理解1、下面关于while和do-while循环的说法中,正确的是( )。
A.与do-while语句不同的是,while语句的循环体至少执行一次B. do-while语句首先计算终止条件,当条件满足时,才去执行循环体中的语句C.两种循环除了格式不同外,功能完全相同D. 以上答案都不正确正确答案:以上答案都不正确2、设有程序段int k=10;while(k) k=k+1;则下面描述中正确的是()A. while 循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次正确答案: while 循环执行10次3、已知int i=1; 执行语句while(i++<4);后,变量i的值为()A.3B.4C.5D.6正确答案:54、语句while(!E);中的表达式!E等价于()。
第四章模块化程序设计练习题及参考答案一、填空题1、以下程序的运行结果是(111),把x定义为静态变量运行结果是(123)。
void increment(void){ int x=0; x+=1; printf("%d",x);}main(){ increment(); increment(); increment(); }2、若输入的值是-125,以下程序的运行结果是(-125=-5*5*5)#include ""main(){ int n; void f(int n); scanf("%d",&n); printf("%d=",n);if(n<0) printf("-"); n=fabs(n); fun(n);}void fun(int n){ int k,r;for(k=2;k<=sqrt(n);k++){ r=n%k;while(r==0){printf("%d",k); n=n/k;if(n>1)printf("*");r=n%k;}}if(n!=1) printf("%d\n",n);}3、设有以下宏定义:#define WIDTH 80#define LENGTH WIDTH+40则执行赋值语句:v=LENGTH*20;(v为int型)后,v的值是(880)4、设有以下宏定义:#define WIDTH 80#define LENGTH (WIDTH+40)则执行赋值语句:k=LENGTH*20;(k为int型变量)后,k的值是(2400)5、下面程序的运行结果是(5)#define DOUBLE(r) r*rmain(){ int x=1,y=2,t; t=DOUBLE(x+y); printf("%d\n",t);}6、下面程序的运行结果是(36)#define MUL(z) (z)*(z)main(){ printf("%d\n",MUL(1+2)+3); }7、下面程序的运行结果是(212)#define POWER(x) ((x)*(x))main(){ int i=1; while(i<=4) printf("%d,",POWER(i++)); }8、下面程序的运行结果是(9)#define MAX(a,b) (a>ba:b)+1main(){ int i=6,j=8,k; printf("%d\n",MAX(i,j)); }二、选择题1、以下正确的说法是(D)建立自定义函数的目的之一是:A)提高程序的执行效率 B)提高程序的可读性C)减少程序的篇幅 D)减少程序文件所占内存2、以下正确的说法是(B)A)用户若需调用标准库函数,调用前必须重新定义B)用户可以重新定义标准库函数,若如此,该函数将失原有含义。
C)系统根本不允许用户重新定义标准库函数。
D)用户若需调用标准函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调用。
3、以下正确的函数定义形式是(C)A)double fun(int x,int y) B)double fun(int x;int y)C)double fun(int x,int y); D)double fun(int x,y)4、以下正确的说法是(D)。
在C语言中:A)实参与其对应的形参各占用独立的存储单元。
B)实参和与其对应的形参共占用一个存储单元。
C)只用当实参和与其对应的形参同名时才共占用存储单元。
D)形参是虚拟的,不占用存储单元。
5、若调用一个函数,且此函数中没有return语句,则正确的说法是(D)该函数:A)没有返回值 B)返回若干个系统默认值C)能返回一个用户所希望的函数值 D)返回一个不确定的值6、以下不正确的说法是(B)。
C语言规定:A)实参可以是常量、变量或表达式 B)形参可以是常量、变量或表达式C)实参可以为任意类型 D)形参应与对应的实参类型一致7、以下正确的说法是()A)定义函数时,形参的类型说明可以放在函数体内B)return后边的值不能为表达式C)如果函数值的类型与返回值类型不一致,以函数值类型为准。
D)如果形参与实参的类型不一致,以实参类型为准。
8、C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是()A)地址传递 B)单向值传递C)由实参传给形参,再由形参传回实参 D)由用户指定传递方式9、C语言允许函数值类型缺省定义,此时该函数值隐含的类型是()A)float 型 B)int 型 C)long 型 D)double 型10、C语言规定,函数返回值的类型是由()A)return语句中的表达式类型所决定B)调用该函数时的主调函数类型所决定C)调用该函数时系统临时决定 D)在定义该函数时所指定的函数类型所决定11、以下正确的描述是()在C语言程序中A)函数的定义可以嵌套,但函数的调用不可以嵌套B)函数的定义不可以嵌套,但函数的调用可以嵌套C)函数的定义和函数的调用均不可以嵌套D)函数的定义和函数的调用均可以嵌套12、以下正确的函数形式是()A)void fun(int x,int y) { z=x+y; return (z);}B)fun(int x,y) { int z; return (z);}C)fun(x,y){int x,y;double z; z=x+y; return (z); }D)double fun(int x,int y){ double z; z=x+y; return (z); }13、以下程序有语法性错误,有关错误原因的正确说法是()main(){int G=5,k;void prt_char();.........k=prt_char(G);.........}A)语句void prt-char();有错,它是函数调用语句,不能用void说明。
B)变量名不能使用大写字母C)函数说明和函数调用语句之间有矛盾。
D)函数名不能使用下划线。
14、下面函数调用语句含有实参的个数为()func((exp1,exp2),(exp3,exp4,exp5));A)1 B)2 C)3 D)415、以下错误的描述是()函数调用可以A)出现在执行语句中 B)出现在一个表达式中C)做为函数的实参 D)做为一个函数的形参16、以下是有关汉诺塔问题的程序段,若在main函数中有调用语句hanoi(3,'A','B','C');则符合程序段运行结果的选项是()void move(char getone,char putone){printf("%c-->%c\n",getone,putone);}void hanoi(int n,char one,char two,char three){if(n==1) move(one,three);else{hanoi(n-1,one,three,two);move(one,three)hanoi(n-1,two,one,three);}}A)A-->C B)A-->CA-->B A-->BC-->B C-->AB-->A A-->BC-->B B-->CA-->C A-->CA-->B A-->BC)A-->C D)A-->CA-->B A-->BC-->B C-->BA-->C A-->CB-->A A-->BB-->C B-->CA-->C A-->C17、以下正确的说法是()如果在一个函数中的复合语句中定义了一个变量,则该变量A)只在该复合词句中有效 B)在该函数中有效C)在本程序范围内均有效 D)为非法变量18、以下不正确的说法为()A)在不同函数中可以使用相同名字的变量 B)形式参数是局部变量C)在函数内定义的变量只在本函数范围内有效D)在函数内的复合词句中定义的变量在本函数范围内有效19、凡是函数中未指定存储类别的局部变量,其隐含的存储类别为()A)自动(auto) B)静态(static) C)外部(extern) D)寄存器(register)20、在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是()A)extern B)register C)auto D)static21、以下程序的正确运行结果是()void num(void){ extern int x,y; int a=15,b=10; x=a-b; y=a+b; }int x,y;main(){ int a=7,b=5; x=a+b; y=a-b; num(); printf("%d,%d\n",x,y); }A)12,2 B)不确定 C)5,25 D)1,1222、以下程序的正确运行结果是()main(){ void f(int a); int a=2,i; for(i=0;i<3;i++) printf("%d",f(a)); }void f(int a){ int b=0; static int c=3; b++;c++; return(a+b+c); }A)777 B)71013 C)7911 D)78923、以下程序的正确运行结果是(Dmain(){ func(int a,int b); int k=4,m=1,p;p=func(k,m);printf("%d,",p);p=func(k,m);printf("%d\n",p);}func(int a,int b){ static int m=0,i=2; i+=m+1; m=i+a+b; return(m); }A)8,17 B)8,16 C)8,20 D)8,824、以下叙述正确的是(A)A)在程序的一行上可以出现多个有效的预处理命令行B)使用带参的宏时,参数的类型应与宏定义时参数一致C)宏替换不占用运行时间,只占编译时间D)在以下定义中C R是称为“宏名”的标识符#define C R 04525、在宏定义#define PI 中,用宏名PI代替一个(A)A)常量 B)单精度数 C)双精度数 D)字符串26、以下有关宏替换的叙述不正确的是(D)A)宏替换不占用运行时间 B)宏名无类型C)宏替换只是字符替换D)宏名必须用大写字母表示27、若有宏定义如下:#define X 5#define Y X+1#define Z Y*X/2则执行以下printf语句后,输出结果是()int a;a=Y;printf("%d,",Z);printf("%d\n",--a);A)7,6 B)12,6C)12,5 D)7,528、#define 能作简单的替代,用宏替代计算多项式3*x+2之值的函数f,正确的宏定义是(C)A)#define f(x) (3*x+2) B)#define f 3*x+2C)#define f(a) (3*(a)+2) D)#define (3*(a)+2) f(x)29、若有以下宏定义:#define N 2#defint Y(n) ((N+1)*n)则执行语句z=2*(N+Y(5));后的结果是()A)语句有错误 B)z=34 C)z=70 D)z无定值三、判断对错1、C语言规定,可执行程序的开始执行点是程序的开头。