计算机二级C语言模拟题.docx

上传人:b****6 文档编号:9052743 上传时间:2023-02-03 格式:DOCX 页数:99 大小:76.18KB
下载 相关 举报
计算机二级C语言模拟题.docx_第1页
第1页 / 共99页
计算机二级C语言模拟题.docx_第2页
第2页 / 共99页
计算机二级C语言模拟题.docx_第3页
第3页 / 共99页
计算机二级C语言模拟题.docx_第4页
第4页 / 共99页
计算机二级C语言模拟题.docx_第5页
第5页 / 共99页
点击查看更多>>
下载资源
资源描述

计算机二级C语言模拟题.docx

《计算机二级C语言模拟题.docx》由会员分享,可在线阅读,更多相关《计算机二级C语言模拟题.docx(99页珍藏版)》请在冰豆网上搜索。

计算机二级C语言模拟题.docx

计算机二级C语言模拟题

模拟题一

一、选择题

(1)~(10)每小题2分, (11)~(50)每小题1分,共60分)

下列各题A)、B)、c)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。

  

(1)在数据结构中,从逻辑上可以把数据结构分为_______。

  A)动态结构和静态结构   B)紧凑结构和非紧凑结构

  c)线性结构和非线性结构  D)内部结构和外部结构

  答案:

C

  评析:

逻辑结构反映数据元素之间的逻辑关系,线性结构表示数据元素之间一对一的关系,非线性结构表示数据元素之间一对多或多对一的关系。

  

(2)若进栈序列为l,2,3,4,进栈过程中可以出栈,则下列不可能的一个出栈序列是_______。

  A)1,4,3,2  B)2,3,4,l

  C)3,1,4,2  D)3,4,2,1

  答案:

C

  评析:

栈是一种后进先出表,选项c中,先出栈的是3,说明此时栈内必然有1,2,由于l先于2进栈,所以l不可能在2之前出栈,故选项C这种出栈序列是不可能的。

  (3)排序方法中,将整个无序序列分割成若干小的子序列并分别进行插入排序的方法,称为_______。

  A)希尔排序  B)冒泡排序  c)插入排序  D)选择排序

  答案:

A

  评析:

希尔排序法的基本思想是:

将整个无序序列分割成若干小的子序列分别进行插入排序。

  (4)在顺序表(3,6,8,10,12,15,16,18,21,25,30)中,用二分法查找关键码值11,所需的关键码比较次数为_______。

  A)2   B)3   C)4    D)5

  答案:

C

  评析:

二分法查找是用关键码与线性表的中间元素比较,然后根据比较结果来判断是结束查找,还是在左边或者右边子表按相同的方法继续查找。

本题中,与ll比较的关键码分别为15,8,10,12四个。

  (5)对于n个结点的单向链表(无表头结点),需要指针单元的个数至少为_______。

  A)n-1  B)n  C)n+l   D)2n

  答案:

C

  评析:

在n个结点的单向链表(无表头结点)中,每个结点都有一个指针单元(即指针域),加上头指针,至少需要n+1个指针单元。

  (6)在软件开发过程中,软件结构设计是描述_______。

  A)数据存储结构  B)软件体系结构  C)软件结构测试  D)软件控制过程

  答案:

B

  评析:

从工程管理角度来看,软件设计分两步完成:

概要设计和详细设计。

概要设计(又称结构设计)将软件需求转化为软件体系结构、确定系统级接口、全局数据结构或数据库模式。

  (7)模块本身的内聚是模块独立性的重要性度量因素之一。

在7类内聚中,具有最强内聚  的一类是_______。

  A)顺序性内聚  B)过程性内聚   c)逻辑性内聚  D)功能性内聚

  答案:

D

  评析:

内聚性是一个模块内部各元素间彼此结合的紧密程度的度量。

内聚共有7类,它们之间的内聚性由弱到强排列顺序为:

偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚和功能内聚。

  (8)数据存储和数据流都是_______,仅仅是所处的状态不同。

  A)分析结果  B)事件  C)动作  D)数据

  答案:

D

  评析:

数据流图有4种成分:

源点或终点、处理、数据存储和数据流。

数据存储是处于静止状态的数据,数据流是处于运动中的数据。

  (9)数据的完整性是指数据的正确性、有效性和_______。

  A)可维护性  B)独立性  C)安全性  D)相容性

  答案:

