[计算机类试卷]国家二级(C语言)笔试模拟试卷272及答案与解析.doc

上传人:twoload295 文档编号:503437 上传时间:2018-11-29 格式:DOC 页数:27 大小:83KB
下载 相关 举报
[计算机类试卷]国家二级(C语言)笔试模拟试卷272及答案与解析.doc_第1页
第1页 / 共27页
[计算机类试卷]国家二级(C语言)笔试模拟试卷272及答案与解析.doc_第2页
第2页 / 共27页
[计算机类试卷]国家二级(C语言)笔试模拟试卷272及答案与解析.doc_第3页
第3页 / 共27页
[计算机类试卷]国家二级(C语言)笔试模拟试卷272及答案与解析.doc_第4页
第4页 / 共27页
[计算机类试卷]国家二级(C语言)笔试模拟试卷272及答案与解析.doc_第5页
第5页 / 共27页
点击查看更多>>
资源描述

1、国家二级( C语言)笔试模拟试卷 272 及答案与解析 1 数据独立性是数据库技术的重要特点之一。所谓数据独立性是指 ( )。 ( A)数据与程序独立存放 ( B)不同的数据被存放在不同的文件中 ( C)不同的数据只能被对应的应用程序所使用 ( D)以上三种说法都不对 2 待排序的关键码序列为 (33, 18, 9, 25, 67, 82, 53, 95, 12, 70),要按关键码值递增的顺序排序,采取以第一个关键码为基准元素的快速排序法,第一趟排序后关键码 33被放到第 ( )个位置。 ( A) 3 ( B) 5 ( C) 7 ( D) 9 3 下列叙述中正确的是 ( A)一个算法的空间复

2、杂度大 ,则其时间复杂度也必定大 ( B)一个算法的空间复杂度大 ,则其时间复杂度必定小 ( C)一个算法的时间复杂度大 ,则其空间复杂度必定小 ( D)上述三种说法都不对 4 树是结点的集合,它的根结点的数目是 ( )。 ( A)有且只有 1个 ( B) 1或多于 1 ( C) 0或 1 ( D)至少有 2个 5 软件设计包括软件的结构、数据接口和过程设计 ,其中软件的过程设计是指 ( A)模块间的关系 ( B)系统结构部件转换成软件的过程描 述 ( C)软件层次结构 ( D)软件开发过程 6 下列对于软件测试的描述中正确的是 ( )。 ( A)软件测试的目的是证明程序是否正确 ( B)软件

3、测试的目的是使程序运行结果正确 ( C)软件测试的目的是尽可能多地发现程序中的错误 ( D)软件测试的目的是使程序符合结构化原则 7 软件设计包括软件的结构、数据、接口和过程设计,其中软件的过程设计是指( )。 ( A)模块间的关系 ( B)系统结构部件转换成软件的过程描述 ( C)软件层次结构 ( D)软件开发过程 8 下面不属于软件工 程的三个要素的是 _。 ( A)工具 ( B)过程 ( C)方法 ( D)环境 9 数据库系统的核心是 ( A)数据库 ( B)数据库管理系统 ( C)模拟模型 ( D)软件工程 10 在数据管理技术的发展过程中,经历了人工管理阶段、文件系统管理阶段和数据库

