【计算机类职业资格】国家二级(C语言)机试历年真题试卷汇编19及答案解析.doc
《【计算机类职业资格】国家二级(C语言)机试历年真题试卷汇编19及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】国家二级(C语言)机试历年真题试卷汇编19及答案解析.doc(14页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级(C 语言)机试历年真题试卷汇编 19及答案解析(总分:86.00,做题时间:90 分钟)一、选择题(总题数:40,分数:80.00)1.下列数据结构中,属于非线性结构的是( )。(分数:2.00)A.循环队列B.带链队列C.二叉树D.带链栈2.算法的空间复杂度是指( )。(分数:2.00)A.算法在执行过程中所需要的计算机存储空间B.算法所处理的数据量C.算法程序中的语句或指令条数D.算法在执行过程中所需要的临时工作单元数3.下列数据结构中,能够按照“先进后出“原则存取数据的是( )。(分数:2.00)A.循环队列B.栈C.队列D.二叉树4.某二叉树共有 12个结点,其中叶子结点只有
2、 1个。则该二叉树的深度为(根结点在第 1层)( )。(分数:2.00)A.3B.6C.8D.125.下面不能作为结构化方法软件需求分析工具的是( )。(分数:2.00)A.系统结构图B.数据字典(DD)C.数据流程图(DFD 图)D.判定表6.下面不属于软件测试实施步骤的是( )。(分数:2.00)A.集成测试B.回归测试C.确认测试D.单元测试7.下面描述中不属于数据库系统特点的是( )。(分数:2.00)A.数据共享B.数据完整性C.数据冗余度高D.数据独立性高8.负责数据库中查询操作的数据库语言是( )。(分数:2.00)A.数据定义语言B.数据管理语言C.数据操纵语言D.数据控制语言
3、9.设数据元素的集合 D=1,2,3,4,5,则满足下列关系 R的数据结构中为线性结构的是( )。(分数:2.00)A.R=(1,2),(3,2),(5,1),(4,5)B.R=(1,3),(4,1),(3,2),(5,4)C.R=(1,2),(2,4),(4,5),(2,3)D.R=(1,3),(2,4),(3,5),(1,2)10.一般情况下,当对关系 R和 S进行自然连接时,要求 R和 S含有一个或者多个共有的( )。(分数:2.00)A.记录B.行C.属性D.元组11.以下关于结构化程序设计的叙述中正确的是( )。(分数:2.00)A.由三种基本结构构成的程序只能解决小规模的问题B.结
4、构化程序使用 goto语句会很便捷C.一个结构化程序必须同时由顺序、分支、循环三种结构组成D.在 C语言中,程序的模块化是利用函数实现的12.以下叙述中正确的是( )。(分数:2.00)A.书写源程序时,必须注意缩进格式,否则程序会有编译错误B.程序的主函数名除 main外,也可以使用 Main或_mainC.程序可以包含多个主函数,但总是从第一个主函数处开始执行D.在 C程序中,模块化主要是通过函数来实现的13.以下叙述中正确的是( )。(分数:2.00)A.只能在函数体内定义变量,其他地方不允许定义变量B.常量的类型不能从字面形式上区分,需要根据类型名来决定C.预定义的标识符是 C语言关键
5、字的一种,不能另作它用D.整型常量和实型常量都是数值型常量14.若有以下程序段: double x=51 6894: printf(“fn“,(int)(x*1000+05)(double)1000);则程序段的输出结果是( )。(分数:2.00)A.5170000B.5175000C.5169000D.516800015.以下定义语句中正确的是( )。(分数:2.00)A.int a=b=0;B.char A=65+1,b=b;C.float a=1,*b=&a,*c=&b;D.double a=00;b=11;16.若有以下程序: #includestdioh main() int a=一
6、 11,b=10; a=b=4; printf(“d dn“,a,b); 则程序的输出结果是( )。(分数:2.00)A.1 2B.一 1 2C.一 12D.1217.下面选项中关于位运算的叙述正确的是( )。(分数:2.00)A.位运算的对象只能是整型或字符型数据B.位运算符都需要两个操作数C.左移运算的结果总是原操作数据的 2倍D.右移运算时,高位总是补 018.若有以下程序: #includestdioh char fun(char x) return x*x+a; main() char a,b=0; for(a=0;a4;a+=1) b=fun(a);putchar(b); prin
7、tf(“n“); 则程序的输出结果是( )。(分数:2.00)A.abcdB.ABEJC.abejD.ABCD19.有以下程序: #includestdioh main() int i,j; for(i=1;i4;i+) for(j=i;j4;j+) printf(“d*d=d“,i,j,i*j); printf(“n“); 程序运行后的输出结果是( )。(分数:2.00)A.1*1=1 1*2=2 1*3=3 2*1=2 2*2=4 3*1=3B.1*1=1 1*2=2 1*3=3 2*2=4 2*3=6 3*3=9C.1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9D
8、.1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=920.设有定义语句: double a,b,c; 若要求通过输入分别给 a、b、C 输入 1、2、3,输入形式如下(注:此处口代表一个空格): 口口 10 口口 20 口口 30回车 则能进行正确输入的语句是( )。(分数:2.00)A.scanf(“1f1f1f“,a,b,c);B.scanf(“1f1f1f“,&a,&b,&c);C.scanf(“fff“,&a,&b,&c);D.scanf(“51lf51lf5llf“,&a,&b,&c);21.若有以下程序: #includestdioh main() int a=
9、1,b=2,c=3,d=4; if(a=2)&(b=1)c=2; if(c=3)(d=一 1)a=5; printf(“d,d,d,dn“,a,b,c,d); 则程序的输出结果是( )。(分数:2.00)A.2,2,2,4B.2,1,2,一 1C.5,1,2,一 1D.1,2,3,422.有以下程序: #includestdioh main() double x=20,y; if(x00)y=00; else if(x50)&(!x) y=10(x+20); else if(x100)y=10x; else y=100; printf(“fn“,y); 程序运行后的输出结果是( )。(分数:2
10、.00)A.0000000B.0250000C.0500000D.100000023.有以下程序: #includestdioh main() int a=一 2,b=0; while(a+&+b); printf(“d,dn“,a,b); 程序运行后输出结果是( )(分数:2.00)A.0,2B.0,3C.1,3D.1,224.若有以下程序: #includestdioh main() int a=6,b=0,c=0; for(;a;)b+=a;a 一=+c;) printf(“d,d,dn“,a,b,c); 则程序的输出结果是( )。(分数:2.00)A.1,14,3B.0,14,3C.0
11、,18,3D.0,14,625.以下叙述中正确的是( )。(分数:2.00)A.一条语句只能定义一个数组B.每个数组包含一组具有同一类型的变量,这些变量在内存中占有连续的存储单元C.数组说明符的一对方括号中只能使用整型常量,而不能使用表达式D.在引用数组元素时,下标表达式可以使用浮点数26.有如下程序: #includestdioh #includestringh main() char a=“1234“,*b=“ABC“; printf(“d d d dn“,strlen(a),sizeof(a),strlen(b),sizeof(b); 程序运行后的输出结果是( )。(分数:2.00)A.
12、4 5 3 4B.4 3 2 1C.4 5 3 3D.4 5 1 327.有如下程序: #includestdioh main() if(0=0)putchar(X); if(0=0) putchar(Y); if(ab)putchar(Z); printf(“n“); 程序运行后的输出结果是( )。(分数:2.00)A.YZB.XYZC.XD.Y28.以下叙述正确的是( )。(分数:2.00)A.语句 int a43=1,2,4,5;是错误的初始化形式B.语句 int a43=1,2,4,5;是错误的初始化形式C.语句 int a3=1,2,4,5;是错误的初始化形式D.在逻辑上,可以把二维
13、数组看成是一个具有行和列的表格或矩阵29.设有某函数的说明为: int *func(int a10,int n); 则下列叙述中,正确的是( )。(分数:2.00)A.形参 a对应的实参只能是数组名B.说明中的 a10写成 a或*a,效果完全一样C.func的函数体中不能对 a进行移动指针(如 a+)的操作D.只有指向 10个整数内存单元的指针,才能作为实参传给 a30.有以下程序: #includestdioh int fun(int x,int y) if(x!=y)return(x+y)2); else return(x); main() int a=4,b=5,c=6; printf(
14、“dn“,fun(2*a,fun(b,c); 程序运行后的输出结果是( )。(分数:2.00)A.3B.6C.8D.1231.要求定义一个具有 6个元素的 int型一维数组,以下选项中错误的是( )。(分数:2.00)A.int N=6,aN;B.int a2*3=0;C.#define N 3 int aN+N;D.int a=1,2,3,4,5,6;32.以下叙述中正确的是( )。(分数:2.00)A.字符串常量 str1的类型是字符串数据类型B.有定义语句:char str1=“str1“;,数组 str1包含 4个元素C.下面的语句用赋初值的方式来定义字符串,其中,0不可缺少 char
15、 str1=s,t,r,1,0;D.字符数组的每个元素可存放一个字符,并且最后一个元素必须是0字符33.以下叙述中错误的是( )。(分数:2.00)A.当在程序的开头包含头文件 stdioh 时,可以给指针变量赋 NULLB.函数可以返回地址值C.改变函数形参的值,不会改变对应实参的值D.可以给指针变量赋一个整数作为地址值34.设有定义语句: float a10,x; 则以下叙述中正确的是( )。(分数:2.00)A.语句 a=&x;是非法的B.表达式 a+1是非法的C.三个表达式 a1、*(a+1)、*&a1表示的意思完全不同D.表达式*&a1是非法的,应该写成*(&(a1)35.有以下程序
16、: #includestdioh int fun(int n) int a; if(n=1)return 1; a=n+fun(n 一1); return a; main() printf(“dn“,fun(5); 程序的输出结果是( )。(分数:2.00)A.9B.14C.10D.1536.以下针对全局变量的叙述错误的是( )。(分数:2.00)A.全局变量的作用域是从定义位置开始至源文件结束B.全局变量是在函数外部任意位置上定义的变量C.用 extern说明符可以限制全局变量的作用域D.全局变量的生存期贯穿整个程序的运行期间37.以下叙述中正确的是( )。(分数:2.00)A.如果 p是指
17、针变量,则p 是不合法的表达式B.如果 p是指针变量,则*p 表示变量 p的地址值C.在对指针进行加、减算术运算时,数字 1表示 1个存储单元的长度D.如果 p是指针变量,则*p+1 和*(p+1)的效果是一样的38.有以下程序: #includestdioh #define N 2 #define M N+1 #define NUM(M+1)*M2 main() printf(“dn“,NUM); 程序运行后的输出结果是( )。(分数:2.00)A.4B.8C.9D.639.有以下程序: #includestdioh main() int a=2,c=5; printf(“a=d b=dn“
18、,a,c); 程序运行后的输出结果是( )。(分数:2.00)A.a=d b=dB.a=2 b=5C.a=d b=dD.a=2 b=540.设有如下语句: typedef struct Date int year; int month; int day; DATE; 则以下叙述中错误的是( )。(分数:2.00)A.DATE是用户说明的新结构体类型名B.struct Date是用户定义的结构体类型C.DATE是用户定义的结构体变量D.struct是结构体类型的关键字二、程序填空题(总题数:1,分数:2.00)41.下列给定程序中,函数 fun的功能是:计算 f(x)=1+x+ (分数:2.00
19、)_三、程序修改题(总题数:1,分数:2.00)42.下列给定程序中,函数 fun的功能是:将主函数中两个变量的值进行交换。例如,若变量 a中的值为8,b 中的值为 3,则程序运行后,a 中的值为 3,b 中的值为 8。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构! 试题程序: #includestdioh *found* void fun(int x,int y) int t; *found* t=x;x=y;y=t; void main() int a,b; a=8: b=3; fun(&a,&b); printf(“d
20、dn“,a,b); (分数:2.00)_四、程序设计题(总题数:1,分数:2.00)43.请编写函数 fun,其功能是:找出一维整型数组元素中最大的值及其所在的下标,并通过形参传回。数组元素中的值已在主函数中赋予。 主函数中 x是数组名,n 是 x中的数据个数,max 存放最大值,index存放最大值所在元素的下标。 注意:请勿改动主函数 main和其他函数中的任何内容,仅在函数fun的花括号中填入编写的若干语句。 试题程序: #includestdlibh #includestdioh #included timeh void fun(int a,int n,int*max,int*d) v
21、oid main() FILE *wf; int i,x20,max,index,n=10; int y20=4,2,6,8,11,5; srand(unsigned)time(NULL);for(i=0;in;i+) xi=rand()50; printf(“4d“,xi);*输出一个随机数组* printf(“n“); fun(x,n,&max,&index); printf(“Max=5d,Index=4dn“,max,index); * wf=fopen(“outdat“,“w“); fun(y,6,&max,&index); fprintf(wf,“Max=5d,Index=4d“,
22、max,index); fclose(wf); * (分数:2.00)_国家二级(C 语言)机试历年真题试卷汇编 19答案解析(总分:86.00,做题时间:90 分钟)一、选择题(总题数:40,分数:80.00)1.下列数据结构中,属于非线性结构的是( )。(分数:2.00)A.循环队列B.带链队列C.二叉树 D.带链栈解析:解析:线性结构的特点:有且只有一个根结点;每一个结点最多有一个前驱,也最多有一个后继。不满足线性结构条件的称为非线性结构,二叉树的非叶子结点最多可以用两个后继,属于非线性结构。2.算法的空间复杂度是指( )。(分数:2.00)A.算法在执行过程中所需要的计算机存储空间 B
23、.算法所处理的数据量C.算法程序中的语句或指令条数D.算法在执行过程中所需要的临时工作单元数解析:解析:算法的空间复杂度是指算法在执行过程中所需要的内存空间,因此本题答案为 A。3.下列数据结构中,能够按照“先进后出“原则存取数据的是( )。(分数:2.00)A.循环队列B.栈 C.队列D.二叉树解析:解析:栈是按“先进后出“的原则组织数据的;队列是按“先进先出”的原则组织数据的,因此本题答案为 B。4.某二叉树共有 12个结点,其中叶子结点只有 1个。则该二叉树的深度为(根结点在第 1层)( )。(分数:2.00)A.3B.6C.8D.12 解析:解析:二叉树中,度为 0的结点数等于度为 2
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 国家 二级 语言 历年 试卷 汇编 19 答案 解析 DOC