D

  评析:

数据模型的完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态及其状态的变化,以保证数据的正确性、有效性和相容性。

  (10)关系代数运算是以_______为基础的运算。

  A)关系运算  B)谓词运算  c)集合运算  D)代数运算

  答案:

C

  评析:

关系代数运算是以关系代数作为运算对象的一组高级运算的集合。

它的基本操作是并、交、差、笛卡尔积,另外还包垂直分割(投影)、水平分割(选择)、关系的结合(连接)等。

  (11)能将高级语言程序转换成目标语言程序的是_______。

  A)调试程序  B)解释程序  C)编译程序   D)编辑程序

  答案:

C

评析:

用高级语言编写的程序称为"源程序",而计算机只能识别和执行由0和l组成的二进制指令,所以高级语言必须先用一种称为"编译程序"的软件,把源程序翻译成二进制形式的"目标程序"。

(12)_______是构成c语言程序的基本单位。

A)函数  B)过程  c)子程序   D)子例程

答案:

A

评析:

c程序是由函数构成的。

一个c源程序至少包含一个main函数,也可以包含一个main函数和若干个其他函数,因此,函数是c程序的基本单位。

(13)可以在C语言中用做用户标识符的是_______。

A)void  B)as_b3  C)for    D)2c

define  _123   -abc    Do

WORD   If    cas    SIG

答案:

B

评析:

c语言规定,标识符只能由字母、数字和下划线三种符号组成,而且第一个字符必须是字母或下划线。

另外还需要注意的是关键字不能作标识符。

选项A中void,C中for都为关键字,D中2c以字母开头。

(14)若有以下类型说明语句:

charw;intx;floaty,z;

则表达式w*x+z-y的结果为________类型。

A)float  B)char  C)int D)double

答案:

A

评析:

在进行运算时,不同类型的数据参加运算,需要先将其转换成同一类型的数据,然后再进行运算。

转换的顺序由低到高为:

char,short→int→unsigned→long→double→float,故结果为float型。

(15)main(()

{ floatx=123A56;

printf("%-5.2f\n",x);

}

以上程序输出的结果是________。

A)123.4  B)123.5   C)123.45  D)123.46

答案:

D

评析:

f格式符,用来输出实数,以小数形式输出。

"%-m.nf"的含义是:

输出数据共占m列,其中n位小数,如果输出位数小于m。

则右端补空格。

如果总长度大于列数,则按实际情况四舍五入输出。

(16)下面语句的输出结果是________。

Printf("%d\n",strlen("\t\"\065\xff\n"));

A)14     B)8

C)5     D)输出项不合法,无正常输出

答案:

C

评析:

在c语言中,以"\"开头的字符均为转义字符,其中"\"后可跟l~3位八进制数或在"\"后跟字母x及l~2位十六进制数,以此来代表一个特定的字符。

(17)下列程序的输出结果是________。

main()

{ inta=0,b=0,c=0;

if(++a>0lI++b>0)++c;

printf("\na=%d,b=%d,c=%d",a,b,c);

}

A)a=0,b=0,c=0   B)a=l,b=l,c=1

C)a=l,b=O,c=I   D)a=0,b=1.c=1

答案:

C

评析:

"︱︱"是或运算,它有个"短路"的特点需特别注意,当"︱︱"运算符左边的表达式的值为真时,则程序就不再对"︱︱"右边的表达式的值进行运算,而是使得整个表达式的值直接为真。

(18)下列程序的输出结果是_________。

Main()

{ inti;

for(i=1;i+l;i++)

{ if(i>4){printlf("%d",i++);break;}

}

printf("%d",i++);

}

A)55          B)56

c)程序错误,没有输出  D)循环条件永远为真,死循环

答案:

B

评析:

本程序中有个for循环,但注意到for循环的条件是"i+l",也就是只要i+l的值为真(非零值均为真),就执行循环。

当i=l的时,i+l的值为真,判断if条件不成立,执行i++,输出i的值为5。

(19)下列程序的输出结果是_________。

#defineA100

main()

{ inti=O,sum=O;

do{ if(I==(i/2)*2)continue;

sum+=i;

}while(++i

printf("%d\n",sum);

}

A)2500  B)2050  C)4  D)O

