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

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

1、国家二级( C语言)笔试模拟试卷 218 及答案与解析 1 下列叙述中正确的是 ( )。 ( A)线性链表的各元素在存储空间中的位置必须是连续的 ( B)线性链表的头元素一定存储在其他元素的前面 ( C)线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面 ( D)线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的 2 假设线性表的长度为 n,则在最坏情况下,冒泡排序需要的比较次数为 ( A) log2n ( B) n2 ( C) O(n1.5) ( D) n(n-1)/2 3 在下列几种排序方法中,要求内存量最大的是 _。 (

2、A)插入排序 ( B)选择排序 ( C)快速排序 ( D)归并排序 4 下列程序的输出结果是 _。 #include stdio.h main() int i, j, k, a=3,b=2; i=(-a=b+)?-a; +b; j=a+; k=b; printf(“i=%d, j=%d, k=%dn“,i, j, k); ( A) i=2, j=1, k=3 ( B) i=1, j=1, k=2 ( C) i=4, j=2,k=4 ( D) i=1, j=1, k=3 5 在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是 _。 ( A)概要设计 ( B)详细设计 (

3、C)可行性分析 ( D)需求分析 6 在面向对象的程序设计中,能表示类之间相似性质的机制是 ( )。 ( A)继承 ( B)封装 ( C)分类 ( D)动态连接 7 结构化分析方法是面向 ( )的自顶向下、逐步求精进行需求分析的方法。 ( A)对象 ( B)数据结构 ( C)数据流 ( D)目标 8 关系代数运算是以 _为基础的运算。 ( A)关系运算 ( B)谓词运算 ( C)集合运算 ( D)代数运算 9 能将高级语言编写的源程序转换为目标程序的软件是 ( A)汇编程序 ( B)编辑程序 ( C)解释程序 ( D)编译程序 10 从 Windows环境进入 MSDOS 方式后,返回 Win

4、dows环境的 DOS命令为 ( A) EXIT ( B) QUIT ( C) RET ( D) MSDOS 11 若有下列定义 (设 int类型变量占 2个字节 ): float x=123.4567; 则下列语句: printf(“x=%5.2f“,x); 输出的结果是 ( )。 ( A) x=123.46 ( B) 123.4567 ( C) x=123.4567 ( D) 123.46 12 已知各变量的类型说明如下: int k, a, b; unsigned long w=5; double x=1.42; 则以下不符合 C语言语法的表达式是 ( A) x%(-3) ( B) Wd

