国家二级(C语言)机试模拟试卷482
选择题
1.若有说明:typedef struct{int a;char c;}w;,则以下叙述正确的是( )。(D)
A. 编译后系统为w分配5个字节
B. 编译后系统为w分配6个字节
C. 编译后系统为w分配8个字节
D. 编译后系统不为w分配存储空间
解析:w是一个自定义类型,不是变量,故编译后系统不为w分配存储空间。当w定义为结构体变量时才会为其分配存储空间。
2.下列叙述中正确的是( )。(A)
A. 程序执行的效率与数据的存储结构密切相关
B. 程序执行的效率只取决于程序的控制结构
C. 程序执行的效率只取决于所处理的数据量
D. 以上说法均错误
解析:程序执行的效率与数据的存储结构、数据的逻辑结构、程序的控制结构、所处理的数据量等有关。
3.需求分析阶段的任务是( )。(D)
A. 软件开发方法
B. 软件开发工具
C. 软件开发费用
D. 软件系统功能
解析:需求分析是软件定义时期的最后一个阶段,它的基本任务就是详细调企现实世界要处理的对象,充分了篇原系统的工作概况,明确用户的各种需求,然后在这些基础上确定新系统的功能。
4.以下程序的输出结果是( )。
#include<stdio.h>
main()
{ int a=1,b=3;
ifi[(++a<0)&&!(b–<=0))
printf(’’%d,%d\n’’,a,b);
else
printf(’’%d,%d\n’’,b,a);
}(C)
A. 2,2
B. 1,3
C. 3,2
D. 3,1
解析:解答本题的关键在于if语句条件中的表达式。初始时“a=1,b=3”,所以“++a=2>0”,因此“++a<0”为假;因为是进行逻辑与(&&)运算,在&&的一个运算对象为假的前提下不用判断第二个运算对象的真假,就可以直接得出整个表达式的值为逻辑0,所以执行else语句。
5.设有定义:char P[]={’1’,’2’,’3’},*q=p;,以下不能计算出一个char型数据所占字节数的表达式是 ( )。(A)
A. sizeof(P)
B. sizeof(char)
C. sizeof(*q)
D. sizeof(p[0])
解析:根据题目中的定义可以知道sizeof(p),计算的是数组p中所有元素所占用的字节数,而不是chat。型数据所占字节数。
6.下述程序的输出结果是( )。
#include<stdio.h>
void main()
{int a[5]={1,2,3,4,5};
int*p=a,**q=&p;
printf(’’%d’’,*(p++));
printf(\\(D)
A. 22
B. 11
C. 34
D. 12
解析:程序首先定义了一个指向一维数组a的指针p,一个指向指针变量p的指针变量q,输出*(p++)是先输出*p即a[0]的值,再将指针p指向数组的下一个元素a[1],输出**q是输出指针p所指向单元的内容,即a[1]的值。
7.以下对联合类型叙述正确的是( )。(B)
A. 可以对联合变量名直接赋值
B. 使用联合变量的目的是为了节省内存
C. 任何一个联合变量可以同时引用联合中的不同成员
D. 联合类型定义中不能同时出现结构类型的成员
解析:由于联合体是同一存储区域由不同类型的变量共享,所以不可以直接对联合体变量名进行赋值,且联合体中的空间在某一时刻只能保持某一成员的数据;另外合体中可以出现结构类型的成员。
8.有以下程序段
char ch;int k;
ch=’a’:k=12;
printf(\\(D)
A. 因变量类型与格式描述符的类型不匹配输出无定值
B. 输出项与格式描述符个数不符,输出为零值或不定值
C. a,97,12k=12
D. a,97,k=12
解析:在用基本输出函数printf时,格式说明与输出项的个数应该相同。如果格式说明的个数少于输出项的个数,多余的输出项不予输出;如果格式说明个数多于输出项个数,则对于多余的格式项输出不定值或0。
9.若有定义int x,y; 并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++) : (y++)中的条件表达式(x-y) 等价的是( )。(A)
A. (x-y0)
B. (x-y<0)
C. (x-y>0)
D. (x-y==0)
解析:考查条件表达式。条件表达式的形式为: 表达式1 ? 表达式2 : 表达式3 ,计算\\
10.数据流图中带有箭头的线段表示的是( )。(D)
A. 控制流
B. 事件驱动
C. 模块调用
D. 数据流
解析:数据流图中带箭头的线段表示的是数据流,即沿箭头方向传送数据的通道,一般在旁边标注数据流名。
11.有如下程序:
#include
main()
{
int i;
for(i=0;i<5;i++)
putchar(’9’-i);printf(\\(B)
A. 54321
B. 98765
C. ’9\\
D. ’43210’
解析:本题执行过程为:i=0,输出字符9,在i<5的情况下,依次输出字符8、7、6、5。在i=5时,退出for循环。最后显示在命令窗口结果为98765。
12.有以下程序:
#include<stdio.h>
int f(int n)
{
static int a=1:
n+=a++;
return n;
}
main()
{
int a=3,s;
s=f(a);s=s+f(a);
printf(\\(C)
A. 7
B. 8
C. 9
D. 10
解析:在函数f中,整型变量a为静态变量,所以每次调用函数f时不再为a重新赋值,而且a的值只有在程序结束时才被释放。第一次调用f后n=4,a=2;第二次调用时,a已经变成2了,所以结果为4+5=9。
13.有以下程序:
#include
struct tt
{ int x;struct tt*y;)*p;
struct tt a[4]={20,a+1,15,a+2,30,a+3,17,a};
main()
{ int i;
p=a;
for(i=1;i<=2;i++
本文档预览:3600字符,共16300字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载