2013省二级C 选择题(含部分答案)2013-5-24
- 格式:doc
- 大小:118.00 KB
- 文档页数:16
全国计算机等级考试二级C语言真题2013年3月(总分40, 做题时间90分钟)一、选择题1. 程序流程图中带有箭头的线段表示的是______。
A 图元关系B 数据流C 控制流D 调用关系答案:C[解析] 在数据流图中,用标有名字的箭头表示数据流。
在程序流程图中,用标有名字的箭头表示控制流。
所以选择C。
2. 结构化程序设计的基本原则不包括______。
A 多态性B 自顶向下C 模块化D 逐步求精答案:A[解析] 结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,所以选择A。
3. 软件设计中模块划分应遵循的准则是______。
A 低内聚低耦合B 高内聚低耦合C 低内聚高耦合D 高内聚高耦合答案:B[解析] 软件设计中模块划分应遵循的准则是高内聚低偶合、模块大小规模适当、模块的依赖关系适当等。
模块的划分应遵循一定的要求,以保证模块划分合理,并进一步保证以此为依据开发出的软件系统可靠性强,易于理解和维护。
模块之间的耦合应尽可能的低,模块的内聚度应尽可能的高。
4. 在软件开发中,需求分析阶段产生的主要文档是______。
A 可行性分析报告B 软件需求规格说明书C 概要设计说明书D 集成测试计划答案:B[解析] A错误,可行性分析阶段产生可行性分析报告。
C错误,概要设计说明书是总体设计阶段产生的文档。
D错误,集成测试计划是在概要设计阶段编写的文档。
B正确,需求规格说明书是后续工作如设计、编码等需要的重要参考文档。
5. 算法的有穷性是指______。
A 算法程序的运行时间是有限的B 算法程序所处理的数据量是有限的C 算法程序的长度是有限的D 算法只能被有限的用户使用答案:A[解析] 算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。
有穷性是指算法程序的运行时间是有限的。
6. 对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是______。
A 快速排序B 冒泡排序C 直接插入排序D 堆排序答案:D[解析] 除了堆排序算法的比较次数是O(nlog2n),其他的都是n(n-1)/2。
全国计算机等级考试等级考试真题库之选择题(18)1.下列叙述中正确的是A) 算法的效率只与问题的规模有关,而与数据的存储结构无关B) 算法的时间复杂度是指执行算法所需要的计算工作量C) 数据的逻辑结构与存储结构是一一对应的D) 算法的时间复杂度与空间复杂度一定相关参考答案:B【解析】算法的效率与问题的规模和数据的存储结构都有关,A错误。
算法的时间复杂度,是指执行算法所需要的计算工作量,B正确。
由于数据元素在计算机存储空间中的位置关系可能与逻辑关系不同,因此数据的逻辑结构和存储结构不是一一对应的,C错误。
算法的时间复杂度和空间复杂度没有直接的联系,D错误。
2.下列叙述中正确的是A) 线性表链式存储结构的存储空间一般要少于顺序存储结构B) 线性表链式存储结构与顺序存储结构的存储空间都是连续的C) 线性表链式存储结构的存储空间可以是连续的,也可以是不连续的D) 以上说法均错误参考答案:C【解析】线性表的顺序存储结构具备如下两个基本特征:(1)线性表中的所有元素所占的存储空间是连续的;(2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。
用一组任意的存储单元来依次存放线性表的结点,这组存储单元既可以是连续的,也可以是不连续的,甚至是零散分布在存中的任意位置上的。
因此C正确。
3.某二叉树共有12个结点,其中叶子结点只有1个。
则该二叉树的深度为(根结点在第1层)A) 3B) 6C) 8D) 12参考答案:D【解析】二叉树中,度为0的节点数等于度为2的节点数加1,即n2=n0-1,叶子节点即度为0,n0=1,则n2=0,总节点数为12=n0+n1+n2=1+n1+0,则度为1的节点数n1=11,故深度为12,选D。
4.对长度为n的线性表作快速排序,在最坏情况下,比较次数为A) nB) n-1C) n(n-1)D) n(n-1)/2参考答案:D【解析】快速排序最坏情况就是每次选的基准数都和其他数做过比较,共需比较(n-1)+(n-2)+…+1=n(n-1)/2,选D。
2016年计算机二级c语言题库及答案一、选择题(每小题1分,共40小题,共40分)1.设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。
现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为( )。
A.20B.0或35C.15D.162.下列关于栈的叙述中,正确的是( )。
A.栈底元素一定是最后入栈的元素B.栈操作遵循先进后出的原则C.栈顶元素一定是最先入栈的元素D.以上三种说法都不对3.下列链表中,其逻辑结构属于非线性结构的是( )0、A.双向链表B.带链的栈C.二叉链表D.循环链表4.在关系数据库中,用来表示实体间联系的是( )。
A.网状结构B.树状结构C.属性D.二维表5.公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员。
则实体部门和职员间的联系是( )。
A.1:m联系B.m:n联系C.1:1联系D.m:l联系6.右两个关系R和S如下:则由关系R得到关系S的操作是( )。
A.自然连接B.并C.选择D.投影7.数据字典(DD)所定义的对象都包含于( )。
A.软件结构图B.方框图C.数据流图(DFD图)D.程序流程图8.软件需求规格说明书的作用不包括( )。
A.软件设计的依据B.软件可行性研究的依据C.软件验收的依据D.用户与开发人员对软件要做什么的共同理解9.下面属于黑盒测试方法的是( )。
A.边界值分析B.路径覆盖C.语句覆盖D.逻辑覆盖10.下面不属于软件设计阶段任务的是( )。
A.制订软件确认测试计划B.数据库设计C.软件总体设计D.算法设计11.以下叙述中正确的是( )。
A.在C语言程序中,main函数必须放在其他函数的最前面B.每个后缀为C的C语言源程序都可以单独进行编译C.在C语言程序中,只有main函数才可单独进行编译D.每个后缀为.C的C语言源程序都应该包含一个main函数12.C语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述正确的是( )。
全国计算机等级考试等级考试真题库之选择题〔15〕1.以下链表中,其逻辑构造属于非线性构造的是A) 二叉链表B) 循环链表C) 双向链表D) 带链的栈参考答案:A【解析】在定义的链表中,假设只含有一个指针域来存放下一个元素地址,称这样的链表为单链表或线性链表。
带链的栈可以用来收集计算机存储空间中所有空闲的存储结点,是线性表。
在单链表中的结点中增加一个指针域指向它的直接前件,这样的链表,就称为双向链表〔一个结点中含有两个指针〕,也是线性链表。
循环链表具有单链表的特征,但又不需要增加额外的存贮空间,仅对表的链接方式稍做改变,使得对表的处理更加方便灵活,属于线性链表。
二叉链表是二叉树的物理实现,是一种存储构造,不属于线性构造。
答案为A选项。
Q(1: 35),初始状态为front=rear=35。
现经过一系列入队与退队运算后,front=15,rear=15,那么循环队列中的元素个数为A) 15B) 16C) 20D) 0或35参考答案:D【解析】在循环队列中,用队尾指针rear指向队列中的队尾元素,用排头指针front指向排头元素的前一个位置。
在循环队列中进展出队、入队操作时,头尾指针仍要加1,朝前移动。
只不过当头尾指针指向向量上界时,其加1操作的结果是指向向量的下界0。
由于入队时尾指针向前追赶头指针,出队时头指针向前追赶尾指针,故队空和队满时,头尾指针均相等。
答案为D选项。
3.以下关于栈的表达中,正确的选项是A) 栈底元素一定是最后入栈的元素B) 栈顶元素一定是最先入栈的元素C) 栈操作遵循先进后出的原那么D) 以上说法均错误参考答案:C【解析】栈顶元素总是后被插入的元素,从而也是最先被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。
栈的修改是按后进先出的原那么进展的。
因此,栈称为先进后出表,或"后进先出"表,所以选择C。
4.在关系数据库中,用来表示实体间联系的是A) 属性B) 二维表C) 网状构造D) 树状构造参考答案:B【解析】关系模型实体间的联系采用二维表来表示,简称表。
1、下列给定程序中,函数fun的功能是:将s所指字符串的郑旭和反序进行连接,形成的新串放在t所指的数组中2、函数fun的功能是:用下面的公式求π的近似值,知道最后一项的绝对值小于指定的数为止。
3、函数fun的功能是:传入一个整数m,计算如下公式的值。
T=1/2-1/m。
4、函数fun的功能是:求两个非零正整数的最大公约数,并作为函数值返回。
5、从参数1-55,查找能被3整除且有一位上的数值是5的数,把这些数放在b所指的属猪中,这些数的个数作为函数值返回。
规定函数中a1放个位数,a2放十位数。
6、求出s所指字符串中最后一次出现的t所指字符串的地址,并通过函数值返回,在主函数中输出从此地址开始的字符串;若未能找到,则函数值为null。
7、按以下递归公式求函数的值fun(n)={10 (n=1)。
8、函数fun和funx的功能是:用二分法求方程2x-4x+3x-6=0的一个根,并要求绝对误差不超过0.001。
9、首先把b所指字符串中的字符按逆序存放,然后将a所指字符串中的字符和b所指字符串中的字符,按排列的顺序交叉合并到c所指数组中,过长的升序字符接在c所指的数组的尾部。
10、计算整数n的阶乘。
11、计算函数F(x,y,z)=(x+y)的值。
其中x和y的值不相等,z和y的值不相等。
12、利用折半查找法查找整数m在数组中的位置。
若找到,返回其下标值;否则,返回-1。
13、求三个数的最小公倍数。
14、将s所指字符串中最后一次出现的鱼t1所指字符串相同的子串替换成t2所指字符串,所形成的新串放在w所指的数组中。
要求t1和t2所指字符串的长度相同。
15、逐个比较p、q所指两个字符串对应位置上的字符,并把ASCII值大或相等的字符一次存放到c所指的数组中,形成一个新的字符串。
16、根据以下公示求π值,并作为函数值返回。
17、将s所指字符串中出现的与t1所指字符串相同的子串全部替换为t2所指字符串,所形成的新串放在w所指的数组中。
计算机国家等级考试二级c试题及答案Ⅰ. 选择题1. 下列选项中,不属于计算机网络分类的是:A. 局域网B. 城域网C. 广域网D. 互联网2. 在Excel中,通过哪个函数可以找到一列或一行中的最大值?A. MAX()B. MIN()C. SUM()D. AVG()3. 下列哪个设备可以用于将数字信号转换为模拟信号?A. 集线器B. 路由器C. 数字调制解调器D. 交换机4. 在计算机网络中,HTTP协议是用于:A. 文件传输B. 邮件传输C. 网页传输D. 数据传输5. 下列选项中,不属于常见的数据库管理系统的是:A. MySQLB. OracleC. PhotoshopD. SQL ServerⅡ. 填空题1. 在计算机网络中,IP地址由__4__个字节组成。
2. 在Python中,使用__print()__函数输出结果。
3. 在Excel中,利用__VLOOKUP()__函数可以进行垂直查找。
4. Windows操作系统中,使用Ctrl+Alt+Delete组合键可以打开__任务管理器__。
5. HTML是用于构建__网页__的标记语言。
Ⅲ. 简答题1. 什么是操作系统?列举几个常见的操作系统。
操作系统是计算机系统中的核心软件,它负责管理计算机硬件和软件资源,提供给应用程序和用户友好的接口。
常见的操作系统有Windows、macOS、Linux等。
2. 什么是数据库?简述关系型数据库和非关系型数据库的区别。
数据库是用于存储和组织数据的系统。
关系型数据库基于关系模型,使用表格结构来存储数据,并通过SQL语言进行操作和查询。
非关系型数据库则不依赖于表格结构,可以采用键值对、文档、图形等方式存储数据。
3. 请简要介绍一下计算机网络的层次结构。
计算机网络的层次结构包括物理层、数据链路层、网络层、传输层和应用层。
物理层负责传输比特流;数据链路层处理帧的传输和错误检测;网络层建立不同网络之间的连接;传输层提供可靠的、面向连接的数据传输;应用层为用户提供服务。
2013年9月全国计算机等级《二级C语言程序设计》上机模考试卷(5)总分:100分及格:60分考试时间:120分一、选择题(每小题1分,共40分)(1) 下列叙述中正确的是( )。
A. 在赋值表达式中,赋值号的左边既可以是变量,也可以是任意表达式B. 实型变量中允许存放整型数C. 若a和b类型相同,在执行赋值a=b后,b中的值将放入a中,但b中的值不变D. 在C程序中,求余算符“%”两边的类型相同时才能进行运算(2) 软件生命周期中,花费最多的阶段是( )。
A. 详细设计B. 软件编码C. 软件测试D. 软件维护(3) 假定X和Y为double型,则表达式x=2,y=x+3/2的值是( )。
A. 3.500000B. 3C. 2.000000D. 3.000000(4) 有如下程序:main(){ int x=1,a=0,b=0;switch(x){case 0:b++;case 1:a++;case 2:a++.b++;}printf("a=%d,b=%d\n",a,b);}该程序的输出结果是( )。
A. a=2,b=1B. a=1,b=1C. a=1,b=0D. a=2,b=2(5) 设x、y和z是int型变量,且x=4,y=6,z=8,则下列表达式中值为0的是( )。
A. x&&yB. x<=yC. x||y+z&&y—ZD. !((x<y)&&!z||1)(6) 有下列程序:main(){ char s[]="abcde";s+=2:printf("%d\n",s[0]);}执行后的结果是( )。
A. 输出字符a的ASCII码B. 输出字符c的ASCII码C. 输出字符cD. 程序出错(7) 设有以下定义union data{int d1;float d2;)demo;则下面叙述中错误的是( )。
A. 变量demo与成员d2所占的内存字节数相同B. 变量demo中各成员的地址相同C. 变量demo和各成员的地址相同D. 若给demo.d1赋99后,demo.d2中的值是99.0(8) 要求通过while循环不断读入字符,当读入字母N时结束循环,若变量已正确定义,下列正确的程序段是( )。
2013江苏省计算机等级考试二级C语言考试模拟试卷一第一部分计算机基础知识1. 下列有关信息技术和信息产业的叙述中,错误的是_____(1)____ 。
A.信息技术与传统产业相结合,对传统产业进行改造,极大提高了传统产业的劳动生产率B.信息产业专指生产制造信息设备的行业与部门,不包括信息服务业C.信息产业已经成为世界范围内的朝阳产业和新的经济增长点D.我国现在已经成为世界信息产业的大国2. 下列有关数字技术与微电子技术的叙述中,错误的是___(2)___ 。
A.数字技术的处理对象是"比特",它只有两种状态(取值)B.在计算机中,经常使用称为"触发器"的双稳态电路来存储比特,一个触发器可以存储1个比特C.微电子技术以集成电路为核心,现代集成电路所使用的半导体材料主要是硅D.所有的IC卡均只能存储数据,不能处理和收发数据3. 下列四个不同进位制的数中,数值最小的是___(3)___。
A.十进制数63.1B.二进制数.101C.八进制数77.1D.十六进制数3F.14. 下列有关PC机CPU的叙述中,错误的是___(4)___。
A.长期以来,多数PC机采用Intel公司生产的CPU芯片B.Intel Core i7是高端的CPU产品,其中i7表示它采用7个内核的结构C.目前部分PC机使用AMD公司的CPU芯片,它们与Intel公司的CPU芯片指令系统基本一致,因此这些PC机相互兼容D.目前我国也能设计、生产PC机的CPU芯片。
5. 下列有关PC机主板上CMOS和BIOS的叙述中.错误的是___(5)___ 。
A.主板上的CMOS芯片是一种易失性存储器,它通常使用电池供电B.BIOS是存储在主板上闪烁存储器中的一组程序.每次机器加电时总是首先执行其中的程序C.CMOS设置程序存储在CMOS存储器中,它与BIOS无关D.CMOS芯片中存储了许多配置信息,包括当前的日期与时间、开机密码等6. 下列是PC机使用的四种外设接口,其中最新的一种是___(6)___。
第一份1、以下叙述错误的是(B)。
A、C源程序必须包含一个main()函数。
B、语句必须在一行内写完。
C、以一对“/*”和“*/”为定界符括起来的文字为注释部分。
D、所有语句都必须以分号“;”结束。
2、整型常量三种表示形式中不含(D)。
A、十进制B、八进制C、十六进制D、二进制3、以下表达式中,(B)无法正确表示右图所示的代数式:(a+b)(a-c)/3a (a <> 0)A、(a+b)/a*(a-c)/3B、(a+b)*(a-c)/3*aC、(a+b)*(a-c)/(3*a)D、(a+b)/(3*a)*(a-c)4、运算符(C)不能用于非整型数据运算。
A、/B、+C、%D、*5、(A)可产生(0,0.9)之间的随机数。
A、rand()%10/10.0B、srand()%10/10.0C、srand()*10%10D、rand()%10/106、能正确表示2<t<10的逻辑表达式是(D)。
A、2<t<10B、10>t>2C、t>2 || t<10D、t>2 && t<107、定义:int a=1,b=2,c ; 语句c=1.0/b*4; 执行后,变量 c的值为(2)。
8、以下程序段的运行结果是(C)。
int x=10,y;if(x>20)y=9;else if(x>10)y=6;else if(x>5)y=3;elsey=1;printf(“%d\n”,y);A、9B、6C、3D、19、以下程序段的运行后sum的值为(D。
int i,j ,sum=0;for(i=1; i<=3;i++) I=1 J=I=1 SUM=2 J=2 SUM=2+1+2=5 J=3 SUM=5+1+3=9 for(j=i; j<=3; j++) I=2 J=2 SUM=9+2+2=13 J=3 SUM=13+2+3=18sum=sum+i+j; I=3 J=3 SUM=18+3+3=24J=4 I=4A、18B、12C、20D、2410、(B)语句能正确定义a为整型数组。
A、int a[n] ,n=10;B、int a[10];C、int n=10,a[n];D、int a(10)11、以下程序段的运行结果是(C)。
int a[ ][4]={1,2,3,4,5,6,7,8,9,10,11,12};printf(“%d\n”,a[0][0]-a[2][3]);A、-1B、10C、-11D、813、以下叙述错误的是(B)。
A、函数体内复合语句中定义的变量只在该复合语句内有效。
B、在一个程序源文件中定义的全局变量,在程序的其它源文件中必不可见。
C、全局变量的作用域是从其定义处起至程序结束处。
D、函数体内定义的变量,其生命期是函数执行期。
14、以下叙述错误的是(A)。
A、宏定义必须放置在它所在的源程序文件的最前面。
B、宏定义中的宏名一般用大写字母表示。
C、宏定义不占用程序运行时间,但与程序中的语句一样需要编译。
D、一个C语言源程序可以有多条预处理命令。
15、若已定义:int a[5], *p=a; 无法引用数组元素a[4]的是()。
A、*p+4B、*(p+4)C、*(&p[0]+4)D、p[4]16、以下程序的运行结果是()。
#include <stdio.h>void main(){char str[]=”abcd”, * p=str;while(*p){(*p)++;p++;}Printf(“%s\n”,str);}A、bcdeB、cdbaC、dcbaD、abcd17、若有如下结构类型定义,以下错误的语句是()。
struct PERSON{int num;char name[10];};A、struct PERSON *p; p->name=”1234”;B、struct PERSON person; person.num=123C、struct PERSON people[100]; (people+5)->num=1234;D、struct PERSON *p;18、以下程序的输出结果是()。
#include <stdio.h>struct Student{ int num, grade;} s[]={{111,80},{112,90},{113,70}};void main(){struct Student *ps=s+2;while(ps>=s){ps->grade+=5;ps--;}printf(“%d\n”,(ps+1)->grade);}A、90B、95C、85D、7019、以下程序段运行后,输出结果是(D)。
int a=2,b=3,c=10;/* a=00000000 00000010 b=00000000 00000011 c=00000000 00001010 */ 00000000 0000000100000000 000001100000000000000111c=(a>>1)| (b<<1);printf(“%d %d %d\n”,a,b,c);A、2 5 7B、2 3 10C、3 2 5D、2 3 720、以下程序的可执行文件名为do.exe。
#include <stdio.h>#include <stdlib.h>void main(int argc,char *argv[]){if(argc!=2){printf(“Bad command found !\n”);exit(1);}printf(“hello %s\n”,argv[1]);getch();}在Dos命令行输入:do me<回车>,则输出结果是()。
A、hello doB、hello meC、Bad command found !D、hello dome第二份2、(B)合法的用户标识符A、h2.7B、_3treeC、8duD、struct3、若已定义:int a, b=3,c ; 则(A)是不正确。
A、c=((2=a)+b);B、b*=b+=2*b;C、c=(a=10,a+=6)D、c=6*b;4、若已定义:float a=1.2 ; int b=3; 则表达式b%5-a的值是( C )A、-1.2B、-0.2C、1.8D、25、若已定义:char c1,c2,c3; 使用语句scanf(“%c%c%c”,&c1,&c2,&c3); 给c1,c2,c3分别赋‘h‟, …u‟, …b‟,正确的输入形式是(C)A、‟h‟…u‟…b‟B、‟h‟, …u‟, …b‟C、hubD、h,u,b6、若已定义:int a; 条件表达式(D )等价于求a的绝对值。
A、a<0?a:-aB、a>0?--a : aC、a>0?-a : aD、a<0?-a:a7、以下运算符优先级最高的是(B)A、>B、+C、=D、==8、若已定义:int a=3, b=2; 以下程序段运行结果是(A)。
if( a==2){ if(b==1){ a+=b;printf(“%d\n”,a);}else{ a-=b;printf(“%d\n”,a);}}elseprintf(“%d\n”,a+3);A、6B、1C、5D、39、以下程序运行后k的值为(D )int i,k=3;for(i=1; i<=5; i++) i=1 k=4 i=2 k=5+2=7 i=3{k+=1;if(k%2==0)continue;k+=2;}A、11B、9C、10D、1210、以下程序段的运行结果是(C)。
int a[3], k=3;a[0]=k;a[1]= a[0]+2;a[2]= a[0]*a[1];printf(“%d\n”,a[2]);A、9B、6C、15D、1211、正确定义二维数据a的语句是(B)A、int a[4,5]B、float a[2+2][5]C、int a(4,3)D、float a[4][];12、若已定义char b[20]=”How do you do!”; 实现输出字符串”do you do!”的语句是( C );A、puts(“%c”,b[20]);B、printf(“%c”,b+4);C、printf( “%s”,b+4);D、puts(“%s”,b);13、以下叙述错误的是(C)。
A、定义函数时必须指明函数名B、函数原型中可以不指明参数的类型C、定义函数时必须指明函数类型D、函数原型中可以不指明参数的名字14、不正确的宏定义命令是(?AC)。
A、#define N*N 100B、#define SUM(x,y) (x+y)C、#define K=100D、#define K 3.1415、若已定义:int a=12, *pa=&a; 以下描述错误的是(C);A、&(*pa)等价于paB、*(&pa)等价于&aC、&pa等价于*(&a)D、*pa等价于a16、以下程序的运行结果是()。
#include <stdio.h>void main(){int a[2][3]={{1,2,3}{4,5,6}}, *p=a[0], *q=p+5;for(; q>=p; q--) printf(“%d”,*q);}A、4 5 6 3 2 1B、1 2 3 4 5 6C、6 5 4 3 2 1D、3 2 1 4 5 617、若已定义:struct teacher{int num;char name[20];}t[50], *p=t;以下对结构变量t1中成员num非法的引用是( )。
A、t[10].numB、(*t)->numC、(p+10)->numD、(*p).num18、若已定义:int a[3]={-3,10,-9}, *p=a+2; 则对数组元素a[1]错误引用的是( ).A、*(--p)B、*(p-1)C、*p--D、p[-1]19、若有以下结构类型定义:typedef struct student{int num ;float score;} STU, * pstu;以下变量声明中,错误的是()。
A、STU *ps;B、student *psC、pstu ps;D、struct student *ps;20、若已定义:int d ; FILE *fp; 要从fp所指向的已经打开的文件中读取一个整数数据到变量d中,正确的语句是( ) .A、scanf(fp, “%d”,d );B、fscanf(fp, “%d”,&d );C、fscanf(fp, “%d”,d );D、fscanf(fp, &d );第三份1、C源程序由函数构成,而函数的基本组成单元是(A)。