详细内容

C语言程序设计题

[日期:2011-11-27] 来源:计算机系  作者:张永超 [字体: ]

1题目:调用函数fun判断一个三位数是否"水仙花数"。在main函数中从键盘输入一个三位数,并输出判断结果。请编写fun函数。所谓"水仙花数"是指一个3位数,其各位数字立方和等于该数本身。

      例如,153是一个水仙花数,因为153=13+53+33。

#include "stdio.h"

int fun(int n)

{/**********Program**********/

int bw,sw,gw;

bw=n/100;sw=n/10%10;gw=n%10;

 if(n==bw*bw*bw+sw*sw*sw+gw*gw*gw) return 1;

 else return 0;

/**********  End  **********/

}

main()

{  int n,flag;

  scanf("%d",&n);

  flag=fun(n);

  if(flag)

    printf("%d 是水仙花数\n",n);

  else

    printf("%d 不是水仙花数\n",n);

  yzj();

}

yzj()

{

FILE *IN,*OUT;

int iIN,i;

int iOUT;

IN=fopen("2.in","r");

if(IN==NULL)

{printf("Please Verify The Currernt Dir..It May Be Changed");

}

OUT=fopen("2.out","w");

if(OUT==NULL)

{printf("Please Verify The Current Dir.. It May Be Changed");

}

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

{  fscanf(IN,"%d",&iIN);

    iOUT=fun(iIN);

    fprintf(OUT,"%d\n",iOUT);

}

fclose(IN);

fclose(OUT);

}

2题目:编写函数fun求一个字符串的长度,在main函数中输入字符串,并输出其长度。

#include "stdio.h"

int fun(char *p1)

{

/**********Program**********/

char *p;

int n=0;

p=p1;

while(*p++)

 n++;

return n;

/**********  End  **********/

}

main()

{  char *p,a[20];

  int len;

  p=a;

  printf("please input a string:\n");

  gets(p);

  len=fun(p);

  printf("The string's length is:%d\n",len);

 

}

3题目:从键盘为一维整型数组输入10个整数,调用fun 函数找出其中最小的数,并在main函数中输出。请编写fun函数。

#include "stdio.h"

int fun(int x[],int n)

{/**********Program**********/

int min,i;

min=x[0];

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

{if(x[i]<min) min=x[i];}

return min;

/**********  End  **********/

}

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

 

}

 

4题目:从键盘输入一个大于3的整数,调用函数fun判断 其是否素数,然后在main函数中输出相应的结论信息。例如:7是素数,8不是素数。请编写fun函数。素数是仅能被1和自身整除的数

#include "stdio.h"

main()

{  int m,flag;

  printf("input an integer:");

  scanf("%d",&m);

  flag=fun(m);

  if(flag)

      printf("%d is a prime.\n",m);

  else

      printf("%d is not a prime.\n",m);

      }

int fun(int n)

{

/**********Program**********/

int i;

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

if(n%i==0) break;

if(i>=n) return 0;

else  return 1;

/**********  End  **********/

}

 

5题目:请编写一个函数fun,函数的功能是:将主函数中输入的字符串反序存放。

      例如:输入字符串"abcdefg",则应输出"gfedcba"。

#include <stdio.h>

#include <conio.h>

#define N 81

char fun(char *str,int n)

{               

/**********Program**********/

int i,j;

 char c;

for(i=0,j=n-1;i<j;i++,j--)    /*或者for(i=0,j=n-1;i<n/2;i++,j--)*/

{c=*(str+i);

*(str+i)=*(str+j);

*(str+j)=c;}

/**********  End  **********/

}

main()

{  char s [N];

    int l;

    clrscr();

    printf("input a string:");gets(s);

    l=strlen(s);

    fun(s,l);

    printf("The new string is :");puts(s);

    }

6题目:请编写一个函数fun,函数的功能是:求出N×M整型数组的最大元素及其所在的行坐标及列坐标(如果最大元素不唯一,选择位置在最前面的一个)。

      例如:输入的数组为:

                          1  2  3

                          4  15  6

                          12  18  9

                          10  11  2

  求出的最大数为18,行坐标为2,列坐标为1。

 

#define N 4

#define M 3

#include <stdio.h>

 

int Row,Col;

main()

{

    int a[N][M],i,j,max,row,col;

    printf("input a array:");

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

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

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

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

      {

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

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

        printf("\n");

      }

    max=fun(a);

    printf("max=%d,row=%d,col=%d",max,Row,Col);

}

int fun(int array[N][M])

{

/**********Program**********/

int max,i,j;

max=array [0][0];

Row=0;

Col=0;

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

  {for(j=0;j<M;j++)

  if(max<array [i][j])

    {max=array [i][j];

    Row=i;

Col=j;}

}

return(max);

/**********  End  **********/

 

}

7题目:请编写函数fun,它的功能是:判断m是否为素数。主函数的功能是:求出100到200之间的素数的个数。

 

#include "stdio.h"

main()

{    int m,k=0;

     for(m=100;m<200;m++)

        if(fun(m))

        {

        printf("%4d",m);

        k++;

          if(k%5==0)

          printf("\n");

        }

    printf("k=%d\n",k);

    yzj();

}

 

int fun(int m)

