二级C语言真题2009年3月答案.doc

上传人:王申宇 文档编号:1473753 上传时间:2020-07-12 格式:DOC 页数:14 大小:56.50KB
下载 相关 举报
二级C语言真题2009年3月答案.doc_第1页
第1页 / 共14页
二级C语言真题2009年3月答案.doc_第2页
第2页 / 共14页
二级C语言真题2009年3月答案.doc_第3页
第3页 / 共14页
二级C语言真题2009年3月答案.doc_第4页
第4页 / 共14页
二级C语言真题2009年3月答案.doc_第5页
第5页 / 共14页
亲,该文档总共14页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、二级C语言真题2009年3月答案真题 120一、选择题 下列各题A、B、C、D 四个选项中,只有一个选项是正确的。第1题:参考答案:D答案解析:知识点 线性表及其顺序存储结构、栈和队列的特点、线性链表的概念 栈是种特殊的线性表,这种线性表只能在固定的端进行插入和删除操作,允许插入和删除的端称为栈顶,另端称为栈底。个新元素只能从栈顶一端进入,删除时,只能删除栈项的元素,即刚刚被插入的元素。所以栈又称“后进先出”表,所以选项A是错误的。队列可看作是插入在端进行,删除在另端进行的线性表,允许插入的端称为队尾,允许删除的端称为队头。在队列中,只能删除队头元素,队列的最后个元素定是最新入队的元素。因此队

2、列又称“先进先出”表,所以选项B是错误的,循环队队列是将队列存储空间的最后个位置绕到第个位置,形成逻辑上的环状空间,供队列循环使用。它的逻辑结构仍然是线性结构,所以选项C是错误的。有序线性表既可以采用顺序存储结构,也可以采用链式存储结构,所以选项D是正确的。第2题:参考答案:B答案解析:知识点 树、二叉树的结构特点 子程序调用是种层次关系,子程序调用功能模块,且调用功能模块的个数也不确定,可以是个,也可以是多个。选项A、C中元素之间是种前后件关系,前后元素之间没有层次之分,每个结点有个前件也只有w个后件。二叉树是一种很有用的非线性结构,它不同于树形结构,具有以下两个特点:1)非空二叉树只有一个

3、根结点;2)每一个结点最多有两棵子树,且分别称为该点的左子树与右子树。所以选项D规定每个结点只能有两个后件。在子程序调用中,调用的功能模块可以是多个,可以调用超过两个功能模块。所以选项A、C、D均不正确。第3题:参考答案:C答案解析:知识点 二叉树的基本性质 在任意一棵二叉树中,度为0的结点(即子叶结点)总比度为2的结点多一个。本题中度为2的结点数为5,故叶子结点数为5+16个。第4题:参考答案:D答案解析:知识点 排序技术 (1)冒泡排序法:是种最简单的交换类排法,它是通过相邻数据元素的交换逐步将线性表变成有序。假设线性表的长度为n,则在最坏情况下,冒泡排序需要经过n/2遍的从前往后的扫描和

4、n/2遍的从后往前的扫描,需要比较的次数为n(n-1)/2次。 (2)直接插入排序法:在直接插入排序法中,每次比较后最多移掉个逆序,因此,选种排序方法的效率与冒泡排序法相同。在最坏情况下,直接插入排序需要n(n-1)/2次比较。 (3)简单选择排序法:对于长度为n的新台阶列。选择排序需要扫描n-1遍,每遍扫描均从剩下的子表中选出最小的元素,然后将该最小的元素与子表中的第个元素进行交换。简单选择选择排序法在最坏情况下需要比较n(n-1)/2次。 (4)堆排序法:堆排序的方法为:首先将个无序序列建成。然后将堆顶元素(序列中的最大项)与堆中最后个元素交换(最大项应该在序列的最后)。在最坏情况下,堆排

