2004年4月全国计算机等级考试二级C语言笔试试题及参考解答(考试时间120分钟,满分100分)
一、选择题((1)~(40)每题1分,(41)~(50)每题2分,共60分)
1、1MB等于()
A)1000字节B)1024字节C)1000*1000字节D)1024*1024字节
2、与十六进制数200等值得十进制数为()
A)256 B)512 C)1024 D)2048
3、所谓"裸机"是指()
A)单片机B)单板机C)不装备任何软件的计算机D)只装备操作系统的计算机
4、能将高级语言编写的源程序转换为目标程序的是()
A)链接程序B)解释程序C)编译程序D)编辑程序
5、在64为计算机中,一个字长所占字节数为()
A)64 B)8 C)4 D)1
6、在Windows环境下,当一个应用程序窗口被最小化后,该应用程序()
A)继续在后台运行B)继续在前台运行
C)终止运行D)暂停运行
7、在Windows环境下,能实现窗口移动的操作是()
A)用鼠标拖动窗口中的任何部位B)用鼠标拖动窗口的边框
C)用鼠标拖动窗口的控制按钮D)用鼠标拖动窗口的标题栏。
8、在Windows环境下,PrintScreen键的作用是()
A)打印当前窗口的内容B)打印屏幕内容
C)复制屏幕到剪贴板D)复制当前窗口到剪贴板
9、Internet的通信协议是()
A)TCP/IP B)BBS C)WWW D)FTP
10、下列叙述中正确的是()
A)计算机病毒只感染可执行文件
B)计算机病毒只感染文本文件
C)计算机病毒只能通过软件复制的方式进行传播
D)计算机病毒可以通过网络或读写磁盘方式进行传播
11、一个算法应该具有"确定性"等5个特性,下面对另外4个特性的描述中错误的是
A)有零个或多个输入B)有零个或多个输出
C)有穷性D)可行性
12、以下叙述中正确的是()
A)C语言的源程序不必通过编译就可以直接运行
B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令
C)C源程序经编译形成的二进制代码可以直接运行
D)C语言中的函数不可以单独进行编译
13、以下符合C语言语法的实型常量是()
A)1.2E0.5 B)3.14.159E C).5E-3 D)E15
14、以下4组用户定义标识符中,全部合法的一组是()
A)_main B)If C)txt D)int
enclude -max REAL k_2
sin turbo 3COM _001
15、若以下选项中的变量已正确定义,则正确的赋值语句是()
A)x1=26.8%3 B)1+2=x2 C)x3=0x12 D)x4=1+2=3;
16、设有以下定义
int a=0;
double b=1.25;
char c=’A’;
#define d 2
则下面语句中错误的是()
A)a++; B)b++ C)c++; D)d++;
17、设有定义:float a=2,b=4,h=3;,以下C语言表达式与代数式计算结果不相
符的是()
A)(a+b)*h/2 B)(1/2)*(a+b)*h C)(a+b)*h*1/2 D)h/2*(a+b)
18、有以下程序
main( )
{
int x=102,y=012;
printf("%2d,%2d\n",x,y);
} 执行后输出结果是()
A)10,01 B)002,12 C)102,10 D)02,10
19、以下4个选项中,不能看作一条语句的是()
A){;} B)a=0,b=0,c=0; C)if(a>0); D)if(b==0) m=1;n=2;
20、设有定义:int a,*pa=&a;以下scanf语句中能正确为变量a读入数据的是()
A)scanf("%d",pa); B)scanf("%d",a);
C)scanf("%d",&pa); D)scanf("%d",*pa);
21、以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是()
A)if((a>b)&&(b>c)) k=1; B) if((a>b)||(b>c)) k=1
else k=0;
C)if(a<=b) k=0; D)if(a>b) k=1;
else if(b<=c) k=1; else if(b>c) k=1;
else k=0;
22、有以下程序
main( )
{ char k; int I;
for(i=1;i<3;i++)
{ scanf("%c",&k);
switch(k)
{ case '0': printf("another\n");
case '1': printf("number\n");
}
}
}
程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是()
A) another B)another C)another D)number
number number number number
another number
23、有以下程序
main( )
{ int x=0,y=5,z=3;
while(z-->0&&++x<5) y=y-1;
printf("%d,%d,%d\n",x,y,z);
}
程序执行后的输出结果是()
A)3,2,0 B)3,2,-1 C)4,3,-1 D)5,-2,-5
24、有以下程序
main( )
{ int i,s=0;
for(i=1;i<10;i+=2) s+=i+1;
printf("%d\n",s);
}
程序执行后的输出结果是()
A)自然数1~9的累加和B)自然数1~10的累加和
C)自然数1~9中的奇数之和D)自然数1~10中的偶数之和
25、有以下程序
main( )
{ int i,n=0;
for(i=2;i<5;i++)
{ do
{ if(i%3) continue;
n++;
} while(!i);
n++;
}
printf("n=%d\n",n);
}
程序执行后的输出结果是()
A)n=5 B)n=2 C)n=3 D) n=4
26、若程序中定义了以下函数
double myadd(double a,double b)
{ return (a+b);}
并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是()A)double myadd(double a,b); B)double myadd(double,double);
C)double myadd(double b,double a); D)double myadd(double x,double y);
27、有以下程序
char fun(char x , char y)