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

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

1、国家二级( C语言)笔试模拟试卷 248 及答案与解析 1 下列描述中正确的是 ( )。 ( A)软件工程只是解决软件项目的管理问题 ( B)软件工程主要解决软件产品的生产率问题 ( C)软件工程的主要思想是强调在软件开发过程中需要应用工程化原则 ( D)软件工程只是解决软件开发过程中的技术问题 2 下列关于队列的叙述中正确的是 ( A)在队列中只能插入数据 ( B)在队列中只能删除数据 ( C)队列是先进先出的线性表 ( D)队列是先进后出的线性表 3 下列工 具中为需求分析常用工具的是 ( )。 ( A) PAD ( B) PFD ( C) N-S ( D) DFD 4 栈底至栈顶依次存放

2、元素 A、 B、 C、 D,在第五个元素 E入栈前,栈中元素可以出栈,则出栈序列可能是 ( A) ABCED ( B) DCBEA ( C) DBCEA ( D) CDABE 5 算法的空间复杂度是指 ( A)算法程序的长度 ( B)算法程序中的指令条数 ( C)算法程序所占的存储空间 ( D)执行算法需要的内存空间 6 下列不属于软件工程的 3个要素的是 ( )。 ( A) 32具 ( B)过程 ( C)方法 ( D)环境 7 简单的交换排序方法是 ( )。 ( A)快速排序 ( B)选择排序 ( C)堆排序 ( D)冒泡排序 8 从顺序存储的循环队列中删除一个元素时,是 _。 ( A)先移

3、动队首指针,后取出元素 ( B)先取出元素,后移动队首指针 ( C)先移动队尾指针,后取出元素 ( D)先取出元素,后移动队尾指针 9 下列合法的变量名是 ( ) ( A) # 33 ( B) 3D64 ( C) a b ( D) sum 10 二进制数 1110111.11转换成 十进制数是 ( ) ( A) 119.375 ( B) 119.75 ( C) 119.125 ( D) 119.3 11 设 Y为整型变量, A=1, A的地址为 EF01; B=2, B的地址为 EF02;执行语句B= printf( “% c,“ , + + a); printf(“%c n“ ,b =a+)

4、; 程序运行后的输出结果是 ( )。 ( A) b, b ( B) b, c ( C) a, b ( D) a, c 14 若变景均已正确定义井赋值,以下合法的 C语言赋值语句是 ( ) ( A) x=y =5; ( B) x=n%2.5; ( C) x+ n=i; ( D) x=5=4+1; 15 设 int型占 2个字节,则 unsigned int所能表示的数据范围是 _。 ( A) 0 65535 ( B) -32769 32767 ( C) 1 65536 ( D) 0 32767 16 己知 x=3, y=2,则表达式 x*=y+8的值为 _。 ( A) 3 ( B) 2 ( C)

5、 30 ( D) 10 17 执行下面的程序后, a的值为 ( )。 main() int a, b; for(a=1, b=1; a=10; a+) if(b 3=1) b+=3; continue; b=5; ( A) 7 ( B) 8 ( C) 9 ( D) 10 18 用 C语言编写的代码程序 ( )。 ( A)可立即执行 ( B)是一个源程序 ( C)经过编译即可执行 ( D)经过编译解释即可执行 19 以下叙述中正确的是 ( A) C语言的源程序不必通过编译就可以直接运行 ( B) C语言中的每条可执行语句最终都将被转换成二进制的机器指令 ( C) C源程序经编译形成的二进制代码可

6、以直接运行 ( D) C语言中的函数 不可以单独进行编译 20 若有以下程序段 int m=0xabc, n=0xubc; m-=n; printf(“%Xn“,m); 执行后输出结果是 ( A) 0X0 ( B) 0x0 ( C) 0 ( D) 0XABC 21 若有运算符:、 =、 %、 sizeof,则它们按优先级 (由高至低 )的正确排列顺序为 ( ) ( A) %、 sizeof、 = ( B) sizeof、 %、 =、 ( C) sizeof、 %、 = ( D) sizeof、 %、 = 22 现有如下程序段 #include “stdio.h“ main() int k30=

