C语言刷题统计总集.docx
《C语言刷题统计总集.docx》由会员分享,可在线阅读,更多相关《C语言刷题统计总集.docx(20页珍藏版)》请在冰豆网上搜索。
![C语言刷题统计总集.docx](https://file1.bdocx.com/fileroot1/2023-1/10/0b15a8f7-cb6c-45c4-a81d-cb0ba8ffced5/0b15a8f7-cb6c-45c4-a81d-cb0ba8ffced51.gif)
C语言刷题统计总集
第1题(35.0分)
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
在键盘上输入一个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);
}
intfun(inta[3][3])
{
/**********Program**********/
intsum;
inti;
sum=0;
for(i=0;i<3;i++)
sum=sum+a[i][i]*a[i][i];
returnsum;
/**********End**********/
}
第2题(35.0分)
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
求小于lim的所有素数并放在aa数组中,该函数返回
所求出素数的个数。
------------------------------------------------*/
#include
#include
#defineMAX100
voidwwjt();
intfun(intlim,intaa[MAX])
{
/**********Program**********/
intn=0;
inti,j;
for(i=2;i<=lim;i++)
{for(j=2;j
if(i%j==0)break;
if(j==i)aa[n++]=i;
}
returnn;
/**********End**********/
}
main()
{
intlimit,i,sum;
intaa[MAX];
printf("Pleaseinputainteger:
");
scanf("%d",&limit);
sum=fun(limit,aa);
for(i=0;iif(i%10==0&&i!
=0)printf("\n");
printf("%5d",aa[i]);
}
第3题(35.0分)
/*------------------------------------------------
【程序设计】
--------------------------------------------------
题目:
输入华氏温度求摄氏温度。
转换公式为c=5/9(f-32),
输出结果取两位小数。
------------------------------------------------*/
#include
voidwwjt();
doublefun(doublem)
{
/**********Program**********/
floatn;
n=(5.0/9.0)*(m-32);
returnn;
/**********End**********/
}
voidmain()
{
doublec,f;
printf("请输入一个华氏温度:
");
scanf("%f",&f);
c=fun(f);
printf("摄氏温度为:
%5.2f\n",c);
}
第4题(35.0分)
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
找出一批正整数中的最大的偶数。
------------------------------------------------*/
#include
voidwwjt();
intfun(inta[],intn)
{
/**********Program**********/
inti,amax=-1;
for(i=0;iif(a[i]%2==0)
if(a[i]>amax)amax=a[i];
returnamax;
/**********End**********/
}
main()
{
inta[]={1,2,9,24,35,18},k;
k=fun(a,6);
printf("max=%d\n",k);
}
第5题(35.0分)
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
编写main程序调用函数fact求解从m个元素选n个元
素的组合数的个数。
计算公式是:
组合数=m!
/(n!
.(m-n)!
)。
要求:
m不能小于n,否则
应有容错处理。
说明:
函数fact(x)的功能是求x!
。
------------------------------------------------*/
#include
voidwwjt();
longfact(intx)
{
longy;
inti;
y=1;
for(i=1;i<=x;i++)
y=y*i;
returny;
}
main()
{
intm,n;
longzhsgs;
printf("请输入m和n:
\n");scanf("%d%d",&m,&n);
/**********Program**********/
while(m{
printf("m和n输入错!
请重新输入:
\n");
scanf("%d%d",&m,&n);
}
zhsgs=fact(m)/(fact(n)*fact(m-n));
/**********End**********/
printf("从%d个元素选%d个元素的组合数的个数是:
%d\n",m,n,zhsgs);
}
第6题(35.0分)
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
求一个四位数的各位数字的立方和。
------------------------------------------------*/
#include
voidwwjt();
intfun(intn)
{
/**********Program**********/
intd,s=0;
while(n>0)
{d=n%10;
s+=d*d*d;
n/=10;
}
returns;
/**********End**********/
}
main()
{
intk;
k=fun(1234);
printf("k=%d\n",k);
}
第7题(35.0分)
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
在键盘上输入一个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**********/
intsum;
inti;
sum=0;
for(i=0;i<3;i++)
sum=sum+a[i][i]*a[i][i];
returnsum;
/**********End**********/
}
第8题(35.0分)
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
计算n门课程的平均值,计算结果作为函数值返回。
例如:
若有5门课程的成绩是:
92,76,69,58,88,
则函数的值为76.600000。
------------------------------------------------*
#include
voidwwjt();
floatfun(inta[],intn)
{
/**********Program**********/
inti;
floaty=0;
for(i=0;iy+=a[i];
y=y/n;
returny;
/**********End**********/
}
main()
{
inta[]={92,76,69,58,88};
printf("y=%f\n",fun(a,5));
}
第9题(35.0分)
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
根据整型形参m,计算如下公式的值:
y=sin(m)*10。
例如:
若m=9,则应输出:
4.121185
------------------------------------------------*/
#include
#include"math.h"
voidwwjt();
doublefun(intm)
{
/**********Program**********/
doubley=0;
y=sin(m)*10;
return(y);
/**********End**********/
}
main()
{
intn;
printf("Entern:
");
scanf("%d",&n);
printf("\nTheresultis%1f\n",fun(n));
}
第10题(35.0分)
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
求一批数中最大值和最小值的差。
------------------------------------------------*/
#defineN30
#include"stdlib.h"
#include
voidwwjt();
intmax_min(inta[],intn)
{
/**********Program**********/
inti,max,min;
max=min=a[0];
for(i=1;iif(a[i]>max)max=a[i];
elseif(a[i]return(max-min);
/**********End**********/
}
main()
{
inta[N],i,k;
for(i=0;ia[i]=random(51)+10;
for(i=0;i{
printf("%5d",a[i]);
if((i+1)%5==0)printf("\n");
}
k=max_min(a,N);
printf("theresultis:
%d\n",k);
}
第11题(35.0分)题号:
354
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
判断一个整数w的各位数字平方之和能否被5整除,
可以被5整除则返回1,否则返回0。
------------------------------------------------*/
#include
#include"conio.h"
voidwwjt();
intfun(intw)
{
/**********Program**********/
intk,s=0;
do
{s=s+(w%10)*(w%10);
w=w/10;
}while(w!
=0);
if(s%5==0)k=1;
elsek=0;
return(k);
/**********End**********/
}
main()
{
intm;
printf("Enterm:
");
scanf("%d",&m);
printf("\nTheresultis%d\n",fun(m));
}
第12题(35.0分)题号:
354
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
对某一正数的值保留2位小数,并对第三位进行四舍
五入。
------------------------------------------------*/
#include
#include"conio.h"
voidwwjt();
doublefun(floath)
{
/**********Program**********/
inti;
i=(int)(h*1000)%10;
if(i>=5)
return(int)(h*100+1)/100.0;
else
return(int)(h*100)/100.0;
/**********End**********/
}
main()
{
floatm;
printf("Enterm:
");
scanf("%f",&m);
printf("\nTheresultis%8.2f\n",fun(m));
}
第13题(35.0分)题号:
354
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
统计出若干个学生的平均成绩,最高分以及得最高
分的人数。
例如:
输入10名学生的成绩分别为92,87,68,56,92,
84,67,75,92,66,则输出平均成绩为77.9,
最高分为92,得最高分的人数为3人。
------------------------------------------------*/
#include
voidwwjt();
floatMax=0;
intJ=0;
floatfun(floatarray[],intn)
{
/**********Program**********/
inti;floatsum=0,ave;
Max=array[0];
for(i=0;i{if(Maxsum=sum+array[i];}
ave=sum/n;
for(i=0;iif(array[i]==Max)J++;
return(ave);
/**********End**********/
}
main()
{
floata[10],ave;
inti=0;
for(i=0;i<10;i++)
scanf("%f",&a[i]);
ave=fun(a,10);
printf("ave=%f\n",ave);
printf("max=%f\n",Max);
printf("Total:
%d\n",J);
}
第35题(10.0分)题号:
354
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
找出一批正整数中的最大的偶数。
------------------------------------------------*/
#include
voidwwjt();
intfun(inta[],intn)
{
/**********Program**********/
inti,amax=-1;
for(i=0;iif(a[i]%2==0)
if(a[i]>amax)amax=a[i];
returnamax;
/**********End**********/
}
main()
{
inta[]={1,2,9,24,35,18},k;
k=fun(a,6);
printf("max=%d\n",k);
}
第15题(35.0分)
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
对长度为8个字符的字符串,将8个字符按降序排列。
例如:
原来的字符串为CEAedcab,排序后输出为edcbaECA。
------------------------------------------------*/
#include
#include
#include
voidwwjt();
voidfun(char*s,intnum)
{
/**********Program**********/
inti,j;
chart;
for(i=0;ifor(j=i+1;jif(s[i]
{t=s[i];s[i]=s[j];s[j]=t;}
/**********End**********/
}
main()
{
chars[10];
printf("输入8个字符的字符串:
");
gets(s);
fun(s,8);
printf("\n%s",s);
}
第16题(35.0分)题号:
354
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
编写函数fun对主程序中用户输入的具有10
个数据的数组a按由大到小排序,并在主程序中输出
排序结果。
------------------------------------------------*/
#include
voidwwjt();
intfun(intarray[],intn)
{
/**********Program**********/
intk,j,t;
for(k=0;kfor(j=k+1;jif(array[k]{
t=array[k];
array[k]=array[j];
array[j]=t;
}
/**********End**********/
}
main()
{
inta[10],i;
printf("请输入数组a中的十个数:
\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
fun(a,10);
printf("由大到小的排序结果是:
\n");
for(i=0;i<10;i++)
printf("%4d",a[i]);
printf("\n");
}
第17题(35.0分)题号:
354
/*------------------------------------------------
【程序设计】