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

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

1、国家二级( C语言)机试模拟试卷 93及答案与解析 一、选择题 1 下列叙述中正确的是 ( )。 ( A)算法的空间复杂度与算法所处理的数据存储空间有关 ( B)算法的空间复杂度是指算法程序控制结构的复杂程度 ( C)算法的空间复杂度是指算法程序中指令的条数 ( D)压缩数据存储空间不会降低算法的空间复杂度 2 下列各组排序法中,最坏情况下比较次数相同的是 ( )。 ( A)希尔排序与堆排序 ( B)简单插入排序与希尔排序 ( C)简单选择排序与堆排序 ( D)冒泡排序与快速排序 3 设栈 的存储空间为 S(1: 50),初始状态为 top=51。现经过一系列正常的入栈与退栈操作后, top=

2、20,则栈中的元素个数为 ( )。 ( A) 31 ( B) 30 ( C) 21 ( D) 20 4 某二叉树共有 400个结点,其中有 100个度为 1的结点,则该二叉树中的叶子结点数为 ( )。 ( A) 149 ( B) 150 ( C) 151 ( D)不存在这样的二叉树 5 下面属于 “类一对象 ”主要特征的是 ( )。 ( A)对象一致性 ( B)对象无关性 ( C)类的多态性 ( D)类的依赖性 6 下面不属于需求分析阶段工作的是 ( )。 ( A)需求获取 ( B)可行性研究 ( C)需求分析 ( D)撰写软件需求规格说明书 7 软件生命周期是指 ( )。 ( A)软件的需求

3、分析、设计与实现 ( B)软件的开发与管理 ( C)软件的实现和维护 ( D)软件产品从提出、实现、使用维护到停止使用退役的过程 8 在数据库的三级模式结构中,描述数据库中全体数据的全局逻辑结构和特征的是( )。 ( A)内模式 ( B)用户模式 ( C)外模式 ( D)概念模式 9 大学中每个年级有 多个班,每个班有多名学生,则实体班级和实体学生之间的联系是 ( )。 ( A)一对多 ( B)一对一 ( C)多对一 ( D)多对多 10 有 3个关系 R、 S和 T如下:则由关系 R、 S得到关系 T的操作是 ( )。 ( A)交 ( B)投影 ( C)自然连接 ( D)并 11 以下选项中

4、合法的 C语言常量是 ( )。 ( A) 1 234 ( B) C+ ( C) “ 2 0 ( D) 2Kb 12 有以下程序: #include main() int s, t, A=10; double B: 6: s=sizeof(A) t=sizeof(B): printf(“ d, (1 n”, s, t); 在 VC6平台上编译运行,程序运行后的输出结果是 ( )。 ( A) 4, 8 ( B) 4, 4 ( C) 2, 4 ( D) 10, 6 13 关于程序模块化,以下叙述错误的是 ( )。 ( A)程序模块化可以提高程序运行的效率 ( B)程序模块化可以提高程序编制的效率

