C语言操作题常考编程题库.docx
《C语言操作题常考编程题库.docx》由会员分享,可在线阅读,更多相关《C语言操作题常考编程题库.docx(25页珍藏版)》请在冰豆网上搜索。
![C语言操作题常考编程题库.docx](https://file1.bdocx.com/fileroot1/2022-10/11/d40f42c7-736c-4386-8955-2b11f795ea5b/d40f42c7-736c-4386-8955-2b11f795ea5b1.gif)
C语言操作题常考编程题库
C语言编程题覆盖到的算法:
1、个人所得税计算;
2、求一组数的正、负数(或奇、偶数)的个数和平均值;
3、二维数组主、次对角线之和;
4、求素数(用函数实现);
5、级数有限项求和问题;
6、两个一维数组相加(用函数实现);
7、求最大、最小值;
8、判断闰年(用函数实现);
9、求水仙花数;
10、百钱百鸡;
11、求最大公约数、最小公倍数。
12、求回文数;
13、排序;
14、二维数组的转置;
15、递归函数求阶乘;
16、求斐波那契数列;
17、求和:
a+aa+aaa+aaaa+....;
18、求符合条件的整数(如:
是某个二位数的平方,个位、十位、百位数各不相同等);(包括素数,回文,完数,等等)
19、字符串加密;
20、统计字符串中字母和数字的个数;
/*1.个人所得税计算,以实验指导P24T5为标准*/
#include
voidmain()
{
inti,n;
doublea,b,c;
n=i/400;
printf("pleaseinputincome:
\n");
scanf("%d",&i);
a=(i-800)*0.05,b=20+(i-1200)*0.08,c=84+(i-2000)*0.2;
switch(n)
{
case0:
case1:
printf("不需缴税\n");break;
case2:
printf("需交纳%lf元\n",a);break;
case3:
case4:
printf("需交纳%lf元\n",b);break;
default:
printf("需交纳%lf元\n",c);break;
}
}
/*2.求一组数的奇数个数,偶数个数和平均值
#include
#defineN10
voidmain()
{
inta[N];
inti,m=0,n=0,sum=0;
doubleaverage;
printf("pleaseinput10numbers:
\n");
for(i=0;i{
scanf("%d",&a[i]);
if(a[i]%2==0)
m++;
else
n++;
sum+=a[i];
}
average=(double)sum/N;
printf("wehave%doddsand%devens\n",n,m);
printf("average=%lf\n",average);
}*/
/*2'.求一组数的正数个数和负数个数与平均值*/
#include
#defineN10
voidmain()
{
inta[N];
inti,m=0,n=0,sum=0;
doubleaverage;
printf("pleaseinput10numbers:
\n");
for(i=0;i{
scanf("%d",&a[i]);
if(a[i]>0)
m++;
else
n++;
sum+=a[i];
}
average=(double)sum/N;
printf("wehave%dpositivenumbersand%dnagetivenumbers\n",m,n);
printf("theaverage=%lf",average);
}
/*3.求二维数组的主次对角线之和*/
#include
#defineM5
#defineN5
voidmain()
{
inta[M][N];
inti,j,sum1=0,sum2=0;
printf("pleaseinputthematrix:
\n");
for(i=0;i{
for(j=0;j{
scanf("%d",&a[i][j]);
}
}
for(i=0,j=0;i{
sum1+=a[i][j];
}
for(i=0,j=N-1;i{
sum2+=a[i][j];
}
printf("主对角线和为%d\n",sum1);
printf("次对角线和为%d\n",sum2);
}
/*4.调用函数判断素数*/
#include
#include
intisPrime(intn)
{
inti;
for(i=1;i{
if(n%i==0)
return0;
}
return1;
}
voidmain()
{
intn,i;
printf("pleaseinputanumber\n");
scanf("%d",&n);
i=isPrime(n);
if(i)
printf("%disaprime\n",n);
else
printf("%disnotaprime\n",n);
}
//5.级数有限项求和(以格里高利公式求π为例)//
#include
#include
voidmain()
{
intn=1;
doublep=0,t,pi;
t=1/(pow((-1),(n+1))*2*(n-1));
while(fabs(t)>=1e-6)
{
pi+=t;
n++;
}
pi=4*p;
printf("%lf",pi);
}
//6.两个一维数组相加//
/*#include
#defineN5
voidmain()
{
inta[N],b[N],c[N];
inti;
printf("pleaseinputthefirstarraya[N]:
\n");
for(i=0;i{
scanf("%d",&a[i]);
}
printf("pleaseinputthesecondarrayb[N]:
\n");
for(i=0;i{
scanf("%d",&b[i]);
}
for(i=0;i{
c[i]=a[i]+b[i];
}
printf("thesumis:
\n");
for(i=0;iprintf("%d\t",c[i]);
}*/
//6.1调用函数实现//
#include
#defineN5
intf(inta,intb)
{
intsum;
sum=a+b;
returnsum;
}
voidmain()
{
inta[N],b[N],c[N];
inti;
printf("pleaseinputthefirstarraya[N]:
\n");
for(i=0;i{
scanf("%d",&a[i]);
}
printf("pleaseinputthesecondarrayb[N]:
\n");
for(i=0;i{
scanf("%d",&b[i]);
}
for(i=0;i{
c[i]=f(a[i],b[i]);
}
printf("thesumis:
\n");
for(i=0;iprintf("%d\t",c[i]);
}
/*7.求一组数的最大最小值*/
/*#include
voidmain()
{
inti,max,min;
inta[10];
printf("pleaseinputtennumbers\n");
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
max=a[0];
min=a[0];
for(i=1;i<10;i++)
{
if(a[i]>max)
{
max=a[i];
}
if(a[i]{
min=a[i];
}
}
printf("maxis%d,minis%d\n",max,min);
}
*/
/*随机数*/
#include
#include
voidmain()
{
inti,max,min;
inta[10];
for(i=0;i<10;i++)
{
a[i]=rand()%90+10;
printf("%d\t",a[i]);
}
max=a[0];
min=a[0];
for(i=1;i<10;i++)
{
if(a[i]>max)
max=a[i];
if(a[i]min=a[i];
}
printf("max=%d\tmin=%d\n",max,min);
}
/*8.判断闰年*/
#include
intf(intn)
{
if(n%4==0&&n%100!
=0||n%400==0)
return1;
else
return0;
}
voidmain()
{
intn;
printf("pleaseinputyear:
\n");
scanf("%d",&n);
if(f(n))
printf("%d是闰年\n",n);
else
printf("%d不是闰年\n",n);
}
/*可能会有要输出某一范围内所有闰年,思想一样,用循环调用函数即可*/
/*9.判断水仙花数(运用循环)
#include
voidmain()
{
intn,a,b,c,m;
printf("pleaseinputanumber:
\n");
scanf("%d",&n);
a=n/100;
b=n/10%10;
c=n%10;
m=a*a*a+b*b*b+c*c*c;
if(m==n)
printf("%disthenumberwewant\n",n);
else
printf("%disnotthenumber\n",n);
}*/
/*9'.输出所有水仙花数(调用函数(书P108为循环做法))*/
#include
intf(intn)
{
inta,b,c,m;
a=n/100;
b=n/10%10;
c=n%10;
m=a*a*a+b*b*b+c*c*c;
if(m==n)
return1;
else
return0;
}
voidmain()
{
inti,t;
for(i=100;i<1000;i++)
{
t=f(i