04年浙江省计算机等级考二级C语言.docx
《04年浙江省计算机等级考二级C语言.docx》由会员分享,可在线阅读,更多相关《04年浙江省计算机等级考二级C语言.docx(13页珍藏版)》请在冰豆网上搜索。
04年浙江省计算机等级考二级C语言
2004年秋浙江省高等学校
计算机等级考试试卷(二级C)
说明:
考生应将试题一至试题三的答案涂在答题卡上,将试题四、试题五的答案填写在答卷上,否则作无效处理;
请将你的准考证号的后四位填写在答卷右下角的指定位置内;
考试时间为120分钟。
试题一、计算机基础题(本题共15分)
(一)单选题(每小题1分,共10分)
(1)计算机可以直接执行的指令一般包含
(1)两部分。
A、路径和文件名B、操作对象和运算符
C、盘符和路径D、操作码和操作对象
(2)由PowerPoint2000产生的
(2)类型的文件,通常可以在Windows2000环境下双击而直接放映。
A、.pptB、.ppsC、.potD、.ppa
(3)在Word2000操作中,使用剪切或复制命令,则系统剪贴板上就会有相应的内容,这个内容(3)。
A、只能粘贴一次
B、可以粘贴多次
C、在做了另外12次以上的剪切或复制命令后,仍能粘贴原内容
D、在下一次开机后,仍能粘贴原内容
(4)在有关Windows2000的叙述中,(4)是不正确的。
A、打开的多个窗口,既可以平铺也可以层叠
B、可以为文本文件建立快捷方式
C、不能为文件夹建立快捷方式
D、利用资源管理器,可以运行应用程序
(5)对于一台未感染病毒的计算机,以下几种操作方式中,(5)不是感染病毒的途径。
A、上网B、使用光盘C、使用优盘D、使用本地固定硬盘
(6)一幅256色800*600分辨率的彩色图像,若没有压缩,至少需要(6)字节来存放该图像文件。
A、204800KB、120000KC、480KD、468.75K
(7)下列关于微型计算机存储器的叙述中,(7)是错误的。
A、CPU可以直接访问硬盘B、ROM和RAM都是内存储器
C、CD-ROM是一种外存储器D、任何微型计算机都必须有内存储器
(8)以下(8)不是网络连接设备。
A、中继器B、HUBC、UPSD、路由器
(9)二进制数(1001101)对应的十六进制数为(9)。
A、4CB、95C、4DD、9A
(10)信息系统安全包括实体安全、信息安全、(10)安全和人员安全。
A、运行B、存储C、环境D、媒体
(二)双选题(每小题1分,共5分)
注:
从供选择的答案中选两个正确答案
(11)微型计算机中的微处理器主要由(11)构成。
A、总线B、内存储器C、运算器D、控制器
(12)下列有关操作系统概念和功能的叙述,(12)是正确的。
A、操作系统是控制和管理计算机硬件设备的大型程序
B、操作系统是系统软件的核心,是软件系统最基础的部分
C、操作系统的功能包括作业管理、处理器管理、存储管理、文件管理和设备管理
D、实时操作系统需要把CPU时间分成多个时间片,供各个用户使用
(13)在Windows2000中,下面有关画图软件的叙述,(13)是正确的。
A、选择某图形区域,必须使用“任意形状的裁剪”或“选定”工具
B、移动或复制某个图形区域,只能使用菜单命令
C、利用剪贴板可以将部分图形复制到记事本中
D、选择“用颜色填充”工具,既可以用前景色填充,也可以用背景色填充
(14)Word2000编辑软件中使用格式刷可以复制(14)。
A、文字的字号B、文字的内容
C、文字的颜色D、为普通文字复制艺术字式样
(15)下列有关Internet中地址的说法,正确的是(15)。
A、Email地址的格式为:
用户名@邮件服务器名
B、域名地址必须以WWW开头
C、域名地址中的左边第一项,即为顶级域名
D、IP地址必须由四个数字构成,每个数字不超过255
试题二、语言基础题(本题共30分)
(一)判断题(每题1分,共10分)
说明:
在以下提供的若干陈述中,逐一判断其正确与否,选A表示正确,选B表示错误。
(16)C语言程序的三种基本结构是顺序、选择和嵌套。
(17)在C语言程序中,在函数内部定义的变量称为全局变量。
(18)运算符“=”和“&=”的优先级相同。
(19)'%f'是不正确的字符常量。
(20)运算符“+”不能作为单目运算符。
(21)如果运算符“*”和“/”都是右结合的,则表达式10*6/5的值是10。
(22)s(s-a)(s-b)(s-c)是合法的C语言表达式。
(23)表达式!
!
6的值是6。
(24)表达式~(~2<<1)的值是5。
(25)对于变量定义:
inta[10],*p=a+8;数组a的最后一个元素是p[1]。
(二)单选题(每题2分,共20分)
(26)执行语句printf("(26)","A");将得到出错信息。
A、%uB、%sC、%eD、%d
(27)设c是一个字符变量,求解表达式(27)后,c的值不是1就是0。
A、c=getchar()!
='\n'B、(c=getchar())!
='\n'
C、c='1'D、c=EOF
(28)下列定义中,(28)定义的变量可以存放-123.4。
A、longa;B、unsignedb;
C、intd;D、floatc;
(29)对于变量定义:
char*pp[100],pp是一个(29)。
A、函数B、数组元素C、指针变量D、数组
(30)下列程序段的输出结果是(30)。
char*st[]={"SUN","MOON","STAR","X"};
printf("(%s,%c)",*(st+1)+1,*(*(st+2)+2)+2);
A、(MOON,M)B、(OON,C)C、(OON,Q)D、(OON,A)
(31)对于以下的变量定义,表达式(31)是不正确的。
structnode{
floatx,y;
chars[10];
}point,*p=&point;
A、p->x=2.0B、(*p).y=3.0
C、point.x=2.0D、p->s="a"
(32)下列程序段的输出结果是(32)。
inta=10,b=0;
if(a>15)
b=1;
elseif(a<2)
b=2;
else
b=3;
printf("%d",b);
A、3B、2C、1D、0
(33)只有当输入的数据满足1<=month<=12时,循环语句(33)才能正常退出。
A、do{
scanf("%d",&month);
}while(month>=1||month<=12);
B、do{
scanf("%d",&month);
}while(month>=1&&month<=12);
C、do{
scanf("%d",&month);
}while(month<1||month>12);
D、do{
scanf("%d",&month);
}while(month<=1||month>=12);
(34)调用函数f(27)的输出结果是(34)。
voidf(intn)
{if(n<5)
printf("%d",n);
else{
printf("%d",n%5);
f(n/5);
}
}
A、102B、201C、21D、20
(35)下列程序段的输出结果是(35)。
intk=3,j=4;
int*p=&k,*q=&j;
(*p)--;
j=k;
(*q)--;
printf("(%d,%d)",k,j);
A、(2,1)B、(1,2)C、(4,3)D、(3,3)
试题三、程序填空题(每空2分,共20分)
说明:
阅读下列程序说明和相应程序(段),在每小题提供的若干可选答案中,挑选一个正确答案。
程序1、
【程序说明】
输入一批以-1结束的整数,求偶数和。
【程序】
#include
voidmain()
{intx,sum;
sum=0;
scanf("%d",&x);
(36){
if((37))sum=sum+x;
(38);
}
printf("sum=%d",sum);
}
(36)A、while(x==-1)B、while(x!
=-1)
C、if(x==-1)D、if(x!
=-1)
(37)A、x==2B、x%2==2
C、x%2==0D、x/2==0
(38)A、scanf("%d",&x)B、scanf("%d",x)
C、sum=0D、x=sum
2、程序2
【程序说明】
a是一个3×3的矩阵,输入a的元素,如果a是下三角矩阵,输出“YES”,否则,输出“NO”。
(下三角矩阵,即主对角线以上的元素都为0,主对角线为从矩阵的左上角至右下角的连线)
【程序】
#include
voidmain()
{intflag,i,k;
inta[3][3];
for(i=0;i<3;i++)
for(k=0;k<3;k++)
scanf("%d",&a[i][k]);
(39);
for(i=0;i<3&&flag;i++)
for(k=i+1;k<3&&flag;k++)
if((40))(41);
if(flag)printf("YES\n");
elseprintf("NO\n");
}
(39)A、flag=0B、flag==0C、flag==1D、flag=1
(40)A、a[k][i]!
=0B、a[i][k]==0C、a[i][k]!
=0D、a[k][i]==0
(41)A、flag=0B、flag==0C、flag==1D、flag=1
程序3、
【程序说明】
输入一个字符串,将其中的大写字母转换为小写字母后输出。
【程序】
#include
voidmain()
{charstr[80];
intk;
gets(str);
for(k=0;str[k]!
='\0';k++)
if((42))(43);
puts(str);
}
(42)A、'A'<=str[k]<='Z'B、str[k]>'A'&&str[k]<'Z'
C、str[k]>='A'&&str[k]<='Z'D、str[k]>='A'||str[k]<='Z'
(43)A、str[k]=str[k]–32B、str[k]=str[k]-'a'+'A'
C、tolower(str[k])D、str[k]=str[k]-'A'+'a'
程序4、
【程序说明】
请仔细阅读函数f1,然后在函数f2中填入正确的内容,使函数f1和函数f2有相同的功能。
【程序】
intf1(chars[])
{intk=0;
while(s[k]!
='\0')
k++;
returnk;
}
intf2(char*s)
{char*ss;
(44);
while(*s!
='\0')
s++;
return(45);
}
(44)A、s=ssB、ss=sC、ss=NULLD、s=NULL
(45)A、ss-sB、s-ss-1C、s-ssD、s-ss+1
试题四、程序阅读题(每题5分,共15分)
说明:
阅读下列程序,将运行时的输出结果写在答卷纸的相应题号下。
1、程序1
#include
voidmain()
{intj,k;
floatf,s;
s=0;f=1;
for(k=1;k<=3;k++){
for(j=1;jf=f*k;
s=s+f;
printf("%.0f#",s);
}
}
2、程序2
#include
voidmain()
{longfun(longnumber);
printf("%ld\n",fun(-974));
}
longfun(longnumber)
{intflag;
longres=0;
flag=number<0?
-1:
1;
if(number<0)number=-number;
while(number!
=0){
res=res*10+number%10;
number/=10;
printf("%d#",res);
}
returnflag*res;
}
3、程序3
#include
#include
voidmain()
{FILE*in;
char*string1="IFYOUFAILTOPLAN";
char*string2="YOUPLANTOFAIL";
if((in=fopen("file1.txt","w"))!
=NULL)
while(*string2!
='\0')
fputc(*string2++,in);
fclose(in);
if((in=fopen("file1.txt","r"))!
=NULL)
while(fgetc(in)!
=EOF)
putchar(*string1++);
fclose(in);
}
试题五、程序设计题(每题10分,共20分)
1、输入10个整数,找出其中绝对值最小的数,将它和最后一个数交换,然后输出这10个数。
2、输入一个正实数x和一个正整数n,求下列算式的值。
要求定义和调用2个函数:
fact(n)计算n的阶乘;mypow(x,n)计算x的n次幂(即xn),2个函数的返回值类型都是double。
2004年秋浙江省高校
计算机等级考试参考答案(二级C)
试题二、语言基础题(本题共34分)
㈠判断题(每题1分,共10分)
题号
A
B
C
D
题号
A
B
C
D
(16)
-
(21)
-
(17)
-
(22)
-
(18)
-
(23)
-
(19)
-
(24)
-
(20)
-
(25)
-
单选题(每题2分,共20分)
题号
A
B
C
D
题号
A
B
C
D
(26)
-
(31)
-
(27)
-
(32)
-
(28)
-
(33)
-
(29)
-
(34)
-
(30)
-
(35)
-
试题三、程序填空题(每空2分,共20分)
题号
A
B
C
D
题号
A
B
C
D
(36)
-
(41)
-
(37)
-
(42)
-
(38)
-
(43)
-
(39)
-
(44)
-
(40)
-
(45)
-
试题四、程序阅读题(每题5分,共15分)
1
1#3#21#错1项扣2分
2
4#47#479#-479错1项扣2分
3
IFYOUFAILTOPL错1项扣2分
试题五、编程题(每题10分,共20分)
1、
#include
#include
main()
{inti,sub,t;
inta[10];
for(i=0;i<10;i++)
scanf("%d",&a[i]);
sub=0;
for(i=1;i<10;i++)
if(abs(a[sub])>abs(a[i]))sub=i;
t=a[sub];
a[sub]=a[9];
a[9]=t;
for(i=0;i<10;i++)
printf("%d",a[i]);
}
2、
#include
main()
{intflag,i,n;
doublex,sum;
doublefact(intn);
doublemypow(doublex,intn);
scanf("%lf%d",&x,&n);
sum=0;
flag=1;
for(i=1;i<=n;i++){
sum=sum+flag*mypow(x,i)/fact(i);
flag=-flag;
}
printf("%f\n",sum);
}
doublefact(intn)
{inti;
doubleres=1;
for(i=1;i<=n;i++)
res=res*i;
returnres;
}
doublemypow(doublex,intn)
{inti;
doubleres=1;
for(i=1;i<=n;i++)
res=res*x;
returnres;
}