二级C语言笔试-113

上传人:人*** 文档编号:555016073 上传时间:2023-08-21 格式:DOC 页数:14 大小:158KB
返回 下载 相关 举报
二级C语言笔试-113_第1页
第1页 / 共14页
二级C语言笔试-113_第2页
第2页 / 共14页
二级C语言笔试-113_第3页
第3页 / 共14页
二级C语言笔试-113_第4页
第4页 / 共14页
二级C语言笔试-113_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《二级C语言笔试-113》由会员分享,可在线阅读,更多相关《二级C语言笔试-113(14页珍藏版)》请在金锄头文库上搜索。

1、二级 C 语言笔试 -113( 总分: 100.00 ,做题时间: 90 分钟 )一、选择题 (总题数: 40,分数: 70.00)1. 函数 fun 的返回值是 fun(char *a, char *b) int num=0 , n=0; while(*(a+num)!=/0)num+ ; while(bn)*(a+num)=bn;num+; n+;return num ;(分数: 2.00 )A. 字符串a的长度B. 字符串 b 的长度C. 字符串 a 和 b 的长度之差D. 字符串a和b的长度之和V解析: 解析 本题首先通过第一个 while 循环计算字符串 a 的长度,再通过第二个循环

2、将字符串 b 连接到 字符a的后面,最后返回连接后的总长度。2. 调用 gets 和 puts 函数时,必须包含的头文件是(分数: 2.00 )A. stdio.hVB. stdlib.hC. defineD. string.h解析: 解析 gets 函数和 puts 函数是库函数,必须包含的头文件是 stdio.h 。3. 下列叙述中正确的是(分数: 2.00 )A. 线性链表是线性表的链式存储结构 VB. 栈与队列是非线性结构C. 双向链表是非线性结构D. 只有根结点的二叉树是线性结构解析:解析一个非空的数据结构如果满足下列两个条件:有且只有一个根结点;每一个结点最多有一个前件,也最多有一

3、个后件,则称为线性结构。线性链表是线性表的链式存储结构,故选项A的说法是正确的。栈与队列是特殊的线性表,它们也是线性结构,故选项B的说法是错误的;双向链表是线性表的链式存储结构,其对应的逻辑结构也是线性结构,而不是非线性结构,故选项C的说法是错误的;二叉树是非线性结构,而不是线性结构,故选项D的说法是错误的。4. 在 E-R 图中,用来表示实体的图形是分数: 2.00 )A. 矩形 VB. 椭圆形C. 菱形D. 三角形解析:解析在E-R图中,用3种图框分别表示实体、属性和实体之间的联系,其规定如下:用矩形框表 示实体,框内标明实体名;用椭圆状框表示实体的属性,框内标明属性名:用菱形框表示实体间

4、的联系, 框内标明联系名。5. 下面 4 个选项中,均是不合法的用户标识符的选项是(分数: 2.00 )A. A P _0 d0B. float la0 _AC. b-a goto inVD. 123 temp int解析: 解析 C 语言规定的标识符只能由字母、数字和下画线 3 种字符组成,第一个字符必须为字母或下 画线,并且不能使用 C语言中的关键字作为标识符;对于选项 C, goto和int是关键字,b-a中的“-不 是组成标识符的 3 种字符之一;对于选项 D, int 是关键字。所以,均是不合法用户标识符的选项是C。6. 两个或两个以上模块之间关联的紧密程度称为(分数: 2.00 )

5、A. 耦合度 VB. 内聚度C. 复杂度D. 数据传输特性解析: 解析 本题考核模块独立性的评价。评价模块独立性的主要标准有两个:一是模块之间的耦合度, 它表明两个模块之间互相独立的程度,也可以说是两个或两个以上模块之间关联的紧密程度,所以,本题 的正确答案为选项 A;二是模块内部之间的关系是否紧密,称为内聚。一般来说,要求模块之间的耦合尽 可能地弱,即模块尽可能独立;而要求模块的内聚程度尽量地高。7. 以下程序运行后的输出结果是fun(int x , int y , int z) z=x*y ;main( )int a=4 , b=2, c=6 ;fun(a , b, c) ;printf(

6、%d , c) ;(分数: 2.00 )A. 16B. 6 VC. 8D. 12解析: 解析 本题考查的函数形参与实参的传递规则,当形参与实参都是简单的数据类型时,形参值的改 变不能影响实参值的改变,即本题中 c 的值未改变,仍然是 6。8. 若有以下结构体,则正确的定义或引用是struct Testint x ;int y :v1;(分数: 2.00 )A. Test.x=10 ;B. Test v2 ; v2.x=10 ;C. struct v2 ; v2.x=10 ;D. struct Test v2=10; V解析:解析此题考查结构体的定义和引用。选项 A的错误是通过结构体名引用结构体

7、成员,选项B的错误是将结构体名作为类型名使用, 选项c的错误是将关键字struct作为类型名使用。选项D,定义变量v2 并对其初始化的语句,初始值只有前一部分,这是允许的。9. 以下程序运行后的输出结果是main( )int a=2 , b=-1 , c=2;if(a v b)if(b v 0) c=0 ;else c+ :printf(%d/n , c) ;(分数: 2.00 )A. 0B. 1C. 2 VD. 3解析: 解析 if 语句嵌套使用时, else 总是与它上面最近的 if 配对。因此,本题中先判断 (a v b) ,表达 式值为0,则不执行下面的if语句,直接跳到printf

