国家二级(C语言)机试模拟试卷525
选择题
1.if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是( )。(D)
A. 必须是逻辑值
B. 必须是整数值
C. 必须是正数
D. 可以是任意合法的数值
解析:if语句中的表达式可以是任意合法的数值,如常量、变量表达式。所以D选项正确。
2.以下程序段中的变量已正确定义:
for( i=0; i<4; i++,i++ )
for( k=1; k<3; k++ ); printf(\\(C)
A. **
B. ****
C. *
D. ********
解析:由于内层循环\\tfor( k=1; k<3; k++)后面直接跟了空语句\\
3.若有说明和语句:char str[]=\\(A)
A. ’\\\\0’
B. ’o’
C. ’o’的地址
D. 不确定的值
解析:语句\\
4.在数据库系统的内部结构体系中,索引属于 ( )。(B)
A. 模式
B. 内模式
C. 外模式
D. 概念模式
解析:内模式又称物理模式,它给出了数据库物理存储结构与物理存取方法,如数据存储的文件结构、索引、集簇及hash等存取方式与存取路径,内模式的物理性主要体现在操作系统及文件级上,它还未深入到设备级上(如磁盘及磁盘操作)。
5.若语句“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。
6.fgets(str,n,fp)函数从文件中读入一个字符串,以下错误的叙述是( )。(C)
A. 字符串读入后会自动加入’\0’
B. fp是指向该文件的文件型指针
C. fgets函数将从文件中最多读入n个字符
D. fgets函数将从文件中最多读入n-1个字符
解析:字符串输入函数fgetsO的调用形式为:fgets(s.n,fp)。s可以是一个字符数组名,或是指向字符串的指针;n为要读取的最多的字符个数:fp是指向该文件的文件型指针。字符串输入函数的功能是:从fp所指向的文件中读取长度不超过n-1个字符的字符串,并将该字符串存放到字符数组s中。
7.下列排序方法中,最坏情况下比较次数最少的是( )。(D)
A. 冒泡排序
B. 简单选择排序
C. 直接插入排序
D. 堆排序
解析:冒泡排序与简单插入排序与简单选择排序法在最坏情况下均需要比较n(n—1)/2次,而堆排序在最坏情况下需要比较的次数是nlog2n。
8.下列叙述中正确的是( )。(B)
A. 调用printf()函数时,必须要有输出项
B. 使用putchar()函数时,必须在之前包含头文件stdio.h
C. 在C语言中,整数可以以二进制、八进制或十六进制的形式输出
D. 调节getchar()函数读入字符时,可以从键盘上输入字符所对应的ASCII码
解析:选项A),若printf函数没有输出项,且格式字符串中不含格式信息,则输出的是格式字符串本身,若格式字符串含有格式信息,运行时则出现错误提示;选项C),在C语言中,整数可以十进制、八进制或十六进制的形式输出;选项D),getchar函数是从标准输入设备读取一个字符。
9.以下选项中,能用作用户标识符的是( )。(A)
A. _0_
B. 8_8
C. void
D. unsigned
解析:C语言中标识符由字母、下划线、数字组成,且开头必须是字母或下划线。另外,关键字不能作为标识符。B中以数字8开头,所以错误。C与D中用的是关键字void与unsigned,所以错误。
10.以下程序的输出结果是( )。
#include<Stdio.h>
struct st
{int x;int*y;)*p;
int dt[4]={1,2,3,4};
struct st aa[4]={2,&dt[0],3,&dt[0],4,
&dt[0],5,&dt[0],};
main()
{p=aa;
printf(\\(C)
A. 1
B. 2
C. 3
D. 4
解析:程序首先将指针p指向结构体数组aa的首地址,通过p->x引用了结构体数组aa[0]的第一个成员2;++(p->x)是将p->x的值加1,所以输出结果为3。
11.在数据库管理技术的发展中,数据独立性最高的是( )。(C)
A. 人工管理
B. 文件系统
C. 数据库系统
D. 数据模型
解析:在人工管理阶段,数据无法共享,冗余度大,不独立,完全依赖程序;在文件系统阶段,数据共享性差:在数据库系统阶段,共享性好,独立性高。
12.设有定义:char s[10];int i=0;,以下不能将一行(不超过100个字符)带有空格的字符串正确读入的语句或语句组是( )。(B )
A. gets(s);
B. scanf(\\
C. while((s[i++]=getchar0)!=’\\
’);s[i]=’\\\\0’;
D. do{scanf(\\
解析:本题考查标准输入输出函数和循环语句。gets(s)函数的作用是将输入的字符读入字符串s,直到遇到回车。而scanf()函数接收字符串时的结束标志为回车或者空格。因此选项B)不能,选项C)和选项D)中按字符逐个读入字符串s中,直到读入的字符是换行符为止,因此正确。
13.在数据管理技术发展的三个阶段中,数据共享最好的是( )。(D)
A. 人工管理阶段
B. 文件系统阶段
C. 数据库系统阶段
D. 三个阶段相同
解析:在最坏的情况下,堆排序需要比较的次数为O(nlog2n),所以选择D)。
14.下列方法中,属于白盒法设计测试用例的方法的是( )。(C)
A. 错误推测
B. 因果图
C. 基本路径测试
D. 边界值分析
解析:白盒测试方法也称为结构测试或逻辑测试,主要方法有逻辑覆盖测试、基本路径测试等。
15.有以下程序
#define F(X,Y)(X)*(Y)
main()
{ int a=3,b=4;
printf(\\(A )
A. 12
B. 15
C. 16
D. 20
解析:此题考查的是编译预处理命令以及自加运算符。F(a++’b++)先取a和b的值,参加运算,再把a和b的值分别加1,所以F(a++,b++)=F(3,4)=3*4=12。
16.下列定义变量的语句中错
本文档预览:3600字符,共15546字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载