C语言操作题常考编程试题库讲解学习.docx

上传人:b****8 文档编号:10217864 上传时间:2023-02-09 格式:DOCX 页数:29 大小:18.39KB
下载 相关 举报
C语言操作题常考编程试题库讲解学习.docx_第1页
第1页 / 共29页
C语言操作题常考编程试题库讲解学习.docx_第2页
第2页 / 共29页
C语言操作题常考编程试题库讲解学习.docx_第3页
第3页 / 共29页
C语言操作题常考编程试题库讲解学习.docx_第4页
第4页 / 共29页
C语言操作题常考编程试题库讲解学习.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

C语言操作题常考编程试题库讲解学习.docx

《C语言操作题常考编程试题库讲解学习.docx》由会员分享,可在线阅读,更多相关《C语言操作题常考编程试题库讲解学习.docx(29页珍藏版)》请在冰豆网上搜索。

C语言操作题常考编程试题库讲解学习.docx

C语言操作题常考编程试题库讲解学习

 

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;i

printf("%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;i

printf("%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);

if(t==1)

printf("%d\t",i);

}

}

//10.百钱买百鸡(题目见书P115)//

#include

voidmain()

{

inti,j,k;

for(i=0;i<=20;i++)

{

for(j=0;j<=33;j++)

{

for(k=3;k<=99;k+=3)

{

if((i+j+k==100)&&(5*i+3*j+k/3==100))

printf("公鸡%d只,母鸡%d只,小鸡%d只\n",i,j,k);

}

}

}

}

/*11.求最大公约数和最小公倍数,函数实现*/

#include

intf(intm,intn)

