国家二级C语言机试(选择题)模拟试卷334
选择题
1.下列描述中正确的是(D)
A. 数据的逻辑结构与存储结构必定是一一对应的
B. 由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构
C. 程序设计语言中的数据一般是顺序存储结构,因此,利用数组只能处理线性结构
D. 以上三种说法都不对
解析:数据的逻辑结构是指反映数据元素之间逻辑关系的数据结构。数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构)。一般来说,一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序、链接、索引等。
2.有以下程序:
#include
int b=2;
int fun(int*k)
{
b=*k+b;
return(b);
}
void main()
{
int a[10]={1,2,3,4,5,6,7,8},i;
for(i=2;i<4;i++)
{
b=fun(&a[i])+b;
prinff(“%d”,b);
}
prinff(“\n”);
}
程序运行后的输出结果是( )。(C)
A. 1012
B. 810
C. 1028
D. 1016
解析:因为b是全局变量,所以它的值在整个程序结束才会消失。for循环中,第一次循环,i=2,a[2]=3,所以fun(&a[i]=3+2=5,b=5,所以b:fun(&a[i])+b=5+5=10;第二次循环,b=10,然后fun(&a[i])代入a[3]=4,这时fun(&a[i]=10+4=14,所以b=fun(&a[i])+b=14+14=28。
3.下列叙述中正确的是(B)
A. 循环队列是队列的一种链式存储结构
B. 循环队列是队列的一种顺序存储结构
C. 循环队列是非线性结构
D. 循环队列是一种逻辑结构
解析:本题主要考查循环队列的概念,循环队列作为队列的一种也应该是线性结构。队列是一种逻辑结构,而循环队列是一种顺序存储结构的队列。
4.设变量均已正确定义并赋值,以下与其他三组输出结果不同的一组语句是(C)
A. x++;printf(\\
B. ++x;printf(\\
C. n=x++;printf(\\
D. n=++x;printf(\\
解析:本题考查自增运算符。++在前表示先自增然后使用,++在后面表示先使用然后自增。选项A中首先执行x++,执行完后x自增1,然后printf输出的是x自增后的值;选项B首先执行++x,x的值增加1,接着输出x的值;选项C中++在x的后面,因此n的值是x自增前的值,printf输出的是x自增前的值;选项D中++在x的前面,因此x首先自增,然后再赋值给n,n的值是x自增后的值,输出的也是x自增后的值。
5.下列叙述中正确的是(C)
A. 所谓有序表是指在顺序存储空间内连续存放的元素序列
B. 有序表只能顺序存储在连续的存储空间内
C. 有序表可以用链接存储方式存储在不连续的存储空间内
D. 任何存储方式的有序表均能采用二分法进行查找
解析:有序表可以用顺序存储空间内连续存放的元素序列来实现,也可以用链接存储方式存储在不连续的存储空间内,已达到逻辑上连续,存储空间上不一定连续的效果。二分法进行查找只适用于顺序存储的有序表。故选项C正确。
6.执行以下程序段后,w的值为( )。
int w=’A’,x=14,y=15;
w=((x ‖ y)&&(w<’a’));(C)
A. -1
B. NULL
C. 1
D. 0
解析:字符变量w的初值为字符“’A’”,其ASCH码值为65,字符“’at’”的ASCII码值为97,所以关系表达式“w<’a’”的值为1:变量x=14,变量y=15,“x‖y”为或,x、y均为真,所以x‖y的结果1。因而逻辑表达式“(x‖y)&&(w<’a’)”的值为1。
7.有以下程序
main(){
int sum,pad,pAd;
sum=pad=5;
pAd=++sum,pAd++,++pad;
printf(”%dkn”,pad);)
程序的输出结果是(D)
A. 5
B. 7
C. 8
D. 6
解析:有逗号表达式构成的语句:pAd=++sum,pAd++,++pad;主要从左到由连续运算,因此pad的值为6。注意pad和pAd的是不同的变量。
8.下列描述中正确的是(D)
A. 程序就是软件
B. 软件开发不受计算机系统的限制
C. 软件既是逻辑实体,又是物理实体
D. 软件是程序、数据与相关文档的集合
解析:计算机软件与硬件是计算机系统中相互依存的两部分。计算机软件是包括程序、数据及相关文档的完整集合。软件由两部分组成:一部分是机器可执行的程序和数据;二是机器不可执行的,与软件开发、运行、维护、使用等有关的文档。软件具有以下六个特点:①软件是一种逻辑实体,而不是物理实体,具有抽象性。②软件的生产与硬件不同,它没有明显的制作过程。③软件在运行、使用期间不存在磨损、老化问题。④软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移值的问题。⑤软件复杂性高,成本昂贵。⑥软件的开发涉及诸多社会因素。
9.表达式a+=a一=a=9的值是( )。(C)
A. 18
B. 一9
C. 0
D. 9
解析:首先计算a=9,然后计算a一=9,即a=a一9,结果为0,然后计算a+=0,即a=a+0,所以最终结果为0。
10.若变量已正确定义,则语句S=32;s^=32;printf(“%d”,s);的输出结果是( )。(B)
A. 一1
B. 0
C. 1
D. 32
解析:本题考查逻辑异或运算。异或运算只有在两个比较的位不同时其结果为1,否则结果为0,题目中两个值相同,所以结果为0。
11.表达式3.6-5/2+1.2+5%2的值是( )。(D)
A. 4.3
B. 4.8
C. 3.3
D. 3.8
解析:计算5/2,结果取整数值2。计算3.6-2,结果与高精度数据保持一致,即为1.6。计算1.6+1.2,结果为2.8。计算5%2,结果为1。计算2.8+1结果为3.8。所以选择D选项。
12.有以下程序:
#include<stdio.h>
void fun(char *a,char *b)
{
while(*a= =′*′)a+ +;
while(*b=*a)
{b+ +;a+ +;}
}
main( )
{
char *s=″*****a*b****″t[80];
fun(s,t);puts(t);
}
<本文档预览:3600字符,共10902字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载