index=i;
temp=a[index];
a[index]=a[i];/*err10*/
a[k]=temp;
}}
四、程序选择填空题(每空1分,共10分)
说明:
阅读下列程序说明和相应程序,在每小题提供的若干可选答案中,挑选一个正确答案。
程序1、
【程序说明】
输出1~1000之间所有满足各位数的立方和等于它本身的数.
【程序】
#include
voidmain()
{intdigit,k,m,s;
for(k=1;k<=1000;k++){
(1)
while(m!
=0){
digit=m%10;s=s+digit*digit*digit;
(2)
}
if((3))printf(“%d“,(4));
}}
(1)A.s=0;m=k;B.k=k;s=0;C.m=k;Dk=m;s=0;
(2)A.m=m/10;B.m=m%10;C.m=m;Dm=k/10;
(3)A.m!
=sB.m==sC.k!
=sDk==s
(4)A.sB.digitC.mDk
程序2
【程序说明】
验证哥德巴赫猜想:
任何一个大于6的偶数均可表示为两个素数之和。
例如6=3+3,8=3+5,…,18=7+11。
将6~100之间的每个偶数都表示成两个素数之和。
函数prime(m)用于判断m是否为素数。
素数就是只能被1和自身整除的正整数,1不是素数,2是素数。
【程序】
#include"stdio.h"
#include"math.h"
voidmain()
{inti,k;
intprime(intm);
for(i=6;i<=100;i=i+2)
for(k=3;k<=50;k++)
if((5)){
printf("%d=%d+%d\n",i,k,i-k);
break;
}
}
intprime(intm)
{intk,n;
if(m==1)return0;
n=(int)sqrt(m);
for(k=2;k<=n;k++)
(6);
(7);
}
(5)A、prime(i)B、prime(i)&&prime(k)
C、prime(k)&&prime(i-k)D、prime(k)
(6)A、if(m%k!
=0)return0B、if(m%k==0)return0
C、if(m%k==0)return1D、if(m%k!
=0)return1
(7)A、return0;B、return1;
C、elsereturn0;D、elsereturn1;
程序3、
【程序说明】
根据下式计算s的值,要求精确到最后一项的绝对值小于10–6。
【程序】
#include
#include
voidmain()
{intflag=1,t=1;
(8);
while((9)){
item=flag*1.0/t;
s=s+item;
(10);
t=t+2;
}
printf("s=%f\n",s);
}
(8)A、doubleitem=0,s=0;B、doubleitem=0;s=0;
C、doubleitem=1,s=1;D、doubleitem=3,s=1;
(9)A、item<1E-6B、item>=1E-6
C、fabs(item)<1E-6D、fabs(item)>=1E-6
(10)A、flag=-1B、s=-s
C、flag=-flag;D、t=-t
五、程序阅读题(5小题每题4分,共20分)
说明:
阅读下列程序,将运行时的输出结果写在答卷纸的相应题号下。
1、程序1如输入”23cd78”,输出结果是什么.
#include
#include
voidmain()
{
inti,s=0;
charstr[80];
i=0;
while((str[i]=getchar())!
='\n')
i++;
str[i]='\0';
for(i=0;i<=10;i++)
if(str[i]>='0'&&str[i]<='9')
s=s*10+(str[i]-'0');
printf("%d",s);
}
2.程序2
#include
voidmain()
{intI,x=1,y=1;
for(I=1;I<=5;I++){
x=x+y;
y++;
printf(“%d*”,x);
}
}
3.程序3
#include
voidmain()
{intx=1,y=1;
voidf(intm,intn,int*px,int*py);
f(2004,70,&x,&y);
printf("%d#%d#",x,y);
f(2005,98,&x,&y);
printf("%d#%d#",x,y);
}
voidf(intm,intn,int*px,int*py)
{intk,flag;
inttab[2][13]={
{0,31,28,31,30,31,30,31,31,30,31,30,31},
{0,31,29,31,30,31,30,31,31,30,31,30,31},
};
flag=m%4==0&&m%100!
=0||m%400==0;
for(k=1;n>tab[flag][k];k++)
n=n-tab[flag][k];
*px=k;
*py=n;
}
4.程序4
/*假设读写文件的操作能正常完成*/
#include
#include
voidmain()
{charch,*s="ACEDB";
intx;
FILE*in;
if((in=fopen("file.txt","w"))!
=NULL)
while(*s!
='\0')
fputc(*s++,in);
fclose(in);
if((in=fopen("file.txt","r"))!
=NULL)
while((ch=fgetc(in))!
=EOF){
switch(ch){
case'A':
x=95;break;
case'B':
x=85;break;
case'C':
x=75;break;
case'D':
x=60;break;
default:
x=0;break;
}
printf("%d_",x);
}
fclose(in);
}
5.程序5
#include
voidmain()
{intx=10023;
do{
printf(“%d#”,x%10);
x=x/10;
}while(x!
=0);
}
六、程序设计题((共3题,分别为7、8、10分,共25分)
1.输入3个整数,输出其中的最大值
2.编写一程序,用函数调用方法,求一矩阵的主对角线(左上到右下角)上的元素之和。
(矩阵大小自行规定,数组内容自行输入),
3.利用数组,计算Fibonacii(斐波纳契)数列前20项的值,即1,1,2,3,5,8,…,并按每行打印5个的格式输出.
C_期终模拟题(2010年12月)
==答题纸==
一、单选题(每小题1分,共15分)
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
二.判断题((/)每题1分,共10分)
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
三.程序改错:
(20分,共3题10处错,2分/每错)
(1).err1.__err2.__________err3.__________
(2).err4.________err5.________err6.__________
(3).err7.__________err8__________
err9.______-____err10._____
四、程序选择填空题(每空1分,共10分)
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
五、程序阅读题(5小题,每题4分,共20分)
1
2
3
4
5
六、程序设计题((共3题,分别为7、8、10分,共25分)
1.
2.
3.