2010年秋笔试题(含基础含答案)

更新时间:2023-09-28 15:12:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

2010年秋真题

笔试题

第一部分 计算机基础知识

1.微电子技术是信息技术领域中的关键技术,它以集成电路为核心。下列有关集成电路的叙述中,错误的是 (1) 。

A.现代集成电路使用的半导体材料只能是硅(Si),不能使用其它任何半导体材料 B.集成度是指集成电路包含的电子元件数目,可分为SSI、MSI、VLSI等 C.Moore定律指出,单块集成电路的集成度平均18~24个月翻一番

D.我国第二代身份证中嵌入了集成电路芯片,可以实现电子防伪和数字管理功能

2.数据传输速率是数据通信中重要的性能指标。Gb/s是数据传输速率的计量单位之一,其正确含义是 (2) 。

A.每秒兆位 B.每秒千兆位 C.每秒百兆位 D.每秒百万位

3.所谓“变号操作”是指将一个整数变成绝对值相同但符号相反的另一个整数。假设使用补码表示的8位整数X=10010101,则经过变号操作后结果为 (3) 。

A.01101010 B.00010101 C.11101010 D.01101011 4.下列有关PC机主板的叙述中,错误的是 (4) 。 A.主板的物理尺寸没有标准,各厂家均可自行定义

B.主板上包含芯片组,它是PC机各组成部分相互连接和通信的枢纽 C.主板上包含BIOS和CMOS芯片

D.主板上包含CPU插座、内存条插槽及其他类型的插槽 5.下列有关PC机中央处理器(CPU)和内存(内存条)的叙述中,正确的是 (5) 。 A.PC机所采用的CPU都是Intel公司生产的Pentium系列芯片,其它厂商生产的CPU都与之不兼容

B.目前已有双核的微处理器(例如Core2Duo),但还没有四核的微处理器 C.通常来说,DRAM的速度比SRAM的存取速度慢

D.一般来说,一个内存条上仅有一个DRAM或SRAM芯片

6.下列有关PC机I/O总线与I/O接口的叙述中,错误的是 (6) 。 A.目前PC机中协调与管理总线操作的总线控制器包含在主板上的芯片组中 B.总线最重要的性能是数据传输速率,其单位通常为MB/s或GB/s C.SATA接口的数据传输速率通常低于USB2.0的数据传输速率 D.USB连接器有4个引脚,其中一个引脚连接+5V电源

7.下列有关PC机常用I/O设备的叙述中,错误的是 (7) 。

A.目前台式机键盘通常有一百零几个按键,笔记本电脑的键盘有八十几个按键 B.目前流行的鼠标是光电鼠标,其与主机的接口有PS/2与USB两种 C.宽屏LCD显示器的宽高比为16:9或16:10

D.打印速度是打印机的重要性能指标,速度单位通常为dpi 8.下列有关PC机外存储器的叙述中,错误的是 (8) 。

A.目前硬盘的盘片大多为3.5、2.5或1.8英寸,一个硬盘中可有一个或多个盘片 B.目前有些U盘可以模拟硬盘和光盘存储器启动操作系统

288

C.目前光盘存储器主要分为CD、DVD和BD三种,它们均采用红外激光进行读写 D.目前光驱的速度率通常用多少倍速表示

9.下列有关计算机软件的叙述中,错误的是 (9) 。 A.软件一般是指程序及其相关的数据和文档资料 B.从软件的用途考虑,软件可以分为系统软件和应用软件,主要的系统软件有操作系统、语言处理系统和数据库管理系统等。

C.从软件的权益来考虑,软件可以分为商品软件、共享软件和自由软件,共享软件和自由软件均为无版权的免费软件

D.Linux是一种系统软件、自由软件

10.到目前为止,Windows系列操作系统已推出多个版本。在下列版本中,最新的Windows版本是 (10) 。

A.Windows 7 B.Windows Me C.Windows XP D.Windows Vista

11.下列有关Windows XP操作系统功能的叙述中,错误的是 (11) 。 A.系统通过“时间片”轮转策略支持多任务处理 B.系统利用SPOOLing技术进行存储管理

C.在设备管理中引入了缓冲技术,以减少I/O操作的等待时间 D.系统支持PnP功能,并按ACPI标准进行电源管理

12.在因特网中某台主机的IP地址为20.25.30.8,子网掩码为255.255.255.0,那么该主机的主机号为 (12) 。

A.20 B.25 C.30 D.8

13.局域网中需要传输的数据必须预先组织成若干数据帧,每一数据帧的格式如下图所示:

源计算机 MAC地址 目的计算机 MAC地址 控制 信息 有效载荷 (传输的数据) ?

上图中最末部分“?”表示的是 (13) 。

A.协议信息 B校验信息 C.冗余信息 D.结束标志

