1.输入两个正整数,m和n,求其最大公约数和最小公倍数。
#include
void main()
{
int hcf(int,int); /*函数声明*/
int lcd(int,int,int); /*函数声明*/
int u,v,h,l;
printf("Please input two numbers:\n");
scanf("%d,%d",&u,&v);
h=hcf(u,v);
printf("H.C.F=%d\n",h);
l=lcd(u,v,h);
printf("L.C.D=%d\n",l);
}
int hcf(int u,int v)
{
int t,r;
if(v>u)
{t=u;u=v;v=t;}
while((r=u%v)!=0)
{u=v;v=r;}
return(v);
}
int lcd(int u,int v,int h)
{
return(u*v/h);
}
2.输入一行字符,分别统计出其中字母、空格、数字和其他字符的个数。
#include
int letter,digit,space,others;
void main()
{
void count(char[]);
char text[80];
printf("Please input string:\n");
gets(text);
printf("string:\n");
puts(text);
letter=0;
digit=0;
space=0;
others=0;
count(text);
printf("letter:%d,digit:%d,space:%d,others:%d\n",letter,digit,space,others);
}
void count(char str[])
{
int i;
for(i=0;str[i]!=\0;i++)
if((str[i]>=a&&str[i]<=z)||(str[i]>=A&&str[i]<=Z))
letter++;
else if(str[i]>=0&&str[i]<=9)
digit++;
else if(str[i]==32)
space++;
else
others++;
}
3.输入一个正整数求出它是几位数;输出原数和位数。
#include
int digit;
void main()
{
void count(char[]);
char text[80];
printf("Please input numbers:\n");
gets(text);
printf("Numbers:\n");
puts(text);
digit=0;
count(text);
printf("digit:%d\n",digit);
}
void count(char str[])
{
int i;
for(i=0;str[i]!=\0;i++)
if(str[i]>=0&&str[i]<=9)
digit++;
}
4.输入一个正整数,输出原数并逆序打印出各位数字。
#include
void invertLongInt(long);
void main()
{
unsigned long iNumber;
printf("Please input a number:\n");
scanf("%ld",&iNumber);
printf("The input number is:%ld\n",iNumber);
printf("The inverse number is:");
invertLongInt(iNumber);
}
void invertLongInt(long x)
{
if(x>=0&&x<=9)
printf("%d\n",x);
else
{
printf("%d",x%10);
invertLongInt(x/10);
}
}
5.从键盘上输入若干学生的一门课成绩,统计并输出最高成绩和最低成绩及相应的序号,当输入负数时结束输入。
6.从键盘上输入若干学生的一门课成绩,计算出平均分,当输入负数时结束输入。将结果输出。
7.求1!+2!+3!+……+20!,将结果输出。
#include
void main()
{
float s=0,t=1;
int n;
for(n=1;n<=20;n++)
{
t=t*n;
s=s+t;
}
printf("1!+2!+3!+……+20!=%e\n",s);
}
8.打印以下图案: *
***
*****
*******
#include
void main()
{
int i,j;
printf("The picture is:\n");
static char picture[4][7]={{ , , ,*},
{ , ,*,*,*},{ , *,*,*,*,*},{*,*,*,*,*,*,*}};
for(i=0;i<=3;i++)
{
for(j=0;j<=6;j++)
printf("%c",picture[i][j]);
printf("\n");
}
}
9.打印以下图案:
*
**
***
****
#include
void main()
{
int i,j;
printf("The picture is:\n");
char picture[4][4]={{*},
{*,*},{ *,*,*},{*,*,*,*}};
for(i=0;i<=3;i++)
{
for(j=0;j<=3;j++)
printf("%c",picture[i][j]);
printf("\n");
}
}
10.求下列试子的值:1-1/2+1/3-1/4+……+1/99-1/100,将结果输出。
#include
void main()
{
float sum=1.0,t,s=1;
int i;
for(i=1;i<=100;i++)
{
t=s/i;
sum=sum+t;
s=-s;
}
printf("1-1/2+1/3-1/4+……+1/99-1/100=%5.4f\n",sum);
}
11.打印出100~999之间的所有水仙花数。
#include
void main()
{
int i,j,k,n;
printf("100~999之间的所有水仙花数 are:\n");
for(n=100;n<1000;n++)
{
i=n/100;
j=n/10-i*10;
k=n%10;
if(n==i*i*i+j*j*j+k*k*k)
printf("%d ",n);
}
printf("\n");
}
12.求Sn=a+aa+aaa+…+aa…a之值,n,a由键盘输入。
#include
void main()
{
int a,n,i=1,sn=0,tn=0;
printf("a,n=:");
scanf("%d,%d",&a,&n);
while(i<=n)
{
tn=tn+a;
sn=sn+tn;
a=a*10;
++i;
}
printf("a+aa+aaa+…+aa…a=%d\n",sn);
}
13.打印以下图案:
*******
*******
*******
*******
#include
void main()
{
char a[7]={*,*,*,*,*,*,*};
int i,j,k;
char space= ;
printf("The picture is:");
for(i=0;i<4;i++)
{
printf("\n");
printf(" ");
for(j=1;j<=i;j++)
printf("%c",space);
for(k=0;k<7;k++)
printf("%c",a[k]);
}
printf("\n");
}
14.打印以下图案:
1
121
12321
1234321
15. 打印以下图案:
1234321
12321
121
1
16.编写一个统计学生成绩程序,完成以下功能:输入4个学生的2门课成绩;求出全班的总平均分,将结果输出。
#include
#define N 4
struct student
{
char num[3];
char name[4];
float score[2];
float avr;
}
stu[N];
void main()
{
int i,j;
float sum,average;
for(i=0;i
void main()
{
char a[5]={*,*,*,*,*};
int i,j,k;
char space= ;
printf("The picture is:");
for(i=0;i<5;i++)
{
printf("\n");
printf(" ");
for(j=1;j<=i;j++)
printf("%c",space);
for(k=0;k<5;k++)
printf("%c",a[k]);
}
printf("\n");
}
18.给出年、月、日,计算该日是该年的第几天。
#include
void main()
{
int sum_day(int,int);
int leap(int year);
int year,month,day,days;
printf("input date(year,month,day):");
scanf("%d,%d,%d",&year,&month,&day);
printf("%d/%d/%d",year,month,day);
days=sum_day(month,day);
if(leap(year)&&month>=3)
days=days+1;
printf("is the %dth day in this year.\n",days);
}
int sum_day(int month,int day)
{
int day_tab[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int i;
for(i=1;i
void main()
{
float a[3][3],sum=0;
int i,j;
printf("请输入元素:\n");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%f",&a[i][j]);
for(i=0;i<3;i++)
sum=sum+a[i][i];
printf("对角线之和是:%6.2f\n",sum);
for(i=0;i<=3;i++)
{
for(j=0;j<=3;j++)
printf("%5.2f",a[i][j]);
printf("\n");
}
}
20.求一个4*3的矩阵各行元素的平均值;将原矩阵和求出的平均值全部输出。
#include
void main()
{
int a[4][3],s[4],i,j,k;
for(i=0;i<4;i++)
for(j=0;j<3;j++)
scanf("%d",*(a+i)+j);
for(i=0;i<4;i++)
{
k=0;
for(j=0;j<3;j++)
k+=a[i][j];
printf("第%d行的平均值是%d",i+1,k);
printf("\n");
}
}
21.求一个3*4的矩阵各列元素的平均值;将原矩阵和求出的平均值全部输出。
#include
void main()
{
int a[4][3],s[4],i,j,k;
for(i=0;i<4;i++)
for(j=0;j<3;j++)
scanf("%d",*(a+i)+j);
for(i=0;i<4;i++)
{
k=0;
for(j=0;j<3;j++)
k+=a[i][j];
printf("第%d行的平均值是%d",i+1,k);
printf("\n");
}
}
22.求一个3*5的矩阵各列元素的最大值,将原矩阵和求出的最大值全部输出。
#include
void main()
{
int a[3][5],s[3],i,j,k;
for(i=0;i<3;i++)
for(j=0;j<5;j++)
scanf("%d",*(a+i)+j);
for(i=0;i<3;i++)
{ *(s+i)= *(*(a+j));
for(j=1;j<5;j++)
if(*(s+i) < *(*(a+i)+j))
*(s+i)= *(*(a+i)+j);
}
for(i=0;i<3;i++)
{
printf("Line=%d Max=%d",j,s[j] );
printf("\n");
}
}
23.求一个4*3的矩阵各行元素的最大值,将原矩阵和求出的最大值全部输出。
#include
void main()
{
int a[4][3],s[4],i,j,k;
for(i=0;i<4;i++)
for(j=0;j<3;j++)
scanf("%d",*(a+i)+j);
for(i=0;i<4;i++)
{ *(s+i)= *(*(a+i));
for(j=1;j<3;j++)
if(*(s+i) < *(*(a+i)+j))
*(s+i)= *(*(a+i)+j);
}
for(i=0;i<4;i++)
{
printf("Row=%d Max=%d",i,s[i] );
printf("\n");
}
}
24.求一个M*N的矩阵中元素的最大值,将原矩阵和求出的最大值全部输出。
#include
#define N 10
#define M 10
void main()
{
int a
?[N],i,j,k
?,max,m,n;
scanf("%d %d",&m,&n);
for(i=0;i
#define N 10
void main()
{
int a[N][N],i,j,k,n;
scanf("%d",&n);
for(i=0;i
void main()
{
int i,j,big=0,sma=0,num=0,spa=0,oth=0;
char text[3][80];
for(i=0;i<3;i++)
{
printf("请输入行%d:\n",i+1);
gets(text[i]);
for(j=0;j<80&&text[i][j]!=\0;j++)
{
if(text[i][j]>=A&&text[i][j]<=Z)
big++;
else if(text[i][j]>=a&&text[i][j]<=z)
sma++;
else if(text[i][j]>=0&&text[i][j]<=9)
num++;
else if(text[i][j]== )
spa++;
else
oth++;
}
}
printf("大写字母:%d\n",big);
printf("小写字母:%d\n",sma);
printf("数字:%d\n",num);
printf("空格:%d\n",spa);
printf("其它:%d\n",oth);
}
27.将20个整数放到一维数组中,输出该数组的最大值和最小值。
#include
void main()
{
int i,j,min,max,a[21];
printf("请输入数据:\n");
for(i=1;i<=20;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
for(i=1;i<=19;i++)
{
min=i;
for(j=2;j<=19;j++)
if(a[min]>a[j]);
a[min]=a[j];
}
for(i=1;i<=19;i++)
{
max=i;
for(j=2;j<=19;j++)
if(a[max]
void main()
{
int i,j,min,max,a[16],m,n;
printf("请输入数据:\n");
for(i=1;i<=15;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
for(i=1;i<=14;i++)
{
max=i;
for(j=2;j<=14;j++)
if(a[max]
#include
#define N 10
void main()
{
int i,n;
char str1[N],str2[N];
gets(str1);
for(n=0;n
void main()
{
char str1[20],str2[20];
int i=0,j=0;
printf("请输入字符串1:\n");
scanf("%s",str1);
printf("请输入字符串2:\n");
scanf("%s",str2);
while (str1[i]!=\0)
i++;
while (str2[j]!=\0)
str1[i++]=str2[j++];
str1[i]=\0;
printf("合并之后的字符串为:%s\n",str1);
}
31.编写一个程序,将字符数组a中的全部字符复制到字符数组b中。不要使用strcpy函数。
#include
#include
void main()
{
char a[40],b[40];
int i;
printf("请输入a:\n");
scanf("%s",a);
for(i=0;i<=strlen(a);i++)
b[i]=a[i];
printf("b:%s\n",b);
}
32.编写一个程序,找出3个字符串中的最大者,将它输出。
#include
#include
void main()
{
char string[20];
char str[3][20];
int i;
for(i=0;i<3;i++)
gets (str[i]);
if(strcmp(str[0],str[1])>0)
strcpy(string,str[0]);
else
strcpy(string,str[1]);
if(strcmp(str[2],string)>0)
strcpy(string,str[2]);
printf("最大的字符串是:\n%s\n",string);
}
33.编写程序,输入任意一个1~7之间的整数,将他们转换成对应的英文单词。例如:1转换成Monday,7转换成Sunday。
#include
void main()
{
int a;
printf("输入一个整数:\n");
scanf("%d",&a);
if(a==1) printf("Monday\n");
else if(a==2) printf("Tuesday\n");
else if(a==3) printf("Wendesday\n");
else if(a==4) printf("Thursday\n");
else if(a==5) printf("Friday\n");
else if(a==6) printf("Saturday\n");
else if(a==7) printf("Sunday\n");
else printf("错误\n");
}
34.编写程序,输入两个整数,和+、-、*、/之中的任意一个运算符,输出计算结果。
#include
void main()
{
float a,b;
char c;
printf("请输入一个运算符:\n");
scanf("%c",&c);
printf("请输入两个整数:\n");
scanf("%d,%d",&a,&b);
switch(c)
{
case+:printf("%f\n",a+b);break;
case-:printf("%f\n",a-b);break;
case*:printf("%f\n",a*b);break;
case/:printf("%f\n",a/b);break;
default:printf("错误");
}
}
35.输入年号,计算这一年的2月份的天数,将结果输出。
#include
void main()
{
int year,leap;
printf("请输入年份:\n");
scanf("%d",&year);
if(year%4==0)
{
if(year%100==0)
{
if(year%400==0)
leap=1;
else
leap=0;
}
else
leap=1;
}
else
leap=0;
if(leap)
printf("%d年的2月有29天",year);
else
printf("%d年的2月有28天",year);
}
36.输入三角形的三边a,b,c,判断a,b,c,能否构成三角形,若能,计算面积。
#include
#include
void main()
{
float a,b,c,area;
double s;
printf("Please enter three sides of a triangle:\n");
scanf("%f,%f,%f",&a,&b,&c);
s=(a+b+c)/2.0;
area=sqrt(s*(s-a)*(s-b)*(s-c));
if(a+b
#define N 10
#define M 10
void main()
{
int i,j,k,m,n,flag1,flag2,a[N]
?,max,maxj;
printf("输入行数n[n<10]:");
scanf("%d",&n);
printf("输入列数m[m<10]:");
scanf("%d",&m);
for(i=0;i
#include
void main()
{
float a,b,c;
printf("请输入三角形边长:\n");
scanf("%f%f%f",&a,&b,&c);
if((a-b>=c)||(b-c>=a)||(c-a>=b)) printf("不能够成三角形\n");
else if ((a*a+b*b==c*c)||(b*b+c*c==a*a)||(c*c+a*a==b*b))
if ((a==b)||(b==c)||(c==a)) printf("等腰直角三角形\n");
else printf("直角三角形\n");
else if ((a==b)&&(b==c)) printf("等边三角形\n");
else if ((a==b)&&(b!=c)||(c==b)&&(b!=a)||(a==c)&&(c!=a)) printf("等腰三角形\n");
else printf("一般三角形\n");
}
38.输入奖金数a,计算并输出税率、应缴税款和实得奖金数。(用if语句编程)
#include
void main()
{
int a;
float r,t,s;
printf("请输入奖金数:\n");
scanf("%d",&a);
if (a<500) r=0.00;
else if (a<1000) r=0.05;
else if (a<2000) r=0.08;
else if (a<2000) r=0.10;
else r=0.15;
t=a*r;
s=a-t;
printf("税率:%7.2f\n",r);
printf("税款:%7.2f\n",t);
printf("实得奖金:%7.2f\n",s);
}
39.输入奖金数a,计算并输出税率、应缴税款和实得奖金数。(用switch语句编程)
#include
void main()
{
int a,e;
float r,t,s;
printf("请输入奖金数:\n");
scanf("%d",&a);
e=a/500;
switch(e)
{case 0:r=0.00;break;
case 1:r=0.05;break;
case 2:
case 3:r=0.08;break;
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:r=0.10;break;
default:r=0.15;break;
}
t=a*r;
s=a-t;
printf("税率:%7.2f\n",r);
printf("税款:%7.2f\n",t);
printf("实得奖金:%7.2f\n",s);
}
40.输入学生的成绩,利用计算机将学生的成绩划分出等级并输出:
90~100:A级; 80~89:B级; 70~79:C级; 60~69:D级; 0~59:E级;
#include
void main()
{
float m;
printf("输入学生成绩:\n");
scanf("%f",&m);
if ((m>100)||(m<0)) printf("数据有误\n");
else if (m>=90) printf("A级\n");
else if (m>=80) printf("B级\n");
else if (m>=70) printf("C级\n");
else if (m>=60) printf("D级\n")