5、+=-2 ( C) k=(a=2, b=3, a+ ( D) a+=9-=(b=4)*(a=3) 13 若二维数组 a有 m列,则在 aij前的元素个数为 ( )。 ( A) j*m+i ( B) i*m+j ( C) j*m+i+1 ( D) i*m+j+1 14 下述语句中,在字符串 s1和 s2相等时显示 “they are Equal”的是 ( )。 ( A) if(*s1=*s2) puts(“they are Equal”); ( B) if(!strcmp(s1, s2) puts(“they are Equal”); ( C) if(s1=s2) puts(“they are

6、Equal”); ( D) if(strcmp(s1, s2) puts(“they are Equal”); 15 对下列二叉树进行中序遍历的结果是 ( )。 ( A) ABCDEFGH ( B) ABDGEHCF ( C) GDBEHACF ( D) GDHEBFCA 16 下列程序执行后的输出结果是 ( )。 void fune(int*a, int b) b0=*a+b; main() int a, b5; a=0; b0=3; func( for(i=0;i 3;i+) switch(i) case 0: prinft(“%d“,i); case 2: prinft(“%d“,i);

7、 default:prinft(“%d“,i); 程序运行后的输出结果是 ( A) 22111 ( B) 21021 ( C) 122 ( D) 12 18 下面程序的执行结果是 _。 main() char str=“quert?“,*p=str; while(putchar(*p+)!=?); ( A) quert ( B) Rvfsu ( C) quert? ( D) rvfsu? 19 有下列程序: #include stdio.h main() int a=6, b=7, m=1; switch(a%2) case 0: m+; break; case 1: m+; switch(b

8、%2) defaut: m+; case0: m+; break; printf(“%dn“, m); 程序运行后的输出结果是( )。 ( A) 1 ( B) 2 ( C) 3 ( D) 4 20 当把以下四个表达式用作 if语句的控制表达式时, 有一个选项与其他三个选项含义不同,这个选项是 _。 ( A) k%2 ( B) k%2=1 ( C) (k%2)!=0 ( D) !k%2=1 21 已知字母 A的 ASCII代码值为 65,若变量 kk为 char型,下列不能正确判断出比中的值为大写字母的表达式是 ( )。 ( A) kk =A ( B) #define N 100 int num

9、N; ( C) int num0100; ( D) int N=100; int numN; 23 下面程序的输出结果是 #include stdio.h #include string.h main() char *pl=“abc“, *p2=“ABC“, str50=“xyz“; strcpy(str+2, strcat(p1, p2); printf(“%sn“, str); ( A) xyzabcABC ( B) zabcABC ( C) xyabcABC ( D) yzabcABC 24 若执行下面的程序时,从键盘输入 5和 2,则输出结果是 main( ) int a,b,k; s

10、canf(“%d,%d“, k=a; if(a b)k=a%b; else k=b%a; printf(“%dn“,k); ( A) 5 ( B) 3 ( C) 2 ( D) 0 25 下列程序的功能:给 r输入数据后计算半径为 r的圆面积 s。程序在编译时出错。 main() /* Beginning */ int r; float s; scanf(“%d“, r); star*r*r; printf (“s %fn“,s); 出错的原因是 ( )。 ( A)注释语句书写位置错误 ( B)存放圆半径的变量 r不应定义为整型 ( C)输出语句中格式描述符非法 ( D)计算圆面积 的赋值语句使

11、用非法变量 26 有以下程序 point(char*p) p+=3; main() char b4=a, b,c, d, *p=b; point(p); printf(“%cn“,*p); 程序运行后的输出结果是_。 ( A) a ( B) b ( C) c ( D) d 27 有以下程序 main() int i=1, j=2, k=3; if(i+=1 i1=f(2); i2=f(1+1); printf(“%d %dn“,i1,i2); 程序的运行结果是 ( A) 12 12 ( B) 11 7 ( C) 11 11 ( D) 12 7 29 以下程序的功能是:给 r输入数据后计算半径为

12、 r的圆面积 s。 #include stdio, h main( )/* Beginning */ int r; float s; scanf(“% d“, s = * r*r;printf(“s =%fn“,s); 程序在编译时出错,出错的原因是 ( )。 ( A)注释语句书写位置错误 ( B)存放圆半径的变量 r不应该定义为整型 ( C)输出语句中格式描述符 非法 ( D)计算圆面积的赋值语句中使用了非法变量 30 阅读以下函数: fun(char *s1,char *s2) int i=0; while(s1i=s2i return(s1i=0 此函数的功能是 ( )。 ( A)将 s

13、2所指字符串赋给 s1 ( B)比较 s1和 s2所指字符串的大小,若 s1比 s2的大,函数值为 1,否则函数值为 0 ( C)比较 s1和 s2所指字符串是否相等,若相等,函数值为 1,否则函数值为 0 ( D)比较 s1和 s2所指字符串的长度,若 s1比 s2的长,函数值为 1,否则函数值为 0 31 下面程序的输出结果是 _。 main() char str10,c=a; int i=0; for(;i 5;i+) Stri=c+; printf(“%s“,str); ( A) abcde ( B) a ( C)不确定 ( D) bcdef 32 若输入 1,2,下列程序 的运行结果

14、为 _。 #define SWAP(a,b) t=b;b=a;a=t main () int a,b, t; scanf (“%d, %d“, SWAP (a,b); printf (“a=%d,b=%dn“, a,b); ( A) a=1,b=2 ( B) a=2,b=1 ( C) a=1,b=1 ( D) a=2,b=2 33 有如下程序 main() int x=1,a=0,b=0; switch(x) case 0: b+; case 1: a+; case 2: a+;b+; printf(“a=%d,b=%dn“,a,b); 该程序的输出结果是 _。 ( A) a=2,b=1 (

15、B) a=1,b=1 ( C) a=1,b=0 ( D) a=2,b=2 34 有下面程序段 #include“stdio.h“ #include“string.h“ main() char a320=“china“; “isa“, bigcountry!“; char k100=0, *p=k; int i; for(j=0; j 3;i+) p=strcat(p, ai); i=strlen(p); printf(“%dn“, i); 则程序段的输出结果是 ( A) 18 ( B) 19 ( C) 20 ( D) 21 35 有以下程序: int f(int b4) int i,j,s=0

16、; for(j=0;i 4;i+) i=j; if(i 2) i=3-j; s+=bij; return s; main() int a44=1,2,3,4,0,2,4,6,3,6,9,12,3,2,1,0; printf(“%dn“,f(a); 执行后的输出结果是 ( )。 ( A) 12 ( B) 11 ( C) 18 ( D) 16 36 s1和 s2已正确定义并分别指向两个字符串,若要求:当 s1所指串大于 s2所指串时,执行语句 S;则以下选项中正确的是 ( A) if(s1 s2)S; ( B) if(strcmp(s1,s2)S; ( C) if(strcmp(s2,s1) 0)

17、S; ( D) if(strcmp(s1,82) 0)S; 37 字符串 “ABCDEF“的长度是 ( )。 ( A) 15 ( B) 10 ( C) 7 ( D) 8 38 若有定义 float a15,*p=a;,且数组 a的首地址为 300H,则 p+13所指向的数组元素的地址为 ( )。 ( A) 334H ( B) 30DH ( C) 352H ( D) 31AH 39 在 C语言中,函数返回值的类型最终取决于 ( )。 ( A)函数定义时在函数首部所说明的函数类型 ( B) return语句中表达式值的类型 ( C)调用函数时主调函数所传递的实参类型 ( D)函数定义时形参的类型

18、40 有以下程序: #include stdi0.h main( ) FILE *fp; int i=20, j=50, k, n; fp=fopen(“d1.dat“, “W“); fprintf(fp, “%dn“,i); fprintf(fp, “%dn“, j); fclose(fp); fp=fopen(“d1.dat“, “r“, ); fscanf(fp, “%d%d“, k, n); printf(“%d%dn“, k, n); fclose(fp); 程序运行后的输出结果是 ( A) 20 30 ( B) 20 50 ( C) 30 50 ( D) 30 20 41 有以下程

19、序 void f(int b) int i; for(i=2; i 6; i+) bi*=2; main() int a10=1, 2, 3, 4, 5, 6, 7, 8, 9, 10), i; f(a); for(i=0;i 10, i+)printf(“%d, “, ai); 程序运行后的输出结果是 ( A) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ( B) 1, 2, 6, 8, 10, 12, 7, 8, 9, 10, ( C) 1, 2, 3, 4, 10, 12, 14, 16, 9, 10, ( D) 1, 2, 6, 8, 10, 12, 14, 16,

20、9, 10, 42 在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。常见的数据模型有 3种,它们分别是层次模型、网状模型和 _。 43 在面向对象方法中,类之间共享属性和操作的机制称为【 】。 44 一个模块直接访问另一个模块的内容,称为【 】藕合。 45 软件测试中路径覆盖测试是整个测试的基础,它是对软件【 】进行测试。 46 算法复杂度主要包括时间复杂度和【 】复杂度。 47 下列程序的运行结果是 _。 #include stdio.h long func(int x) long p; if(x=0x=1) return(1); p=x*func(x-1); retu

21、rn(p); main() printf(“%dn“, func(4); 48 在两种基本测试方法中, ( )测试的原则之一是保证所测模块中每一个独立路径至少执行一次。 49 下列程序的功能是将输入的正整数按逆序输出。例如,若输入 135,则输入531,请填空。 #include main() int n, s; printf(“Enter a number: “); scanf(“ d“, float b; char c; abc, *p_abc=“,则对结构体成员 a的引用方法可以是 abc.a和 p_abc【 】 a。 51 mysulen函数的功能是计算 str所指字符串的长度,并作为

22、函数值返回。请填空。 int mystrlen(Char *str) int i; fori=0; !=0; i+); return(_); 52 若有以下函数定义, 函数返回值的类型是【 】。 fun(double A) return a*a*a; 53 设在主函数中有以下定义和函数调用语句,且 fun函数为 void类型;请写出fun函数的首部 【 】 。要求形参名为 b。 main() double s1022; int n; fun(s); 54 设有以下变量定义,并已赋确定的值, char w; int x; floaty; double Z; 则表达式: w*x+z-y所求得的数据

23、类型为 上 【 】 。 55 下面 rotate函数的功能是:将 n行 n列的矩阵 A转置未 AT,例如: 请填空 #define N 4 void rotate(int a) int i,j,t; for(i=0;i N;i+) for(j=0;【 】 ;j+) t=aij;【 】 ; aji=t; 56 下面程序的功能是将字符串 a下标值为偶数的元素由小到大排序,其他元素不变,请填空。 #include stdio.h main() char a=“labchmfye“,t; int i,j; for(i=0;i 7;i+=2) for(j=i+2;j 9;【 】 ) if(【 】 ) t

24、=ai; ai=aj; aj=t;j+; puts(a); printf(“n“); 国家二级( C语言)笔试模拟试卷 218 答案与解析 1 【正确答案】 D 【试题解析】 在线性链表中,各元素在存储空间中的位置是任意的,各元素的顺序也是任意的,依靠指针来实现数据元素 的前后件关系。 2 【正确答案】 D 【试题解析】 假设线性表的长度为 n,则在最坏情况下,冒泡排序要经过 n/2遍的从前往后的扫描和 n/2遍的从后往前的扫描,需要的比较次数为 n(n-1)/2。 3 【正确答案】 D 【试题解析】 快速排序的基本思想是,通过一趟排序将待排序记录分割成独立的两部分,其中一部分记录的关键字均比

25、另一部分记录的关键字小,再分别对这两部分记录继续进行排序,以达到整个序列有序;插入排序的基本操作是指将无序序列中的各元素依次插入到已经有序的线性表中,从而得到一个新的序列; 选择排序的基本思想是:扫描整个线性表,从中选出最小的元素,将它交换到表的前面 (这是它应有的位置 ),然后对剩下的子表采用同样的方法,直到表空为止;归并排序是将两个或两个以上的有序表组合成一个新的有序表。 4 【正确答案】 D 5 【正确答案】 D 【试题解析】 需求分析是对待开发软件提出的需求进行分析并给出详细定义,即准确地确定软件系统的功能。编写软件规格说明书及初步的用户手册,提交评审。 6 【正确答案】 A 【试题解

26、析】 在面向对象的程序设计中,继承是表示类之间相似性的机制。 7 【正确答案】 C 【试题解析】 结构化分析方法是面向数据流进行需求分析的方法,采用自顶向下、逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。 8 【正确答案】 C 【试题解析】 关系代数运算是以关系代数作为运算对象的一组高级运算的集合。它的基本操作是并、交、差、笛卡尔积,另外还包括垂直分割 (投影 )、水平分割(选择 )、关系的结合 (连接 )等。 9 【正确答案】 D 【试题解析】 此题考查考生对几个常用术语的理解。汇编程序是把用汇编语言编写的程序 翻译成二进制目标程序;编辑程序是对源程序进行

27、输入、修改的过程,解释程序逐语句执行,但不生成目标程序。只有编译程序是把高级语言编写的源程序转换为目标程序。 10 【正确答案】 A 【试题解析】 从 Windows 环境进入 MS-DOS 方式后,要想返回 Windows 环境,可使用 EXIT命令。 11 【正确答案】 A 【试题解析】 本题考查 printf函数的格式。 “%5.2f 格式符中的 “f”表示以带小数点的形式输出单精度或者双精度数; “5”表示指定数据输出宽度为 5; “2”表示指定输出数据小数位占 两位数,并对截去的第一位小数做四舍五入处理。 12 【正确答案】 A 【试题解析】 “%” 是求余运算符或模运算符, “%”

28、 两侧均应为整型数据,选项A)中的 x是 double 型数据。 13 【正确答案】 B 【试题解析】 二维数组的元素可以看成是按矩阵形式存放的,总是先存放第一行的元素,再存放第二行的元素。 数组第一维的下标是 i,说明它前面还有 i行,有 i*m个元素,数组第二维的下标是 j,说明它前面还有 j列,有 j个元素,所以共有 i*m+j个元素。 14 【正确答案】 B 【试 题解析】 字符串比较不能用 “=”,要用 strcmp(s1, s2)函数,字符串 s1和s2相等时返回值为 0,故 !strcmp(s1, s2)=1,条件成立执行后面的语句,输出they are Equak 15 【正确

29、答案】 C 【试题解析】 遍历就是不重复地访问二叉树的所有结点。 二叉树遍历的方法有3种:前序遍历、中序遍历和后序遍历。记住 3种遍历的顺序: 前序,访问根 按前序遍历左子树 按前序遍历右子树。 中序,按中序遍历左子树 访问根 按中序遍历右子树。 后序,按后序遍历左子树 按后序遍历右子树 访问根。所以对该二叉树的中序遍历结果为 GDBEHACF。 16 【正确答案】 A 【试题解析】 本题考查函数的调用,从主函数传递到调用函数中, *a的值为 0,因此当执行完调用函数后, b0的值为 6。 17 【正确答案】 C 【试题解析】 本题考核的知识点是 for循环和 switch 语句的混合应用。程

30、序中for循环了三次,第一次 i=0,执行 switch 语句中 case0:分支,直到遇到 default语句,退出 switch,这里共执行 ?三个输出语句分别输出 0, 0, 0,第二次循环i=l, switch 语句中没有匹配的分支,故只执行 default语句输出 1,退出 switch 语句;第三此循环 i=2,从 switch 语句中的 case 2:开始执行,共执行了两个输出语句输出 2、 2。最后输出的结果为 000122所以, 4个选项中选项 C符合题意。 18 【正确答案】 C 【试题解析】 *p+是先取 *p的值,然后指针变量 p 指向下一个字符, putchar是先执

31、行 (输出 )再判断,所以 “?”是可以显示的。 19 【正确答案】 B 【试题解析】 本题考查 switch 语句。第一个 switch 语句,因为 a=6, a%2=0,所以执行 case0将 m加 1,遇到 break 语句跳出 switch 语句,结束循环。 20 【正确答案】 D 【试题解析】 本题选项 A、 B、 C中表达式用作 if 语句表达式时,其值一致,即判断 k的值是否为奇数,若为奇数,其表达式为真,否则为假;而选项 D的表达式 “!k%2=1” 相当于 “!(k%2)=1 ,若 k 的值为奇数,则此表达式的值为假。 21 【正确答案】 B 【试题解析】 选项 A)用逻辑与

32、运算符来连接关系表达式 A =kk和 kk =Z,以此来判断 kk的字母是否是大写 字母。选项 C)用逻辑与运算符来连接关系表达式 (kk+32) =a和 (kk+32) =z,以此来判断 kk的字母是否是大写字母。选项 D)调用函数 isalpha(),首先判断 kk是否为字母,接着通过与运算 (kk =91)来判断比是否为大写字母;而选项 B)中首先判断语句 (kk A),假如为真时,就不进行 (kk =Z)的判断,直接进入非运算,故不能正确判断 kk是否为大写字母,故选项 B)符合题意。 22 【正确答案】 B 【试题解析】 C语言不允许对数组进行动态定义,选项 D错误;选项 A没有指定

