国家二级(C语言)机试模拟试卷445
选择题
1.设有定义:char*c;,以下选项中能够使字符型指针C正确指向一个字符串的是( )。(A)
A. char str[]=\\
B. scanf(\\
C. c=getchar();
D. *c=\\
解析:B选项中scanf()函数是将c定义为一个字符数组的数组名,C选项中是将c定义为一个字符型变量,D项是在指针定义时为它赋值,否则是不合法的,所以BCD三项都不正确。A选项定义字符数组str,再将字符数组str的首地址赋给字符型指针c,正确。
2.一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是( )。(C)
A. 一对一
B. 一对多
C. 多对多
D. 多对一
解析:因为一个人可以操作多个计算机,而一台计算机又可以被多个人使用,所以两个实体之间是多对多的关系。
3.有以下程序
#include
main()
{int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=0;
for(i=0;i<3;i++)
for(j=2;j>=i;j–)t+=[i][j];
printff\\(C)
A. 4
B. 3
C. 8
D. 9
解析:这道题主要考查的是二维数组的有关知识。在两层for循环语句中,累加上三角元素,所以程序执行的过程为t=b[0][0]+b[0][1]+b[0][2]+b[1][1]+b[1][2]+b[2][2]=8。
4.若己定义的函数有返回值,则以下关于该函数调用的叙述中错误的是( )。(D)
A. 函数调用可以作为独立的语句存在
B. 函数调用可以作为一个函数的实参
C. 函数调用可以出现在表达式中
D. 函数调用可以作为一个函数的形参
解析:本题考查函数调用的有关知识点。函数调用①可以出现在表达式中;②可以作为独立的语句存在;③可以作为一个函数的实参。
5.有以下程序:
#include
main()
{ int i,j,x=0;
for(i=0;i<2;i++)
{x++;
for(j=0;j<=3;j++)
{ if(j%2==0)continue;x++;}
x++:
}
printf(\\(C)
A. x=4
B. x=6
C. x=8
D. x=12
解析:第一次循环:i=0,执行x++后x=1,执行内层循环j=0,由于j%2!=0时才执行x++,即只有j取1和3时,执行x++,此时x=1+1+1=3,跳出内层循环,执行下一条x++,x=4,第二次循环:x=1时,重复上述循环,共执行两次循环,故x最终结果是4*2=8。
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.下列数据结构中,能用二分法进行查找的是( )。(D)
A. 无序线性表
B. 线性链表
C. 二叉链表
D. 顺序存储的有序表
解析:二分法查找只适用于顺序存储的有序表,表中的元素按值从小到大排列。
8.如果进栈序列为A,B,C,D,则可能的出栈序列是 ( )。(B )
A. C,A,D,B
B. B,D,C,A
C. C,D,A,B
D. 任意顺序
解析:栈的操作原则为后进先出。选项B)中出栈顺序可按“A进,B进,B出,C进,D进,D出,C出,A出”实现。
9.数据流图中带有箭头的线段表示的是( )。(D)
A. 控制流
B. 事件驱动
C. 模块调用
D. 数据流
解析:数据流图中带箭头的线段表示的是数据流,即沿箭头方向传送数据的通道,一般在旁边标注数据流名。
10.有以下程序:
#include<stdio.h>
main()
{
int i,j,x=0;
for(i=0;i<2;i++)
{
x++;
for(j=0;j<=3;j++)
{
if(j%2==0)continue;x++;
}
x++:
}
printf(\\(C)
A. x=4
B. x=6
C. x=8
D. x=12
解析:第一次循环:i=0,执行x++后x=1,执行内层循环j=0,由于j%2!=0时才执行x++,即只有j取1和3时,执行x++,此时x=1+1+1=3,跳出内层循环,执行下一条语句x++,x=4,第二次循环:x=1时,重复上述循环,共执行两次循环,故x最终结果是4*2=8。
11.在一个C源程序文件中所定义的全局变量,其作用域为( )。(A)
A. 由具体定义位置和extem说明来决定范围
B. 所在程序的全部范围
C. 所在函数的全部范围
D. 所在文件的全部范围
解析:全局变量的作用域是从声明处到文件的结束。所以选择A。
12.设有一联合体变量定义如下:
union data
{ long a;
float b:
int c;
char d;
};
union data x;
执行下列语句后,正确的联合体变量x的值是( )。
x.a=111111;
x.b=2222;
x.c=2.1 546;
x.d=’R’:(D)
A. 111111
B. 2222
C. 2.1 546
D. R
解析:本题主要考查的知识点是联合体的内存使用。联合体与结构体的定义相同,其本质区别就在于内存使用方式的不同。联合体所占用的内存空间为最长的成员所占用的空间,各个成员分量全部是从低地址方向开始使用内存单元;联合体中的空间在某一时刻只能保持某一个成员的数据,所以本题执行完一系列赋值后,只得到最后执行的字符’R’。
13.在三级模式之间引入两层映像,其主要功能之
本文档预览:3600字符,共14519字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载