分享
分享赚钱 收藏 举报 版权申诉 / 15

类型2011年3月计算机二级C语言考试真题解析new.doc

  • 上传人:dreamzhangning
  • 文档编号:2278311
  • 上传时间:2018-09-09
  • 格式:DOC
  • 页数:15
  • 大小:128.50KB
  • 配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    2011年3月计算机二级C语言考试真题解析new.doc
    资源描述:

    1、2011 年 3 月计算机二级 C 语言考试真题一、选择题(1)下列关于栈叙述正确的是A) 栈顶元素最先能被删除 B)栈顶元素最后才能被删除C)栈底元素永远不能被删除 D)以上三种说法都不对答案:A解析:栈是只允许在同一端插入和删除的线性表,允许插入和删除的一端称为栈顶,另一端称为栈底。栈的特点是“先进后出” ,所以栈顶元素最先能被删除,选择 A。与队列对比,队列是允许一端插入,另一端删除的线性表,允许删除的一端称为队头,允许插入的一端称为队尾,队列的特点是“先进先出” ,参考公共基础教材 P7-8。(2)下列叙述中正确的是A) 有一个以上根结点的数据结构不一定是非线性结构B)只有一个根结点的

    2、数据结构不一定是线性结构C)循环链表是非线性结构D)双向链表是非线性结构答案:B解析:线性结构的两个条件:a. 有且只有一个根节点。b. 每一个结点最多有一个前件,也最多有一个后件。有一个以上根结点的数据结构一定是非线性结构,而只有一个根结点的数据结构不一定是线性结构,如二叉树。循环链表和双向链表均为线性结构。所以选 B参考公共基础教材 P5,P10-11。(3)某二叉树共有 7 个结点,其中叶子结点只有 1 个,则该二叉树的深度为 (假设根结点在第 1 层)A)3 B)4 C)6 D)7答案:D解析:二叉树性质 3:度为 0 的结点个数总比度为 2 的结点多一个。叶子结点只有 1个,所以度为

    3、 2 的结点没有,即度为 1 的结点 6 个,深度为 7,所以选 D,参考公共基础教材 P12。(4)在软件开发中,需求分析阶段产生的主要文档是A) 软件集成测试计划 B)软件详细设计说明书C)用户手册 D)软件需求规格说明书答案:D解析:需求分析阶段产生软件需求规格说明书;软件系统设计阶段产生软件详细设计说明书,测试阶段产生软件集成测试计划,验收阶段产生用户手册。所以选择 D。参考公共基础教材 P25。(5)结构化程序所要求的基本结构不包括A) 顺序结构 B)GOTO 跳转C)选择(分支) 结构 D)重复( 循环)结构答案:B解析:结构化程序的基本结构三种:顺序结构、选择(分支) 结构和重复

    4、(循环)结构。参考公共基础教材 P20。(6)下面描述中错误的是A) 系统总体结构图支持软件系统的详细设计B)软件设计是将软件需求转换为软件表示的过程C)数据结构与数据库设计是软件设计的任务之一D)PAD 图是软件详细设计的表示工具答案:A解析:软件概要设计是将软件需求转化为软件体系结构,其基本任务包括设计软件系统结构、数据结构和数据库设计、编写概要设计文档和概要设计文档评审。参考公共基础教材 P26-27,所以 B、C 正确。详细设计的图形工具有程序流程图、N-S 、PAD 和 HIPO,参考公共基础教材 P28,所以 D 正确,A 错误,系统总体结构图是总体设计的工具。(7)负责数据库中查

    5、询操作的数据库语言是A) 数据定义语言 B)数据管理语言C)数据操纵语言 D)数据控制语言答案:C解析:数据定义语言:负责数据的模式定义与数据的物理存取构建;数据操纵语言:负责数据的操纵,如查询与增、删、改等;数据控制语言:负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等。所以选 C。(8)一个教师可讲授多门课程,一门课程可由多个教师讲授。则实体教师和课程间的联系是A)1:1 联系 B)1:m 联系C)m:1 联系 D)m:n 联系答案:D解析:实体集 A 中的每一个实体,实体集 B 中都 n 个实体与之联系,同时,实体集B 中的每一个实体,实体集 A 中都有 m 个实体与之联系,称

    6、 A 与 B 具有多对多联系。所以选 D,参考公共基础教材 P36,同时注意一对一和一对多联系。(9)有三个关系 R、S 和 T 如下:则由关系 R 和 S 得到关系 T 的操作是A) 自然连接 B)交 C)除 D)并答案:C解析:R 和 S 交或者并的话必须具有相同的关系模型,R 有 A、B 、C,S 只有A、B ,明显不行。自然连接是笛卡尔积中选取属性相等的元组,并把重复的列去掉,R和 S 笛卡尔积为A B C A Ba 1 2 c 3b 2 1 c 3c 3 1 c 3那么 R 和 S 等值连接为A B C A Bc 3 1 c 3R 和 S 自然连接为A B Cc 3 1除运算可以看作

    7、是笛卡尔积运算的逆运算,R 除 S 是求出 R 中同 S 的元组属性相同的其他属性的构成的元组。所以选 C。注意投影、选择、笛卡尔积、交、并、除、连接、等值连接和自然连接等运算的求法。参考公共基础教材 P38-39。(10)定义无符号整数类为 UInt,下面可以作为类 UInt 实例化值的是A)-369 B)369 C)0.369 D)整数集合1,2,3,4,5答案:B解析:无符号整数类型为只有正整数和 0,所有选择 B。(11)计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是A)C 语言程序仅可以编译执行B)C 语言程序仅可以解释执行C)C 语言程序既可以编译执行又可

    8、以解释执行D) 以上说法都不对答案:A解析:计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序。 翻译的方式有两种,一个是编译,一个是解释。两种方式只是翻译的时间不同。编译型语言写的程序执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如 exe 文件,以后要运行的话就不用重新翻译了,直接使用编译的结果就行了(exe 文件) ,因为翻译只做了一次,运行时不需要翻译,所以编译型语言的程序执行效率高。 解释则不同,解释性语言的程序不需要编译,省了道工序,解释性语言在运行程序的时候才翻译,比如解释性 basic 语言

    9、,专门有一个解释器能够直接执行 basic 程序,每个语句都是执行的时候才翻译。这样解释性语言每执行一次就要翻译一次,效率比较低。C 程序开发过程:编辑编译(.obj)链接可执行文件(.exe )参考教材P5。(12)以下叙述中错误的是A)C 语言的可执行程序是由一系列机器指令构成的B)用 C 语言编写的源程序不能直接在计算机上运行C)通过编译得到的二进制目标程序需要连接才可以运行D)在没有安装 C 语言集成开发环境的机器上不能运行 C 源程序生成的.exe 文件答案:D解析:C 程序开发过程:编辑 编译(.obj)链接可执行文件(.exe )经过编译可以成为计算机可直接运行的二进制的.obj

    10、 目标程序,编译成功后可进行链接,将目标程序和程序中用到的库函数链接到一起,形成可执行文件.exe 。exe 文件是不需要开发环境就可以运行的。参考教材 P5。(13)以下选项中不能用作 C 程序合法常量的是A)1,234 B)123 C)123 D)“x7G“答案:B解析:A 中的, 在编译时会出错的,直接写成 1234 即可,B 是一个三位八进制数代表的字符,C 是一个数字常量, D 是一个字符串,其中x7 是一个一位十六进制数代表的字符,也即 D 中的字符串是两个字符,如果 sizeof 的话是 3,如果 strlen 的话是 2。参考教材 P16。(14)以下选项中可用作 C 程序合法

    11、实数的是A).1e0 B)3.0e0.2 C)E9 D)9.12E答案:A解析:实型指数表示方式“E 前 E 后比有数,E 后必须是整数” ,故选 A,参考教材P15。(15)若有定义语句:int a=3,b=2,c=1;,以下选项中错误的赋值表达式是A)a=(b=4)=3; B)a=b=c+1; C)a=(b=4)+c; D)a=1+(b=c=4);答案:A解析:赋值不能给表达式赋值,故选择 A。(16)有以下程序段char name20;int num;scanf(“name=%s num=%d“,name;当执行上述程序段,并从键盘输入:name=Lili num=1001后,name

    12、的值为A)Lili B)name=Lili C)Lili num= D)name=Lili num=1001答案:A解析:scanf 中格式字符串的非格式字符串原样输入,如其中的name=和num= ,所以接受到的 name 值是后面的 Lili,num 值为 1001。故选 A。(17)if 语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是A) 必须是逻辑值 B)必须是整数值 C)必须是正数 D)可以是任意合法的数值答案:D解析:表达式不限于关系表达式、逻辑表达式,也可以是任意的数值类型,其中非 0为真,0 为假。故选 D,参考教材 P41。(18)有以下程序#in

    13、clude main() int x=011;printf(“%dn“,+x);程序运行后的输出结果是A)12 B)11 C)10 D)9答案:C解析:011 是一个八进制的数,转为十进制则为 1*8+1=9;+x 是 x 先自增 1 再参与其他运算,所以先 x 自增 1 为 10 再输出即为 10,故选 C,参考教材 P21。(19)有以下程序main() int s;scanf(“%d“,while(s0) switch(s) case1:printf(“%d“,s+5);case2:printf(“%d“,s+4); break;case3:printf(“%d“,s+3);defaul

    14、t:printf(“%d“,s+1);break;scanf(“%d“,运行时,若输入 1 2 3 4 5 0,则输出结果是A)6566456 B)66656 C)66666 D)6666656答案:A解析:while 循环 s=0的区别:scanf 以空格作为字符串输入结束的标志,而gets(s)不会,参考教材 P108。(30)以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。#define N 10void fun(int xN) int i=0;while(i则输出结果是A)how are you? B)howI am fine are you?I am fineC)how

    15、are you? I am fine D)row are you?答案:B解析:scanf 以空格作为字符串输入结束的标志,而 gets(s)不会,参考教材 P108。所以 a 得到的是“ how”,b 得到的是剩下的“are you? I am fine”。故选择 B。(32)设有如下函数定义int fun(int k) if (k fun(2) fun(1) ;fun(1)1 fun(2)2 fun(3)3n;所以 fun 总共被调用的次数是 3,最后 n 为 3。故选 B。(33)有以下程序int fun (int x,int y) if (x!=y) return (x+y)/2);e

    16、lse return (x);main() int a=4,b=5,c=6;printf(“%dn“,fun(2*a,fun(b,c);程序运行后的输出结果是A)3 B)6 C)8 D)12答案:B解析:fun(8,fun(5,6),其中 fun(5,6)因为 5!=6, return (x+y)/2)为 5,所以 fun(8,fun(5,6)为 fun(8,5),8!=5, return (x+y)/2)为 6,故选 B。(34)有以下程序int fun() static int x=1;x*=2;return x;main() int i,s=1;for(i=1;ix); printf(“

    17、%dn“,+(p-y);程序运行后的输出结果是A)1,2 B)4,1 C)3,4 D)2,3答案:D解析:dt 是一个结构体类型的数组,其有两个结构体元素,p 是结构体类型指针,其指向 dt 即指向结构体数组的首地址, p-x 和 p-y 分别是结构体数组第一个元素的 x 成员和 y 成员的值,+在前则是先自增 1 再参与运算,所以输出的是 1+1=2,和 2+1=3,故选D。(38)有以下程序struct S int a,b;data2=10,100,20,200;main() struct S p=data1;printf(“%dn“,+(p.a);程序运行后的输出结果是A)10 B)11

    18、 C)20 D)21答案:D解析:结构体变量 p 赋值为结构体数组第二个元素的值,即 p.a=20,p.b=200;所以输出+(p.a)为 21,故选 D。(39)有以下程序main() unsigned char a=8,c;c=a3;printf(“%dn“,c);程序运行后的输出结果是A)32 B)16 C)1 D)0答案:C解析:位运算左移一位相当于乘以 2,右移一位相当于除以 2,右移三位相当于除以8,故选择 C。参考教材 P26。(40)设 fp 已定义,执行语句 fp=fopen(“file“,“w“);后,以下针对文本文件 file 操作叙述的选项中正确的是A)写操作结束后可以

    19、从头开始读 B)只能写不能读C)可以在原有内容后追加写 D)可以随意读和写答案:B解析:文件打开方式, w只能向该文件写入,如打开的文件不存在则以指定的文件名建立文件,如存在,则先删除再重建一个文件。故选 B,参考教材 P133。二、填空题(1)有序线性表能进行二分查找的前提是该线性表必须是 【1】 存储的。 答案:有序解析:二分查找的前提:a.必须是有序表 b.必须是采用顺序存储形式。参考公共基础教材P14。(2)一棵二叉树的中序遍历结果为 DBEAFC,前序遍历结果为 ABDECF,则后序遍历结果为 【2】 。答案:DEBFCA解析:根据前序遍历结果可知:A 为根节点,B 为 A 的左孩子

    20、,根据中序遍历结果可知:D 为 B 的左孩子,E 是 B 的右孩子, F、C 是 A 的右子数,结合前序遍历结果可知, C 是A 的右孩子,F 是 C 的左孩子。故后序遍历为 DEBFCA。参考公共基础教材 P13。(3)对软件设计的最小单位(模块或程序单元 )进行的测试通常称为 【3】 测试。答案:单元解析:软件测试过程一般有 3 个步骤进行:单元测试、集成测试和系统测试。单元测试是对软件设计的最小单位模块进行正确性检测的测试。集成测试是测试和组装软件的过程,它把模块在按照设计要求组装起来的同时进行测试。系统测试的目的在于通过与系统的需求定义进行比较,发现软件与系统定义不符合或者与之矛盾的地

    21、方。参考公共基础教材 P30。(4)实体完整性约束要求关系数据库中元组的 【4】 属性值不能为空。答案:主解析:数据约束包括实体完整性约束、参照完整性约束和用户定义完整性约束,实体完整性约束要求关系数据库中主键的属性不能为空值。参考公共基础教材 P37-38。(5)在关系 A(S,SN,D)和关系 B(D,CN,NM)中,A 的主关键字是 S,B 的主关键字是 D,则称 【5】 是关系 A 的外码。答案:D解析:若 A 中的某个属性集是表 B 的候选码或者主键,则称该属性集为表 A 的外码。参考公共基础教材 P37。(6)以下程序运行后的输出结果是 【6】 。main() int a;a=(i

    22、nt)(double)(3/2)+0.5+(int)1.99*2);printf(“%dn“,a);答案:3解析:(3/2)=1,(double)(3/2)+0.5=1.5,(int)1.99*2=2,所以(double)(3/2)+0.5+(int)1.99*2=3.5,故 a=3。(7)有以下程序main() int x;scanf(“%d“,if(x15) printf(“%d“,x-5);if(x10) printf(“%d“,x);if(x5) printf(“%dn“,x+5);若程序运行时从键盘输入 12,则输出结果为 【7】 。答案:1217解析:输入 12,比较不大于 15

    23、所以不执行 if(x15)内的语句;大于 10 执行 printf(“%d“,x);输出 12;大于 5 执行 printf(“%d“,x+5);输出 17。(8)有以下程序(说明:字符 0 的 ASCII 码值为 48)main() char c1,c2;scanf(“%d“,c2=c1+9;printf(“%c%cn“,c1,c2);若程序运行时从键盘输入 48,则输出结果为 【8】 。答案:09解析:输入 48,则 c1=48,c2=48+9,以字符输出 c1 和 c2,则为输出 ASCII 码为 48 和 57对应的字符,分别为 0 和 9。(9)有以下函数void prt(char

    24、ch,int n) int i;for(i=1;i0)开始的后续元素全部向前移动一个位置。请填空。void fun(int aN,int k) int i;for(i=k;i=0;i-) putchar(*(p+i);printf(“n-“); free(p);答案:emoclew解析:(char *)malloc(sizeof(char)*20)申请一个 20 个字符大小的空间,首地址赋给字符指针变量 p,strcpy(p,“welcome“); 将字符串“welcome“赋值给 p 所指向的空间,for 循环实现从后往前输出这个字符串,free(p)为释放申请的空间。(15)以下程序运行后

    25、的输出结果是 【15】 。main() FILE *fp; int x6=1,2,3,4,5,6,i;fp=fopen(“test.dat“,“wb“);fwrite(x,sizeof(int),3,fp);rewind(fp);fread(x,sizeof(int),3,fp);for(i=0;i6;i+) printf(“%d“,xi);printf(“n“);fclose(fp);答案:123456解析:fwrite(x,sizeof(int),3,fp);将数组内的前三个元素即 1,2,3 输出到文件中去,rewind(fp);文件回到开头, fread(x,sizeof(int),3,fp);将文件的内容读出并存到 x 数组的前三个元素中,把 1,2,3 写到数组的前三个元素中去,所有数组中的元素值均没变。参考教材P139。

    展开阅读全文
    提示  道客多多所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:2011年3月计算机二级C语言考试真题解析new.doc
    链接地址:https://www.docduoduo.com/p-2278311.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    道客多多用户QQ群:832276834  微博官方号:道客多多官方   知乎号:道客多多

    Copyright© 2025 道客多多 docduoduo.com 网站版权所有世界地图

    经营许可证编号:粤ICP备2021046453号    营业执照商标

    1.png 2.png 3.png 4.png 5.png 6.png 7.png 8.png 9.png 10.png



    收起
    展开