一、选择题((1)--(40)每小题1分, (41)--(50)每小题2分, 共60分 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项在答题卡相应位置上涂黑,答在试卷上不得分。 (1) 下列电子邮件地址中正确的是(其中□表示空格) A.Malin&ns.cnc.ac.cn B.malin@ns.cac.ac.cn C.Lin□Ma&ns.cnc.ac.cn D.Lin□Ma@ns.cnc.ac.cn (2) 下列说法中正确的是 A.为了使用Novell网提供的服务,必须采用FTP协议 B.为了使用Internet网提供的服务,必须采用TELNET协议 C.为了使用Novell网提供的服务,必须采用TCP/IP协议 D.为了使用Internet网提供的服务,必须采用TCP/IP协议 (3) 下列说法中不正确的是 A.调制解调器(Modem)是局域网络设备 B.集线器(Hub)是局域网络设备 C.网卡(NIC)是局域网络设备 D.中继器(Repeater)是局域网络设备 (4) 十进制数397的十六进制值为 A.18D B.18E C.277 D.361 (5) 下列说法中不正确的是 A.CD-ROM是一种只读存储器但不是内存储器 B.CD-ROM驱动器是多媒体计算机的基本部分 C.只有存放在CD-ROM盘上的数据才称为多媒体信息 D.CD-ROM盘上最多能够存储大约650兆字节的信息 (6) Windows应用环境中鼠标的拖动操作不能完成的是 A.当窗口不是最大时,可以移动窗口的位置 B.当窗口最大时,可以将窗口缩小成图标 C.当窗口有滚动条时可以实现窗口内容的滚动 D.可以将一个文件移动(或复制)到另一个目录中去 (7) 从Windows中启动MS-DOS方式进入了DOS状态,如果想回到Windos状态,在DOS提示符下,应键入的命令为 A.EXIT B.QUIT C.WIN D.DOS -U (8) 要在WINDOWS标准窗口的下拉菜单中选择命令,下列操作错误的是 A.用鼠标单击该命令选项 B.用键盘上的上下方向键将高亮度条移至该命令选项后再按回车键 C.同时按下ALT键与该命令选项后括号中带有下划线的字母键 D.直接按该命令选项后面括号中带有下划线的字母键 (9) ASCLL码(含扩展)可以用一个字节表示,则可以表示的ASCLL码值个数为 A.1024 B.256 C.128 D.8O (10) 字长为32位的计算机是指 A.该计算机能够处理的最大数不超过232 B.该计算机中的CPU可以同时处理32位的二进制信息 C.该计算机的内存量为32MB D.该计算机每秒钟所能执行的指令条数为32MIPS (11) 在DOS系统中,下列文件名中非法的是 A.ABCDEFG1 B.ABCDEFG1.234 C)ABCD_EFG D)ABCD\EFG (12) DOS系统启动后,下列文件中驻留内存的是 A.CONFIG.SYS B.COMMAND.COM C.AUTOEXEC.BAT D.MEM.EXE (13) DOS下的“DIR *2”命令将列出当前目录下的 A.所有名字末尾为字符2的非隐含文件和目录 B.所有名字末尾为字符2的非隐含文件 C.所有非隐含文件 D.所有非隐含文件和目录 (14) 软驱的盘符为A,A盘上只有一个目录\XYZ,而\XYZ下有若干子目录和文件,若想把A盘的所有内容复制到C盘根目录下,应使用的命令为 A.COPY A:\*.* C: B.COPY A:\*.* C:\*.* C.XCOPY A:\*.* C:\ /S D.DISKCOPY A: C: (15) 若要将当前盘目录下的文件A.TXT连接在文件B.TXT后面,应使用的命令为 A.COPY A.TXT>>B.TXT B.MOVE A.TXT>>B.TXT C.PATH A.TXT>>B.TXT D.TYPE A.TXT>>B.TXT
(16) 若变量已正确定义并赋值,下面符合C语言语法的表达式是 A.a:=b+1 B.a=b=c+2 C.int 18.5%3 D.a=a+7=c+b (17) C语言中运算对象必须是整型的运算符是 A.%= B./ C.= D.〈= (18) 若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是 A.1 B.2 C.2.0 D.2.5 (19) 若变量a、iI已正确定义,且i已正确赋值,合法的语句是 A.a==1 B.++i; C.a=a++=5; D.a=int(i); (20) 若有以下程序段, int c1=1,c2=2,c3; c3=1.0/c2*c1; 则执行后,c3中的值是 A.0 B.0.5 C.1 D.2 (21) 有如下程序 main0 { int y=3,x=3,z=1; printf(“%d %d\n”,(++x,y++),z+2); } 运行该程序的输出结果是 A.3 4 B.4 2 C.4 3 D.3 3 (22) 能正确表示逻辑关系:“a≥=10或a≤0”的C语言表达式是 A.a>=10 or a<=0 B.a>=0|a<=10 C.a>=10 &&a<=0 D.a>=10‖a<=0 (23) 有如下程序 main0 { int x=1,a=0,b=0; switch(x){ case 0: b++; case 1: a++ case 2: a++;b++ } printf(“a=%d,b=%d\n”,a, B.; } 该程序的输出结果是 A.a=2,b=1 B.a=1,b=1 C.a=1,b=0 D.a=2,b=2 (24) 有如下程序 main0 { float x=2.0,y; if(x<0.0) y=0.0; else if(x<10.0) y=1.0/x; else y=1.0; printf(“%f\n”,y); } 该程序的输出结果是 A.0.000000 B.0.250000 C.0.500000 D.1.000000 (25) 有如下程序 main0 { int a=2,b=-1,c=2; if(a if(b<0) c=0; else c++ printf(“%d\n”, C.; } 该程序的输出结果是 A.0 B.1 C.2 D.3 (26) 有如下程序 main0 { int i,sum; for(i=1;i<=3;sum++) sum+=i; printf(“%d\n”,sum); } 该程序的执行结果是 A.6 B.3 C.死循环 D.0 (27) 有如下程序 main0 { int x=23; do { printf(“%d”,x--);} while(!x); } 该程序的执行结果是 A.321 B.23 C.不输出任何内容 D.陷入死循环 (28) 有如下程序 main0 { int n=9; while(n>6) {n--;printf(“%d”,n);} } 该程序段的输出结果是 A.987 B.876 C.8765 D.9876 (29) 设有说明语句:char a=’\72’;则变量a A.包含1个字符 B.包含2个字符 C.包含3个字符 D.说明不合法 (30) 有如下函数调用语句 func(rec1,rec2+rec3,(rec4,rec5); 该函数调用语句中,含有的实参个数是 A.3 B.4 C.5 D.有语法错
(31) 有如下程序 int runc(int a,int B. { return(a+ B.;} main0 { int x=2,y=5,z=8,r; r=func(func(x,y),z); printf(“%\d\n”,r); } 该程序的输出的结果是 A.12 B.13 C.14 D.15 (32) 有如下程序段 int *p,a=10,b=1 p=&a; a=*p+b; 执行该程序段后,a的值为 A.12 B.11 C.10 D.编译出错 (33) 对于基类型相同的两个指针变量之间,不能进行的运算是 A.< B.= C.+ D.- (34) 以下函数返回a所指数组中最小的值所在的下标值 fun(int *a, int n) { int i,j=0,p; p=j; for(i=j;i if(a[i] return(p); } 在下划线处应填入的是 A.i=p B.a[p]=a[i] C.p=j D.p=i (35) 有如下程序 long fib(int n) { if(n>2) return(fib(n-1)+fib(n-2)); else return(2); } main0 { printf(“%d\n”,fib(3)); 该程序的输出结果是 A.2 B.4 C.6 D.8 (36) 在C语言中,函数的隐含存储类别是 A.auto B.static C.extern D.无存储类别 (37) 有如下程序 #define N 2 #define M N+1 #define NUM 2*M+1 #main() { int i; for(i=1;i<=NUM;i++)printf(“%d\n”,i); } 该程序中的for循环执行的次数是 A.5 B.6 C.7 D.8 (38) 有以下函数 char fun(char *p) { return p; } 该函数的返回值是 A.无确切的值 B.形参p中存放的地址值 B.一个临时存储单元的地址 D.形参p自身的地址值 (39) 有如下程序段 int a=14,b=15,x; char c=’A’; x=(a&& B.&&(c<’B’); 执行该程序段后,x的值为 A.ture B.false C.0 D.1 (40) 若fp是指向某文件的指针,且已读到此文件末尾,则库函数feof(fp)的返回值是 A.EOF B.0 C.非零值 D.NULL (41) 若有以下说明和定义 fun(int * C.{ } main() { int (*a)()=fun,*b(),w[10],c; ┆ } 在必要的赋值之后,对fun函数的正确调用语句是 A.a=a(w); B.(*a)(& C.; C.b=*b(w); D.fun ( B.; (42) 有如下说明 int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则数值为9的表达式是 A.*P+9 B.*(P+8) C.*P+=9 D.P+8
(43) 有如下程序 main0 { int n[5]={0,0,0},i,k=2; for(i=0;iprintf(“%d\n”,n[k]); } 该程序的输出结果是 A.不确定的值 B.2 C.1 D.0 (44) 若有以下的定义:int t[3][2];能正确表示t数组元素地址的表达式是 A.&t[3][2] B.t[3] C.t[1] D.t[2] (45) 有如下程序 main0 { int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0; for(i=1;i<3;i++) for(j=0;jprintf(“%d\n”,s); } 该程序的输出结果是 A.18 B.19 C.20 D.21 (46) 有如下定义 struct person{char name[9]; int age;}; strict person class[10]={“Johu”, 17, “Paul”, 19 “Mary”, 18, “Adam 16,}; 根据上述定义,能输出字母M的语句是 A.prinft(“%c\n”,class[3].mane); B.pfintf(“%c\n”,class[3].name[1]); C.prinft(“%c\n”,class[2].name[1]); D.printf(“%^c\n”,class[2].name[0]); (47) 以下对结构体类型变量的定义中,不正确的是 A.typedef struct aa B.#define AA struct aa { int n; AA {int n; float m; float m; }AA; }td1; AA td1; C.struct D.struct { int n; { int n; float m; float m; }aa; }td1; stuct aa td1; (48) 若已建立如下图所示的单向链表结构, P data next 在该链表结构中,指针p、s分别指向图中所示结点,则不能将s所指的结点插入到链表末尾仍构成单向链表的语句组是 A.p =p->next; s->next=p; p->next=s; B.p =p->next; s->next=p->next; p->next=s; C.s->next=NULL; p=p->next; p->next=s; D.p=(*p).next; (*s).next=(*p).next; (*p).next=s; (49) 有如下程序 main() { char s[]=”ABCD”, *P; for(p=s+l; p } 该程序的输出结果是 A.ABCD B.A C.B D.BCD BCD B C CD CD C D D D D
(50) 有如下程序 main() { char ch[2][5]={“6937”,”8254”},*p[2]; int i,j,s=0; for(i=0;i<2;i++) p[i]=ch[i]; for(i=0;i<2;i++) for(j=0;p[i][j]>’\0’;j+=2) s=10*s+p[i][j]-‘0’; printf(“%d\n”,s); } 该程序的输出结果是 A) 69825 B) 63825 C) 6385 D) 693825 二、填空题(每空2分,共40分) 请将每空的正确答案写在答题卡上[1]至[20]序号的横线上,答在试卷上不得分。 (1) 在DOS状态下,当执行当前盘目录中的程序A.EXE时,为了将本该在屏幕上显示的运行结果输出到文件A.DAT中,应使用的DOS命令为 [1] 。 (2) 在XCOPY、PATH、TREE三个DOS命令中,属于内部命令的是令是 [2] 。 (3) 设当前盘为C盘,为了将当前盘当前目录中第三个字符为X的所有文件同名复制到A盘的当前目录中,应使用的DOS命令为 [3] 。 (4) 要将当前盘的目录A\B\C设置为当前目录,应使用的DOS命令为 [4]。 (5) 计算机网络按通信距离划分为局域网与广域网,Novell网属于 [5] 。 (6) 以下程序的输出结果是 [6] 。 main() { unsigned short a=65536; int b; printf(“%d\n”,b=a); } (7) 若有定义:int a=10,b=9,c=8;接着顺序执行下列语句后,变量b中的值是 [7] 。 c=(a-=(b-5)); c=(a)+(b=3); (8) 表示“整数x的绝对值大于5”时值为“真”的C语言表达式是 [8] 。 (9) 要使以下程序段输出10个整数,请填入一个整数。 for(i=0;i<= [9] ;printf(“%d\n”,i+=2)); (10) 函数pi的功能是根据以下近似公式求π值: (π*π)/6=1+1/(2*2)+1/(3*3)+..+1/(n*n) 现在请你在下面的函数中填空,完成求π的功能。 #include “math.h” double pi(long n) { double s=0.0; long i; for(i=1;i<=n;i++)s=s+ [10] ; return(sqrt(6*s)); } (11) 若输入字符串:abcde<回车>,则以下while循环体将执行 [11] 次。 While((ch=getchar())==’e’) printf(“*”); (12) 以下函数用来求出两整数之和,并通过形参将结果传回,请填空。 void func(int x,int y, [12] z) { *z=x+y; } (13) 若有以下定义,则不移动指针p,且通过指针p引用值为98的数组元素的表达式是 [13] 。 int w[10]={23,54,10,33,47,98,72,80,61}, *p=w; (14) 设在主函数中有以下定义和函数调用语句,且fun函数为void类型;请写出fun函数的首部[14] 。要求形参名为b。 main() { double s[10][22]; int n; ┆ ┆ fun(s); ┆ } (15) 以下程序的输出结果是 [15] 。 void fun() { static int a=0; a+=2; printf(“%d”,a); } main() { int cc; for(cc=1;cc<4;cc++) fun() printf(“\n”); } (16) 以下程序的输出结果是 [16] 。 #define MAX(x,y) (x)>(y)?(x):(y) main() { int a=5,b=2,c=3,d=3,t; t=MAX(a+b,c+d)*10; printf(“%d\n”,t); } (17) 若要使指针p指向一个double类型的动态存储单元,请填空。 p= [17] malloc(sizeof(double)); (18) 设有以下结构类型说明和变量定义,则变量a在内存所占字节数是 [18] 。 Struct stud { char num[6]; int s[4]; double ave; } a,*p; (19) 以下函数把b字符串连接到a字符串的后面,并返回a中新字符串的长度。请填空。 Strcen(char a[], char b[]) { int num=0,n=0; while(*(a+num)!= [19] ) num++; while(b[n]){*(a+num)=b[n]; num++; [20] ;} return(num); }
2000年9月全国计算机等级考试二级笔试试卷答案 一、选择题: (1)B (2)D (3)A (4)A (5)C (6)B (7)A (8)C (9)B (10)B (11)D (12)B (13)D (14)C (15)D (16)B (17)A (18)C (19)B (20)A (21)D (22)D (23)A (24)C (25)C (26)C (27)B (28)B (29)A (30)A (31)D (32)B (33)C (34)D (35)B (36)C (37)B (38)B (39)D (40)c (41)B (42)B (43)D (44)D (45)A (46)D (47)C (48)A (49)D (50)C 二、填空题: [1] A.EXE >A.DAT 或A >>A.DAT [2] PATH [3] COPY ??X*.* A: [4] CD A\B\C [5] 局域网 [6] 0 [7] 3 [8] x>5||x<-5 [9] 18 [10]1.0/(i*i) [11] 0 [12] int * [13] P[5]或*(p+5) [14] void fun(double b[][22]) 或 void fun(double b[0][22]) 或 void fun(double (*b)[22]) [15] 246 [16] 7 [17] (double *) [18] 22 [19] '\0'或0 [20] n++或n+=1或n=n+1 |