国家二级(C语言)机试模拟试卷486
选择题
1.有以下程序:
#include<stdio.h>
main()
{
int a=1,b=0;
for(;a<5;a++)
{
if(a%2==0)break;
continue;
b+=a:
}
printf(\\(A)
A. 0
B. 1
C. 10
D. 4
解析:第一次循环,a=1,a%2!=0所以执行break,整个循环结束,所以b=0。
2.数据管理技术发展的三个阶段中,( )没有专门的软件对数据进行管理。
Ⅰ.人工管理阶段
Ⅱ.文件系统阶段
Ⅲ.数据库阶段(A)
A. 仅Ⅰ
B. 仅Ⅲ
C. Ⅰ和Ⅱ
D. Ⅱ和Ⅲ
解析:数据管理技术发展的三个阶段中,只有人工管理阶段,没有操作系统,没有管理数据的软件,数据处理方式是批处理。在文件系统阶段,操作系统中已经有了专门数据管理软件,一般称为文件系统。在数据库系统阶段,出现了统一管理数据的专门软件系统,即数据库管理系统。
3.以下程序:
#include
main()
{ char str[10];
scanf(“%s”,&str);
printf(“%s\ntt str):
}
运行上面的程序,输入字符串how are you,则程序的执行结果是( )。(A)
A. how
B. how are you
C. h
D. howareyou
解析:当从键盘输入how are you时,由于scanf输入函数的特点是遇到空格时结束读入字符,因此,该程书只将how这3个字符送到了字符数组str中,并在其后自动加上结束符“\0”。
4.下列数据结构中,能够按照“先进后出”原则存取数据的是( )。(B)
A. 循环队列
B. 栈
C. 队列
D. 二叉树
解析:栈是按“先进后出”的原则组织数据的。队列是按“先进先出”的原则组织数据的。
5.有以下程序
#include
main()
{ char *mm[4]={\\(A)
A. abcd234op8
B. abcd1234mnop5678
C. a2o8
D. a1m5
解析:输出语句\\
6.有以下程序:
#include<stdio.h>
int k=5:
void f(int*s)
{s=&k;}
main()
{
int m=3,*p=&m;
f(p);
printf(\\(A)
A. 3 3
B. 5 5
C. 3 5
D. 5 3
解析:考查函数传参。C语言中,数据只能从实参单向传递给形参,指针作为函数参数时,形参仍然作为实参的副本被赋值,形参指针变量的指向改变不能影响实参指针变量的指向,结果不变,答案选A。
7.结构化程序设计的基本原则不包括( )。(A)
A. 多态性
B. 自顶向下
C. 模块化
D. 逐步求精
解析:结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,所以选择A
8.软件生命周期可分为定义阶段、开发阶段和维护阶段,下面不属于开发阶段任务的是( )。(C)
A. 测试
B. 设计
C. 可行性研究
D. 实现
解析:开发阶段包括分析、设计和实施两类任务。其中分析、设计包括需求分析、总体设计和详细设计3个阶段,实施则包括编码和测试两个阶段,选项C不属于开发阶段。
9.数据库应用系统中的核心问题是( )。(A)
A. 数据库设计
B. 数据库系统设计
C. 数据库维护
D. 数据库管理员培训
解析:数据库应用系统中的核心问题是数据库的设计。
10.待排序的关键码序列为(15,20,9,30,67,65,45,90),要按关键码值递增的顺序排序,采取简单选择排序法,第一趟排序后关键码15被放到第( )个位置。(A)
A. 2
B. 3
C. 4
D. 5
解析:选择排序的基本思想是扫描整个线性表,从中选出最小的元素,将它交换到表的最前面,然后对剩下的子表采用同样的方法,直到子表为空。所以第一趟排序后,将选出最小的元素9放在第一个位置,元素15则放在第二个位置。
11.执行以下程序段后,w的值为( )。
int w=’A’,x=14,y=15;
w=((x || y)&&(w<’a’));(C)
A. -1
B. NULL
C. 1
D. 0
解析:字符变量w的初值为字符“’A’”,其ASCII码值为65,字符“’a’”的ASCII码值为97,所以关系表达式“w<’a’”的值为1:变量x=14,变量y=15,“x||y”为或,x、y均为真,所以x||y的结果1。因而逻辑表达式“(x || y)&&(w<’a’)”的值为1。
12.下列叙述中正确的是( )。(A)
A. 在switch语句中,不一定使用break语句
B. 在switch语句中必须使用default
C. break语句必须与switch语句中的case配对使用
D. break语句只能用于switch语句
解析:default语句在switch语句中可以省略,所以B)错误;switch语句中并非每个case后都需要使用break语句,所以C)错误;break语句还可以用于for等循环结构中,所以D)错误。
13.以下程序的输出结果是( )。
#include main()
struct st{p=aa;
{int x;int*y;}*p; printf(\\(C)
A. 1
B. 2
C. 3
D. 4
解析:程序首先将指针p指向结构体数组aa的首地址,通过p->x引用了结构体数组aa[0]的第一个成员2;++(p->x)是将p识的值加l,所以输出结果为3。
14.有以下程序:
#include<stdio.h>
main()
{FILE*fp;int a[10]={1,2,3},i,n;
tp=fopen(\\(D)
A. 321
B. 12300
C. 1
D. 123
解析:程序首先将数组a[10]中的元素1、2、3分别写入了文件d1.dat文件中,然后又
本文档预览:3600字符,共14467字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载