答案:

A

评析:

本题程序的功能是求1到_99之问(包括1和99)所有奇数之和。

程序中的while循环的终止条件为++i=100,在while循环体内,如果i是偶数,则执行continue,跳过这一次循环,执行下一次循环,否则求和。

最后输出的值是1到99之间(包括l和99)所有奇数之和(1+99)*50/2=2500。

 

(20)下列程序的输出结果是_________。

main()

{ intI=3;

switch(i)

{case1:

case2:

printf("%d",i);

case3:

case4:

break;

default:

printf("OK");

}

}

A)0  B)3  C)OK  D)没有任何输出

答案:

D

评析:

在题中,i的值为3,由于"case3:

"后面没有break语句,所以继续向下执行"case4:

"后面的语句,由于"case4:

"后面的语句为break强行退出switch语句,所以,本题没有任何输出。

(21)下列程序执行后的输出结果是________。

main()

{ intm[][3]={1,4,7,2,5,8,3,6,9};

inti,k=2:

for(I=0;i<3;i++)

{printf("%d",m[k][i]);}

}

A)456  B)258  C)369  D)789

答案:

C

评析:

根据二维数组的定义得出:

m[O][O]=1,m[O][1]=4,m[O][2]=7,m[1][0]=2,rail][1]=5,m[1][2]=8,m[2][0]=3,m[2][l]=6,m[2][2]=9,所以本题的输出是第3行的值m[2][0],m[2][1],m[2][2],即369。

(22)设已定义洱口k为int类型变量,则以下for循环语句_________。

for(i=0;k=-1,k=1;i++,k++)

printf("****\n");

A)判断循环结束的条件不合法  B)是无限循环

C)循环一次也不执行      D)循环只执行一次

答案:

B

评析:

本题定义了一个for循环,循环变量是i,但由于本题并没有设置循环条件,所以循环的条件永远默认为真,即无限次执行循环。

(23)下面程序的输出结果是___________。

unsignedfun(unsignednum)

{ unsignedk=1;

do{

k*=num%lO;

num/=lO;

}while(num);

return(k);

}

main()

{ unsignedn。

26;

printf("%d\n",fun(n));

}

A)0  B)4  c)12  D)无限次循环

答案:

C

评析:

本题定义了一个fun函数,用于num求和,具体执行过程如下:

num=26:

k=k*(num%10)=1*(26%10),所以k=6,num=num/10=2;

num=2:

k=k*(num%10)=6*(2%10),所以k=12,num=num/lO=O;

num=O:

while条件不成立,所以返回k的值12.

(24)已知字母A的ASCII码值是65,字母a的ASCII码值是97,以下程序_______。

main()

{ chara='A';

intb=20;

printf("%d,%o",(a=a+a,a+b,b),a+'a'-'A',b);

}

A)表达式非法,输出零或不确定值

B)因输出项过多,无输出或输出不确定值

C)输出结果为20,141

D)输出结果为20,141,20

答案:

C

评析:

本题中首先输出逗号表达式"a=a+a,a+b,b"的值,即20。

然后以八进制的形式输出a+'a'-'A'的值为97对应的八进制数141,由于最后一个表达式b没有对应输出格式的输出项表列就不会输出。

(25)C语言函数返回值的类型是由__________决定的。

A)return语句中的表达式类型  B)调用函数的主调函数类型

c)调用函数时临时       D)定义函数时所指定的函数类型

答案:

D

评析:

函数值的类型应当是在定义函数时指定的。

在定义函数时对函数值说明的类型一般应该和return语句中的表达式类型一致,如果不_致,则以函数类型为准,即函数类型决定返回值的类型。

 

模拟题二

一、选择题

(1)~(10)每小题2分,(11)-(50)每小题1分,共60分)

  下列各题A)、B)、c)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。

  

(1)下面叙述正确的是________。

  A)算法的执行效率与数据的存储结构无关

  B)算法的空间复杂度是指算法程序中指令(或语句)的条数

  C)算法的有穷性是指算法必须能在执行有限个步骤之后终止

  D)算法的时间复杂度是指执行算法程序所需要的时间

  答案:

C

  评析:

算法的设计可以避开具体的计算机程序设计语言,但算法的实现必须借助程序设计语言中提供的数据类型及其算法。