4、系统管理阶段。其中数据独立性最高的阶段是 ( )。 ( A)数据库系统 ( B)文件系统 ( C)人工管理 ( D)数据项管理 11 以下程序段中的变量已正确定义: for(i=0; i 4; i+, i+) for(k=1; k3; k+); printf(“*“); 程序段的输出结果是 _。 ( A) * ( B) * ( C) * ( D) * 12 运行下列程序时,若输入数据为 “321”,则输出结果是 ( )。 main() int num, i,j, k, s; scanf(“ d”, 则以下叙述中正确的是 ( )。 ( A)定义了一个基类型为 int的指针变量 p,该变量具有三个

5、指针 ( B)定义了一个指针数组 p,该数组含有三个元素,每个元素都是基类型为 int的指针 ( C)定义了一个名为 *p的整型数组,该数组含有三个 int类型元素 ( D)定义了一个可指向一维数组的指针变量 p,所指一维数组应具有三个 int类型元素 17 如果 int i 3,则 k (+i)+(+i)+(i+)执行过后 k的值为 _, i的值为_。 ( ) ( A) 15, 6 ( B) 12, 5 ( C) 18, 6 ( D) 15, 5 18 若要用下面的程序片段使指针变量 p指向一个存储整型变量 的动态存储单元 int *p; p=_malloc(sizeof(int); 则应填

6、入 _。 ( A) int ( B) int* ( C) (*int) ( D) (int*) 19 有如下程序 main() char ch25=“6937“, “8254“, *p2; int i,j,s=0; for(i=0; i 2; i+) pi=chi; for(i=0; i 2; i+) for(j=0; pij, 0; j+=2) s=10*s+(pij-0); printf(“%dn“,s); 该程序的输出结果是 _。 ( A) 69825 ( B) 63825 ( C) 6385 ( D) 693825 20 以下叙述中正确的是 ( A) C程序中注释部分可以出现在程序中任

7、意合适的地方 ( B)花括号 “和 “只能作为函数体的定界符 ( C)构成 C程序的基本单位是函数,所有函数名都可以由用户命名 ( D)分号是 C语句之间的分隔符,不是语句的一部分 21 设有定义: structchar mark12; int numl; double num2; tl, t2;,若变量均已正确赋初值,则以下语句中错误的是 ( A) tl: t2; ( B) t2 numl=t1 numl: ( C) t2 mark=t1 mark; ( D) t2 nurn2=t1 num2: 22 设 fp为指向某二进制文件的指针,且已读到此文件末尾,则函数 feof(fp)的返回值为

8、( )。 ( A) EOF ( B)非 0值 ( C) 0 ( D) NULL 23 设有: int a=1,b=2,c=3,d=4,m=2,n=2; 执行 (m=a b) float x=3.4,y=2.1;,则下列表达式的值为 ( ) (float) (a+b)/2+(int)%(int)y ( A) 5.5 ( B) 55 ( C) 5.500000 ( D) 55.00000 25 下面程序段的运行结果是 char a=“lanuage“,*p; p=a; while(*p!=u)printf(“%c“,*p-32);p+; ( A) LANGUAGE ( B) language (

9、C) LAN ( D) langUAGE 26 在下列语句中,其含义为 “q是一个函数指针,该指针指向整型数据 ”的定义语句是 ( )。 ( A) int* *q; ( B) int( *q)(); ( C) int*q; ( D) int *q(); 27 C语言中 while和 do-while循环的主要区 别是 _。 ( A) do-while的循环体不能是复合语句 ( B) while的循环控制条件比 do-while的循环控制条件更严格 ( C) do-while允许从外部转到循环体内 ( D) do-while的循环体至少五条件执行一次 28 在 C语言中 ,只有在使用时才占用内存

10、单元的变量 ,其存储类型是 ( A) auto和 register ( B) extern和 register ( C) auto和 static ( D) static和 register 29 以下不能正确进行字符串赋初值的语句是 ( A) char str5=“good!“; ( B) char str=“good!“; ( C) char*srt=“good!“; ( D) char str5= g, o, o, d; 30 有以下函数: mt aaa(char*s) char *t=s; while(*t+); t-; return(t-s); 以下关于 aaa函数的功能的叙述正确的

11、是 ( )。 ( A)求字符串 s的长度 ( B)比较两个串的 大小 ( C)将串 s复制到串 t ( D)求字符串 s所占字节数 31 下列选项中正确的语句是 ( )。 ( A) chars 8; s=“Beijing“; ( B) char*s: s=Bei jing“); ( C) chars 8: s=“Bei jing“; ( D) char*s: s=“Bei jing“; 32 以下语句或语句组中,能正确进行字符串赋值的是 ( )。 ( A) char *sp; *sp=“right!“; ( B) char s10; s=“right!“; ( C) char s10; *s=

12、“right!“; ( D) char *sp=“right!“; 33 有以下程序: main() char s=“n123“; printf(“%d,%dn“,strlen(s),sizeof(s); 执行后输出结果是 ( )。 ( A)赋初值的字符串有错 ( B) 6,7 ( C) 5,6 ( D) 6,6 34 执行以下程序后, a, b的值分别为 main() in a, b, k=4, m=6,*p1= int x=1; x*=n;n+; return x; main() int n, t 1; for(n 1; n 6;n+)t* sub(); printf(“%dn“,t);

13、则程序运行后的输出结果是 ( ) ( A) 15 ( B) 120 ( C) 34560 ( D) -30976 38 有如下程序 main() int i,sum; for(i=1;i =3; sum+)sum +=i; printf(“%dn“,sum); 该程序的执行结果是 _。 ( A) 6 ( B) 3 ( C)死循环 ( D) 0 39 有如下程序: main() int x=23; do printf(“%d“,x-); while(!x); 程序运行后的输出结果是 ( )。 ( A) 321 ( B) 23 ( C)不输出任何内容 ( D)陷入死循环 40 下列选项中非法的表达

14、式是 _。 ( A) 0 =x 100 ( B) i=j=0 ( C) (char)(65+3) ( D) x+1=x+1 41 在下列字符序列中,不可用做 C语言标识符的是 ( ) ( A) student_num ( B) class ( C) #88 ( D) month_12 41 对长度为 10的线性表进行冒泡排序,对坏情况下需要比较的次数为 _ 42 _的目的是分析数据问内在语义关联,在此基础上建立一个数据的抽象模型。 43 软件定义时期主要包括 _和需求分析两个阶段。 44 常用的黑箱测试有等价类划分法、【 】和错误推测法 3种。 45 设二叉树如下: 对该二叉树进行后序遍历的结

15、果为【 】。 46 执行程序时的输入 为 123456789,则程序的运行结果为 _。 #include“stdio h” main() int a, b; scanf(“ 2d *2d 1 d”, int sign; for(;isspace(*s)|islower(*s);s+); sign=(*s=-)?-1:1; if(*s=+|*s=-)s+; for(n=0;isdigit(*s);s+) n=10*n+(*S-0); return sign*n; 48 设某循环队列的容量为 50,头指针 front=5(指向队头元素的前一位置 ),尾指针rear=29(指向队尾元素 ),则该循环

16、队列中共有 ( )个元素。 49 下列程序执行输出 的结果是 _。 #include stdio.h f(int a) int b=0; static c=7; a=c+;b+; return(a); main() int a=2,i,k; for(i=0;i 2;i+) k=f(a+); printf(“%dn“,k); 50 以下程序运行后的输出结果是 _。 fun(int a) int b=0; static int c=3; b+; c+; return(a+b+c); main() int i,a=5; for(i=0;i 3;i+) printf(“%d %d“,i,fun(a);

17、 printf(“n“); 51 下列程序的运行结果为【 】。 #include math h #include stdio h main() int s=1; float n=1, pi=0; double t=1; while(fabs(t) =2e-6) pi+=t; n+=2; s=-s; t=s/n; pi*=4; printf(“pi=% 6fn“, pi); 52 程序的运行结果为【 】。 main() char c1=a,c2=b,c3=c; printf(“a%cb%ctc%cn“,c1,c2,c3); 53 下列程序的运行结果为【 】。 main() int x,y,z;

18、X=12; y=012; z=0l2; printf(“%d,%d,%dn“,x,y,z); 54 函数调用语句: “fgets(buf,n,fp);”从 fp指向的文件中读入, n个字符放到 buf字符数组中,函数返回值为 _。 55 fun函数的功能是:首先对 a所指的 N行 N列的矩阵,找出各行中的最大数,再求这 N个最大值中的最小的那个数作为函数值返回。请填空 _。 #include stdio.h #define N 100 int fun(int(*a)N) int row, col,max,min; for(row=0;row N;row+) for(max=arow0,col=

19、1; col N;col+) if( ) max=arowcol; if(row=0) min=max; else if( ) min=max; return min; 56 下述函数统计 个字符串中的单词个数,单词是指处在空格之间的字符序列,请填空。 int word(char*s) int num=0,flag=0; while(*s) if(【 】 =) flag=0; else if(【 】 )flag=1; num+ return 【 】 ; 国家二级( C语言)笔试模拟试卷 272 答案与解析 1 【正确答案】 D 【试题解析】 数据独立性是数据与程序间的互不依赖性,即数据库中数据

20、独立于应用程序而不依赖于应用程序。所以选项 A,选项 B和选项 C都不正确。 2 【正确答案】 B 【试题解析】 快速排序的基本思想是;从表中选取一个元素 (如本题中的 33),将表中小于此元素的移到前面,大于此元素的移到后面结果把线性表分割成两部分 (两个子表 ),此元素插入到其分界线的位置处。然后分别对两个子表再次分割 本题中 33作为分割的中界线,第一趟排序后排 在比它小的 18、 9、 25、 12后面。 3 【正确答案】 D 【试题解析】 算法的复杂度主要包括时间复杂度和空间复杂度。算法的时间复杂度是指执行算法所需要的计算工作量 ,可以用执行算法过程中所需基本运算的执行次数来度量 ;

21、算法的空间复杂度是指执行这个算法所需要的内存空间。根据各自的定义可知 ,算法的时间复杂度与空间复杂度并不相关。 4 【正确答案】 C 【试题解析】 树具有明显的层次关系,即树是一种层次结构。在树结构中,根结点在第一层上。当树为非空时,树中有且只有一个根结点,当树为空时,树中根结 点的数目为 0。 5 【正确答案】 B 【试题解析】 软件设计包括软件结构设计、数据设计、接口设计和过程设计。其中 ,结构设计是定义软件系统各主要部件之间的关系 ;数据设计是将分析时创建的模型转化为数据结构的定义 ;接口设计是描述软件内部、软件和操作系统之间及软件与人之间如何通信 ;过程设计则是把系统结构部件转换成软件

22、的过程性描述。 6 【正确答案】 C 【试题解析】 软件测试是为了发现错误而执行程序的过程;一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例;一个成功的测试是发现了至今尚未 发现的错误的测试。总的来说,软件测试的目的就是尽可能多地发现程序中的错误。 7 【正确答案】 B 【试题解析】 软件设计包括软件结构设计、数据设计、接口设计和过程设计,其中结构设计是定义软件系统各主要部件之间的关系;数据设计是将分析时创建的模型转化为数据结构的定义;接口设计是描述软件内部、软件和操作系统之间及软件与人之间如何通信;过程设计则是把系统结构部件转换成软件的过程性描述。 8 【正确答案】 D 【试题解析

23、】 软件工程三要素是方法、工具和过程。 9 【正确答案】 B 【试 题解析】 数据库管理系统 (Database Management System,简称 DBMS)是数据库的机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等,数据库管理系统是数据库系统的核心。 10 【正确答案】 A 【试题解析】 从题干中可知,数据项管理不属于数据管理技术的发展阶段,故可排除选项 D;在人工管理阶段,数据与应用程序是一一对应的,数据结构改变时,程序也必须随之修改,数据与程序不具有独立性;在文件系统管理阶段,借助于操作系统中的文件系统,数据可以用 统一格式、以文件形式长

24、期保存在计算机系统中,数据的各种转换以及存储位置的安排也由文件系统来统一管理,使程序与数据之间具有一定的独立性:在数据库系统管理阶段,通过系统提供的映像功能,使数据具有两方面的独立性:一是物理独立性,二是逻辑独立性;保证了数据的完整性、安全性和并发性。由上所述,数据独立性最高的阶段是数据库系统管理阶段。 11 【正确答案】 D 【试题解析】 本题考杏 for循环语句中嵌套 for循环语句的情况。由于第一个for语句没有具体的执行语句,故当 i 0时, k 1时,执行一次语句 printf(“*”);,程序便会跳出整个循环,故运行结果为一个星号。 12 【正确答案】 A 【试题解析】 本题考查

25、if-else语句和 switch 语句。 scanf函数通过键盘读入 num的值。因为 num=32199,所以 s=3, i=3, j=2, k=1。因为 s=3,所以执行 case 3,输出 k, j, i的值,然后通过 break 结束程序。 13 【正确答案】 B 【试题解析】 程序设计语言仅仅使用顺序、选择和重复 (循环 )三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。遵循程序结构化的 设计原则,按结构化程序设计方法设计出的程序易于理解、使用和维护;可以提高编程工作的效率,降低软件的开发成本。 14 【正确答案】 D 【试题解析】 strcat(s1, s2)函数的功

26、能是把 s2字符串连接到 s1字符串的末尾,要保证 s1有足够的空间容纳下连接后的字符串。 15 【正确答案】 A 【试题解析】 C语言规定标识符只能由字母、数字和下划线三种符号组成,而且第一个字符必须是字母或下划线。 D)中的 -max不合法, -既不是字母、数字,也不是下划线; C)中的 3COM第一个字符为数字,不 合法; D)中的 int和 C语言的关键字重名,不合法。 16 【正确答案】 B 【试题解析】 当一个数组中的元素均为指针类型数据时,该数组就称为指针数组。 int *p3表示此数组是指针类型的,每个数组元素 (指针变量 )都是指向一个整型的指针变量。 17 【正确答案】 A

