2012年9月 全国计算机等级考试 二级C语言 笔试真题与答案解析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2012年9月全国计算机等级考试二级笔试试卷
C语言程序设计
(考试时间90分钟,满分100分)
一、选择题((1)~(10)、(21)~(40)每小题2分,(11)~(20)每题1分共70分)
下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)下列链表种,其逻辑结构属于非线性结构的是
A)循环链表 B)双向链表 C)带链的栈 D)二叉链表
(2)设循环队列的存储空间为Q(1:35),初始状态为front=rear=35,现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为
A)16 B)20 C)0或35 D)15
(3)下列关于栈的叙述中,正确的是
A)栈顶元素一定是最先入栈的元素 B)栈操作遵循先进后出的原则
C)栈底元素一定是最后入栈的元素 D)以上三种说法都不对
(4)在关系数据库中,用来表示实体间联系的是
A)二维表 B)树状结构 C)属性 D)网状结构
(5)公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,则实体部门和职员间的联系是
A)m:1联系 B)1:m联系 C)1:1联系 D)m:n联系
(6)有两个关系R和S 如下:
则由关系R得到关系S的操作是
A)自然连接 B)选择 C)并 D)投影
(7)数据字典(DD)所定义的对象都包含于
A)程序流程图 B)数据流图(DFD图) C)方框图 D)软件结构图
(8)软件需求规格说明书的作用不包括
A)软件可行性研究的依据 B)用户与开发人员对软件要做什么的共同理解
C)软件验收的依据 D)软件设计的依据
(9)下面属于黑盒测试方法的是
A)逻辑覆盖 B)语句覆盖 C)路径覆盖 D)边界值分析
(10)下面不属于软件设计阶段任务的是
A)数据库设计 B)算法设计
C)软件总体设计 D)制定软件确认测试计划
(11)以下叙述中正确的是
A)在C语言程序中,main函数必须放在其他函数的最前面
B)每个后缀为.C的C语言源程序都可以单独进行编译
C)在C语言程序中,只有main函数才可单独进行编译
D)每个后缀为.C地点C语言源程序都应该包含一个main函数
(12)C语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述正确的是A)预定义标识符(如库函数中的函数名)可用作用标识符,但失去原有含义
B)用户标识符可以由字母和数字任意顺序组成
C)在标识符中大写字母和小写字母被认为是相同的字符
D)关键字可用作用户标识符,但失去原有含义
(13)以下选项中表示一个合法的常量是(说明:符号 表示空格)
A)9 9 9 B)0Xab C)123E0.2 D)2.7e
(14)C语言主要是借助以下哪个功能来实现程序模块化
A)定义函数 B)定义常量和外部变量
C)三种基本结构语句 D)丰富的数据类型
(15)以下叙述中错误的是
A)非零的数值类型常量有正直和负值的区分
B)常量是在程序运行过程中值不能被改变的量
C)定义符号常量必须用类型名来设定常量的类型
D)用符号名表示的常量叫符号常量
(16)若有定义和语句:int a,b; scanf(“%d,%d”,&a,&b);以下选项中的输入数据,不能把值3赋给变量a、5赋给变量b的是
A)3,5 B)3,5,4 C)3 ,5 D)3,5
(17)C语言中char类型数据占字节数为
A)3 B)4 C)1 D)2
(18)下列关系表达式中,结果为“假”的是
A)(3+4)>6 B)(3!=4)>2 C)3<=4||3 D)(3<4)==1
(19)若以下选项中的变量全部为整型变量,且已正确定义并赋值,则语法正确的switch语句是
A)switch(a+9) B)switch a*b
{ case c1:y=a-b; { case 10:x=a+b;
case c2:y=a+b; default :y=a-b;
} }
C)switch(a+b) D) switch(a*a+b*b)
{ case1:case3:y=a+b;break { default:break;
case0:case4:y=a-b; case 3: y=a+b;break;
} case 2: y=a-b;break;
}
(20)有以下程序
#include
main()
{ int a=-2,b=0;
while(a++&&++b);
printf("%d,%d\n",a,b);
}
程序运行后的输出结果是
A)1,3 B)0,2 C)0,3 D)1,2
(21)设有定义:int x=0,*p; ,立刻执行以下语句,正确的语句是
A)p=x; B)*p=x; C)p=NULL; D)*p=NULL;
(22)下列叙述中正确的是
A)可以用关系运算符比较字符串的大小
B)空字符串不占用内存,其内存空间大小是0
C)两个连续的单引号是合法的字符常量
D)两个连续的双引号是合法的字符串常量
(23)有以下程序
#include
main()
{ char a='H';
a=(a>='A'&&a<='Z')?(a-'A'+'a'):a;
printf("%c\n",a);
}
程序运行后的输出结果是
A)A B)a C)H D)h
(24)有以下程序
#include
int f(int x);
main()
{ int a,b=0;
for(a=0;a<3;a++)
{b=b+f(a); putchar('A'+b);}
}
int f(int x)
{return x*x+1;}
程序运行后的输出结果是
A)ABE B)BDI C)BCF D)BCD
(25)设有定义:int x[2][3];,则以下关于二维数组x的叙述错误的是A)x[0]可看作是由3个整型元素组成的一维数组
B)x[0]和x[1]是数组名,分别代表不同的地址常量
C)数组x包含6个元素
D)可以用语句x[0]=0;为数组所有元素赋初值0
(26)设变量p是指针变量,语句p=NULL;是给指针变量赋NULL值,它等价于A)p= ""; B)p= '0'; C)p=0; D)p= '';
(27)有以下程序
#include
main()
{int a[]={10,20,30,40},*p=a,i;