5、序需要比较的次数为0(nlog2n)。假设线性表的长度为16,那么冒泡排序、直接插入排序、简单选择排序都需要比较120次,而堆排序需要比较64次。第5题:参考答案:C答案解析:知识点 常见软件的种类及含义 软件按功能可以分为:应用软件、系统软件、支撑软件(或工具软件)。应用软件是为解决特定领域的应用而开发的软件。例如,事务处理软件,工程与科学计算软件,实时处理软件,嵌入式软件,人工智能软件等应用性质不同的软件。因此选项C教务管理系统属于应用软件。系统软件是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件,如操作系统,编译程序,汇编程序,网络软件,数据库管理系统等。因此选项

6、A、B、D都属于系统软件。第6题:参考答案:A答案解析:知识点 软件测试与调试的目的 1983年IEEE将软件测试定义为:使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。因此选项A的叙述是错误的。软件测试的基本准则为:(1)所有测试都应追溯到需求。(2)严格执行测试计划,排除测试的随意性。 (3)充分注意测试中的群集现象。(4)程序员应避免检查自己的程序。(5)穷举测试不可能 。(6)妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便。因此选项D正确。在对程序进行了成功的测试之后将进入程序调试(通常称Debu

7、g,即排错)。因此选项C正确。程序调试的任务是诊断和改正程序中的错误。程序调试的基本步骤: (1)错误定位。(2)修改设计和代码,以排除错误。 (3)进行回归测试,防止引进新的错误。因此选项B是正确的。第7题:参考答案:B答案解析:知识点 软件设计的基本原理 (1)内聚性:内聚性是个模块内部各个元素间彼此结合的紧密程度的度量。(2)耦合性;耦合性是模块间互相连接的紧密程度的度量。因此选项c、D是错误的。在程序结构中,各模块的内聚性越强,则耦合性越弱。般较优秀的软件设计,应尽量做到内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性,因此选项A是错误的;应该降低耦合性

8、提高内聚性,所以选项B是正确的。第8题:参考答案:A答案解析:知识点 数据库设计与管理 数据库应用系统是数据库系统再加上应用软件及应用界面这三者所组成,具体包括:数据库、数据库管理系统、数据库管理员、硬件平台、软件平台、应用软件、应用界面。在数据库应用系统中的个核心问题就是设计个能满足用户要求,性能良好的数据库,这就是数据库设计。所以选项A是正确的。第9题:参考答案:B答案解析:知识点 专门的关系运算的特点 专门的关系运算包括:选择、投影和连接。 (1)选择;从关系中找出满足给定条件的元组的操作称为选择,选择是从行的角度进行的运算,即从水平方向抽取记录。 (2)投影:从关系模式中指定若干个属性

9、组成新的关系。投影是从列的角度进行的运算,相当于对关系进行垂直分解。 (3)连接:连接是关系的横向结合。连接运算将两个关系模式拼接成个更宽的关系模式,生成的新关系中包含满足连接条件的元组。连接过程是通过连接条件来控制的,连接条件中将出现两个表中的公共属性名,或者具有相同语义、可比的属性。选择和投影运算的操作对象只是个表,相当于对个二维表进行切割。连接运算需要两个表操作为操作对象。由图可知关系R通过运算得到关系S,关系S与关系R相比,记录的条数没有发生变化,属性的个数发生了变化。因此所使用的运算应该是投影。选项C插入运算会增加记录的条数,所以选项B是正确的。第10题:参考答案:C答案解析:知识点

10、 数据库的逻辑设计 将E-R图转换为关系横式时,实体和联系都可以表示成关系,E-R图中属性也可以转换成关系的属性。实体集也可以转换成关系。第11题:参考答案:C答案解析:C语言中合法标识符的命名规则是:标识符可以由字母、数字和下划线组成,并且第个字符必须为字母或下划线。所以选项A、B和D都是错误的。第12题:参考答案:B答案解析:基本型的整型变量用类型名关键字int进行定义,当定义时,编译程序仅为K开辟存储单元,而没有在存储单元中存放任何初值,此时变量中的值是无意义的,称变量值“无定义”。第13题:参考答案:D答案解析:在C语言中,有整型常量、实型常量、字符常量和字符串常量等类型。整型常量和实