27、 18 【正确答案】 D 【试题解析】 不论 p是指向什么类型的指针变量,都可以通过强制类型转换的方法使之类型一致,强制类型转换的格式为 (数据类型 *)。 19 【正确答案】 C 【试题解析】 本题 “ch25=“6937“,“8254“用于 2行 5列的二维数组初始化,ch00-ch04的值分别为: 6, 9, 3,7, 0; ch10-ch14的值分别为: 8,2, 5, 4, 0;第一个 for循环用于将数组指针分别指向二给数组的第一行和第二行;第二个 for嵌套循环用于取出 p00, p02, p10, p12四个存储单元的数组成一个四位数进行输出。 20 【正确答案】 A 【试题解

28、析】 花括号既可以做函数的定界符,也可以表示复合语句。函数有用户自定函 数和系统函数两种,系统函数名称不能由用户命名。分号是语句间的分隔符,也是一条语句的终止符,是语句的一部分。 21 【正确答案】 C 【试题解析】 结构体中的字符串赋值不能通过指针来赋值。 22 【正确答案】 B 【试题解析】 ANSI C提供的 feof 函数的功能是判断 fp所指的文件的位置是否已达到文件尾,如果达到文件尾,则 feof 函数的值为 1,否则为 0,表示文件尚未结束。 23 【正确答案】 B 【试题解析】 本题考查逻辑与运算的运算规则。其规则是:当运算符前后两个条件表达式都 满足时,其最终结果才为真。当发