33、数组元素的个数;选项 C中定义格式错误;正确答案为选项 B,其中 N是符号常量。 23 【正确答案】 C 【试题解析】 本题考查的重点是拷贝字符串 使用 strcpy()函数,该函数的调用方式是: strcpy(字符数组,字符串 ),其中 ”字符串 ”可以是字符串常量,也可以是字符数组。函数的功能是:将 “字符串 ”完整地复制到 “字符数组 ”中,字符数组中原有的内容被覆盖。 使用该函数时注意: 字符数组必须定义得足够大,以便容纳复制过来的字符串。复制时,连同结束标志 0一起复制; 不能用赋值运算符 “: ”将一 个字符串直接赋值给一个字符数组,只能用 strcpy()函数处理。 另外,本题还

34、考查连接字符串的 strcat()函数,其调用方 24 【正确答案】 C 【试题解析】 本题考查简单的 ifelse 语句。先执行条件 if(a b),显然不成立,再执行 else语句。 25 【正确答案】 D 【试题解析】 在 C语言程序中,可以用一个符号名宋代表一个常量,称为符号常量。这个符号名必须在程序中进行特别的 “指定 ”,并符合标识符的命令规则。在本题中圆周率冗是一个符号常量,但在程序中并没有指定其值,所以编译器 找不到其值就会报错。所以选项 D)正确。 26 【正确答案】 A 27 【正确答案】 D 28 【正确答案】 B 【试题解析】 根据宏替换的替换规则 ,我们可知 ,f(2

35、)=2*N+1=2*5+1=11,f(1+1)=1+1*N+1=1+1*5+1=7。 29 【正确答案】 D 【试题解析】 本题中表达式 *r*r非法,且未对变量 做任何定义,所以编译时会出现非法字符的错误信息。 30 【正确答案】 C 【试题解析】 在函数 fun()中有两个字符型指针变量 s1和 s2,在函数 中程序执行while循环,该循环退出条件有两个:一个是 s1i!=s2i(两个字符串不相等 ):第二个是 s1i和 s2i相等均为 “0”(两个字符串相等 )。循环退出后,执行 return语句,即两个字符串相等则返回 1,不相等则返回 0。所以, C选项为所选。 31 【正确答案】