5、 C)程序模块化可以提高程序代码复用率 ( D)程序模块化可以提高 调试程序的效率 14 以下选项中不能在 C语言程序中用作用户标识符的是 ( )。 ( A) auto ( B) scanf ( C) Float ( D) _3_14 15 设有语句: printi(“ 2(1 n”, 2010);,则以下叙述正确的是 ( )。 ( A)程序运行时输出 2010 ( B)程序运行时输 20 ( C)程序运行时输出 10 ( D)指定的输出宽度不够,编译出错 16 以下不属于 C语言整型常量的是 ( )。 ( A) 0L ( B) -018 ( C) 0Xa ( D) 200U 17 有以下程

6、序: #include main() int x=1, y=0; if(!x)y+; else if(x=0) if(x)y+=2; else y+=3: printf(“ d n”, y); 程序运行后的输出结果是 ( )。 ( A) 1 ( B) 2 ( C) 0 ( D) 3 18 若变量已正确定义,在 if(w)printf(“ d n”, k);中,以下不可替代 w的是( )。 ( A) a0)a*=x; break; if(X,则输出结果是 ( )。 ( A) 1, 2 ( B) 2, 2 ( C)一 1, 1 ( D)一 2, 1 23 有以下程序: #include #defi

7、ne N 4 void fun(int aN, int b) int i; for(i=0; i main() int X32=0, i; for(i=0; i,则输出结果为 ( )。 ( A) 2 4 6 ( B) 2 0 0 ( C) 2 4 0 ( D) 2 0 4 25 有以下程序: #include int ml(int x, int y) if(x void f(int); main() void f(int); f(5); void f(int n) prinff(“ d n”, n); 以下叙述中错误的是 ( )。 ( A) f函数中不可以出现 return语句 ( B)在主函

8、数中, f(5);可以正确调用 f函数 ( C)在主函数后的其他函数可以正确调用 f函数 ( D) f函数无返回值,应当定义成 void类型 27 有以下程序: #inelude main() int i=3, j=5, *p=p=&i, *q=&j, *r; r=&q; prinff(“ d, d, d, d, d n”, i, j, *p, *q, *r); 执行后的输出结果是 ( )。 ( A) 3, 5, 3, 5, 5 ( B) 5, 3, 5, 3, 5 ( C) 3, 5, 3, 5, 3 ( D) 3, 5, 3, 3, 5 28 以下不能使指针 s所指存储单元的值增 1的选项

9、是 ( )。 ( A) (*s)+; ( B) *s=as+1; ( C) as+; ( D) +*s; 29 以下语句中存在语法错误的是 ( )。 ( A) char ss620; ss1=“right?”; ( B) char ss20=“right?”; ( C) char*ss6; ss1=“right?”; ( D) char*ss=“right?”; 30 有以下程序: #include int fun() static int x=1; x*=2: return x; main() int i, s=1; for(i=1; i main() char *s=“abe”; do p

10、rintf(“ d”, *s 10); +s; while(*s); 程序运行后的输出结果是 ( )。 ( A) abe ( B) 789 ( C) 7890 ( D) 979899 32 有以下程序: #include #include main() int i, len; char b=“Welcome you to Beijing!”; len: strlen(b); for(i=0; i double fun(int 13) static double f=1; f*=n: retum f; main() int i; double s=0; for(i=1; i main() FIL

11、E*fp; int a10=1, 2, 3, i, n; fp=fopen(“d1 dat”, “w”); for(i=0; i #define MULl(x, y)x*y #define MUL2(x, y)(x)*(y) #define MUL3(x, y)(x*y) main() int m=2, n=3; print(“ d, d, d n”, MULl(m, m+n)*2, MUL2(m, m+n)*2,MUL3(m, m+n)*2); 程序运行后的输出结果是 ( )。 ( A) 10, 20, 14 ( B) 20, 20, 20 ( C) 10, 10, 10 ( D) 14,

12、14, 14 38 有以下程序: #include void fun(int a) if(a1)fun(a一 1); printf(“ d”, a); main() int q=5; fun(q); prinff(“ n”); 执行后的输出结果是 ( )。 ( A) 1 2 3 4 5 ( B) 5 4 3 2 1 ( C) 0 1 2 3 4 5 ( D) 5 4 3 2 1 0 39 以下关于 C语言文件的叙述中正确的是 ( )。 ( A)文件由数据序列组成,其类型可以为二进制文件或文本文件 ( B)文件由记录序列组成,其类型可以为二进制文件或文本文件 ( C)文件由字符序列组成,其类型可

13、以为二进制文件或文本文件 ( D)文件由数据序列组成,其类型只能是二进制文件 40 设有定义和语句 (假设 short int型数据占 2字节 ) short int*pi, *pj; pi=pJ=(short*)malloe(2); 则以下叙述正确的是 ( )。 ( A) pi和 pj指向了同一个 short int型存储单元 ( B) pi和 pj指向了 2个连续的 short int型存储单元的首地址 ( C) pi和 pj分别指向了一个 short int型存储单元 ( D) pi和 pj分别指向了 2个 short int型存储单元 二、程序填空题 41 下列给定程序中,甬数 fun

14、的功能是:把形参 a所指数组中的最小值放在元素a0中,接着把 a所指数组中的最大值放在 a1元素中;再把 a所 指数组元素中的次小值放在 a2中,把 a所指数组元素中的次大值放在 a3,以此类推。例如,若a所指数组中的数据最初排列为: 9、 1、 4、 2、 3、 6、 5、 8、 7;则按规则移动后,数据排列为: 1、 9、 2、 8、 3、 7、 4、 6、 5。形参 n中存放 a所指数组中数据的个数。 规定 fun函数中的 max存放当前所找的最大值, px存放当前所找最大值的下标。 请在程序的下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 注意:部分源程序在文件 BLAN

15、KLC中。 不得增行或删行,也不得更改程序的结构 ! #include #define N 9 void fun(int a, int n) int i, j, max, min, px, pn, t; for(i=0; i3) min=aj; pn=j; if(pn!=i) t=ai; ai=min; apn=t; if(px=i)px=pn; if(px!=i+1) t=ai+1; ai+1=max; apx=t; main() int bN=9, 1, 4, 2, 3, 6, 5, 8, 7, i; printf(“ nThe original data: n”); for(i=0; i

16、 typedef struet list int data; struct list*next: LIST; int fun(UST* h) LIST*P; *found* int t; P=h; *found* while(*P) *found* t=t+P data: P=(*P) next; return t; main() LIST a, b, c, *h; adata=34; b data: 51; c data=87; c next=, 0: h=&a; A)next=&b; b next=&c: printf(“总和 = d n”, fun(h); 四、程序设计题 43 编写函数

17、 fun,其功能是:实现两个字符串的连接 (不要使用库函数 strcat),即把 p2所指的字符串连接到 p1所指的字符串的后面。 例如,分别输入下面两个字符串: FirstString SecondString 程序运行后的输出结果是: FirstStringSecondString 注意:部分源程序在 文件 PROG1 C中。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 #include void fun(char p1, char p2) main() char sl80, s240; void NONO(); prinff(“Ent

18、er s1 and s2: n”); scanf(“ 8 S”, s1, s2); prinff(“s1= s n”, s1); prinff(“s2= s n”, s2); prinff(“Invoke fun(s1, s2): n”); fun(s1, s2); prinff(“After invoking: n”); prinff(“ s n”, s1); NONO(); void NONO() *c本函数用于打开文件,输入测试数据,调用 fun函数,输出数据,关闭文件。 * int i; FILE*rf, *wf; char s180, s2140; rf=fopen(“in dat”

19、 “r”); wf=fopen(“out dat”, “W”); for(i=0; i0,所以返回值为 1;即第一轮循环后, tl=3, t2=1。当 i_2时,传入函数 m1的参数为 2、3,因为 21,所以函数返回值为 2;即第二轮循环后, t1=5, t2=2;当 i=3时,传入函数ml的参数为 3、 5,因为 32,所以返回值为 3;即第三轮循环后, tl=7, t2=3;当 i=4时,传入函数 m1的参数为 4、 7,因为 43,所以函数返回值为 4,即第四轮循环后, t1=9, t2=4。故答案选 A(仔细分析可以发现,对于 m1函数,由于第一次 10,导致后面每次参数 x都是

20、i,而 y都是 i一 1,返回值都是 i,所以最终结果为 t1=24+1, t 2=4)。 26 【正确答案】 A 【试题解析】 函数说明可以放在调用函数内,如在 main函数内部进行说明,则只能在 main函数内部才能识别此函数。所以在 main函数中, f(5)可以被正确调用,故选项 B正确;由于在 main()函数之前也说明了 f()函数,所以在 main函数后的其他函数也可以正确调用 f()函数,故选项 C正确; f()函数没有返回值,应该定义成 void类型,故选项 D正确;虽 然 f()函数没有返回值,为了在函数体的任意地方退出,可以使用 return语句,只是 return后不用

21、加返回值,故选项 A错误,因此答案为 A。 27 【正确答案】 A 【试题解析】 main()函数中初始化 i的值为 3, j的值为 5,并初始化指针 p指向i,指针 q指向 j。另外,还定义了一个二维指针 r,指向 q,所以 *p的值是 i的值3, *q的值是 j的值 5, *r等于 *q,是 j的值 5,所以输出的结果是: 3、 5、 3、5、 5,答案选 A。 28 【正确答案】 C 【试题解析】 选项 A首先获取 s指向的存储单元的 值,使用完该值后,将该值自增 1,正确;选项 B首先获取 s指向的存储单元的值,并将该值加 l后重新赋给该存储单元,正确;选项 D首先获取 s指向的存储单

22、元的值,然后将该值自增 1,再使用加 1后的新值,正确;选项 C中, *s+的含义是首先获取 s指向的存储单元的值,然后再将指针 s向后移动一位,所以答案为 C。 29 【正确答案】 A 30 【正确答案】 D 31 【正确答案】 B 32 【正确答案】 A 【试题解析】 strcpy(char*dest, char*source)函数是将 source指指向的 字符串复制到 dest指向的内存空间,所以 for循环在遍历字符数组 b的同时,查找 b中的空格字符,将空格字符后的剩余字符串重新复制到字符数组 b中,然后重新设置循环的索引下标为 0,继续寻找空格字符,直到到达字符串的结尾空字符 0

23、由此可知整个程序是获取字符串 “Welcomeyou t0 Beijing!”的最后一个不包含空格字符的子串,程序输出: “Beijing!”,答案选 A。 33 【正确答案】 A 【试题解析】 两个字符串进行比较时,按照字符串中相同位置的字符 ASCII码顺序进行比较,故选项 B错 误;字符串需要包含串尾的结束标志,但是计算字符串长度时,不包含串尾的结束标志,故选项 C错误;要将字符串 s2连接到 s1后面,串 s1所在存储空间必须可以存储字符串 s1、字符串 s2连接后构成新串的字符,故选项 D错误。答案选 A。 34 【正确答案】 A 【试题解析】 函数 fun()中的变量 f是静态变

24、量,所以只初始化一次,之后每次调用 fun(), f的初值就是上一次 fun()结束时的值,对于 fun()函数,当传入 n=1时, f=1,返回值为 1;当传入 n=2时, f=12=2,返回值为 2;当传入 n=3时,f=23=6,返回值为 6;当传入 n=4时, f=64=24,返同值为 24,所以每次调用fun函数时, f变量在上一次 fun函数运行结束时保留值的基础上,再与 n乘积,并重新赋值给 f,所以可以将 f理解为记录当前的累乘值,即当 main函数中 i=1时, f=1!=1;当 main()函数 i=2时, f=2!=2,当 main函数中 i=3时, f=3!=6 另外

25、main函数中的 s记录调用 fun函数的返回值之和,所以 s=1 !+2 !+i! ,由于 i最大值为 5,所以 s=1!+2!+3!+4!+5 !,答案为 A。 35 【正确答案 】 A 36 【正确答案】 A 37 【正确答案】 A 【试题解析】 本题考查宏定义,宏定义在程序的预编译阶段直接进行文本替换,所以本题中宏定义展开如下: MULl(m, m+n)x2=mm+n2=22+32=10 MUL2(m, m+n)2=(m)(m+n)2=2(2+3)2=20 MUIL3(m, m+n)2=(mm+n)2=(22+3)2=14 程序输出结果为 10, 20, 14答案为 A。 (注:宏定义

26、中的形参一定要使用小括号括起来,以避免 出错 ) 38 【正确答案】 A 【试题解析】 本题考查递归函数。函数 fun(a)在 a1时,递归调用。 fun(a1),否则输出 a的值,由于 prinff()函数在递归调用之后,所以直到递归函数运行完后再执行 printf()函数,所以 fun(5)中首先递归调用 fun(4),再递归调用 fun(3)、fun(2), fun(1),最后当 a=1时,输出 1,接着输出 2、 3、 4、 5,所以输出结果为: 1 2 3 4 5,答案为 A。 39 【正确答案】 A 【试题解析】 C语言文件是指一组相关数据的有序集 合,从文件编码的方式看,文件可分

27、为 ASCII码文件和二进制文件两种,其中 ASCII文件也称为文本文件,所以文件由数据序列组成,类型可以为二进制文件或文本文件,故选项 A正确。 40 【正确答案】 A 【试题解析】 语句 pi=pj=(short*)malloc(2)首先使用动态分配函数 malloc分配 2个字节的内存空间,然后将内存首地址转换为 short*类型并返回,赋值给 pj,再将 pj的值赋给 pi,所以指针 pi和 pj的值是相同的,指向同一个 short int型的存储单元,故选项 A正确。 二、程序填空 题 41 【正确答案】 (1)ai(2)aj(3)aj 三、程序修改题 42 【正确答案】 (1)int t=0; (2)while(p)或 while(p!=NULL) (3)t=t+p-data。 四、程序设计题 43 【正确答案】 void fun(char pl, char p2) int i, j; for(i=0; pli!= 0; i+); for(j=0; p2j!= 0; j+)p1i+=p2j; pli= 0;

展开阅读全文
相关资源
猜你喜欢
  • STAS SR EN 22857-1996 Ground thread taps for ISO metric threads of tolerances 4H to 8H and AG to 6G coarse and fine pitches Manufacturing tolerances on the threaded portion《公差4H至8H.pdf STAS SR EN 22857-1996 Ground thread taps for ISO metric threads of tolerances 4H to 8H and AG to 6G coarse and fine pitches Manufacturing tolerances on the threaded portion《公差4H至8H.pdf
  • STAS SR EN 23134-4-1994 Light metals and their alloys Terms and definitions Part 4  Castings《轻金属及其合金术语和定义.第4部分:铸件》.pdf STAS SR EN 23134-4-1994 Light metals and their alloys Terms and definitions Part 4 Castings《轻金属及其合金术语和定义.第4部分:铸件》.pdf
  • STAS SR EN 23312-1995 Sintered metal materials and hardmetals Determination of Young modulus《烧结金属材料和硬金属.杨氏模量的测定》.pdf STAS SR EN 23312-1995 Sintered metal materials and hardmetals Determination of Young modulus《烧结金属材料和硬金属.杨氏模量的测定》.pdf
  • STAS SR EN 23326-1995 Hardmetals Determination of (the magnetization) coercivity《硬性金属,(磁化)矫顽磁性测定》.pdf STAS SR EN 23326-1995 Hardmetals Determination of (the magnetization) coercivity《硬性金属,(磁化)矫顽磁性测定》.pdf
  • STAS SR EN 23369-1995 Impermeable  sintered  metal  materials  and  hardmetals Determination of density《不透水烧结金属材料和硬金属.密度的测定》.pdf STAS SR EN 23369-1995 Impermeable sintered metal materials and hardmetals Determination of density《不透水烧结金属材料和硬金属.密度的测定》.pdf
  • STAS SR EN 23758-1996 Textiles - Care labelling code using simbols《织物.用符号标记的保护标签 》.pdf STAS SR EN 23758-1996 Textiles - Care labelling code using simbols《织物.用符号标记的保护标签 》.pdf
  • STAS SR EN 23907-1995 Hardmetals Determination of total carbon content Gravimetric method《硬质合金.总碳量的测定.重量法》.pdf STAS SR EN 23907-1995 Hardmetals Determination of total carbon content Gravimetric method《硬质合金.总碳量的测定.重量法》.pdf
  • STAS SR EN 23908-1995 Hardmetals Determination of insoluble (free) carbon con-tent Gravimetric method《硬质合金.不溶的(不受……影响的)碳含量的测定.重量法》.pdf STAS SR EN 23908-1995 Hardmetals Determination of insoluble (free) carbon con-tent Gravimetric method《硬质合金.不溶的(不受……影响的)碳含量的测定.重量法》.pdf
  • STAS SR EN 23927-1994 Metallic powders excluding powders for hardmetals Determination of compactibility (compressibility) in uniaxial compression《金属粉末,硬质合金粉末除外.单轴压缩下压实性(可压缩性)的测定》.pdf STAS SR EN 23927-1994 Metallic powders excluding powders for hardmetals Determination of compactibility (compressibility) in uniaxial compression《金属粉末,硬质合金粉末除外.单轴压缩下压实性(可压缩性)的测定》.pdf
  • 相关搜索

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

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