文档视界 最新最全的文档下载
当前位置:文档视界 > 计算机程序(1)

计算机程序(1)

/*------------------------------------------------

【程序设计】

--------------------------------------------------

功能:输入一个字符串,过滤此串,只保留串中的字母字

符,并统计新生成串中包含的字母个数。

例如:输入的字符串为ab234$df4,新生成的串为abdf 。

------------------------------------------------*/

#include

#include

#define N 80

void wwjt();

fun(char *ptr)

{

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

int i=0,n=0;

while(*(ptr+i)!='\0')

{

if((*(ptr+i)>='a'&&*(ptr+i)<='z')||(*(ptr+i)>='A'&&*(ptr+i)<='Z')) {

*(ptr+n)=*(ptr+i);

n++;

}

i++;

}

*(ptr+n)=0;

return n;

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

}

main()

{

char str[N];

int s;

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

printf("The origINal string is :"); puts(str);

s=fun(str);

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

}

/*------------------------------------------------ 【程序设计】

--------------------------------------------------

功能:编写函数求表达式的和(n的值由主函数输入)。

1-1/2+1/3-1/4+......+1/m

例如:当n=20时,表达式的值为0.668771。

------------------------------------------------*/

#include

void wwjt();

double sum(int n)

{

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

int i;

double s=0,m=1;

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

{

s=s+m/i;

m=-m;

}

return s;

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

}

main()

{

int n;

scanf("%d",&n);

printf("sum=%f\n",sum(n));

wwjt();

}

/*------------------------------------------------ 【程序设计】

--------------------------------------------------

功能:从键盘上输入任意实数,求出其所对应的函数值。

z=e的x次幂(x>10)

z=log(x+3) (x>-3)

z=sin(x)/((cos(x)+4)

------------------------------------------------*/

#include

#include

void wwjt();

double y(float x)

{

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

double z;

if(x>10)

z=exp(x);

else if(x>-3)

z=log(x+3);

else

z=sin(x)/(cos(x)+4);

return z;

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

}

main()

{

float x;

scanf("%f",&x);

printf("y=%f\n",y(x));

wwjt();

}

/*-------------------------------------------------------

【程序设计】

---------------------------------------------------------

题目:编写一个类似库函数strlen()的函数,求字符串的长度,在main()函数中输入

一个字符串,调用该函数后输出结果。要求函数的形参采用指针变量。

-------------------------------------------------------*/

#include

void main()

{

char str[30];

int strlen1(char *);

printf("请输入字符串:");

gets(str);

printf("字符串长度为:%d\n",strlen1(str));

}

int strlen1(char *p)

{

int len=0;

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

while(*p!='\0')

{

len++;

p++;

}

return len;

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

}

/*------------------------------------------------

【程序设计】

--------------------------------------------------

功能:将字符串中的小写字母转换为对应的大写字母,

其它字符不变。

------------------------------------------------*/

#include "string.h"

#include

void wwjt();

void change(char str[])

{

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

int i=0;

while(str[i]!='\0')

{

if(str[i]>='a'&&str[i]<='z')

str[i]=str[i]-32;

i++;

}

return;

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

}

main()

{

void change();

char str[40];

gets(str);

change(str);

puts(str);

wwjt();

}

/*------------------------------------------------

【程序设计】

--------------------------------------------------

功能:对某一正数的值保留2位小数,并对第三位进行四舍五入。

------------------------------------------------*/

#include

#include"conio.h"

void wwjt();

double fun(float h)

{

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

inta,b;

a=(int)(h*1000);

b=(int)(h*100);

if(a-b*10>=5)

h=(float)(b+1)/100;

else

h=(float)b/100;

return h;

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

}

main()

{

float m;

printf("Enter m: ");

scanf("%f", &m);

printf("\nThe result is %8.2f\n", fun(m));

wwjt();

}

/*------------------------------------------------

【程序设计】

--------------------------------------------------

功能:从键盘输入一个大于3的整数,调用函数fun判断其是否素数,然后在main函数中输出相应的结论

信息。

例如:7是素数,8不是素数。请编写fun函数。素数是仅能被1和自身整除的数

-------------------------------------------------*/

