国家二级(C语言)机试模拟试卷495
选择题
1.有以下程序:
#include<stdio.h>
main()
{
int x=1,y=2,z=3;
if(x>y)
if(y<z)printf(\\(D)
A. 3 3 1
B. 4 1
C. 2
D. 1
解析:else子句总是与最前面最近的不带else的if相结合,与书写格式无关,所以本题中的else语句与第二个if语句配对,且if和else都在第一个if的控制范围内。首先判断x>y不成立,直接退出第一个if语句,执行printf(\\
2.下列叙述中错误的是( )。(A)
A. 一个C语言程序只能实现一种算法
B. C程序可以由多个程序文件组成
C. C程序可以由一个或多个函数组成
D. 一个C函数可以单独作为一个C程序文件存在
解析:一个C程序可以有一个或多个程序文件,也可以有一个或多个函数,所以一个C语言程序可以实现多种算法,答案选A
3.有以下程序:
main()
{int n=0;
do{n++;
printf(\\(C)
A.
B.
C.
D.
解析:本题考查do…while循环。在do…while构成的循环体中,总是先执行一次循环体,然后再求表达式的值。当执行完第三次循环时,得到n=3,while循环表达式仍然成立,接着执行直到n=4,表达式不成立,跳出循环,结束程序。
4.下列二叉树描述中,正确的是( )。(B )
A. 任何一棵二叉树必须有一个度为2的结点
B. 二叉树的度可以小于2
C. 非空二叉树有0个或1个根结点
D. 至少有2个根结点
解析:二叉树是由n≥0个结点的有限集合构成,此集合或者为空集,或者由一个根结点及两棵互不相交的左右子树组成,并且左右子树都是二叉树。二叉树可以是空集合,根可以有空的左子树或空的右子树。二又树不是树的特殊情况,它们是两个概念。
二叉树具有如下两个特点:
①非空二叉树只有一个根结点。
②每一个结点最多有两棵子树,且分别称为该结点的左子树与右子树。
5.数据库系统在其内部具有3级模式,用来描述数据库中全体数据的全局逻辑结构和特性的是( )。(B )
A. 外模式
B. 概念模式
C. 内模式
D. 存储模式
解析:概念模式,也称逻辑模式,是对数据库系统中全局数据逻辑结构的描述,是全体用户应用公共数据视图。它不涉及具体的硬件环境与平台,与具体的软件环境也无关。
6.有以下程序,其中%u表示按无符号整数输出( )。
main()
{unsigned int x=0xFFFF;/*x的初值为十六进制数*/
printf(\\(B)
A. -1
B. 65535
C. 32767
D. 0xFFFF
解析:因为%u表示按无符号整数输出,而x用十六进制表示为0xFFFF,所以输出无符号整数的最大值65535。
7.在printf的格式字符中,e格式字符的作用是( )。(C)
A. 以十六进制无符号形式输出整数
B. 以带符号的十进制形式输出整数
C. 以指数形式输出实数
D. 以字符形式输出,且只输出一个字符
解析:本题考查printf函数的格式。格式字符“e”或者“E”都表示以指数形式输出单精度或双精度数。
8.有以下程序:
#include<stdio.h>
main()
{
char s[]={\\(B)
A. 0
B. 2
C. 3
D. 5
解析:程序首先给字符数组s[]赋值为“012xy”,for循环语句的功能是遍历字符串,通过if条件语句对字符串中的小写字母计数,在符串中小写字母为2个,即n=2。因此B选项正确。
9.下列排序方法中,最坏情况下比较次数最少的是( )。(D)
A. 冒泡排序
B. 简单选择排序
C. 直接插入排序
D. 堆排序
解析:冒泡排序与简单插入排序与简单选择排序法在最坏情况下均需要比较n(n-1)/2次,而堆排序在最坏情况下需要比较的次数是nlog2
10.设Y为整型变鼍,A=I,A的地址为EF01;B=2,B的地址为EF02;执行语句B=&A;Y=&B:后Y的值 ( )。(D )
A. 1
B. 2
C. EF01
D. EF02
解析:&是取地址运算符,Y=&B是将B的地址赋给Y,因此Y值为EF01。
11.下列一维数组说明中,不正确的是( )。(A)
A. int N;
scanf(\\
B. float a[]={1,6,6,0,2};
C. #define S 10
int a[S];
D. #define S 10
int a[S+5];
解析:本题考查一维数组的赋值。一维数组的一般定义格式为:类型说明符数组名[常量表达式]。其中,“[]”中的内容可以是整型常量,也可以是整型表达式。选项A中的N是一个变量,所以错误。
12.下列叙述中正确的是( )。(A)
A. 在C程序的函数中不能定义另一个函数
B. 在C程序中main函数的位置是固定的
C. C程序中所有函数之间都可以相互调用
D. 每个C程序文件中都必须要有一个main函数
解析:在C程序中,main函数的位置可以任意,而且不管main函数位置怎么变化,程序都会以main函数作为入口,选项B)错误;每个C程序(而不是每个C程序文件)必须有且只能有一个main函数,选项D)错误;main函数不能被调用,选项C)错误;函数的定义不能放在另一个函数体内,但是声明可以,所以答案选A)。
13.有以下程序:
#include<stdio.h>
#include<string.h>
typedef struct{chat nanle[9];char sex;int sore[2];}STU;
STU f(STU a)
{STU b={\\(A)
A. Zhao,m,85,90,Qian,f,95,92
B. Zhao,m,85,90,Zhao,m,85,90
C. Qian,f,95,92,Qian,f,95,92
D. Qian,f,95,92,Zhao,m,85,90
解析:本题考查的是函数调用时的参数传递问题。程序在调用函数f时,传给函数f的参数只是结构变量c在栈中的一个拷贝,函数i-所做所有操作只是针对这个数据拷贝进行的修改,这些都不会影响变量c的值。
14.设有定义:
int x[2][3];
则以下关于二维数组x的叙述中错误的是( )。(C)
A. 元素x[0]可看作由3个整型元素组成的一维数组
本文档预览:3600字符,共15968字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载