2012年9月计算机等级考试二级C语言笔试真题及答案 联系客服

发布时间 : 星期日 文章2012年9月计算机等级考试二级C语言笔试真题及答案更新完毕开始阅读622694a8af1ffc4ffe47ace7

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)20 B)0或35 C)15 D)16 (3)下列关于栈的叙述中,正确的是

A)栈底元素一定是最先入栈的元素 B)栈操作遵循先进后出的原则 C)栈顶元素一定是最后入栈的元素 D)以上三种说法都不对 (4)在关系数据库中,用来表示实体间联系的是

A)网状结构 B)树状结构 C)属性 D)二维表

(5)公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,则实体部门和职员间的联系是

A)1:m联系 B)m:n联系 C)1:1联系 D)m:1联系 (6) 有两个关系R和S 如下:

R S A a b c B 1 2 3 C 2 1 1 A c B 3 C 1 则由关系R得到关系S的操作是 A)自然连接 B)并 C)选择 D)投影 (7)数据字典(DD)所定义的对象都包含于

A)软件结构图 B)方框图 C)数据流图(DFD图) D)程序流程图 (8)软件需求规格说明书的作用不包括

A)软件设计的依据 B)软件可行性研究的依据 C)软件验收的依据 D)用户与开发人员对软件要做什么的共同理解 (9)下面属于黑盒测试方法的是

A)边界值分析 B)路径覆盖 C)语句覆盖 D)逻辑覆盖 (10)下面不属于软件设计阶段任务的是

A)制定软件确认测试计划 B)数据库设计 C)软件总体设计 D)算法设计 (11)以下叙述中正确的是 B

A)在C语言程序中,main函数必须放在其他函数的最前面 B)每个后缀为.C的C语言源程序都可以单独进行编译

C)在C语言程序中,只有main函数才可单独进行编译

D)每个后缀为.C的C语言源程序都应该包含一个main函数

(12)C语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述正确的是 A

A)预定义标识符(如库函数中的函数名)可用作用标识符,但失去原有含义 B)用户标识符可以由字母和数字任意顺序组成

C)在标识符中大写字母和小写字母被认为是相同的字符 D)关键字可用作用户标识符,但失去原有含义

(13)以下选项中表示一个合法的常量是(说明:符号?表示空格) B

A)9?9?9 B)0Xab C)123E0.2 D)2.7e

(14)C语言主要是借助以下哪个功能来实现程序模块化 A

A)定义函数 B)定义常量和外部变量 C)三种基本结构语句 D)丰富的数据类型 (15)以下叙述中错误的是 C

A)非零的数值型常量有正值和负值的区分 B)常量是在程序运行过程中值不能被改变的量 C)定义符号常量必须用类型名来设定常量的类型 D)用符号名表示的常量叫符号常量

(16)若有定义和语句:int a,b; scanf(“%d,%d”,&a,&b);以下选项中的输入数据,不能把值3赋给变量a、5赋给变量b的是 C

A)3,5, B)3,5,4 C)3 ,5 D)3,5 (17)C语言中char类型数据占字节数为 C

A)3 B)4 C)1 D)2 (18)下列关系表达式中,结果为“假”的是 B

A)(3+4)>6 B)(3!=4)>2 C)3<=4||3 D)(3<4)==1

(19)若以下选项中的变量全部为整型变量,且已正确定义并赋值,则语法正确的switch语句是 D

A)switch(a+9) B)switch a*b

{ case c1:y=a-b; C1 C1 是变量 { 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和数字没空格 case 2: y=a-b;break; } (20)有以下程序

#include main()

{ int a=-2,b=0;

while(a++&&++b); printf(\}

程序运行后的输出结果是 D

A)1,3 B)0,2 C)0,3 D)1,2

(21)设有定义:int x=0,*p; ,立刻执行以下语句,正确的语句是 C

A)p=x; B)*p=x; C)p=NULL; D)*p=NULL; (22)下列叙述中正确的是 D

A)可以用关系运算符比较字符串的大小

B)空字符串不占用内存,其内存空间大小是0 \\0 C)两个连续的单引号是合法的字符常量 D)两个连续的双引号是合法的字符串常量 (23)有以下程序

#include main()

{ char a='H';

a=(a>='A'&&a<='Z')?(a-'A'+'a'):a; printf(\}

程序运行后的输出结果是 D

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; }

程序运行后的输出结果是 B

A)ABE B)BDI C)BCF D)BCD

(25)设有定义:int x[2][3];,则以下关于二维数组x的叙述错误的是 D

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; for(i=0;i<=3;i++){ a[i]=*p; p++; } printf(\}

程序运行后的输出结果是 A

C

A)30 B)40 C)10 D)20 (28)有以下程序

#include #define N 3

void fun(int a[][N],int b[]) { int i,j;

for(i=0;i

main() {

int x[N][N]={1,2,3,4,5,6,7,8,9},y[N],i; fun(x,y);

for(i=0;i

程序运行后的输出结果是 B

A)2,4,8, B)3,6,9, C)3,5,7, D)1,3,5, (29)有以下程序(strcpy为字符串复制函数,strcat为字符串连接函数)

#include #include main()

{ char a[10]=\ strcpy(a+1,b+2); puts(strcat(a,c+1)); } 程序运行后的输出结果是 c

A)a12xyz B)12yz C)a2yz D)bc2yz (30)以下选项中,合法的是 A

A)char str3[]={'d', 'e', 'b', 'u', 'g', '\\0', }; B)char str4; str4=\C)char name[10]; name=\

D)char str[5]= \ str2=str1; (31)有以下程序

#include main()

{ char *s=\ int k=0,a=0; while(s[k+1]!='\\0') { k++; if(k%2==0){ a=a+(s[k]-'0'+1); continue; }