数据结构和算法是计算机科学的两个重要支柱。

  

(2)以下数据结构属于非线性数据结构的________。

  A)队列  B)线性表  C)二叉树  D)栈

  答案:

C

  评析:

线性表、栈和队列等数据结构所表达和处理的数据以线性结构为组织形式。

栈又称后进先出表(LastInFirstOut);队列又称先进先出表(First:

InFirstOut)。

二叉树的数据结构是树型结构,结构中数据元素之间存在着一对多的关系,因此它是一种非线性数据结构。

  (3)在一棵二叉树上第8层的结点数最多是________。

  A)8  B)16  C)128  D)256

  答案:

C

  评析:

根据二叉树的性质:

二叉树第i(i≥1)层上至多有2i-1个结点。

得到第8层的结点数最多是128。

  (4)下面描述中,不符合结构化程序设计风格的是________。

  A)使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑

  B)自顶向下

  C)注重提高程序的执行效率

  D)限制使用goto语句

  答案:

C

  评析:

结构化程序设计方法的四条原则是:

1.自项向下;2.逐步求精;3.模块化;4.限制使用goto语句。

  (5)下面概念中,不属于面向对象方法的是________。

  A)对象、消息 B)继承、多态  c)类、封装  D)过程调用

  答案:

D

  评析:

面向对象方法是一种运用对象、类、封装、继承、多态和消息等概念来构造、测试、重构软件的方法。

面向对象方法从对象出发,发展出对象、类、消息、继承等概念。

  (6)在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是________。

  A)可行性分析 B)需求分析  c)详细设计  D)程序编码

  答案:

B

评析:

软件开发阶段包括需求分析、总体设计、详细设计、编码和测试五个阶段。

其中需求分析阶段常用的工具是数据流图和数据字典。

(7)软件生命周期中所花费用最多的阶段是________。

A)详细设计  B)软件编码  c)软件测试  D)软件维护

答案:

D

评析:

软件生命周期分为软件定义、软件开发及软件运行维护3个阶段。

本题中详细设计、软件编码和软件测试都属于软件开发阶段;维护是软件生命周期的最后一个阶段。

(8)数据库系统的核心是________。

A)数据模型  B)DBMS  C)软件工具  D)数据库

答案:

B

评析:

数据库管理系统DBMS是数据库系统的核心。

DBMS是负责数据库的建立、使用和维护的软件。

DBMS建立在操作系统之上,实施对数据库的统一管理和控制。

用户使用的各种数据库命令以及应用程序的执行,最终都必须通过DBMS。

(9)下列叙述中正确的________。

A)数据处理是将信息转化为数据的过程

B)数据库设计是指设计数据库管理系统

C)如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字

D)关系中的每列称为元组,一个元组就是一个字段

答案:

C

评析:

数据处理是指将数据转换成信息的过程,故选项A叙述错误;设计数据库的目的实质上是设计出满足实际应用需求的实际关系模型;关系中的行称为元组,对应存储文件中的记录,关系中的列称为属性,对应存储文件中的字段,故D选项叙述错误。

(10)下列模式中,________是用户模式。

A)内模式 B)外模式  C)概念模式  D)逻辑模式

答案:

B

评析:

数据库管理系统的三级模式结构由外模式、模式和内模式组成。

外模式,指数据库用户所看到的数据结构,是用户看到的数据视图。

模式,是数据库中对全体数据的逻辑结构和特性的描述,是所有用户所见到的数据视图的总和。

内模式是指数据在数据库系统内的存储介质上的表示,即对数据的物理结构和存取方式的描述。

(11)C语言规定,程序中各函数之间________。

A)既允许直接递归调用也允许间接递归调用

B)不允许直接递归调用也不允许间接递归调用

C)允许直接递归调用不允许间接递归调用

D)不允许直接递归调用允许间接递归调用

答案:

A

评析:

c语言规定,程序中各函数之间既允许直接递归调用也允许间接递归调用。

(12)在使用程序流程图来表示算法时,菱形用来表示________。

A)输入与输出B)子程序  C)判断分支  D)循环边界

答案:

C

评析:

美国国家标准化协会ANSI规定了一些常用的流程图符号,其中椭圆框表示起止框,方框表示处理框,菱形框表示判断分支,箭头表示流程线。

