12009秋季C语言笔试试卷第一部分:计算机基础知识1.下列关于个人移动通信的叙述中,错误的是__A__A.第1代个人移动通信(简称1G)采用的通信技术是数字通信技术B.目前广泛使用的GSM手机采用的通信技术属于第2代移动通信技术(简称2G)C.第3代移动通信技术(简称3G)将无线通信与互联网、多媒体通信相结合D.3G有多个国际技术标准,其中也有我国自主制定的3G技术标准。2.在下列有关集成电路的叙述中,正确的是2。DA.现代集成电路所使用的半导体材料都是硅B.所有的集成电路都是数字集成电路C.Moore定律认为单块集成电路的集成度平均每年翻一番D.Intel公司微处理器产品Core2Duo,其集成度已高达数千万个电子元件3.与十六进制数AB等值的八进制数是3。AA.253B.254C.171D.1724.在下列有关PC机CPU的叙述中,错误的是4。BA.CPU中包含几十个甚至上百个寄存器,用来临时存放数据、指令和控制信息B.所有PC机的CPU都具有相同的指令系统,因而PC机可使用相同的软件C.一台计算机至少包含1个CPU,也可以包含2个、4个、8个甚至更多个CPUD.Intel公司是国际上研制和生产CPU的主要公司,我国也能生产CPU5.在下列有关PC机主板上部件的叙述中,错误的是5。A.BIOS保存在主板上的一个闪存中,其内容在关机后通常不会改变B.CMOS中保存有用户设置的开机口令,关机后主板上的电池继续给CMOS供电C.启动CMOS设置程序可以重新设置CMOS中的数据,该程序是BIOS的组成部分D.网卡通常集成在主板上,由主板上独立的IC实现其功能,与芯片组无关6.从PC机存储器的层次结构来看,下列存储器中存取速度最快的是6。CA.Cache存储器B.RAM和ROMC.寄存器D.硬盘和优盘7.在下列4种PC机常用I/O接口中,数据传输速率最高的是7。BA.PS/2B.SATAC.IEEE-1394bD.USB2.08.在下列有关I/O操作、I/O总线和I/O接口的叙述中,错误的是8。BA.I/O操作的任务是在I/O设备与内存的指定区域之间传送信息B.I/O总线传送的只能是数据信号,它不能传送控制信号和地址信号C.不同类型的I/O接口,其插头/插座以及相应的通信规程和电气特性通常各不相同D.并行总线的数据传输速率不一定比串行总线高9.在下列有关PC机I/0设备的叙述中,错误的是9。BA.数码相机的成像芯片可以为CCD器件或CMOS芯片,目前大多数用CCD器件B.平板式扫描仪的分辨率通常远远高于胶片扫描仪和滚筒式扫描仪C.常见的宽屏液晶显示器的宽度与高度之比为16:9(或16:10)D.目前在银行、超市等商业部门一般采用针式打印机来打印存折和票据10.在下列有关计算机软件的叙述中,错误的是10。DA.程序设计语言处理系统和数据库管理系统被归类为系统软件B.共享软件是一种具有版权的软件,它允许用户买前免费试用C.机器语言和汇编语言与特定的计算机类型有关,取决于CPUD.目前PC机只能使用Windows系列操作系统,均不能使用UNIX和Linux操作系统11.在下列常用的PC机软件中,编辑的文档(内容)能直接保存为图片类型(例如JPEG文件类型)的是11C。A.MicrosoftWordB.MicrosoftExcelC.MicrosoftPowerPointD.MicrosoftFrontPage12.在下列关于以太网(局域网)的叙述中,错误的是12。BA.在共享式以太网中,任何时间只允许一对计算机进行通信B.在交换式以太网中,每台计算机均独享相同的带宽,其带宽仅由交换机决定C.无论是共享式以太网还是交换式以太网,网络中的所有计算机都要安装以太网网卡2D.无论是共享式以太网还是交换式以太网,它们的数据帧和MAC地址格式均相同13.连接在因特网上的每一台主机都有一个IP地址。下面不能作为IP地址的是13。AA.211.256.49.68B.21.18.33.48C.120.34.0.18D.37.251.68.014.为了将异构的计算机网络互相连接起来,必须使用的网络设备是14。DA.调制解调器B.以太网集线器c.以太网交换机D.路由器15.下列网络协议中,与发送电子邮件有关的是15。CA.HttpB.FTPC.SMTPD.TELNET16.在下列有关字符集及其编码的叙述中,错误的是16。DA.基本的ASCII字符集共有128个字符,每个字符使用7个二进位进行编码B.GB2312字符集中收录了6千多个汉字,每个字符在机内通常使用双字节编码C.GBK字符集中的字符也采用双字节编码,且该字符集收录了部分繁体汉字D.GB18030字符集中所有的字符均采用4字节编码,因此该字符集的代码空间很大17.目前数码相机拍摄的照片在保存时通常采用的文件类型是17。CA.BMPB.GIFC.JPEGD.TIF18.MP3是数字波形声音的一种压缩编码文件格式,它采用的压缩编码标准属于18。AA.MPEG-1B.MPEG-2C.MPEG-4D.DolbvAC-319.使用Macromedia公司的Flash软件制作的动画是一种矢量图形,在保存为动画文件时其文件扩展名通常为A.GIFB.SWFC.AVID.MPG。B20.在计算机应用中,CAD和CAM是典型的信息系统。它们属于20。BA.管理业务系统B.辅助技术系统C.信息检索系统D.信息分析系统第二部分C语言程序设计一、选择题(用答题卡答题,答案依次填在21~30答题号内,共10分)21.以下叙述中正确的是21。A.C语言系统以函数为单位编译源程序B.main函数必须放在程序开始C.用户定义的函数可以被一个或多个函数调用任意多次D.在一个函数体内可以定义另外一个函数22.以下选项中,不能用作c语言标识符的是22A.printB.FORC.&aD._0023.已知int类型数据在内存中存储长度为2个字节,以下语句中能正确输出整数32768的是23。A.printf(%d,32768);B.printf(%ld,32768);C.printf(%f,32768);D.printf(%c,32768);24.已知有声明inta=3,b=4,c=5;,以下表达式中值为0的是24。A.a&&bB.a=bC.a||b&&cD.!(!c||1)25.已知有声明longx,y;且x中整数的十进制表示有n位数字(4n10),若要求去掉整数x十进制表示中的最高位,用剩下的数字组成一个新的整数并保存到y中,则以下表达式中能正确实现这一功能的是25。A.y=x/(10*(n-1))B.y=x%(10*(n-1))C.y=x%(long)pow(10,n-1)D.y=x%(10^(n-1))26.已知有声明intx,y;,若要求编写一段程序实现当x大于等于0时y取值1,否则Y取值-1,则以下程序段中错误的是___26___。A.if(x=0)y=1;elsey=-1;B.y=x=0?1:-1;C.switch()D.switch(x-abs(x)){casex=0:y=1;break;{case0:y=1;break;default:y=-1;default:y=-1;}}27.已知有声明intm[]={5,4,3,2,1},i=0;,下列对m数组元素的引用中,错误是___27___。A.m[++i]B.m[5]C.m[2*2]D.m[m[4]]28•已知有声明chars[80];,若需要将键盘输入的一个不含空格的字符串保存到组中,则下列语句中正确的是A.scanf(%s,s);B.scanf(%s,s[0]);C.s=gets();D.s=getchar();29.若函数调用时的实参为变量,则以下关于函数形参和实参的叙述中正确的是29A.实参和其对应的形参占用同一存储单元B.形参不占用存储单元C.同名的实参和形参占用同一存储单元D.形参和实参占用不同的存储单元330.已知有声明inti,a[10],*p=a;,现需要将1--l0保存到a[0]--a[9]中,以下程序段中不能实现这一功能的是30。A.for(i=0;i10;i++)a[i]=i+1;B.for(i=0;i10;i++)p[i]=i+1;C.i=1;while(pa+10)*p++=i++;D.i=1;while(pa+10)*a++=i++;二、填空题(将答案填写在答题纸的相应答题号内,每个答案只占一行,共30分)●基本概念1.C语言中有!、&&、||三个逻辑运算符,其中优先级高于算术运算符的是(1)。2.若有声明intr=2;,则执行语句printf(%d,sizeof(2*3.14*r));时输出(2)。3.数学表达式所对应的C语言表达式为(3)。4.若有以下声明:char*p=%d,%d\n;inta=1,b=2;则执行语句printf(p,a,b);时输出(4)。5.声明局部变量时若缺省存储类别,该变量的存储类别是(5)。●阅读程序6.以下程序运行时输出到屏幕的结果是(6)。#includestdio.hvoidmain(){FILE*fp;intk,n,a[6]={1,2,3,4,5,6};fp=fopen(d2.dat,w);’fprintf(fp,%d%d%d\n,a[0],a[1],a[2]);fprintf(fp,%d%d%d\n,a[3],a[4],a[5]);fclose(fp);fp=fopen(d2.dat,r);fscanf(fp,%d%d,&k,&n);printf(%d,%d\n,k,n);fclose(fp);}7.以下程序运行时输出到屏幕的结果是(7)。#includestdio.hvoidmain(){inti=1,m=0;switch(i){case1:case2:m++;case3:m++;}printf(%d,m);}‘8.以下程序运行时输出到屏幕的结果中第一行是(8),第二行是(9)。#includestdio.hvoidfun(inta[],intb[],int*x){inti,j=0;for(i=0;a[i];i++){if(i%2==0)continue;if(a[i]10)b[j++]=a[i];}*x=j;4}voidmain(){inta[10]={3,15,32,23,11,4,5,9},b[10];inti=0,x=0;fun(a,b,&x);for(i=0:ix;i++)printf(%d\t,b[i]);printf(\n%d,x);}9.以下程序运行时输出到屏幕的结果是(10)。#includestdio.hintfun(int*x,intn){if(n==0)returnx[0];elsereturnx[0]+fun(x+1,n-1);}voidmain(){inta[]={1,2,3,4,5,6,7};printf(%d\n,fun(a,2));10.以下程序运行时输出到屏幕的结果是(11)。#includestdio.hlongf(intn){staticlongs;if(n==1)returns=2;elsereturn++s;}voidmain(){longi,sum=0;for(i=1;i4;i++,)sum+=f(i);printf(%ld,sum);}11.以下程序运行时输出到屏幕的结果中第一行是(12),第二行是(13)。#include、stdio.h#definef(x,y)y=x*xvoidg(intx,inty){y=x*x;}voidmain(){inta=2,b=0,c=2,d=0;f(a,b);g(c,d);printf(%d\n%d,b,d);}12.以下程序运行时输出到屏幕的结果中第一行是(14),第三行是(15)。#includestdio.hvoidmain(){inta[3][3]={{3,8,12},{4,7,10},{2,5,11}},i,j,k,t;for(j=0;j3;