国家二级(C语言)机试模拟试卷405
选择题
1.有以下程序:
#include<stdio.h>
#define N 4
void fun(int a[][N],int b[])
{
int i;
for(i=0;i<N;i++)
b[0]=a[i][i];
}
main()
{
int x[][N]={{1,2,3},{4},{5,6,7,8},{9,10}},y[N],i;
fun(x,y);
for(i=0;i<N;i++)
printf(\\(B)
A. 1 2 3 4
B. 1 0 7 0
C. 1 4 5 9
D. 3 4 8 0
解析:数组x有4列。fun函数中for循环的作用是将二维数组前4行的对角线元素分别赋给b[0],b[1],b[2],b[3]。在主函数中,二维数组初始化为{1,2,3},{4},{5,6,7,8},{9,10},所以可以看出对角线元素为1 0 7 0。
2.设有如下三个关系表:
(B)
A. T=R∩S
B. T=R∪S
C. T=R×S
D. T=R/S
解析:两个相同结构关系的“并”是由属于这两个关系的元组组成的集合。
3.以下关于C语言的叙述中正确的是( )。(A)
A. 预处理命令通常位于函数体外面,但也可以位于函数体中间
B. C语言中的变量定义须在其他语句之前
C. 在C语言程序的书写中,一个语句必须单占一行
D. 一个C语言源程序可以由一个或多个源文件组成,每个源文件可由自己的main函数
解析:源程序中可以有预处理命令(include命令仅为其中的一种)。C语言中的变量可以在使用之前的任何位置进行定义。C语言程序的书写中,多个语句可以位于一行,但为了增强可读性,一般每行只有一条语句。一个C语言源程序可以由一个或多个源文件组成,但仅可以有一个main函数。
4.以下选项中不合法的标识符是( )。(A)
A. &a
B. FOR
C. print
D. 0
解析:C语言中标识符由字母、下划线、数字组成,且开头必须是字母或下划线。另外,关键字不能作为标识符。因为C语言中区分大小写,所以B)选项中的\\
5.设有定义:char s[81];int i=0;,以下不能将一行(不超过80个字符)带有空格的字符串正确读入的语句或语句组是( )。
C
解析:字符串的输入不能使用scanf(“%s”,s);而应该使用gets(s)。
6.有以下程序:
#include<stdio.h>
struct st
{
int x:
int y;
} a[2]={5,7,2,9};
main()
{
printf(\\(C)
A. 10
B. 18
C. 14
D. 63
解析:首先是定义结构体st,st中共有两个整型成员x,y。然后定义一个st类型的数组a,a的长度为2,即数组中含有两个st类型的元素,分别是a[0]和a[1]。对a进行初始化,此题是按照存储顺序进行初始化,即将5赋给a[0]中的x(即a[0].x=5),将7赋给a[0]中的y(即a[0].y=7),将2赋给a[1]中的x(即a[1].x=2),将9赋给a[1]中的y(即a[1].y=9)。执行main函数,输出表达式a[0].y*a[1].x的值,即7*2的值14。
7.若函数调用时的实参为变量,以下关于函数形参和实参的叙述中正确的是( )。(D)
A. 函数的实参和其对应的形参共占同一存储单元
B. 形参只是形式上的存在,不占用具体存储单元
C. 同名的实参和形参占同一存储单元
D. 函数的形参和实参分别占用不同的存储单元
解析:在C语言中,函数的实参单元与形参单元在内存中分配不同的存储单元。在调用函数时,给形参分配临时存储单元,并将实参对应的值传递给形参,在被调用函数中对形参存储单元中的值进行运算,最后通过return语句把函数值返回调用函数。当调用结束后,形参单元被释放,实参单元仍保留并维持原值。
8.下列关于逻辑运算符两侧运算对象的叙述中正确的是( )。(D)
A. 只能是整数0或1
B. 只能是整数0或非0整数
C. 可以是结构体类型的数据
D. 可以是任意合法的表达式
解析:逻辑运算符两侧的运算对象可以是任意合法的表达式。逻辑表达式的运算结果或者为1(“真”),或者为0(“假”)。
9.设有定义:
struct complex
{ int real,unreal;}datal={1,8},data2;
则以下赋值语句中错误的是( )。
C
解析:本题主要考查结构体变量的定义与初始化。题目中定义了complex类型的结构体变量data1和data2,并对data1进行了初始化。可以用一个结构体变量的成员对另一个结构体变量的成员赋值。
10.计算机软件包括( )。(D)
A. 算法和数据
B. 程序和数据
C. 程序和文档
D. 程序、数据及相关义档
解析:计算机软件由两部分组成:①机器可执行的程序和数据;②机器不可执行的,与软件开发、运行、维护、使用等有关的文档。
11.以下不合法的数值常量是( )。(A)
A. 8.0E0.5
B. 1el
C. 011
D. Oxabed
解析:A选项中E后面的指数必须为整型数据,所以A错误。C选项中011表示的是八进制常量,D选项的0xabcd表示的是十六进制常量。
12.下列叙述中错误的是( )。(A)
A. 一个C语言程序只能实现一种算法
B. C程序可以由多个程序文件组成
C. C程序可以由一个或多个函数组成
D. 一个C函数可以单独作为一个C程序文件存在
解析:一个C程序可以有一个或多个程序文件,所以也可以有一个或多个函数,选项A)正确;除了main函数不能被其他函数调用之外,用户自定义函数可以调用其他任意函数,选项B)错误;函数是一个独立的模块,不同函数之间的定义相互没有影响,所以标识符可以相同,选项C)错误;函数体内部只可以调用但是不可以定义其他函数,选项D)错误;答案选A)。
13.下列叙述中错误的是( )。(C)
A. C语句必须以分号结束
B. 复合语句在语法上被看作一条语句
C. 空语句出现在任何位置都不会影响程序运行
D. 赋值表达式末尾加分号就构成赋值语句
解析:C语言规定每条语句和数据定义的最后必须有一个分号,分号是C语句的必要组成部分。复合语句也称为“语句块
本文档预览:3600字符,共14164字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载