C语言数组练习
题目
1、在主函数中输入一 个整数,在子函数中判定该数据的奇偶性后,将判定结果在主函数中输出。
2、编写一个函数,计算任一输入的整数的各位数字之和。其中,主函数包括输入、输出和调用该函数。
3、在主函数中输入两个实数,在该程序中用四个子函数实现求这两个数据的和、差、积、商,并在主函数中将计算结果输出。
4、用函数实现该功能:判断某年是否为闰年,输入输出信息均在主函数中实现。
5、编写一个函数,判断某一个四位数是不是玫瑰花数(所谓玫瑰花数即该四位数各位数字的四次方和恰好等于该数本身,如:1634 在主函数中从键盘任意输入一个四位数,调用该函数,判断该数是否为玫瑰花数,若是则输出“yes”,否则输出“no”。
6、利用函数调用求两整数的最大公约数和最小公倍数。
7、编写一个程序,通过函数调用的方式计算y=|x|。
代码
1、在主函数中输入一 个整数,在子函数中判定该数据的奇偶性后,将判定结果在主函数中输出。
#include <stdio.h>
#include <stdlib.h>
/* 在主函数中输入一 个整数,在子函数中判定该数据的奇偶性后,将判定结果在主函数中输出。 */
int jo(int x) //定义函数
{ int n;
if(x%2==0)
n=1;
else
n=0;
return n;
}
int main() {
int x,y;
printf("输入一个整数判断奇偶: ");
scanf("%d",&x);
y=jo(x);
if(y==1)
printf("%d是偶数",x);
else
printf("%d是奇数",x);
return 0;
}
2、编写一个函数,计算任一输入的整数的各位数字之和。其中,主函数包括输入、输出和调用该函数。
#include <stdio.h>
#include <stdlib.h>
/* 编写一个函数,计算任一输入的整数的各位数字之和。其中,主函数包括输入、输出和调用该函数。 */
int fx(int num)// 函数
{
int t=0,mask=1,x=0;
t=num;
while(t>9)
{
t/=10;
mask*=10;
}
while(mask>0)
{
x=x+num/mask;
printf("%d ",num/mask);
num%=mask;
mask/=10;
}
return x;//返回值x
}
int main()//主函数
{
int num=0,t=0,mask=1,x=0,sum;
printf("输入的整数求各位数字之和");
scanf("%d",&num);
printf("整数的各位数字:");
sum=fx(num);//把返回值下赋值sum
printf("\n和为:%d ",sum);
return 0;
}
3、在主函数中输入两个实数,在该程序中用四个子函数实现求这两个数据的和、差、积、商,并在主函数中将计算结果输出。
#include <stdio.h>
#include <stdlib.h>
/* 在主函数中输入两个实数,在该程序中用四个子函数实现求这两个数据的和、差、积、商,并在主函数中将计算结果输出。 */
float h1(float x,float y)//和
{
float h;
h=x+y;
return h;
}
float c1(float x,float y)//差
{
float c;
c=x-y;
return c;
}
float j1(float x,float y)//积
{
float j;
j=x*y;
return j;
}
float s1(float x,float y)// 商
{
float s;
s=x/y;
return s;
}
int main() {
float x,y;
float h,c,j,s;
printf("输入x=");
scanf("%f",&x);
printf("输入y=");
scanf("%f",&y);
h=h1(x,y);
c=c1(x,y);
j=j1(x,y);
s=s1(x,y);
printf("和:%f 差:%f 积:%f 商:%f",h,c,j,s) ;
return 0;
}
4、用函数实现该功能:判断某年是否为闰年,输入输出信息均在主函数中实现。
#include <stdio.h>
#include <stdlib.h>
/* 用函数实现该功能:判断某年是否为闰年,输入输出信息均在主函数中实现。 */
int year(int x)
{ int y;
if(((x%4==0)&(x%100!=0))||(x%400==0))
y=1;
else
y=0;
return y;
}
int main() {
int x,y;
printf("输入一个年份判断是否位闰年");
scanf("%d",&x);
y=year(x);
if(y==1)
printf("%d是闰年",x);
else
printf("%d不是闰年",x);
return 0;
}
5、编写一个函数,判断某一个四位数是不是玫瑰花数(所谓玫瑰花数即该四位数各位数字的四次方和恰好等于该数本身,如:1634。在主函数中从键盘任意输入一个四位数,调用该函数,判断该数是否为玫瑰花数,若是则输出“yes”,否则出“no”。
#include <stdio.h>
#include <stdlib.h>
/* 5、编写一个函数,判断某一个四位数是不是玫瑰花数
(所谓玫瑰花数即该四位数各位数字的四次方和恰好等于该数本身,如:1634= )。
在主函数中从键盘任意输入一个四位数,调用该函数,
判断该数是否为玫瑰花数,若是则输出"yes",否则输出"no"。 */
int mgh(int x,int y)
{
int a,b,c,d;
a=x/1000;
b=x%1000/100;
c=x/10%10;
d=x%10;
if(x==a*a*a*a+b*b*b*b+c*c*c*c+d*d*d*d)
y=1;
else
y=0;
return y;
}
int main() {
int x,y;
printf("输入一个四位数判断该数是否为玫瑰花数");
scanf("%d",&x);
y=mgh(x,y);
if(y==1)
printf("yes");
else if(y==0)
printf("no");
return 0;
}
6、利用函数调用求两整数的最大公约数和最小公倍数。
#include <stdio.h>
#include <stdlib.h>
/* 利用函数调用求两整数的最大公约数和最小公倍数。 */
int gys(int x,int y)//最大公约数
{
int a;
a=x%y;
while(a!=0)
{
x=y;
y=a;
a=x%y;
}
return y;
}
int gbs(int x,int y)// 最小公倍数
{
int a,b;
a=gys(x,y);
b=x*y/a;
return b;
}
int main() {
int x,y,a,b;
printf("输入两整数的最大公约数和最小公倍数。") ;
scanf("%d%d",&x,&y);
a=gys(x,y);
b=gbs(x,y);
printf("最大公约数:%d\n",a);
printf("最小公倍数:%d\n",b);
return 0;
}
7、编写一个程序,通过函数调用的方式计算y=|x|。
#include <stdio.h>
#include <stdlib.h>
/* 编写一个程序,通过函数调用的方式计算y=|x| */
int main() {
int x,y;
printf("输入一个数求绝对值");
scanf("%d",&x);
int yjdz=jdz(x,y);
printf("y=%d",yjdz);
return 0; }
int jdz(int x,int y)
{
if(x<=0)
{ x=-x;
y=x;
}
else
y=x;
return y;
}
结果
1
2
3
4
5
6
7