2023年C语言操作题常考编程题库_第1页
2023年C语言操作题常考编程题库_第2页
2023年C语言操作题常考编程题库_第3页
2023年C语言操作题常考编程题库_第4页
2023年C语言操作题常考编程题库_第5页
已阅读5页,还剩43页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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、记录字符串中字母和数字的个数;

.个人所得税计算,以试验指导P24T5为原则♦/

#include<stdio.h>

voidmain()

(

inti,n;

doublea,b,c;

n=i/400;

printff'pleaseinpu:income:\n");

scanf("%d",&i);

a=(i-800)*0.05,b=20+(i-1200)*0.08,c=84+(i-2023)*0.2;

switch(n)

(

case0:

casel:printf("不需缴税\n");break;

case2:printf("需交纳%lf元\n,a);break;

case3:

case4:printf("需交纳%lf元\n”,b);break;

default:printf("需交纳%lf元\n"©;break;

}

/*2.求一组数的奇数个数,偶数个数和平均值

#include<stdio.h>

^defineN10

voidmain()

inta[N];

inti,m=0,n=0,sum=0;

doubleaverage;

printf("pleaseinpu:10numbers:\n");

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

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

if(a(i]%2==0)

m++;

else

n++;

sum+=a[i];

}

average=(double)sum/N;

printff'wehave%doddsand%devens\n",n,m);

printf("average=%lf\n",average);

)*/

/*21求一组数的正数个数和负数个数与平均值*/

#include<stdio.h>

ttdefineN10

voidmain()

inta[N];

inti,m=O,n=O,sum=O;

doubleaverage;

printff'pleaseinpu:10numbers:\n");

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

(

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

if(a[i]>0)

m++;

else

n++;

sum+=a[i];

)

average=(double)sum/N;

printf("wehave%dpositivenumbersand%dnagetvenumbers\n",m,n);

printf("theaverage=%lf”,average);

/*3.求二维数组的主次对角线之和*/

#include<stdio.h>

#defineM5

ttdefineN5

voidmain()

inta[M][N];

intijzsuml=0,sum2=0;

printf("pleaseinpu:thematrix:\n");

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

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

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

)

)

for(i=0J=0;i<M;i++J++)

(

suml+=a[i)[j];

)

for(i=OJ=N-l;i<M;i++J-)

(

sum2+=a[i][j];

}

printf("主对角线和为%d\n",suml);

printf("次对角线和为%d\n”,sum2);

/*4.调用函数判断素数*/

#include<stdio.h>

#include<math.h>

intisPrime(intn)

(

inti;

for(i=l;i<sqrt(n);i++)

(

if(n%i==O)

return0;

)

return1;

)

voidmain()

intnJ;

printf("pleaseinpu:anumber\n");

scanf(”%d”,&n);

i=isPrime(n);

if(i)

printf("%disaprime\rT,n);

else

printf("%disnotaprime\n",n);

}

/方.级数有限项求和(以格里高利公式求n为例)〃

#include<stdio.h>

#include<math.h>

voidmain()

{

intn=l;

doublep=O,t,pi;

t=V(pow((-l)z(n+l))*2*(n-l));

while(fabs(t)>=le-6)

(

pi+=t;

n++;

)

pi=4*p;

printf("%lf”,pi);

)

/B两个一维数组相加〃

/*#include<stdio.h>

ttdefineN5

voidmain()

into[N],b[N],c[N];

inti;

printf("pleaseinpu:thefirstarraya[N]:\n");

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

(

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

)

printf("pleaseinpu:thesecondarrayb[N]:\n");

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

(

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

)

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

{

c[i]=a[i]+b[i];

)

printf("thesumis:\n");

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

printf("%d\t",c[i]);

}*/

/花.1调用函数实现〃

#include<stdio.h>

#defineN5

intf(intajntb)

(

intsum;

sum=a+b;

returnsum;

)

voidmain()

{

inta[NLb[NLc[N];

inti;

printf("pleaseinpu:thefirstarraya[N]:\n");

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

(

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

)

printff'pleaseinpu:thesecondarrayb[N]:\n");

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

(

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

)

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

{

c[i]=f(a[i]/b[i]);

)

printf("thesumis:\n");

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

printf("%d\t",c[i]);

/*7.求一组数11勺最大最小值*/

/*#include<stdio.h>

voidmain()

(

inti,max,min;

inta[10];

printff'pleaseinpu:tennumbers\n");

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

(

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

)

max=a[0];

min=a[O];

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

if(a[i]>max)

(

max=a[i];

)

if(a(i]<min)

(

min=a[i];

)

)

printff'maxis%d,minis%d\n",maxzmin);

}

*/

/*随机数*/

#include<stdio.h>

#include<stdlib.h>

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=l;i<10;i++)

{

if(a[i]>max)

max=a[i];

if(a[i]<min)

min=a[i];

)

printf("max=%d\tmin=%d\n",max,min);

)

/*8.判断闰年*/

#include<stdio.h>

intf(intn)

{

if(n%4==0&&n%100!=0||n%400==0)

return1;

else

return0;

voidmoin()

intn;

printff'pleaseinpu:year:\n");

scanf(”%d”,&n);

if(f(n))

printf("%d是闰年\n",n);

else

printf("%d不是闰年\n",n);

)

/*也许会有要输出某一范围内所有闰年,思想同样,用循环调用函数即可*/

/*9.判断水仙花数(运用循环)

#include<stdio.h>

voidmain()

(

intn,a,b,c,m;

printf("plcoscinputanumberin'1);

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

}*/

/*91输出所有水仙花数(调用函数(书P108为循环做法))*/

#include<stdio.h>

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==l)

printf("%d\t"J);

)

〃10.百钱买百鸡(题目见书P11S)〃

#include<stdio.h>

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*j4-k^==100))

printf("公鸡%(1只,母鸡%d只,小鸡%d只

)

)

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

#include<stdio.h>

intf(intmjntn)

inti=l,t;

if(m<n)

t=m;

m=n;

n=t;

)

