国家二级(C语言)机试模拟试卷466
选择题
1.在数据库系统的组织结构中,下列( )映射把用户数据库与概念数据库联系了起来。(A)
A. 外模式/模式
B. 内模式/外模式
C. 模式/内模式
D. 内模式/模式
解析:数据库有两层映像,即外模式/模式和模式/内模式映像。模式/内模式映像定义数据库全局逻辑结构与存储结构之间的对应关系。
2.以下叙述中错误的是( )。(B)
A. C程序经过编译、链接步骤之后才能形成一个真正可执行的二进制机器指令文件
B. C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
C. 用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中
D. C语言源程序经编译后生成后缀为.obj的目标程序
解析:C语言程序编译时将每条可执行语句转换为二进制的机器指令,但非执行语句(如注释语句)不被编译。所以选项B错误。
3.下列二维数组初始化语句中,正确且与语句inta[][3]={1,2,3,4,5}等价的是( )。
B
解析:此题考查的是二维数组的初始化。题干中数组a的第二个下标为3,由此可知数组a是一个2行3列的数组,初始化时未赋初值的元素的值自动为0,所以与选项B)是等价的,最后一个元素的值为0。
4.判断字符串s1是否大于字符串s2,应该使用( )。(C)
A. if(strcmp(s1,s2)<0)
B. if(s1>s2)
C. if(strcmp(s2,s1)<0)
D. if(strcmp(s1,s2))
解析:本题考查字符串比较函数strcmp(),调用彤式:strcmp(str+1,str+2),其中str+1、str+2分别是字符串存储区的首地址,函数功能:比较字符串str1和str2,当str1str2,返回值为正数。注意:不能使用关系运算符比较两个字符串的大小。
5.下面程序的运行结果是( )。
y=5;x=14;y–((x=3*y,x+6),x—1);
printf(\\(C )
A. x=27,y=27
B. x=12,y=13
C. x=15,y=14
D. x=y=27
解析:本题考查的是逗号表达式。逗号表达式的求解步骤是先求解表达式1,然后依次求解表达式2,直到表达式N的值。整个逗号表达式的值就是最后一个表达式N的值。表达式(x=3*y,x+6)中,x=15。表达式y=x—1=14。
6.若语句“t=fun(fun(x,y,a),(a+b,a+c),x+y+z);”对fun函数的调用正确,则fun函数的形参个数为( )。(A)
A. 3
B. 4
C. 5
D. 6
解析:本题考查函数调用时的参数个数。在函数调用时,实参必须和形参的个数、类型一一对应。但函数的计算结果只有一个值,因而fun函数的参数个数为3。
7.有以下程序:
#include<stdio.h>
void fun(int p)
{
int d=2;
p=d++;
printf(\\(C)
A. 32
B. 12
C. 21
D. 22
解析:C语言中函数参数传递满足“单向传递”,实现传递值的功能,实参能传给形参,形参却不能传回给实参。fun函数体内输出p的值为2,并不影响到fun函数外a的值,a的值在main函数内依然为1。
8.有以下函数:
int fun(char*x,char*y)
{ int n=0;
while((*x==*y)&&爿c X!=‘\0’){x++;y++;n++;}
return II;
}
函数的功能是( )。(C)
A. 将y所指字符串赋给x所指存储空间
B. 查找X和y所指字符串中是否有‘\0’
C. 统计X和y所指字符串中最前面连续相同的字符个数
D. 统计x和y所指字符串中相同的字符个数
解析:本题中由循环条件可知遇到‘\0’或x与y所指的字符的值不等中的一个条件时就结束,所以功能是统计x和y所指字符串中最前面连续相同的字符个数。
9.有以下程序:
#include
int fun()
{ static int x=1:
x*=2:
return x;
}
main()
{ int i,s=1;
for(i=1;i<=3;i++)s*=fun();
printf(“%d\n”,s);
}
程序运行后的输出结果是( )。(D)
A. 10
B. 30
C. 0
D. 64
解析:本题目中静态局部变量x,在静态存储区内分配存储单元。在程序整个运行期间都不释放。所以第一次循环s的值为2,第二次循环中,返回的x的值为4,所以s的值为8,第三次循环,返心的x的值为8,所以s的值为64。
10.设有说Nint(*ptr)[M];其中的标识符ptr是( )。(C)
A. M个指向整型变量的指针
B. 指向M个整型变量的函数指针
C. 一个指向具有M个整型元素的一维数组的指针
D. 具有M个指针元素的一维指针数组,每个元素都只能指向整型变量
解析:根据C语言的语法规则可知,int(*ptr)[M]中的标识符ptr是一个指向具有M个整型元素的一维数组指针。
11.以下叙述中正确的是( )。(A)
A. 计算机只接收由0和1代码组成的二进制指令或数据
B. 计算机只接收由0和1代码组成的十进制指令或数据
C. 计算机可直接接收并运行C源程序
D. 计算机可直接接收并运行任意高级语言编写的源程序
解析:二进制数中只有两个字符0和1,表示具有两个不同稳定状态的元器件。例如,电路中有无电流,有电流用1表示,无电流用0表示。类似的还比如电路中电压的高低,晶体管的导通和截止等。二进制数运算简单,大大简化了计算中运算部件的结构,故选项A正确。
12.有以下程序:
#include
main()
{ int a1,a2;char c1,c2;
scanf(”%d%c%d%c”,&a1,&c1,&a2,&c2);
prinff(“%d,%c,%d,%c”,a1,c1,a2,c2);
}
若想通过键盘输入,使得a1的值为12,a2的值为34,c1的值为字符a,c2的值为字符b,程序运行后的输出结果是:12,a,34,b。则正确的输入格式是(以下一代表空格,代表回车)( )。(D)
A. 12一a34一一b
B. 12一a一34一b
C. 12,a,34,b
D. 12a34b
解析:在输入多个数据时,若
本文档预览:3600字符,共16099字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载