C语言编程题题库.docx
- 文档编号:24137392
- 上传时间:2023-05-24
- 格式:DOCX
- 页数:29
- 大小:63.22KB
C语言编程题题库.docx
《C语言编程题题库.docx》由会员分享,可在线阅读,更多相关《C语言编程题题库.docx(29页珍藏版)》请在冰豆网上搜索。
C语言编程题题库
1、功能:
求一个给定字符串中的字母的个数。
#include "stdio.h"
void TestFunc();
int fun(char s[])
{
/**********Begin**********/
int i,k=0;
for(i=0;s[i]!
='\0';i++)
if(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z')
k++;
return k;
/********** End **********/
}
void main()
{
char str[]="Best wishes for you!
";
int k;
k=fun(str);
printf("k=%d\n",k);
TestFunc();
}
2、编写函数fun其功能是:
根据整型形参m,计算如下公式的值:
y=1/2!
+1/4!
+...+1/m!
(m是偶数)
#include "stdio.h"
void TestFunc();
double fun(int m)
{
/**********Begin**********/
doubley=0.0;
inti,j;
doubles=1;
for(i=2;i<=m;i+=2)
{for(j=i-1;j<=i;j++)
s=s*j;
y=y+1.0/s;
}returny;
/********** 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)
{
/**********Begin**********/
intmin,i;
min=x[0];
for(i=1;i {if(x[i] returnmin; /********** End **********/ } void main() { int a[10],i,min; for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<10;i++) printf("%3d",a[i]); printf("\n"); min=fun(a,10); printf("%d\n",min); TestFunc(); } 4、求一个正整数的各位数字的立方和。 #include "stdio.h" void TestFunc(); int fun(int n) { /**********Begin**********/ intd,k,s=0; while(n>0) {d=n%10; s+=d*d*d; n/=10; } returns; /********** End **********/ } void main() { int k; k=fun(1234); printf("k=%d\n",k); TestFunc(); } 愤怒◎小强,不二 16: 59: 54 5、从低位开始取出长整型变量s中偶数位上的数,依次构成一个新数放在t中。 例如: 当s中的数为: 7654321时,t中的数为: 642。 #include "stdio.h" void TestFunc(); long fun (long s,long t) { /**********Begin**********/ longsl=10; s/=10; t=s%10; 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: %ld\n", 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;i s+=a[i]; ave=s/n; printf("%f ",ave); for(i=0;i if(a[i]>ave)k++; return k; /********** End **********/ } void main() { int a[10]={1,3,6,9,4,23,35,67,12,88}; int y; y=fun(a,10); printf("y=%d\n",y); TestFunc(); } 7、把20个随机数存入一个数组,然后输出该数组中的最小值。 其中确定最小值的下标的操作在fun函数中实现,请给出该函数的定义。 #include "stdio.h" #include "stdlib.h" #define VSIZE 20 int vector[VSIZE] ; void NONO(); int fun(int list[],int size) { /**********Begin**********/ int i,min=0; for(i=1; i if(list[min]>list[i]) min=i; return min; /********** End **********/ } void main() { int i; for (i=0;i { vector[i]=rand(); printf("Vector[%d]=%6d\n",i,vector[i]); } i=fun(vector,VSIZE); printf("\nMininum: Vector[%d]=%6d\n",i,vector[i]); 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;i if(n%i==0)s=s+i; return s; /********** End **********/ } void main() { printf("s=%d\n",fun(855)); TestFunc(); } 9、求大于lim(lim小于100的整数)并且小于100的所有素数并放在aa数组中,该函数返回所求出素数的个数 #include #include #define MAX 100 void NONO(); int fun(int lim,int aa[MAX]) { /**********Begin**********/ int n=0; int i,j; for(i=lim;i<=100;i++) {for(j=2;j if(i%j==0) break; if(j==i) aa[n++]=i; } return n; /********** End **********/ } void main() { int limit,i,sum; int aa[MAX]; printf("Please Input aInteger: "); scanf("%d",&limit); sum=fun(limit,aa); for(i=0;i if(i%10==0&&i! =0) printf("\n"); printf("%5d",aa[i]); } 10、在键盘上输入一个3行3列矩阵的各个元素的值(值为整数),然后输出主对角线元素的平方和。 fun()函数的功能为求对角线元素的和。 程序中如果用到循环,必须使用for循环。 #include "stdio.h" void TestFunc(); int fun(int a[3][3]) { /**********Begin**********/ int sum; int i; sum=0; for(i=0;i<3;i++) sum=sum+a[i][i]*a[i][i]; return sum; /********** End **********/ } void main() { int i,j,s,a[3][3]; for(i=0;i<3;i++) { for(j=0;j<3;j++) scanf("%d",&a[i][j]); } s=fun(a); printf("Sum=%d\n",s); TestFunc(); } 11、编写程序, 使用循环将矩阵(3行3列)各元素值乘2 。 例如: 输入下面的矩阵: 100 200 300 400 500 600 700 800 900程序输出: 20040060080010001200140016001800 #include "stdio.h" void NONO(); void fun(int array[3][3]) { /**********Begin**********/ int i,j; for(i=0; i < 3; i++) for(j=0; j < 3; j++) array[i][j]=array[i][j]*2; /********** End **********/ } void main() { int i,j; int array[3][3]={{100,200,300}, {400,500,600}, {700,800,900}}; for (i=0; i < 3; i++) { for (j=0; j < 3; j++) printf("%7d",array[i][j]); printf("\n"); } fun(array); printf("Converted array: \n"); for (i=0; i < 3; i++) { for (j=0; j < 3; j++) printf("%7d",array[i][j]); printf("\n"); } 12、把20个随机数存入一个数组,然后输出该数组中的最大值。 #include "stdio.h" #include "stdlib.h" #define VSIZE 20 void NONO(); int vector[VSIZE] ; int fun(int list[],int size) { /**********Begin**********/ int i,max=0; for(i=1; i if(list[max] max=i; return max /********** End **********/ } void main() { int i; for (i=0;i { vector[i]=rand(); printf("Vector[%d]=%6d\n",i,vector[i]); } i=fun(vector,VSIZE); printf("\nMaxnum: Vector[%d]=%6d\n",i,vector[i]); NONO(); } int i,max=0; for(i=1; i if(list[max] max=i; return max; 13、求给定正整数n以内的素数之积。 (n<28) #include "stdio.h" #include"conio.h" void TestFunc(); long fun(int n) { /**********Begin**********/ long i,k; long s=1; for(i=2;i<=n;i++) {for(k=2;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 %ld\n", fun(m)); TestFunc(); } 14、请编一个函数: void fun(int tt[M][N],int pp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指一维数组中。 二维数组中的数已在主函数中赋予。 #include #include #define M 3 #define N 4 void fun(int tt[M][N],int pp[N]) { /**********Begin**********/ int i,j; for(j=0;j { pp[j]=tt[0][j]; for(i=1;i if(tt[i][j] pp[j]=tt[i][j];} /********** End **********/ void main() { int t[M][N]={{22,45,56,30}, {19,33,45,38}, {20,22,66,40}}; int p[N],i,j,k; printf("The original data is: \n"); for(i=0;i { for(j=0;j printf("%6d",t[i][j]); printf("\n"); } fun(t,p); printf("\nThe result is: \n"); for(k=0;k printf("\n"); NONO(); } 15、求5行5列矩阵的主、副对角线上元素之和。 注意,两条对角线相交的元素只加一次。 例如: 主函数中给出的矩阵的两条对角线的和为45。 #include "stdio.h" #define M 5 void TestFunc(); int fun(int a[M][M]) { /**********Begin**********/ int s=0; int i,j; for(i=0;i s=s+a[i][i]+a[i][M-1-i]; s=s-a[(M-1)/2][(M-1)/2]; return s; /********** End **********/ } void main() { int a[M][M]={{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=%d\n",y); TestFunc(); } 16、编写程序求无理数e的值并输出。 计算公式为: e=1+1/1! +1/2! +1/3! +......+1/n! 当1/n! <0.000001时e=2.718282。 #include "stdio.h" void TestFunc(); float fun() { /**********Begin**********/ long int j; int i,k; float e,jc; i=1; e=0.0; jc=1.0; while(jc>=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的值是: %f\n",fun()); TestFunc(); } 17、用函数求fibonacci数列前28项的和。 程序中如果用到循环,必须使用for循环。 说明: fibonacci数列为数列的第一项值为1,第二项值也为1,从第三项开始,每一项均为其前面相邻两项的和。 运行结果: 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=%ld\n",sum(f1,f2)); TestFunc(); } 18、编写函数判断一个整数能否同时被3和5整除,若能则返回值为1,否则为0。 调用该函数求出15~300之间能同时被3和5整除的数的个数。 #include "stdio.h" void TestFunc(); int sum(int n) { /**********Begin**********/ 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=%d\n",s); TestFunc(); } 19、根据整型形参m,计算如下公式的值: y=1/2+1/4+1/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 %1f\n", fun(n)); TestFunc(); } 20、求1到w之间的奇数之和。 (w是大于等于100小于等于1000的整数)。 #include "stdio.h" #include"conio.h" void TestFunc(); long fun(int w) {/**********Begin**********/ long y=0; int i;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 编程 题库
![提示](https://static.bdocx.com/images/bang_tan.gif)