{

/**********Program**********/

int i,k=1;

 if(m<=1) k=0;

 for(i=2;i<m;i++)

    if(m%i==0) k=0;

 return k;

/**********  End  **********/

}

 

8题目:编写函数fun,函数的功能是:从字符串s中删除指定的字符c。

 

#include "stdio.h"

fun(char s[],char c)

{

/**********Program**********/

int i,k=0;

  for(i=0;s[i]!='\0';i++)

    if(s[i]!=c) s[k++]=s[i];

    s[k]='\0';

/**********  End  **********/

 

}

 

main()

{

static char str[]="turbo c and borland c++";

char c='a';

fun(str,c);

printf("str=%s\n",str);

}

9题目:编写函数fun,函数的功能是:求出二维数组周边元素之和,作为函数值返回。二维数组的值在主函数中赋予。

 

#define M 4

#define N 5

#include "stdio.h"

int fun(int a[M][N])

{

/**********Program**********/

int s=0;

  int i,j;

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

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

    if(i==0||i==M-1||j==0||j==N-1)

s=s+a[i][j];

    return s;

/**********  End  **********/

}

 

main()

{

int a[M][N]={{1,3,5,7,9},{2,4,6,8,10},{2,3,4,5,6},{4,5,6,7,8}};

int y;

y=fun(a);

printf("s=%d\n",y);

}

10题目:编写函数fun,函数的功能是:求5行5列矩阵的主、副对角线上元素之和。注意,两条对角线相交的元素只加一次。

      例如:主函数中给出的矩阵的两条对角线的和为45。

 

#include "stdio.h"

#define M 5

int fun(int a[M][M])

{

/**********Program**********/

int s=0;

  int i,j;

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

    for(j=0;j<M;j++

  if(i==j||i+j==N-1)

s=s+a[i][j];

    return s;

/**********  End  **********/

}

 

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

}

11题目:编写函数fun,函数的功能是:计算n门课程的平均值,计算结果作为函数值返回。

      例如,若有5门课程的成绩是:92,76,69,58,88,则函数的值为72.599998。

#include "stdio.h"

float fun(int a[],int n)

{

/**********Program**********/

int i;

    float y=0;

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

    y+=a[i];

    y=y/n;

    return y;

/**********  End  **********/

}

main()

{

int a[]={92,76,69,58,88};

printf("y=%f\n",fun(a,5));

}

12题目:编写函数fun,函数的功能是:求给定正整数m(包括m)以内的素数之和。

    例如:当m=20时,函数值为77。

 

#include "stdio.h"

 

int fun(int m)

{

 

/**********Program**********/

int i,k,s=0;

  for(i=2;i<=m;i++)

    {for(k=2;k<i;k++)

      if(i%k==0)break;

      if(k>=i)s=s+i;

    }

return s;

/**********  End  **********/

}

 

main()

{

int y;

y=fun(20);

printf("y=%d\n",y);

}

 

13题目:编写函数fun,函数的功能是:求一个给定字符串中的字母的个数。

 

#include "stdio.h"

 

int fun(char s[])

{

/**********Program**********/

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  **********/

 

}

main()

{

char str[]="Best wishes for you!";

int k;

k=fun(str);

printf("k=%d\n",k);

}

 

14题目:编写函数fun,函数的功能是:求一个四位数的各位数字的立方和

 

#include "stdio.h"

 

int fun(int n)

{

/**********Program**********/

int d,k,s=0;

  while (n>0)

    {d=n%10;

     s+=d*d*d;

    n/=10;

    }

 return s;

/**********  End  **********/

}

main()

{

int k;

k=fun(1234);

printf("k=%d\n",k);

 

}

15题目:编写函数fun,函数的功能是:求1到100(包括100)之间的偶数之积。

 

#include "stdio.h"

 

double  fun(int m)

{

/**********Program**********/

double  y=1;

    int i;

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

    if(i%2==0)y*=i;

    return y;

/**********  End  **********/

 

}

main()

{

printf("ji=%f\n",fun(100));

 

}

16题目:编写函数fun,函数的功能是:求一组数中大于平均值的数的个数。

      例如:给定的一组数为1,3,6,9,4,23,35,67,12,88 时,函数值为3。

#include "stdio.h"

int fun(int a[],int n)

{

 

/**********Program**********/

int i,k=0;

  float s=0,ave;

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

    s+=a[i];

    ave=s/n;

    printf("%f",ave);

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

    if(a[i]>ave)k++;

    return k;

/**********  End  **********/

 

}

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

}

17题目:编写函数fun,函数的功能是:找出一批正整数中的最大的偶数。

 

#include "stdio.h"

int fun(int a[],int n)

{

/**********Program**********/

int i,max=-1;

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

    if(a[i]%2==0&&a[i]>max) max=a[i];

    return max;

/**********  End  **********/

 

}

 

main()

{

int a[]={1,2,9,24,35,18},k;

k=fun(a,6);

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

}

Copyright © 信息与控制工程学院 . All Rights Reserved.
地址:吉林省吉林市承德街45号 邮 编:132022 | 吉ICP备05009250号
 
Powered by iwms 5.1
Processed in 0.016 second(s), 3 queries, Gzip enabled