14.目前网络用户接入因特网有多种方式,例如ADSL、HFC等。通过HFC接入因特网时采用的网络是 (14) 。

A.有线电话网 B.有线电视网 C.无线局域网 D.移动电话网 15.下列网络协议中,直接与电子邮件传输相关的网络协议是 (15) 。 A.FTP B.SMTP C.TELNET D.NNTP 16.下列有关计算机中文本与文本处理的叙述中,错误的是 (16) 。 A.西文字符主要是采用ASCII字符集,基本ASCII字符集共有256个字符 B.我国最早采用的汉字字符集是GB2312,包含6000多个汉字和若干个非汉字字符 C.无论采用何种方式输入汉字,在计算机中保存时均采用统一的汉字内码 D.简单文本和丰富格式文本中字符信息的表示相同,区别在于格式信息的表示 17.彩色图像所使用的颜色描述方法称为颜色模型(即颜色空间)。下列四种颜色模型中,彩色喷墨打印机使用的是 (17) 。

A.RGB B.HSB C.YUV D.CMYK

18.文件的扩展名用于标记文件的类型,用户应该尽可能多地知晓各类文件的扩展名。下列文件中,属于数字声音的文件是 (18) 。

289

A.ABC.RM B.ABC.WMA C.ABC.MKV D.ABC.SWF

19.信息系统软件开发瀑布模型包括系统规划、系统分析、系统设计、系统实施和系统维护等几个阶段。下面各项工作中,属于系统实施阶段的是 (19) 。

A.问题定义 B.可行性研究 C.系统测试 D.绘制E-R图

20.下列有关Microsoft Word 2003 和 Microsoft Excel 2003 软件的叙述中,错误的是 (20) 。

A.利用Word软件编辑文档,可以将其保存为TXT、DOC、RTF和HTM格式文件 B.利用Word软件编辑文档时,可以统计选定文本的字符数

C.在Excel软件中,可以打开(导入)TXT、DBF、HTML格式的文件(数据) D.Excel文件可以设置打开权限密码,但不可以单独设置修改权限密码

第二部分 C语言程序设计

一、选择题(用答题卡答题,答案依次填在21~30答题号内,共10分)

21.以下关于C源程序的叙述中正确的是 (21) 。 A.注释只能出现在程序的开始位置或语句后面 B.一行中不能写多条语句 C.一条语句可以分写在多行中 D.一个源程序只能保存在一个文件中

22.C源程序中的命令#include与#define是在 (22) 阶段被处理的。 A.预处理 B.编译 C.连接 D.执行 23.以下语句中有语法错误的是 (23) 。 A.printf(\ B.printf(\C.printf(\ D.printf(\

24.已有声明“int x=5,y;float z=2;”,以下表达式中语法正确的是 (24) 。 A.y=x%z B.x>0?y=x:y=-x C.y=x/2=z D.y=x=z /2

25.已知字母A的ASCII码是65,字母a的ASCII码是97,变量c中存储了一个大写字母的编码。若要求将c中大写字母编码转换成对应小写字母编码,则以下表达式中不能实现该功能的是 (25) 。

A.C=tolower(c) B.c=c+32 C.c=c-'A'+ 'a' D.c=(c+'A')&-'a'

26.一元二次方程ax2+bx+c=0有两个相异实根的条件是a≠0且b2-4ac>0,以下选项中能正确表示该条件的C语言表达式是 (26) 。

A.a!=0,b*b-4*a*c>0 B.a!=0 || b*b-4*a*c>0 C.a&&b*b-4*a*c>0 D.!a&&b*b-4*a*c>0

27.以下关于break和continue语句的叙述中正确的是 (27) 。 A.break和continue 语句都可以出现在switch语句中 B.break和continue 语句都可以出现在循环语句的循环体中 C.在循环语句和switch语句之外允许出现break和continue语句 D.执行循环语句中的break或continue语句都将立即终止循环