36、 C 【试题解析】 字符串少一个结束标志,所以输出的结果不确定。 32 【正确答案】 B 33 【正确答案】 A 【试题解析】 在这个 switch 语句中,因为 x的值为 1,所以执行 case 1:后面的a+,这样 a=1。但又由于其下没有 break 语句,所以其后面的语句 “a+;b+”也将被执行,这样一来, a=2, b=1。 34 【正确答案】 B 【试题解析】 字符串连接函数 strcat的调用形式如下: strcat(s1, s2)。此函数用来把 s2所指字符串的内容连接到 s1所指的字符串后面,并自动覆盖 s1串末尾的尾标,函数返回 s1的地址值。 35 【正确答案】 D 【

37、试题解析】 在主函数中首先定义了一个 4行 4列的二维数组 a,并用该数组的数组名作为实参调用函数 f()。函数 f()中的 for循环作 用,是将数组前 3行中的对角线上的元素,即 b00、 b11、 b22和第一行的第四列元素即 b03累加到变量 s中, s=a00+a11+a22+a03=1+2+9+4=16。然后将 s的值返回在主函数中输出。 36 【正确答案】 D 【试题解析】 在 C语言中字符串的比较用 stremp()函数,该函数有两个参数,分别为被比较的两个字符串。如果第一个字符串大于第二个字符串返回值大于 0,若小于返回值小于 0,相等返回值为 0。字符串比较大小的标准是从第