29、现第一个表达式的值为假时,计算机将不再执行后面表达式的运算。本题中,由于前一个表达式的值为 “假 ”,所以后面的表达式不再进行运算,因而 n的值保持不变,仍为 2。 24 【正确答案】 C 【试题解析】 在计算 (float)(a+b) /2时,由于通过强制类型转换将 (a+b)转换成了float型,所以应先将 2转换成 float型,再进行计算,得 4.500000。 在计算 (int)x%(int)y 时,先将 x和 y通过强制类型转换成血型,再进行求余运算,得 1。 又因为 4.500000是 float型,所以将 1和它相加时,先将 1换成 float型,再计算,得到 5.500000

30、。 知识扩展 类型转换的一般规则是:低级类型服从高级类型,并进行相应的转换。数据类型的级别由低到高的排序表示为:charintunsignedlongfloatdouble 。 25 【正确答案】 C 【试题解析】 本段程序的作用是输出字符串 “lanuage“中字母 u之前的字符 ,并将其转化为大写字母。注意 :如果一个字符数组用来作为字符串使用 ,那么在定义该字符数组时 ,数组的大小就应该 比它将要实际存放的最长字符多一个元素 ,以存放 0。 26 【正确答案】 B 【试题解析】 本题考查指针函数。其定义的基本格式为:类型说明符 (*函数名 )()。 “类型说明符 ”表示返回的指针值指向的

