2003 年 9 月全国计算机二级 C 语言考试真题及答案
(考试时间 120 分钟,满分 100 分)
一、选择题((1)~(40)每题 1 分,(41)~(50)每题 2 分,共 60 分)
(1)在计算机中,一个字节所包含二进制位的个数是
A.2
B.4
C.8
D.16
(2)在多媒体计算机中,CD-ROM 属于
A.存储媒体
B.传输媒体
C.表现媒体
D.表示媒体
(3)在 DOS 系统中,带有通配符的文件名*.*表示
A.硬盘上的全部文件
B.当前盘当前目录中的全部文件
C.当前盘上的全部文件
D.根目录中的全部文件
(4)十六进制数 100 转换为十进制数为
A.256
B.512
C.1024
D.64
(5)能将高级语言编写的源程序转换为目标程序的软件是
A.汇编程序
B.编辑程序
C.解释程序
D.编译程序
(6)在 Internet 中,用于在计算机之间传输文件的协议是
1
A.TELNET
B.BBS
C.FTP
D.WWW
(7)在 Windows 环境下,资源管理器左窗口中的某文件夹左边标有"+"标记表示
A.该文件夹为空
B.该文件夹中含有子文件夹
C.该文件夹中只包含有可执行文件
D.该文件夹中包含系统文件
(8)在 Windows 环境下,下列叙述中正确的是
A.在"开始"菜单中可以增加项目,也可以删除项目
B.在"开始"菜单中不能增加项目,也不能删除项目
C.在"开始"菜单中可以增加项目,但不能删除项目
D.在"开始"菜单中不能增加项目,但可以删除项目
(9) 从 Windows 环境进入 DOS 方式后,返回 Windows 环境的命令为
A.QUIT
B.WIN
C.EXIT
D.ESC
(10) 下列叙述中正确的是
A.计算机病毒只感染可执行文件
B.计算机病毒只感染文本文件
C.计算机病毒只能通过软件复制的方式进行传播
D.计算机病毒可以通过读写磁盘或网络等方式进行传播
(11)以下叙述中正确的是
A.C 程序中注释部分可以出现在程序中任意合适的地方
B.花括号"{"和"}"只能作为函数体的定界符
C.构成 C 程序的基本单位是函数,所有函数名都可以由用户命名
D.分号是 C 语句之间的分隔符,不是语句的一部分
2
(12)以下选项中可作为 C 语言合法整数的是
A.10110B
B.0386
C.0Xffa
D.x2a2
(13)以下不能定义为用户标识符的是
A.scanf
B.Void
C._3com_
D.int
(14)有以下程序
main()
{ int a; char c=10;
float f=100.0; double x;
a=f/=c*=(x=6.5);
printf("%d %d %3.1f %3.1f\n",a,c,f,x);
}
程序运行后的输出结果是
A.1 65 1 6.5
B.1 65 1.5 6.5
C.1 65 1.0 6.5
D.2 65 1.5 6.5
(15)以下选项中非法的表达式是
A.0<=x<100
B.i=j==0
C.(char)(65+3)
D.x+1=x+1
(16)有以下程序
main()
3
{ int a=1,b=2,m=0,n=0,k;
k=(n=b>a)||(m=aprintf("%d,%d\n",k,m);
}
程序运行后的输出结果是
A.0,0
B.0,1
C.1,0
D.1,1
(17)有定义语句:int x, y;,若要通过 scanf("%d,%d",&x,&y);语句使变量 x 得到数值
11,变量 y 得到数值 12,下面四组输入形式中,错误的是
A.11 12<回车>
B.11, 12<回车>
C.11,12<回车>
D.11,<回车>
12<回车>
(18)设有如下程序段:
int x=2002, y=2003;
printf("%d\n",(x,y));
则以下叙述中正确的是
A.输出语句中格式说明符的个数少于输出项的个数,不能正确输出
B.运行时产生出错信息
C.输出值为 2002
D.输出值为 2003
(19)设变量 x 为 float 型且已赋值,则以下语句中能将 x 中的数值保留到小数点后两位,
并将第三位四舍五入的是
A.x=x*100+0.5/100.0;
B.x=(x*100+0.5)/100.0;
C.x=(int)(x*100+0.5)/100.0;
D.x=(x/100+0.5)*100.0;
4
(20)有定义语句:int a=1,b=2,c=3,x;,则以下选项中各程序段执行后,x 的值不为 3 的
是
A. if (celse if (belse x=3; else x=1;
C. if (a<3) x=3;
D.if (aif (a<2) x=2; if (bif (a<1) x=1; if (c(21)有以下程序
main()
{ int s=0,a=1,n;
scanf("%d",&n);
do
{ s+=1; a=a-2; }
while(a!=n);
printf("%d\n",s);
}
若要使程序的输出值为 2,则应该从键盘给 n 输入的值是
A.-1
B.-3
C.-5
D.0
(22)若有如下程序段,其中 s、a、b、c 均已定义为整型变量,且 a、c 均已赋值(c 大于 0)
s=a;
for(b=1;b<=c;b++) s=s+1;
则与上述程序段功能等价的赋值语句是
A.s=a+b;
B.s=a+c;
C.s=s+c;
D.s=b+c;
(23)有以下程序
main()
{ int k=4,n=0;
5
for( ; n{ n++;
if(n%3!=0) continue;
k--; }
printf("%d,%d\n",k,n);
}
程序运行后的输出结果是
A.1,1
B.2,2
C.3,3
D.4,4
(24)要求以下程序的功能是计算:s= 1+1/2+1/3+……+1/10
(资料来源:东方教育网 //www.eastedu.com.cn)
main()
{ int n; float s;
s=1.0;
for(n=10;n>1;n--)
s=s+1/n;
printf("%6.4f\n",s);
}
程序运行后输出结果错误,导致错误结果的程序行是
A.s=1.0;
B.for(n=10;n>1;n--)
C.s=s+1/n;
D.printf("%6.4f\n",s);
(25)已定义 ch 为字符型变量,以下赋值语句中错误的是
A.ch='\';
B.ch=62+3;
C.ch=NULL;
D.ch='\xaa';
6
(26)若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是
A.函数调用可以作为独立的语句存在
B.函数调用可以作为一个函数的实参
C.函数调用可以出现在表达式中
D.函数调用可以作为一个函数的形参
(27)有以下函数定义:
void fun(int n, double x) { …… }
若以下选项中的变量都已正确定义并赋值,则对函数 fun 的正确调用语句是
A.fun(int y,double m);
B.k=fun(10,12.5);
C.fun(x,n);
D.void fun(n,x);
(28)有以下程序
void fun(char *a, char *b)
{ a=b; (*a)++; }
main()
{ char c1='A',c2='a',*p1,*p2;
p1=&c1; p2=&c2; fun(p1,p2);
printf("%c%c\n",c1,c2);
}
程序运行后的输出结果是
A.Ab
B.aa
C.Aa
D.Bb
(29)若程序中已包含头文件 stdio.h,以下选项中,正确运用指针变量的程序段是
A.int *i=NULL;
B. float *f=NULL;
scanf("%d",i); *f=10.5;
7
C.char t='m', *c=&t;
D.long *L;
*c=&t; L='\0';
(30)有以下程序
#include
main()
{ printf("%d\n",NULL); }
程序运行后的输出结果是
A.0
B.1
C.-1
D.NULL 没定义,出错
(31)已定义 c 为字符型变量,则下列语句中正确的是
A.c='97';
B.c="97";
C.c=97;
D.c="a";
(32)以下不能正确定义二维数组的选项是
A.int a[2][2]={{1},{2}};
B.int a[][2]={1,2,3,4};
C.int a[2][2]={{1},2,3};
D.int a[2][]={{1,2},{3,4}};
(33)以下选项中不能正确把 cl 定义成结构体变量的是
A.typedef struct
B.struct color cl
{ int red; { int red;
int green; int green;
int blue; int blue;
8