国家二级C语言机试(选择题)模拟试卷258
选择题
1.若输入“abcdef”、“abdef”,以下程序的输出结果为( )。
#include
#include
main()
{ int n;
char s1[20],s2[20],*p1,*p2;
scanf(\\(A)
A. -1
B. 0
C. abcdef
D. abdef
解析:本题考查两个知识点:①字符串比较函数strcmp(s1,s2),若s1>s2,则返回1;若s1=s2,则返回0;若s1<s2,则返回一1。②字符串依次比较的是它们相同位置上字符的ASCII码值。
2.下列叙述中正确的是( )。(B)
A. 栈与队列都只能顺序存储
B. 循环队列是队列的顺序存储结构
C. 循环链表是循环队列的链式存储结构
D. 以上说法都不对
解析:栈和队列都可以采用链式存储结构,选项A)错误。队列的顺序存储结构一般采用循环队列的形式,所以循环队列是队列的顺序存储结构,选项B正确,选项C)错误。答案选B)。
3.数据库应用系统中的核心问题是( )。(A)
A. 数据库设计
B. 数据库系统设计
C. 数据库维护
D. 数据库管理员培训
解析:数据库应用系统中的核心问题是数据库的设计。
4.结构化程序由三种基本结构组成,三种基本结构组成的算法(A)
A. 可以完成任何复杂的任务
B. 只能完成部分复杂的任务
C. 只能完成符合结构化的任务
D. 只能完成一些简单的任务
解析:结构化程序由3种基本结构组成:顺序结构、选择结构和循环结构。已经得到证明,由3种基本结构组成的算法结构可以解决任何复杂的问题。
5.对序线性表(23,29,34,55,60,70,78)用二分法查找值为60的元素时,需要比较次数为( )。(C)
A. 1
B. 2
C. 3
D. 4
解析:根据二分法查找法需要两次:①首先将60与表中间的元素55进行比较,由于60大于55,所以在线性表的后半部分查找。②第二次比较的元素是后半部分的中间元素,将60与表中间的元素70进行比较,由于60小于70,所以在线性表的前半部分查找。③第三次比较的元素是前半部分的中间元素,即60,这时两者相等,即查找成功。
6.下列程序段的输出结果是( )。
main()
{ char s[]=\\(C)
A. Hello0world
B. Helloworld
C. Hello
D. Hello0
解析:由于s数组中数组下标为5的元素赋值为0,0是字符串的结束标志,所以在输出字符串的时,仅输出数组下标为0~4的数组元素。
7.数据库系统的三级模式不包括( )。(D)
A. 概念模式
B. 内模式
C. 外模式
D. 数据模式
解析:数据库系统的三级模式包括概念模式、外模式和内模式(物理模式)。
8.若变量已正确定义,以下选项中非法的表达式是(C)
A. a!=4‖b’
B. ’a’%4
C. a’=1/2*(x=y=20,x*3)
D. ’A’+32
解析:赋值表达式左边应为变量,选项C中左边为字符常最,因此非法,其余表达式均为合法的表达式。
9.下列叙述中正确的是(B)
A. 带链栈的栈底指针是固定的
B. 带链栈的栈底指针是随栈的操作而动态变化的
C. 若带链队列的队头指针与队尾指针相同,则队列为空
D. 若带链队列的队头指针与队尾指针相同,则队列中至少有一个元素
解析:栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。带链栈的栈底指针是随栈的操作而动态变化的;若带链队列的队头指针与队尾指针相同,则队列可能为0也可能为1。
10.下列语句组中正确的是( )。
B
解析:A选项去掉大括号就正确了;C选项和D选项应在定义时赋初值。B选项正确。
11.以下选项中合法的变量是(C)
A. 5a
B. A%
C. _10_
D. sizeof
解析:对于变量的命名要利用标识符命名,所谓标识符就是C语言中的变量名、函数名、数组名、文件名、类型名等。其中标识符构成如下:
①标识符由字母、数字和下划线组成;
②第一个字符必须为字母或下划线;
因此选项A中数字开头,选项B出现了非法字符%,而选项D中sizeof为关键字,不能为变量命名。
12.关于变量的定义和说明的叙述中正确的是( )。(C)
A. 对于变量而言,“定义”和“说明”这两个词实际上是同一个意思
B. 在复合语句中不能定义变量
C. 全局变量的存储类别可以是静态类
D. 函数的形式参数不属于局部变量
解析:C语言的关键字static说明符说明全局变量时,此变量可称作静态全局变量。静态全局变量只限于本编译单位使用,不能被其他编译单位所引用。在一个函数内部定义的变量(包括形参)是局部变量,它只在本函数范围内有效。不同函数中可以使用相同名字的局部变量,它们代表不同的对象,互不影响。在函数内部复合语句中也可以定义变量,这些变量都是局部变量,只在本复合语句中有效。
13.关于字符数组定义中存在语法错误的是( )。
D
解析:本题考查字符数组,选项D中定义了二维数组ss,可以用于存储字符串,但是字符串的存储不能通过赋值,仅可以初始化或者输入得到,而选项C和A不同,选项B为指针数组,对于指针变量可以保存常量字符串的地址。
14.下面描述中正确的是(C)
A. 软件调试是为了改善软件的性能
B. 软件测试要确定错误的性质和位置
C. 软件测试是软件质量保证的重要手段
D. 软件调试的任务是发现并改正程序中的错误
解析:软件测试(Software Testing),描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。
15.一个教师讲授多门课程,一门课程由多个教师讲授。则实体教师和课程间的联系是(D)
A. 1:1联系
B. 1:m联系
C. m:1联系
D. m:n联系
解析:一个教师可讲授多门课程,一门课程可由多个教师讲授,则实体教师和课程的联系是多对多的联系。
16.若变量已正确定义为int型,要通过语句scanf(\\(D)
A. □□□1.2,3
B. 1,□□□2,□□□3
C. 1.2.3
D. 1□2□3
解析:本题主要考查scanf函数的输入格式问题。scanf函数的一般形式为:scanf(格式控制字符串,地址1,地址2,…);格式控制字符串是由双撇号括起来的字符串,它主要由两种类型的字符组成:
本文档预览:3600字符,共7134字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载