31、数据类型。 27 【正确答案】 D 28 【正确答案】 A 【试题解析】 在 C语言中只有自动变量和寄存器变量在使用时才占用内存单元。 29 【正确答案】 A 【试题解析】 本题考核的知识点是字符数组和字符指针变量的初始化。选项 A定义了一个字符数组 str,具有 5个元素,但赋初值的时候 ,初值个数却是 6个 (有一个 0),故选项 A错误的;选项 B 定义了一个字符数组 str并给它赋初值,由于省去了长度定义,长度由初值个数确定,相当于 str6,选项 B正确;选项 C定义了一个字符型指针变量并用一个字符串给它赋初值,使该字符型指针指向了该字符串,选项 C正确;选项 D是对字符型数组中单个

32、元素依次赋初值,选项 D正确。所以, 4个选项中 A为所选。 30 【正确答案】 A 【试题解析】 aaa()函数中,首先定义了一个字符指针 t指向形参 s,然后通过一个 while循环让指针 t不断递增,直到 t指向字符 串结束标志处。当 t指向结束标志处时,由于后缀 4-+运算符的原因,它还会被再递增 1,所以接下来的 t-;语句让它回到结束标志处。最后返回 t-s,因此 s还是指向字符串第 1个字符处,而 t指向了字符串结尾,故返回值为字符串的长度值。 31 【正确答案】 D 【试题解析】 宁符数组初始化可以有两种方式:方式一,按单个字符的方式赋初值。方式二,把一个字符串作为初值赋给字符