38、一 个字符开始依次向右比较,遇到某一个字符大,该字符所在的字符串就是较大的字符中,女B 果遇到某一个字符小,该字符所在的字符串就是较小的字符串。本题中要求当 sl所指字符串大于 s2所指串时,执行语句 s,因此应该为 stremp(s1, s2) 0或者strcmp(s2, s1) 0。 37 【正确答案】 B 【试题解析】 本题涉及字符串最基本的 2个概念: 字符串的长度是指字符串中字符的个数,但不包括字符串结束符; 以反斜杠 “”开头的特殊字符序列,意思是把反斜杠后面的字符序列转换成特定的含义,而不是原来的含义, 不包含在字符串长度之内, “”连同后面的字符为一个长度。 38 【正确答案】

39、 C 【试题解析】 解答本题,首先要明白在对指针进行加,减运算的时候,数字 “1”不是十进制的数 “1”,而是指 “1”个存储单元长度,而 1个存储单元长度占多少存储空间,应该视具体情况而定。如果基本类型是 int型,移动 1个存储单元的长度就是位移 2个字节,如果基本类型是 float型,移动 1个存储单元的长度就是位移4个字节。所以 p+13 所指向的数组元素的地址为: 300H+(13*4)H=352H。 39 【正确答案】 A 【试题解析】 在 C语言中,应当在定义函数时指定函数值的类型凡不加类型说明的函数,默认按整型处理。在定义函数时对函数值说明的类型一般应该和return语句中的表

