时间:2010-09-11 11:39:58
一、填空题:
每小题1分,共17分
1、设一棵完全二叉树共有700个结点,则在该二叉树中有 __1__ 个叶子结点。
自评分
2、在面向对象方法中,类之间共享属性和操作的机制称为 __2__ 。
自评分
3、源程序文档化要求程序应加注释。注释一般分为序言性注释和 __3__ 。
自评分
4、一般来说,数据库的设计过程要经历3个大的阶段,即可行性分析与研究阶段、系统设计阶段、设计实施与系统运行阶段。概念设计、逻辑结构设计、物理结构设计属于数据库设计的 ___4___ 阶段。
自评分
5、数据流图有两种典型的结构形式,它们分别是变换型和 ___5___ 。
自评分
6、 以下程序运行后的输出结果是 ___6___ 。
main()
{ int p=30;
printf(%dkn,(p/3>0?p/10:p%3));
}
自评分
7、 以下程序运行后的输出结果是 ___7___ 。
main()
{ char m;
m=''''B''''+32; printf(%c ,m); }
自评分
8、 若有如下定义,则该数组的第一维大小为 ___8___ 。
int b[][4]={1,2,3,4,5,6,7,8,9);
自评分
9、 以下程序运行后的输出结果是 ___9___ 。
main()
{ int i,m=0,n=0,k=0;
for(i=9;i<=11;i++)
switch (i/10)
{case 0:m++;n++;break;
case 1:n++;break;
default:k++;n++;
}
printf(%d %d %d ,m,n,k);
}
自评分
10、 以下程序运行后的输出结果是 ___10___ 。
void fun(int X,int y)
{x=x+y;y=x-y;x=x-y;
printf(%d,%d,,x,y);}
main()
{int x=2,y=3;
fun(x,y);
printf(%d,%d ,x,y);
}
自评分
11、 以下程序运行后的输出结果是 ___11___ 。
main()
{char a[]=Language,b[]=Programe;
char *p1, *p2; int k;
p1=a; p2=b;
for(k=0;k<=7;k++)
if(*(p1+k)==*(p2+k)) printf(''''%c,*(p1+k));
}
自评分
12、 以下程序的输出结果是 ___12___ 。
#include <stdio.h>
main()
{ int a=1234;
float b=123.456;
double c=12345.54321;
printf( %2d,%2.1f,%2.11f,a,b,c);
}
自评分
13、 以下程序的输出结果为 ___13___ 。
#define JFT(x)x*x
main()
{ int a, k=3;
a =++ JFT(k+1);
printf(%d,a);
}
自评分
14、 如果调用fopen函数不成功,则函数返回 ___14___ ;如果调用fclose函数不成功,则函数返回 ___15___
。
自评分
15、 下面程序的功能是用来统计文件中字符个数。请填空。
#includestdio.h
main()
{ long count=OL;
FILE*fp= ___16___ (text.dat,r);
if(fp==0)
{ printf(Open error );
exit(0);
}
while( ___17___ )
{
fgetc(fp);
count++;
}
fclise(fp);
printf(%1d ,count);
}
自评分
16、以下程序的功能是求下列算式中A、B、C的值,请填空。 #include <stdio.h> main() { int a,b,c,k,t=348; for(a=0;a<10;a++) for(b=0;b<10;b++) for(c=0; ___18___ ;c++) { k= ___19___ ; if(k==t) printf(A=%d B=%d C=%d ,a,b,c); } }
自评分
17、用以下语句调用库函数malloc,使字符指针st指向具有11个字节的动态存储空间,请填空。 st=(char*) ___20___ ;
自评分
二、单选题:
每小题1分,共50分
1、下列数据结构中,按先进后出原则组织数据的是( )。
A.循环队列
B.栈
C.顺序表
D.循环链表
2、下列叙述中正确的是( )。
A.线性表是线性结构
B.栈与队列是非线性结构
C.线性链表是非线性结构
D.二叉树是线性结构
3、在深度为5的满二叉树中,叶子结点的个数为( )。
A.31
B.32
C.16
D.15
4、对于建立良好的程序设计风格,下面描述正确的是( )。
A.程序应简单、清晰、可读性好
B.符号名的命名只要符合语法即可
C.充分考虑程序的执行效率
D.程序的注释可有可无
5、结构化程序设计主要强调的是( )。
A.程序的规模
B.程序的易读性
C.程序的执行效率
D.程序的可移植性
6、下列叙述中正确的是( )。
A.黑箱(盒)测试方法完全不考虑程序的内部结构和内部特征
B.黑箱(盒)测试方法主要考虑程序的内部结构和内部特征
C.白箱(盒)测试不考虑程序内部的逻辑结构
D.上述三种说法都不对
7、下面不属于软件设计原则的是( )。
A.抽象
B.模块化
C.自底向上
D.信息隐蔽
8、下列叙述中正确的是( )。
A.程序设计过程中的主要工作是编制程序
B.程序设计的主要目标是编制出运行结果正确的程序
C.不良的程序设计风格会增加程序的复杂性
D.上述三种说法都不对
9、在面向对象的程序设计中,下列叙述错误的是( )。
A.任何一个对象构成一个独立的模块
B.一个对象不是独立存在的实体,各个对象之间有关联,相互依赖
C.下一层次的对象可以继承上一层次对象的某些属性
D.上述三种说法都正确
10、将E-R图转换到关系模式时,实体与联系都可以表示成( )。
A.属性
B.关系
C.键
D.域
11、下列叙述中正确的是( )。
A.C语言编译时不检查语法
B.C语言的子程序有过程和函数两种
C.C语言的函数可以嵌套定义
D.C语言所有函数都是外部函数
12、以下有4组用户标识符,其中合法的一组是( )。
A.for-ucae
B.4dDOSize
C.f2_G3IFac
D.WORDvoiddefie
13、下列属于不合法的C语言整型常量的选项是( )。
A.-32679
B.0Xac
C.069
D.3e2
14、在C语言系统中,假设int类型数据占两个字节,则double、long、unsigned int、char类型数据所占字节数分别为( )。
A.8,2,4,1
B.2,8,4,1
C.4,2,8,1
D.8,4,2,1
15、下列选项中均属于C语言合法的标识符是( )。
A.It#ureak
B._3aFORLog
C.3aritfa_
D.WORDautoiclude
16、下列选项中均属于C语言合法的标识符是( )。
A.It#ureak
B._3aFORLog
C.3aritfa_
D.WORDautoiclude
17、以下合法的赋值语句是( )。
A.x=y=100
B.d--
C.x+y
D.c=it(a+)
18、若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后x的值为( )。
A.4
B.16
C.32
D.52
19、若已定义x和y为double类型,则表达式“x=1,y=x+3/2”的值是( )。
A.1
B.2
C.2.0
D.2.5
20、已知a、b、c为整型变量,若从键盘输入5<空格>6<空格>7<回车>,使a的值为5,b的值为6,c的值为7,则下列选项中正确的输入语句是( )。
A.caf (%3d%3d%3d,a,,c)
B.caf (%d%d%d,a,,c)
C.caf (%d%d%d,ama,am,amc)
D.caf (%d%d%d,ama,am,amc)
21、 以下程序的输出结果是( )。
main()
char c1=''''6'''',c1=''''0''''
printf(%d,%d,%d ,c1,c2,c1-c2);}
A.因输出格式不合法,输出出错信息
B.54,48,6
C.6,0,7
D.6,0,6
22、 设有以下语句:
char a=3,b=6,C;
c=a|b<<2;
printf(%d ,c);
则c的二进制值是( )。
A.00011011
B.00010100
C.00011100
D.00011000
23、表达式“1||2||3||4”的值是( )。
A.1
B.2
C.3
D.4
24、 若有如下定义:
int x=6,y=3,z=2;
则表达式“x=y||y<z&&z==z”的值是( )。
A.0
B.1
C.4
D.6
25、 若有如下程序段:
int n=1O;
while(1)n--;
printf(%d;n);
则while循环执行的次数是( )。
A.0
B.1
C.10
D.无数
26、若说明int*p,n;则通过语句scanf能够正确读入数据的程序段是( )。
A.=amcaf(%d,am)
B.=amcaf(%d,*)
C.caf(%d,)
D.=amcaf(%d,)
27、 有以下程序:
main()
{ int i=0,s=0;
for(;;)
{
if(i==3||i==5) continue;
if(i==6) break;
i++;
s+=i;
}
printf (%d ''''s);
}
程序运行后的输出结果是( )。
A.10
B.13
C.21
D.程序进入死循环
28、 下面程序段的执行结果为( )。
int i=3,j=0,k=0;
for(;i>0;--i)
{ ++k;
do { ++j;
if (i!=j) break;
++k;
}while(j<5);
}
printf(i=%d j=%d k=%d ,i,j,k);
A.i=0 j=4 k=12
B.i=0 j=5 k=5
C.i=0 j=4 k=4
D.i=0 j=3 k=3
29、下列条件语句中,功能与其他语句不同的是( )。
A.if(a) ritf(%d,x) ele ritf(%d,y)
B.if(a==O) ritf(%d,y) ele ritf(%d,x)
C.if(a!=0) ritf(%d,x) ele ritf(%d,y)
D.if(a==0) ritf(%d,x) ele ritf(%d,y)
30、若有函数内部说明:int a[3][4];则数组a中各元素( )。
A.可在程序的运行阶段得到初值0
B.可在程序的编译阶段得到初值0
C.不能得到确定的初值
D.可在程序的编译或运行阶段得到初值0
31、 有以下程序:
main()
{int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2;
printf(%d ,*p+*q);
}
A.16
B.10
C.8
D.6
32、以下叙述中正确的是( )。
A.局部变量说明为tatic存储类,其生存期将得到延长
B.全局变量说明为tatic存储类,其作用域将被扩大
C.任何存储类的变量在未赋初值时,其值都是不确定的
D.形参可以使用的存储类说明符与局部变量完全相同
33、 下面程序段的执行结果可能为( )。
main()
{int b[]={1,2,3),i;
for(i=1;i<=4;++i)
printf(%u ,b[i]);
}
A.1 2 3 65516
B.0 1 2 3
C.2 3 65516 285
D.程序不能通过编译
34、 下面程序的输出结果是( )。
#define WW(X) X*X
main()
{ int a,i;
i=3;
a=++WW(i+1);
printf(%d ,a);
}
A.5
B.6
C.9
D.程序有错误
35、 以下程序的输出结果是( )。
main()
{
int a=2,k;
for(k=0;k<3;k++) printf(%4d,f1(a));
}
f1(int a)
{
int b=0;static int c=3;
b++;c++;
return(a+b+c);
}
A.7 7 7
B.7 10 13
C.7 9 11
D.7 8 9
36、 以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。
#define N 10
void artin( int x[N])
{
int i=0;
while(i<N)
scanf(%d, );
}
在下划线处应填入的是( )。
A.x+i
B.amx[i+1]
C.x+(i++)
D.amx[++i]
37、 下列程序执行后的输出结果是( )。
void funcl(int i);
void func2(int i);
char st[]=hello,friend!;
void funcl(int i)
{ printf(%C,st[i]);
if(i<3)
{ i+=2;func2(i); )
}
void func2(int i)
{printf(%c,st[i]);
if(i<3)
{ i+=2;func1(i); }
}
main()
{int i=0;funcl(i);printf( ); )
A.hlm
B.hlo
C.hello
D.he1
38、 根据下面的定义,能打印出字母M的语句是( )。
struct person
{
char name[9];
int age;
};
struct person class[10]={John,17,Paul,19,Mary,18,Adam,16};
A.ritf(%c,cla[3].ame}
B.ritf(%c,cla[2].ame[0])
C.ritf(%c,cla[3].ame[1])
D.ritf(%c,cla[2].ame[1])
39、以下正确的数组定义语句是( )。
A.it y[1][4]={1,2,3,4,5, }
B.float x[3][]={{l},{2},{3}}
C.log [2][3]={{1},{1,2}{1,2,3,}}
D.doule t[][3]={0}
40、 下列程序执行后的输出结果是:
main()
{ char arr[2][4];
strcpy(arr''''you);
strcpy(arr[1],me);
arr[0][3]=''''&'''';
printf(%s ,arr);
}
程序的输出结果是( )。
A.youamme
B.me
C.you
D.err
41、 若有如下程序:
main()
{ int k,x=0,y=0;
for(k=0;k<=2;k++)
switch(k)
{ case 0: X++;
case 1: y++;
case 2: X++;y++;
}
printf(%d,d ,x,y);
}
则程序运行后的输出结果是( )。
A.3,3
B.2,2
C.4,5
D.2,3
42、 以下程序中函数scmp的功能是返回形参指针s1和s2所指字符串中较小字符串的首地址:
#include <stdio.h>
#include <string.h>
char *scmp (char *S1,char *s2)
{if(strcmp(s1,s2)<0)
return(s1);
else return(s2);
}
main()
{ int i; char string[20],str[3] [20];
for(i=0;i<3;i++) gets(str[i]);
strcpy(string,scmp(str[0],str[1]));/*库函数strcpy对字符串进行复制*/
strcpy(string,scmp(string,str[2]));
printf(%s ,string);
} 若运行时依次输入abed、abba和abc三个字符串,则输出结果为( )。
A.aed
B.aa
C.ac
D.aca
43、 若有如下程序:
void sub()
{ int a,b;
a=lO;b=20;
printf(%d,%d ,b,a);}
main()
{ int a=1O,b=20;
sub();
printf(%d,%d ''''a''''b);
}
则程序运行后的输出结果是( )。
A.10,20 20,10
B.20,10
C.20,1010,20
D.10,2020,10
44、 在下述程序中,判断i>j共执行的次数是( )。
main()
{int i=O,j=10,k=2,s=0;
for( ;; )
{ i+=k;
if(i>j)
{ptintf(%d,s);
break;
}s+=i;
}
}
A.4
B.7
C.5
D.6
45、整型变量x和y的值相等并且为非零值,则下面选项中,结果一定为零的表达式是( )。
A.xy
B.x^y
C.xy
D.xamy
46、 下列程序执行后的输出结果是( )
#define MA(x) x*(x-1)
main()
{ int a=1,b=2;
printf(%d ,MA(1+a+b));
}
A.5
B.6
C.7
D.8
47、以下各选项均为说明一种新的类型名,其中正确的是( )。
A.tyedef v1 it
B.tyedef v1=it
C.tyedef it v1
D.tyedef v1=it
48、 有以下程序:
main()
{
union{
unsigned int n;
unsigned char c;
}u1;
u1.c=''''A'''';
printf(%c ,u1.n);
}
执行后输出结果是( )。
A.产生语法错误
B.随机值
C.A
D.65
49、若要用fopen函数打开一个文本文件,该文件要既能读也能写,则文件使用方式的字符串为( )。
A.r+
B.a+
C.r+
D.''w+
50、 若有如下程序:
sub(int *t,int a[3][4])
{ int m,n;
for(m=0;m<3;m++)
for(n=0;n<4;n++)
{ *t=a[m][n];t++;} }
main()
{ int*t,s[3][4)={{1,2,3),{4,5,6),{7,8,9}};
t=(int*)malloc(50);
sub(t,s);
printf(%d,%d ,t[4],t[7]);
}
则程序运行后的输出结果是( )。
A.4,7
B.4,0
C.5,8
D.程序错误