C语言编程题题库.docx

上传人:b****4 文档编号:24137392 上传时间:2023-05-24 格式:DOCX 页数:29 大小:63.22KB
下载 相关 举报
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语言编程题题库

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;

 

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

当前位置:首页 > 总结汇报 > 学习总结

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

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