while((i=m%n)!=O)

m=n;

n=i;

}

returnn;

)

intgfintm,intn)

(

intij;

i=f(m,n);

j=m*n/i;

returnj;

voidmain()

intm,n,a,b;

printff'pleaseinpu:twonumbers:\n");

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

a=f(m,n);

b=g(m?n);

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

printf("最小公倍数为%€1\|1"为);

)

〃12.1输出10-2023之间的回文数(循环)〃

/*#include<stdio.h>

voidmain()

inti,j,k=O,a;

printf("10-2023之词的回文数有:\n“);

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

(

a=i;

j=0;

while(a>0)

(

j=*10+a%10;

a/=10;

)

if(i==j)

(

printf("%d\t"J);

k++;

if(k%5==0)

printf("\n");

)

)

printf("\n");

)*/

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

/*#include<stdio.h>

intf(intn)

(

inti=0;

while(n>0)

(

i=i*10+n%10;

n/=10;

)

returni;

voidmain()

{

intn,k;

printf("10-2023之间的J回文数有:\n”);

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

(

if(n==f(n))

(

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

k++;

if(k%5==0)

printf("\n");

)

)

printf("\n");

)*/

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

/*#include<stdio.h>

voidmain()

(

inti,aj=0;

printf("pleaseinpu:anumber:\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<stdio.h>

intf(intn)

inti=0;

while(n>0)

i=i*10+n%10;

n/=10;

)

returni;

voidmain()

{

intn;

printff'pleaseinpitanumber:\n");

scanf("%d",&n);

if(n==f(n))

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

else

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

)

〃13.排序〃

〃选择法〃

/*#include<stdio.h>

#defineN10

voidf(inta[]zintn)

inti,j,k,t;

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

for(j=i+l;j<n;j++)

if(aU]<a[k])

)

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<N;i++)

(

pnntf("%4d",a(i]);

)

printf("\n");

f(a,size);

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

printf("%4d"/a(i]);

)

printf("\n");

)

〃冒泡法〃

#include<stdio.h>

"defineN5

voidf(inta[],intn)

(

inti,j;

intt;

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

for(j=0;j<n-l-i;j++)

if(aU]>a[j+l])

t=a[j];

a[j]=a[j+l];

aU+l]=t;

)

)

}*/

〃插入法〃

#include<stdio.h>

ttdefineN5

voidf(inta[]Jntn)

{

inti,j;

intt;

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

t=a[i];

j=i;

while(j>O&&a[j-l]>t)

(

aUl=a[j-l];

-j;

}

a[j]=t;

)

)

voidmain()

(

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

inti=0;

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

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

(

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

)

printf("\n");

f(a,size);

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

(

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

)

printf("\n");

)

〃二维数组的转置〃

#includc<stdio.h>

#defineN3

ttdefineM3

voidmain()

inta[M][N]zb[M][N];

inti,j;

printf("pleaseinpu:a[M][N]\n");

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

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

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

)

)

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

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

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

)

)

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

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

(

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

(

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

}printf("\n");

)

printf("\n");

)

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

#include<stdio.h>

intf(intn)

if(n==l||n==U)

return1;

else

returnf(n-l)*n;

voidmain()

intn,m;

printff'pleaseinpu:anumber:\n");

scanf("%d",&n);

m=f(n);

printf("%d!=%d\n"1n,m);

}

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

#include<stdio.h>

intf(intn)

(

if(n==l||n==2)

return1;

else

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

)

voidmain()

inti,k=0;

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

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

k++;

if(k%5==0)

printf("\n");

}

printf("\n");

)

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

/*#include<stdio.h>

#include<math.h>

tfdefineN5

voidmain()

intn,i,j,k,a,suml=O;

printff'pleaseinpu:anumber:\n");

scanf("%d",&n);

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

(

k=fabs(10J-l);

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

suml+=j;

)

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

)*/

#incl

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论