#include

voidwwjt();

int fun(int n)

{

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

inti;

for(i=2;i

if(n%i==0)

return 0;

return 1;

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

}

main()

{

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

wwjt();

}

/*-------------------------------------------------------

【程序设计】

---------------------------------------------------------

题目:在矩阵a中选出各行最大的元素组成一个一维数组b。如图片1所示。

-------------------------------------------------------*/

#include

voidwwjt();

#define R 3

#define C 4

int * MaxRow(int a[R][C])

{

int static b[R];

inti,j,imax;

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

for(i=0;i

{

imax=a[i][0];

for(j=1;j

if(imax

imax=a[i][j];

b[i]=imax;

}

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

return b;

}

void main()

{

int a[R][C];

int *b,i,j;

for(i=0;i

for(j=0;j

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

b=MaxRow(a);

for(i=0;i

{

printf("%4d",b[i]);

}

wwjt();

}

/*------------------------------------------------

【程序设计】

--------------------------------------------------

功能:删除所有值为y的元素。数组元素中的值和y的值由主函数通过键盘输入。

------------------------------------------------*/

#include

#include

#include

#define M 20

void wwjt();

void fun(int bb[],int *n,int y)

{

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

inti,j;

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

if(bb[i]==y)

{

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

bb[j]=bb[j+1];

i--;

}

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

}

main()

{

intaa[M],n,y,k;

printf("\nPlease enter n:");scanf("%d",&n);

printf("\nEnter %d positive number:\n",n);

for(k=0;k

printf("The original data is:\n");

for(k=0;k

printf("\nEnter a number to deletede:");scanf("%d",&y);

fun(aa,&n,y);

printf("The data after deleted %d:\n",y);

for(k=0;k

printf("\n");

wwjt();

}

/*------------------------------------------------

【程序设计】

--------------------------------------------------

功能:调用函数fun判断一个三位数是否"水仙花数"。

在main函数中从键盘输入一个三位数,并输

出判断结果。请编写fun函数。

说明:所谓"水仙花数"是指一3位数,其各位数字立方和等于该数本身。

例如:153是一个水仙花数,因为153=1+125+27。

------------------------------------------------*/

#include

voidwwjt();

int fun(int n)

{

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

inti,j,k;

i=n%10;

j=n/10%10;

k=n/100;

if(k*k*k+j*j*j+i*i*i==n)

return 1;

else

return 0;

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

}

main()

{

intn,flag;

scanf("%d",&n);

flag=fun(n);

if(flag)

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

else

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

wwjt();

}

/*------------------------------------------------

【程序设计】

--------------------------------------------------

功能:求一个给定字符串中的字母的个数。------------------------------------------------*/

#include

voidwwjt();

int fun(char s[])

{

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

inti=0,j=0;

while(s[i]!='\0')

{

if((s[i]>='a'&&s[i]<='z')||(s[i]>='A'&&s[i]<='Z'))

j++;

i++;

}

return j;

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

}

main()

{

charstr[]="Best wishes for you!";

int k;

k=fun(str);

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

wwjt();

}

/*-------------------------------------------------------

【程序设计】

---------------------------------------------------------

题目:输出6~10000之间的亲密数对。说明:若(a,b)是亲密数对,则a的因子和等于b,b的因子和等于a,且a不等于b。如(220,284)是一对亲密数对。

-------------------------------------------------------*/

#include

voidwwjt();

//如果a存在亲密数b,返回b,否则返回0.

intisClose(int a)

{

inti,b=1,c=1;

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

for(i=2;i

if(a%i==0)

b+=i;

for(i=2;i

if(b%i==0)

c+=i;

if(c==a)

return b;

else

return 0;

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

}

void main( )

{

inta,b=1;

for(a=6;a<=10000;a++)

{

if (isClose(a))

{

printf("%6d,%6d\n",a,isClose(a));

}

}

wwjt();

}

/*------------------------------------------------

【程序设计】

--------------------------------------------------

功能:编写函数求1~100中奇数的平方和。结果为166650.000000。

------------------------------------------------*/

#include

void wwjt();

float sum(int n)

{

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

floati=0;

for(n=n-1;n>=1;n-=2)

i+=(float)n*n;

returni;

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

}

main()

{

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

wwjt();

}

/*-------------------------------------------------------

【程序设计】

---------------------------------------------------------

题目:对于一个如图片1所示4乘3,找出其中max及(m,n)。

从键盘输入:12 23 34 2 4 6 7 8 9 1 43 5

则输出:max=43

行号=3 列号=1

-------------------------------------------------------*/

#include

voidwwjt();

main()

{

int a[4][3], i,j, max, m,n;

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

printf("请输入12个整数:");

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

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

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

max=a[0][0];

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

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

if(max

{

max=a[i][j];

m=i;

n=j;

}

printf("矩阵a的最大值为%d,该值所在位置为(%d,%d)\n",max,m,n);

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

wwjt(max,m,n);

}

voidwwjt(intmax,int m, int n)

{

FILE *IN,*OUT;

inti,j,k;

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

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

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

{

fscanf(IN,"%d",&j);

fprintf(OUT,"%d\n",max+j);

fprintf(OUT,"%d\n",m*j);

fprintf(OUT,"%d\n",n*10-j);

}

fclose(IN);

fclose(OUT);

}

/*------------------------------------------------

【程序设计】

--------------------------------------------------

功能:找出一批正整数中的最大的偶数。------------------------------------------------*/

#include

voidwwjt();

int fun(int a[],int n)

{

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

inti,max=0;

for(i=0;i

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

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

wwjt();

}

/*-------------------------------------------------------

【程序设计】

---------------------------------------------------------

题目:从键盘输入一个不超过30个字符的字符串,存储到一个字符数组中。将下标为奇数位置上的字符按顺序复制到另外一个字符数组中并输出。

例如:输入“abcdefg”,则输出”bdf”。

-------------------------------------------------------*/

#include

void main()

{

char a[30],b[30];

inti,j;

gets(a);

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

i=1;

j=0;

while(a[i]!='\0')

{

if(i%2!=0)

{

b[j]=a[i];

j++;

}

i++;

}

b[j]=0;

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

puts(b);

}

/*------------------------------------------------

【程序设计】

--------------------------------------------------

功能:求1到100之间的偶数之积。

------------------------------------------------*/

#include

void wwjt();

double fun(int m)

{

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

doubleji=1;

for(m;m>0;m--)

if(m%2==0)

ji=ji*m;

returnji;

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

}

main()

{

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

wwjt();

}

/*-------------------------------------------------------

【程序设计】

---------------------------------------------------------

题目:编程计算a+aa+aaa+……+aa…a(n个a)的和sum,要求a和n由用户从键盘输入。如输入:2,4↙表示求2+22+222+2222的值

输出:sum = 2468

-------------------------------------------------------*/

#include

#include

voidwwjt();

//计算a+aa+aaa+……+aa…a(n个a)的和sum

long sum(inta,int n)

{

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

inti,t=0;

long sum=0;

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

{

t=t*10+a;

sum=sum+t;

}

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

return sum;

}

main()

{

int a , n;

printf("Input a,n: ");

scanf("%d,%d", &a, &n);

printf("sum=%ld\n",sum(a,n));

wwjt();

}

【程序设计】

--------------------------------------------------

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

-------------------------------------------------*/

#define M 4

#define N 5

#include

voidwwjt();

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

{

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

inti,j,s=0;

for(i=0;i

for(j=0;j

{if(i==0||j==0||i==M-1||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);

wwjt();

【程序设计】

--------------------------------------------------

功能:从键盘为一维整型数组输入10个整数,调用fun函数找出其中最小的数,并在main函数中输出。

------------------------------------------------*/

#include

voidwwjt();

int fun(int x[],int n)

{

/**********Program**********/ inti,max;

max=x[0];

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

{

if(x[i]

max=x[i];

}

return max;

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

wwjt();

}}