您的位置:首页 > 理论基础

1998年4月全国计算机等级考试二级C语言笔试试题

2007-09-19 18:40 696 查看

1998年4月全国计算机等级考试二级C语言笔试试题

更新于:2007年9月19日 念时

一、选择题((1)-(40)每小题1分,(41)-(50)每小题2分,共60分)

下列各题 A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项在答题卡相应位置上涂黑,答在试卷上不得分。

(1) 所谓“裸机”是指

A) 单片机 B) 单板机

C) 不装备任何软件的计算机 D) 只装备操作系统的计算机

(2) 下列存储器中,存取速度最快的是

A) 软盘 B) 硬盘 C) 光盘 D) 内存

(3) 系统软件中最重要的是

A) 操作系统 B) 语言处理程序 C) 工具软件 D) 数据库管理系统

(4) CPU处理的数据基本单位为字,一个字的字长

A) 为8个二进制位 B) 为16个二进制位

C) 为32个二进制位 D) 与CPU芯片的型号有关

(5) 打印当前屏幕内容应使用的控制键是

A) Scroll-Lock B) Num-Lock C) PgDn D) PrtSc(Print Screen)

(6) 能将高级语言源程序转换成目标程序的是

A) 调试程序 B) 解释程序 C) 编译程序 D) 编辑程序

(7) 二进制数1110111.11转换成十进制数是

A) 119.375 B) 119.75 C) 119.125 D) 119.3

(8) 十六进制数FF.1转换成十进制数是

A) 255.0625 B) 255.125 C) 127.0625 D) 127.125

(9) 3.5英寸软盘片的一个角上有一个滑动块,如果移动该滑块露出一个小孔,则该软盘

A) 不能读但能写 B) 不能读也不能写 C) 只能读不能写 D) 能读写

(10) 控制键^C的功能为

A) 终止当前操作 B) 系统复位

C) 暂停标准输出设备的输出 D) 结束命令行

(11) COMMAND.COM为命令处理程序,DOS系统启动后,它

A) 驻留在外存,需要时再装入内存 B) 常驻内存,包含所有内部命令

C) 不能处理外部命令 D) 不能处理后缀为.EXE的可执行文件

(12) 为了将所有扩展名为.PAS的文件改成扩展名为.P,应使用命令

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\B\C

 CD XYZ\AB\B

在正确执行上述文件后,接着执行下列命令时,不会发生错误的是

A) MD C B) RD \XYZ C) RD C D) RD B

(19) 下列命令组中两个命令互相等价的是

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盘为启动盘,其目录结构为

 其中文件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=x+3/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 C)2.0 D)1.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) ps+2 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=a+s[k]-'0';

 continue;}

 b=b+s[k]-'0';

 a=a+s[k]-'0';

 }

 while (s[k+1]);

 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 (a+b) D)switch (a+b);

{ case 1:printf("\n"); { case 1:printf(."*\n");

case 1+2: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, *kp++ D) 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)*(pw+1)[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连接到文件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)

 ──; }

答案将在后期陆续公布……敬请关注! 念时
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: