【计算机类职业资格】二级C语言笔试62及答案解析.doc
《【计算机类职业资格】二级C语言笔试62及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言笔试62及答案解析.doc(19页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C 语言笔试 62 及答案解析(总分:90.00,做题时间:90 分钟)一、B选择题/B(总题数:50,分数:60.00)1.以下不正确的定义语句是( )。(分数:1.00)A.double x5=2.0,4.0,6.0,8.0,10.0;B.int y5=0,1,3,5,7,9;C.char c1=1,2,3,4,5;D.char c2=/x10,/xa,/x8;2.以下程序的输出结果是( )。 #include stdioh void reverse(int a ,int n) int i,t; for(i=0;in/2;i+) t=ai; ai=an-1 -i;an-1-i =t;
2、 main() int b10=1,2,3,4,5,6,7,8,9,10;int i,s=0; reverse(b,8); for(i=6;i10;i+)s+=bi; printf(“%d/n“,s); (分数:1.00)A.22B.10C.34D.303.有如下程序段: int a10=1,2,3,4,5,6,7,8,9,10; int *p=其中 0i9,则对 a 数组元素不正确的引用是( )。(分数:1.00)A.ap-aB.*( char ch; double f; b;则结构变量 b 占用内存的字节数是( )。(分数:1.00)A.1B.2C.7D.1122.有如下程序: #incl
3、ude stdioh long fib(int n) if(n2)return(fib(n-1)+fib(n-2); else return(2); main() printf(“%d/n“,fib(3); 该程序的输出结果是( )。(分数:1.00)A.2B.4C.6D.823.sizeof(float)是( )。(分数:1.00)A.一个双精度型表达式B.一个整型表达式C.一种函数调用D.一个不合法的表达式24.若某二叉树的前序遍历访问顺序是 abdgcefh,中序遍历访问顺序是 dgbaechf,则其后序遍历的结点访问顺序是( )。(分数:1.00)A.bdgcefhaB.gdbecfh
4、aC.bdgaechfD.gdbehfca25.在深度为 5 的满二叉树中,叶子结点的个数为( )。(分数:1.00)A.32B.31C.16D.1526.以下程序有语法错误,有关错误原因的正确说法是( )。 main() int G=5,k; void prt_char(); k=prt_char(G); (分数:1.00)A.语句 void prt_char();有错,它是函数调用语句,不能用 void 说明B.变量名不能使用大写字母C.函数说明和函数调用语句之间有矛盾D.函数名不能使用下划线27.设有数组定义:char array=“China“;则数组 array 所占的空间是( )。
5、(分数:1.00)A.4 个字节B.5 个字节C.6 个字节D.7 个字节28.若 x,i,j 和 k 都是 int 型变量,则计算表达式 x=(i=4,j=16,k=32)后,x 的值为 ( )。(分数:1.00)A.4B.16C.32D.5229.以下叙述中不正确的是( )。(分数:1.00)A.在不同函数中可以使用相同名字的变量B.函数中的形式参数是局部变量C.在一个函数内定义的变量只在本函数范围内有效D.在一个函数内的复合语句中定义的变量在本函数范围内有效30.下面程序段的运行结果是( )。 char * format=“%s,a=%d,b=%d/n“; int a=11,b=10;
6、a+ =b; printf(format,“a+=b“,a,b);(分数:1.00)A.for,“a+=b“,abB.format,“a+=b“C.a+=b,a=21,b=10D.以上结果都不对31.以下程序有错,错误原因是( )。 main() int *p,i; char *q,ch; p= q= char ch2; a; main() a.ch0=13;a.ch1=0;printf(“%d/n“,ai); 程序的输出结果是( )。(分数:1.00)A.13B.14C.208D.20934.软件工程的理论和技术性研究的内容主要包括软件开发技术和( )。(分数:1.00)A.消除软件危机B.
7、软件工程管C.程序设计自动化D.实现软件可重用35.下列程序的输出结果是( )。 #include stdioh int b=2; int func(int *a) b+=*a;return(b); main() int a=2, res=2; res+=func(s=“ABCDE“;D.char *s;scanf(“%s“, for(i=0;in/2;i+) t=ai; ai=an-1 -i;an-1-i =t; main() int b10=1,2,3,4,5,6,7,8,9,10;int i,s=0; reverse(b,8); for(i=6;i10;i+)s+=bi; printf(
8、“%d/n“,s); (分数:1.00)A.22 B.10C.34D.30解析:解析 在 main 函数中,调用 reverse 函数将 b 数组中的前 8 个成员进行互置,执行完毕后,b 数组中的成员为8,7,6,5,4,3,2,1,9,10,然后再执行 for 循环结构,将 b6,b7, b9的值相加,结果为 22。3.有如下程序段: int a10=1,2,3,4,5,6,7,8,9,10; int *p=其中 0i9,则对 a 数组元素不正确的引用是( )。(分数:1.00)A.ap-aB.*( char ch; double f; b;则结构变量 b 占用内存的字节数是( )。(分数
9、:1.00)A.1B.2C.7D.11 解析:解析 结构体变量占用内存的字节数是其所有成员占用内存字节数之和。本题中整型变量 i 占用的内存是 2 字节,字符型变量 ch 占用的内存是 1 字节,双精度型变量 f 占用的内存是 8 字节,三者相加为 11。22.有如下程序: #include stdioh long fib(int n) if(n2)return(fib(n-1)+fib(n-2); else return(2); main() printf(“%d/n“,fib(3); 该程序的输出结果是( )。(分数:1.00)A.2B.4 C.6D.8解析:解析 本题考查函数的递归调用。
10、fib(3)=fib(2)+fib(1),而 fib(2)的返回值为 2, fib(1)的返回值也为 2,故输出的 fib(3)的值为 4。23.sizeof(float)是( )。(分数:1.00)A.一个双精度型表达式B.一个整型表达式 C.一种函数调用D.一个不合法的表达式解析:解析 sizeof 是长度运算符,或称字节数运算符,用于计算数据类型和变量的长度。24.若某二叉树的前序遍历访问顺序是 abdgcefh,中序遍历访问顺序是 dgbaechf,则其后序遍历的结点访问顺序是( )。(分数:1.00)A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca 解
11、析:解析 前序遍历的第一个结点 a 为树的根结点;中序遍历中 a 左边的结点为 a 的左子树, a 右边的结点为 a 的右子树;再分别对 a 的左右子树进行上述两步处理,直到每个结点都找到正确的位置。25.在深度为 5 的满二叉树中,叶子结点的个数为( )。(分数:1.00)A.32B.31C.16 D.15解析:解析 所谓满二叉树是指这样的一种二叉树:除最后一层外,每一层上的所有结点都有两个子结点。这就是说,在满二叉树中,每层上的结点数都达到最大值,即在满二叉树的第 k 层上有 2k-1个结点,且深度为 m 的满二叉树有 2m-1个结点。由此可知,本题中叶子结点的个数为 25-1=16。26
12、.以下程序有语法错误,有关错误原因的正确说法是( )。 main() int G=5,k; void prt_char(); k=prt_char(G); (分数:1.00)A.语句 void prt_char();有错,它是函数调用语句,不能用 void 说明B.变量名不能使用大写字母C.函数说明和函数调用语句之间有矛盾 D.函数名不能使用下划线解析:解析 在 C 程序中,若把函数定义放在函数调用之后,应该在函数调用之前对函数进行声明,或称为函数原型说明。函数声明的类型必须与函数返回类型一致,函数声明可以是一条独立的语句,也可以与普通变量一起出现在同一条语句中。本题程序中声明 prt_cha
13、r 函数是 void 类型,与 k=prt _ char()的类型矛盾,所以本题的错误在于“函数说明和函数调用语句之间有矛盾”。27.设有数组定义:char array=“China“;则数组 array 所占的空间是( )。(分数:1.00)A.4 个字节B.5 个字节C.6 个字节 D.7 个字节解析:解析 在定义字符数组时,可以用一个字符串作为初值,对数组进行初始化。要注意的是,数组array 的长度不是 5,而是 6,因为系统将自动在字符串常量的后面加上一个“/0“,因此,题干中的初始化语句与 char array=“C“,“h“,“i“,“n“,“9“,“/0“;等价。28.若 x,
14、i,j 和 k 都是 int 型变量,则计算表达式 x=(i=4,j=16,k=32)后,x 的值为 ( )。(分数:1.00)A.4B.16C.32 D.52解析:解析 逗号表达式的形式如下: 表达式 1,表达式 2,表达式 3,表达式 n 逗号表达式作为一个整体,其运算过程是从左往右逐个计算表达式,它的值为最后一个表达式(也即表达式 n)的值。逗号运算符的优先级别在所有运算符中最低。29.以下叙述中不正确的是( )。(分数:1.00)A.在不同函数中可以使用相同名字的变量B.函数中的形式参数是局部变量C.在一个函数内定义的变量只在本函数范围内有效D.在一个函数内的复合语句中定义的变量在本函
15、数范围内有效 解析:解析 C 语言在函数中说明的变量为局部变量,只在函数内起作用,不会影响到其他函数。在不同函数中使用相同的变量名不代表是同一变量,A) 项正确;在函数定义时声明的参数只在函数内部起作用,是函数的局部变量,B) 正确;在一个函数中定义的变量是这个函数的局部变量,所以只在这个函数内起作用,C) 正确;复合语句中定义的变量其作用域是这个复合语句,不会扩大到整个函数,所以 D) 项错误。30.下面程序段的运行结果是( )。 char * format=“%s,a=%d,b=%d/n“; int a=11,b=10; a+ =b; printf(format,“a+=b“,a,b);(
16、分数:1.00)A.for,“a+=b“,abB.format,“a+=b“C.a+=b,a=21,b=10 D.以上结果都不对解析:解析 字符串常量是由双引号括起来的一串字符,每一个字符串常量都分别占用内存中一串连续的存储空间,这些连续的存储空间实际上就是字符型一维数组。31.以下程序有错,错误原因是( )。 main() int *p,i; char *q,ch; p= q= char ch2; a; main() a.ch0=13;a.ch1=0;printf(“%d/n“,ai); 程序的输出结果是( )。(分数:1.00)A.13 B.14C.208D.209解析:解析 在本题中,首
17、先定义了一个共用体 pw,其中有两个域:整型变量 i 和字符数组 ch。因为共用体中的域是共享内存空间的,数组元素由低到高存储:ch0在低字节;ch1在高字节;整型变量 i 占两个字节,高位与 ch1共用存储空间,低位与 ch0共用存储空间,而高位 ch1的值为 0,所以输出的成员变量 i 的值就是 ch0的值 13。34.软件工程的理论和技术性研究的内容主要包括软件开发技术和( )。(分数:1.00)A.消除软件危机B.软件工程管 C.程序设计自动化D.实现软件可重用解析:解析 软件工程的目标是:在给定的成本、进度的前提下,开发出具有有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可
18、移植性、可追踪性和可互操作性且满足用户需求的产品。基于这一目标,软件工程的理论和技术性研究的内容主要包括软件开发技术和软件工程管理。35.下列程序的输出结果是( )。 #include stdioh int b=2; int func(int *a) b+=*a;return(b); main() int a=2, res=2; res+=func(s=“ABCDE“; D.char *s;scanf(“%s“,&;解析:解析 如果一个字符数组用来存储字符串,那么在定义该字符数组时,数组的大小应该比它将要实际存放的字符串长度大 1,所以选项 A) 和 B) 错;选项 D) 中 s 本身就是一个
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 笔试 62 答案 解析 DOC
