2001年9月全国计算机等级考试二级C语言试卷(含答案)
发布时间:2006-10-14 8:53:59   收集提供:gaoqian
 一、选择题((1)-(40)题每题1分,(41)-(50)题每题2分,共60分)
下列各题A) 、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。
(l) 在计算机系统中,一个字节的二进制位数为
A) 16 B) 8 C) 4 D) 由 CPU的型号决定
(2) 存储 16×16点阵的一个汉字信息,需要的字节数为
A) 32 B) 64 C) 128 D) 256
(3) 英文大写字母B的ASCII码为42H,英文小写字母b的ASCII码为
A) 43H B) 84H C) 74H D) 62H
(4) 下列计算机语言中,CPU能直接识别的是
A) 自然语言 B) 高级语言 C) 汇编语言 D)机器语言
(5) 在计算机领域中,所谓“裸机”是指
A) 单片机 B) 单板机
C) 不安装任何软件的计算机 D) 只安装操作系统的计算机
(6) 下列带有通配符的文件名中,能代表文件ABCDEF.DAT的是
A) A*.* B) ?F.* C) *.? D) AB?.*
(7) 下列DOS命令中,执行时不会发生错误的是
A) TYPE *.TXT B) DIR *.TXT
C) REN A.TXT A:b.TXT D) COPY *.TXT>CON
(8) 设当前盘为C盘,C盘的当前目录为\A\B\C。下列DOS 命令中能正确执行的是
A) MD \ B) MD A:\ C) MD \A\B D) CD C:
(9) 为了将C:USER中的文件FILE.TXT同名复制到A盘根目录下,下列DOS命令中能正确执行的是
A) TYPE C:\USER\FILE.TXT > A:\FILE.TXT
B) TYPE C:\USER\FILE.TXT A:\FILE.TXT
C) COPY C:\USER\FILE.TXT > A:\FILE.TXT
D) COPY C:\USER\FILE.TXT
(10) 在Windows下,当一个应用程序窗口被最小化后,该应用程序
A) 终止运行 B) 暂停运行 C) 继续在后台运行 D) 继续在前台运行
(11) 在Windows环境下,下列操作中与剪贴板无关的是
A) 剪切 B) 复制 C) 粘贴 D) 删除
(12) 在Windows环境下,实现窗口移动的操作是
A) 用鼠标拖动窗口中的标题栏 B) 用鼠标拖动窗口中的控制按钮
C) 用鼠标拖动窗口中的边框 D) 用鼠标拖动窗口中的任何部位
(13) 一台计算机连入计算机网络后,该计算机
A) 运行速度会加快 B) 可以共享网络中的资源
C) 内存容量变大 D) 运行精度会提高
(14) 不能作为计算机网络中传输介质的是
A) 微波 B) 光纤 C) 光盘 D) 双绞线
(15) 下列各项中,不属于多媒体硬件的是
A) 声卡 B) 光盘驱动器 C) 显示器 D) 多媒体制作工具
(16) 在C语言中,合法的长整型常数是
A) OL B) 4962710 C) 324562& D) 216D
(17) 以下有4组用户标识符,其中合法的一组是
A) For B) 4d C) f2_G3 D) WORD
-sub DO IF void
Case Size abc define
(18) 以下选项中合法的字符常量是
A)“B” B) ‘\010’ C) 68 D) D
(19) 假定x和y为 double型,则表达式x=2,y=x+3/2的值是
A) 3.500000 B) 3 C) 2.000000 D) 3.000000
(20) 以下合法的赋值语句是
A) x=y=100 B) d--; C) x+y; D) c=int(a+b);
(21) 设正x、y均为整型变量,且x=10 y=3,则以下语句的输出结果是
pprintf(”%d,%d\n”,x--,--y);
A) 10,3 B) 9.3 C) 9.2 D)10.2
(22) x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是
A) INPUT x、y、z; B) scanf(“%d%d%d”,&x,&y,&z);
C) scanf(“%d%d%d”,x,y,z); D) read(“%d%d%d”,&x,&y,&z);
(23) 以下程序的输出结果是
main()
{ int a=3;
printf(“%d\n”,(a+a-=a*a) );
}
A) –6 B)12 C) 0 D) -12
(24) 设 a、b、C、d、m、n均为 int型变量,且 a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式 (m=a>b)&&(n=c>d)运算后,n的值位为
A) 0 B) 1 C)2 D) 3
(25) 阅读以下程序:
main()
{ int x;
scanf(“%d”,&x);
if(x--<5) printf(“%d”’x);
else printf(“%d”’x++);
}
程序运行后,如果从键盘上输人5,则输出结果是
A)3 B) 4 C) 5 D) 6
(26) 假定w、x、y、z、m均为int型变量,有如下程序段:
w=1; x=2; y=3; z=4;
m=(w则该程序运行后,m的值是it
A) 4 B) 3 C) 2 D) 2
(27) t为int类型,进人下面的循环之前,t的值为0
while( t=l )
{ …… }
则以下叙述中正确的是
A) 循环控制表达式的值为0 B) 循环控制表达式的值为1
C) 循环控制表达式不合法 D) 以上说法都不对
(28) 以下程序的输出结果是
main()
{ int num= 0;
while(num<=2)
{ num++; printf(“%d\n”,num);
}
A) 1 B) 1 C)1 D) l
2 2 2
3 3
4
(29) 以下各选项企图说明一种新的类型名,其中正确的是
A) typedef v1 int; B) typedef v2=int;
C) typedefv1 int v3; D) typedef v4: int;
(30) 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是
A) 地址传递 B) 单向值传递
C) 由实参传给形参,再由形参传回实参 D) 传递方式由用户指定
(31) 以下函数值的类型是
fun ( float x )
{ float y;
y= 3*x-4;
return y;
}
A) int B) 不确定 C) void D) float
(32 ) 设有以下函数:
f ( int a)
{ int b=0;
static int c = 3;
b++; c++;
return(a+b+c);
}
如果在下面的程序中调用该函数,则输出结果是
main()
{ int a = 2, i;
for(i=0;i<3;i++) printf(“%d\n”,f(a));
}
A) 7 B) 7 C) 7 D) 7
8 9 10 7
9 11 13 7
(33) 以下程序的输出结果是
main()
{ char c=’z’;
printf(“%c”,c-25);
}
A) a B) Z C) z-25 D) y
(34) 以下选项中,非法的字符常量是
A) ‘\t’ B) ‘\17’ C)“n” D) ‘\xaa’
(35) 若有说明:int i, j=2,*p=&i;,则能完成i=j赋值功能的语句是
A) i=*p; B) p*=*&j; C) i=&j; D) i=**p;
(36) 以下定义语句中,错误的是
A) int a[]={1,2}; B) char *a[3];
C) char s[10]=”test”; D) int n=5,a[n];
(37) 假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是
A) 3 B) 6 C) 10 D) 20
(38) 以下程序的输出结果是
main()
{ int i, a[10];
for(i=9;i>=0;i--) a[i]=10-i;
printf(“%d%d%d”,a[2],a[5],a[8]);
}
A) 258 B) 741 C) 852 D) 369
(39) 以下数组定义中不正确的是
A) int a[2][3];
B) int b[][3]={0,1,2,3};
C) int c[100][100]={0};
D) int d[3][]={{1,2},{1,2,3},{1,2,3,4}};
(40) 以下程序的输出结果是
main()
{ int a[4][4]={{1,3,5},{2,4,6},{3,5,7}};
printf(“%d%d%d%d\n”,a[0][3],a[1][2],a[2][1],a[3][0];
}
A) 0650 B) 1470 C) 5430 D) 输出值不定
(41) 以下程序的输出结果是
main()
{ char st[20]= “hello\0\t\\\”;
printf(%d %d \n”,strlen(st),sizeof(st));
}
A) 9 9 B) 5 20 C) 13 20 D) 20 20
(42) 以下选项中,不能正确赋值的是
A) char s1[10];s1=“Ctest”;
B) char s2[]={‘C’, ‘t’, ‘e’, ‘s’, ‘t’};
C) char s3[20]=“Ctest”;
D) char *s4=“Ctest\n”
(43) 以下程序的输出结果是
amovep(int p, int (a)[3],int n)
{ int i, j;
for( i=0;i<;i++)
for(j=0;j}
main()
{ int *p,a[3][3]={{1,3,5},{2,4,6}};
p=(int *)malloc(100);
amovep(p,a,3);
printf(“%d %d \n”,p[2],p[5]);free(p);
}
A) 56 B) 25 C) 34 D) 程序错误
(44) 以下程序的输出结果是
struct HAR
{ int x, y; struct HAR *p;} h[2];
main()
{ h[0],x=1;h[0];y=2;
h[1],x=3;h[1];y=4;
h[0],p=&h[1],p=h;
printf(“%d %d \n”,(h[0],p)->x,(h[1],p)->y);
}
A) 12 B) 23 C) 14 D) 32
(45) 以下程序的输出结果是
main()
{ int a, b;
for(a=1, b=1; a<=100; a++)
{ if(b>=10) break;
if (b%3= =1)
{ b+=3; continue; }
}
printf(“%d\n”,a);
}
A) 101 B) 6 C) 5 D) 4
(46) 以下程序的输出结果是
union myun
{ struct
{ int x, y, z; } u;
int k;
} a;
main()
{ a.u.x=4; a.u.y=5; a.u.z=6;
a.k=0;
printf(%d\n”,a.u.x);
}
A) 4 B) 5 C) 6 D) 0
(47) 以下程序的输出结果是
int a, b;
void fun()
{ a=100; b=200; }
main()
{ int a=5, b=7;
fun();
printf(“%d%d \n”, a,b);
}
A) 100200 B) 57 C) 200100 D) 75
(48) 以下程序的输出结果是
#define M(x,y,z) x*y+z
main()
{ int a=1,b=2, c=3;
printf(“%d\n”, M(a+b,b+c, c+a));
}
A) 19 B) 17 C) 15 D) 12
(49) 整型变量x和y的值相等、且为非0值,则以下选项中,结果为零的表达式是
A) x || y B) x | y C) x & y D) x ^ y
(50) 下面的程序执行后,文件testt.t中的内容是
#include
void fun(char *fname.,char *st)
{ FILE *myf; int i;
myf=fopen(fname,“w” );
for(i=0;ifclose(myf);
}
main()
{ fun(“test”,“new world”; fun(“test”,“hello,”0;)
A)hello, B)new worldhello, C)new world D) hello, rld
二、填空题(每空2分,共40分)
 请将每一个空的正确答案写在答题卡【l】至【20】序号的横线上,答在试卷上不得分。