7、12, 324, 45, 6,768, 98, 21, 34, 453, 456; int count=0, i=0; while(Li) if(ki%2=0|ki%5=0)count+; i+; printf(“%d, %dn“, count,i); 则程序段的输出结果为 ( A) 7, 8 ( B) 8, 8 ( C) 7, 10 ( D) 8, 10 23 有关 return语句说法不正确的是 ( )。 ( A)系统默认的返回值类型为整型,故当函数的返回值为 int型时,在函数定义时,返回值的类型说明可以省略 ( B)当函数有返回值时,凡是允许表达式出现的地方,都可以调用该函数 ( C)

8、当函数没有返回值时,函数的返回值类型可以说明为 void型,它表示 “无类型 ”或 “空类型 ” ( D)函数的返回值类型必须与 return语句中的表达式值的类型一致,但 C语言也允许不同;这时,系统以函数定义时的返回值类型说明为准, 并自动地将 return语句中表达式的值转换为函数的返回值类型 24 有以下程序: #include stdio.h main() FILE*fp;int a10=1,2,3,i,n; fp=fopen(“d1.dat“,“w“); for(i=0;i 3;i+)fprintf(fp,“%d“,ai); fprintf(fp,“n“); fclose(fp);

9、 fp=fopen(“d1.dat“,“r“); fscanf(fp,“%d“, n); fclose(fp); printf(“%dn“,n); 程序的运行结果是 ( )。 ( A) 12300 ( B) 123 ( C) 1 ( D) 321 25 以下结构体类型说明和变量定义中正确的是 ( )。 ( A) typedef struct ( B) struct REC; int n; char c; REC; int n; char c; ; REC t1, t2; REC t1, t2; ( C) typedef struct REC; ( D) struct int n=0; char

10、 c=A; t1, t2; int n; char c; REC; REC t1,t2; 26 下列程序的输出结果是 ( )。 void f(int*x,int*y) int t; t=*x,*x=*y;*y=t; main() int a8=1,2,3,4,5,6,7,8,i,*p,*q; p=a;q=p+;q-; for(i=0;i 8;i+)printf(“%d,“,ai); ( A) 8,2,3,4,5,6,7,1 ( B) 5,6,7,8,1,2,3,4 ( C) 1,2,3,4,5,6,7,8 ( D) 8,7,6,5,4,3,2,1 27 有以下程序 #include stdio

11、.h intf(int x) int y; if(x=0|x=1) return(3); y=x*x-f(x-2); return y; main() int z; z=f(3); printf(“%dn“, z); 程序的运行结果是 ( A) 0 ( B) 9 ( C) 6 ( D) 8 28 下列选项中非法的字符常量是 ( )。 ( A) t ( B) 039 ( C) , ( D) n 29 程序中若有如下说明和定义语句 char fun (char*); main() char*s=“one“, a5=0, (*f1)()=fun,ch; 以下选项中对 fun()函数的正确调用语句是

12、。 ( A) (*f1)(a); ( B) *f1(*s); ( C) fun( ( A) 15 ( B) 14 ( C)不确定 ( D) 0 34 变量 a所占的内存字节数是 _。 union U char st4; int i; long 1; ; struct A int c; union U u; a; ( A) 4 ( B) 5 ( C) 6 ( D) 8 35 以下只有在使用时才为该类型变量分配内存的存储类说明是 _ 。 ( A) auto和 static ( B) auto和 register ( C) register和 static ( D) extern和 register

13、 36 已经定义 ch为字符型变量,以下赋值表达式中错误的是 _。 ( A) ch= ( B) ch=62+3 ( C) ch=NULL ( D) ch=xaa 37 定义 int*swap()指的是 _。 ( A)一个返回整型值的函 swap() ( B) 个返回指向整型值指针的 swap() ( C)一个指向函数 swap()的指针,函数返回一个整型值 ( D)以上说法均错 38 下列程序的执行结果是 _。 #include stdio.h union un int i; char c2; ; void main() union un x; x.c0=10; x.c1=1; printf(

14、“n%d“,x.i); ( A) 266 ( B) 11 ( C) 265 ( D) 138 39 有以下程序的输出结果是 ( ) void sum(int *a) a0=a1; main( ) int aa10=1,2,3,4,5,6,7,8,9,10,i; for(i=2;i=0;i-) sp; sum( printf(“%dn”,aa0); ( A) 4 ( B) 3 ( C) 2 ( D) 1 40 有以下程序 #inculde main() int a=2,B=2,c=2; PrintF(“%dn”,a/B 程序运行后的输出结果是 ( A) 0 ( B) 1 ( C) 2 ( D)

15、3 41 在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块 和承接模块 (桩模块 )。其中【 】的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。 42 软件生命周期可分为多个阶段,一般分为定义阶段、开发阶段和维护阶段。编码和测试属于 ( )阶段。 43 顺序存储方法是把逻辑上相邻的结点存储在物理位置【 】的存储单元中。 44 与十进制数 101等值的二进制数为【 】。 45 在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种:前序遍历、【 】遍历和后序遍历。 46 表达式 1/2*(int)3.7/(int)(2.4*(1.5+2.5)值的数

16、据类型为 _。 47 对长度为 8的线性表进行冒泡排序,最坏情况下需要比较的次数为 ( )。 48 下列程序的循环次数是 _。 x=2; do x=x*x; while(!x); 49 执行下列语句段后, x的值是 _。 int*p, x: x=100; p= t = x;x = y;y = t: printf( “% d % d “,x,y); main ( ) iht a=3,b=4: swap(a,b); prinff( “% d % d“ ,a,b); 52 以下程序的输出结果是【 】。 #include stdio h #define MAX(x, y)(x), (y)?(x): (

17、y) main() int a=5, b=2, c=3, d=3, t; t=MAX(a+b, c+d)*10; printf(“%dn“, t); 53 以下程序中, for循环体执行的次数是 _。 #define N 2 #define M N+1 #define K M+1*M/2 main() int i; for (i-1;i K;i+) . . 54 表达式 pow(2.8, sqrt(float(x)值的数据类型为 _型。 55 下列程序的运行结果是 _。 #include stdio.h long func(int x) long p; if(x=0 x=1) return(1

18、); p=x*func(x-1); return(p); main() printf(“%dn“, func(4); 56 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=1; col N;col+) if( ) max=arowcol; if(row=0) min=max; else

19、 if( ) min=max; return min; 国家二级( C语言)笔试模拟试卷 248 答案与解析 1 【正确答案】 C 【试题解析】 软件工程是指将工程 化的思想应用于软件的开发、应用和维护的过程,包括软件开发技术和软件工程管理。 2 【正确答案】 C 【试题解析】 队列是一种操作受限的线性表。它只允许在线性表的一端进行插入操作,另一端进行删除操作。其中,允许插入的一端称为队尾 (rear),允许删除的一端称为队首 (front)。队列具有先进先出的特点,它是按 “先进先出 ”的原则组织数据的。 3 【正确答案】 D 【试题解析】 需求分析常用的工具有数据流图 (DFD)、数据字典

20、 (DD)、判定树和判定表。 PAD(问题分析图 )、 PFD(程序流程图 )、 N-S(盒式图 )都是详细设计的常用工具,不是需求分析的工具。 4 【正确答案】 B 【试题解析】 栈操作原则上 “后进先出 ”,栈底至栈顶依次存放元素 A、 B、 C、D,则表明这 4个元素中 D是最后进栈, B、 C处于中间, A最早进栈,所以出栈时一定是先出 D,再出 C,最后出 A。 5 【正确答案】 D 【试题解析】 算法的复杂度主要包括算法的时间复杂度和算法的空间复杂度。所谓算法的时间复杂度是指执行算法所需要的计算工作量 ;算法的空间复杂度是指执行这个算法所需要的内存空间。 6 【正确答案】 D 【试

21、题解析】 软件工程包括 3个要素,即方法、工具和过程。方法是完成软件工程项目的技术手段:工具支持软件的开发、管理和文档生成:过程支持软件开发的各个环节的控制、管理。 7 【正确答案】 D 【试题解析】 所谓的交换排序方法是指借助数据元素之间的互相交换进行排序的一种方法,包括冒泡排序和快速排序冒泡排序通过相邻元素的交换逐步将线性表变成有序是一种最简单的交换排序方法。 8 【正确答案】 A 9 【正确答案】 D 10 【正确答案】 B 11 【正确答案】 C 【试 题解析】 简单插入排序所需要的比较次数为 n(n-1)/2;希尔排序所需要的比较次数为 O(n1.5);堆排序所需要的比较次数为 O(

22、nlog2n)。 48 【正确答案】 1 【试题解析】 dowhile 语句的功能是:首先执行循环体语句,然后检测循环控制条件表达式的值,若为真,则重 复执行循环体语句,否则退出循环; dowhile语句的特点是先执行后判断,因此循环体至少执行 1次。本程序中 x=2不符合循环条件,所以只循环 1次。 49 【正确答案】 150。 【试题解析】 本题先给变量 x赋初始值 100,然后将指针 p 指向变量 x, *p是取指针 p所指地址的内容,即 100,所以 x=100+50=150。 50 【正确答案】 *(p+5)或 p5 51 【正确答案】 433 4 【试题解析】 程序将变量 a, b

23、 的值传给函数 swap的形参 x, y,并在函数中对x, y的值进行交换, 所以在函数 swap 中输出 x, y的值 4, 3,由于 c程序的函数是僧传递,实参 a, b的值不会随形参 x, y的改变而改变,所以在主函数中输出的 a, b的值为 3, 4。 52 【正确答案】 7 【试题解析】 本题综合考查带参数的宏以及三目运算符的计算方法。三目运算符的一般形式是:表达式 1 ?表达式 2:表达式 3。 “?: ”运算符的含义是:先求表达式 1的值,如果为真,则求表达式 2的值,并把它作为整个表达式的值;如果表达式 1的值为假,则求表达式 3的值,并把它作为整个表达式的值。注意,在本题中宏

24、替换时可采用逐步 求解,最终为 7 6? 7:6*10,即 t=7 6? 7:60,其值为 t=7。 53 【正确答案】 4 【试题解析】 将程序中所有的宏替换掉可得: M=2+1, K=2+1*2+1/2=4,所以for循环共循环了 K-1+1次,即 4-1+1共 4次。 54 【正确答案】 float 【试题解析】 在此表达式中 x是 float类型的变量,经过开方所得到的结果仍是float类型,再和 2.8进行运算时,应该先将 2.8转换成 float类型再运算,最后结果仍是 float型。 55 【正确答案】 24 【试题解析】 本题考查函数的循环调用。 p=x*func(x-1),当

25、 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。 56 【正确答案】 aiowcol max或 arowcol =max或 max =arowcol或 max aiowcol max min或 min maX或 max =min或 min =max 【试题解析】 本题有两层 for循环,主函数中定义了整型变量 iow、 col、 max和min,其中 row用来存放外循环中的循环次数, col用来存放内循环

26、中的次数,max记录每行中的最大值; min 记录所有行中最大值中的最小值。在内循环中,首先给 max赋初值为每行的第 0列元素值,然后从第一列开始依次与 max进行比较。如果大于 max则将其值赋给 max,当每一行循环结束, max记录了每一行的最大值。所以第一个空应该填 arowcol max或 arowcol=max退出内循环,在 第一次退出内循环时,将 min 赋初值为第 0行的 max,然后在每次退出内循环时,将 min 和每行的 max比较,如果大于 max,则将 max 值赋 min,所以第二个空应该填 max min 或 min max,当退出外循环时, min 为所有行中的最大值的最小值。

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

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

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