C语言作业_c语言作业
C语言作业由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c语言作业”。
第一章
使用printf()函数按下面的形式显示某应用程序的功能 #include void main(){ printf(“********************n”);printf(“欢迎使用卡卡名片夹n”);printf(“[1]显示全部名片n”);printf(“[2]新建名片n”);printf(“[3]修改名片n”);printf(“[4]删除名片n”);printf(“[5]退出n”);printf(“********************n”);}
编写一个C程序,能够从键盘输入一个浮点数,然后输出它的倒数。#include void main(){ float m,n;printf(“请输入一个浮点数n”);scanf(“%f”,&m);n=1/m;printf(“该数的倒数是%f”,n);}
第二章
将华氏温度转换为摄氏温度。使用公式:C=5/9(F-32.#include void main(){ float m,n;printf(“请输入华氏温度n”);scanf(“%f”,&m);n=5.0/9.0*(m-32);printf(“其对应的摄氏温度为:%fn”,n);}
输入两个角度值分别赋给变量x和y,计算下面算式的结果,#include #include #define PI 3.14
void main(){ int x,y,z,s1,s2;printf(“请输入两个角度值n”);scanf(“%f%f”,&x,&y);x=x*PI/180.0;y=y*PI/180.0;s1=sin(fabs(x)+fabs(y));s2=sqrt(cos(fabs(x)+fabs(y)));z=s1/s2;} printf(“所的结果为%f/n”,z);
贷款额的计算,即计算一次可向银行贷款多少元,其计算公式为 D=a(In-1)/[(I-1)In-] 式中:D为一次可向银行的贷款额,a为每年可以还贷的金额,I=1+人(r为年利率),n为还清贷款的年数。a、r、n由键盘输入。#include #include void main(){ float a,r,n,I,D,p,q;printf(“请输入每年可以还贷的金额a,年利率r,还清贷款的年数nn”);scanf(“%f%f%f”,&a,&r,&n);I=1+r;p=a*(pow(I,n)-1);q=(I-1)*pow(I,n);D=p/q;printf(“一次可向银行贷款%f元”,D);}
第三章
将China译成Glmre。方法是:用原来字母后面的第4个字母代替原来的字母。#include void main(){ char c1,c2,c3,c4,c5;c1='C'+4;c2='h'+4;c3='i'+4;c4='n'+4;c5='a'+4;printf(“%c%c%c%c%cn”,c1,c2,c3,c4,c5);}
把十进制数97转化为八进制、十六进制数。#include void main(){ int n=97;printf(“oct=%on”,n);printf(“xct=%xn”,n);}
设圆半径r=1.5,圆柱高h=3,求圆周长,圆面积,圆球表面积,圆球体积,圆柱体积。#include #define PI 3.1415926 void main(){ float r,h,l,s,sv,hs,hv;printf(“请输入圆半径,圆柱高n”);scanf(“%f%f”,&r,&h);l=2*PI*r;s=PI*r*r;=4*PI*r*r;sv=4.0/3.0*PI*r*r*r;hs=2*PI*r*r+2*PI*r*h;hv=PI*r*r*h;printf(“圆周长为%f,圆面积为%f,圆球表面积为%f,圆球体积为%f,圆柱表面积为%f,圆柱体积为%f”,l,s,sv,hs,hv);}
已知三角形的三边长,求三角形面积。#include #include void main(){ float a,b,c,p,s;printf(“请输入三角形的三边长为:n”);scanf(“%f%f%f”,&a,&b,&c);
} p=(a+b+c)/2;s=sqrt(p*(p-a)*(p-b)*(p-c));printf(“此三角形的面积是%f”,s);
输入三个字母m,a,n,并以”man”m a n(竖行排列)的形式输出 #include void main(){ char a,b,c;printf(“请输入三个字母n”);scanf(“%c,%c,%c”,&a,&b,&c);printf(“”%c%c%c“n”,a,b,c);printf(“%cn%cn%cn”,a,b,c);}
输入一个字符,找出他的前一个字符和后一个字符,并根据ASCII值,按从大到小的顺序输出这三个字符级ASCII码值。#include void main(){ char c1,c2,c3;scanf(“%c”,&c2);c1=c2-1;c3=c2+1;printf(“%c%c%cn”,c1,c2,c3);
printf(“%d,%d,%d”,c1,c2,c3);}
已知鸡免总头数为h(30),总脚数为f(90),求鸡免各有几只
#include void main(){ int h,f,a,b;
}printf(“请输入总头数和总脚数n”);scanf(“%d,%d”,&h,&f);a=(4*h-f)/2;b=h-a;printf(“鸡有%d只,兔有%d只”,a,b);
输入一个三位正整数,反向输出对应的数
#include void main(){ int i,j,k,l,m;
}printf(“请输入一个三位整数:n”);scanf(“%d”,&i);j=i/100;k=(i-j*100)/10;l=i-j*100-k*10;m=l*100+k*10+j;printf(“此数的倒置数为:%dn”,m);
计算方程ax2+bx+c=0的根
#include #include void main(){ float a,b,c,x1,x2,p;printf(“请输入a,b,c的值:n”);scanf(“%f%f%f”,&a,&b,&c);
p=sqrt(b*b-4*a*c);x1=(-b+p)/(2*a);
x2=(-b-p)/(2*a);printf(“x1=%f,x2=%fn”,x1,x2);}
用putchar函数读入两个字符c1,c2,然后分别用putchar函数和printf函数输出 #include void main(){ char c1,c2;c1=getchar();c2=getchar();putchar(c1);printf(“n”);putchar(c2);printf(“n”);printf(“%cn%cn”,c1,c2);}
第四章
输入三个整数x,y,z,请把这三个数由小到大输出,#include void main(){ int x,y,z,m;printf(“请输入三个整数n”);scanf(“%d,%d,%d”,&x,&y,&z);if(x>y){m=x,x=y,y=m;} if(x>z){m=x,x=z,z=m;} if(y>z){m=y,y=z,z=m;} printf(“%d,%d,%dn”,x,y,z);}
当月收入超过1600元时,超过部分交税款20%。试编写一程序计算税款(其中月收入由键盘输入。
#include void main(){ float a,b=0;
}printf(“请输入月收入n”);scanf(“%f”,&a);if(a>1600)b=(a-1600)*0.2;printf(“应缴税款为%f元n”,b);
计算y=3x+6(x>=0)
-x*x+2x-8(x
#include void main(){ float x,y;
} printf(“请输入自变量x的值n”);scanf(“%f”,&x);if(x>=0)y=3*x+6;else y=-x*x+2*x-8;printf(“对应因变量的值为%fn”,y);
为优待顾客,商店对购货在1000元和1000元以上的,八折优惠;500元以上(包括500元,下同),1000元以下的,九折优惠;200元以上,500元以下的,九五折优惠;100元以上,200元以下的,九七折优惠;100元一下不优惠。请输入购货款后,打印出该交的货款。#include void main(){ float x,y;
}printf(“请输入购货款n”);scanf(“%f”,&x);if(x>=1000)y=x*0.8;else if(x>=500)y=x*0.9;else if(x>=200)y=x*0.95;else if(x>=100)y=x*0.97;else y=x;printf(“应交货款为%.1f元n”,y);
输入班号,输出该班学生人数(用switch语句编程)#include void main(){ int m,n;
}printf(“请输入班号n”);scanf(“%d”,&m);switch(m){ case 21:n=45;break;case 22:n=51;break;case 23:n=48;break;case 24:n=46;break;case 25:n=48;break;case 26:n=52;break;default:printf(“输入错误n”);} printf(“该班有%d个学生n”,n);
第五章
任意输入N个数,统计其中正数,负数和零的个数。
#include void main(){ int N,n,m,a=0,b=0,c=0;
}printf(“请输入数字个数n”);scanf(“%d”,&N);for(n=1;n0)
a++;else if(m
b++;else
c++;} printf(“正数有%d个,负数有%d个,零有%d个n”,a,b,c);
第五章
任意输入N个数,统计其中正数,负数和零的个数。#include void main(){ int a=0,b=0,c=0,n,i,m;printf(“请输入数的个数:n”);scanf(“%d”,&n);for(i=1;i
} printf(“请输入第%d个数:n”,i);scanf(“%d”,&m);if(m>0)
a++;else if(m
b++;else
c++;} printf(“正数有:%d个,负数有:%d个,零有:%d个n”,a,b,c);
求值
#include void main(){ int i,j,k,a=0,b=0;float c=0,sum=0;for(i=1;i
在1~500中,找出所有能同时满足用3除余2,用5除余3,用7除余4的整数。#include void main(){ int i;for(i=1;i
if(i%3==2&&i%5==3&&i%7==4)
printf(“%dn”,i);} }
任意输入一串字符,以“?”结束,分别统计其中字母,数字和其他字符的个数。#include void main(){ int a=0,b=0,c=0;char d;while((d=getchar())!='?'){
if(d>='A'&&d='a'&&d
a++;
else if(d>='0'&&d
b++;
else
c++;} printf(“字母有%d个,数字有%d个,其他字符有%d个n”,a,b,c);}
第六章
求任意20个数中的正数之和及个数。#include void main(){ int i,k=0;float a[30],sum=0;for(i=0;i
printf(“请输入第%d个数n”,i+1);
scanf(“%f”,&a[i]);
if(a[i]>0)
{
sum+=a[i];
k++;
} } printf(“正数之和为%fn”,sum);printf(“正数的个数为%dn”,k);}
统计全班某门功课的平均成绩,找出最高,最低分。#include void main(){ int a[38],i,j,k,sum=0;float ave;
printf(“请输入第1个同学的成绩:n”);scanf(“%d”,&a[0]);j=k=a[0];for(i=1;i100||a[i]
printf(“输入的成绩无效!请重新输入!n”);
scanf(“%d”,&a[i]);} sum+=a[i];if(a[i]>j)j=a[i];if(a[i]
}
一个数如果恰好等于他的因子之和,这个数就称为完数。找出1000以内的所有完数。#include void main(){ int sum,i,n;
} printf(“从2到1000的完备数有:n”);for(n=2;n
电话传递数据加密。#include void main(){ int n,b,i,a[4];
} printf(“请输入一个三位数n”);scanf(“%d”,&n);a[0]=n/1000;a[1]=(n/100)%10;a[2]=(n%100)/10;a[3]=n%10;for(i=0;i
计算两个矩阵的乘积。#include void main(){ int a[2][3],b[3][4],c[2][4]={0};int i,j,k,s;
printf(“请给数组a[2][3]赋值n”);for(i=0;i
scanf(“%d”,&a[i][j]);} printf(“请给数组b[3][4]赋值n”);for(i=0;i
scanf(“%d”,&b[i][j]);} for(i=0;i
for(k=0,s=0;k
c[i][j]+=a[i][k]*b[s][j];} }
} for(i=0;i
printf(“%d
”,c[i][j]);printf(“n”);}
第七章
#include #include void change(char str[]){ int i,j;for(i=j=0;str[i]!=' ';i++)
if(str[i]>='A'&&str[i]='a'&&str[i]='0'&&str[i]
str[j++]=str[i];
str[j]=' ';}
void main(){
} char str[80];gets(str);change(str);puts(str);return;
#include
int sum(int n){ int i,j,k,l;i=n%10;n=n/10;j=n%10;k=n/10;l=i*i*i+j*j*j+k*k*k;return l;}
void main(){ int x,y;for(x=100;x
y=sum(x);
if(y==x)
} } printf(“%dn”,x);
#include
int min(int m,int n){ int i,j,k;i=m;j=n;if(i>j){
k=i;
i=j;
j=k;} while(k!=0){
k=j%i;
j=i;
i=k;} k=m*n/j;return k;}
void main(){ int a,b,c,d,e;int x,y,z,w;
} printf(“请输入5个正整数n”);scanf(“%d,%d,%d,%d,%d”,&a,&b,&c,&d,&e);x=min(a,b);y=min(c,d);z=min(x,y);w=min(z,e);printf(“%dn”,w);
#include
int wanbeishu(int n){ int i,j=0;for(i=1;i
void main(){ int x,y;printf(“30000以内的完备数有:n”);
} for(x=1;x
#include
int yueshuhe(int n){ int i,j=0;for(i=1;i
void main(){ int x,y,z;printf(“互满数有:n”);for(x=1;x
y=yueshuhe(x);
z=yueshuhe(y);
} } if(x==z&&x
习题八
#include void main(){ int a[200],b[200],m,n,len,*p,*q,*t;printf(“请输入升序数组a的元素个数:”);scanf(“%d”,&m);for(p=a;p
printf(“请输入升序a的第%d个元素值:”,p-a+1);
scanf(“%d”,p);} printf(“请输入升序数组b的元素个数:”);scanf(“%d”,&n);for(q=b;q
printf(“请输入升序b的第%d个元素值:”,q-b+1);
scanf(“%d”,q);} p=a;q=b;len=m;
} while(p
for(t=a+len-1;t>=p;t--)*(t+1)=*t;
*p=*q;
len++;
q++;
if(q==b+n)break;} p++;} while(q
#include #define N 100 void main(){ int a[N],*p=a,m,n,i,k,s;printf(“请输入总人数:”);scanf(“%d”,&n);for(i=0;i
} printf(“请输入报数值:”);scanf(“%d”,&m);i=0;k=0;s=0;while(s
printf(“%d ”,*(p+i));
*(p+i)=0;
k=0;
s++;} i++;if(i==n)i=0;} printf(“n”);
#include #define N 10 void func(int *,int);void main(){ int a[N],i;printf(“请任意输入%d个数组元素:n”,N);for(i=0;i
func(a,N);for(i=0;i
void func(int *a,int n){ int *p,*q;int count=0;for(p=a;p
if(*p==0)count++;
for(p=a,q=a+n;p
if(*p==0)
{
while((*q-1)==0)q--;
if(p==q)break;
*p=*(q-1);*(q-1)=0;
}
for(p=a,a=q;p
for(q=p+1;q
if(*p>*q){*p=*p+*q;*q=*p-*q;*p=*p-*q;} }
#include #define N 10 int search(int *[],int,int);void main()
{
int a[N],*p[N],i,k,m;printf(“请任意输入%d个数组元素:n”,N);for(i=0;i
printf(“第%d大元素的值:%dn”,k,*p[m]);
printf(“第%d大元素的下标:”,k);
for(i=0;i
if(a[i]==*p[m])printf(“%d”,i);
printf(“n”);}
else printf(“第%d大元素不存在!n”,k);}
int search(int *a[],int n,int k){ int i,j,*t;for(i=0;i
for(j=i+1;j
if(*a[i]
i=1;j=0;
while(i
{
if(*a[i-1]>*a[i])j++;
if(j==k)break;
i++;
}
if(k
else return i-1;}
#include int find(int,int);void main(){ int n;long x,k;printf(“请输入一个长整型数据: n”);scanf(“%ld”,&x);printf(“请输入待查找的子数: n”);scanf(“%ld”,&k);n=find(x,k);printf(“%d中的%ld出现的次数为%dn”,x,k,n);} int find(int x,int k){ int a[10],b[10],*p=a+10,*q=b+10,*t,*r,s=0;do {
p--;
*p=x%10;
x=x/10;} while(x!=0);do {
q--;
} *q=k%10;k=k/10;}while(k!=0);while(p
if(*t==*r)
{
t++;
r++;
}
else break;
if(r==b+10)s++;
p++;} return s;
习题九
#include void main(){ char str[80];int i;
} printf(“请输入原始字符串: ”);gets(str);for(i=0;str[i]!=' ';i++)if(str[i]>='A'&&str[i]='a'&&str[i]
str[i]+=1;else if(str[i]=='Z'||str[i]=='z')
str[i]-=25;printf(“结果字符串为:”);puts(str);
#include #include #define M 5 #define N 80 void main(){ char str[M][N],s[N];int i,j,k,len,m=0,l=0,word=0;puts(“请输入英文文章:”);for(i=0;i
gets(str[i]);
len=strlen(str[i]);
for(j=len-1;j>=0;j--)
if(str[i][j]>='a'&&str[i][j]='A'&&str[i][j]
{
}
word=1;l++;} else if(word){ for(k=j+1;k
s[m++]=str[i][k];s[m++]=str[i][j];word=0;l=0;} else s[m++]=str[i][j];if(word)for(k=j+1;k
s[m++]=str[i][k];s[m]=' ';strcpy(str[i],s);m=0;l=0;word=0;} puts(“经过处理的英文文章:n”);for(i=0;i
#include void main(){ char str[80],*p,*q;
} puts(“请输入字符串:”);gets(str);for(p=str;*p!=' ';p++)if(!(*p>='a'&&*p='A'&&*p='0'&&*p
if(*p==*(p+1))
{
for(q=p;*q!=' ';q++)
*q=*(q+1);
p--;
} puts(“处理后的字符串为:”);puts(str);#include #include void strcopy(char *,char *,int,int);void main(){ char str1[80],str2[80];int m,n,len;printf(“请输入原字符串:”);gets(str1);
printf(“从第几个字符开始复制?”);scanf(“%d”,&n);printf(“复制到第几个字符?”);scanf(“%d”,&m);len=strlen(str1);if(len==0)printf(“字符串为空n”);else if(m>len||m
printf(“复制字符串:%sn”,str2);} }
void strcopy(char *p,char *q,int m,int n){ char *s1=p+m-1,*s2=p+n-1;if(m
while(s1
*q++=*s1++;else
while(s1>=s2)*q++=*s1--;
*q=' ';}