【计算机类职业资格】二级C语言真题(1)及答案解析.doc
《【计算机类职业资格】二级C语言真题(1)及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言真题(1)及答案解析.doc(19页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C 语言真题(1)及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:40.00)1.下列叙述中正确的是_。(分数:1.00)A.程序执行的效率与数据的存储结构密切相关B.程序执行的效率只取决于程序的控制结构C.程序执行的效率只取决于所处理的数据量D.以上说法均错误2.下列与队列结构有关联的是_。(分数:1.00)A.函数的递归调用B.数组元素的引用C.多重循环的执行D.先到先服务的作业调度3.对下列二叉树 (分数:1.00)A.DYBEAFCZXB.YDEBFZXCAC.ABDYECFXZD.ABCDEFXYZ4.一个栈的初始状态为空,现将元素 1,2
2、,3,A,B,C 依次入栈,然后再依次出栈,则元素出栈的顺序是_。(分数:1.00)A.1,2,3,A,B,CB.C,B,A,1,2,3C.C,B,A,3,2,1D.1,2,3,C,B,A5.下面属于白盒测试方法的是_。(分数:1.00)A.等价类划分法B.逻辑覆盖C.边界值分析法D.错误推测法6.下面对对象概念描述正确的是_。(分数:1.00)A.对象间的通信靠消息传递B.对象是名字和方法的封装体C.任何对象必须有继承性D.对象的多态性是指一个对象有多个操作7.软件设计中模块划分应遵循的准则是_。(分数:1.00)A.低内聚低耦合B.高耦合高内聚C.高内聚低耦合D.以上说法均错误8.下面描述
3、中不属于数据库系统特点的是_。(分数:1.00)A.数据共享B.数据完整性C.数据冗余度高D.数据独立性高9.数据库设计过程不包括_。(分数:1.00)A.概念设计B.逻辑设计C.物理设计D.算法设计10.有三个关系 R、S 和 T 如下: R A B C a 1 2 b 2 1 c 3 1 S A D c 4 a 5 T A B C D c 3 1 4 a 1 2 5 则由关系 R 和 S 得到关系 T 的操作是_。(分数:1.00)A.自然连接B.交C.投影D.并11.以下叙述中正确的是_。(分数:1.00)A.程序必须包含所有三种基本结构才能称为一种算法B.我们所写的每条 C 语句,经过
4、编译最终都将转换成二进制的机器指令C.如果算法非常复杂,则需要使用三种基本结构之外的语句结构才能准确表达D.只有简单算法才能在有限的操作步骤之后结束12.以下叙述中正确的是_。(分数:1.00)A.在算法设计时,可以把复杂任务分解成一些简单的子任务B.在 C 语言程序设计中,所有函数必须保存在一个源文件中C.只要包含了三种基本结构的算法就是结构化程序D.结构化程序必须包含所有的三种基本结构,缺一不可13.以下叙述中正确的是_。(分数:1.00)A.只能在函数体内定义变量,其他地方不允许定义变量B.常量的类型不能从字面形式上区分,需要根据类型名来确定C.预定义的标识符是 C 语言关键字的一种,不
5、能另作它用D.整型常量和实型常量都是数值型常量14.以下叙述中正确的是_。(分数:1.00)A.在 C 程序中的八进制和十六进制可以是浮点数B.整型变量可以分为 int 型、short 型、long 型和 unsigned 型四种C.八进制数的开头要使用英文字母 o,否则不能与十进制区分开D.英文大写字母 X 和英文小写字母 x 都可以作为二进制数字的开头字符15.以下叙述中正确的是_。(分数:1.00)A.在 scanf 函数中的格式控制字符串是为了输入数据用的,不会输出到屏幕上B.在使用 scanf 函数输入整数或实数时,输入数据之间只能用空格来分隔C.在 printf 函数中,各个输出项
6、只能是变量D.使用 printf 函数无法输出百分号“%”16.以下叙述中正确的是_。(分数:1.00)A.在 scanf 函数的格式串中,必须有与输入项一一对应的格式转换说明符B.只能在 printf 函数中指定输入数据的宽度,而不能在 scanf 函数中指定输入数据的宽度C.scanf 函数中的字符串,是提示程序员的,输入数据时不必管它D.复合语句也被称为语句块,它至少要包含两条语句17.以下叙述中正确的是_。(分数:1.00)A.逻辑“或”(即运算符“|”)的运算级别比算术运算符要高B.C 语言的关系表达式:0x10 完全等价于:(0x) 则以下叙述中正确的是_。(分数:1.00)A.语
7、句 a=是非法的B.表达式 a+1 是非法的C.三个表达式 a1、*(a+1)、* for(i=0;i4;i+) ai=*p+; printf(“%d/n“,a2); 程序的输出结果是_。(分数:1.00)A.2B.8C.4D.628.以下叙述中正确的是_。(分数:1.00)A.语句“int a43=1,2,4,5;”是错误的初始化形式B.语句“int a43=1,2,4,5;”是错误的初始化形式C.语句“int a3=1,2,4,5;”是错误的初始化形式D.在逻辑上,可以把二维数组看成是一个具有行和列的表格或矩阵29.以下叙述中正确的是_。(分数:1.00)A.字符串常量“Hello”会被隐
8、含处理成一个无名字符型数组,它有 5 个元素B.不能用字符串常量对字符数组名进行整体赋值操作C.char str7=“string!“; 在语法上是合法的,运行也是安全的D.char *str; str=“Hello“;与 char str; str=“Hello“;效果是一样的30.以下叙述中正确的是_。(分数:1.00)A.在语句“char str=“string!“;“中,数组 str 的大小等于字符串的长度B.语句“char str10=“string!“;“和“char str10=“string!“;”并不等价C.对于一维字符数组,不能使用字符串常量来赋初值D.对于字符串常量“st
9、ring!”,系统已自动在最后加入了“/0“字符,表示串结尾31.设有定义 char str=“Hello“; 则语句 printf(“%d%d“, sizeof(str), strlen(str); 的输出结果是_。(分数:1.00)A.5 5B.6 6C.6 5D.5 632.在 32 位编译器上,设有定义 char *str1=“Hello“, str2=“Hello“;, 则以下语句 printf(“%d%d“, sizeof(str1), sizeof(str2); 的输出结果是_。(分数:1.00)A.5 6B.5 5C.6 6D.4 633.以下叙述中正确的是_。(分数:1.00
10、)A.任何情况下都不能用函数名作为实参B.函数既可以直接调用自己,也可以间接调用自己C.函数的递归调用不需要额外开销,所以效率很高D.简单递归不需要明确的结束递归的条件34.以下叙述中正确的是_。(分数:1.00)A.函数的形式参数不属于局部变量B.对于变量而言,“定义”和“说明”这两个词实际上是同一个意思C.在复合语句中不能定义变量D.全局变量的存储类别可以是静态类35.以下叙述中正确的是_。(分数:1.00)A.在一个程序中,允许使用任意数量的#include 命令行B.在包含文件中,不得再包含其他文件C.#include 命令行不能出现在程序文件的中间D.虽然包含文件被修改了,包含该文件
11、的源程序也可以不重新进行编译和连接36.以下叙述中正确的是_。(分数:1.00)A.函数的返回值不能是结构体类型B.在调用函数时,可以将结构体变量作为实参传给函数C.函数的返回值不能是结构体指针类型D.结构体数组不能作为参数传给函数37.以下叙述中正确的是_。(分数:1.00)A.结构体数组名不能作为实参传给函数B.结构体变量的地址不能作为实参传给函数C.结构体中可以含有指向本结构体的指针成员D.即使是同类型的结构体变量,也不能进行整体赋值38.设有如下的说明和定义: struct int a; char *s; x, *p= x.a=4; x.s=“hello“; 则以下叙述中正确的是_。(
12、分数:1.00)A.(p+)-a 与 p+-a 都是合语法的表达式,但二者不等价B.语句“+p-a;”的效果是使 p 增 1C.语句“+p-a;”的效果是使成员 a 增 1D.语句“*p-s+;”等价于“(*p)-s+ +;”39.下面关于位运算符的叙述,正确的是_。(分数:1.00)A.|表示“按位或”的运算B.#表示“按位异或”的运算C. void ReadText(FILE *); main( ) FILE * fp; if(fp=fopen(”myiile4.txt“,“w“)=NULL) printf(“open fail!/n“);exit(0); WriteText(fp); f
13、close(fp); if(fp=fopen(“myfile4.txt“,“r“)=NULL) printf(“open fail!/n“);exit(0); ReadText(fp); fclose(fp); /* * * * * * * * * *found* * * * * * * * * */ void WriteText(FILE 1) char str81; printf(“/nEnter string with-1 to end :/n“); gets(str); while(strcmp(str,“-1“)!=0) /* * * * * * * * * *found* * *
14、* * * * * * */ fputs( 2,fw);fputs(“/n“,fw); gets(str); void ReadText(FILE *fr) char str81; printf(“/nRead file and output to screen:/n“); fgets(str,81,fr); while(!feof(fr) /* * * * * * * * * *found* * * * * * * * * */ printf(“%s“, 3); fgets(str,81,fr); (分数:18.00)三、程序修改题(总题数:1,分数:18.00)42.下列给定程序中,函数
15、fun 的功能是:从低位开始依次取出长整型变量 s 中奇数位上的数,构成一个新数存放在 t 中。高位仍在高位,低位仍在低位。 例如,当 s 中的数为 7654321 时,t 中的数为 7531。 请改正程序中的错误,使它能得出正确的结果。 注意:部分源程序在文件 MODI1.C 中,不得增行或删行,也不得更改程序的结构! #include stdio.h /* * * * * * * * * * found* * * * * * * * * * / void fun(long s, long t) longsl=10; *t=s% 10; while(s0) s = s/100; *t = s
16、%10 * sl + *t; /* * * * * * * * * * found* * * * * * * * * * / sl=sl*100; main( ) long s, t; printf(“ /nPlease enter s:“); scanf(“%ld“, fun(s, printf(“The result is: %ld/n“, t); (分数:18.00)四、程序设计题(总题数:1,分数:24.00)43.学生记录由学号和成绩组成,N 名学生的数据已放入主函数中的结构体数组中,请编写函数 fun,其功能是:把分数最低的学生数据放入 b 所指的数组中。注意:分数最低的学生可能不
17、止一个,函数返回分数最低的学生人数。 注意:部分源程序在文件 PROG1.C 中。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。 #include stdio.h #deftne N 16 typedef struct char num10; int s; STREC; mt fun( STREC * a, STREC * b ) main( ) STREC sN = “GA05“ ,85 , “GA03“ ,76, “GA02“,69, “GA04“,85, “GA01“,91,“GA07“,72,“GA08“,64,“GA06“,87
18、, “GA015“,85, “GA013“,91,“GA012“,64, “ GA014“,91/, “GA011“,91, “GA017“,64,“GA018“,64,“GA016“,72t; STREC hN; int i,n; FILE * out; n=fun(s,h); printf(“The % d lowest score :/n“,n); for(i=0;in; i+ +) printf(“% s %4d/n“, hi. num,hi.s); printf(“ /n“); out=fopen(“out.dat“,“w“); fprintf(out,“% d/n“,n); for
19、(i=0;in;i+ +) fprintf(out,“%4d/n“,hi.s); fclose (out); (分数:24.00)_二级 C 语言真题(1)答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:40.00)1.下列叙述中正确的是_。(分数:1.00)A.程序执行的效率与数据的存储结构密切相关 B.程序执行的效率只取决于程序的控制结构C.程序执行的效率只取决于所处理的数据量D.以上说法均错误解析:解析 程序执行的效率与数据的存储结构、数据的逻辑结构、程序的控制结构、所处理的数据量等有关。2.下列与队列结构有关联的是_。(分数:1.00)A.函数的递归
20、调用B.数组元素的引用C.多重循环的执行D.先到先服务的作业调度 解析:解析 队列的修改是依照“先进先出”的原则进行的,故 D 正确。3.对下列二叉树 (分数:1.00)A.DYBEAFCZXB.YDEBFZXCAC.ABDYECFXZ D.ABCDEFXYZ解析:解析 前序遍历是指在访问根节点、遍历左子树与遍历右子树这三者中,首先访问根节点,然后遍历左子树,最后遍历右子树;并且在遍历左、右子树时,仍然先访问根节点,然后遍历左子树,最后遍历右子树。因此,前序遍历可描述为:若二叉树为空,则执行空操作。否则:访问根节点;前序遍历左子树;前序遍历右子树。所以 C 正确。4.一个栈的初始状态为空,现将
21、元素 1,2,3,A,B,C 依次入栈,然后再依次出栈,则元素出栈的顺序是_。(分数:1.00)A.1,2,3,A,B,CB.C,B,A,1,2,3C.C,B,A,3,2,1 D.1,2,3,C,B,A解析:解析 栈的修改是按照“后进先出”的原则进行的,所以顺序应与入栈顺序相反,故选 C。5.下面属于白盒测试方法的是_。(分数:1.00)A.等价类划分法B.逻辑覆盖 C.边界值分析法D.错误推测法解析:解析 白盒测试法主要有逻辑覆盖、基本路径测试等。逻辑覆盖测试包括语句覆盖、路径覆盖、判定覆盖、条件覆盖、判断一条件覆盖,故选择 B。其余为黑盒测试法。6.下面对对象概念描述正确的是_。(分数:1
22、.00)A.对象间的通信靠消息传递 B.对象是名字和方法的封装体C.任何对象必须有继承性D.对象的多态性是指一个对象有多个操作解析:解析 对象之间进行通信的结构叫做消息,故 A 正确。封装性是指从外面看只能看到对象的外部特征,而不知道也无须知道数据的具体结构以及实现操作,不能简单地说成是名字和方法,故 B 错误。对象不一定必须有继承性,故 C 错误,多态性是指同一个操作可以是不同对象的行为,故 D 错误。7.软件设计中模块划分应遵循的准则是_。(分数:1.00)A.低内聚低耦合B.高耦合高内聚C.高内聚低耦合 D.以上说法均错误解析:解析 根据软件设计原理提出如下优化准则:划分模块时,尽量傲到
23、高内聚、低耦合,保持模块相对独立性,并以此原则优化初始的软件结构;一个模块的作用范围应在其控制范围之内,且判定所在的模块应与受其影响的模块在层次上尽量靠近;软件结构的深度、宽度、扇入、扇出应适当;模块的大小要适中。故 C 正确。8.下面描述中不属于数据库系统特点的是_。(分数:1.00)A.数据共享B.数据完整性C.数据冗余度高 D.数据独立性高解析:解析 数据库系统的特点为高共享、低冗余、独立性高、具有完整性等。故 C 错误。9.数据库设计过程不包括_。(分数:1.00)A.概念设计B.逻辑设计C.物理设计D.算法设计 解析:解析 数据库设计过程主要包括:需求分析、概念结构设计、逻辑结构分析
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 答案 解析 DOC
