第一套笔试题
一、选择题
1、设一棵完全二叉树共有699个结点,则在该二叉树中的叶子结点数为______。
A、349 B、350 C、255 D、351
2、下面叙述正确的是______。
A、算法的执行效率与数据的存储结构无关
B、算法的空间复杂度是指算法程序中指令(或语句)的条数
C、算法的有穷性是指算法必须能在执行有限个步骤之后终止
D、以上三种描述都不对
3、对建立良好的程序设计风格,下面描述正确的是______。
A、程序应简单、清晰、可读性好 B、符号名的命名要符合语法
C、充分考虑程序的执行效率 D、程序的注释可有可无
4、关系数据库管理系统能实现的专门关系运算包括______。
A、排序、索引、统计 B、选择、投影、连接
C、关联、更新、排序 D、显示、打印、制表
5、软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指______。
A、模块间的关系 B、系统结构部件转换成软件的过程描述
C、软件层次结构 D、软件开发过程
6、检查软件产品是否符合需求定义的过程称为______。
A、确认测试 B、集成测试 C、验证测试 D、验收测试
7、在数据流图(DFD)中,带有名字的箭头表示______。
A、控制程序的执行顺序 B、模块之间的调用关系 C、数据的流向 D、程序的组成成分
8、数据库概念设计的过程中,视图设计一般有三种设计次序,以下各项中不对的是______。
A、自顶向下 B、由底向上 C、由内向外 D、由整体到局部
9、已知数据表A中每个元素距其最终位置不远,为节省时间,应采用的算法是______。
A、堆排序 B、直接插入排序 C、快速排序 D、直接选择排序
10、在数据管理技术发展过程中,文件系统与数据库系统的主要区别是数据库系统具有______。
A、数据无冗余 B、数据可共享 C、专门的数据管理软件 D、特定的数据模型
11、阅读以下函数
fun(char *sl,char *s2)
{ int i=0;
while(sl[i]==s2[i]&&s2[i]!='\0') i++;
return(sl[i]=='\0'&&s2[i]=='\0');
}
此函数的功能是______。
A、将s2所指字符串赋给s1
B、比较s1和s2所指字符串的大小,若s1比s2的大,函数值为1,否则函数值为0
C、比较s1和s2所指字符串是否相等,若相等,函数值为1,否则函数值为0
D、比较s1和s2所指字符串的长度,若s1比s2的长,函数值为1,否则函数值为0
12、有以下程序
main()
{ char str[]="xyz",*ps=str;
while(*ps) ps++;
for(ps--;ps-str>=0;ps--) puts(ps);}
执行后输出结果是______。
A、yz
xyz |
B、z
yz |
C、z
yz
xyz |
D、x
xy
xyz |
13、在一个C语言程序中______。
A、main函数必须出现在所有函数之前 B、main函数可以在任何地方出现
C、main函数必须出现在所有函数之后 D、main函数必须出现在固定位置
14、下列叙述中正确的是______。
A、C语言中既有逻辑类型也有集合类型 B、C语言中没有逻辑类型但有集合类型
C、C语言中有逻辑类型但没有集合类型 D、C语言中既没有逻辑类型也没有集合类型
15、下列关于C语言用户标识符的叙述中正确的是______。
A、用户标识符中可以出现下划线和中划线(减号)
B、用户标识符中不可以出现中划线,但可以出现下划线
C、用户标识符中可以出现下划线,但不可以放在用户标识符的开头
D、用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头
16、C语言中用于结构化程序设计的三种基本结构是______。
A、顺序结构、选择结构、循环结构 B、if、switch、break
C、for、while、do-while D、if、for、continue
17、下列关于单目运算符++、--的叙述中正确的是______。
A、它们的运算对象可以是任何变量和常量
B、它们的运算对象可以是char型变量和int型变量,但不能是float型变量
C、它们的运算对象可以是int型变量,但不能是double型变量和float型变量
D、它们的运算对象可以是char型变量、int型变量和float型变量
18、以下叙述中不正确的是______。
A、C语言中的文本文件以ASCII码形式存储数据
B、C语言中对二进制位的访问速度比文本文件快
C、C语言中,随机读写方式不使用于文本文件
D、C语言中,顺序读写方式不使用于二进制文件
19、有以下程序段
int m=0,n=0; char c='a';
scanf("%d%c%d",&m,&c,&n);
printf("%d,%c,%d\n",m,c,n);
若从键盘上输入:10A10↙,则输出结果是______。
A、10,A,10 B、10,a,10 C、10,a,0 D、10,A,0
20、有以下程序
main()
{ int i;
for(i=0;i<3;i++)
switch(i)
{ case 1: printf("%d",i);
case 2: printf("%d",i);
default: printf("%d",i);
}
}
执行后输出的结果是______。
A、011122 B、012 C、012020 D、120
21、有以下程序
main()
{ int x[8]={8,7,6,5,0,0},*s;
s=x+3;
printf("%d\n",s[2]);
}
执行后输出结果是______。
A、随机值 B、0 C、5 D、6
22、有以下程序
main()
{ int a=5,b=4,c=3,d=2;
if(a>b>c)
printf("%d\n",d);
else if((c-1>=d)==1)
printf("%d\n",d+1);
else
printf("%d\n",d+2);
}
执行后输出的结果是______。
A、2 B、3 C、4 D、编译时有错,无结果
23、有以下程序
main()
{ int p[7]={11,13,14,15,16,17,18},i=0,k=0;
while(i<7&&p[i]%2){k=k+p[i]; i++;}
printf("%d\n",k);
}
执行后输出的结果是______。
A、58 B、56 C、45 D、24
24、有以下程序
main()
{ union{ unsigned int n;
unsigned char c;
}ul;
ul.c='A';
printf("%c\n",ul.n);
}
执行后输出结果是______。
A、产生语法错 B、随机值 C、A D、65
25、有以下程序
main()
{ int i=10,j=1;
printf("%d,%d\n",i--,++j);
}
执行后输出的结果是______。
A、9,2 B、10,2 C、9,1 D、10,1
26、以下程序中,能够通过调用函数fun,使main函数中的指针变量p指向一个合法的整型单元的是______。
A、main()
{int *p; fun(p);… }
int fun(int *p)
{ int s; p=&s;} |
B、main()
{int *p;fun(&p);…}
int fun(int **p)
{int s; *p=&s;} |
C、#include<stdlib.h>
main() {int *p;fun(&p);…}
int fun(int **p)
{*p=(int*)malloc(2);}…
|
D、#include<stdlib.h>
main() {int *p;fun(p);…}
int fun(int *p)
{p=(int*)malloc(sizeof(int));} |
27、有以下程序
int f1(int x,int y)
{ return x>y?x:y; }
int f2(int x,int y)
{return x>y?y:x; }
main()
{int a=4,b=3,c=5,d,e,f;
d=f1(a,b); d=f1(d,c);
e=f2(a,b); e=f2(e,c);
f=a+b+c-d-e;
printf("%d,%d,%d\n",d,f,e);
}
执行后输出的结果是______。
A、3,4,5 B、5,3,4 C、5,4,3 D、3,5,4
28、有以下程序
void f(int x,int y)
{ int t;
if(x<y){ t=x; x=y; y=t; }
}
main()
{ int a=4,b=3,c=5;
f(a,b); f(a,c); f(b,c);
printf("%d,%d,%d\n",a,b,c);
}
执行后输出的结果是______。
A、3,4,5 B、5,3,4 C、5,4,3 D、4,3,5
29、有以下程序
main()
{int a[][3]={{1,2,3},{4,5,0}},(*pa)[3],i;
pa=a;
for(i=0;i<3;i++)
if(i<2) pa[1][i]=pa[1][i]-1;
else pa[1][i]=1;
printf("%d\n",a[0][1]+a[1][1]+a[1][2]);
}
执行后输出结果是______。
A、7 B、6 C、8 D、无确定值
30、有以下程序
int *f(int *x,int *y)
{ if(*x<*y)
return x;
else
return y;
}
main()
{ int a=7,b=8,*p,*q,*r;
p=&a; q=&b;
r=f(p,q);
printf("%d,%d,%d\n",*p,*q,*r);
}
执行后输出结果是______。
A、7,8,8 B、7,8,7 C、8,7,7 D、8,7,8
31、有以下程序
main()
{ char *s[]={"one","two","three"},*p;
p=s[1];
printf("%c,%s\n",*(p+1),s[0]);
}
执行后输出结果是______。
A、n,two B、t,one C、w,one D、o,two
32、以下程序企图把从终端输入的字符输出到名为abc.txt的文件中,直到从终端读入字符#号时结束输入和输出操作,但程序有错。
#include <stdio.h>
main()
{ FILE *fout; char ch;
fout=fopen('abc.txt','w');
ch=fgetc(stdin);
while(ch!='#')
{ fputc(ch,fout);
ch =fgetc(stdin);
}
fclose(fout);
}
出错的原因是______。
A、函数fopen调用形式有误 B、输入文件没有关闭
C、函数fgetc调用形式有误 D、文件指针stdin没有定义
33、以下能正确定义数组并正确赋初值的语句是______。
A、int N=5,b[N][N]; B、int a[1][2]={{1},{3}};
C、int c[2][]={{1,2},{3,4}}; D、int d[3][2]={{1,2},{3,4}};
34、有以下程序
main()
{ int m[][3]={1,4,7,2,5,8,3,6,9};
int i,j,k=2;
for(i=0;i<3;i++)
{printf("%d ",m[k][i]);}
}
执行后输出结果是______。
A、4 5 6 B、2 5 8 C、3 6 9 D、7 8 9
35、以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。
#define N 10
void arrin(int x[N])
{ int i=0;
while(i<N)
scanf("%d",______);
}
在下划线处应填入的是______。
A、x+I B、&x[i+1] C、x+(i++) D、&x[++i]
36、有以下程序
main()
{ char s[]="\n123\\";
printf("%d,%d\n",strlen(s),sizeof(s));
}
执行后输出结果是______。
A、赋初值的字符串有错 B、6,7 C、5,6 D、6,6
37、设有如下说明
typedef struct
{int n;char c;double x;}STD;
则以下选项中 ,能正确定义结构体数组并赋初值的语句是______。
A、STD tt[2]={{1,'A',62},{2,'B',75}};
B、STD tt[2]={1,"A",62,2,"",75};
C、struct tt[2]={{1,'A'},{2,'B'}};
D、struct tt[2]={{1,"A",62.5},{2,"B",75.0}};
38、以下叙述中正确的是______。
A、全局变量的作用域一定比局部变量的作用域范围大
B、静态(static)类别变量的生存期贯穿于整个程序的运行期间
C、函数的形参都属于全局变量
D、未在定义语句中赋初值的auto变量和static变量的初值都是随机值
39、设char型变量x中的值为10100111,则表达式(2+x)∧(~3)的值是______。
A、10101001 B、10101000 C、11111101 D、01010101
40、有以下程序
main()
{ int i=1,j=1,k=2;
if((j++||k++)&&i++) printf("%d,%d,%d\n",i,j,k);
}
执行后输出的结果是______。
A、1,1,2 B、2,2,1 C、2,2,2 D、2,2,3
41、设有如下定义:
struct ss
{ char name[10];
int age;
char sex;
} std[3],*p=std;
下面各输入语句中错误的是______。
A、scanf("%d",&(*p).age); B、scanf("%s",&std.name);
C、scanf("%c",&std[0].sex); D、scanf("%c",&(p->sex));
42、若有以下程序段:
int m=0xabc,n=0xabc;
m-=n;
printf("%X\n",m);
执行后输出结果是______。
A、0X0 B、0x0 C、0 D、0XABC
43、有以下程序
main()
{ char a,b,c,*d;
a='\'; b='\xbc';
c='\0xab'; d="\0127";
printf("%c%c%c%c\n",a,b,c,*d);
}
编译时出现错误,以下叙述中正确的是______。
A、程序中只有a='\';语句不正确 B、b='\xbc';语句不正确
C、d="\0127";语句不正确 D、a='\';和 c='\0xab';语句都不正确
44、有以下程序
main(int argc,char *argv[])
{ int n,i=0;
while(argv[1][i]!='\0')
{ n=fun(); i++;}
printf("%d\n",n*argc);
}
int fun()
{ static int s=0;
s+=1;
return s;
}
假设程序编译、连接后生成可执行文件exam.exe,若键入以下命令
exam 123↙
则运行结果为______。
A、6 B、8 C、3 D、4
45、有以下程序
main()
{ int i=0,s=0;
do{
if(i%2){i++;continue;}
i++;
s+=i;
} while(i<7);
printf("%d\n",s);
}
执行后输出的结果是______。
A、16 B、12 C、28 D、21
46、以下叙述正确的是______。
A、C语言比其他语言高级
B、C语言可以不用编译就能被计算机识别执行
C、C语言以接近英语国家的自然语言和数学语言作为语言的表达形式
D、C语言出现的最晚、具有其他语言的一切优点
47、若有一些定义和语句
#include <stdio.h>
int a=4,b=3,*p,*q,*w;
p=&a;q=&b;w=q;q=NULL;
则以下选项中错误的语句是______。
A、*q=0; B、w=p; C、*p=va; D、*p=*w;
48、若要说明一个类型名STP,使得定义语句STP s;等价于char *s;,以下选项中正确的是______。
A、typedef STP char *s; B、typedef *char STP;
C、typedef STP *char; D、typedef char* STP ;
49、若有以下程序段(n所赋的是八进制数)。
int m=32767,n=032767;
printf("%d,%o\n",m,n);
执行后输出结果是______。
A、32767,32767 B、32767,032767 C、32767,77777 D、32767,077777
50、有以下程序
void fun(int *a,int i,int j)
{ int t;
if (i<j)
{ t=a[i];a[i]=a[j];a[j]=t;
fun(a,++i,--j);
}
}
main()
{ int a[]={1,2,3,4,5,6},i;
fun(a,0,5);
for(i=0;i<6;i++)
printf("%d ",a[i]);
}
执行后输出结果是______。
A、6 5 4 3 2 1 B、4 3 2 1 5 6 C、4 5 6 1 2 3 D、1 2 3 4 5 6
二、填空题
1、一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的______。
2、设一棵完全二叉树共有500个结点,则在该二叉树中有______个叶子结点。
3、数据的逻辑结构在计算机存储空间中的存放形式称为数据的______。
4、Jackson结构化程序设计方法是英国的M.Jackson提出的,它是一种面向______的设计方法。
5、数据库设计分为以下6个设计阶段:需求分析阶段、______、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。
6、设函数findbig已定义为求3个数中的最大值。以下程序将利用函数指针调用findbig函数。请填空。
main()
{ int findbig(int,int,int);
int (*f)(),x,y,z,big;
f=______;
scanf("%d%d%d",&x,&y,&z);
big=(*f)(x,y,z);
printf("big=%d\n",big);
}
7、若有程序
main()
{ int i,j;
scanf("i=%d,j=%d",&i,&j);
printf("i=%d,j=%d\n ",i,j);
}
要求给i赋10,给j赋20,则应该从键盘输入______。
8、若有以下程序
main()
{ int p,a=5;
if(p=a!=0)
printf("%d\n",p);
else
printf("%d\n",p+2);
}
执行后输出结果是______。
9、若有以下程序
main()
{ int a=4,b=3,c=5,t=0;
if(a<b)t=a;a=b;b=t;
if(a<c)t=a;a=c;c=t;
printf("%d %d %d\n",a,b,c);
}
执行后输出结果为______。
10、若有以下程序
main()
{ int a[4][4]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-31,32,-33,0}};
int i,j,s=0;
for(i=0;i<4;i++)
{ for(j=0;j<4;j++)
{ if(a[i][j]<0) continue;
if(a[i][j]==0) break;
s+=a[i][j];
}
}
printf("%d\n",s);
}
执行后输出结果是______。
11、已有文本文件test.txt,其中的内容为:Hello,everyone!。以下程序中,文件test.txt已正确为"读"而打开,由此文件指针fr指向文件,则程序的输出结果是______。
#include <stdio.h>
main()
{ FILE *fr; char str[40];
......
fgets(str,5,fr);
printf("%s\n",str);
fclose(fr);
}
12、以下程序的输出结果是______。
#define MCRA(m) 2*m
#define MCRB(n,m) 2*MCRA(n)+m
main()
{ int i=2,j=3;
printf("%d\n",MCRB(j,MCRA(i)));
}
13、函数YangHui的功能是把杨辉三角形的数据赋给二维数组的下半三角,形式如下
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
.
.
.
其构成规律是:
(1) 第0列元素和主对角线元素均为1
(2) 其余元素为其左上方和正上方元素之和
(3) 数据的个数每行递增1
请将程序补充完整。
#define N 6
void yanghui(int x[N][N])
{ int i,j;
x[0][0]=1;
for(i=1;i<N;i++)
{ x[i][0]=______=1;
for(j=1;j<i;j++)
x[i][j]=______;
}
}
14、若有以下程序
int f(int x,int y)
{ return(y-x)*x; }
main()
{ int a=3,b=4,c=5,d;
d=f(f(3,4),f(3,5));
printf("%d\n",d);
}
执行后输出结果是______。
15、若有以下程序
main()
{ char a;
a='H'-'A'+'0';
printf("%c\n",a);
}
执行后输出结果是______。
16、以下函数的功能是删除字符串s中的所有数字字符。请填空。
viod dele(char *s)
{ int n=0,i;
for(i=0;s[i];i++)
if(______)
s[n++]=s[i];
s[n]=______;
}
17、设有以下定义
struct ss
{ int info; struct ss *link;}x,y,z;
且已建立如下图所示链表结构:
_____ _____ _____
| | | | | | | | |
| | -|→| | -|→| | |
|__|__| |__|__| |__|__|
x y z
请写出删除结点y的赋值语句______。
18、若有语句
int i=-19,j=i%4;
printf("%d\n",j);
则输出的结果是______。
第一套笔试题答案:
题号 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
答案 |
B |
C |
A |
B |
B |
A |
C |
D |
B |
D |
C |
C |
B |
D |
题号 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
答案 |
B |
A |
D |
D |
A |
A |
B |
B |
D |
C |
B |
C |
C |
D |
题号 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
答案 |
A |
B |
C |
A |
D |
C |
C |
C |
A |
B |
D |
C |
B |
C |
题号 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
|
|
|
|
|
|
答案 |
D |
A |
A |
C |
A |
D |
A |
A |
|
|
|
|
|
|
填空题答案:1、可重用性 或 重用性或 复用性 或 可复用性 2、250 3、模式 或 逻辑模式 或 概念模式 4、数据结构 5、概念设计阶段 或 数据库概念设计阶段 6、findbig
7、i=10,j=20 8、1 9、5 0 3 10、58 11、Hell 12、16 13、x[i][i] 14、x[i-1][j-1]+x[i-1][j] 或 x[i-1][j]+x[i-1][j-1] 15、9 16、7 17、!(isdigit(s[i]) ) 或 !(s[i]>='0'&&s[i]<='9') 或 s[i]<'0'||s[i]>'9' 或 isdigit(s[i])==0 或 *(s+i)<'0'||*(s+i)>'9' 或 !(*(s+i)>='0'&&*(s+i)<='9') 或 !(isdigit(*(s+i))) 或 isdigit(*(s+i))==0 18、'\0' 或 0 或 NULL 19、x.link=&z; 或 x.link=y.link; 或 x->link=y->link; 或 x.link=x.link->link; 或 x.link=*(x.link).link;
20、-3