国家二级C语言机试(选择题)模拟试卷307
选择题
1.下列叙述中正确的是( )。(B)
A. 栈与队列都只能顺序存储
B. 循环队列是队列的顺序存储结构
C. 循环链表是循环队列的链式存储结构
D. 以上说法都不对
解析:栈和队列都可以采用链式存储结构,选项A)错误。队列的顺序存储结构一般采用循环队列的形式,所以循环队列是队列的顺序存储结构,选项B正确,选项C)错误。答案选B)。
2.已知大写字母A的ASCII码是65,小写字母a的ASCII码是97。以下不能将变量c中的大写字母转换为对应小写字母的语句是(A)
A. c=(’A’+c)%26-’a’
B. c=C+32
C. c=C-’A’+’a’
D. c=(C-’A’)%26+’a’
解析:由题意可知,小写字符a和大写字符A的ASCⅡ代码相差为32,所以选项C能将大写字符C的ASCII代码转换为小写字符c的ASCII代码;选项D和C)左侧的表达式都是大写字符C与大写字符A的差与’a’的ASC II代码的和就是小写字符c的ASC II代码。而选项A中应该是加上’a’,而不是减去’a’。
3.若变量已正确定义并赋值,则错误的赋值语句是( )。(D)
A. a+a+1:
B. a=sizeof(double);
C. a=d ‖ c;
D. a+1=a:
解析:赋值号“=”的左边必须是一个变量名。
4.软件设计中划分模块的一个准则是( )。(B)
A. 低内聚低耦合
B. 高内聚低耦合
C. 低内聚高耦合
D. 高内聚高耦合
解析:一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。
5.在结构化程序设计中,模块划分的原则是(D)
A. 各模块应包括尽量多的功能
B. 各模块的规模应尽量大
C. 各模块之间的联系应尽量紧密
D. 模块内具有高内聚度、模块间具有低耦合度
解析:内聚性是对一个模块内部各个元素间彼此结合的紧密程度的度量。耦合性是对模块间互相连接的紧密程度的度量。在结构化程序设计中,模块划分应遵循高内聚、低耦合的原则,即减弱模块之间的耦合性和提高模块内聚性,有利于提高软件模块的独立性。
6.以下不正确的转义字符是( )。(D)
A. ’\\’
B. ’\d’
C. ’\s’
D. ’088’
解析:“’\\’”是反斜线符,“’\d’”是整型变量转义字符,“’\s’”是字符串型转义字符,C语言中没有规定“’088’”为转义字符。
7.关于C程序的编译和运行,以下叙述中错误的是( )。(C)
A. C语言源代码程序通过编译、链接步骤之后才能形成一个可执行文件
B. 用C语言编写的程序是以ASCⅡ代码形式存放在一个文本文件中
C. C语言中的所有语句都将被转换成二进制的机器指令
D. C语言源程序经编译后生成后缀为.obj的目标程序
解析:C语言中的某些语句并不会被转换成二进制机器指令,如宏定义命令,在预编译之后替换到代码中,该命令本身也就不存在了,不会转换成二进制的机器指令。C语言编写的源程序就是以ASCⅡ的形式存放在文本文件中的。C源程序经过C编译程序编译之后生成一个后缀为.obj的二进制文件(称为目标文件),然后由称为“链接程序”的软件,因此.obj文件与C语言提供的各种库函数链接起来生成一个后缀为.EXE的可执行文件。
8.下列条件语句中,输出结果与其他语句不同的(A)
A. if(a==0)printf(\\
B. if(a==0)printf(\\
C. if(a!=0)printf(\\
D. if(a)printf(\\
解析:选项B)、C)、D)这三条语句都是存变量不等于0的情况下,输出x;等于0的情况下输出y,而选项A)则正好相反。
9.设有定义语句
int x[6]={2,4,6,8,5,7),*p=x,i;
要求依次输出x数组6个元素中的值不能完成此操作的语句是(D)
A. for(i=0;i<6;i++)printf(\\
B. for(i=0;i<6;i++)printf(\\
C. for(i=0;i<6;i++)printf(\\
D. for(i=0;i<6;i++)printf(\\
解析:指针p指向数组x,因此可以使用p来输出数组x的值。选项A中,*(p++)表示先取出p指向的元素的值,然后p++指向下一个元素,满足要求;选项B中*(p+i)每次i的值发生变化,(p+i)指向x数组的x[i]元素,因此*(p+i)是取出数组x的x[i]元素的值,满足要求;选项C和选项A相比,少了括号,由于.运算符的优先级比++要求,因此,因此*p++表示先取出p指向的元素的值,然后p再++指向下一个元素,满足要求:选项D中(*p)++表示先取出p指向的元素的值,然后该值++,p没有增加,每次循环都*p取出的x[0]的值,不满足要求。
10.若变量已正确定义为int型,要通过语句scanf(\\(D)
A. □□□1,2,3
B. 1,□□□2,□□□3
C. 1,2,3
D. 1□2□3
解析:本题主要考查scanf函数的输入格式问题。scanf函数的一般形式为:scanf(格式控制字符串,地址1,地址2,…);格式控制字符串是由双撇号括起来的字符串,它主要由两种类型的字符组成:①格式说明符由“%”和格式字符组成,如%c,%d,%s,%f等。其作用是将输入的数据转换为指定的格式,赋给scanf的二个参量(是地址1)所指定的内存单元(可能一次使用多个)中。格式说明以“%”字符为标志;②普通字符,是需要用户在输入时原样输入的字符。在本题中格式控制字符串为“%d,%d,%d”,表示按十进制输入三个数据。要求在输入数据时,两个数据间一定以一个逗号“,”作为间隔符。
11.一个教师讲授多门课程,一门课程由多个教师讲授。则实体教师和课程间的联系是(D)
A. 1:1联系
B. 1:m联系
C. m:1联系
D. m:n联系
解析:一个教师可讲授多门课程,一门课程可由多个教师讲授,则实体教师和课程的联系是多对多的联系。
12.若有以下函数首部
int fun(double x[10], int *n)
则下面针对此函数的函数声明语句中正确的是(B)
A. int fun(double , int );
B. int fun(double *, int *);
C. int fun(double *x, int n);
D. int fun(double x, int *n);
解析:函数声明的一般形式为:类型说明符 被调函数名(类型 形参,类型 形参…); 或为:类型说明符 被调函数名(类型,类型…);由于函数首部为int fun(double x[10], int *n),因此B选项正确。
13.已知大写字母A的ASCII码是65,小写字母a的ASCII码是97。以下不能将变量c中的大写字母转换为对应小写字母的语句是(A)
A. c=(’A’+c)%26-’a’
B. c=C+32
C. c=C-’A’+’a’
D. c=(C-’A’)%26+’a
本文档预览:3600字符,共11068字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载