计算机笔试复习题笔试填空_第1页
计算机笔试复习题笔试填空_第2页
计算机笔试复习题笔试填空_第3页
计算机笔试复习题笔试填空_第4页
计算机笔试复习题笔试填空_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机笔试复习题

1.如果一个工人可管理多个设施,而一个设施只被一个工人管理,则实体“工人"与实体〃设备〃之间存在—

联系。

标准答案为:一对多或1对多或一对n或1:N或l:n或l:n或1:N或一对m或1:M或l:m

或1:m或1:N

2.算法的复杂度主要包括复杂度和空间复杂度。

标准答案为:时间

3.数据的逻辑结构在计算机存储空间中的存放形式称为数据的。

标准答案为:模式或逻辑模式或概念模式

4.若按功能划分,软件测试的方法通常分为白盒测试方法和测试方法。

标准答窠为:黑盒

5.关系数据库管理系统能实现的专门关系运算包括选择、连接和o

标准答案为:投影

专门的关系运算主要包括对单个关系进行垂直分解(投影操作)或水平分解(选择操作)和对多个关系的

结合(连接操作)等。

6.若有以下定义和语句,则使指针p指向值为36的数组元素的表达式是o

inta[10]={19,23,44,17,37,28,49,36},*p;

p=a;

标准答案为:p=p+7或p+=7或p=7+p

本题的考杏点是通过指针引用数组元素。

值为36的数组元素在数组a[10]中是第8个元素,即武7];在程序中,p二a语句将数组a的首地址赋给了指针

变量P;根据C语言的规定:若有一个指针变量p指向一个数组,则可以用*(p+i)来表示数组元索,*(p+i)和a[i]

是等价的,所以a[7]可以表示为*(p+7),要使指针p指向a[7]只能用p=p+7移动指针,p=p+7也可以使用逆波兰式

表示为p+=7,所以可以填写"p=p+7〃或〃p+=7〃。

故本题答案为:p=p+7或p+=7。

7.函数mycmp(char*s,char*t)的功能是比较字符串s和t的大小,当s等于t时返回0,当s>t返回正值,当

时返回负值。请填空。

mycmp(char*s,char*t)

{while(*s==*t)

{if(*s==,\0*)return0;

++s;++t;

)

return();

)

标准答案为:*s-*t或-*t+*s

本题的考查点是比较字符串的大小。

函数的两个形参是两个字符指针变量,字符串的首地址是指针变量的值,*s和*t表示字符串数组S和t的第

一个字符,在while循环中,是通过S和t值的不断变化改变两个串的第一个字符,要返回s和t的第一个不同字符

的ASCII码的差值,必须使用〃*s-*t〃得出。

故本题答案为:*s-*to

8.若要使指针p指向一个double类型的动态存储单元,请填空。

p=malloc(sizeof(double));

标准答案为:(double*)

本题的考查点是强制类型转换。

函数malloc返回的是void*,所以若要使指针指向一个double类型,则必须进行类型转换,类型转换格式

为:(数据类型*)o

故本题答案是:(double*)o

9.以下函数inverse的功能是使•个字符串按逆序存放。

inverse(str)

charstr[];

