国家二级C语言机试(选择题)模拟试卷331
选择题
1.以下有关宏替换的叙述不正确的是( )。(D)
A. 双引号中出现的宏名不替换
B. 使用宏定义可以嵌套
C. 宏定义仅仅是符号替换
D. 宏名必须用大写字母表示
解析:本题考查宏替换的规则。宏替换分为简单的字符替换和带参数的宏替换两类。使用宏时应注意以下几点:①宏定义仅仅是符号替换,不是赋值语句,因此不做语法检查;②为了区别程序中其他的标识符,宏名的定义通常用大写字母,但不是必须用大写;③双引号中出现的宏名不替换;④使用宏定义可以嵌套,即后定义的宏中可以使用先定义的宏。
2.带链队列空的条件是(A)
A. front=rear=NULL
B. front=rear=-1
C. front=NULL且rear=-1
D. front=-1且rear=NULL
解析:带链队列空的条件有两个:一个是front=rear,一个是他们都等于空。
3.在黑盒测试方法中,设计测试用例的根据是( )。(D)
A. 数据结构
B. 模块间的逻辑关系
C. 程序调用规则
D. 软件要完成的功能
解析:黑盒测试方法也称功能测试或数据驱动测试。黑盒测试是对软件已经实现的功能是否满足需求进行测试和验证。它完全不考虑程序内部的逻辑结构和内部特征,只依据程序的需求和功能规格说明,检查程序的功能是否符合它的功能要求。
4.下列选项中,不能作为合法常量的是( )。(B)
A. 1.234e04
B. 1.234e0.4
C. 1.234e+4
D. 1.234e0
解析:用指数形式表示的实型常量需注意两点:①e或E后面的指数必须是整数;②指数必须是不超过数据表示范围的正负整数,并且在e或E前必须有数字。
5.表示关系式x≤y≤z的C语言表达式的是(C)
A. (x<=y)‖(y<:x)
B. (x<=y<=z)
C. (x<=y)&&(y<=x)
D. (x<=y)!(y<=x)
解析:表示三个变量的关系,要利用逻辑表达式,用逻辑与连接。
6.数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的(C)
A. 需求分析阶段
B. 逻辑设计阶段
C. 概念设计阶段
D. 物理设计阶段
解析:E-R模型(实体联系模型)是将现实世界的要求转化成实体、联系、属性等几个基本概念,以及它们间的两种基本联接关系,并且可用一种图非常直观地表示出来。它属于数据库设计的概念设计阶段。
7.在数据库设计中,描述数据间内在语义联系得到E-R图的过程属于( )。(C)
A. 逻辑设计阶段
B. 需求分析阶段
C. 概念设计阶段
D. 物理设计阶段
解析:数据库设计的需求分析阶段是数据库设计的第一阶段,这一阶段收集到的基础数据和一组数据流图是下一步设计概念结构的基础。数据库概念设计的目的是分析数据间内在的语义关联,在此基础上建立一个数据的抽象模型。数据库的逻辑设计主要工作是将E-R图转换成指定的关系数据库中的关系模式。数据库物理设计的主要目标是对数据库内部物理结构作调整并选择合理的存取路径,以提供数据库访问速度及有效利用存储空间。所以本题答案选C。
8.有以下程序
#include
void main()
{
char b,c;int i;
b=’a’;c=’A’;
for(i=0;i<6;i++)
{
if(i%2)putchar(i+b);
else putchar(i+c);
}
printf(\\(D)
A. ABCDEF
B. aBcDeF
C. abcdef
D. AbCdEf
解析:循环变量i从0依次递增到5,依次输出字母A,b,c,d,E,f。
9.由以下while构成的循环,循环体执行的次数是intk=0;while(k=1)k++;(C)
A. 一次也不执行
B. 执行一次
C. 无限次
D. 有语法错,不能执行
解析:循环条件表达式为赋值表达式k=-1,因此循环执行无限次。
10.以下选项中表示一个合法的常量的是(说明:符号□表示空格)( )。(B)
A. 9□9□9
B. 0Xab
C. 123E0.2
D. 2.7e
解析:当用指数形式表示浮点数据时,E的前后都要有数据,并且E的后面数要为整数。
11.有以下程序
#include
main(){int y=10;
while(y==);
printf(\\(B)
A. y=0
B. y=-1
C. y=1
D. while构成无限循环
解析:在while循环中每次变量y的值减1,直到其值等于0时退出循环,这时y的再减1变为一1。
12.有以下程序:
#include<stdio.h>
int fun(char *s)
{
char *p=s;
while(*p+ +!=′\0′);
return(p—s);
}
main( )
{
char *r=″01234″;
printf(″%d\n″,fun(r));
}
程序的运行结果是( )。(A)
A. 6
B. 5
C. 4
D. 3
解析:程序执行过程为:定义字符串指针r,并为其初始化为“01234”,调用函数fun(r),将指针传入函数while循环找到字符串的结束符地址,然后使这个指针指向结束符下一个单元,结束循环。返回字符串首地址与结束符下一个地址之差,也即是字符串长度加1。输出地址差为6。
13.下列叙述中错误的是( )。(C)
A. C程序函数中定义的自动变量,系统不自动赋确定的初值
B. 在C程序的同一函数中,各复合语句内可以定义变量,其作用域仅限本复合语句内
C. C程序函数中定义的赋有初值的静态变量,每调用一次函数赋一次初值
D. C程序函数的形参不可以说明为static型变量
解析:A选项描述正确,自动变量未赋初值,为随机值;B选项描述正确,变量定义除在函数开始位置外,在复合语句开始也可以;C选项描述是错误的,函数内的静态变量只在第一次调用时赋值,以后调用保留上次的值;D选项描述也正确,形参属于局部变量,占用动态存储区,而static型变量占用静态存储区。
14.以下选项中作为C语言合法常量的是(A)
A. -80
B. -080
C. -8e1.0
D. -80.0e
解析:本题考查C语言中的常量,C语言中字母e或E之前必须有数字,且e或E后面的指数必须为整数。选项A)表示负数-80;选项B)中以数字0开始表示的是八进
本文档预览:3600字符,共11873字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载