(13)C语言中下列叙述正确的是________。

A)不能使用do…while语句构成的循环

B)do…while语句构成的循环,必须用break语句才能退出

C)do…while语句构成的循环,当while语句中的表达式值为非零时结束循环

D)do…while语句构成的循环,当while语句中的表达式值为零时结束循环

答案:

D

评析:

选项A是错误的,c语言支持d0…while语句;选项B是错误的,do...while构成的循环,当while语句中的表达式值为零时结束循环,而不是非零;选项c也是错误的。

(14)以下选项中属于C语言的数据类型是________。

A)复数型 B)逻辑型  C)双精度型  D)集合型

答案:

C

评析:

c语言的数据类型分为基本类型、构造类型、指针类型、空类型四大类。

其中,基本类型分为整型、字符型、实型三类。

实型又称浮点型,包括单精度型和双精度型两种类型。

(15)在C语言中,不正确的int类型的常数是________。

A)32768  B)0  C)037  D)0xAF

答案:

A

评析:

c语言中int类型的常数的范围是:

-32768~32767。

c整常数可用三种形式表示:

十进制整数,八进制整数,十六进制整数。

选项A超出范围,不正确。

(16)以下程序输出的结果是________。

main()

{

inta=65535;

printf("%d%u",a,a);

}

A)-1-1  B)6553565535  C)-165535  D)65535-l

答案:

C

评析:

printf函数中不同类型的数据用不同的格式字符,其中%d是按整型数据的实际长度输出十进制整数。

变量a=65535以%d格式输出时溢出输出值为该数的补码值,即.1;%u用来输出unsigned型数据,无符号整型变量的数值范围为0~65535,所以变量a=65535以%u格式输出的值为65535。

(17)下列描述中不正确的是________。

A)字符型数组中可以存放字符串

B)可以对字符型数组进行整体输入、输出

C)可以对整型数组进行整体输入、输出

D)不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值

答案:

C

评析:

c语言规定只能逐个引用数组元素而不能一次引用整个数组。

字符数组的输入、输出可以将整个字符串一次输入或输出。

所以,选项c的说法是不正确的。

(18)以下程序的输出结果是________。

main()

{ inti,x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1];

for(I=0;i<4;i+=2)printf("%d",p[I]);

}

A)5 2  B)5 l  C)5 3  D)9 7

答案:

C

评析:

题中*p=&x[1][1];是指将数组x的数组元素x[1][1]的地址赋值给指针变量p,使p指向x[11[1]这个数组元素,那么p[0]即为指针变量p当前所指向的数组元素x[1][1]的值。

(19)下列可用于C语言标识符的一组是________。

A)voidWORDdefine  B)a6$sysFor

C)2asizeofabc  D)Intdefinesizeof

答案:

D

评析:

c语言规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。

注意,大写字母和小写字母被认为是两个不同的字符。

C语言中的关键字不能用作标识符。

(20)以下程序的运行结果是__________。

#include "stdio.H"

main()

{

inta[]={1,2,3,4,5,6,7,8,9,10,11,12};

int*p=a+5,*q=NULL;

*q=*(p十5);

printf("%d  %d、n",'p,*q);

}

A)运行后报错    B)6 6

C)6 12       D)5 5

答案:

A

评析:

题目中没有给q分配存储单元,只是简单的给它赋了一个值,所以程序的运行结果是6 ll NULLpointerassignment,也就是运行后报错。

(21)以下说法中正确的是_________。

A)C语言程序总是从第一个函数开始执行

B)在C语言程序中,要调用函数必须在main()函数中定义

C)c语言程序总是从main()函数开始执行

D)c语言程序中的main()函数必须放在程序的开始部分

答案:

C

评析:

c语言的程序是由主函数main()开始运行,由主函数来调用其他函数,函数必须是并列的,定义后使用,不能在一个函数中定义其他函数,main()函数不一定要放在程序的开始部分,故选c。

(22)有如下程序

floatfun(intx,inty){return(x+y);}

main()

{

inta=2,b=5,c=8;

printf("%3.0f\n",fun((int)fun(a+c,b),(a-c)));

}

程序运行后的输出结果为__________。

A)编译出错    B)9   C)21  D)9.0

答案:

B

评析:

本题中

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 管理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1