(l)为了将当前盘当前目录中的所有文本文件(扩展名为.TXT)的内容打印输出,正确的单条DOS命令为 【l】 。
(2)设当前盘为C盘。为了在A盘的当前自录\USER下建立一个新的子目录X,正确的DOS命令为 【2】 。
(3)在 XCOPY、COPY、TIME三个 DOS命令中,属于外部命令的是 【3】 。
(4)在32位的计算机中,一个字长等于【4】个字节。
(5)计算机网络分为局域网和广域网,因特网属于 【5】 。
(6)语句:x++;、++x; x=x+1;、x=l+x; ,执行后都使变量x中的值增1,请写出一条同一功能的赋值语句(不得与列举的相同) 【6】 。
(7)设y是int型变量,请写出判断y为奇效的关系表达 【7】 。
(8)以下程序运行后的输出结果是 【8】 。
main()
{ int i=10, j=0;
do
{ j=j+i; i-;
while(i>2);
printf(“%d\n”,j);
}
(9) 设有以下程序:
main()
{ int n1,n2;
scanf(“%d”,&n2);
while(n2!=0)
{ n1=n2%10;
n2=n2/10;
printf(“%d”,n1);
}
}
程序运行后,如果从键盘上输入1298;则输出结果为 【9】 。
(10) 以下程序输出的最后一个值是【10】 。
int ff(int n)
{ static int f=l;
f=f*n;
return f;
}
main()
{ int i;
for(I=1;I<=5;I++ printf(“%d\n”,ff(i));
}
(11) 以下函数的功能是:求x的y次方,请填空。
double fun( double x, int y)
{ int i;
double z;
for(i=1, z=x; ireturn z;
}
(12) 设有以下程序:
main()
{ int a, b, k=4, m=6, *p1=&k, *p2=&m;
a=pl==&m;
b=(*p1)/(*p2)+7;
printf(“a=%d\n”,a);
printf(“b=%d\n”,b);
}
执行该程序后,a的值为【12】 ,b的值为【13】 。
(13) 若已定义:int a[10], i;,以下fun函数的功能是:在第一个循环中给前10个数组元素依次赋1、2、3、4、5、6、7、8、9、10;在第二个循环中使a数组前10个元素中的值对称折叠,变成1、2、3、4、5、5、4、3、2、1。请填空。
fun( int a[ ])
{ int i;
for(i=1; i<=10; i++) 【14】=i;
for(i=0; i<5; i++) 【15】=a[i];
}
(14) 以下程序运行后的输出结果是 【16】 。
main()
{ char s[ ]=“9876”,*p;
for ( p=s ; p }
(15) 若有定义语句: char s[100],d[100]; int j=0, i=0;,且s中已赋字符串,请填空以实现字符串拷贝。(注:不得使用逗号表达式)
while([i]){ d[j]= 【17】;j++;}
d[j]=0;
(16) 以下程序段用于构成一个简单的单向链表,请填空。
struct STRU
{ int x, y ;
float rate;
【18】 p;
} a, b;
a.x=0; a.y=0; a.rate=0; a.p=&b;
b.x=0; b.y=0; b.rate=0; b.p=NULL;
(l7) 若有如下结构体说明:
struct STRU
{ int a, b ; char c; double d:
struct STRU p1,p2;
};
请填空,以完成对t数组的定义,t数组的每个元素为该结构体类型
【19】 t[20];
(18) 以下程序段打开文件后,先利用 fseek函数将文件位置指针定位在文件末尾,然后调用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度,请填空。
FILE *myf; ling f1;
myf= 【20】 (“test.t”,“rb”);
fseek(myf,0,SEEK_END); f1=ftel(myf);
fclose(myf);
printf(“%d\n”,f1);

答案

"选择题 1 B 2 A 3 D 4 D 5 C 6 A 7 B 8 D 9 A 10 C 11 D 12 A 13 B 14 C 15 D 16 A 17 C 18 B 19 D 20 B 21 D 22 B 23 D 24 C 25 B 26 D 27 B 28 B 29 C 30 B 31 A 32 A 33 A 34 C 35 B 36 D 37 D 38 C 39 D 40 A 41 B 42 A 43 A 44 D 45 D 46 D 47 B 48 D 49 D 50 A 填空题 1 COPY *.TXT PRN 或XCOPY *.TXT PRN 2 MD A:\USER\X MD A:X 3 XCOPY 4 4 5 广域网 6 X+=1 7 (Y%2)==1 8 52 9 8921 10 120 11 x 12 0 13 7 14 a[i-1] 15 a[9-i] 16 9876 876 17 s[i++] 18 struct STRU * 19 struct STRU 20 fopen
"





 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50