计算机等级二级C语言模拟试题1(五)
一、选择题((1) ~ (10)每题2分,(11) ~ (50)每题1分,共60分)
下列问题A)、B)、C)、D)中的四个选项只有一个是正确的。请在答题卡的相应位置涂上正确选项,答案不会在试卷上计分。
(1)算法一般可以与_ _ _ _ _ _ _控制结构相结合。
A)循环、分支、递归B)顺序、循环、嵌套
C)循环、递归、选择D)顺序、选择、循环
答案:D
评价:算法的控制结构给出了算法的基本框架,它不仅决定了算法的操作一般来说,一个算法可以由顺序、选择、循环三个基本控制结构组成,
(2)数据的存储结构是指_ _ _ _ _ _。
A)数据的存储空量
B)数据在计算机中的逻辑结构
C)数据在计算机中的顺序存储方式
D)存储在外部存储器中的数据
答案:b [/br
(3)有以下二叉树:
这个二叉树中顺序遍历的结果是_ _ _ _ _ _ _ _。
a)abcdefb)DBE AFC)abde FD)deb FCA
答案:B
备注:中序遍历是指先遍历左边的子树,然后访问根节点,最后遍历右边的子树;而且在遍历左右子树时,还是先遍历左子树,再访问根节点,最后遍历右子树。
(4)在面向对象的方法中,一个对象请求另一个对象为其服务的方式是通过发送_ _ _ _ _ _ _ _。
A)调用语句B)命令C)密码D)消息
回答:D
点评:面向对象的世界是由对象之间的相互协作推动的,而这种对象之间的相互协作需要一种机制的辅助,这种机制叫做消息。消息是在一个实例和另一个实例之间传递的信息,请求一个对象执行某个过程或回答某个请求,它统一了数据流和控制流。
(5)检查软件产品是否满足需求定义的过程称为_ _ _ _ _ _ _ _ _ _ _。
A)确认测试B)集成测试C)验证测试D)验收测试
答:A
评估:确认测试的任务是验证软件的功能、性能和其他特性是否满足需求规格书中规定的要求,软件配置是否完整和正确。
(6)在下列工具中,需求分析常用的工具是_ _ _ _ _ _。
A)PAD B)PFD C)N-S D)DFD
回答:D
评价:常见的需求分析方法有:结构化方法和面向对象分析方法。常用的结构分析工具包括数据流图(DFD)、数据字典(DD)、决策树和决策表等。
(7)下列是_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _。
A)抽象B)模块化C)自底向上D)信息隐藏
答案:C
点评:在软件设计过程中,我们必须遵循软件工程的基本原则:这些原则包括抽象、信息隐藏、模块化、本地化、确定性、一致性、完整性和可靠性。
(8)该指标属于_ _ _ _ _ _ _ _ _ _。
A)模式B)内部模式C)外部模式D)概念模式
答案:B
点评:内部模式,又称物理模式,给出了数据库的物理存储结构和物理访问方法,如数据存储的文件结构、索引、聚类和哈希等。
(9)在关系数据库中,_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _一词。
A)树形结构B)网状结构C)线性表D)二维表
回答:D
点评:在关系数据库中,二维表是用来表示实体之间的关系的。
(10)当E-R图转换为关系模型时,实体和连接都可以表示为_ _ _ _ _ _ _ _ _。
A)属性B)关系C)键D)域
答案:B
备注:关系是由几个不同的元组组成的,所以关系可以看作是一组元组。当E-R图转换为关系模式时,实体和连接都可以表示为关系。
(11)有以下程序
main()
{
charch[2][5]= { " 6937 "," 8254"},* p[2];
int I,j,s = 0;
for(I = O;I for(I = O;I for(j = 0;p[I][j]>“\ 0”;j+=2)
s=10*s+(p[i][j]。'0');
printf("%d\n ",s);
}
这个程序的输出结果是_ _ _ _ _ _ _ _。
A)69825 b)63825 C)6385d)693825
答案:C
备注:此题“ch[2][5]={"6937 "," 8254"}”用于2 ch[1][0]-ch[1][4]的取值为:8,2,5,4,\ 0;第一个for循环用于将数组指针分别指向给定数组的第一行和第二行;第二个for嵌套循环用于取出四个存储单元p[O][0]、p[O][2]、p[1][0]和p[1][2]的编号,形成四位数输出。
(12)下列说法不正确的是_ _ _ _ _ _ _ _ _。
A)分号是C语言的必要组成部分
b)C程序的注释可以写在句子后面
C)函数是C程序的基本单位
D)主函数的名字不一定用main来表示
答:D
C语言注释
(13)如果变量已被正确定义和赋值,下列符合C语言的表达式是_ _ _ _ _ _ _ _ _ _ _。
A)A:_ B+1b)A = B = C+2c)int 18.5% 3d)A = a+7 = C+B
答案:B
点评:选项A和C一看就是错的:对于表达式A = A。
(14)C语言操作数必须是整数,运算符是_ _ _ _ _ _ _ _ _。
a)% = b)/c) = d)答案:A
点评:C语言中,模运算(即余数运算%)的运算对象必须是整数数据(常量、变量或表达式)。
(15)在下列组中,所有C语言的关键字都是_ _ _ _ _ _ _ _ _。
a)double int for b)main while goto
C)volatile break static d)malloc size of new
答案:C
注释:C语言有32个关键字(见C语言教程),本题只有C符合题意。
(16)如果X和Y已被定义为双精度类型,则表达式X = 1和Y = X+3/2的值为_ _ _ _ _ _ _ _ _。
A) L B) 2 C) 2.0 D) 2.5
答案:C
备注:这是一个逗号表达式,它的值应该是表达式Y = x+3/2的值,而前面的表达式已经把L赋给了X,留在T中没有类型转换,3/2
(17) execute语句:for(,I = 1;I+a) 3b) 4c) 5d)不定
答案:C
注释:a for语句的一般形式为:for(表达式1;表情2;3)语句,循环结束的条件是i++ (18)。如果变量A和I已经被正确定义,I已经被正确赋值,那么合法的说法就是_ _ _ _ _ _ _ _ _。
A)A = = l B)++ I;c)a = a++ = 5;d)a = int(I);
答案:B
点评:选项D明显错误,而选项A没有以分号结尾,不是C语句;++= 5违反了赋值表达式左侧必须是变量(不是常量或表达式)的规则。
(19)有如下程序
main()
{int y=3,x=3,z = l;
printf("%d %d\n ",(++x,y++),z+2);
}
运行这个程序的输出结果是_ _ _ _ _ _ _ _ _。
A)3 4 B)4 2 C)4 3 D)3 3
回答:D
备注:逗号表达式(++X,y++)的值应该是y++的值。由于y++是自增的,所以先引用后增加,所以y++的值是3。
(20)运行以下程序后,如果从键盘输入65 14,输出结果是_ _ _ _ _ _ _ _ _。
main()
{
int m,n;
printf("Enter m,n:");
scanf("%d%dt。,&m,& n);
while(mI-n)
{
while(m > n)re-= n,
while(n > m)n-= m;
}
printf("m=%d\n ",m);
}
A)M = 3b)M = 2c)m = l d)M = o
答案:C
评价:分析程序显示此程序的作用是计算对数M和N的公约数,本题中M和N的值分别为65和14,它们的公约数为1,因此输出结果为M = l。
(21)能正确表达逻辑关系:“a≥10或a≤0”是C语言表达式_ _ _ _ _ _ _ _ _ _。
A) A > = 10或A = 0 Iac)A > = 10 && A = 10la答案:D
点评:“或”在C语言中“关系”用“∨”表示,其他相关的逻辑运算符“和”用“& &”表示,运算符“不是”用”!“来表演一下。
(22) ch已被定义为字符变量,下列赋值表达式中错误的是_ _ _ _ _ _ _ _。
A)ch = ' \ ' b)ch = 62+3c)ch = null d)ch = ' \ xaa '
答案:A
注释:反斜杠字符“\”赋给字符,应写成ch='\。
(23)有如下程序
main()
{int x=l,a=0,b = 0;
switch(x){
情况0:b++:
情况1:a++:
情况2:a++;b++;
}
printf("a=%d,b .%d\n ",a,b);
]
这个程序的输出结果是_ _ _ _ _ _ _ _ _。
a) a: 2,b=1 B)a=l,b=1 C)a=l,b: o d) a = 2,b=2
答案:A
注释:在这个switch语句中,由于x的值case 1,the But由于其下没有break语句,下面的语句“a++;+;++ "也会被执行,这样a=2,b=1。
(24)有如下程序
main ()
{float x = 2.0,y;
if(x else if(x else y=1。o;
printf(%f\n ",y);
}
这个程序的输出结果是_ _ _ _ _ _ _ _。
a)0.00000 b)0.250000 C)0.50000d)1.00000
答案:C
备注:本题考查if的用法...else语句。X = 2.0,满足第二条IF语句的条件x (25)有如下函数定义:
Voidfun (int n,double x) {…}
如果下列选项中的变量已经正确定义和赋值,调用函数fun的正确语句是_ _ _ _ _ _ _ _。
A)fun(int y,double m);B)k=fun(10,12.5);
C)fun(x,n);D)void fun(n,x);
答案:C
注释:函数调用的一般形式是:函数名(参数列表);,实参数的个数要相等,类型要一致。调用函数时,不要指定它的返回类型。对于返回类型为void的函数,不能作为赋值表达式的组成部分,所以选择c。
(26)有以下程序
main ()
{int i,sum
for(I = l;i printf("%d\n ",sum);
}
这个程序的执行结果是_ _ _ _ _ _ _ _。
A)6 B)3 C)无限循环D)O
答案:C
备注:循环过程中,I的值没有被改变,所以是无限循环。
(27)下列函数定义中,编译错误的是_ _ _ _ _ _ _ _ _。
A)max(int x,int y,int*z) B)int max(im x,y)
{ *z=x>y?x:y;} { int z;
z=x>y?x:y;
return z;}
C)max(intx,inty) D)intmax(intx,inty)
{ int z;{return x>y?x:y;}
z=x>y?x:y;
return(z);}
答案:B
备注:在C语言中,不能在函数的参数声明列表中用一个类型名指定多个参数。因此,选项b是错误的。
它的正确表达式应该是
int max (int x,int y) {…}
或者
int max(x,y)
int x,y;
{……}
0条评论