8、行,e的值没有改变。10. 能正确表示逻辑关系“ a10或aw0”的C语言表达式是分数: 2.00 )A. a =10 or a v =0B. a =0 | a v =10C. a =10&av =0D. a =10 II a v =0 V解析:解析本题考查C语言的逻辑表达式及逻辑或(“| ”)运算符的用法。”表示或的意思,是按位或的意思,“ &是并且的意思,C语言中没有“ or”。11. 下列叙述中正确的是(分数: 1.00 )A. 软件测试应该由程序开发者来完成B. 程序经调试后一般不需要再测试C. 软件维护只包括对程序代码的维护D. 以上3种说法都不对V解析: 解析 本题考核软件测试、软

9、件调试和软件维护的概念。软件测试的目标是在精心控制的环境下执 行程序,以发现程序中的错误,给出程序可靠性的鉴定。软件测试具有挑剔性,测试不是为了证明程序是 正确的,而是在设想程序有错误的前提下进行的,其目的是设法暴露程序中的错误和缺陷,也就是说,测 试是程序执行的过程,目的在于发现错误;一个好的测试在于能发现至今未发现的错误;一个成功的测试 是发现了至今未发现的错误。由于测试的这一特征,一般应当避免由开发者测试自己的程序。所以,选项A的说法错误。调试也称排错, 目的是发现错误的位置, 并改正错误, 经测试发现错误后, 可以立即进行调试并改正错误; 经过调试后的程序还需进行回归测试,以检查调试的

10、效果,同时也可防止在调试过程中引进新的错误。所 以,选项B的说法错误。软件维护通常有 4 类:为纠正使用中出现的错误而进行的改正性维护:为适应环境变化而进行的适应性维 护;为改进原有软件而进行的完善性维护;为将来的可维护和可靠而进行的预防性维护。软件维护不仅包 括程序代码的维护,还包括文档的维护。文档可以分为用户文档和系统文档两类。但无论是哪类文档,都 必须与程序代码同时维护。只有与程序代码完全一致的文档才有意义和价值。所以,选项C的说法错误12. 若有说明: int a3=1, 2, 3, 4, 5, 6, 7;,则 a 数组第一维的大小是(分数: 1.00 )A. 2B. 3 VC. 4D

11、. 无确定值解析:解析本题考查二维数组的定义方式。第一维的大小由以下方法判断:当初值的个数能被第二维 的常量表达式的值除尽时,所得商数就是第一维的大小;当初值的个数不能被第二维的常量表达式的值 除尽时,则第一维的大小 =所得的商数 +1。13. 下面程序段的运行结果是char str=ABC , *p=str ;printf(%d/n , *(p+3) ;(分数: 1.00 )A. 67B. 0 VC. 字符 C 的地址D. 字符 C解析: 解析 考查指向字符串的指针变量。 在该题中, 指针变量 p 指向的应该是该字符串中的首地址, p+3 指向的是字符串结束标志 /0 的地址,因而 *(p+

12、3) 的值为 0。14. 下面程序段的运行结果是char a=lanuage , *p ; p=a;while(*p!=u)printf(%c , *p-32) ; p+;(分数: 1.00 )A. LANGUAGEB. languageC. LAN VD. langUAGE解析: 解析 本段程序的作用是输出字符串“ lanuage ”中字母 u 之前的字符,并将其转化为大写字母。15. 已知函数的调用形式: fread(buf , size , count , fp) ,参数 buf 的含义是分数: 1.00 )A. 一个整型变量,代表要读入的数据项总数B. 一个文件指针,指向要读的文件C.

13、 一个指针,指向要读入数据的存放地址VD. 一个存储区,存放要读的数据项解析:解析 buf 是一个指针。对 fread 来说,它是读入数据的存放地址 (指起始地址 );对 fwrite 来说, 是要输出数据的地址。16. 设变量 a 是 int 型, f 是 floaf 型, i 是 double 型,则表达式 10+a+i*f 值的数据类型为(分数: 1.00 )A. intB. floatC. doubleVD. 不确定解析:解析根据混合运算规则,如果有一个数据是float型或double型,则其他数据类型先转化为double型,运算的结果最终也是 double 型。17. 在深度为 7

14、的满二叉树中,叶子结点的个数为(分数: 1.00 )A. 32B. 31C. 64 VD. 63解析:解析在二叉树的第k层上,最多有2k-1(k 1)个结点。对于满二叉树来说,每一层上的结点数都 达到最大值, 即在满二叉树的第 k 层上有 2k-1 个结点。因此, 在深度为 7 的满二叉树中, 所有叶子结点在第 7 层上,即其结点数为 2k-1=27-1=64。18. 以下程序运行后的输出结果是main( )int x=23 ;doprintf(%d , x-) ;while(!x) ;(分数: 1.00 )A. 321B. 23 VC. 不输出任何内容D. 陷入死循环解析: 解析 do-wh

15、ile 语句的执行过程是:先执行一次循环体语句,本题中执行x- 后判断表达式,表达式的值 !x 为假,程序结束循环。19. 若变量 a 是 int 类型,并执行了语句: a=A+1.6 ;,则正确的叙述是分数: 1.00 )A. a 的值是字符 CB. a 的值是浮点型C. 不允许字符型和浮点型相加D. a 的值是字符 A 的 ASCII 值加上 1 V解析:解析字符A要转换成相应的ASCII码值,由于运算结果要赋值给int型变量,所以对1.6进行取整运算,最后 a 的值应是 66。20. 下面程序段的运行结果是char *p=abedefghp+=3;printf(070 d/n , strl

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号