admin 管理员组

文章数量: 887021


2023年12月24日发(作者:foreach获取index)

C语言操作题常考编程题库

C语言编程题覆盖到的算法:

1、 个人所得税计算;

2、 求一组数的正、负数(或奇、偶数)的个数 和平均值;

3、 二维数组主、次对角线之和;

4、 求素数(用函数实现);

5、 级数有限项求和问题;

6、 两个一维数组相加(用函数实现);

7、 求最大、最小值;

8判断闰年(用函数实现);

9、 求水仙花数;

10、 百钱百鸡;

11、 求最大公约数、最小公倍数。

12、 求回文数;

13、14、二维数组的转置15、16、17、18、方,个位、十位、百位数各不相同等);数,回文,完数,等等19、20、 排序;

;

递归函数求阶乘;

求斐波那契数列;

求和:a+aa+aaa+aaaa+....;

求符合条件的整数(如:是某个二位数的平

(包括素)

字符串加密;

统计字符串中字母和数字的个数;

/*1.个人所得税计算,以实验指导P24T5为标准

*/

#in clude

void mai n()

{

int i,n;

double a,b,c;

n=i/400;

prin tf("please in put in come: n");

sca nf("%d",&i);

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

(i-2000)*0.2;

switch( n)

{

case 0:

case 1:pri ntf("

case 2:pri ntf("

case 3:

case 4:pri ntf("

default:pri ntf("

n",c);break;

}

不需缴税n");break;

需交纳

%lf

兀n",a);break;

需交纳

%lf

兀n",b);break;

需交纳

%lf

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

#in

clude

#defi ne N 10

void mai n()

{

int a[N];

int i,m=0, n=0,sum=0;

double average;

prin tf("please in put 10 nu mbers:n");

for(i=O;i

{

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

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

m++;

else

n++;

sum+=a[i];

}

average=(double)sum/N;

prin tf("we

eve nsn", n,m);

prin tf("average=%lfn",average);

}*/

/*2'.求一组数的正数个数和负数个数与平均值

*/

#in clude

#defi ne N 10

void mai n()

{

int a[N];

have %d odds and %d

int i,m=0, n=0,sum=0;

double average;

prin tf("please in put 10 nu mbers: n");

for(i=O;i

{

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

if(a[i]>0)

m++;

else

n++;

sum+=a[i];

}

average=(double)sum/N;

prin tf("we have %dpositive n umbers and %d

n agetive nu mbersn",m, n);

prin tf("the average =%lf",average);

}

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

#in clude #defi ne M 5

#defi ne N 5

void mai n()

{

int a[M][N];

int i,j,sum1=0,sum2=0;

prin tf("please in put the matrix:n");

for(i=0;i

{

for(j=0;j

{

sca nf("%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("主对角线和为

%dn",sum1);

printf("次对角线和为

%dn",sum2);

}

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

#in clude

#in clude

int isPrime(i nt n)

{

int i;

for(i=1;i

{

if(n %i==0)

return 0;

}

return 1;

}

void mai n()

{

int n,i;

prin tf("please in put a n umber n");

sea nf("%d",&n);

i=isPrime( n);

if(i)

prin tf("%d is a primen", n);

else

}

prin tf("%d is n ot a primen", n);

〃5.级数有限项求和(以格里高利公式求

例)〃

#in clude

#in clude

void mai n()

{

int n=1;

double p=O,t,pi;

t=1/(pow((-1),( n+1))*2*( n-1));

while(fabs(t)>=1e-6)

{

pi+=t;

n++;

}

n为

}

pi=4*p;

prin tf("%lf",pi);}

〃6.两个一维数组相加//

/*# in clude #defi ne N 5

void mai n()

{

int a[N],b[N],c[N];

int i;

prin tf("please in put the first

a[N]:n");

for(i=0;i

{

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

}

prin tf("please in put the sec ond

array

array

b[N]:n");

for(i=0;i

{

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

}

for(i=0;i

{

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

}

prin tf("the sum is: n");

for(i=0;i

prin tf("%dt",c[i]);

}*/

//6.1调用函数实现//

{

#in clude

#defi ne N 5 int f(i nt a,i nt b)

int sum;

sum=a+b;

return sum;

}

void mai n()

{

int a[N],b[N],c[N];

int i;

prin tf("please in put the first

a[N]:n");

for(i=0;i

{

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

}

{

prin tf("please in put the sec ond

b[N]:n");

for(i=0;i

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

}

for(i=0;i

{

e[i]=f(a[i],b[i]);

}

prin tf("the sum is:n");

for(i=0;i

}

array

array

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

/*# in clude void mai n()int i,max,mi n;

int a[10];

prin tf("please in put ten n umbers' n");

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

{

sca nf("%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];

}

}

prin tf("max is %d,min is %dn",max,mi n);

}

*/

/*随机数*/

#in clude

#in clude

void mai n()

{

int i,max,mi n;

int a[10];

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

{

a[i]=ra nd()%90+10;

prin tf("%dt",a[i]);

}

max=a[O];

min=a[0];

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

{

if(a[i]>max)

max=a[i];

if(a[i]

min=a[i];

}

prin tf("max=%dtmi n=%dn",max,mi n);

}

/*8.判断闰年*/

#in clude int f(i nt n) if(n %4==0&&n %100!=0||

n%400==0) return 1;

else

return 0;

}

void mai n()

{

int n;

prin tf("please in put year:' n");

sca nf("%d",&n);

if(f(n))

printf("%d

是闰年

n",n);

else

printf("%d

不是闰年

n",n);

}

/*可能会有要输出某一范围内所有闰年, 思想一

样,用循环调用函数即可*/

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

#in clude

void mai n()

{

int n,a,b,c,m;

prin tf("please in put a n umber: n");

sca nf("%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("%d is the number we wantn",n);

else

prin tf("%d is not the n umber n", n);

}*/

/*9'.输出所有水仙花数(调用函数 循环做法))*/

#in clude

int f(i nt n)

{

int a,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)

书P108为(

return 1;

else

return 0;

}

void mai n()

voido・

hmainv

=H=inc-u5d)e二

ASs:i=^K.

I(巴)

P1fT+()三

OforX

﹂O(O耳O

Oinf

Lrr

関四自出

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

{

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

{

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

printf(“

公鸡%宀只,母鸡%宀只,小鸡

%d只

n",i,j,k);

}

}

}

}

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

#in clude

int f(int m,i nt n)

{

int i=1,t; if(m

{

t=m;

m=n;

n=t

}

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

{

m=n;

n=i;

}

return n;

}

int g(i nt m,i nt n)

int i,j; i=f(m, n);

j=m* n/i;

return j;

} void mai n()

{

int m, n,a,b;

prin tf("please in put two n umbers:n");

sea nf("%d %d",&m,&n);

a=f(m, n);

b=g(m, n);

printf("

最大公约数为%dn",a);

printf("

最小公倍数为%dn",b);

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

/*# in clude

void mai n()

}

{

int i,j,k=0,a;

prin tf("10-2000

之间的回文数有:

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

{

a=i;

j=0;

while(a>0)

{

n");

j=j*10+a%10;

a/=10;if(i==j)

{

prin tf("%dt",i);

}

k++;

if(k%5==0)

prin tf("n");

}

}

prin tf("n");

}*/

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

//

/*# in clude

int f(i nt n)

{

int i=0;

while( n>0)

{

i=i*10+n%10;

n/=10;

}

return i;

}

void mai n()

{

int n,k;

prin tf("10-2000

之间的回文数有:

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

{

if(n==f(n))

{

n");

prin tf("%dt", n);

k++;

if(k%5==0)

prin tf("n");

}

}

prin tf("n");

}*/

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

/*# in clude

void mai n()

{

int i,a,j=0;

prin tf("please input a nu mber:n");

scanf("%d",&i);

a=i;

while(a>0)

j=j*10+a%10;

a/=10;

}

if(j==i)

printf("%d

else

printf("%d

不是回文数

n",i);

}*/

是回文数

n",i);

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

#in clude

int f(i nt n)

{

int i=0;

while( n>0)

{

i=i*10+n%10;

n/=10;

}

return i;

}

void mai n()

{

int n;

prin tf("please in pit a n umber:n");

sea nf("%d",&n);

if(n==f(n))

printf("%d

else

printf("%d

}

是回文数

n",n);

不是回文数

n",n);

〃13.排序//

//选择法//

/*# in clude

#defi ne N 10

void f(i nt a[],i nt n)

{

int i,j,k,t;

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

{

k=i;

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

{

if(a[j]

}

}

void mai n()

{

}

if(k!=i)

{

t=a[k];

a[k]=a[i];

a[i]=t;

}

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

int i=0;

int size=sizeof(a)/sizeof(i nt);

for(i=O;i

{

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

}

prin tf("n");

f(a,size);

for(i=0;i

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

}

printf ("n");

}

//冒泡法//

#in clude

#defi ne N 5

void f(i nt a[],i nt n)

{

int i,j;

int t

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

{

for(j=0;j

{

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

{

t=a[j];

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

}

}

}

}*/

//插入法//

#in clude

#defi ne N 5

void f(i nt a[],i nt n)

{

int i,j;

int t

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

t=a[i];

■ ■ j=i;

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

{

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

--j;

}

a[j]=t;

}

}

void mai n()

{

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

int i=0;

int size=sizeof(a)/sizeof(i nt);

for(i=0;i

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

}

prin tf("n");

f(a,size);

for(i=0;i

{

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

}

printf ("n");

}

//二维数组的转置//

#in clude

#defi ne N 3

#defi ne M 3 void mai n()

int a[M][N],b[M][N];

int i,j;

prin tf("please inp ut a[M][N]n");

for(i=0;i

{

for(j=0;j

{

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

}

}

for(i=0;i

{

for(j=0;j

}

{

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

}

prin tf("b[M][N]=n");

for(i=0;i

{

for(j=0;j

{

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

} prin tf("n");

}

prin tf("n");

}


本文标签: 个数 函数 数组 实现 求和