11、型常量又称数值型常量。基本整型常量只能用数字表示,不带小数点,例如12、-1和0等,在VC6.0中可以在整型常量的后面加个字母l(L的小写)或L;实型常量必须用带小数点的数表示,例如3.14159、-2.71828、0.0等;选项A中字母o不符合要求,选顶B中超出八进制的范围,选项C中e后面的不为整数,因此选顶D是正确的。第14题:参考答案:D答案解析:选项D中,2*x表达式的结果为4,x+=2的结果为4,由于2*x时x的值没有改变,所以最终结果不等于6,因此选项D是错误的。第15题:参考答案:A答案解析:在printf函数常用的格式说明中,每个格式说明都必须用“%”开头,以个格式字符作为结束

12、,在此之间可以根据需要插入“宽度说明”、左对齐符号“-”、前导零符号“0”等。本题中用到了d和f,d代表输出符号的十进制整型数,f代表以带小数点的数学形式输出浮点数(单精度和双精度数)。对于float和double类型的实数,可以用“n1.n2”的形式来指定输出宽度(n1和n2分别代表个整常数),其中n1指定输出数据的宽度(包括小数点),n2指定小数点后小数位的位数,由于输出格式是以紧凑格式输出,因此选项A是正确的。第16题:参考答案:C答案解析:scanf函数的般调用形式为: scanf(格式控制输入项1,输入项2,) 选项B中,&x前面少了逗号,因此选项B错误。scanf函数要求输入项必须

13、是地址表达式,因此选项A、D错误,又因为变量x和变量y是双精度型的,因此在输入时必须以f(lf)或e(le)的形式,因此选项C是正确的。第17题:参考答案:D答案解析:本题主要考查关于if语句的说明,if后面圆括号中的表达式,可是任意合法的C语言表达式(如:逻辑表达式、关系表达式、算术表达式、赋值表达式等),也可以是任意类型的数据(如:整型、实型、字符型、指针型等。)第18题:参考答案:B答案解析:本题考查的是if-else语句的执行过程当条件表达式x=3时,由于if语句末尾直接是分号,没有语句,因此没有语句执行;否则,即当条件表达式x3时转向else语句,如果x!=10执行printf语句,

14、因此输入的x的范围应该是大于3且不等于10的整数。第19题:参考答案:C答案解析:本题主要考查的是自加,自减运算符以及逻辑运算符的应用,需要注意“&”和“|”的“短路”运算。当运算符“&”左边表达式的值为0时,则右边表达式就不再进行运算,整个表达式的值即为0;当运算符“|”左边表达式的值为非零时 ,则右边表达式就不再进行运算,整个表达式的值为1。 程序首先对变量a、b、c初始化,然后执行第一个个if语句,计算表达式“a1&b+2”的值,因为a=1,所以左边表达式的值为1,因此接着判断b+2是否成立,由于b+表示在使用用后再将b加1,因此b+2的值为1所以表达式a1&b+2的值为1,即if语句的