{

inti=1,t;

if(m

{

t=m;

m=n;

n=t;

}

while((i=m%n)!

=0)

{

m=n;

n=i;

}

returnn;

}

intg(intm,intn)

{

inti,j;

i=f(m,n);

j=m*n/i;

returnj;

}

voidmain()

{

intm,n,a,b;

printf("pleaseinputtwonumbers:

\n");

scanf("%d%d",&m,&n);

a=f(m,n);

b=g(m,n);

printf("最大公约数为%d\n",a);

printf("最小公倍数为%d\n",b);

}

//12.1输出10-2000之间的回文数(循环)//

/*#include

voidmain()

{

inti,j,k=0,a;

printf("10-2000之间的回文数有:

\n");

for(i=10;i<=2000;i++)

{

a=i;

j=0;

while(a>0)

{

j=j*10+a%10;

a/=10;

}

if(i==j)

{

printf("%d\t",i);

k++;

if(k%5==0)

printf("\n");

}

}

printf("\n");

}*/

//12.2输出10-2000之间的回文数(函数调用)//

/*#include

intf(intn)

{

inti=0;

while(n>0)

{

i=i*10+n%10;

n/=10;

}

returni;

}

voidmain()

{

intn,k;

printf("10-2000之间的回文数有:

\n");

for(n=10;n<=2000;n++)

{

if(n==f(n))

{

printf("%d\t",n);

k++;

if(k%5==0)

printf("\n");

}

}

printf("\n");

}*/

//12.3判断回文数(循环)//

/*#include

voidmain()

{

inti,a,j=0;

printf("pleaseinputanumber:

\n");

scanf("%d",&i);

a=i;

while(a>0)

{

j=j*10+a%10;

a/=10;

}

if(j==i)

printf("%d是回文数\n",i);

else

printf("%d不是回文数\n",i);

}*/

//12.4判断回文数(函数调用)//

#include

intf(intn)

{

inti=0;

while(n>0)

{

i=i*10+n%10;

n/=10;

}

returni;

}

voidmain()

{

intn;

printf("pleaseinpitanumber:

\n");

scanf("%d",&n);

if(n==f(n))

printf("%d是回文数\n",n);

else

printf("%d不是回文数\n",n);

}

//13.排序//

//选择法//

/*#include

#defineN10

voidf(inta[],intn)

{

inti,j,k,t;

for(i=0;i<=n;i++)

{

k=i;

for(j=i+1;j

{

if(a[j]

k=j;

}

if(k!

=i)

{

t=a[k];

a[k]=a[i];

a[i]=t;

}

}

}

voidmain()

{

inta[N]={8,2,34,5,12,78,4,78,76,9};

inti=0;

intsize=sizeof(a)/sizeof(int);

for(i=0;i

{

printf("%4d",a[i]);

}

printf("\n");

f(a,size);

for(i=0;i

{

printf("%4d",a[i]);

}

printf("\n");

}

//冒泡法//

#include

#defineN5

voidf(inta[],intn)

{

inti,j;

intt;

for(i=0;i

{

for(j=0;j

{

if(a[j]>a[j+1])

{

t=a[j];

a[j]=a[j+1];

a[j+1]=t;

}

}

}

}*/

//插入法//

#include

#defineN5

voidf(inta[],intn)

{

inti,j;

intt;

for(i=0;i

{

t=a[i];

j=i;

while(j>0&&a[j-1]>t)

{

a[j]=a[j-1];

--j;

}

a[j]=t;

}

}

voidmain()

{

inta[N]={8,2,34,5,12};

inti=0;

intsize=sizeof(a)/sizeof(int);

for(i=0;i

{

printf("%4d",a[i]);

}

printf("\n");

f(a,size);

for(i=0;i

{

printf("%4d",a[i]);

}

printf("\n");

}

 

//二维数组的转置//

#include

#defineN3

#defineM3

voidmain()

{

inta[M][N],b[M][N];

inti,j;

printf("pleaseinputa[M][N]\n");

for(i=0;i

{

for(j=0;j

{

scanf("%d",&a[i][j]);

}

}

for(i=0;i

{

for(j=0;j

{

b[i][j]=a[j][i];

}

}

printf("b[M][N]=\n");

for(i=0;i

{

for(j=0;j

{

printf("%4d",b[i][j]);

}printf("\n");

}

printf("\n");

}

 

//15.调用递归函数求阶乘//

#include

intf(intn)

{

if(n==1||n==0)

return1;

else

returnf(n-1)*n;

}

voidmain()

{

intn,m;

printf("pleaseinputanumber:

\n");

scanf("%d",&n);

m=f(n);

printf("%d!

=%d\n",n,m);

}

/*16.运用递归函数求斐波拉契数列(前30项)*/

#include

intf(intn)

{

if(n==1||n==2)

return1;

else

returnf(n-1)+f(n-2);

}

voidmain()

{

inti,k=0;

for(i=1;i<=30;i++)

{

printf("%d\t",f(i));

k++;

if(k%5==0)

printf("\n");

}

printf("\n");

}

 

//17.求a+aa+aaa+aaaa...//

/*#include

#include

#defineN5

voidmain()

{

intn,i,j,k,a,sum1=0;

printf("pleaseinputanumber:

\n");

scanf("%d",&n);

for(i=1;i<=N;i++)

{

k=fabs(10,i-1);

j=n+n*(i-1)*k;

sum1+=j;

}

printf("sum=%d\n",sum1);

}*/

#include

#defineN5

intk(inta,intsum)

{

sum=sum*10+a;

returnsum;

}

voidmain()

{

inta,i=0,j,sum=0;

printf("pleaseinputanumber:

\n");

scanf("%d",&a);

sum=k(a,k(a,sum));

printf("sum=%d\n",sum);

}

//18.求符合条件的整数(如是某个二位数的平方,个位、十位、百位数各不相同等)//

#include

voidmain()

{

inta,b,c,n,m;

for(m=10;m<100;m++)

{

n=m*m;

a=n%10;

b=n/10%10;

c=n/100;

if(a!

=b&&b!

=c&&c!

=a)

printf("%d\t",m);

}

printf("\n");

}

//19.字符串加密//

#include

#include

#defineN80

voidmain()

{

charstr[N];

char*p;

printf("ple

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1