国家二级C语言机试(选择题)模拟试卷345
选择题
1.下列选项中,不属于数据库管理的是( )。(D)
A. 数据库的建立
B. 数据库的调整
C. 数据库的监控
D. 数据库的校对
解析:数据库管理一般包括:数据库的建立、数据库的调整、数据库的重组、数据库的安全性控制与完整性控制、数据库的故障恢复和数据库的监控。
2.以下叙述中正确的是(B)
A. C程序中的每一行只能写一条语句
B. 简单C语句必须以分号结束
C. C语言程序中的注释必须与语句写在同一行
D. C语句必须在一行内写完
解析:C语言的书写格式自由,一行可写多条语句,一条语句也可写在不同行上。C语言注释是比较自由的,可以写在一行或者多行。C语言规定每条语句和数据定义的最后必须有一个分号,分号是C语句的必要组成部分。
3.我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令。关于转换以下说法错误的是(B)
A. 一条C语句可能会被转换成多条机器指令
B. 一条C语句对应转换成一条机器指令
C. 一条C语句可能会被转换成零条机器指令
D. 某种类型和格式的C语句被转换成机器指令的条数是固定的
解析:由C语言编写的程序,通过编译、链接转换成可以让机器识别的01二进制指令。这些二进制指令命令机器计算,这些就是机器指令,而C语苦的语句条数和机器指令的条数不是一对一的关系。
4.若变量已正确定义并赋值,则错误的赋值语句是( )。(D)
A. a+a+1:
B. a=sizeof(double);
C. a=d ‖ c;
D. a+1=a:
解析:赋值号“=”的左边必须是一个变量名。
5.定义无符号整数类为UInt,下面可以作为类UInt实例化值的是( )。
B
解析:只有B)选项369可以用无符号整数来表示和存储。A)选项-369有负号,选项C)0.369是小数都不能用无符号整数类存储。选项D)是一个整数集合得用数组来存储。
6.数据库系统中完成查询操作使用的语言是( )。(A)
A. 数据操纵语言
B. 数据定义语言
C. 数据控制语言
D. 数据并发语言
解析:数据库管理系统提供了相应的数据语言:
数据定义语言(DDL):该语言负责数据的模式定义与数据的物理存取构建。
数据操纵语言(DML):该语言负责数据的操纵,包括查询与增、删、改等操作。
数据控制语言(DCL):该语言负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能。
7.设二叉树的前序序列与中序序列均为ABCDEFGH,则该二叉树的后序序列为(A)
A. HGFEDCBA
B. ABCDEFGH
C. ABCDHGFE
D. DCBAHGFE
解析:前序遍历(DLR)是二叉树遍历的一种,也叫做先根遍历、先序遍历、前序周游,可记做根芹右;中序遍历(LDR)是二叉树遍历的一种,也叫做中根遍历、中序周游,可记做左根右;后序遍历(LRD)是二叉树遍历的一种,也叫做后根遍历、后序周游,可记做左右根。根据题中前序和中序序列均为ABCDEFGH,可画出二义树,该二叉树是一个子结点全部在右侧二义树,然后根据后序遍历方法,可得出后序遍历为HGFEDCBA。
8.关于C语言标识符,以下叙述中错误的是( )。(A)
A. 标识符可全部由数字组成
B. 标识符可全部由下画线组成
C. 标识符可全部由小写字母组成
D. 标识符可全部由大写字母组成
解析:c语言标识符只能由字母、数字、下画线构成,且只能以字母、下画线开头,故选项A不正确。
9.有如下程序段:
int*p,x,y=1;
p=&x;*p=10;x=*p+y;
执行该程序段后,x的值是( )。(B)
A. 10
B. 11
C. 12
D. 编译出错
解析:因为p指向x,*p=x,当*p=10时x=*p+y=10+1=11。
10.设有某函数的说明为:
int* func(int a[10],int n);
则下列叙述中,正确的是( )。(B)
A. 形参a对应的实参只能是数组名
B. 说明中的a[10]写成a[]或*a效果完全一样
C. func的函数体中不能对a进行移动指针(如a+ +)的操作
D. 只有指向10个整数内存单元的指针,才能作为实参传给a
解析:考查数组名作为函数参数。传递给形参的实参可以是数组名,还可以是指向该数组的指针变量,选项A错误;a[10]、a[]、*a做形参都是接受实参数组首地址,效果一样,选项B正确;数组名可以看作一个指针常量,对其进行自加自减运算相当于指针变量的自加自减,选项C错误;数组名作为函数参数时,只传递数组的首地址而不检查形参数组的长度,所以形参表中可以不给出形参数组的长度,形参数组和实参数组长度也可以不同,选项D错误。故答案选B。
11.以下选项中,能用作用户标识符的是( )。(A)
A. _0_
B. 8_8
C. void
D. unsigned
解析:C语言中的标识符由字母、下划线、数字组成,且开头必须是字母或下划线。另外,关键字不能作为标识符。B选项中以数字8开头,所以错误。C选项与D选项中用的是关键字void与unsigned,所以错误。
12.某体统结构图如下图所示
(C)
A. 1
B. 2
C. 3
D. 4
解析:在系统结构图中,深度表示控制的层数,由图中可以看出,答案选C。
13.下面程序运行后的输出结果是( )。
#include<stdio.h>
main()
{int a[5]={1,0,4,2,0},b[5]={1,2,3,4,5},i,s=0;
for(i=0;i<5;i++)s=s+b[a[i]];
printf(’’%d\n’’,s);
}(A)
A. 12
B. 15
C. 11
D. 8
解析:这道题目是计算一维数组b中某些元素的和。这些元素的下标值是一维数组a中元素值。s=0+b[1]+ b[0]+b[4]+b[2]+b[0]=2+1+5+3+1=12。
14.若变量已正确定义,则语句s=32;s^=32;printf(\\(B)
A. -1
B. 0
C. 1
D. 32
解析:本题考查逻辑异或运算。异或运算只有在两个比较的位不同时其结果为1,否则结果为0,题目中两个值相同,所以结果为0。
15.设有定义:int a;float b;,执行seanf(\\(A)
A. 87和6.0
B. 876和543.0
C. 87和543.0
D. 76和543.0
解析:在格式字符前加入一个整数可以指定输入数据所占
本文档预览:3600字符,共10614字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载