15、条件成立。接着执行第二个if语句,计算表达式“b!=2|c-!=3”的值,因b=3 ,所以b!=2的值为1,则表达式c-!=3就不再进行运算,整个表达式的值为1,因为第二个if语句的条件成立,执行其后的printf(%d,%d,%dn,a,b,C.语句,输出变量a、b、c的值,此时a=1、 b=1、c=3,因此输出1,3,3。第20题:参考答案:D答案解析:本题考查的是for循环语句的使用以及分号“;”的使用,第一层for循环由于i两次自增运算故执行两次,每执行一次第一层for循环,第二条for循环语句执行三次,但由于语句后面加了分号,因此这一条空循环语句,结果当第一层的for语句执行完,跳出

16、整个循环语句后,执行printf语句,因此执行一次printf语句,选项D是正确的。第21题:参考答案:C答案解析:本题考查的是do-while语句的使用,do-while执行的过程是当while后面对括号中表达式的值为非0时,转去执行循环体,当值为0时,退出循环。本题定义了个指针变量s,并使得s指向字符串ABC,的首地址,即把字符A的地址赋给s,因为do-while语句是先执行循环体再进行循环条件的判断,因此先执行printf语句,“s%10”是s对10的取模运算,第字符A的ASCII码为65,故“65%10”取模运算结果为5,因此输出5,接着执行s+,s指向字符串的下个字符,当字符串中字符

17、没有循环完时,继续执行do-while语句,以此类推,B和C的分别为6和7,因此,选项C是正确的。第22题:参考答案:D答案解析:本题主要考查了while和for循环语句的执行过程。for循环的一般形式如下: for(表达式1;表达式2;表达式3)循环体 for循环的执行过程如下: 计算表达式1; 计算表达式2。若其值为非o,转步骤3;若其值为0,转步骤5; 执行次for循环体: 计算表达式3,转向步骤2: 结束循环。 在选项D中,由于for循环语句末尾直接是分号,没有循环体,因此可以将其看做条空循环语句,循环体部分可以忽略。程序首先在for循环语句外为变量n赋初值0,在for循环中,先执行表

18、达式“cb=getchar();”,getchar函数用于输入字符,因此程序首先将输入的字符赋值绐变量ch,然后执行表达式“ch!=n;”,判断输入的字符是否为回车,如果此时输入的字符是回车,结束循环,所以D选项错误。第23题:参考答案:A答案解析:本题主要考查的是输入,输出函数的格式说明,其中d代表带符号的十进制整型数,c代表个字符,由于输出格式为12,a,34,b;中间没有任何的空格,因此输入时格式应该是:12a34bCR,因此,选项A是正确的。第24题:参考答案:B答案解析:本题考查的是函数的嵌套调用和参数传递,先执行main函数,第次调用f(a,B.,将参数a,b的值传递给函数f中对应

19、开参x,y,然后返回表达式“(y-x)*x););”的运算结果,即:(4-3)*33,所以函数结果为3;第二次调用f(a,C.,将参数a,c的值传递给函数f中对应形参x,y,然后返回表达式“(y-x)*x);”的运算结果,即:(5-3)*3=6,所以函数返回值为6;第三次调用函数f,使用的参数是前两次调用的结果,即:f(3,6),将参数值传递给函数f中对应形参x,y,返回的结果为9,因此,选项B是正确的。第25题:参考答案:A答案解析:本题主要考查函数的调用以及字符的ASCII码值,由while循环语句可知,如果字符的ASCII码值为偶数就输出该字符,否则不输出,因为s的ASSCII码值为10

20、3;o的码值为111,d的码值为100,所以程序输出结果是d,因此,选项A是正确的。第26题:参考答案:B答案解析:本题主要考查的是函数的实参和形参之间的传递关系,C语言中实参变量和形参变量之间的数据传递是单向的“值传递”方式。指针变量作函数参数也要遵循这一规则。调用函数不可能改变实参指针变量的值。所以x和y的地址并没有改变,即p和q也没有改变,因此,选项B是正确的。第27题:参考答案:A答案解析:本题主要考查函数实参和形参之间的传递,C语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递,只能由实参传绐形参,而不能由形参传回来给实参。f(r&n)把n的地址传递给q,通过地址传递的函

21、数可以有返回值,因此,n的值为q的返回值3,又因为p是形参变量没有返回值,所以m的值没有改变,因此,选项A是正确的。第28题:参考答案:C答案解析:本题主要考查输出换行的问题,要求每行8个输出,因此,下划线处应填的语句是if(i%80)printf(n);选项A相当于空行,前七个数每输出个数换行,从第八个数以后不换行输出剩下的数。选项B相当于前八个数不输出,从第九个数开始不换行输出剩下的数。选项D相当于不换行从数组中的第二个数开始输出,凡是i对8取模为0的数,均不输出。所以选项C是正确的。第29题:参考答案:B答案解析:本题主要考查的是数组的引用,在C语言中,个数组不能整体引用。在选项A中,*