33、数组。比如: char ch5=“abc“),选项 A属于这种情况,但是选项 A定义的字符数组长度为 8,由于最后还要加一个 “0”做结束 标志,所以赋给他的字符串长度应小于等于 7,所以选项 A不正确;在给字符数组赋初值的时候,应该用花括号 “”和 “”将字符串括起来,故选项 C不正确。将字符型指针变量指向字符串也有两种方法,一是在定义指针变量时就给其赋初值,比如: char*p=“student“二是给指针变量赋值,比如:p=“student“; (p已经被定义为字符型指针变量: ),故选项 D正确,而选项 C中的花括号是多余的,应该去掉,所以, 4个选项中选项 D符合题意。 32 【正确

34、答案】 D 【试题解析】 在选项 A中,首先定义了一个字符 指针 sp,然后将个字符串赋给甲所指的地址,这是错误的。因为 sp是一个未经初始化的野指针,不知其指向哪儿,往一个不确定的地址中写数据很容易让程序出错。选项 B 首先定义了一个字符数组,然后将一个字符串赋给数组名,这是错误的。因为数组名是一个指针常量,不可以被改变。选项 C首先定义了 个字符数组,然后将 个字符串赋给数组的第一个元素,这也是错误的。因为字符串在表达式中相当于一个常字符指针,将一个指针值赋给一个字符型变量是行不通的。选项 D是定义一个字符指针sp,同时使其指向一个字符串常量,即将个常字符型指针赋给 sp。这 是可行的。所

35、以, 4个选项中选项 D符合题意。 33 【正确答案】 C 【试题解析】 本题在定义字符数组时没有定义数组长度,但是给数组赋了初值,这时初值的个数即为数组的长度,故数组长度为 6(包括 0)。字符串的长度为有效字符的个数 5。因此 printf 语句中输出的结果为 5,6。所以, C选项为所选。 34 【正确答案】 C 【试题解析】 int a, b, k=4, m=6, *p1=&k, * p2=&m;声明整型变量 a, b,k, m和指针 p1, p2,并分别将 4和 6赋给 k和 m,将 k 和 m的地址赋给 P1 和p2; a =p1=&m;等价于 a=(p1=&m);将 p1是否等于

36、地址 m的值 (0)赋给变量a, b=(*p1)/(*p2)+7;该句的含义是将后面表达式的的值 7赋给变量 b。 35 【正确答案】 C 36 【正确答案】 C 37 【正确答案】 B 38 【正确答案】 C 【试题解析】 在循环过程中, i的值一直没有被改变,所以这是一个死循环。 39 【正确答案】 B 【试题解析】 本题中使用 do-while循环,每执行一次循环体输出 x的值后将 x减1。当 x=23,执行循环体输出 x为 23, X=X-1=23-1=22,判断循环条件是否成立,因为 x=22, !x 的值为 0,终止循环,因此只输出 23。 40 【正确答案】 D 【试题解析】 赋

37、值表达式的左侧不能为常量或表达式,所以 D是非法的表达式。 41 【正确答案】 C 41 【试题解析】 在最坏情况下冒泡排序法需要比较的次数为 n(n-1)/2。 42 【正确答案】 数据库概念设计 【试题解析】 数据库概念设计的目的是分析数据间内在语义关联,在此基础上建立一个数据的抽象模型。 43 【正确答案】 可行性研究 【试题解析】 软件生命周期一般包括可行性研究与需求分析、设计、实现、测试、交付使用及维护等,还可以将软件生命周期分为三个阶段: 软件定义阶段:可行性研究和需求分析; 软件开发阶段:设计、实现和测试; 软件运行维护阶段:交付使用和维护。 44 【正确答案】 边界值分析法 【

38、试题解析】 黑箱测试方法完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例。常用的黑箱测试有等价类划分、边界值分析法和错误推测法 3种。 45 【正确答案】 EDBGHFCA 【试题解析】 后序遍历二 叉树的定义为:若二叉树为空,则空操作;否则,后序遍历左子树,后序遍历右子树,访问根结点。根据该规则,遍历结果应为EDBGHFCA。 46 【正确答案】 7 【试题解析】 本题考查的是 scanf函数。题目中, “ 2d”是指读入整型数据,允许的数据宽度是 2位; “*2d”指空余 2位不读入;所以最终读入的 a的值为 12, b的值为 5,即得到 a-b=7,最终输出 a-b 的

