| 您的位置: 洪恩在线 -> 继续教育 -> 计算机考级 |
|
我要发言
|
1998年4月 全国计算机等级考试二级笔试试卷基础知识和C语言程序设计
|
|||||||||||||
|
A)REN *。PAS *。?AS B)REN PAS P C)REN *。PAS *。p D)REN *。PAS *。P?? (13)设当前盘中文件XY.C的路径为、A、B、XU,当前目录为、A、B.为了查看文件XY.C的内容,应使用命令 A)TYPE XU、XY.C B)TYPE 、XU、XY.C C)DIR XU、XY.C D)DIR 、A、B、XU、XY.C (14)要将提示符改成当前盘当前目录后加一个大于号“》”,应使命令 A)PROMPT B)PROMPT $P$g C)PROMPT $$D)PROMPT C、》 (15)设C盘根目录中有一个批处理文件A.BAT,当前盘为A盘。为了执行该批处理文件,下列命令中一定正确的是 A)C:、A B)C;A.BAT C)A.BAT D)、A.BAT (16)设当前盘为C盘,将A盘根目录下的文件目录信息存放到当前盘当前目录下的文件AB中,应使用命令 A)TYPE A:、》AB B)DIR 》AB C)DIR A;、》AB D)DIR 、》AB (17)可执行文件ABC.EXE所需要的输入数据已经按格式存放在文件XYZ中,要求将执行结果在打印机上打印输出。下列命正确的是 A)ABCXYZ C)ABC》XYZPRN (18)在当前盘当前目录下有一个文件A.BAT,其内容为 CD 、 MD 、XYZ、AB、BC CD XYZ、AB、B 在正确执行上述文件后,接着执行下列命令时,不会发生错误的是 A)MD C B)RD 、XYZ C)RD.C D)RD B (19)下列命令组中两个DOS命令互相等价的是 A)TYPE AB.TXT与DIR AB.TXT B)DISKCOMP A:B:与COMP A:*。*B.*。* C)TYPE AB.TXT 》》XY.TXT与COPY AB.TXT XY.TXT D)TYPE AB.TXT 》XY.TXT与COPY AB.TXT XY.TXT (20)设A盘为启动盘,其目录结构为 根目录 │ ┌───┴─────┐ DOS子目录COMMAND.COM │ ┌──────────┐ USER子目录AUTOEXEC.BAT |
|
其中文件AUTOEXEC.BAT的内容如下: MD 、XYZ CD 、DOS、USER 则由A盘启动成功后,A盘的当前目录是 A)、DOS、USER B)、XYZ C)根目录D)、DOS (21)在C语言提供的合法的着急字是 A)swicth B)cher C)Case D)default (22)在C语言中,合法的字符常量是 A)'、084'B)'、x43' C)'ab'D)“、0” (23)若已定义x和y为double类型,则表达式:x=1,y=x3/2的值是 A)1 B)2 C)2.0 D)2.5 (24)合法的数组定义是 A)int a[]=“string”;B)int a[5]={0,1,2,3,4,5}; C)vhst s=“string”;D)char a[]={0,1,2,3,4,5}; (25)设a为整型变量,不能正确表达数学关系:1010&&a》15 D)!(a《=10)&&!(a》=15) (26)若t为double类型,表达式t=1,t5,t的值是 A)1 B)6.0 (27)若有定义和语句: char s[10]:s=“abcd”;printf(“%s、n”,s); 则结果是(以下u代表空格)A)输出abcd B)输出a C)输出abcduuuuu D)编译不通过 (28)若有定义和语句: int **pp,*p,a=10,b=20; pp=&p;p=&a;p=&b;printf(“%d、n”,*p,**pp); 则输出结果是: A)10,20 B)10,10 C)20,10 D)20,20 (29)若有以下定义和语句: int u=010,v=0x10,w=10; printf(“%d,%d,%d、n,u,v,w);” 则输出结果是: A)8,16,10 B)10,10,10 C)8,8,10 D)8,10,10 (30)若有以下定义和语句 char c1='b',c2='e'; printf(“%d,%c、n”,c2——c1,c2——'a'“A”); 则输出结果是: A)2,M B)3,E C)2,E D)输出项与对应的格式控制不一致,输出结果不确定 (31)若有以下定义: char s[20]=“programming”,*ps=s; 则不能代表字符o的表达式是 A)ps2 B)s[2] C)ps[2]D)ps=2,*ps |
|
(32)若ij已定义为int类型,则以下程序段中内循环体的总的执行次数是 for (i=5;i;i——) for(j=0;j《4;j){……} A)20 B)25 C)24 D)30 (33)若有以下定义和语句: char *s1=“12345”,*s2=“1234”; printf(“%d、n”,strlen(strcpy(s1,s2))); 则输出结果是 A)4 B)5 C)9 D)10 (34)若有以下定义和语句: int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则不能表示a数组元素的表达式是 A)*p B)a[10] C)*a D)a[p——a] (35下面程序的输出是 main() {char *s=“121”; int k=0,a=0,b=0; do {k; if(k%2==0){a=as[k]——'0';continue;} b=bs[k]——'0';a=as[k]——'0'; } while (s[k1]); printf(“k=%d a=%d b=%d、n”,k,a,b); A)k=3 a=2 b=3 B)k=3 a=3 b=2 C)k=2 a=3 b=2 D)k=2 a=2 b=3 (36)下面程序的输出是 main() {unsigned a=32768; printf(“a=%d、n”,a); } A)a=32768 B)a=32767 C)a=——32767 D)a=——1 (37)若有以下定义: float x;int a,b; 则正确的switch 语句是 A)switch(x)B)switch(x) {case1.0:printf(“*、n”);{case1,2:printf(“*、n”); case2.0:printf(“**、n”);case3:printf(“**、n”); }} C)switch (ab)D)switch (ab); {case 1:printf(“、n”);{case 1:printf(。“*、n”); case 12:printf(“**、n”);case 2:printf(“**、n”); }} (38)若有定义:int x,y;char a,b,c;并有以下输入数据(此处《CR》代表换行符,/u代表空格): 1u2 AuBuC 则能给x赋整数1,给y赋整数2,给a赋字符A,给b赋字符B,给c赋字符C 的正确程序段是 |
|
A)scanf(“x=%d y%d”,&x,&y);a=getchar();b=getchar();c=getchar(); B)scanf(“%d %d”,&x,&y);a=getchar();b=getchar();c=getchar(); C)scanf(“%d%d%c%c%c,&x,&y,&a,&b,&c);” D)scanf(“%d%d%c%c%c%c%c%c:&x,&y,&a,&a,&b,&b,&c,&c);” (39)以下程序输出的结果是 #include #include main() {char w[][10]={“ABCD”,“EFGH”,“IJKL”,“MNOP”},K; for (k=1;k《3;k) printf(“%s、n”,&w[k][k]); } A)ABCD B)ABCD FGH EFG KL IJ M C)EFG D)FGH JK KL O (40)若有以下的定义: int a[]={1,2,3,4,5,6,7,88,9,10),*p=a; 则值为3的表式是 A)p=2,*(p)B)p=2,*p C)p=3,*kpD)p=2,*p (41)假定所有变量均已正确说明,下列程序段运行后x的值是 a=b=c=0;x=35; if(!a)x——; else if(b);if(c)x=3; else x=4; A)34 B)4 C)35 D)3 (42)在以下一组运算符中,优先级最高的运算符是 A)《=B)= C)%D)&& (43)若有以下定义和语句: int w[2][3],(*pw)[3];pw=w; 则对w数组元素非法引用是 A)*(w[0]2)B)*(pw1)[2] C)pw[0][0]D)*(pw[1]2) (44)若有以下程序片段: char str[]=“ab、n、012、、、”“;” printf(%dd“,strlen(str));” 上面程序片段的输出结果是 A)3 B)4 C)6 D)12 (45)函数调用:strcat(strcpy(str1,str2),str3)的功能是 A)将串str1复制到串str2中后再连接到串str3之后 B)将串str1连接到串str2之后再复制到串str3之后 C)将串str2复制到串str1中后再将串str3连接到串str1之后 D)将串str2连接到串str1之后再将串str1复制到串str3中 (46)以下对C语言函数的有关描述中,正确的是 |
|
A)在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参B)C函数既可以嵌套定义又可以递归调用 C)函数必须有返回值,否则不能使用函数 D)C程序中有调用关系的所有函数必须放在同一个源程序文件中 (47)以下叙述中不正确的是 A)在C中,函数中的自动变量可以赋初值,每调用一次,赋一次初值。 B)在C中,在调用函数时,实在参数和对应形参在类型上只需赋值兼容。 C)在C中,外部变量的隐含类别是自动存储类别。 D)在C中,函数形参可以说明为register变量。 (48)以下程序的输出结果是 #include subl(char a,char b){char c;c=a;a=b;b=c;} sub2(char*a,char b){char c;c=*a;*a=b;b=c;} sub3(char*a,char*b){char c;c=*a;*a=*b;*b=c;} {char a,b; a='A';b='B';sub3(&a,&b);putchar(a);putchar(b); a='A';b='B';sub2(&a,b);putchar(a);prtchar(b); a='A';b='B';sub1(a,b);putchar(a);putchar(b); } A)BABBAB B)ABBBBA C)BABABA D)BAABBA (49)设有如下定义: struct sk {int a;float b;}data,*p; 若有p=&data;,则对data中的a域的正确引用是 A)(*p)。data.a B)(*p)。a C)p——》data.a D)p.data.a (50)以下对枚举类型名的定义中正确的是 A)enum a={one,two,three}; B)enum a {one=9,two=——1,three}; C)enum a={“one”,“two”,“three”}; D)enum a {“one”,“two”,“three”}; 二。填空题(每空2分,共40分) 请将每空的正确答与在答题卡1至20序号的横线上,答在试卷上不得分。 (1)与十进制数101等值的十进制数为1 ──。 (2)DOS命令分为内部命令与外部命令,XCOPY命令属于2 命令。 ── |
|
(3)设当前盘为A盘,当前系统提示符为“》”,在不改变当前盘的情况下,显示C盘的当前目录路径,应使用命令3 ──。 (4)自动批处理文件必须是4 ─。 (5)设在当前盘当前目录下有两个文件W.TXT与P.TXT,现要将文件P.TX连接到文件W.TXT的后面,若使用COPY命令,则完整的命令为5 ──。 (6)请写出以下数学式的C语言表达式6 ──。 a ─── b.c (7)若已知a=10,b=20,则表达式!ab)printf(“****y%d、n”,y); else printf(“####x=%、n”,x); (11)在对文件进行操作的过程中,若要求文件的位置回到文件的开头,应当调用的函数是11 函数。 ── (12)若函数fun的类型void,且有以下定义和调用语句: #define M 50 main() {int a[M]; 。 。 。 fun(a); 。 。 。 } 定义fun函数首部可以用三种不同的形式,请写出这三种形式:12 .13 .14 ─── (注意:①形参的名字请用q,②使用同一种风格)。 (13)若给fun函数的形参s传送字符串:“uuuu6354abc”,则函数的返回值是15 ─。 log fun(char s[]) {long n;int sign; for(;isspace(*s);s); sign(*s=='——')?——1:1; if(*s==''‖*s=='——'s; for(n=0;isdigit(*s);s) n=10*n(*s——'0'); return sign *n; (14)以下函数用来在w数组中插入x,w数组中的数已按由小到大顺序存放,n 所指存储单元中存放数组中数据的个数。插入后数组中的数仍有序。请填空。 void fun (char *w,char x,int *n) {int i,p; p=0; w[*n]=x; while (x》w[p])16 ──; for(i=*n;i》p;i——)w[i]=17 ─; w[p]=x; *n; } |
|
(15)fun1函数的调用语句为:fun1(&a,&b,&c);它将三个整数按由大到小的顺序调整后依次放入a,b,c,三个变量中,a中放量大数。请填空。 void fun2 (int *x,int *y) {int t; t=*x;*x=*y;*y=t; } void fun1 (int *pa,int *pb,int *pc) {if(*pc》*pb)fun2(18) ───; if(*pa《*pc)fun2(19) ──; if(*pa《*pb)fun2(20) ──; } 1998年4月全国计算机等级考试二级笔试试卷基础知识和C语言程序设计答案及评分标准 一。选择题((1)——(4)共40题,每题1分;(41)——(50)共10题,每题2分) (1)C (2)D (3)A (4)D (5)D (6)C (7)B (8)A (9)C (10)A (11)B (12)C (13)A (14)B (15)A (16)C (17)D (18)C (19)D (20)C (21)D (22)B (23)C (24)D (25)A (26)D (27)D (28)D (29)A (30)B (31)A (32)A (33)A (34)B (35)C (36)C (37)C (38)D (39)D (40)A (41)B (42)C (43)B (44)C (45)C (46)A (47)C (48)A (49)B (50)B 二。填空(1——20共20空,每空2分) (1)1 1100101 或(1100101)2 (2)2 外部(答外部命令不扣分) (3)3 CD C:(CD与C:中间至少要有一个空格 (4)4 AUTOEXEC.BAT (5)5 COPY W.TXTP.TXT 或COPY W.TXTP.TXT W.TXT (6)6 a/(b*c)或a/(c*b)或a/b/c或a/c/b (7)7 1 (8)8 ###a=26,b=13,c=19 (9)9 *(p5)或p[5] (10)10 if(a《=b){x=1;printf(“####x=%b、n”,x);} else {y=2;printf(“****y=%b、n”,y);} 或 if(a》b){y=2;printf(“****y=%b、n”,y);} else {x=1;printf(“####x=%B、n”,x);} 或 if(a》b)printf(“####c=%b、n”,x=1); else printf(“****y%b、n”,y=2); 或 if(a》b)printf(“****y=%b、n,y=2);” ilse printf(“####x=%b、n”,x=1); (11)11 rewind 或fseek |
|
(12)12、13、14 void fun (int *q) void fun (int q[]) void fun (int q[M]) 或 void fun (q)int *q; void fun (q)int q[]; void fun (q)int q[M]; 说明:以上两组答案中 (A)三个答案可以任意次序。(B)标识符q 可以用以字母或下划线开头以字母、数字和下划线组成的名字代替。(C)两种风格可以混用,例如: void fun (int *q) void fun (q)int q[]; void fun (int q[M]) (13)15 6354 (14)16 p或p或p=p1或p=1或p=1p 17 w[i——1]或*(wi——1) (15)18 pc,pb 或pb,pc 19 pc,pa 或pa,pc 20 pb,pa 或pa,pb |
|
·1998年9月全国计算机等级考试二级笔试试卷基础部分和C语言程序设计
·1999年4月全国计算机等级考试二级笔试试卷基础部分和C语言程序设计 ·1999年9月全国计算机等级考试二级笔试试卷基础部分和C语言程序设计 |
| 【关闭窗口】 | |