一 、选择题 (1)在深度为5的满二叉树中,叶子结点的个数为 A)32 B)31 C)16 D)15 正确答案: B
(2)若某二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后序遍历的结点访问顺序是 A)bdgcefha B)gdbecfha C)bdgaechf D)gdbehfca 正确答案: D
(3)一些重要的程序语言(如C语言和Pascal语言)允许过程的递归调用。而实现递归 调用中的存储分配通常用 A)栈 B)堆 C)数组 D)链表 正确答案: A
(4)软件工程的理论和技术性研究的内容主要包括软件开发技术和 A)消除软件危机 B)软件工程管理 C)程序设计自动化 D)实现软件可重用 正确答案: B
(5)开发软件时对提高开发人员工作效率至关重要的是 A)操作系统的资源管理功能 B)先进的软件开发工具和环境 C)程序人员的数量 D)计算机的并行处理能力 正确答案: B
(6)在软件测试设计中,软件测试的主要目的是 A)实验性运行软件 B)证明软件正确 C)找出软件中全部错误 D)发现软件错误而执行程序 正确答案: D
(7)数据处理的最小单位是 A)数据 B)数据元素 C)数据项 D)数据结构 正确答案: C
(8)索引属于 A)模式 B)内模式 C)外模式 D)概念模式 正确答案: B
(9)下述关于数据库系统的叙述中正确的是 A)数据库系统减少了数据冗余 B)数据库系统避免了一切冗余 C)数据库系统中数据的一致性是指数据类型一致 D)数据库系统比文件系统能管理更多的数据 正确答案: B
(10)数据库系统的核心是 A)数据库 B)数据库管理系统 C)模拟模型 D)软件工程 正确答案: B
(11)C语言规定,在一个源程序中,main函数的位置 A)必须在最开始 B)必须在系统调用的库函数的后面 C)可以任意 D)必须在最后 正确答案: C
(12)下列数据中,不合法的C语言实型数据的是 A)0.123 B)123e3 C)2.1e3.5 D)789.0 正确答案: C
(13)下面四个选项中,均是不合法的用户标识符的选项是 A)A P_0 do B)float la0 _A C)b-a goto int D)_123 temp int 正确答案: C
(14)设变量a是int型,f是float型,i是double型,则表达式10+′a′+i*f值的数据类型为 A)int B)float C)double D)不确定 正确答案: C
(15)能正确表示逻辑关系:"a≥10或a≤0"的C语言表达式是 A)a>=10 or a<=0 B)a>=0|a<=10 C)a>=10 &&a<=0 D)a>=10‖a<=0 正确答案: D
(16)设以下变量均为int类型,表达式的值不为7的是 A)(x=y=6,x+y,x+1) B)(x=y=6,x+y,y+1) C)(x=6,x+1,y=6,x+y) D)(y=6,y+1,x=y,x+1) 正确答案: C
(17)若有说明:int *p,m=5,n;以下正确的程序段是 A)p=&n;scanf("%d",&p); B)p=&n;scanf("%d",*p) C)scanf("%d",&n);*p=n; D)p=&n;*p=m; 正确答案: D
(18)以下程序段的输出结果是 int a=1234; printf("%2d\n",a); A)12 B)34 C)1234 D)提示出错、无结果 正确答案: C
(19)若变量a是int类型,并执行了语句:a=′A′+1.6;,则正确的叙述是 A)a的值是字符C B)a的值是浮点型 C)不允许字符型和浮点型相加 D)a的值是字符′A′的ASCII值加上1 正确答案: D
(20)有如下程序 main() { int a=2,b=-1,c=2; if(a<b) if(b<0)c=0; else c++; printf("%d\n",c); } 该程序的输出结果是 A)0 B)1 C)2 D)3 正确答案: C
(21)有如下程序 main() { int x=23; do { printf("%d",x--);} while(!x); } 该程序的执行结果是 A)321 B)23 C)不输出任何内容 D)陷入死循环 正确答案: B
(22)执行语句 for(i=1;i++<4;); 后变量 i 的值是 A)3 B)4 C)5 D)不定 正确答案: C
(23)有一堆零件(100到200之间),如果分成4个零件一组的若干组,则多2个零件;若分成7个零件一组,则多3个零件;若分成9个零件一组,则多5个零件。下面程序是求这堆零件总数,请选择填空。 #include <stdio.h> main() { int i; for(i=100;i<200;i++) if((i-2)%4==0) if(!((i-3)%7)) if(_______) printf("%d",i); } A)i%9=5 B)i%9!=5 C)(i-5)%9!=0 D)(i-5)%9==0 正确答案: D
(24)已有定义int a=-2;和输出语句 printf("%8lx",a);以下正确的叙述是 A)整型变量的输出形式只有%d一种 B)%x是格式符的一种,它可以适用于任何一种类型的数据 C)%x是格式符的一种,其变量的值按十六进制输出,但%8lx是错误的 D)%8lx不是错误的格式符,其中数字8规定了输出字段的宽度 正确答案: D
(25)若变量c为char类型,能正确判断出c为小写字母的表达式是 A)′a′<=c<=′z′ B)(c>=′a′)||(c<=′z′) C)(′a′<=c)and(′z′>=c) D)(c>=′a′)&&(c<=′z′) 正确答案: D
(26)以下正确的说法是 A)用户若需调用标准库函数,调用前必须重新定义 B)用户可以重新定义标准库函数,若如此,该函数将失去原有含义 C)系统根本不允许用户重新定义标准库函数 D)用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动调用 正确答案: B
(27)以下正确的函数头定义形式是 A)double fun(int x,int y) B)double fun(int x;int y) C)double fun(int x,int y); D)double fun(int x,y); 正确答案: A
(28)下面程序段的运行结果是 char a[]="lanuage",*p; p=a; while(*p!=′u′){printf("%c",*p-32);p++;} A)LANGUAGE B)language C)LAN D)langUAGE 正确答案: C
(29)下面程序段的运行结果是 char str[]="ABC",*p=str; printf("%d\n",*(p+3)); A)67 B)0 C)字符′C′的地址 D)字符′C′ 正确答案: B
(30)若fp是指向某文件的指针,且已读到文件末尾,则库函数feof(fp)的返回值是 A)EOF B)-1 C)1 D)NULL 正确答案: C
(31)在C语言中,char型数据在内存中的存储形式是 A)补码 B)反码 C)原码 D)ASCII码 正确答案: D
(32)若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是 A)2 B)3 C)4 D)无确定值 正确答案: B
(33)以下不正确的定义语句是 A)double x[5]={2.0,4.0,6.0,8.0,10.0}; B)int y[5.3]={0,1,3,5,7,9}; C)char c1[]={′1′, ′2′, ′3′, ′4′, ′5′}; D)char c2[]={′\x10′, ′\xa′, ′\x8′}; 正确答案: B
(34)有以下语句,则对a数组元素的引用不正确的是(0≤i≤9) int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a; A)a[p-a] B)*(&a[i]) C)p[i] D)*(*(a+i)) 正确答案: D
(35)当说明一个结构体变量时系统分配给它的内存是 A)各成员所需内存量的总和 B)结构中第一个成员所需内存量 C)成员中占内存量最大者所需的容量 D)结构中最后一个成员所需内存量 正确答案: A
(36)有以下程序 fun(int x,int y,int z) { z=x*y;} main() {int a=4,b=2,c=6; fun(a,b,c); printf("%d",c); } 程序运行后的输出结果是 A)16 B)6 C)8 D)12 正确答案: B
(37)函数fun的返回值是 fun(char *a,char *b) { int num=0,n=0; while(*(a+num)!=′\0′)num++; while(b[n]){*(a+num)=b[n];num++;n++;} return num; } A)字符串a的长度 B)字符串b的长度 C)字符串a和b的长度之差 D)字符串a 和b的长度之和 正确答案: D
(38)以下叙述中不正确的是 A)预处理命令行都必须以#号开始 B)在程序中凡是以#号开始的语句行都是预处理命令行 C)宏替换不占用运行时间,只占编译时间 D)在以下定义是正确的: #define PI 3.1415926; 正确答案: D
(39)调用gets和puts函数时,必须包含的头文件是 A)stdio.h B)stdlib.h C)define D)以上都不对 正确答案: A
(40)利用 fseek 函数可以实现的操作是 A)改变文件的位置指针 B)文件的顺序读写 C)文件的随机读写 D)以上答案均正确 正确答案: D
(41)下列程序的输出结果是 main() { int a[5]={2,4,6,8,10},*p,**k; p=a; k=&p; printf("%d",*(p++)); printf("%d\n",**k); } A)4 B)22 C)24 D)46 正确答案: C
(42)若有以下结构体,则正确的定义或引用的是 struct Test {int x; int y; } vl; A)Test.x=10; B)Test v2;v2.x=10; C)struct v2;v2.x=10; D)struct Test v2={10}; 正确答案: D
(43)下面程序段的运行结果是 char *p="abcdefgh"; p+=3; printf("%d\n",strlen(strcpy(p,"ABCD"))); A)8 B)12 C)4 D)7 正确答案: C
(44)下面判断正确的是 A)char *a="china";等价于 char *a;*a="china"; B)char str[5]={"china"};等价于char str[]={"china"}; C)char *s="china";等价于 char *s;s="china"; D)char c[4]="abc",d[4]="abc";等价于char c[4]=d[4]="abc"; 正确答案: C
(45)下列函数的运行结果是 main() { int i=2,p; int j,k; j=i; k=++i; p=f(j,k); printf("%d",p); } int f(int a,int b) { int c; if(a>b)c=1; else if(a==b)c=0; else c=-1; return(c); } A)-1 B)1 C)2 D)编译出错,无法运行 正确答案: A
(46)在位运算中,操作数左移一位,其结果相当于 A)操作数乘以2 B)操作数除以2 C)操作数除以4 D)操作数乘以4 正确答案: A
(47)若调用fputc函数输出字符成功,则其返回值是 A)EOF B)1 C)0 D)输出的字符 正确答案: D
(48)已知函数的调用形式:fread(buf,size,count,fp),参数buf的含义是 A)一个整型变量,代表要读入的数据项总数 B)一个文件指针,指向要读的文件 C)一个指针,指向要读入数据的存放地址 D)一个存储区,存放要读的数据项 正确答案: C
(49)有如下程序: #define N 2 #define M N+1 #define NUM 2*M+1 main() { int i; for(i=1;i<=NUM;i++)printf("%d\n",i); } 该程序中的for循环执行的次数是 A)5 B)6 C)7 D)8 正确答案: B
(50)以下定义中,标识符prt int(*prt)[3] A)定义不含法 B)是一个指针数组名,每个元素都是一个指向整数变量的指针 C)是一个指针,它指向一个具有三个元素的一维数组 D)是一个指向整型变量的指针 正确答案: D
二 、填空题 (1)在树形结构中,树根结点没有 【1】 。 正确答案: 1.(前件)
(2)Jackson结构化程序设计方法是英国的M.Jackson提出的,它是一种面向 【2】 的设计方法。 正确答案: 1.(数据结构)
(3)面向对象的模型中,最基本的概念是对象和 【3】 。 正确答案: 1.(类)
(4)软件设计模块化的目的是 【4】 。 正确答案: 1.(降低复杂性)
(5)数据模型按不同应用层次分成3种类型,它们是概念数据模型、 【5】 和物理数据模型。 正确答案: 1.(逻辑数据模型)
(6)以下程序段的输出结果是【6】。 main () {int a=2,b=3,c=4; a*=16+(b++)-(++c); printf("%d",a); } 正确答案: 1.(28)
(7)若变量n中的值为24,则print()函数共输出【7】行,最后一行有【8】个数。 void print (int n,int aa[]) {int i; for (i=1; i<1;i++) {printf ("%6d", aa[i]); if(!(i%5)) printf ("\n"); } printf ("\n"); } 正确答案: 1.(5) 2.(4)
(8)调用C语标准库函数时要求用【9】命令。 正确答案: 1.(include)
(9)stract函数的作用是【10】。 正确答案: 1.(连接两个字符数组中的字符)
(10)C语言程序的注释可以出现在程序中的任何地方,一个注释以【11】作为开始和结束。 正确答案: 1.(/* */)
(11)设二进制数A是00101101,若想通过异或运算A^B使A的高4位取反,低4位不变,则二进制数B应是 【12】 。 正确答案: 1.(11110000)
(12)若已知a=10,b=20,则表达式!a<b的值为【13】 。 正确答案: 1.(1)
(13)设i,j,k均为int型变量,则执行完下面的for语句后,k的值为【14】 。 for(i=0, j=10; i<=j; i++, j--)k=i+j; 正确答案: 1.(10)
(14)下面函数的功能是:找出一维数组元素中最大的值和它所在的下标,最大值的和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。请填空。 #include<stdlib.h> #include<stdio.h> void fun(int a[],int n, int *max, int *d) { int i; *max=a[0]; *d=0; for(i=0;【15】;i++) if(*max<【16】) {*max=a[i];*d=i;} } main() { int i, x[20], max, index, n=10; randomize(); for(i=0;i<n;i++) { x[i]=rand()%50; printf("%4d",x[i]); } printf("\n"); fun(x,n,&max,&index); printf("Max=%5d,Index=%4d\n",max,index); } 正确答案: 1.(i<n) 2.(a[i])
(15)以下程序的输出结果是【17】。 void fun() { static int a=0; a+=2; printf("%d",a); } main() { int cc; for(cc=1;cc<4;cc++)fun(); printf("\n"); } 正确答案: 1.(2 4 6)
(16)以下程序的输出结果是【18】 。 #define MAX(x,y)(x)>(y)?(x):(y) main() { int a=5,b=2,c=3,d=3,t; t=MAX(a+b,c+d)*10; printf("%d\n",t); } 正确答案: 1.(7)
(17)用以下语句调用库函数malloc,使字符指针st指向具有11个字节的动态存储空间,请填空。 st=(char*)【19】 ; 考生答案: 1.() 正确答案: 1.(malloc(11)或malloc(sizeof(char)*11))
(18)以下程序段打开文件后,先利用fseek函数将文件位置指针定位在文件末尾,然后调用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度,请填空。 FILE *myf; long f1; myf=【20】 ("test.t","rb"); fseek(myf,0,SEEK_END); f1=ftell(myf); fclose(myf); printf("%d\n",f1); 正确答案: 1.(fopen)
|