2025年全国计算机等级考试二级C语言全真模拟试卷及答案(共四套).docx
2025年全国计算机等级考试二级C语言全真模拟试卷及答案(共四套)2025年全国计算机等级考试二级C语吉全真模拟试卷及答案(一)一、选择题在下列各题的A)、B),C),D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。(1)算法的空间复杂度是指A)算法程序的长度B)算法程序中的指令条数C)算法程序所占的存储空间D)执行算法需要的内存空间(2)在结构化程序设计中,模块划分的原则是A)各模块应包括尽量多的功能R)各模块的规模应尽量大C)各模块之间的联系应尽量紧密D)模块内具有商内聚度、模块间具有低耦合度(3)下列叙述中,不属于测试的特征的是A)测试的挑剔性B)完全测试的不可能性C)测试的可靠性D)测试的经济性(4)下面关于对象概念的描述中,错误的是A)对象就是C语言中的结构体变量B)对象代表着正在创建的系统中的一个实体C)对象是一个状态和操作(或方法)的封装体D)对象之间的信息传递是通过消息进行的(5)下列关于队列的叙述中正确的是A)在队列中只能插入数据B)在队列中只能删除数据O队列是先进先出的线性表D)队列是先进后出的线性表(6)已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是)acbedB)decabC)deabcD)cedba(7)某二叉树中有n个度为2的结点,则该二叉树中的叶子结点数为)n+1B)n-1C)2nD)n2(8)设有如下三个关系表RSTABCABCm13m13nn13(17)在执行下述程序时,若从键盘输入6和8,则结果为main()inta,b,s;scanf("%d%d",&a,&b);s=aif(a<b)s=b;s*=s;printf("%d",s);A)36B)64C)48D)以上都不对(18)若执行下面的程序时,从键盘输入5和2,则输出结果是main()inta,b,k;scanf("%d,%d',&a,&b);k=a;if(a<b)k=a%b;elsek=b%a;printfC%dn",k):A)5B)3C)2D)0(19)在C语言中,函数返回值的类型最终取决于A)函数定义时在函数首部所说明的函数类型B)retum语句中表达式值的类型C)调用函数时主调函数所传递的实参类型D)函数定义时形参的类型(20)巳知大写字母A的ASCIl码是65,小写字母a的ASCIl码是97。以下不能将变量C中的大写字母转换为对应小写字母的语句是A)C=(C-'A')%26+fa'B)c=c+32C)C=C-'A'+'a'D)c=(,A,+c)%26-/a'(21)以下选项中,当X为大于1的奇数时,值为O的表达式是A)x%2=lB)x2C)x%2!=0D)x%2=0(22)有以下程序main()intk=5.n=0;doswitch(k)case1:case3:n+=l;k;break;default:n=O;k;case2:case4:n+=2;k;break;p=a;while(*p!,u')printf("%c",*p-32);p+;A)1.ANGUAGEB)languageC)1.AND)IangUAGE(33)以下程序的输出结果是ftinclude<stdio.h>inta33=l,2,3,4,5,6,7,8,9,.*p;main()p=(int*)malloc(sizeof(int);f(p,a);printf("%dn*,*p);free(p);f(int*s,intp3)*s=pll5A)lB)4C)7D)5(34)有以下程序voidf(int*q)inti=0:for(;i<5;i+)(*q)+;main()inta5=1,2,3,4,5.i;f(八);for(i=0;i<5;i+)printf("%d,",ai);程序运行后的输出结果是A)2,2,3,4,5,B)6,2,3,4,5,01,2,3,4,5,D)2,3,4,5,6,(35)以下合法的字符型常一量是A)'xl3,B)'081,0'65'D)wn(36)有以下语句,则对a数组元素的引用不正确的是inta10=0,1,2,3,4,5,6,7,8,9,*p=a;)ap-aB)*(ai)C)piD)*(*(a+i)(37)有以下程序#include<string.h>main()charp20=,a','b','c','d',q="abc",r="abcde”;strcat(p,r);strcpy(p+strIen(q),q);printf("%dn",strlen(p);)程序运行后的输出结果是A)9B)6OilD)7(38)在C语言中,变量的隐含存储类别是A)autoB)staticOexternD)无存储类别(39)以下程序的输出结果是main()intc=35;printf("%dn",cftc);A)0B)70C)35D)l(40)有以下程序#include<stdio.h>main()FI1.E*fp;inti=20,j=30,k.n:fp=fopen("dl.dat","w");fprintf(fp,"%dn".i);fprintf(fp,"%dn",j);fclose(fp);fp=fopen("dl.dat","r");fscanf(fp,w%d%d",k,n);printf("%d%dn",k,n);fclose(fp);程序运行后的输出结果是A)2030B)2050C)3050D)3020二、填空题请将每一个空的正确答案写在答题卡序号的横线上,答在试卷上不给分。(1)设一棵完全二叉树共有700个结点,则在该二叉树中有【1】个叶子结点。(2)常用的黑箱测试有等价类划分法、【2】和错误推测法3种。(3)数据库管理系统常见的数据模型有层次模型、网状模型和【3】3种。(4;通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为4o(4)【解析】对象是由数据和容许的操作组成的封装体,与客观实体有直接的对应关系,对象之间通过传递消息互相联系,从模拟现实世界中不同事物彼此之间的联系,B)、C)、D)是正确的,对象的思想广泛应用于C+、Java等语言中,因此A)错误。(5)C【解析】队列是一种操作受限的线性表。它只允许在线性表的一端进行插入操作,另一端进行删除操作。其中,允许插入的一端称为队尾(rear),允许删除的一端称为队首(front)。队列具有先进先出的特点,它是按先进先出"的原则组织数据的。(6)D【解析】依据后序遍历序列可确定根结点为c;再依据中序遍历序列可知其左子树由deba构成,右子树为空;又由左子树的后序遍历序列可知其根结点为e,由中序遍历序列可知其左子树为d,右子树由ba构成,如下图所示,求得该二叉树的前序遍历序列为选项D)。(7)A【解析】对于任何一棵二叉树T,如果其终端结点(叶子)数为nl,度为2的结点数为n2,则nl=n2+l,所以该二叉树的叶子结点数等于n+l三(8) C【解析】对于两个关系的合并操作可以用笛卡尔积表示。设有n元关系R和m元关系S,它们分别有p和q个元组,则R与S的笛卡儿积记为RXS它是一个m+n元关系,元组个数是PXq由题意可得,关系T是由关系R与关系S进行笛卡尔积运算得到的。(9) A【解析】两个实体之间的联系实际上是实体集间的函数关系,这种函数关系可以有下面几种,即一对一的联系、一对多(或多对一)的联系和多对多的联系;概念模型便于向各种模型转换。由于概念模型不依赖于具体的数据库管理系统,因此,容易向关系模型、网状模型和层次模型等各种模型转换。(IO)D【解析】数据处理是指将数据转换成信息的过程,故选项A)叙述错误;数据的物理独立性是指数据的物理结构的改变,不会影响数据库的逻辑结构,故选项B)叙述错误;关系中的行称为元组,对应存储文件中的记录,关系中的列称为属性,对应存储文件中的字段,故选项C)叙述错误。(Il)C【解析】不论main函数在整个过程中的位置如何,一个C程序总是从main函数开始执行的。(12)D【解析】一个C语言的源程序(后缀名为.c)在经过编译器编译后,先生成一个汇编语言程序,然后由编译程序再将汇编语言程序翻译成机器指令程序,即目标程序(后缓名为.obj),目标程序不可以直接运行,它要和库函数或其他目标程序连接成可执行文件(后缀名为.exe)后方可运行。(13)A【解析】C语言中,一个字符常量代表ASCIl字符集中的一个字符,在程序中用单引号括起来作为字符常量,字符常量的的范(39)C【解析】本题考查按位与因为1&1=1,0&0=0,所以任何数与自身按位与,结果仍为此数,不发生变化。(40)A【解析】本题中,最主要的是掌握几个有关文件函数的应用。函数名:fope11功能:打开一个文件调用方式Fl1.E*fp;fp=fopen(文件名,使用文件方式);函数名:Fprintf功能:传送格式化输出到一个文件中调用方式:fprintf(文件指针,格式字符串,输出表列);函数名:fclose功能:关闭一个文件调用方式:fclose(文件指针);函数名:fscant'功能:从磁盘文件执行格式化输入调用方式:fscanf(文件指针,格式字符串,输入列表)。二、填空题(1) 1350【解析】完全二叉树中,设高度为n,则除h层外其它层结点数都到达最大,可以算出h=10,1至9层结点个数为29-1=511,最后一层结点个数为700-511=189个,189/2=95,除最后一层外共有结点2(9-1)-95=161个,所以所有的结点个数为:189+161=350个。(2) 2边界值分析法【解析】黑箱测试法完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例。常用的黑箱测试有等价类划分法、边界值分析法和错误推测法3种。(3) 3关系模型【解析】数据库管理系统是位于用户与操作系统之间的一层系统管理软件,属于系统软件是用户与数据库之间的一个标准接口,其总是基于某种数据模型,可以分为层次模型、网状模型和关系模型。(4) 4软件生命周期【耨析】软件产品从考虑其概念开始.到该软件产品不能使用为止的整个时期都属于软件生命周期。一般包括可行性研究与需求分析、设计、实现、测试、交付使用以及维护等活动。(5) 5完整性控制【解析】安全性控制:防止未经授权的用户有意或无意存取数据库中的数据,以免数据被泄算、更改或破坏;完整性控制:保证数据库中数据及语义的正确性和有效性,防止任何对数据造成错误的操作;并发控制:正确处理好多用户、多任务环境下的并发操作,防止错误发生;恢复:当数据库被破坏或数据不正确时,使数据库将其恢复到正确的状态。(6) 6a=14【解析】本题考查的是表达式的优先级问题。先计算表达式3*5=15,再计算a+4=14,将数据14赋值给a,根据printf()函数内的输出格式控制串,最后的输出结果应为"a=M"。(7) 79【解析】本题的字符串中共有9个字符,它们分别是,I'B'M,n'0'1,2,1'W,其中,'n'表示换行,"表示反斜杠字符"",所以本题的最后输出结果为90(8)81【解析】在执行逻辑表达式”j=!ch&&i+"时,首先判断j=!ch的值,因为"ch='S'"不为0,所以"j=!ch=O",编译系统便不再计算表达式"i+"的值.i的值不变,仍为U(9) 9k=5【解析】本题主要考查了函数的递归调用方法。g=0或g=l或g=2是递归的终止条件,然后用回代的方法从一个已知值推出下一个值,直到计算出最终结果。(10) 10Jk=p;【解析】为寻找数组中最大元素的下标,需先预设1个临时最大元素的下标,并顺序逐一考查数组的元素,当发现当前元素比临时最大元素更大时,就用当前元素的下标更新临时最大元素下标。直至考查了数组的全部元素后,这临时最大元素下标就是数组的最大元素下标。通常预设的最大元素下标是数组的首元素下标.考查通常从首元素开始顺序向后继元素考查。程序中,存储临时最大元素下标的变量是k,变量P控制顺序考查的循环控制变量。当发现当前元素sp比临时最大元素sk更大时,应该用p更新k,所以在空框处应填入代码"k=p;"。(11) 11I=I(12xl-l【解析】对于10个数,相临的两个数相加取和,总共要进行9次加法运算,所以空14处应填入I=E相临的两个数相加取和,放在数组a中,x0与xl的和存放在a0中,所以空15处应填入xIT.(12) 13ttinclude<a:myfie.txt>【解析】本题考查了函数的存储分类的概念。如果没有特别说明,函数的存储范围是从定义函数的位置到文件的结尾,如果其他文件想使用这个函数,需要用include文件包含命令将定义函数的文件包含进来。(13) 14p->data15q【解析】本题考查的是链表这一数据结构对结构体变量中数据的引用。做表的特点是结构体变量中有两个城,一个是数据,另一个是指向该结构体变量类型的指针,用以指明链表的下一个结点。c<=6)A(c%2!=l)(19)若有条件表达式(exp)?a+:b,则以下表达式中能完全等价于表达式(exp)的是A)(exp=O)B)(exp!=O)C)(exp=l)D)(exp!=l)(20)以下不正确的定义语句是A)doublex5=2.0,4.0,6.0.8.0.10.0);B)inty5=(0.1,3,5.7.9;C)charcl=,1,2,.,3,4z5';D)charc2=,xl,f×a',x8,);(21)下列程序执行后的输出结果是main()inta33,*p,i;p=a00;for(i=l;i<9;i+)pi=i+l;printf("%dn",al;)A)3B)609D)随机数(22)设有以下程序段intx=0,s=0;while(!x!=O)s+=+x;printf("%d",s);则A)运行程序段后输出0B)运行程序段后输出1C)程序段中的控制表达式是非法的D)程序段执行无限次(23) (23)下面程序段的运行结果是char*s="abcde"s+=2;Printf("%<,s);A)CdeB)字符'c,C)字符'c,的地址D)无确定的揄出结果(24)阅读下列程序.则执行后的结果为einclude"stdio.h"main()intc4=1,2,3,4,5,6,7,34,213,56,62,3,23,12,34,56;printf("%x,%x11w,c22,*(*(c+l)+l);A)3e,6B)62,5C)56,5D)3E,6(25)下面判断正确的是指向要读的文件C)一个指针,指向要读入数据的存放地址D)一个存储区,存放要读的数据项(38)设有以下语句charx=3,y=6,z;z=xy<<2;则z的二进制值是A)00010100B)00011011C)0001HOOD)00011000(39)在C语言中,只有在使用时才占用内存单元的变量,其存储类型是A)auto和registerB)extern和registerC)auto和staticD)static和register(40)设有定义语句int(*f)(int);,则以下叙述正确的是A)f是基类型为int的指针变量B)f是指向函数的指针变量,该函数具有一个int类型的形参C)是指向int类型一维数组的指针变量)是函数名,该函数的返回值是基类型为int类型的地址二、填空题请将每一个空的正确答案写在答题卡序号的横线上,答在试卷上不给分。(1)测试用例包括输入值集和【1】值集。(2)在树形结构中,树根结点没有【2】0(3)数据结构分为逻辑结构与存储结构,线性链表属于【3】o(4) 一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体"项目主管"与实体"项目”的联系展于1J的联系I)(5)数据库设计分为以下6个设计阶段:需求分析阶段、【5】、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。(6)阅读下面程序段,则执行后输出的结果是6。#include"stdio.h"nain()charfun(char,int);chara='A';intb=13;a=fn(a,b);putchar(八);charfun(chara,intb)main()intx=l,y=O,a=O,b=O:switch(x)case1:switch(y)case0:a+;break;case1:b+;break;)case2:a+;b+;break;case3:a+;b+;)printfC,a=%d.b=%dn',a.b);)(IO)以下程序的输出结果是11Ofun(intx,inty.intz)z=x*x+y*y;)main()inta=31:fun(6,3.a)printf("%d",a)(11)函数mymp()的功能是比较字符串S和t的大小,当S等于t时返回0,否则返回S和t的笫一个不同字符的ASCIl码差值,即s>t时返回正值,s<t时返回负值。请填空。My_cmp(char*s,char*t)while(*s=*t)if(*s='0)returnO;+s;+÷t:return12;)(12)以下程序的输出结果是【13】。voidreverse(inta,intn)inti.t;for(i=0;i<n2;i+)t=ai;ai=an-l-i;an-l-i=t;)main()intb10=l,2,3,4,5,6,7,8,9,10;inti,s=0:和依据;作为确认测试和脸收的依据。(5) C【解析】算法的复杂度主要包括算法的时间复杂度和空间复杂度。所谓算法的时间复杂度是指执行算法所需要的计算工作量,即算法执行过程中所需要的基本运算的次数;算法的空间复杂度一般是指执行这个算法所需要的内存空间。(6) B【解析】堆排序的比较次数为nlog2n;直接插入排序的比较次数为n(n-l)2;快速排序的比较次数为nlog2n当数据表A中每个元素(7)B【解析】栈操作原则上后进先出”,栈底至栈顶依次存放元素A、B、C、D,则表明这4个元素中D是最后进栈,B、C处于中间,A最早进栈,所以出栈时一定是先出D,再出C,最后出A。(8)【解析】数据库设计包括数据库概念设计和数据库逻辑设计两个方面的内容。(9)A【解析】关系表中,每一行称为一个元组,对应表中的一条记录;每一列称为一个属性,对应表中的一个字段;在二维表中凡能唯一标识元组的最小属性集称为该表的键或码。(IO)C【解析】"选课SC"表是"学生夕表和"课程C"表的映射表,主键是两个表主键的组合。(三)D【解析】在C语言所有的运算符中,逗号运算符的优先级最低。C语言中区分大小写,所以APII和aph是两个不同的变量。赋值表达式a=b表示将b的值付给a,而b本身的值保持不变;通过键盘可以向计算机转人允许的任何类型的数据。选项D)中当从键盘输入数据时,对于整型变量可以输入整型数值和字符,对于实型变量可以输入实型数值和整型数值等。(12)B【解析】C语言规定用户标识符由字母、数字和下划线组成,且第一个字符必须是字母或下划线,可见选项C),D)是错误的;此外,C语言不允许用户将关键字作为标识符,而选项A)中的VOid正是C语言的关键字。(13)B【解析】C语言的语法规定,字母e(E)之前必须有数字,且e(E)后面的指数必须是整数,而选项B)中,e(E)后面的指数是小数,所以不合法。(14)A1?析】在C语言中运算符两侧的运算数必须是整型。(15)【解析】赋值运算符左侧的操作数必须是一个变量,而不能是表达式或者常量,选项C)和D)错误。"犷运算符两侧都应当是整型数据,选项B)错误。(16)D【解析】输出格式控制符睨表示将变量以字符的形式输出;输出格式控制符%d表示将变量以带符号的十进制整型数输出,所以第一个输出语句输出的结果为a,97;第二个输出语句输出的结果为素的下标,所以if()中的条件是ajT!=ai,其中ajT就是新数组中的最后一个元素,若条件成立则表示出现了不同的值,所以ai要留到新数组中。注本题中i、j的初值都要从1开始,该算法只能用于数组已排序的题目中。(9) 10a=2,b=l【解析】本题考查了SWitCh结构的内容(IC语言中,程序执行完一个case标号的内容后,如果没有break语句,控制结构会转移到下一个CaSe维续执行因为CaSe常量表达式只是起语句标号作用,并不是在该处进行条件判断。本题程序在执行完内部switch结构后,继续执行了外部switch结构的case2:分支.最后a和b的值分别为2和Io(10) 1131【解析】在函数调用时,形参值的改变,不会改变实参值。(11) 12*s-*t【解析】两字符串大小比较必须从它们的首字符开始,在对应字符相等情况下循环,直至不相等结束。相等时,若字符串已到了字符串的结束标记符,则两字符串相同,函数返回0值;如还有后继字符,则准备比较下一对字符。对应字符不相同,循环结束。循环结束时,就以两个当前字符的差返回,所以在空框处应填入*s-*t,保证在S>t时,返回正值,当S<t时,返回负值。(12) 1322【解析】在main函数中.调用reverse函数将b数组中的前8个成员进行互置,执行完毕后,b数组中的成员为8,7,6,5,4,3,2,1,9,10),然后再执行for循环结构,将b6,b7.b9的值相力,结果为22。(13) 14PER【解析】本题中,typedef声明新的类型名PER来代替巳有的类型名,PER代表上面指定的一个结构体类型,此时,也可以用PER来定义变量。(14) 15“filea.dat",“r”【解析】f。Pen函数的调用方式通常为fopen(文件名,使用文件方式)。本题中要求程序可以打开filea.dat文件,并且是要读取文件中的内容,所以空白处应当填入"filea.dat","r"o2025年全国计算机等级考试二级C语Ir全宾模拟试卷及答案(三)一、选择题在下列各题的A>、B),C),D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。(1)软件是指A)程序B)程序和文档C)算法加数据结构D)程序、数据与相关文档的完整集合(2)检查软件产品是否符合需求定义的过程称为A)确认测试B)集成测试C)验证测试D)验收测试(3)以下不属于对象的基本特点的是A)分类性B)多态性C)继承性D)封装性(4)在设计程序时,应采纳的原则之一是A)不限制goto语句的使用B)减少或取消注解行C)程序越短越好D)程序结构应有助于读者理解(5)下列叙述中正确的是A)程序执行的效率与数据的存储结构密切相关B)程序执行的效率只取决于程序的控制结构C)程序执行的效率只取决于所处理的数据量D)以上三种说法都不对(6)数据结构中,与所使用的计算机无关的是数据的A)存储结构B)物理结构C)逻辑结构D)物理和存储结构(7)线性表的顺序存储结构和线性表的链式存储结构分别是A)顺序存取的存储结构、顺序存取的存储结构R)随机存取的存储结构、顺序存取的存储结构C)随机存取的存储结构、随机存取的存储结构D)任意存取的存储结构、任意存取的存储结构(8)树是结点的集合.它的根结点数目是A)有且只有1B)I或多于1C)O或1D)至少2(9)下列有关数据库的描述,正确的是A)数据库是一个DBF文件B)数据库是一个关系C)数据库是一个结构化的数据集合D)数据库是一组文件(10)数据库、数据库系统和数据库管理系统之间的关系是A)数据库包括数据库系统和数据库管理系统B)数据库系统包括数据库和数据库管理系统C)数据库管理系统包括数据库和数据库系统D)三者没有明显的包含关系(11)以下4个选项中,不能看作一条语句的是A);B)a=5.b=2.5,c=3.6;C)if(a<5);D)if(b!=5)x=2;y=6;(12)下面四个选项中,均是不合法的用户标识符的选项是)PJ)doB)floatlaO_AC)b-agotointD)_123tempint(13)以下选项中不属于字符常量的是A)'C'B)''C''C)'xCC'D),072,Ointx3=l,2,3,4,5,6;D)intx23=1.2,3,4,5,6);(25)下面说明不正确的是A)chara10="china"B)chara10,*p=a;p="china"C)char*a;a="china"D)chara10I,*p;p=a="china"(26)若有定义:inia23;,以下选项中对a数组元素正确引用的是A)a2!lB)aC)a03D)al>2!l(27)若要求从键盘读入含有空格字符的字符串.应使用函数)getc()B)getsOC)getchar()D)scanf()(28)阅读下列程序段,则程序的输出结果为WinCIUde"stdio.h"SdefineM(X,Y)(X)*(Y)defineN(X,Y)(X)Z(Y)main()inta=5,b=6,c=8,k;k=N(M(a,b),c);printf("%dn",k);A)3B)5C)6D)8(29)在16位IBM-PC机上使用C语言,若有如下定义structdatainti;charch;doublef;b;则结构变量b占用内存的字节数是A)lB)2C)7D)ll(30)有以下程序ftinclude<stdio.h>main()FI1.E*fp;inti,a6=(l,2,3,4,5,6);fp=fopen("d3.dat","u,+b");fwrite(a.sizeof(int).6.fp);fseek(fp.sizeof(int)*3,SEEK_SET);*该语甸使读文件的位置指针从文件头向后移动3个int型破据*/fread(a,sizeof(int),3,fp);fclose(fp):for(i=0;i<6;i+)printf("%d,",ai);程序运行后的输出结果是)4,5,6,4,5,6,B)1,2,3,4,5,6,C)4,5,6,1,2,3,D)6,5,4,3,2,l.(31)有以下程序include<stdio.h>main()ints12=l,2,3,4,4,3,2,l,lJ,2,3,c5=0,i;for(i=0;i<12;i+)csi+;for(i=l;i<5;i+)printf("%d",ci);printf(Bn");)程序的运行结果是)1234B)2344C)4332D)1123(32)有以下程序include<stdio.h>voidfn(int*a,intn)*fun函数的功能是将a所指数组元素从大到小排序*/intt,i,J;for(i=0;i<n-l;j+)for(j=i+l;j<n;j+)if(ai<aj)t=ai;ai=aj;aj=t;)main()intc10=l,2,3,4,5,6,7,8,9,0,i;fun(c+4,6);for(i=0;i<10:i+)printf("%d,",ci);printf("n");程序的运行结果是A)1,2,3,4,5,6,7,8,9,0,B)0,9,8,7,6,5,1,2,3,4,00,9,8,7,6,5,4,3,2,1,D)1,2,3,4,9,8,7,6,5,0,(33)下面程序的输出结果是include<stdio.h>include<string.h>main()char*pl=wabc",*p2="BCw.str50='xyz"strcpy(str+2,strcat(pl,p2);printf("%sn",str);A)XyzabcABCB)zabcABCC)XyabCABCD)yzabcABCwhile(*t+=*s+)!=0);main()charss10三"acc",aa10三"bbxxyy"un(ss,aa);printf("%s,%snn,ss,aa);)程序的运行结果是A)accxyy,bbxxyyB)acc.bbxxyyC)accxxyy,bbxxyyD)accbbxxyy,bbxxyy二、填空题请将每一个空的正确答案写在答题卡序号的横线上,答在试卷上不给分。(1)需求分析的最终结果是产生1】o(2)为了便于对照检查,测试用例应由输入数据和预期的【2】两部分组成。(3)数据结构分为逻辑结构与存储结构,线性链表属于30(4)某二叉树中度为2的结点有18个,则该二叉树中有1个叶子结点。(5)5是数据库设计的核心。(6)巳有定义:Charc=,;inta=l,b;(此欠C的初值为空格字符),执行b=!c&&a;后b的值为【6】0(7)设变量巳正确定义为整型,则表达式n=i=2,+i,i+的值为7o(8)下面程序的功能是:计算110之间的奇数之和与偶数之和,请填空。ftinclude<stdio.h>main()inta,b.c,I;a=c=0;for(1=0;I<=10;I+=2)a+=I;8;c+=b;Printf("偶数之和=%dn",a);Printf("奇数之和=%dn",cTl);(9)以下函数rotate的功能是:将a所指N行N列的二维数组中的最后一行放到b所指二维数组的第0列中,把a所指二维数组中的第O行放到b所指二维数组的最后一列中,b所指二维数组中其他数据不变。#defineN4Voidrotade(intaN,intbN)intI,j;for(I=0I<N;1+)blN-U=9;10=aN-ll:(10)以下程序的输出结果是11。include<stdio.h>voidswap(int*a,int*b)int*t;t=a;a=b;b=t;main()inti=3,j=5,*p=fti.*q=&j;swap(p,q);printf("%d%dn",*p.*q);)(11)下面程序的运行结果是【12】oWincludeCstdio.h>/defineSIZE12main()charsSIZE;intI;for(1=0;KSIZE;I+)sl=z,+1+321;sub(s,7,SIZE-1);for(1=0;KSIZE;I+)printf("%c",sl);printfC,n");)sub(char*ci,inttl,intt2)charch;while(tl<t2)ch=*(a+tl);*(a+tl)=*(a+t2);*(a+t2)=ch;tl+;t2;(12)以下程序的输出结果是【13】oWinCIUde<stdio.h>main()inta5三2,4,6,8,10),*p:p=a;p+;printf("%d",*p);(18)B【解析】本题考查逻辑与运算的运算规则。其规则是:当运算符前后两个条件表达式都满足时,其最终结果才为真。当发现第一个表达式的值为假,计算机将不再执行后面表达式的运算。本题中,由于前一个表达式的值为"假,所以,后面的表达式不再进行运算,因而n的值保持不变,仍为2。(19)B【解析】两个if语句的判断条件都不满足,程序只执行了c=a这条语句,所以变量C的值等于3,变量b的值没有变化,程序输出的结果为3,5,3。(20)C【解析】C语言中.switch语句专用于实现多分支结构程序,其特点是各分支清晰而直观。SWitCh后面括号中可以是任何表达式,取其整数部分与各常量表达式进行比较。常量表达式中不能出现变量,且类型必须是整型、字符型或枚举型,各常量表达式各不相同。(2DC【解析】本题考察变量的自加"+”和自减.一问题。当y的值为9、6或3时,if语句的条件成立,执行输出语句,输出表达式一丫的值,y的自减要先于输出语句执行,故输出结果为852。(22)C【解析】dowhile语句的一般形式为:d。循环体语句WhiIe(表达式);,其中循环体语句可以是复合型语句,但必须用花括号括起来。whiIe后必须要有分号作为语句的结束,在do-while循环中,不可以省略While。(23)D【解析】在程序中指针变量P初始指向a3,执行P减1后,P指向a2,语句y=*p的作用是把a2的值赋给变量y,所以输出为y=3o(24)B【解析】二维数组的初始化有以下几种形式:分行进行初始化;不分行进行初始化;部分数组元素进行初始化;省略第一维的定义,不省略第二维的定义。选项B)等号右边分了3行,大于等号左边数组的行数2。(25)D【解析】C语言中操作一个字符串常量的方法有:将字符串常量存放在一个字符数组之中;用字符指针指向字符串,然后通过字符指针来访问字符串存储区域。当字符串常量在表达式中出现时,根据数组的类型转换规则,将其转换成字符指针。本题D)项中错误的关键是对数组初始化时,可以在变量定义时整体赋初值,但不能在赋值语句中整体赋值。(26)D【解析】C语言中数组下标是从0开始的,所以二维数组a23的第一维下标取值为0、1;第二维的下标取值为0、1、2,因而选项A)、B)、C)都是错误的,选项D)表示数组元素a