国家二级(C语言)机试模拟试卷499
选择题
1.若变量已正确定义
for( x=0,y=0; ( y!=99 && x<4 ); x++ )
则以上for循环( )。(A)
A. 执行4次
B. 执行3次
C. 执行无限次
D. 执行次数不定
解析:for语句的一般形式为\\
2.有以下程序:
#include<stdio.h>
main()
{ int x;
scanf(’’%dt’’,&x);
if(x<=0);else
if(x!=5)printf(’’%d\n’’,x);
}
程序运行时,输入的值在哪个范围才会有输出结果( )。(B)
A. 不等于5的整数
B. 大于0且不等5的整数
C. 大于0或等于5的整数
D. 小于5的整数
解析:题目中,虽然else和第二个if不在同一行上,但等价于在同一行上,因此,程序的意思是当x大于0且不等于5时将其打印出来。
3.有以下程序:
#include<stdio.h>
void main()
{
char a,b,c,d;
scanf(\\(C)
A. 12<CR>34
B. 12
C. 12<CR>3
D. 123<CR>4
解析:scanf()函数的一般调用形式为:scanf(格式控制,输入地址列表)。其中,格式控制是用双引号括起来的字符串,包括格式字符和普通字符,格式是是由“%”和格式字符组成。getchar()函数的功能是从标准输入设备上读入一个字符。根据程序中的格式控制可知,接收输入时分别把1赋给了a,2赋给了b,然后getchar()函数提取一个换行符赋给c,再提取一个字符3赋给d。所以程序的输出结果为:12<CR>3。
4.数据库系统的三级模式不包括( )。(D)
A. 概念模式
B. 内模式
C. 外模式
D. 数据模式
解析:数据库系统的三级模式是概念模式、外模式和内模式,所以选择D。
5.有以下程序:
#include<stdio.h>
main()
{char c1,c2;
c1=’A’+’8’-’4’;
c2=’A’+’8’-’5’’;
printf(\\(A)
A. E,68
B. D,69
C. E,D
D. 输出无定值
解析:本题目中字符变量c1是字符‘A’的ASCII码加上4,即69所对应的字符‘E’。字符变量c2是字符‘A’的ASCII码加上3,即68所对应的字符‘D’。但是打印输出时,c1以%c的格式输出,所以是E,c2以%d的格式输出,所以是68。
6.关于C语言程序的下列说法中,正确的是( )。(B)
A. 函数的定义可以嵌套,但函数的调用不可以嵌套
B. 函数的定义不可以嵌套,但函数的调用可以嵌套
C. 函数的定义和调用均不可以嵌套
D. 函数的定义和调用均可以嵌套
解析:函数定义都是在函数外部进行的,而函数调用是在函数内部发生的,所以函数的定义不可以嵌套,但函数的调用可以嵌套。
7.以下选项中正确的语句组是( )。(D)
A. char s[];s=\\
B. char*s;s={\\
C. char s[10];s=\\
D. char*s;s=\\
解析:本题考查数组和字符串的赋值。选项A)中数组s没有明确其大小就赋值是错误的。选项B)中不能有大括号,选项C)中的写法应该为{’H’’E’’L’’L’’O’’!’}。
8.设有以下定义:
char s1[]=\\(C)
A. 数组s1的长度小于s2的长度
B. 数组s1和s2的长度相同
C. 数组s1的长度大于s2的长度
D. 数组s1和s2完全等价
解析:字符数组s1赋值字符串“0123”,字符串中字符依次放人数组中,在最后一个字符后要添加一个结束字符‘\0’,数组s1长度为5。数组s2只需要4个单元即可放下所有初始化值,故数组长度为4。所以数组s1的长度大于s2的长度。
9.以下叙述中正确的是( )。(A)
A. 当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失
B. 打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖
C. 在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据
D. C语言中的文件是流式文件,因此只能顺序存取数据
解析:B选项中打开一个已存在的文件并进行了写操作后,原有文件中的全部数据不一定被覆盖,也可以对源文件进行追加操作等。C选项中在一个程序中当对文件进行了写操作后,不用先关闭该文件然后再打开,才能读到第1个数据,可以用fseek()函数进行重新定位即可。D选项中,C语言中的文件可以进行随机读写。
10.设栈的顺序存储空间为S(0:49),栈底指针bottom=49,栈顶指针top=30(指向栈顶元素)。则栈中的元素个数为( )。(C)
A. 30
B. 29
C. 20
D. 19
解析:栈底指针bottom=49,栈顶指针top=30,则栈中的元素个数为49-30+1=20个,答案选C)。
3.对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是( )。
11.以下选项中,能用作数据常量的是( )。(D)
A. 018
B. ol 1
C. 0.8e2.5
D. 25L
解析:本题考查常量定义。数据常量可有10进制、8进制、16进制、指数法等,8进制数字为0-7,第一个字符为0,而不是o,因此选项A和B)错误。为指数法时,指数部分须为整形,因此选项C错误,选项D中数字后加入L是说明此变量为长整型。
12.以下是while语句的基本形式:
while(表达式){语句;}
其中“表达式”( )。(D)
A. 必须是逻辑表达式
B. 必须是关系表达式
C. 必须是逻辑表达式或关系表达式
D. 可以是任意合法的表达式
解析:本题考查while表达式。while(表达式)中的表达式可以为任何合法的表达式,一般情况下为逻辑、条件表达式,需要注意的是,当等号(一)误写为赋值号(=)时不会报错的,但是其值恒为1。
13.若有“char s[3][3]={’’AAA’’,’’BBB’’,’’CCC’’};”说明语句,则与它等价的语句是( )。
D
解析:二维字符数组在定义时可省略第一维的维数,根据初始化有3个字符串,所以选项D中数组有3行,与已知说明语句等价。
14.下列选项中属于面向对象设计方法主要特征的是( )。(A)
A. 继承
B. 自顶向下
C. 模块化
D. 逐步求精
解析:面向对象设计方法的基本概念有对象、类和实例、消息、继承与多态性,所以答案为A。
<本文档预览:3600字符,共13793字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载