22、&X10属于地址越界;选项C中,*(pt+10)也是地址越界。选项D中,pt+3是将指针P,后移三个元素,指向x3),并没有对数据元素进行引用。在C语言中,可以用对数组名加个整数的方法,来依次表示该数组中不同元素的地址,因此,选项B是正确的。第30题:参考答案:C答案解析:本题考查的是scanf函数格式的说明,s代表输入一个字符数组,而不是地址,因此,选项C不符合题意。第31题:参考答案:A答案解析:本题主要考查了字符数组的赋值,字符数组中的一个元素存放一个字符,所以数组元素a0、a1、a2和a3中依次存放了a、e、g、i,因此,在执行for循环时,四次的输出结果为a、e、g、i,因此选项A是

23、正确的。第32题:参考答案:D答案解析:选项A和选项C中,都是绐数组第个元素赋初值,因为在C语言中,定义的数组名可以认为是个存入地址值的指针变量名,其中的地址值是数组第个元素的地址,即在默认情况下,程序使用数组名是指向该数组的首地址, 个地址只能存入一个数据,因此这两个选项是错误的;选项B和选项D都是用字符指针指向个字符串,它只能指向个字符变量或其他字符类型数据,不能同时指向多个字符数据,更不能把这些字符存放到变量中(指针变量只能存放地址),因此选项B是错误的,只有选项D是正确的。第33题:参考答案:B答案解析:在主函数中,第次调用fun函数,将变量b,c的值传给形参x,y,在fun()函数中

24、执行if语句,判断b和c的值是否相等,由于在主函数中赋初值b=5,c=6,所以判断条件不满足,执行else语句,返回表达式(x+y)/2的值,即:(5+6)/2,因为参数的类型都为int型,所以结果也为整型:5,第二次调用时8和5也不相等,所以返回值为6,因此,选项B是正确的。第34题:参考答案:C答案解析:本题主要考查的是存储分类。C语言中,有两种存储类别:自动类、静态类。有四个与两种存储类别有关的说明符,它们是;auto(自动)、register(寄存器)、static(静态)、extern(外部)。根据题面中“设函数中有整型变量n”可知,变量n是局部变量,当在函数体内部使用static来

25、说明个变量时,可以称该变量为静态局部变量,其与auto、register类的变量有两点本质上的区别; 在整个程运行期间,静态局部变量在内存的静态存储区中占据着永久性的存储单元; 静态局部变量的初值是在编译时赋予的,不是在程序执行期间赋予(自动变量是在程执行过程中赋初值)。对未赋初值的静态局部变量,C编译程序自动给它赋初值0。所以,要保证变量n在未赋初值的情况下初值为0,应选择的存储类别是static。第35题:参考答案:C答案解析:程序在执行for循环中,第次调用fun()函数时,因为变量i的值为2,所以&ai指向a2),值为3,又因为b是全局变量,所以在fun函数中可以直接使用,执行“b=*

26、k+b;”,即b=3+2=5,从被调函数中返回的值为5,此时全局变量b的值也变为5,所以由main()函数中执行语句“b=fun(&ai)+b;”的结果b=5+5=10,因此第次输出b的值为10;第二次调用时变量i的值为3,调用 fun函数的返回值为14,所以第二次输出28,此时for循环中,变量i=4,不符合循环条件i4,跳出循环,故选项C是正确的。第36题:参考答案:D答案解析:本题考查的是宏定义。带参数的宏定义是按#define命令行中指定的字符串从左到右进行转换,其定义的般形式为:#define宏名(参数表)字符串,因此在程序中宏定义后面不能有分号“;”,所以程序运行出错,没有输出结果

27、, 因此,选项D是正确的。第37题:参考答案:B答案解析:本题主要考查了结构体变量成员的引用,有三种形式来引用结构体变量中的成员:(1)结构体变量名.成员名:(2)指针变量名-成员名;(3)(*指针变量名).成员名。其中点号“.”称为成员运算符;箭头“-”称为结构指向运算符。由于p-x指向了结构体的的成员x,而结构体中x的值为1,因此自增后变为2,p-y指向了结构体的成员y,而结构体中y的值为2,因此自增后变为3,因此,选项B是正确的。第38题:参考答案:D答案解析:已知表达式(k%nl)?1:0)是判断k是否被n整除余1,如果是,则该表达式的值为1,如果不是则该表达式的值为0,代入到IsDI

