计算机等级二级C语言模拟试题1(八)

计算机等级二级C语言模拟试题1(八),第1张

计算机等级二级C语言模拟试题1(八),第2张

1.选择题(1)-(10)各2分,(11)-(50)各1分,共60分)

下列问题A)、B)、C)、D)中的四个选项只有一个是正确的。请在答题卡的相应位置涂上正确选项,答案不会在试卷上计分。

(1)在数据结构中,与所用计算机无关的是数据的_ _ _ _ _ _ _ _。
A)存储结构B)物理结构C)逻辑结构D)物理和存储结构
答案:C
点评:数据结构的概念一般包括三个方面:数据的逻辑结构、存储结构和对数据的操作集合。数据的逻辑结构只是抽象地反映了数据元素之间的逻辑关系,而与它在计算机中的存储表示无关。

(2)元素A、B、C、D从栈底到栈顶存储。在第五个元素E进入堆栈之前,堆栈中的元素可以被释放。
那么发布顺序可能是_ _ _ _ _ _ _ _ _。
A)ABCED B)DBC ea C)CDA be D)DCBEA
回答:D
点评:栈操作原则上是“后进先出”,元素A、B、C、D从栈底存储到栈顶,表示D是栈中的最后一个,B、B,因此,出栈时必须先给D,再给C,最后给A

(3)线性表的顺序存储结构和线性表的链式存储结构分别是_ _ _ _ _ _ _ _。
A)顺序存取存储结构,随机存取存储结构
B)随机存取存储结构
C)随机存取存储结构
D)随机存取存储结构,随机存取存储结构
答:【LOC(a1)+(i-1)L被计算,从而实现随机存取。对于链式存储结构,要访问一个节点,就得从链的头指针所指向的节点开始,这是一种顺序访问存储结构。

(4)在单链表中,添加头节点的目的是_ _ _ _ _ _ _ _ _ _。
A)实现操作方便;b)单链表至少有一个节点
C)它标识表节点中第一个节点的位置;d)表示单链表是线性表的链式存储实现;
回答:A
评论:头节点不仅标识表中第一个节点的位置,还根据单链表(包括头节点)

(5)软件设计包括软件结构、数据接口和过程设计,其中软件过程设计是指_ _ _ _ _ _ _。
A)模块之间的关系B)系统结构组件转化为软件的过程描述
C)软件层次结构d)软件开发过程
答案:B
评价:软件设计包括软件结构设计、数据设计、接口设计和流程设计。其中,结构设计是定义软件系统主要组件之间的关系;数据设计是将分析过程中创建的模型转换为数据结构的定义;接口是描述如何在软件内部、软件和操作系统之间以及软件和人之间进行通信。过程设计是将系统的结构组件转换成软件的过程描述。

(6)为了避免流程图在描述程序逻辑时的灵活性,提出用框图代替传统的程序流程图,通常称为_ _ _ _ _ _ _ _ _。
A)PAD图B)N-S图C)结构图D)数据流图
答案:B
点评:常用的流程设计工具有:程序流图、N-S图、PAD图、HIPO图。其中,为了避免流程图在描述程序逻辑时的灵活性,提出了用框图来代替传统的程序流程图,通常称为N-S图。

(7)数据处理的最小单位是_ _ _ _ _ _。
A)数据b)数据元素C)数据项d)数据结构
答案:C
备注:数据处理的最小单位是数据项;一个数据元素由几个数据项组成;数据是指能够被计算机识别、存储和处理的信息载体。数据结构是指数据和数据操作之间的关系。

(8)下列关于数据库的描述正确的是_ _ _ _ _ _ _ _。
A)数据库是一个DBF文件B)数据库是一个关系
C)数据库是一个结构化的数据集D)数据库是一组文件
答案:C
注释:数据库(DB)是一组具有统一结构的数据,存储在统一的存储介质中。数据库中的数据具有“集成”和“共享”的特点。

(9)对单个用户使用的数据视图的描述称为_ _ _ _ _ _ _ _ _。
A)外部模式B)概念模式C)内部模式D)逻辑模式
答案:A
点评:外部模式是用户的数据视图,即用户看到的数据模式;全局数据视图的描述称为概念模型,即对数据库中所有数据的整体逻辑结构的描述;物理存储数据视图的描述称为内部模式,即数据库在物理存储中的描述;存储模式是内部模式。

(10)需求分析阶段的任务是确定_ _ _ _ _ _。
A)软件开发方法B)软件开发工具C)软件开发费用D)软件系统功能
回答:D
评估:需求分析是软件定义期的最后一个阶段,其基本任务是调查对象(组织、部门、企业等,)要在现实世界中详细处理,充分了解原系统的概况,明确用户。

(11)如果变量a的类型为int,并且执行该语句:a = ' a '+1.6;,正确的说法是_ _ _ _ _ _。
A)A的值是字符CB)A的值是浮点
C)不允许添加字符和浮点。d)A的值是字符‘A’的ASCII值加l
答案:D
备注:在赋值表达式中,赋值器右边的值的类型会自动转换成赋值器。本题中“A”的ASCII码值加1.46得到66.46,然后强制转换成int类型。转换后,实数的小数部分全部完成。

(12)如果下列选项中的变量已被正确定义,正确的赋值语句是_ _ _ _ _ _。
A)x1 = 26.8% 3;b)1+2 = x2;c)x3 = 0x 12;d)x4 = 1+2 = 3;
答案:C
备注:赋值符号“=”是赋值运算符,它的作用是将一个数据赋给一个变量。如果赋值运算符两边的类型不一致,但都是数值型或字符型,那么赋值时需要进行类型转换,所以选项A是错误的。在赋值表达式中,赋值运算符的左边必须是变量,所以选项B和D是错误的。选项c是将一个十六进制数赋给变量x3。

(13)下列程序段的输出结果是_ _ _ _ _ _。
int a = 1234;
printf("%2d\n ",a);
A)12 B)34 C)1234 D)提示错误且无结果
答案:C
点评:本题主要考察对primf函数的域宽描述符的理解。这里要特别注意:输出数据的实际精度并不主要取决于格式项中的域宽和精度,也不取决于输入数据。

(14)下列选项中,不属于C语言的类型是_ _ _ _ _ _ _ _ _。
A)有符号short int b)无符号char
C)有符号long d) long short
回答:D
点评:在C语言中,数据的基本类型如下:
[有符号]char;无符号字符;[签名]short[int];无符号短整型[int];[签名]长[整数];无符号长整型[int];浮动;双份。

(15)有定义:int a,* pa = & a;以下scanf语句可以正确读取变量A _ _ _ _ _ _ _ _ _的数据。
A)scanf("%d ",B);B)scanf("%d ",a);
C)scanf("%d ",& pa);D)scanf("%d ",* pa);
答案:C
备注:scanf函数要求输入项必须是地址形式的,如常用变量的地址、数组名、指针变量等。对于普通变量,地址形式为:& variable name当一个普通变量的地址被赋予一个指针变量名时,指针变量名可以直接写在scanf函数的输入端。

(16)下列程序的输出结果是_ _ _ _ _ _ _。
main()
{int a=5,b=4,c=6,d;
printf("%d\n ",d=a>c?(a>c?甲:丙):(乙));
}
A)5 B)4 C)6 D)不确定
答案:B
点评:此题最重要的分析d=a>c?(a>c?A: C): (B)),首先运算括号中的公式a>c?A: c,其值为c的值6,即公式换算成d=a>c?6:4。很明显,a=c,所以把4赋给d。

(17)下列程序中,while循环的循环次数是_ _ _ _ _ _ _。
main()
{ int I = 0:
while(I { if(I if(I = = 5)break;
i++:
}
}
}
a)1b)10c)6d)无限循环,次数无法确定
回答:d
点评:进入循环后,如果I的值小于L,则直接进入下一个循环。因为I的初始值是0,小于L,直接进入下一个循环。而且因为I的值没有变,这个循环就变成了无限循环。

(18)有以下程序:
main()
{
char k;int I;
for(I = 1;i {
scanf("%c ",& k);
switch(k)
{
case ' 0 ':printf[" another \ n "];
case ' 1 ':printf[" number \ n]);
}
}
}
程序运行时,从键盘输入:0l,程序执行后输出结果为_ _ _ _ _。
A)另一个B)另一个C)另一个D)number
number number number[/Br/]另一个number[/Br/]答案:C
注释:switch语句是多分支选择语句。执行完一个case后面的语句后,流程控制转移到下一个case继续执行。“case常量表达式”只是作为一个语句标签,而不是条件判断。执行switch语句时,根据switch后表达式的值找到匹配的入口标签,然后从这个标签开始执行。
(19)下面这个程序的输出结果是_ _ _ _ _ _ _ _
main()
{ Int a = O,I;
for(I = 1;i {switch(i)
{情况0:
情况3:a+=2:
情况1:
情况2:a+=3:
默认:a+= 5;
}
}
printf(" % d \ n ",A)
}
A)3lb)13c)10d)20
答案:A [/br

(20) C已被定义为字符常量,那么下列说法中正确的一项是_ _ _ _ _ _。
a)C = ' 97 ' b)C = " 97 " C)C = 97d)C = " a "
答案:C
评价:字符变量占用内存一个字节,只能放一个字符;常数是用单引号括起来的单个字符;字符串是用双引号括起来的一串字符(可以是0个字符,即“”,称为空 string)。选项c是字符ASCII码的整数形式。

