第四套笔试题
一、选择题
1、按条件f对关系R进行选择,其关系代数表达式为______。
A、 B、 C、бf(R) D、∏f(R)
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、在单链表中,增加头结点的目的是______。
A、方便运算的实现 B、使单链表至少有一个结点
C、标识表结点中首结点的位置 D、说明单链表是线性表的链式存储实现
8、设有下列二叉树:
对此二叉树中序遍历的结果为______。
A、ABCDEF B、DBEAFC C、ABDECF D、DEBFCA
9、用树形结构来表示实体之间联系的模型称为______。
A、关系模型 B、层次模型 C、网状模型 D、数据模型
10、软件开发的结构化生命周期方法将软件生命周期划分成______。
A、定义、开发、运行维护 B、设计阶段、编程阶段、测试阶段
C、总体设计、详细设计、编程调试 D、需求分析、功能定义、系统设计
11、有以下程序
main()
{char str[][10]={"China","Beijing"},*p=str;
printf("%s\n",p+10);
}
程序运行后的输出结果是______。
A、China B、Bejing C、ng D、ing
12、以下定义语句中正确的是______。
A、char a='A'b='B'; B、float a=b=10.0;
C、int a=10,*b=&a; D、float *a,b=&a;
13、有以下说明和定义语句
struct student
{ int age; char num[8];};
struct student stu[3]={{20,"200401"},{21,"200402"},{19,"200403"}};
struct student *p=stu;
以下选项中引用结构体变量成员的表达式错误的是______。
A、(p++)->num B、p->num C、(*p).num D、stu[3].age
14、有以下程序
main()
{ char a,b,c,d;
scanf("%c,%c,%d,%d",&a,&b,&c,&d);
printf("c,%c,%c,%c\n",a,b,c,d);
}
若运行时从键盘上输入:6,5,65,66↙。则输出结果是______。
A、6,5,A,B B、6,5,65,66 C、6,5,6,5 D、6,5,6,6
15、有以下定义语句double a,b;int w; long c;
若各变量已正确赋值,则下列选项中正确的表达式是______。
A、a=a+b=b++ B、w%((int)a+b) C、(c+w)%(int)a D、w=a==b;
16、有以下程序
main()
{ char a='a',b;
printf("%c,",++a);
printf("%c\n",b=a++);
}
程序运行后的输出结果是______。
A、b,b B、b,c C、a,b D、a,c
17、以下叙述中正确的是______。
A、局部变量说明为static存储类,其生存期将得到延长
B、全局变量说明为static存储类,其作用域将被扩大
C、任何存储类的变量在未赋初值时,其值都是不确定的
D、形参可以使用的存储类说明符与局部变量完全相同
18、设有以下定义和语句
int a[3][2]={1,2,3,4,5,6},*p[3];
p[0]=a[1];
则*(p[0]+1)所代表的数组元素是______。
A、a[0][1] B、a[1][0] C、a[1][1] D、a[1][2]
19、有以下程序
main()
{ int a=666,b=888;
printf("%d\n",a,b);
}
程序运行后的输出结果是______。
A、错误信息 B、666 C、888 D、666,888
20、有以下程序:
main()
{ int i;
for(i=0;i<3;i++)
switch(i)
{
case 0:printf("%d",i);
case 2:printf("%d",i);
default:printf("%d",i);
}
}
程序运行后的输出结果是______。
A、022111 B、021021 C、000122 D、012
21、已有定义:int i,a[10],*p;,则合法的赋值语句是______。
A、p=100; B、p=a[5]; C、p=a[2]+2; D、p=a+2;
22、下列条件语句中,功能与其他语句不同的是______。
A、if(a) printf("%d\n",x); else printf("%d\n",y);
B、if(a==0) printf("%d\n",y); else printf("%d\n",x);
C、if (a!=0) printf("%d\n",x); else printf("%d\n",y);
D、if(a==0) printf("%d\n",x); else printf("%d\n",y);
23、有以下程序
main()
{ int m=3,n=4,x;
x=-m++;
x=x+8/++n;
printf("%d\n",x);
}
程序运行后的输出结果是______。
A、3 B、5 C、-1 D、-2
24、有以下程序
main()
{ int i=0,s=0;
for (;;)
{
if(i==3||i==5) continue;
if (i==6) break;
i++;
s+=i;
};
printf("%d\n",s);
}
程序运行后的输出结果是______。
A、10 B、13 C、21 D、程序进入死循环
25、以下程序的功能是:建立一个带有头结点的单向链表,并将存储在数组中的字符依次转储到链表的各个结点中,请为下划线处有号码的选择出正确的选项。
#include <stdlib.h>
stuct node
{ char data; struct node *next;};
______ CreatList(char *s)
{ struct node *h,*p,*q);
h=(struct node *) malloc(sizeof(struct node));
p=q=h;
while(*s!='\0')
{ p=(struct node *) malloc(sizeof(struct node));
p->data=___(49)___ ;
q->next=p;
q=______ ;
s++;
}
p->next='\0';
return h;
}
main()
{ char str[]="link list";
struct node *head;
head=CreatList(str);
...
}
A、*s B、s C、*s++ D、(*s)++
26、有以下程序:
main()
{int a=3,b=4,c=5,d=2;
if(a>b)
if(b>c)
printf("%d",d++ +1);
else
printf("%d",++d +1);
printf("%d\n",d);
}
程序运行后的输出结果是______。
A、2 B、3 C、43 D、44
27、与十进制数200等值的十六进制数为______。
A、A8 B、A4 C、C8 D、C4
28、有以下程序
int f(int a)
{ return a%2; }
main()
{ int s[8]={1,3,5,2,4,6},i,d=0;
for (i=0;f(s[i]);i++) d+=s[i];
printf("%d\n",d);
}
程序运行后的输出结果是______。
A、9 B、11 C、19 D、21
29、设有定义语句:char c1=92,c2=92;,则以下表达式中值为零的是______。
A、c1^c2 B、c1&c2 C、~c2 D、c1|c2
30、s1和s2已正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指串时,执行语句S;,则以下选项中正确的是______。
A、if(s1>s2) S; B、if(strcmp(s1,s2)) S;
C、if(strcmp(s2,s1)>0) S; D、if(strcmp(s1,s2)>0) S;
31、有以下程序
main()
{ int m=0256,n=256;
printf("%o %o\n",m,n);
}
程序运行后的输出结果是______。
A、0256 0400 B、0256 256 C、256 400 D、400 400
32、设有定义语句
int x[6]={2,4,6,8,5,7},*p=x,i;
要求依次输出x数组6个元素中的值,不能完成此操作的语句是______。
A、for(i=0;i<6;i++) printf("%2d",*(p++));
B、for(i=0;i<6;i++) printf("%2d",*(p+i));
C、for(i=0;i<6;i++) printf("%2d",*p++);
D、for(i=0;i<6;i++) printf("%2d",(*p)++);
33、有以下程序
#include <stdio.h>
main()
{int a[]={1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL;
*q=*(p+5);
printf("%d %d\n",*p,*q);
}
程序运行后的输出结果是______。
A、运行后报错 B、6 6 C、6 11 D、5 10
34、有以下程序
main()
{ char s[]="Yes\n/No",*ps=s;
puts(ps+4);
*(ps+4)=0;
puts(s);
}
程序运行后的输出结果是______。
A、n/No
Yes
/No |
B、/No
Yes |
C、/NO
Yes
/No |
D、/No
Yes |
35、下列选项中,不能用作标识符的是______。
A、_1234_ B、_1_2 C、int_2_ D、2_int_
36、有以下程序
main()
{char s[]="ABCD",*p;
for(p=s+1;p<s+4;p++)printf("%s\n",p);
}
程序运行后的输出结果是______。
A、ABCD
BCD
CD
D |
B、A
B
C |
C、B
C
D |
D、BCD
CD
D |
37、在函数调用过程中,如果函数funA调用了函数 funB,函数funB又调用了函数funA,则______。
A、称为函数的直接递归调用 B、称为函数的间接递归调用
C、称为函数的循环调用 D、C语言中不允许这样的递归调用
38、若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是______。
A、abs(x-y)<10 B、x-y>-10&&x-y<10
C、!(x-y)<-10||!(y-x)>10 D、(x-y)*(x-y)<100
39、有如下程序
#include <stdio.h>
main()
{FILE *fp1;
fp1=fopen("f1.txt","w");
fprintf(fp1,"abc");
fclose(fp1);
}
若文本文件f1.txt中原有内容为:good,则运行以上程序后文件f1.txt中的内容为______。
A、goodabc B、abcd C、abc D、abcgood
40、有以下程序
void fun(int *a,int i,int j)
{ int t;
if(i<j)
{ t=a[i];a[i]=a[j];a[j]=t;
i++; j--;
fun(a,i,j);
}
}
main()
{ int x[]={2,6,1,8},i;
fun(x,0,3);
for(i=0;i<4;i++) printf("%2d",x[i]);
printf("\n");
}
程序运行后的输出结果是______。
A、1 2 6 8 B、8 6 2 1 C、8 1 6 2 D、8 6 1 2
41、程序中对fun函数有如下说明
void *fun();
此说明的含义是______。
A、fun函数无返回值 B、fun函数的返回值可以是任意的数据类型
C、fun函数的返回值是无值型的指针类型
D、指针fun指向一个函数,该函数无返回值
42、以下能正确定义二维数组的是______。
A、int a[][3]; B、int a[][3]={2*3};
C、int a[][3]={}; D、int a[2][3]={{1},{2},{3,4}};
43、有以下程序
main()
{ unsigned int a;
int b=-1;
a=b;
printf("%u",a);
}
程序运行后的输出结果是______。
A、-1 B、65535 C、32767 D、-32768
44、有以下程序
main()
{ int a=7,b=8,*p,*q,*r;
p=&a;q=&b;
r=p; p=q;q=r;
printf("%d,%d,%d,%d\n",*p,*q,a,b);
}
程序运行后的输出结果是______。
A、8,7,8,7 B、7,8,7,8 C、8,7,7,8 D、7,8,8,7
45、若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是______。
A、for(i=1,p=1;i<=5;i++) p*=i;
B、for(i=1;i<=5;i++){ p=1; p*=i;}
C、i=1;p=1;while(i<=5){p*=i; i++;}
D、i=1;p=1;do{p*=i; i++; }while(i<=5);
46、有以下程序
main()
{ int x[]={1,3,5,7,2,4,6,0},i,j,k;
for(i=0;i<3;i++)
for (j=2;j>=i;j--)
if(x[j+1]>x[j]){ k=x[j];x[j]=x[j+1];x[j+1]=k;}
for (i=0;i<3;i++)
for(j=4;j<7-i;j++)
if(x[j]>x[j+1]){ k=x[j];x[j]=x[j+1];x[j+1]=k;}
for (i=0;i<8;i++) printf("%d",x[i]);
printf("\n");
}
程序运行后的输出结果是______。
A、75310246 B、01234567 C、76310462 D、13570246
47、结构化程序由三种基本结构组成,三种基本结构组成的算法______。
A、可以完成任何复杂的任务 B、只能完成部分复杂的任务
C、只能完成符合结构化的任务 D、只能完成一些简单的任务
48、以下程序的功能是:建立一个带有头结点的单向链表,并将存储在数组中的字符依次转储到链表的各个结点中,请为下划线处有号码的选择出正确的选项。
#include <stdlib.h>
stuct node
{ char data; struct node *next;};
___(48)___ CreatList(char *s)
{ struct node *h,*p,*q;
h=(struct node *) malloc(sizeof(struct node));
p=q=h;
while(*s!='\0')
{ p=(struct node *) malloc(sizeof(struct node));
p->data= ______ ;
q->next=p;
q= ______ ;
s++;
}
p->next='\0';
return h;
}
main()
{ char str[]="link list";
struct node *head;
head=CreatList(str);
...
}
A、char * B、struct node C、struct node * D、char
49、若有以下说明和语句
int c[4][5],(*p)[5];
p=c;
能够正确引用c数组元素的是______。
A、p+1 B、*(p+3) C、*(p+1)+3 D、*(p[0]+2)
50、以下程序的功能是:建立一个带有头结点的单向链表,并将存储在数组中的字符依次转储到链表的各个结点中,请为下划线处有号码的选择出正确的选项。
#include <stdlib.h>
stuct node
{ char data; struct node *next;};
______ CreatList(char *s)
{ struct node *h,*p,*q);
h=(struct node *) malloc(sizeof(struct node));
p=q=h;
while(*s!='\0')
{ p=(struct node *) malloc(sizeof(struct node));
p->data=______ ;
q->next=p;
q=___(50)___ ;
s++;
}
p->next='\0';
return h;
}
main()
{ char str[]="link list";
struct node *head;
head=CreatList(str);
...
}
A、p->next B、p C、s D、s->next
二、填空题
1、软件的需求分析阶段的工作,可以概括为四个方面:______、需求分析、编写需求规格说明书和需求评审。
2、如果一个工人可管理多个设施,而一个设施只被一个工人管理,则实体"工人"与实体"设备"之间存在______联系。
3、数据字典是各类数据描述的集合,它通常包括5个部分,即数据项、数据结构、数据流、______和处理过程。
4、在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种:前序遍历、______遍历和后序遍历。
5、数据结构包括数据的逻辑结构、数据的 ______以及对数据的操作运算。
6、以下程序运行后的输出结果是______。
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));
}
7、以下程序运行后的输出结果是______。
main()
{ char a[]="123456789",*p;
int i=0;
p=a;
while(*p)
{ if(i%2==0) *p='*';
p++;i++;
}
puts(a);
}
8、以下程序运行后的输出结果是______。
main()
{ int p[7]={11,13,14,15,16,17,18};
int i=0,j=0;
while(i<7 && p[i]%2==1) j+=p[i++];
printf("%d\n",j);
}
9、以下程序运行后的输出结果是______。
main()
{ int a,b,c;
a=25;
b=025;
c=0x25;
printf("%d %d %d\n",a,b,c);
}
10、以下程序运行后的输出结果是______。
main()
{
int a[4][4]={{1,2,3,4},{5,6,7,8},{11,12,13,14},{15,16,17,18}};
int i=0,j=0,s=0;
while(i++<4)
{
if(i==2||i==4) continue;
j=0;
do{ s+= a[i][j]; j++; } while(j<4);
}
printf("%d\n",s);
}
11、以下程序运行后的输出结果是______。
main()
{ int x=1,y=0,a=0,b=0;
switch(x)
{case 1:switch(y)
{ case 0:a++; break;
case 1:b++; break;
}
case 2:a++;b++; break;
}
printf("%d %d\n",a,b);
}
12、以下程序段的输出结果是______。
int i=9;
printf("%o\n",i);
13、以下程序中, for循环体执行的次数是______。
#define N 2
#define M N+1
#define K M+1*M/2
main()
{ int i;
for(i=1;i<K;i++)
{ ... }
...
}
14、以下程序通过函数SunFun和f(x),x=0到10,这里f(x)=x^2+1,由F函数实现,请填空。
main()
{ printf("The sun=%d\n",SunFun(10));}
SunFun(int n)
{ int x,s=0;
for(x=0;x<=n;x++)s+F(______);
return s;
}
F(int x)
{ return (______);}
15、以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和,请填空。
main()
{ int i,a[20],sum,count;
sum=count=0;
for(i=0;i<20;i++) scanf("%d",______ );
fro(i=0;i<20;i++)
{ if(a[i]>0)
{ count++;
sum+= ______ ;
}
}
printf("sum=%d,count=%d\n",sum,count);
}
16、以下程序中,函数SumColumMin的功能是:求出M行N列二维数组每列元素中的最小值,并计算它们的和值。和值通过形参传回主函数输出。请填空。
#define M 2
#define N 4
void SumColumMin(int a[M][N],int *sum)
{ int i,j,k,s=0;
for(i=0;i<N;i++)
{ k=0;
for(j=1;j<M;j++)
if(a[k][i]>a[j][i])k=j;
s+=______ ;
}
______ =s;
}
main()
{ int x[M][N]={3,2,5,1,4,1,8,3},s;
SumColumMin(______);
printf("%d\n",s);
}
第四套笔试题答案
题号 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
答案 |
C |
C |
A |
C |
C |
D |
A |
B |
B |
A |
B |
C |
D |
A |
题号 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
答案 |
C |
A |
A |
C |
B |
B |
D |
D |
D |
D |
A |
A |
C |
A |
题号 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
答案 |
A |
D |
C |
D |
A |
B |
D |
D |
B |
C |
C |
C |
C |
A |
题号 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
|
|
|
|
|
|
答案 |
B |
C |
B |
A |
C |
C |
D |
B |
|
|
|
|
|
|
填空题答案 1、需求获取 2、一对多 3、数据存储 4、中序 5、存储结构 6、gae 7、*2*4*6*8* 8、24 9、25 21 37 10、92 11、 2 1 12、11 13、4 14 、x 15、 x*x+1
16、&a[i] 17、 a[i] 18、a[k][i] 19、 *sum 20、 x,&s