40、达式类型一致。如果函数值的类型和 return 语句中的表达式类型不一致,则以函数值的类型为准,由系统自动进行转换。即函数类型决定返回值的类型。 40 【正确答案】 B 【试题解析】 本题首先通过函数 fprintf( )将变量 i, j的值输出到已打开的d1.dat文件中,再由函数 fscanf( ) 从 d1.dat中读取 i, j的值到 k, n。 41 【正确答案】 B 【试题解析】 在 main()中, f(a)语句的作用是对数组 a10中从 a2到 a5的各个数字乘以 2,所以数组 a10中的数字就变成了 1, 2, 6, 8, 10, 12, 7, 8, 9, 10,最后在屏幕上

41、输出。 42 【正确答案】 关系模型 【试题解析】 在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。通俗地讲,数据模型就是现实世界的反映,它分为两个阶段:把现实世界中的客观对象抽象为概念模型;把概念模型转换为某一 DBMs支持的数据模型。常 见的数据模型有 3种,它们分别是层次模型、网状模型和关系模型。 43 【正确答案】 分类性 【试题解析】 在面向对象方法中,类是具有共同属性、共同方法的对象的集合。所以,类是对象的抽象,它描述了属于该对象类型的所有对象的性质。而一个具体的对象则是其对应类的一个实例。由此可知,类是关于对象性质的描述,它包括一组数据属性和在数据上的一组合