(21)下列程序的输出结果是_ _ _ _ _ _ _ _ _。
main()
f int a=4,b=5,c=0,d;
d=!一&&!b||!c;
printf("%d\n ",d);
}
A)l B)0 C)一个非零数D)-1
答案:A
评论:!a的值是0,所以!一&&!b的值是0!c的值是L,而0IIl的值应该是L..所以答案是a。

(22)下列程序的输出结果是_ _ _ _ _ _ _ _ _。
# include
main()
{ int I = 0,a = 0;
while(I { for(;;)
{ if((I % 10)= = 0)break;
else I-:
}
I+= ll;a+= I;
}
printf("%d\n ",a);
}
A)21b)32c)33d)11
答案:B
点评:本题中,有两个循环句。首先,i=0,进入while循环。for语句中没有循环的条件,所以我直接进入for循环。因为0% 10的结果还是O,所以我跳出for循环,执行I+:11,I的值变成11,执行a+=i,A的值变成11:然后进入下一个while循环。在for循环中,因为I i+:11,I的值变成10,进入另一个for循环。因为10% 10 = 0,所以跳出for循环,执行i+=1l,I的值变成21,执行a+=i,也就是把21+1 1的和赋给A,a=32。此时,I的值不再小于20,因此循环结束。[/br/

(23)有以下程序:
int n(int x,int y)
{retum x>y?x:y;}
Int f2(int x,int y)
{return x>y?y:x;)
main()
{ int a=4,b=3,c=5,d,e,f;
d=f1(a,b);d=fl(d,C);
e=f2(a,b);e=f2(e,C);
f = a+b+ C-d-e;
printf("%d,%d,%d\n ",d,e,f);
}
程序运行后,输出结果是_ _ _ _ _ _ _ _ _。
A)3,4,5 B)5,3,4 C)5,4,3 D)3,5,4
答案:B
评价:函数N是求两个整数的中值的函数,函数f2是求两个整数的最小值的函数。在主函数中,两次调用函数n,获取变量A、B、C中的值并赋给D;调用函数f2两次,求变量A、B、C的最小值,赋给E;表达式a+b+c-d-e得到中间值,输出5,3,4。

(24)下列程序的输出结果是_ _ _ _ _ _ _ _ _。
int f()
{ static int I = 0;
int s = 1:
s+= I;i++;
return s;
}
main()
{inti,a = 0;
for(I = 0;i printf("%d\n ",a);
}
A)20b)24c)25d)15
回答:D
点评:静态变量是在编译时分配存储空的,从程序开始执行到程序执行结束建立程序。静态局部变量的值在函数被多次调用的过程中是可继承的。

(25)定义了以下函数:
Fun(int * p)
{ Retum * p;}
这个函数的返回值是_ _ _ _ _ _。
A)不确定值b)存储在参数p中的值c)参数p指向的存储单元中的值d)参数p的地址值
答案:C.
注释:+p在函数头fun(int*p)中表示是指针变量,指向整数数据,用来从主基调调整。和语句return * p;*p in表示p指向的存储单元中的值..

(26)如果有以下程序
# include
void f(int n);
main()
{ void f(int n);
f(5);
}
Void f(int n)
{ print(" % d \ n ",n);}
下列说法中不正确的是_ _ _ _ _ _。
A)如果只在主函数中解释函数f,函数f只能在主函数中正确调用
b)如果在主函数之前解释函数f,函数f可以在主函数和其他后续函数中正确调用
c)对于以上函数程序,系统在编译时会提示错误信息;提示反复解释f函数
D)函数f没有返回值,可以用void定义为无值
答案:C
注释:一个函数在一个文件中只能定义一次,但可以有多次声明。函数可以正确地调用在当前函数之前声明的函数。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 计算机等级二级C语言模拟试题1(八)

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情