1、(1) 栈和队列的共同特点是A)都是先进先出B)都是先进后出C)只允许在端点处插入和删除元素D)没有共同点(2)已知二叉树后序遍历序列是 dabec,中序遍历序列是 debac,它的前序遍历序列是A)acbedB)decabC)deabcD)cedba(3)链表不具有的特点是A)不必事先估计存储空间B)可随机访问任一元素C)插入删除不需要移动元素D)所需空间与线性表长度成正比(4)结构化程序设计的 3 种结构是A)顺序结构、选择结构、转移结构B)分支结构、等价结构、循环结构C)多分支结构、赋值结构、等价结构D)顺序结构、选择结构、循环结构(5)为了提高测试的效率,应该A)随机选取测试数据B)取
2、一切可能的输入数据作为测试数据C)在完成编码以后制定软件的测试计划D)集中对付那些错误群集的程序(6)算法的时间复杂度是指A)执行算法程序所需要的时间B)算法程序的长度C)算法执行过程中所需要的基本运算次数D)算法程序中的指令条数(7)软件生命周期中所花费用最多的阶段是A)详细设计B)软件编码C)软件测试D)软件维护(8)数据库管理系统 DBMS 中用来定义模式、内模式和外模式的语言为 A)CB)BasicC)DDLD)DML(9)下列有关数据库的描述,正确的是A)数据库是一个 DBF 文件B)数据库是一个关系C)数据库是一个结构化的数据集合D)数据库是一组文件(10)下列有关数据库的描述,正
3、确的是A)数据处理是将信息转化为数据的过程B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变C)关系中的每一列称为元组,一个元组就是一个字段D)如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字(11)以下叙述中正确的是A)C 语言比其他语言高级B)C 语言可以不用编译就能被计算机识别执行C)C 语言以接近英语国家的自然语言和数学语言作为语言的表达形式 D)C 语言出现的最晚,具有其他语言的一切优点(12)C 语言中用于结构化程序设计的 3 种基本结构是A)顺序结构、选择结构、循环结构 B)if,switch,break C)fo
4、r,while,do-whileD)if,for,continue(13)C 语言中最简单的数据类型包括A)整型、实型、逻辑型B)整型、实型、字符型C)整型、字符型、逻辑型D)字符型、实型、逻辑型(14)若变量已正确定义并赋值,以下符合 C 语言语法的表达式是A)a:=b+1B)a=b=c+2C)int 18.5%3D)a=a+7=c+b (15)下列可用于 C 语言用户标识符的一组是A)void, define, WORDB)a3_b3, _123,CarC)For, -abc, IF CaseD)2a, DO, sizeof(16)C 语言中运算对象必须是整型的运算符是A)%=B)/C)=
5、D)2233B)10.0,22.0,33.0C)10.022.033.0D)10 2233(20)有如下程序:main() int x=1,a=0,b=0;switch(x)case 0: b+;case 1: a+;case 2: a+;b+;printf(“a=%d,b=%dn“,a,b);该程序的输出结果是A)a=2,b=1B)a=1,b=1C)a=1,b=0D)a=2,b=2(21)有以下程序main()int i=1,j=1,k=2;if(j+|k+)执行后输出结果是 A)1,1,2B)2,2,1C)2,2,2D)2,2,3(22)有如下程序main()float x=2.0,y;i
6、f(x6)n-; printf(“%d“,n);该程序的输出结果是A)987B)876C)8765D)9876(24)在下列选项中,没有构成死循环的是A)int i=100;while(1)i=i%100+1;if(i100)break; B)for( ;);C)int k=10000;dok+;while(k10000);D)int s=36;while(s )-s;(25)设 int x=1,y=1;表达式(!x|y-)的值是A)0B)1C)2D)-1(26)若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是A)函数调用可以作为独立的语句存在 B)函数调用可以作为一个函数的实参C
7、)函数调用可以出现在表达式中 D)函数调用可以作为一个函数的形参(27)有以下程序float fun(int x,int y)return(x+y) ;main()int a=2,b=5,c=8;printf(“%3.0f n“,fun(int)fun(a+c,b),a-c) );程序运行后的输出结果是A)编译出错B)9C)21D)9.0(28)若有以下调用语句,则不正确的 fun 函数的首部是main() int a50,n;fun(n, A)void fun(int m, int x )B)void fun(int s, int h41 )C)void fun(int p, int *s)
8、D)void fun(int n, int a)(29)fseek 函数的正确调用形式是A)fseek(文件指针,起始点,位移量)B)fseek (文件指针,位移量,起始点)C)fseek (位移量,起始点,文件指针)D)fseek(起始点,位移量,文件指针)(30)若 fp 是指向某文件的指针,且已读到文件末尾,则函数 feof(fp)的返回值是A)EOFB)-1C)1D)NULL(31)若有说明语句:char c=72;则变量 cA)包含 1 个字符B)包含 2 个字符C)包含 3 个字符D)说明不合法,c 的值不确定(32)若有说明 int a3 4; 则 a 数组元素的非法引用是A)a
9、0 2*1B)a 1 3C)a 4-2 0D)a0 4 (33)设有以下说明语句struct stuint a;float b; stutype;则下面的叙述不正确的是A)struct 是结构体类型的关键字B)struct stu 是用户定义的结构体类型C)stutype 是用户定义的结构体类型名D)a 和 b 都是结构体成员名(34)在 C 语言中,引用数组元素时,其数组下标的数据类型允许是A)整型常量B)整型表达式C)整型常量或整型表达式D)任何类型的表达式(35)若运行时给变量 x 输入 12,则以下程序的运行结果是main()int x,y;scanf(“%d“,y=x12?x+10:
10、x-12;printf(“%dn“,y); A)0B)22C)12D)10((36)以下说法正确的是A)C 语言程序总是从第一个的函数开始执行B)在 C 语言程序中,要调用函数必须在 main()函数中定义C)C 语言程序总是从 main()函数开始执行D)C 语言程序中的 main()函数必须放在程序的开始部分(37)表达式 0x130x17 的值是A)0x04B)0x13C)0xE8D)0x17(38)有以下程序 #define F(X,Y) (X)*(Y)main()int a=3, b=4; printf(“%dn“, F(a+, b+) ); 程序运行后的输出结果是 A)12B)15
11、C)16D)20(39)下列程序执行后的输出结果是void func(int *a,int b ) b0=*a+6; main()int a,b5;a=0; b0=3;func( printf (“%dn“,b0 );A)6B)7C)8D)9(40)若有下面的程序段:char s=“china“;char *p; p=s;则下列叙述正确的是A)s 和 p 完全相同B)数组 s 中的内容和指针变量 p 中的内容相等C)s 数组长度和 p 所指向的字符串长度相等D)*p 与 s0相等(41) 以下程序中函数 sort 的功能是对 a 数组中的数据进行由大到小的排序void sort(int a ,
12、int n)int i,j,t;for(i=0;inext= q-next=p-next; D) (*p).next=q; (*q).next=二、填空题(1)算法的基本特征是可行性、确定性、 【1】 和拥有足够的情报。解析: 算法是指解题方案的准确而完整的描述。它有 4 个基本特征,分别是可行性、确定性、有穷性和拥有足够的情报。(2)在长度为 n 的有序线性表中进行二分查找。最坏的情况下,需要的比较次数为 【2】 。解析: 对于长度为 n 的有序线性表,在最坏情况下,二分查找只需要比较 log2n 次,而顺序查找需要比较 n 次。(3)在面向对象的程序设计中,类描述的是具有相似性质的一组 【
13、3】 。解析: 将属性、操作相似的对象归为类,也就是说,类是具有共同属性、共同方法的对象的集合。(4)通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为 【4】 。解析: 软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。一般包括可行性研究与需求分析、设计、实现、测试、交付使用以及维护等活动。(5)数据库管理系统常见的数据模型有层次模型、网状模型和 【5】 3 种。解析: 数据库管理系统是位于用户与操作系统之间的一层系统管理软件,是一种系统软件,是用户与数据库之间的一个标准接口。其总是基于某种数据模型,可以分为层次模型、网状模型和关系模型。(6)设 y
14、 是 int 型,请写出 y 为奇数的关系表达式 【6】 。答案(y%2)=1(7)设 int a=5,b=6,表达式(a=b- )?+a:-b 的值是【7】 。解析: 此表达式为三目运算符,a 的值为 6,b的值为 6,则整个表达式的值为+a的值,a 的值为 7。请注意前缀,-和后缀,-的区别。(8)下列程序的输出结果是【8】 。maim ()char b =“Hello you“ ;b5=0;printf (“%sn“,b);解析: 语句 b5=0;相当于语句 b5=0,且0为字符串结束标志,输出时遇到0就停止输出。(9)当调用函数时,实参是一个数组名,则向函数传递的是【9】 。解析: 在
15、函数中,可以通过指针变量来引用调用函数中对应的数组元素,此操作是通过传递数组的首地址来实现。(10)以下程序的输出结果是【10】 。int a=1234;printf (“%2dn“,a ) ;解析: 在% 与格式符之间插入一个整形数来指这输出宽度,并不影响数据的完整性,当插入的宽度小于实际的宽度时,则实际的宽度输出。(11) 用高级语言编写的程序称为【11】程序,它可以通过解释程序翻译一句执行一句的方式执行,也可以通过编译程序一次翻译产生目标程序,然后执行。解析: 用高级语言编写的程序称为源程序,源程序不能在计算机上直接运行,运行源程序有两种方式:一种是通过解释程序,对源程序逐句解释执行;另
16、一种是先让编译程序将源程序一次翻译产生目标程序(目标程序是计算机可直接执行的机器语言程序,它是一种二进制代码程序) ,然后执行目标程序。(12) 以下程序的输出结果是【12】 。main()int a=0;a+=(a=8);printf(“%dn“,a);解析: 赋值表达式的值就是所赋值变量的值,本题中 a+=8 相当于 a=a+8,对表达式逐步进行求解:a+=(a=8)此时,a 的值由于赋值为 8,而不是 0a+=8a=a+8a=16(13)函数 void fun(float *sn, int n)的功能是:根据以下公式计算 S,计算结果通过形参指针 sn 传回;n 通过形参传入,n 的值大
17、于等于 0。请填空。void fun( float *sn, int n) float s=0.0, w, f=-1.0;int i=0;for(i=0; in。例如:m=12, n=8 时,运行结果应该是 495.000000。请在题目的空白处填写适当的程序语句,将该程序补充完整。#include #include float fun (int m, int n) int i;double p=1.0;for(i=1;i=m;i+ ) 【15】 ;for(i=1;i=n;i+) 【16】;for(i=1;i=m-n;i+)p=p/i;return p;main () clrscr() ;pr
18、intf (“p=%fn“,fun (12,8) );解析:本题中,欲求 p 的值,需要先求 m,n,m-n 的阶乘值,可用循环语句实现。(15)该程序运行的结果是【17】 。#include#include#define M 100void fun(int m, int *a, int *n) int i,j=0;for(i=1;i=m;i+ )if(i%7=0|i%11=0)aj+=i;*n=j;main() int aaM,n,k;clrscr();fun(10,aa,for(k=0;kN;K+)if(k+1)%20=0 )printf(“n“ );else printf(“%4d“,a
19、ak );printf(“n“ );解析: 解答本题的关键是要读懂程序,试题要找出能被 7 或 11 整除的所有整数,注意数学中的“或”和 C 语言中的“或”的区别,但在此处,if 条件语句中用了“|”运算符,若要找能同时被 7 和 11 整除的所有整数则在 if()中应用“为 fun(50,aa, 时输入结果为:7 11 14 21 22 28 33 35 42 44 49。(16)下列程序的功能是:求出 ss 所指字符串中指定字符的个数,并返回此值。例如,若输入字符串 123412132,输入字符 1,则输出 3,请填空。#include #include #define M 81int
20、fun(char *ss, char c) int i=0;for(; 【18】;ss+)if(*ss=c)i+;return i;main() char aM , ch;clrscr();printf(“nPlease enter a string: “); gets(a);printf(“nPlease enter a char: “); ch=getchar();printf(“nThe number of the char is: %dn“, fun(a,ch) );解析: 从字符串 ss 中找出子字符串的方法是:从第 1 个字符开始,对字符串进行遍历;若 ss 串的当前字符等于 t
21、串的第 1 个字符,两字符串的指针自动加 1,继续比较下一个字符;若比较至字符串的结尾,则跳出循环;若 ss 串的字符和 c 串的字符对应不同,继续对ss 串的下一个字符进行处理。本程序是采用逐一比较的方式找出出现的次数。循环的作用是在串中从左到右逐一走动,if()的作用是进行判断是否相同,若与 c 相同则表示又出现一次。(17)下面程序把从终端读入的文本(用作为文本结束标志)输出到一个名为 bi.dat 的新文件中,请填空。#include “stdio.h“FILE *fp; char ch;if(fp=fopen(【19】 ) )=NULL)exit (0);while(ch=getch
22、ar( ) )!=)fputc (ch,fp);fclose(fp);解析: fopen 函数的调用方式通常为:FILE *fpfp=fopen(文件名,使用文件方式);(18)设有如下宏定义#define MYSWAP(z,x,y )z=x;x=y;y=z;以下程序段通过宏调用实现变量 a,b 内容交换,请填空。float a=5,b=16,c;MYSWAP(【20】,a,b );解析: 该题考查两个知识点:(1)用一个指定的标识符(即名字)来代表一个字符串,它的一般形式为#define 标识符 字符串(2)在 MYSWAP 宏定义中,利用中间变量 z 来交换 x 和 y 的值,所以要实现 a 和 b 的交换,只需通过中间变量即可,所以,此处应填 c