万维考试系统C语言题库程序设计方案题导出道.docx
《万维考试系统C语言题库程序设计方案题导出道.docx》由会员分享,可在线阅读,更多相关《万维考试系统C语言题库程序设计方案题导出道.docx(260页珍藏版)》请在冰豆网上搜索。
万维考试系统C语言题库程序设计方案题导出道
一、程序设计共113题(共计1130分)
第1题(10.0分)题号:
390
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
编写函数求1~100中奇数的平方和。
结果为166650.000000。
------------------------------------------------*/
#include
voidwwjt()。
floatsum(intn)
{
/**********Program**********/
/**********End**********/
}
答案:
----------------------
floats=0。
inti。
for(i=1。
i<=n。
i=i+2)
s=s+i*i。
return(s)。
----------------------
第2题(10.0分)题号:
320
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
在键盘上输入一个3行3列矩阵的各个元素的值(值
为整数),然后输出主对角线元素的积,并在fun()
函数中输出。
------------------------------------------------*/
#include
voidwwjt()。
main()
{
inti,j,s,a[3][3]。
。
for(i=0。
i<3。
i++)
{
for(j=0。
j<3。
j++)
scanf("%d",&a[i][j])。
}
s=fun(a)。
printf("Sum=%d\n",s)。
wwjt()。
}
intfun(inta[3][3])
{
/**********Program**********/
/**********End**********/
}
voidwwjt()
{
FILE*IN,*OUT。
intm。
intn。
inti[3][3]。
into。
IN=fopen("in.dat","r")。
if(IN==NULL)
{
printf("ReadFILEError")。
}
OUT=fopen("out.dat","w")。
if(OUT==NULL)
{
printf("WriteFILEError")。
}
for(m=0。
m<3。
m++)
{
for(n=0。
n<3。
n++)
fscanf(IN,"%d",&i[m][n])。
}
o=fun(i)。
{
fprintf(OUT,"%d\n",o)。
getch()。
}
fclose(IN)。
fclose(OUT)。
}
答案:
----------------------
intsum。
inti,j。
sum=1。
for(i=0。
i<3。
i++)
sum=sum*a[i][i]。
returnsum。
----------------------
第3题(10.0分)题号:
324
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
能计算从1开始到n的自然数中偶数的平方的和,n由
键盘输入,并在main()函数中输出。
(n是偶数)
------------------------------------------------*/
#include
voidwwjt()。
intfun(intn)
{
/**********Program**********/
/**********End**********/
}
main()
{
intm。
printf("Enterm:
")。
scanf("%d",&m)。
printf("\nTheresultis%d\n",fun(m))。
wwjt()。
}
voidwwjt()
{
FILE*IN,*OUT。
intt。
into。
intc。
IN=fopen("in.dat","r")。
if(IN==NULL)
{
printf("ReadFILEError")。
}
OUT=fopen("out.dat","w")。
if(OUT==NULL)
{
printf("WriteFILEError")。
}
for(c=1。
c<=5。
c++)
{
fscanf(IN,"%d",&t)。
o=fun(t)。
fprintf(OUT,"%d\n",o)。
}
fclose(IN)。
fclose(OUT)。
}
答案:
----------------------
intsum,i。
sum=0。
for(i=2。
i<=n。
i=i+2)
{
sum=sum+i*i。
}
return(sum)。
----------------------
第4题(10.0分)题号:
345
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
将两个两位数的正整数a、b合并形成一个整数放在c
中。
合并的方式是:
将a数的十位和个位数依次放在
c数的千位和十位上,b数的十位和个位数依次放在
c数的个位和百位上。
例如:
当a=45,b=12。
调用该函数后,c=4251。
------------------------------------------------*/
#include
voidwwjt()。
voidfun(inta,intb,long*c)
{
/**********Program**********/
/**********End**********/
}
main()
{
inta,b。
longc。
printf("inputa,b:
")。
scanf("%d%d",&a,&b)。
fun(a,b,&c)。
printf("Theresultis:
%ld\n",c)。
wwjt()。
}
voidwwjt()
{
FILE*rf,*wf。
inti,a,b。
longc。
rf=fopen("in.dat","r")。
wf=fopen("out.dat","w")。
for(i=0。
i<10。
i++)
{
fscanf(rf,"%d,%d",&a,&b)。
fun(a,b,&c)。
fprintf(wf,"a=%d,b=%d,c=%ld\n",a,b,c)。
}
fclose(rf)。
fclose(wf)。
}
答案:
----------------------
*c=a/10*1000+a%10*10+b/10+b%10*100。
----------------------
第5题(10.0分)题号:
366
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
求一组数中大于平均值的数的个数。
例如:
给定的一组数为1,3,6,9,4,23,35,67,12,88时,函
数值为3。
------------------------------------------------*/
#include
voidwwjt()。
intfun(inta[],intn)
{
/**********Program**********/
/**********End**********/
}
main()
{
inta[10]={1,3,6,9,4,23,35,67,12,88}。
inty。
y=fun(a,10)。
printf("y=%d\n",y)。
wwjt()。
}
voidwwjt()
{
FILE*IN,*OUT。
intiIN[10],iOUT,i,j。
IN=fopen("in.dat","r")。
if(IN==NULL)
{
printf("PleaseVerifyTheCurrerntDir..itMayBeChanged")。
}
OUT=fopen("out.dat","w")。
if(OUT==NULL)
{
printf("PleaseVerifyTheCurrentDir..itMayBeChanged")。
}
for(j=0。
j<10。
j++)
{
for(i=0。
i<10。
i++)
fscanf(IN,"%d",&iIN[i])。
iOUT=fun(iIN,10)。
}
fprintf(OUT,"%d\n",iOUT)。
fclose(IN)。
fclose(OUT)。
}
答案:
----------------------
inti,k=0。
floats=0,ave。
for(i=0。
ii++)
s+=a[i]。
ave=s/n。
printf("%f",ave)。
for(i=0。
ii++)
if(a[i]>ave)k++。
returnk。
----------------------
第6题(10.0分)题号:
355
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
对长度为8个字符的字符串,将8个字符按降序排列。
例如:
原来的字符串为CEAedcab,排序后输出为edcbaECA。
------------------------------------------------*/
Firefox
答案:
----------------------
inti,j。
chart。
for(i=0。
ii++)
for(j=i+1。
jj++)
if(s[i]
{t=s[i]。
s[i]=s[j]。
s[j]=t。
}
----------------------
第7题(10.0分)题号:
44
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
求出二维数组周边元素之和,作为函数值返回。
二
维数组的值在主函数中赋予。
-------------------------------------------------*/
#defineM4
#defineN5
#include
voidwwjt()。
intfun(inta[M][N])
{
/**********Program**********/
/**********End**********/
}
main()
{
inta[M][N]={{1,3,5,7,9},{2,4,6,8,10},{2,3,4,5,6},{4,5,6,7,8}}。
inty。
y=fun(a)。
printf("s=%d\n",y)。
wwjt()。
}
voidwwjt()
{
FILE*IN,*OUT。
intiIN[M][N],iOUT。
inti,j,k。
IN=fopen("14.IN","r")。
if(IN==NULL)
{printf("PleaseVerifyTheCurrerntDir..itMayBeChanged")。
}
OUT=fopen("14.out","w")。
if(OUT==NULL)
{printf("PleaseVerifyTheCurrentDir..itMayBeChanged")。
}
for(k=0。
k<10。
k++)
{for(i=0。
ii++)
for(j=0。
jj++)
fscanf(IN,"%d",&iIN[i][j])。
iOUT=fun(iIN)。
fprintf(OUT,"%d\n",iOUT)。
}
fclose(IN)。
fclose(OUT)。
}
答案:
----------------------
ints=0。
inti,j。
for(i=0。
ii++)
s=s+a[i][0]+a[i][N-1]。
for(j=1。
jj++)
s=s+a[0][j]+a[M-1][j]。
returns。
----------------------
第8题(10.0分)题号:
339
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
判断整数x是否是同构数。
若是同构数,函数返回1;
否则返回0。
x的值由主函数从键盘读入,要求不大
于100。
说明:
所谓“同构数”是指这样的数,这个数出现在它的
平方数的右边。
例如:
输入整数5,5的平方数是25,5是25中右侧的数,所
以5是同构数。
------------------------------------------------*/
#include
voidwwjt()。
intfun(intx)
{
/**********Program**********/
/**********End**********/
}
main()
{
intx,y。
printf("\nPleaseenteraintegernumbers:
")。
scanf("%d",&x)。
if(x>100)
{
printf("dataerror!
\n")。
exit(0)。
}
y=fun(x)。
if(y)
printf("%dYES\n",x)。
else
printf("%dNO\n",x)。
wwjt()。
}
voidwwjt()
{
FILE*IN,*OUT。
intn,t。
into。
IN=fopen("in.dat","r")。
if(IN==NULL)
{
printf("ReadFILEError")。
}
OUT=fopen("out.dat","w")。
if(OUT==NULL)
{
printf("WriteFILEError")。
}
for(t=0。
t<5。
t++)
{
fscanf(IN,"%d",&n)。
o=fun(n)。
fprintf(OUT,"%d\n",o)。
}
fclose(IN)。
fclose(OUT)。
}
答案:
----------------------
intk。
k=x*x。
if((k%10==x)||(k%100==x))
return1。
else
return0。
----------------------
第9题(10.0分)题号:
383
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
用函数实现字符串的复制,不允许用strcpy()函数。
------------------------------------------------*/
#include
voidwwjt()。
voidcopy(charstr1[],charstr2[])
{
/**********Program**********/
/**********End**********/
}
main()
{
voidcopy()。
charc1[40],c2[40]。
gets(c1)。
copy(c1,c2)。
puts(c2)。
wwjt()。
}
voidwwjt()
{
FILE*IN,*OUT。
chari[100]。
charo[100]。
IN=fopen("in.dat","r")。
if(IN==NULL)
{
printf("ReadFILEError")。
}
OUT=fopen("out.dat","w")。
if(OUT==NULL)
{
printf("WriteFILEError")。
}
fscanf(IN,"%s",i)。
copy(i,o)。
fprintf(OUT,"%s\n",o)。
fclose(IN)。
fclose(OUT)。
}
答案:
----------------------
inti。
for(i=0。
str1[i]!
='\0'。
i++)
str2[i]=str1[i]。
str2[i]='\0'。
----------------------
第10题(10.0分)题号:
310
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
计算并输出给定整数n的所有因子之和(不包括1与
自身)。
注意:
n的值不大于1000。
例如:
n的值为855时,应输出704。
------------------------------------------------*/
#include
voidwwjt()。
intfun(intn)
{
/**********Program**********/
/**********End**********/
}
main()
{
printf("s=%d\n",fun(855))。
wwjt()。
}
voidwwjt()
{
FILE*IN,*OUT。
intiIN,iOUT,i。
IN=fopen("in.dat","r")。
if(IN==NULL)
{
printf("PleaseVerifyTheCurrerntDir..itMayBeChanged")。
}
OUT=fopen("out.dat","w")。
if(OUT==NULL)
{
printf("PleaseVerifyTheCurrentDir..itMayBeChanged")。
}
for(i=0。
i<5。
i++)
{
fscanf(IN,"%d",&iIN)。
iOUT=fun(iIN)。
fprintf(OUT,"%d\n",iOUT)。
}
fclose(IN)。
fclose(OUT)。
}
答案:
----------------------
ints=0,i。
for(i=2。
ii++)
if(n%i==0)s=s+i。
returns。
----------------------
第11题(10.0分)题号:
354
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
求小于lim的所有素数并放在aa数组中,该函数返回
所求出素数的个数。
------------------------------------------------*/
#include
#include
#defineMAX100
voidwwjt()。
intfun(intlim,intaa[MAX])
{
/**********Program**********/
/**********End**********/
}
main()
{
intlimit,i,sum。
intaa[MAX]。
printf("Pleaseinputainteger:
")。
scanf("%d",&limit)。
sum=fun(limit,aa)。
for(i=0。
ii++){
if(i%10==0&&i!
=0)printf("\n")。
printf("%5d",aa[i])。
}
wwjt()。
}
voidwwjt()
{
inti,j,array[100],sum,lim。
FILE*rf,*wf。
rf=fopen("in.dat","r")。
wf=fopen("out.dat","w")。
for(j=0。
j<=5。
j++)
{
fscanf(rf,"%d",&lim)。
sum=f