(

charm;

inti,j;

for(i=0,j=strlen(str);i<strlen(str)/2;,j-)

(

m=str[i];

str[i]=_

)

标准答案为:i++或++i或i=i+1或i+=l与str[j-l]与str[j-l]=m

本题的考查点是对字符串的操作。

将字符串逆序存放的算法是:将字符串中的第i个字符和第strlen(str)-i个字符交换达到逆序排列的目的。

strlen函数的返回值是形参中说明的字符串的长度。当字符串中的第i个字符和第strlen(str)-i个字符交换完

后,应当交换字符串中第i+1个字符利第(strlen(str)-i)一个字符,故应该对循环变量i的值进行改变,步长为

1,所以第一空应填i++;在循环中,题意为通过中间变量m交换字符串中的第i个字符和第stMcn(str)-i个字符,

所以题中第二、三个空中应当分别填写

故本题答案为:i++和str[jT]和

10.下列程序中字符串中各单词之间有一个空格,则程序的输出结果是。

#include<string.h>

main()

{charstrl[]=〃Howdoyoudo",*pl=strl;

strcpy(str1+strlen(strl)/2,“esshe");

printf(—s\n",pl):

)

标准答案为:Howdoesshe

本题的考杏点是字符串拷贝函数strcpy()。

strlen(strl)是求strl字符串的长度,为13,然后,进行除2运算,结果为6。strcpy()函数是把字符串“es

she”拷贝到strl后的第6个字符后面,也就是说,拷贝后的结果是“Howdoesshe\

故本题答案为:Howdoesshe。

11.下列程序的运行结果是—

main()

unionEXAMPLE

{struct

{intxinty;}in;

inta

intb

}e;

e.a=l;e.b=2;

e.in.x=e.a*e.b;

e.in.y=e.a+e.b;

printf(〃%d,%d\n〃,e.in.x,e.in.y);

)

标准答案为:4,8

本题的考查点是共用体。

C语言规定,共用体中各个成员变量在内存中占用同一段内存单元,即e.in.x和e.a、e.b占用同•段内存单

元;

执行语句e.b=2后,e.in.x=e.a=e.b=2;

执行语句e.in.x=e.a*e.b时,e.a的值为2,e.b的值为2,所以运算得出e.in.x的值为4;

执行语句e.in.y=e.a+e.b时,由于e.in.x和e.a、e.b占用的是同一段内存单元,所以此时的e.a、e.b的值

为4,因此运算得出e.in.y的值为4+4=8。程序最后的打印结果为〃4,

故本题答案为:4,8。

12.在对文件进行操作的过程中,若要求文件的位置回到文件的开头,应当调用的函数是____函数。

标准答案为:rewind或fseek或rewind()或fseek()

本题的考查点是文件的定位。

在对文件进行操作的过程中,若要求文件的位置回到文件的开头,可以调用以下两个函数来完成:

1、rewind函数;

2、fseek函数;

其中,rewind函数的作用是将位置指针重新返回文件的开头,这个函数没有返回值:而fseek函数可以实现

文件指针的定位,它的调用方式如下:

fseek(文件类型,位移量,起始点),起始点用0、1、2表示,0表示“文件开始〃,1表示〃文件当前位置〃,2

表示〃文件末尾“。

故本题答案为:rewind或fseek。

13.以下程序的输出结果是o

voidfun()

(

staticinta=0;

a+=2;

printf(〃%d",a);

main()

(

intcc;

for(cc=l;cc<4;cc++)fun();

printfr\n");

}

标准答案为:246

考生答案为:

本题的考查点是函数的调用。

由于a是static类型的数据,语句staticinta=0;只是在初次给a分配内存的时候才给它赋值0。由于它是

静态的,所以即使是离开了它的作用域,值仍然保留。函数第一次调用时a被赋值2,然后每调用一次增加2。

故本题答案为:246。

笔试2

1.数据库系统的三级模式分别为—模式、内部级模式与外部级模式。

标准答案为:概念或概念级

数据库系统在其内部具有三级模式及二级映射,三级模式分别是概念级模式、内部级模式和外部级模式。

概念模式是数据库系统中全局数据逻辑结构的描述,是全体用户(应用)公共数据视图。

内模式又称物理模式,它给出了数据库物理存储结构与物理存取方法,如数据存储的文件结构、索引、集

簇及hash等存取方式与存取路径,内模式的物理性主要体现在操作系统及文件级上,它还未深入到设备级上(如

磁盘及磁盘操作)

’外模式也称子o模式或用户模式,它是用户的数据视图,也就是用户所见到的数据模式,它由概念模式推导

而出。

2.若按功能划分,软件测试的方法通常分为白盒测试方法和测试方法。

标准答案为:黑盒

软件测试的方法有三种:动态测试、静态测试和正确性证明。设计测试实例的方法一般有两类:黑盒测试

方法和白盒测试方法。在使用黑盒法设计测试实例时,测试人员将程序看成•个〃黑盒〃,也就是说,他不关心

程序内部是如何实现的,而只是检查程序是否符合它的〃功能说明〃,所以使用黑盒法设计的测试用例完全是根

据程序的功能说明来设计的;如用白盒法,则需要了解程序内部的结构,此时的测试用例是根据程序的内部逻

辑来设计的,如果想用白盒法发现程序中所有的错误,则至少必须使程序中每种可能的路径都执行一次。实际

上这是不可能的,即使测遍所有的路径,仍不一定能保证符合相应的功能要求。

3.在面向对象方法中,信息隐蔽是通过对象的性来实现的。

标准答案为:封装

软件工程的基本原则包括抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。

信息隐蔽是指采用封装技术,将程序模块的实现细节隐藏起来,使模块接口尽量简单。

4.关系模型的数据操纵即是建立在关系上的数据操纵,一般有、增加、删除和修改四种操作。

标准答案为:查询

关系模型的数据操纵即是建立在关系上的数据操纵,一般有查询、增加、删除和修改四种操作。

数据杳询:用户可以杳询关系数据库中的数据,它包括•个关系内的否询以及多个关系间的杳询。

数据删除的基本单位是一个关系内的元组,它的功能是将指定关系内的指定元组删除。

数据插入仅对一个关系而言,在指定关系中插入一个或多个元组。

数据修改是在一个关系中修改指定的元组和属性。

5.在最坏情况下,冒泡排序的时间复杂度为。

标准答案为:n(n-l)/2或n*(n-l)/2或0(n(n-l)/2)或0(n*(n-l)/2)

冒泡排序法是一种最简单的交换类排序方法,它是通过相邻数据元素的交换逐步将线性表变成有序。

假设线性表的长度为n,则在最坏的情况下,冒泡排序需要经过n/2遍的从前往后的扫描和n/2遍的从后往前

的扫描,需要的比较次数为n(n-l)/2。

6.以下程序的功能是将字符串s中的数字字符放入d数组中,最后输出d中的字符串。

例如,输入字符串:abcl23edf456gh,执行程序后输出:123456。请填空。

#include<stdio.h>

^include<ctype.h>

mainO

{chars[80],d[80];inti,j;

gets(s);

for(i=j=0;s[i]!=\0*;i++)

if(){d[j]=s[i];j++;}

d[j]=,\O,;

puts(d);

标准答案为:s[i]>='O'&&s[i]<='9'或isdigit(s[i])或s[i]>=48&&s[i]<=57或

s[i"='9'&&s[i]>=,0'或,9'>=s[i]&&,0,(=s[i]

本题的考查点是C程序设计。

根据程序可以看出要填空的内容就是:循环碰到数字时将字符串s中的数字字符放入d数组的条件。

7.以下程序的功能是调用函数fun计算:1n=1-2+3-4+…+970,并输出结果。请填空。

intfun(intn)

{intm=0,f=l,i;

for(i=l;i<=n;i++)

{m+=i*f;

f=;

)

returnm;

)

mainO

{printf("m=%d\n",);}

标准答案为:-f或f*-l或-l*f或f*(-1)或(T)*f与fun(10)

本题的考杏点是C程序设计。根据程序写出运行结果。

考察的知识点主要是函数的调用。本题利用一个fun函数来完成题目要求的计算。程序中f起的作用是控制

i*f的符号,看的出,偶数位都为负值,所以f的值为(T)Xi+l),最后要求输出m的值,在输出中调用fun函数,

并把实参10传给n。

8.以下程序运行后的输出结果是o

main()

{inti,n[]={0,0,0,0,0};

for(i=l;i<=4;i++)

{n[i]=n[i-l]*2+l;

printf('%d",n[i]);

)

)

标准答案为:13715

本题的考杏点是C程序设计。根据程序写出运行结果。

该程序考察的是数组的知识点,n是一个有5个元素,且元素值全为0的数组。程序运行过程时先进行for循

环,i=l时,n[l]=n[0]*2+l,此时n[l]=l:执行i++;i=2时,再进行循环,n[2]=n[l]*2+L此时n[2]=3,再执

行i++,此时i=3,继续循环,n[3]=n[2]*2+l,此时n[3]=7,然后i=4时,n[4]=n[3]*2+l,此时n[4]=15。循环

结束。注意输出函数中刎后有空格。

8.以下程序运行后输入:3,abcdeZ,则输出结果是.

Sinclude<string.h>

move(char*str,intn)

{chartemp;inti;

temp=str[n-l];

for(i=n-l;i>0;i-)str[i]=str[i-l];

str[0]=temp;

}

mainO

{chars[50];intn,i,z;

scanf("%d,%s”,&n,s);

z=strlen(s);

for(i=l;i<=n;i++)move(s,z);

printf("%s\n",s);

标准答案为:cdeab

本题的考查点是C程序设计。调试程序,把不完善的程序进行修改和补充,使之能得到正确的结果。

程序中的move函数的作用是将输入数组中的元素从后面开始,两两交换,循环次数用n控制。输入3,abcde<

回车》后主函数开始执行,其中n=3,s[50]={abcde},z=5,move(s,5),将实参带到形参中temp=str[4],即把数

组中最后一个元素存在temp中,也就是然后进行循环,i从4开始循环,str[4]等于原来的str[3],即d,依

次类推。反复循环后,输入数字被反复颠倒。具体的循环过程如下:i=l时,调用move函数,循环5次后,输出

eabed;i=2时,调用move函数,循环5次后,输出deabc;i=3时,调用move函数,循环5次后,输出cdeab。

9.以下程序运行后的输出结果是o

main()

{intp=30;

printf(,,%d\n,\(p/3>0?p/10:p%3));

)

标准答案为:3

本题的考查点是C程序设计。

考察的主要知识点是条件表达式。(p/3>0?p/10:p%3)是一个条件表达式。条件表达式的•般形式为:表

达式1?表达式2:表达式3。条件表达式的执行顺序为:先求解表达式1,若为真则求解表达式2,此时表达式2的

值就是整个条件表达式的值。若表达式2的的值为假,则求解表达式3,表达式3的值就是整个条件表达式的值。

条件运算符的结合方向为“自右至左”。本题中p=30,p/3>0为真,所以求解p/10的值为3,即为整个表达式

的值。

10.已有定义如下:

structnode

{intdata;

structnode*next;

}*P;

以下语句调用malloc函数,使指针p指向一个具有structnode类型的动态存储空间。请填空。

p=(structnode*)malloc(__);

标准答案为:sizeof(structnode)或4

本题的考杳点是C程序设计。

malloc(sizeof(structnode))的作用是开辟,个长度为sizeof(structnode)的内存区。在•般系统中,

malloc带回的是指向字符型数据的指针。”(structnode*)〃的作用是使malloc返回的指针转换为指向struct

node类型数据的指针。在这里如果*省略,就变成转换为structnode类型了,而不是指针类型了。

10.以下程序运行后的输出结果是O

(注:如果结果中含有回车,可加一空格写在一行,例如:

111

111

111可以写成111111111)

main()

{inti,j,a[][3]={l,2,3,4,5,6,7,8,9};

for(i=0;i<3;i++)

for(j=i+l;j<3;j++)

for(i=0;i<3;i++)

{for(j=0;j<3;j++)printf(z/%d\a[i][j]);

printf(〃\n");

}

}

标准答案为:123

056

009或123

056

009或123056009

本题的考查点是C程序设计。根据程序写出运行结果。

程序开头定义了•个三行三列的数组。即:

1,2,3

4,5,6

7,8,9

进入循环,for(i=0:i<3;i++)

for(j=i+l;j<3;j++)a[j][i]=O;

是把a[2][0],三个位置上的元素值赋为0,注意输出函数中%(1后有空格。所以根据输出条件,

程序最后的运行结果为:

123

056

009

11.请在以下程序第♦行的下划线处填写适当内容,使程序能正常运行。

(double,double);

main()

{doublex,y;

scanf&x,&y);

printmax(x,y));

}

doublemax(doublea,doubleb)

{return(a>b?a:b);}

标准答案为:doublemax或externdoublemax

本题考查的是函数的声明。

在C语言中,如果用户自己定义的被调函数在主调函数的下面,则主调函数中必须对被调函数作声明,即向

编译系统声明将要调用此函数,并将有关信息通知编译系统。

函数声明的•般形式为:

(1)函数类型函数名(参数类型1,参数类型2…)

(2)函数类型函数名(参数类型1,参数名1,参数类型2,参数名2…)

本题使用的是第1种声明形式。

故本题的答案为doublemaxo

12.以下程序运行后的输出结果是o

inta=5;

fun(intb)

{staticinta=10;

a+=b++;

printf(z,%d”,a);

}

mainO

{intc=20;

fun(c);

a+=c++;

printf("%d\n",a);

}

标准答案为:3025

本题的考查点是C程序设计。根据程序写出运行结果。

本题定义了-■■个fun函数,其功能是:把输入值加10,主要是通过a+=b++来实现的,在这里,b先使用,后

自增,所以a=a+b,返回a的值,本题将主函数中的c=20带入到fun函数中,a的值变为30,执行函数中的printf

语句,输出30,此时函数调用结束,a值也已经释放,此时a=5,c=20,执行a+=c++,BPa=a+c,所以此时a值为

25。注意输出函数中刎后有空格。

笔试三

1.与结构化需求分析方法相对应的是方法。

标准答案为:结构化设计

与结构化需求分析方法相对应的是结构化设计方法。结构化设计就是采用最佳的可能方法设计系统的各个

组成部分以及各个成分之间的内部联系的技术。也就是说,结构化设计是这样一个过程,它决定用哪些方法把

哪些部分联系起来,才能解决好某个具体且有清楚定义的问题。

2.软件维护活动包括以下几类:改正性维护、适应性维护、维护和预防性维护。

标准答案为:完善性

软件维护活动包括以下几类:改正性维护、适应性维护、完善性维护和预防性维护。改正性维护是指在软

件交付使用后,为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和

改正错误的过程;适应性维护是指为了使软件适应变化,而去修改软件的过程;完善性维护是指为了满足用户

对软件提出的新功能与性能要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、

提高软件的可维护性;预防性维护是为了提高软件的可维护性、可靠性等,为以后的进一步改进软件打下良好

基础。

3.面向对象的程序设计方法中涉及的对象是系统中用来描述客观事物的一个。

标准答案为:实体

面向对象的程序设计方法中涉及的对象是系统中用来描述客观事物的•个实体,是构成系统的•个基本单

位,它由一组表示其静态特征的属性和它可执行的一组操作组成。

4.一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体“项目主管“与实体“项目”的联系属于

的联系。

标准答案为:一对多或1对多或一对n或1:N或l:n或1:n或1:N或一对m或1:M

或l:m或1:m或1:N

两个实体集间的联系实际上是实体集间的函数关系,这种函数关系可以有3种,即一对一(1:1)的联系、

•对多(1:N)或多对■(N:1)的联系和多对多(N:N)的联系。

5,顺序存储方法是把逻辑上相邻的结点存储在物理位置的存储单元中。

标准答案为:相邻

常用的存储表示方法有4种,顺序存储、链式存储、索引存储、散列存储。其中,顺序存储方法是把逻辑上

相邻的结点存储在物理位置也相邻的存储单元中。

6.以下sum函数的功能是计算下列级数之和。

S=1+x+x"2/2!+x"3/3!+••,+x"n/n!

请给函数中的各变量正确赋初值。

doublesum(doublex,intn)

{inti;

doublea,b,s;

for(i=l;i<=n;i++)

(a=a*x;b=b*i;s=s+a/b;}

returns;

)

标准答案为:a=l.0;b=l.0;s=l.0;或a=l.0;s=l.0;b=l.0;或b=l.0;s=l.0;a=l.0;或

s=l.0;a=l.0;b=l.0;

各种数值型数据间进行混合运算时,不同类型的数据要先转换成同•类型,然后进行运算。如果♦个数据

是float型或double型,则另一数据要先转换为double型,结果为double型。

7.下面程序的运行结果是:o

intf(inta[],intn)

{if(n>l)returna[O]+f(&a[l],n-1);

clsereturna[0];

}

mainO

{intaa[3]={l,2,3},s;

s=f(&aa[0],3);printf("%d\n”,s);

标准答案为:6

本题考查的是递归调用。

aa[3]={l,2,3),n=3,满足条件n>l,执行a[O]+fnT);后为1+f2),此时n=2,仍满足条件

n>l,继续调用a[O]+f(&a[l],n-l);,因为此时传递的是a[l]的地址,这时的a[0]应当为原数组中的a[l],即为

2,执行2[0]+。&&[1],11-1);后为1+2+n&2[1],1),因为第二次调用后数组中的元素为2,3,所以此次的all]应

当为3,调用后的a[0]为3。所以最后结果为1+2+3=6。

7.下面rotate函数的功能是:将n行n列的矩阵A转置为A',例如:

|1234|

|5678|

当A=j-9101112|

|131415161

|15913

|261014

则"371115

|481216

请填空。

#defineN4

voidrotate(inta[][])

{inti,j,t;

for(i=0;i<N;i++)

for(j=0;j++)

{t=a[i][j];

a[j][i]=t;

)

标准答案为:j<=i或i>=j与a[i][j]=a[j][i]

将矩阵转置就是将行列数互换,即第二行第三列的数与第三行第二列的数进行互换。所以第一个空应当填

入j<=i,第二空填入a[i][i]。

8.

已知字符A的ASCII码值为65,以下语句的输出结果是。

charch='B';

printf(//%c%d\n,z,ch,ch);

标准答案为:B66

printf函数的一般格式为

printf(格式控制,输出表列)

“格式控制”是用双引号括起来的字符串,也称〃转换控制字符串”。

1、d格式符,用来输出十进制整数。

2、c格式符,用来输出一个字符。

已知字符A的ASCH码值为65,则字符B的ASCH码值为66,所以本题输出结果为:B66

9.以下sstrcpy。函数实现字符串复制,即将I所指字符串复制到s所指内存空间中,形成一个新字符串s。请填

空。

voidsstrcpy(char*s,char*t)

{while(*s++=___);}

main()

{charstri[100],str2[]=*abcdefghz,;

sstrcpy(strl,str2);

printf(〃%s\n〃,strl);

}

标准答案为:*t++

要使sstrcpy。函数实现字符串复制,必须将t字符串中的每个字符逐个拷到s字符串中,所以可以使用

*s=*t;s++;t++o或者可以写成*s++=*t++,本题只有•个空,可以填入牡++。

10.有以下程序

main()

{intn=0,HFI,X=2;

if(!n)x-=l;

if(m)x-=2;

if(x)x-=3;

printf(*%d\n*,x);

)

执行后输出的结果是。

标准答案为:-4

因为n=0,所以!n为真,执行x-=l;即x=xT,因为x=2,所以x=xT=2T=l;

m=l,为真,执行x-=2;即x=x-2,由上得出x=L所以x=x-2=l-2=T;

x=-l,为真,执行x-=3;即x=x-3,山上得出x=T,所

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论