42、法操作。类之间这种共享属性和操作的机制称为分类性。 44 【正确答案】 内容 45 【正确答案】 结构 【试题解析】 路径测试是白盒测试方法中的一种,它要 求对程序中的每条路径最少检查一次,目的是对软件的结构进行测试。 46 【正确答案】 空间 【试题解析】 程序在计算机上运行时所耗费的时间由下列因素所决定:程序运行时所需输入的数据总量,对源程序进行编译所需时间,计算机执行每条指令所需时间,程序中的指令重复执行的次数。前一条取决于实现算法的计算机欺、硬件系统,习惯上常常把语句重复执行的次数作为算法运行时间的相对量度,称作算法的时间复杂度。算法在运行过程中需辅助存储空间的大小称为算法的空间复杂度

43、。 47 【正确答案】 24 【试题解析】 本 题考查函数的循环调用。 p=x*func(x-1),当 x=4时,不满足 if 语句的条件, p=4* func(3), x=3也不满足条件,则 func(3)=3*func (2),func(2)=2*func(1), x=1满足条件 return(1),则输出结果为 4*3*2*1-24。 48 【正确答案】 白盒 【试题解析】 按功能划分测试可分为白盒测试和黑盒测试。白盒测试的原则是保证所测试模块中每一独立路径至少执行一次;保证所测试模块所有判断的每一分支至少执行一次:保证所测试模块每一循环都在边界条件和一般 条件下至少各执行一次;验证所有

44、内部数据结构的有效性。 49 【正确答案】 n =10或 n=n 10。 【试题解析】 在主函数的每次循环中变量 s=n 10,所以变量 s的值是 n的个位上的数字,每次将其输出。在空白处填写 n 10或 n=n 10,就是每次循环时,将 n 的值缩小 10倍,这样直到 n的值等于 0时,就完成数字 n的逆序输出。 50 【正确答案】 - 【试题解析】 若结构体变量 abc有成员 a,并有指针 p_abc指向结构变量 abc,则引用变量 abc成员 a的标记形式有 abc.a和 p_abc-a。 51 【正确答案】 *(srt+i)或 stri i 【试题解析】 求 str指向的字符串长度的算

45、法是:用一个变量 i表示字符串中字符的位置,一开始赋值为 0,取出 i位置的字符,判断是否为 “0“,若不是则 i的值加 1,如此循环直到取出的字符是 “0“为止,此时 i的值就是字符串的长度。由此可知,第一个空处应填第 i位置上的字符 *(str+i);第二个空格应该填字符串的长度 i。 52 【正确答案】 int类型 53 【正确答案】 void fun (double b1022) 【 试题解析】 本题答案: void fun(double b1022)。 54 【正确答案】 double型 或双精度型 【试题解析】 先进行 w*x的运算,先将字符型 w 转换成整型,运算结果为整型; 再

46、将 w*x的结果与 z相加,要先将第一步的整型转换为 double型,运算结果为 double型; 最后将 w*x+z的结果与 y相减,要先将 float 型 y转换成double型,结果为 double型。 55 【正确答案】 j =i aij=aji 【试题解析】 将矩阵转置就是将 行列互换,所以第一处应填 j =i,第二处应填aij= aji。 56 【正确答案】 j+ ai aj或 aj ai 【试题解析】 题目要求排序的元素是下标值为偶数的元素,外循环循环 4次, i的值分别为 0、 2、 4、 6,所以内循环也循环 4次, i的值就应为 2、 4、 6、 8,在循环体中已经有了对 j加 1的操作,因此 for后括号中的语句应再对 j加 1,保证下标为偶数。 if语句的功能是如果后一个数比前一个数小则交换位置。

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

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

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