39、值 7。 47 【正确答案】 -6354 【试题解析】 本题的考查点是函数的返回值。这个函数的目的是提取出由函数的形参传送来的字符串中的 数字字符,并通过相应字符位置计算出它们数值形式的幂,最后返回字符串中的数字字符的数值形式,所以函数的返回值应当是 “-6354”。 48 【正确答案】 24 【试题解析】 当 front rear时循环队列中元素的个数为 rear-front,当 frontrear时,循环队列中元素的个数为 N(N为循环队列容量 )-front+rear。此题中front=5 rear=29,因此该循环队列中共有 29-5=24个元素。 49 【正确答案】 8 【试题解析】

40、 第 1次 for循环, i=0,调用函数 f(2),然后将 a 的值加 1,在 f()函数中,变量 c为 static类型,所以 c=8:第 2次 ,for循环, i=1,调用函数 f(3),然后将 a的值加 1,调用函数 f(3)时,萨 c+=8,所以 k=8。 50 【正确答案】 0 10 1 11 2 12 【试题解析】 本题考查的是静态局部变量的运用。静态局部变量的作用域与普通局部变量一样,但它的生存期将延长到程序运行结束。本题的主函数中使用一个for循环输出循环变量 i和 fun(a)的值,由于 a的值一直没被修改过,所以三次调用的都是 fun(5)。第 1次调用, b=0, c=

41、3,所以返回值为 5+1+4=10;第 2次调用,因为 c是静态局部变量,它仍然保存着上次调用结束时的值 4,而 b 重新被创建和初始化为 0,所以返回值为 5+1+5=11;同理,第 3次调用返回的是 12。所以,程序最终输出为: 010111212。 51 【正确答案】 3.141592 52 【正确答案】 aabb cc 【试题解析】 printf函数先输出 a,遇 %c,接着输出变量 c1 的值 a,然后输出bb,遇 %t,从第 9个位置开始输出 cc。 53 【正确答案】 12, 10, 18 【试题解析 】 本题定义了 3个整型变量 x、 y、 z,并分别用十进制数、八进制数、十六

42、进制数为它们赋值。然后以十进制整型输出这 3个变量。八进制数 012的十进制表示为 10,十六进制数 0x12的十进制表示为 18。此外输出函数格式控制中的 “,”原样输出。 54 【正确答案】 buf的首地址 【试题解析】 考查 fgets()函数的功能, fgets()函数用来从文件中读入字符串。调用格式为: fgets(buf,n,fp)。此处, fp是文件指针, buf是存放字符串的起始地址,n 是一个 int型变量。调用函数 fgets()时,最 多能读入 n-1个字符,系统自动在最后加字符串结束标志,并以 buf作为函数值返回。 55 【正确答案】 aiowcol max或 aro

43、wcol =max或 max =arowcol或 max aiowcol max min或 min maX或 max =min或 min =max 【试题解析】 本题有两层 for循环,主函数中定义了整型变量 iow、 col、 max和min,其中 row用来存放外循环中的循环次数, col用来存放内循环中的次数,max记录每行中的最大值; min 记录 所有行中最大值中的最小值。在内循环中,首先给 max赋初值为每行的第 0列元素值,然后从第一列开始依次与 max进行比较。如果大于 max则将其值赋给 max,当每一行循环结束, max记录了每一行的最大值。所以第一个空应该填 arowco

44、l max或 arowcol=max退出内循环,在第一次退出内循环时,将 min 赋初值为第 0行的 max,然后在每次退出内循环时,将 min 和每行的 max比较,如果大于 max,则将 max 值赋 min,所以第二个空应该填 max min 或 min max,当退出外循环时, min 为所有行中的最大值的最小值。 56 【正确答案】 *s+ flag=0或 *(s-1)= num 【试题解析】 在统计字符串单词个数的算法中,本题的 flag 是为了记录一个单词是否结束。第 13空应填 *s+;如果某个字符不是空格,则必须判断它是否是单词,如是,则使得 flag的标志为 1, num的值加 1。本题判断方法是:先判断 s所指向的字符是否为空格,如果是则使得 flag=0,否则判断前一个字符是否是空格,如果是则说明这个串符是一个单词的开始,将 flag 标志为 1, num的值加 1,如果不是,则不必记录 。故第 14空应填 flag=0或 *(s-1)=;最后 个空格需填写的是返回的单词的个数,即 num。

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

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

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