2022年C语言编程题大题 .pdf
1 1、功能:求一个给定字符串中的字母的个数。#include stdio.h void TestFunc();int fun(char s)/*Begin*/int i,k=0;for(i=0;si!=0;i+)if(si=a&si=A&si=Z)k+;return k;/*End */void main()char str=Best wishes for you!;int k;k=fun(str);printf(k=%dn,k);TestFunc();2、编写函数 fun 其功能是:根据整型形参 m,计算如下公式的值:y=1/2!+1/4!+.+1/m!(m是偶数)#include stdio.h void TestFunc();double fun(int m)/*Begin*/double y=0.0;名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 34 页 -2 int i,j;double s=1;for(i=2;i=m;i+=2)for(j=i-1;j=i;j+)s=s*j;y=y+1.0/s;return y;/*End */void main()int n;printf(Enter n:);scanf(%d,&n);printf(nThe result is%1ffun(n);3、从键盘为一维整型数组输入 10个整数,调用 fun 函数找出其中最小的数,并在 main函数中输出。#include stdio.h void TestFunc();int fun(int x,int n)名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 34 页 -3 /*Begin*/int min,i;min=x0;for(i=1;in;i+)if(ximin)min=xi;return min;/*End */void main()int a10,i,min;for(i=0;i10;i+)scanf(%d,&ai);for(i=0;i0)名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 34 页 -4 d=n%10;s+=d*d*d;n/=10;return s;/*End */void main()int k;k=fun(1234);printf(k=%dn,k);TestFunc();愤怒小强,不二 16:59:54 5、从低位开始取出长整型变量 s 中偶数位上的数,依次构成一个新数放在t 中。例如:当 s 中的数为:7654321时,t 中的数为:642。#include stdio.h void TestFunc();long fun(long s,long t)/*Begin*/long sl=10;s/=10;t=s%10;名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 34 页 -5 while(s 0)s=s/100;t=s%10*sl+t;sl=sl*10;/*End */return t;void main()long s,t,m;printf(nPlease enter s:);scanf(%ld,&s);m=fun(s,t);printf(The result is:%ldn,m);TestFunc();6、求一组数中大于平均值的数的个数。例如:给定的一组数为 1,3,6,9,4,23,35,67,12,88时,函数值为 3。#include stdio.h void TestFunc();int fun(int a,int n)/*Begin*/int i,k=0;float s=0,ave;for(i=0;in;i+)s+=ai;ave=s/n;名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 34 页 -6 printf(%f ,ave);for(i=0;iave)k+;return k;/*End */void main()int a10=1,3,6,9,4,23,35,67,12,88;int y;y=fun(a,10);printf(y=%dn,y);TestFunc();7、把 20个随机数存入一个数组,然后输出该数组中的最小值。其中确定最小值的下标的操作在 fun 函数中实现,请给出该函数的定义。#include stdio.h#include stdlib.h#define VSIZE 20 int vectorVSIZE;void NONO();int fun(int list,int size)/*Begin*/int i,min=0;for(i=1;i listi)min=i;return min;/*End */名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 34 页 -7 void main()int i;for(i=0;iVSIZE;i+)vectori=rand();printf(Vector%d=%6dn,i,vectori);i=fun(vector,VSIZE);printf(nMininum:Vector%d=%6dn,i,vectori);NONO();8、计算并输出给定整数 n的所有因子之和(不包括 1与自身)。注意:n的值不大于 1000。例如:n 的值为 12时,除了 1 和 12外的因子有 2、3、4、6,和为 15,应输出 15。#include stdio.h void TestFunc();int fun(int n)/*Begin*/int s=0,i;for(i=2;in;i+)if(n%i=0)s=s+i;return s;/*End */void main()printf(s=%dn,fun(855);TestFunc();名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 34 页 -8 9、求大于 lim(lim 小于 100的整数)并且小于 100的所有素数并放在 aa数组中,该函数返回所求出素数的个数#include#include#define MAX 100 void NONO();int fun(int lim,int aaMAX)/*Begin*/int n=0;int i,j;for(i=lim;i=100;i+)for(j=2;ji;j+)if(i%j=0)break;if(j=i)aan+=i;return n;/*End */void main()int limit,i,sum;int aaMAX;printf(Please Input aInteger:);scanf(%d,&limit);sum=fun(limit,aa);for(i=0;isum;i+)if(i%10=0&i!=0)printf(n);printf(%5d,aai);10、在键盘上输入一个 3行 3列矩阵的各个元素的值(值为整数),然后输出主对角线元素的平方和。fun()函数的功能为求对角线元素的名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 34 页 -9 和。程序中如果用到循环,必须使用for 循环。#include stdio.h void TestFunc();int fun(int a33)/*Begin*/int sum;int i;sum=0;for(i=0;i3;i+)sum=sum+aii*aii;return sum;/*End */void main()int i,j,s,a33;for(i=0;i3;i+)for(j=0;j3;j+)scanf(%d,&aij);s=fun(a);printf(Sum=%dn,s);TestFunc();11、编写程序,使用循环将矩阵(3行 3列)各元素值乘2。例如:输入下面的矩阵:100 200 300 400 500 600 700 800 900 程名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 34 页 -10 序输出:200 400 600 800 1000 1200 1400 1600 1800#include stdio.h void NONO();void fun(int array33)/*Begin*/int i,j;for(i=0;i 3;i+)for(j=0;j 3;j+)arrayij=arrayij*2;/*End */void main()int i,j;int array33=100,200,300,400,500,600,700,800,900;for(i=0;i 3;i+)for(j=0;j 3;j+)printf(%7d,arrayij);printf(n);fun(array);printf(Converted array:n);for(i=0;i 3;i+)for(j=0;j 3;j+)printf(%7d,arrayij);printf(n);名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 34 页 -11 12、把 20个随机数存入一个数组,然后输出该数组中的最大值。#include stdio.h#include stdlib.h#define VSIZE 20 void NONO();int vectorVSIZE;int fun(int list,int size)/*Begin*/int i,max=0;for(i=1;i size;i+)if(listmaxlisti)max=i;return max/*End */void main()int i;for(i=0;iVSIZE;i+)vectori=rand();printf(Vector%d=%6dn,i,vectori);i=fun(vector,VSIZE);printf(nMaxnum:Vector%d=%6dn,i,vectori);NONO();int i,max=0;for(i=1;i size;i+)if(listmaxlisti)max=i;return max;13、求给定正整数 n以内的素数之积。(n28)名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 34 页 -12#include stdio.h#includeconio.h void TestFunc();long fun(int n)/*Begin*/long i,k;long s=1;for(i=2;i=n;i+)for(k=2;ki;k+)if(i%k=0)break;if(k=i)s=s*i;return s;/*End */void main()int m;printf(Enter m:);scanf(%d,&m);printf(nThe result is%ldn,fun(m);TestFunc();14、请编一个函数:void fun(int ttMN,int ppN),tt 指向一个 M行 N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指一维数组中。二维数组中的数已在主函数中赋予。#include#include#define M 3#define N 4 名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 34 页 -13 void fun(int ttMN,int ppN)/*Begin*/int i,j;for(j=0;jN;j+)ppj=tt0j;for(i=1;iM;i+)if(ttijppj)ppj=ttij;/*End */void main()int tMN=22,45,56,30,19,33,45,38,20,22,66,40;int pN,i,j,k;printf(The original data is:n);for(i=0;iM;i+)for(j=0;jN;j+)printf(%6d,tij);printf(n);fun(t,p);printf(nThe result is:n);for(k=0;kN;k+)printf(%4d,pk);printf(n);NONO();15、求 5 行 5 列矩阵的主、副对角线上元素之和。注意,两条对角线相交的元素只加一次。例如:主函数中给出的矩阵的两条对角线的和为 45。名师资料总结-精品资料欢迎下载-名师精心整理-第 13 页,共 34 页 -14#include stdio.h#define M 5 void TestFunc();int fun(int aMM)/*Begin*/int s=0;int i,j;for(i=0;iM;i+)s=s+aii+aiM-1-i;s=s-a(M-1)/2(M-1)/2;return s;/*End */void main()int aMM=1,3,5,7,9,2,4,6,8,10,2,3,4,5,6,4,5,6,7,8,1,3,4,5,6;int y;y=fun(a);printf(s=%dn,y);TestFunc();16、编写程序求无理数 e的值并输出。计算公式为:e=1+1/1!+1/2!+1/3!+.+1/n!当 1/n!=0.000001)e=e+jc;j=1;for(k=1;k=i;k+)j=j*k;jc=1.0/j;i+;return e;/*End */void main()float fun();printf(无理数e的值是:%fn,fun();TestFunc();17、用函数求 fibonacci数列前 28项的和。程序中如果用到循环,必须使用 for 循环。说明:fibonacci 数列为数列的第一项值为 1,第二项值也为 1,从第三项开始,每一项均为其前面相邻两项的和。运行结名师资料总结-精品资料欢迎下载-名师精心整理-第 15 页,共 34 页 -16 果:832039。#include stdio.h void TestFunc();long sum(long f1,long f2)/*Begin*/long f,k=f1+f2;int i;for(i=3;i=28;i+)f=f1+f2;k=k+f;f1=f2;f2=f;return(k);/*End */void main()long int f1=1,f2=1;printf(sum=%ldn,sum(f1,f2);TestFunc();18、编写函数判断一个整数能否同时被3 和 5 整除,若能则返回值为 1,否则为 0。调用该函数求出 15300之间能同时被 3 和 5 整除的数的个数。#include stdio.h void TestFunc();int sum(int n)/*Begin*/名师资料总结-精品资料欢迎下载-名师精心整理-第 16 页,共 34 页 -17 if(n%3=0&n%5=0)return(1);return(0);/*End */void main()int i,s=0;for(i=15;i=300;i+)if(sum(i)=1)s=s+1;printf(s=%dn,s);TestFunc();19、根据整型形参 m,计算如下公式的值:y=1/21/41/6.1/2m。程序中如果用到循环,必须使用 for 循环。例如:若 m=9,则应输出:1.414484#include stdio.h void TestFunc();double fun(int m)/*Begin*/double y=0;int i;for(i=1;i=m;i+)y+=1.0/(2*i);return(y);/*End */void main()int n;printf(Enter n:);scanf(%d,&n);printf(nThe result is%1fn,fun(n);TestFunc();名师资料总结-精品资料欢迎下载-名师精心整理-第 17 页,共 34 页 -18 20、求 1 到 w之间的奇数之和。(w是大于等于 100小于等于 1000的整数)。#include stdio.h#includeconio.h void TestFunc();long fun(int w)/*Begin*/long y=0;int i;for(i=1;i=w;i+)if(i%2=1)y+=i;return y;/*End */void main()int m;printf(Enter m:);scanf(%d,&m);printf(nThe result is%ldn,fun(m);TestFunc();21、能计算从 1开始到 n的自然数的和,n 由键盘输入,并在 main()函数中输出。请使用 for 循环实现。#include stdio.h void TestFunc();int fun(int n)/*Begin*/int sum,i;sum=0;for(i=1;i=n;i+)名师资料总结-精品资料欢迎下载-名师精心整理-第 18 页,共 34 页 -19 sum=sum+i;return(sum);/*End *void main()int m;printf(Enter m:);scanf(%d,&m);printf(nThe result is%dn,fun(m);TestFunc();22、编写函数 fun 生成一个主对角线元素为 1,其他元素都为0 的 3*3的二维数组。#include stdio.h void main()int a33,i,j;void fun(int arr3);void TestFunc();fun(a);for(i=0;i3;i+)for(j=0;j3;j+)printf(%d,aij);printf(n);TestFunc();void fun(int arr3)int i,j;/*Begin*/for(i=0;i3;i+)for(j=0;j3;j+)if(i=j)arrij=1;else 名师资料总结-精品资料欢迎下载-名师精心整理-第 19 页,共 34 页 -20 arrij=0/*End */23、调用函数 fun 判断一个三位数是否水仙花数。在main函数中从键盘输入一个三位数,并输出判断结果。请编写 fun 函数。说明:所谓水仙花数是指一 3 位数,其各位数字立方和等于该数本身。例如:153是一个水仙花数,因为153=1+125+27。#include stdio.h void TestFunc();int fun(int n)/*Begin*/int bw,sw,gw;bw=n/100;sw=(n-bw*100)/10;gw=n%10;if(n=bw*bw*bw+sw*sw*sw+gw*gw*gw)return 1;else return 0;/*End */void main()int n,flag;scanf(%d,&n);flag=fun(n);if(flag)printf(%d 是水仙花数n,n);else printf(%d 不是水仙花数 n,n);TestFunc();24、编写函数对数组中的数据进行从小到大的排序。#include#include void TestFunc();名师资料总结-精品资料欢迎下载-名师精心整理-第 20 页,共 34 页 -21 void sort(int a,int n)/*Begin*/int i,j,t;for(i=0;in-1;i+)for(j=0;jaj+1)t=aj;aj=aj+1;aj+1=t;/*End */void main()int a16,i;for(i=0;i16;i+)ai=rand()%10+15;for(i=0;i16;i+)printf(%3d,ai);printf(n-n);sort(a,16);for(i=0;i 0)s=s/100;t=s%10*sl+t;sl=sl*10;/*End */return t;void main()long s,t,m;printf(nPlease enter s:);scanf(%ld,&s);m=fun(s,t);printf(The result is:%ldn,m);TestFunc();26、将主函数中输入的字符串反序存放。例如:输入字符串abcdefg,则应输出gfedcba。#include#include#include#define N 81 void TestFunc();void fun(char*str,int n)/*Begin*/int i,j;char c;for(i=0,j=n-1;ij;i+,j-)/*或者for(i=0,j=n-1;i4)z=x的八次幂(4x-4)z=4/(x*(x+1)(-4x-10)z=|x|+20 (其他)提示:x 的八次幂请使用幂函数 pow求得,平方根函数是 sqrt。#include#include stdio.h void TestFunc();float y(float x)/*Begin*/float z;if(x4)z=sqrt(x-4);else if(x-4)z=pow(x,8);else if(x-10)z=4/(x*(x+1);else z=fabs(x)+20;return(z);/*End *void main()float x;scanf(%f,&x);printf(y=%fn,y(x);TestFunc();29、编写函数 fun,求任一整数 m的 n次方。#include stdio.h void TestFunc();long fun(int m,int n)/*Begin*/long int x=1;int i;名师资料总结-精品资料欢迎下载-名师精心整理-第 24 页,共 34 页 -25 for(i=1;i=n;i+)x=x*m;return x;/*End */void main()int m,n;long s;long fun(int,int);printf(输入m和n的值:);scanf(%d,%d,&m,&n);s=fun(m,n);printf(s=%ldn,s);TestFunc();30、根据整型形参 m,计算如下公式的值:y=1/5+1/61/71/81/9+1/10.1/(m+5)例如:若 m=9,则应输出:1.168229#include stdio.h void TestFunc();double fun(int m)/*Begin*/double y=0;int i;for(i=0;i=m;i+)y+=1.0/(i+5);return(y);/*End *void main()int n;名师资料总结-精品资料欢迎下载-名师精心整理-第 25 页,共 34 页 -26 printf(Enter n:);scanf(%d,&n);printf(nThe result is%1fn,fun(n);TestFunc();31、产生 20个随机整数放入二维数组 a54 中,利用函数 row_sum求每行元素的和,并将和放到另一个数组中。#include stdlib.h#include stdio.h void row_sum(int a54,int b5)/*Begin*/int i,j;for(i=0;i5;i+)bi=0;for(j=0;j4;j+)bi=bi+aij;/*End */void main()void TestFunc();int a54,b5,i,j;for(i=0;i5;i+)for(j=0;j4;j+)aij=rand()%10;for(i=0;i5;i+)for(j=0;j4;j+)printf(%5d,aij);printf(n);row_sum(a,b);for(i=0;i5;i+)printf(%6d,bi);名师资料总结-精品资料欢迎下载-名师精心整理-第 26 页,共 34 页 -27 printf(n);TestFunc();32、判断整数 x 是否是同构数。若是同构数,函数返回 1;否则返回 0。x 的值由主函数从键盘读入,要求不大于 100。说明:所谓同构数是指这样的数,这个数出现在它的平方数的右边。例如:输入整数5,5的平方数是 25,5 是 25中右侧的数,所以 5是同构数。#include stdio.h void TestFunc();int fun(int x)/*Begin*/int k;k=x*x;if(x9&k%100=x)return 1;else return 0;/*End */void main()int x,y;printf(nPlease enter a integer numbers:);scanf(%d,&x);if(x100)printf(data error!n);exit(0);y=fun(x);if(y)printf(%d YESn,x);else printf(%d NOn,x);TestFunc();名师资料总结-精品资料欢迎下载-名师精心整理-第 27 页,共 34 页 -28 33、求一个给定字符串中的字母的个数。#include stdio.h void TestFunc();int fun(char s)/*Begin*/int i,k=0;for(i=0;si!=0;i+)if(si=a&si=A&si=Z)k+;return k;/*End */void main()char str=Best wishes for you!;int k;k=fun(str);printf(k=%dn,k);TestFunc();34、编写函数 fun 其功能是:根据整型形参 m,计算如下公式的值:y=1/2!+1/4!+.+1/m!(m是偶数)。#include stdio.h void TestFunc();double fun(int m)/*Begin*/double y=0.0;int i,j;double s=1;名师资料总结-精品资料欢迎下载-名师精心整理-第 28 页,共 34 页 -29 for(i=2;i=m;i+=2)for(j=i-1;j=i;j+)s=s*j;y=y+1.0/s;return y;/*End */void main()int n;printf(Enter n:);scanf(%d,&n);printf(nThe result is%1fn,fun(n);TestFunc();35、编写函数 fun 其功能是:根据整型形参 m,计算如下公式的值:y=11/31/51/7.1/(2m+1)例如:若 m=9,则应输出:2.133256#include stdio.h void TestFunc();double fun(int m)/*Begin*/double y=1;int i;for(i=1;i=m;i+)y+=1.0/(2*i+1);return(y);名师资料总结-精品资料欢迎下载-名师精心整理-第 29 页,共 34 页 -30/*End */void main()int n;printf(Enter n:);scanf(%d,&n);printf(nThe result is%1fn,fun(n);TestFunc();36、判断 m是否为素数。#include stdio.h void TestFunc();int fun(int m)/*Begin*/int i,k=1;if(m=1)k=0;for(i=2;im;i+)if(m%i=0)k=0;return k;/*End */void main()int m,k=0;int fun(int m);for(m=100;m200;m+)if(fun(m)printf(%4d,m);k+;if(k%5=0)printf(n);printf(k=%dn,k);TestFunc();名师资料总结-精品资料欢迎下载-名师精心整理-第 30 页,共 34 页 -31 37、求 1 到 w之间的奇数之和。(w是大于等于 100小于等于 1000的整数)。#include stdio.h#includeconio.h void TestFunc();long fun(int w)/*Begin*/long y=0;int i;for(i=1;i=w;i+)if(i%2=1)y+=i;return y;/*End */void main()int m;printf(Enter m:);scanf(%d,&m);printf(nThe result is%ldn,fun(m);TestFunc();38、将主函数中输入的字符串反序存放。例如:输入字符串abcdefg,则应输出gfedcba。#include#include#include#define N 81 void TestFunc();void fun(char*str,int n)/*Begin*/int i,j;名师资料总结-精品资料欢迎下载-名师精心整理-第 31 页,共 34 页 -32 char c;for(i=0,j=n-1;ij;i+,j-)/*或者for(i=0,j=n-1;in/2;i+,j-)*/c=*(str+i);*(str+i)=*(str+j);*(str+j)=c;/*End */void main()char s N;int l;printf(input a string:);gets(s);l=strlen(s);fun(s,l);printf(The new string is:);puts(s);TestFunc();39.功能:在键盘上输入一个 3行3 列矩阵的各个元素的值(值为整数),然后输出主对角线元素的积。fun()函数的功能为求对角线元素的积。#include stdio.h void TestFunc();int fun(int a33)/*Begin*/int sum;int i,j;sum=1;for(i=0;i3;i+)sum=sum*aii;return sum;名师资料总结-精品资料欢迎下载-名师精心整理-第 32 页,共 34 页 -33/*End*/void main()int i,j,s,a33;for(i=0;i3;i+)for(j=0;j3;j+)scanf(%d,&aij);s=fun(a);printf(Sum=%dn,s);TestFunc();40、名师资料总结-精品资料欢迎下载-名师精心整理-第 33 页,共 34 页 -34 名师资料总结-精品资料欢迎下载-名师精心整理-第 34 页,共 34 页 -