28.若有一函数定义为“int f(int x,int *y){retur x/*y;}”,声明该函数的正确形式是 (28) 。

A.void f(int,int); B.int *f(int,int *); C.int f(int*,int*) D.int f(int,int*)

290

29.已知有声明char a []=\则执行以下语句不会输出字符a的是 (29) 。

A.putchar(*p+4); B.putchar(*(p+4)); C.putchar(a[sizeof(a)-3]); D.putchar(*(a+5)); 30.已有定义和声明:

struct student { int no; char name[20];

struct{int year,month,day;}birth;

}s;

若要求将日期“1989年11月12日”保存到变量s的birth成员中,则能实现这一功能的程序段是 (30) 。

A.year=1989; month=11; day=12; B.s.year=1989; s.month=11; s.day=12; C.brth.year=1989; birth.month=11; birth.day=12 D.s.birth.year=1989; s.birth.month=11; s.birth.day=12;

二、填空题(将答案填写在答题纸的相应题号内,每个答案只占一行,共30分) ? 基本概念

1.若有声明“double n;”则数学公式“3n(4n2-1)”对应的C语言表达式正确形式的 (1) 。

2.已知有声明“char ch;int a;”执行语句“scanf(\);”时如果从键盘输入的数据是“123”,则变量a得到的值是 (2) 。

3.若有声明“int a=0,b=1,c=2;”,执行语句“if(a>0&&++b>0)c++;else c--;”后,变量a、b、c的值分别是 (3) 。

4.若有以下宏定义: #define M(a,b) -a/b

则执行语句“printf(\后输出结果为 (4) 。 5.声明“FILE *p;”中的类型标识符“FILE”是在头文件 (5) 中定义的。 ?

阅读程序

6.以下程序运行时输出到屏幕的结果为 (6) 。

#include enum{A,B,C,D}X; void main() { char s[]=\for(x=B;x<=D;x++) putchar(s[x]); }

7.以下程序运行时输出到屏幕的结果是 (7) 。 #include void main()

{ int s[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i,j;

291

1 for(i=0;i<12;i++) { j=s[i]; c[j]++;

}

for(i=1;i<5;i++)

printf(\

}

8.以下程序运行时输出到屏幕的结果是 (8) 。 #include int fun(int x) { static int c,y; if(c=0)y=1; else y=y+x; c++; return y;

}

void main() { int i;

for(i=0;i<2;i++) printf(\

}

9.以下程序运行时输出到屏幕的结果中第一行是 (9) ,第二行是 (10) 。 #include void fun(int *a,int b) { while(b<0) { *a+=b; b--; }

}

void main() { int x=0,y=3; fun(&x,y);

printf(\

}

10.以下程序运行时输出到屏幕的结果是 (11) 。

#include int f(int x)

{ if(x=0 || x=1) return 3; return x*x-f(x-2); }

void main()

{ printf(\ }

11.以下程序运行时输出到屏幕的结果中第一行是 (12) ,第二行是 (13) 。

292

#include #include void compute(char*s) { int t,r; char op;

for(r=0;isdigit(*s);s++) /*isdigit(*s)判断s指向的字符是否为数字字符 */

r=r*10+*s-'0';

while(*s) { op=*s++;

for(t=0;isdigit(*s);s++) t=t*10+*s-'0'; switch(op)

{ case '+': r=r+t;break; case ' -': r=r-t;break; case '*': r=r*t;break;

case '/': if(t) r=r/t;else{puts(\ }

}

printf(\}

void main()

{ compute(\ compute(\

}

12.以下程序运行时输出到屏幕的结果中第一行是 (14) ,第二行是 (15) ,第三行是 (16) 。算法提示:将Fibonacci数列(1,1,2,3,5,8,13,…)前6个数填入a数组。

#include void main()

{ int i,j,a[N][N]={1},f1=0,f2=1,temp; for(i=1;i

{ a[i][j]=f1+f2; temp=f1; f1=f2; f2=f1+temp; } }

for(i=0;i

printh(\ printh(\ }

293

}

13.以下程序运行时输出屏幕的结果中第一行是 (17) ,第二行是 (18) 。 #include typedef struct

{ int dm; /*产品代码*/ char *mc; /*产品代码*/ long je; /*金额*/ }PRO; void main() { int i,j,k,n=3;

PRO sell[10]={{101, \ for(i=0;i

for(j=i+1j

if(sell[k].dm

for(i=0;i

print(\}

?

完善程序

14.以下程序中函数float fun(int m)的功能是计算s=s1+s2+s3+s4的值,其中s1、s2、s3、s4用下列公式计算。请完善程序以达到要求的功能。

s1=1+s2=1+s3=1+s4=1+算法提示:

s=1+1+1+1+

#includea float fun(int m)

294

1212+

13+

12313314314+…+

1241341441m

12m13m14m122132142+++

+++

+…++…++…+

+

122+

132+

142+…+

1m+

12m+

13m+

14m

{ int i,n; float s=0,t;

for(n=1;n<=m;n++) { t= (19) ; for(i=1;i<5;i++) { t= (20) ; s+=t; } } return s; } main()

{ printf(\ }

15.以下程序将同时出现在数组a和b中的的数据复制到数组c中。例如,如果数组a中的数据是{8,5,7,1,6,4,9},数组b中的数据是{2,9,3,7,4,5,10},则数组c中的结果数据为{5,7,4,9}。以下程序中,in函数判断x中存储的整数是否在a指向的数组前n个元素中出现,如果出现则函数返回1,否则返回0。请完善程序以达到要求的功能。

#include int in(int a [],int n,int x) { int i;

for(i=0;i

void main()

{ int a [7]={8,5,7,1,6,4,9},b[7]={2,9,3,7,4,5,10},c[7]={0},i,j=0; for(i=0;i<7;i++) if( (22) ) c[j++]=a[i] ; for(i=0; (23) ;i++) printf(\

}

16.以下程序根据输入的年份及该年中的第几天,计算并输出这一天的“年/月/日”。例如,若输入“2010,100”则输出“2010/4/10(表示2010年的第100天是4月10日)”。试完善程序以达到要求的功能。

提示:能被4整除并且不能被100整除的年份是闰年,能被400整除的年份也是闰年,其他年份是平年。

#include int leap(int year)

{ int y;

y=year%4=0 && year0!=0 || year@0=0; return y;

}

295

void month_day(int year,int yearday,int *month,int *day)

{ int k,p;

int tab[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,29,31,30,31,30,31,31,30,31,30,31}}; p=leap(year);

for(k=1;yearday> (24) ;k++) yearday=yearday-tab[p][k]; *month=k;

*day= (25) ; }

void main() { int year,days,month,day;

printf(\ scanf(\

if(leap(year)=1&&days<=366 || leap(year)==0&&days<=365) { month_day(year,days, (26) ); printf(\

}

else puts(\}

17.本题所列Bind函数的功能是实现两个多项式的合并操作,试完善Bind函数以实现要求的功能。算法提示:Bind函数所在的程序采用单向链表存储多项式,多项式的每一项分别存储在链表的一个结点中。结点的数据结构如下:

typedef strucy node { int a; /*系数*/ int n; /*指数*/ struct node *next;

}NODE;

函数NODE *Bind(NODE *h1,NODE *h2)的形式参数h1和h2分别是两个按“指数”值降序排列的有序单向链表的头指针(简称这两个链表为h1链表和h2链表),h3是一个新建的按“指数”值降序排列的有序单向链表头指针(简称h3链表)。Bind函数完成h1链表与h2链表中分别存储的两个多项式的合并操作,合并后的多项式保存到h3链表中,函数返回h3链表头指针的值。算法提示:若h1指向结点与h2指向结点的“指数”值相同,则将这两个结点的“系数”值相加并取两结点中任一个结点的“指数”值,结果保存到一个新申请的结点中;如果新结点的“系数”值不为零则将新结点添加到h3链表的尾部,否则放弃新结点;分别修改h1和h2使其指向所在链表下一个结点。若h1指向结点与h2指向结点“指数”值不相同,则将其中“指数”值较大结点的“系数”和“指数”值复制到一个新申请的结点中,将新结点添加到h3链表尾部,修改被复制结点的链表头指针使其指向下一个结点。重复上述操作直到处理完h1链表和h2链表中全部结点为止。 例如:h1链表中存储的多项式为:-2x5+3x4+2x2+3,h2链表中存储的多项式为:2x5+5x4+4x+7, 保存到h3链表中的多项式为:8x4+2x2+4x+10。 h1 h2 -2 2 296

5 5

3 5 4 4 2 4 2 1 3 7 0 0 0 0 h3 8 4 2 2 4 1 10 0 0 #include

NODE *Bind(NODE *h1,NODE *h2) { NODE*h3=NULL,*p1,*p2; while( (27) ) { p1=(NODE*)malloc(sizeof(NODE));

if( (28) &&h1&&h2) { p1->a=h1->a+h2->a;

p1->n=h1->n;

if(p1->a==0){free(p1);p1=0;} h1=h1->next; h2=h2->next; } else

{ if(h1->n>h2->n|| h1&&h2==0)

{ p1->a=h1->a;

p1->n=h1->n; h1=h1->next; }

if(h1->n<h2->n || h2&&h1==0) { p1->a=h2->a;

p1->n=h2->n; h2=h2->next; } } if(p1)

if(h3==NULL)h3=p2=p1; else

{ (29) =p1; p2=p1; } }

if( (30) )p2->next=NULL; return h3; }

10秋参考答案

一、选择题

1.A 2. B 3.D 4.A 5.C 6.C 7.D 11.B 12.D 13.B 14.B 15.B 16.A 17.D 21.C 22 .A 23.B 24.D 25.D 26 .C 27.B 二、填空题

297

8.C 9.C 10.A 18. B 19. C 20.D 28 .D 29. A 30.D 1. 1.0/3*n*(4*n*n-1) 2. 23 3.0 1 1 4. -2 5. stdio.h 6. our 7. 4 3 3 2 8. 13 9. 6 10. 3 11. 6 12. 1 13.19 14. 1 0 0 15. 1 2 0 16. 3 5 8

17. 301 orage 100 18. 101 apple 200 19.1 20.t*1/n 21. a[i]==x 22.in(b,7,a[i]) 23. i

27. h1 || h2 28.h1->n==h2->n 29. p2->next 30. h1==NULL && h2==NULL

298

本文来源:https://www.bwwdw.com/article/snjd.html

Top