国家二级(C语言)机试模拟试卷496
选择题
1.下列关于栈和队列的描述中,正确的是( )。(D )
A. 栈是先进先出
B. 队列是先进后出
C. 队列允许在队头删除元素
D. 栈在栈顶删除元素
解析:栈实际也是线性表,只不过是一种特殊的线性表。栈是只能在表的一端进行插入和删除运算的线性表,通常称插入、删除的这一端为栈顶,另一端为栈底。队列是只允许在一端删除,在另一端插入的顺序表,允许删除的一端叫做队头,允许插入的一端叫做队尾。
2.下列选项中可作为C语言合法常量的是( )。(A)
A. -80
B. -080
C. -8e1.0
D. -80.0e
解析:所谓常量是指在程序运行的过程中,其值不能被改变的量。在C语言中,有整型常量、实型常量、字符常量和字符串常量等类型。选项B)中是以0开头,表示一个八进制数,而八进制数的取值范围是0~7,所以“-080”错误;在C语言中e后面的指数必须是整数,因此选项C)和D)也不正确。
3.关于“while(条件表达式)循环体”,以下叙述中正确的是( )。(B)
A. 循环体的执行次数总是比条件表达式的执行次数多一次
B. 条件表达式的执行次数总是比循环体的执行次数多一次
C. 条件表达式的执行次数与循环体的执行次数一样
D. 条件表达式的执行次数与循环体的执行次数无关
解析:考查while循环的执行过程。先计算括号内表达式的值,若不为0则执行循环体语句,若为0则跳出wlaile循环,所以条件表达式的执行次数总是比循环体的执行次数多一次.答案选B。
4.下列关于栈叙述中正确的是( )。(A)
A. 栈顶元素最先被删除
B. 栈底元素最后才能被删除
C. 栈底元素永远不能被删除
D. 栈底元素最先被删除
解析:栈是“先进后出”的数据结构,所以栈顶元素是最后人栈的,且最先被删除。栈底元素最先进栈却最后被删除。所以选择A。
5.下列程序的输出结果是( )。
#include
void fun(int*a,int*b)
{ int*k;
k=a;a=b;b=k;}
main()
{ int a=1,b=2,*x=&a,/y=&b;
fun(x,y);
printf(\\(B)
A. 2 1
B. l 2
C. 编译出错
D. 0 0
解析:本题考查函数调用时的参数传递。分析题目可知fun函数的形参是指向实参的指针,但main()函数中调用flm()函数时,实参是指针变量x、y(分别为指向a和b的指针),a、b的值在函数调用前后未发生变化,因而a=1,b=2,即输出1 2。
6.以下叙述中正确的是( )。(A)
A. C程序中注释部分可以出现在程序中任意合适的地方
B. C程序的书写格式是固定的,每行只能写一条语句
C. 构成C程序的基本单位是函数,所有函数名都可以由用户命名
D. 在对C语言程序进行编译时,可以发现注释行中的拼写错误
解析:本题考查的是C语言程序设计的初步知识。选项A),程序中/*…*/表示注释部分,注释只是给人看的,对程序的编译和运行不起作用,可以在程序中的任何位置;选项B),C语言的书写格式自由,一行可以写多条语句,一条语句也可以写在不同行上;选项C),一个C程序中必须有且只能有一个由“main”命名的主函数,其他函数由用户自行命名:选项D),程序的注释仅仅是提供阅读之用,并不参与程序的编译,所以编译也就不会发现注释行中的错误。
7.设变量x和y均已正确定义并赋值,以下if语句中,在编译时将产生错误信息的是( )。
C
解析:选项C)中,if(x)y)后面的“x–”是一个表达式而不是一个语句,所以在编译时会产生错误信息。
8.有以下程序:
#include<stdio.h>
main()
{
char s[]={\\(B)
A. 0
B. 2
C. 3
D. 5
解析:程序首先给字符数组s[]赋值为“012xy”,for循环语句的功能是遍历字符串,通过if条件语句对字符串中的小写字母计数,在符串中小写字母为2个,即n=2。因此B选项正确。
9.有以下程序:
#include<stdio.h>
main()
{int a=2,b;
b=a<<2:
printf(\\(D)
A. 2
B. 4
C. 6
D. 8
解析:本题考查位运算符,题目中将a向左移两位,左移两位表示乘以4,所以答案为8,选项D正确。
10.数据库管理系统是( )。(B)
A. 操作系统的一部分
B. 在操作系统支持下的系统软件
C. 一种编译系统
D. 一种操作系统
解析:数据库管理系统是数据库的机构,它是一种系统软件,负责数据库中数据组织、数据操纵、数据维护、控制及保护和数据服务等。是一种在操作系统之上的系统软件。
11.对序线性表(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,这时两者相等,即查找成功。
12.以下叙述中正确的是( )。(C )
A. C语言比其他语言高级
B. C语言可以不用编译就能被计算机识别执行
C. C语言以接近英语国家的自然语言和数学语言作为语言的表达形式
D. C语言出现的最晚,具有其他语言的一切优点
解析:此题考查的是C语言的基本特点。C语言是一种高级编程语言,但并不是比其他语言高级;C语言源程序必须经过编译生成目标文件才能被计算机识别执行;C语言出现比较晚,它既有优点也有缺点,而并不是具有其他一切语言的优点。
13.设有下面的定义:
struct st
{ int a;
float b:
}d;
int*p;
要使p指向结构变量d中的a成员,正确的赋值语句是( )。(D)
A. *p=d.a;
B. p=&a;
C. p=d.a;
D. p=&d.a;
解析:本题主要考查按结构数组元素方式引用结构成员。结构体变量的成员引用方法有3种:①结构体变量名.成员名;②指针变量名->成员名;③(*指针变量名).成员名。因为p是指针变量,所以应该将地址值赋给p。
14.设有以下语句:
char x=3,y=6,z;
z=x^y<<2;
<本文档预览:3600字符,共16164字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载