28、V(m,5)&IsDIV(m,7)即是判断m被5和7整除是否都余1,因此,选项D是正确的。第39题:参考答案:A答案解析:本题主要考查了C语言的逻辑运算符,先将变量a,b的值转换为2进制数,a=00000101,b=00000001,a先左移 2位结果为00010100,再与b按位或运算,结果为00010101,转换为十进制数为21,因此,选项A是正确的。第40题:参考答案:C答案解析:本题主要考查了文件的打开操作,w是为写而打开文本文件。这时,如果指定的文件不存在,系统将使用在fopen调用中指定的文件名建立个新文件;如果指定的文件已存在,则将从文件的起始位置开始写,文件中原有的内容将全部消

29、失,因此选项C是正确的。二、填空题第41题:参考答案:20详细解答:知识点 栈的特点 栈是限定在端进行插入与删除的线性表。在栈中,允许插入与删除的端称为栈项,而不允许插入与删除的另端称为栈底。栈顶元素总是最后被插入的元素,从而也是最先能被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。即栈是按照“先进后出”或“后进先出”的原则组织据的,因此,栈也被称为“先进后出”表或“后进先出”表。通常用指针top来指示栈顶的位置,用指针bottom指向栈底。由题意可知栈顶指针top=30,bottom=49,则栈中具有的元素应该为bottom-top+1即49-30+120。第42题

30、:参考答案:白盒详细解答:知识点 软件测试 软件测试的方法和技术是多种多样的,若从是否需要执行被测软件的角度,可以分为静态测试和动态测试方法。若按功能划分,可以分为白盒测试和黑盒测试。白盒测试方法也称结构测试或逻辑驱动测试。白盒测试的主要方法有逻辑覆盖、基本路径测试。黑盒测试方法也称功能测试或数据驱动测试。黑盒测试的方法主要有等价类划分法、边界值分析法、错误推测法、因果图等,主要用于软件确认测试。第43题:参考答案:顺序结构详细解答:知识点 结构化原则的三种基本控制结构 结构化程序设计方法是程序设计的先进方法和工具。其中结构化程序设计的三种基本控制构是:选择结构、循环结构、顺序结构。第44题:

31、参考答案:数据库管理系统或DBMS详细解答:知识点 数据库管理系统的基本概念 数据库管理系统是数据库的机构,它是种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等。数据库管理系统是数据库系统的核心。第45题:参考答案:菱形详细解答:知识点 E-R模型的图示法 E-R模型可以用一种非常直观的图的形式表示,这种图称为E-R图。在E-R图中,我们分别用下面不同的几何图形表示E-R模型中的三个概念与两个联接关系。 实体集表示法。在E-R图中用矩形表示实体集,在矩形内写上该实体集的名字。 属性表示法。在E-R图中用椭圆形表示属性,在椭圆形内写上该属性的名称。 联系表示法。在E

32、-R图中用菱形(内写上联系名)表示联系。第46题:参考答案:4详细解答:本题中,在表达式中由于5和2都是整型数,所以5/2结果为2,然后再加2.5,通过“(double)”转换成双精度型,结果为4.5,最后再强制转换成整型为4。第47题:参考答案:x/y=%d详细解答:本题考查的是prIntf语句的输出格式,printf函数的调用形式为:printf(格式控制输出项1,输出项2,),格式控制是字符串形式,所以要在格式控制上加双引号( ),在本题中,输出项“x/y已经给出,所以需要判断的是格式控制部分。除了格式转换说明外,字符串中的其他字符(包括空格)将按原样输出,又因为在格式控制中,每个格式说

33、明都必须用“%”开头,变量x,y都为整型;x除以y的结果11也是整型,所以输出结果需要使用格式字符d,用以输出带符号的十进制整型数,所以本题答案为:x/y=%d。第48题:参考答案:不能详细解答:本题原意想把大与英文字母转换成小写字母,但由于输入数据时不正确致使循环无限制地进行下去,应该输入大写英文字母,因此,本题无输出结果,不能结束运行。第49题:参考答案:s=0详细解答:do-while循环结构的形式如下: do 循环体 while(表达式); 循环的执行过程如下: 执行do后面循环体中的语句。 计算while后对圆括号中表达式的值。当值为非0时,转去执行步骤1;当值为0时,执行步骤3。

34、退出do-while循环。 在本题中先判断k是否为偶数,如果不是则结束本次循环,进行下次的循环条件判定,由于没有改变k的值,k10的不成立,退出do-while循环,执行后面的printf(s=%dn,s);语句,因为s=0,所以输出结果为s=0。第50题:参考答案:1AbCeDf2dF详细解答:本题的执行过程是先从键盘上获得个字符,判断是不是换行符,如果不是则继续执行循环体,再判断字符变量 a是否是偶数以及是否是小写字母,如果a不是偶数且输入的字符为小写字母,则将其转换成大写字母,接着执行a+;语句,变量a自增1,输出字符,因此本题的输出结果为1AbCeDF2dF(a相当于用来记录当前的顺序

35、,即是第偶数个字符还是第奇数个字符)。 字符位数:0 1 2 3 4 5 6 7 8 9 输入字符:1 a b c e d f 2 d f 输出字符:1 A b C e D f 2 d F第51题:参考答案:7777654321详细解答:本题主要考查函数的调用,第次调用把数组元素a2的地址赋给a,此时a1即是原数组的a3等于7,再执行赋值语句a0=a1,则a0和a1中的值都是7,然后再把这个值返回给a2同样地第二次调用的时候函数返回值也是7,第三次调用返回值也是7,因此数组的前4个元素,即对a0、a1、a2和a3的值都为7,当执行第二个for循环时输出数组中所有元素的值7777654321。第

36、52题:参考答案:max(int a,int B.详细解答:在C语言中,除了主函数外,对于用户定义的函数都遵循“先定义,后使用”的规则,若把函数定义放在调用之后,应该在调用之前对函数进行说明(或称为函数原型说明)。 函数的说明形式为: 类型名 函数名(参数类型1,参数类型2) 本题是通过max()函数来求出a和b中较大的数,由于max()函数的位置在main()函数之后,想要在main()函数中调用max()函数,就必须先在main()函数之前对max()函数进行说明,因为当在所有函数外部、被调用之前说明函数时,在对函数进行说明的语句后面所有位置上都可以对该函数进行调用。所以,在横线上应该填上

37、被调函数的说明语句即 max(int a,int B.。第53题:参考答案:NULL详细解答:本题主要考查对文件的打开操作,r是为读而打开文本文件。当指定这种方式时,对打开的文件只能进行“读”操作,若指定的文件不存在,则会出错;另外一些情况,如企图去读个不允许读的文件时,也会出错。当文件运行错误时,使用语句“if(fp=fopen(test.txt,rNULL)”来判断。第54题:参考答案:1001,ChangRong,1098.0详细解答:本题主要考查结构体变量赋初值,刚一开始给a赋值1001,b数组什zhangDa,c赋值1098.0,由于被调函数中引用了结构体成员b,因此在使用strcpy时,strcpy(字符数组1,字符串2),作用是将字符串2复制到字符数组1中, b数组变成了ChangRong,所以在最后输出时,结果为:1001,ChangRong,1098.0。第55题:参考答案:P+详细解答:本题主要考查的是将NODETYPE型的变量链接成个简单的链表,利用typedef把NODETYPE变成struct node的别名,当执行while循环时,首先判断是否到了最后个链表结点,如果没有则引用结构体中的成员data,然后指向下个链表结点,继续判断,因此,此处应填的是p+指向下个链表结点。更多试卷请见麦多课文库

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1