版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第四章
4.8设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆
球体积、圆柱体积。用scanf输入数据,输出计算结果,输出时要求
有文字说明,取小数点后2位数字。
#defineP3.1415926
Sinclude<stdio.h>
voidmain()
{floath,r,1,s,sq,vq,vz;
printf(“请输入圆半径r,圆柱高h:〃);
scanf&r,&h);
1=2.0*P*r;
s=P*r*r;
sq=4*p*r*r;
vq=4.0/3.0*P*r*r*r;
vz=P*r*r*h;
printf(〃圆周长为:1=%6.2f\n〃,1);
printf(〃圆面积为:s=%6.2f\n〃,s);
printf(〃圆球表面积为:sq=%6.2f\n〃,sq);
printf(〃圆球体积为:vq=%6.2f\n〃,vq);
printf(〃圆柱体积为:vz=%6.2f\n〃,vz);
运行结果:
请输入圆半径r,圆柱高h:1.53
圆周长为:1=9.42
圆面积为:s=7.07
圆球表面积为:sq=28.27
圆球体积为:vq=14.14
圆柱体积为:vz=21.21
Pressanykeytocontinue
4.9输入一个华氏温度,要求输出摄氏温度。公式为c=%9(F-32)输出
要有文字说明,取2位小数。
Sinclude<stdio.h>
voidmain()
{floatc,f;
printf("请输入一个华氏温度:");
scanf&f);
c=5.0/9.0*(f-32);
printf("摄氏温度为%5.2f\n",c);
)
运行结果:
请输入一个华氏温度:2O
摄氏温度为-6.67
Pressanykeytocontinue
4.10编程序,用getchar函数读入两个字符给cl,c2,然后分别用
putchar函数和printf函数输出这两个字符。思考以下问题:
(1)变量cl、c2应定义为字符或整型?或二者皆可?
(2)要求输出cl和c2值的ASCII码,应如何处理?用putchar函数
还是printf函数?
(3)整形变量与字符变量是否在任何情况下都可以互相代替?如:
charcl,c2;与intel,c2是否无条件的等价?
(1)
Winclude<stdio.h>
voidmain()
(
charcl,c2;
printf(〃请输入两个字符cl,c2:〃);
cl=getchar();
c2=getchar();
printf(〃用putchar语句输出结果〃);
putchar(cl);
putchar(c2);
printf("\n");
printf("用printf语句输出结果”);
printf(//%c%c\n,z,cl,c2);
运行结果:
请输入两个字符cl,c2:as
用putchar语句输出结果as
用printf语句输出结果as
Pressanykeytocontinue
⑵
Sinclude<stdio.h>
voidmain()
(
charcl,c2;
printf(〃请输入两个字符cl,c2:〃);
scanf,&cl,&c2);
cl=getchar();
c2=getchar();
printf(〃按ASCH码输出结果为:\n〃);
printf(〃%d,%d\n,z,cl,c2);
)
运行结果:
请输入两字符cl,c2:a,s
按ASCII码输出结果为:
97,115
Pressanykeytocontinue
⑶
#include<stdio.h>
voidmain()
{intcl,c2;
printf("请输入两个整数cl,c2:");
scanf("%d%d”,&cl,&c2);
printf("按字符输出结果:\n");
printf(,/%c%c\nz,,cl,c2);
printf("按ASCH码输出结果为:\n");
printf(//%c%c\n,,,cl,c2);
)
运行结果:
请入两个整数cl,c2:97,98
按字符输出结果:
a,b
按ASCII码输出结果为:
97,98
Pressanykeytocontinue
#include<stdio.h>
voidmain()
{charcl,c2;
intal,a2;
printf(〃请输入两个字符cl,c2:〃);
scanf(,,%c%c”,&cl,&c2);
al=cl;
a2=c2;
printf(〃按字符输出结果:\n〃);
printf(〃%c%c\n〃,al,a2);
printf(〃按整数输出结果为:\n〃);
printf(,z%d%d\nz,,cl,c2);
运行结果:
请输入两个字符cl,c2:ab
按字符输出结果:
ab
按整数输出结果为:
9798
Pressanykeytocontinue
第五章
5.3写出下列各逻辑表达式的值.设a=3,b=4,c=5.
(l)a+b>c&&b==c
(2)a11b+c&&b-c
(3)!(a>b)&&!c||l
(4)!(x=a)&&(y=b)&&0
(5)!(a+b)+c-l&&b+c/2
解:
(1)0;(2)1;(3)1;(4)0;(5)1;
5.5有一个函数:
xx<l
=
y(2x-lIWXGO
3x-llx^lO
写一段程序,输入x,输出y.
解:
Sinclude<stdio.h>
voidmain()
{intx,y;
printf("输入:x=");
scanf&x);
if(x<l)
y=x;
elseif(x<10)
y2*x-l;
else
y=3*x-ll;
printf("输出:y=");
printfC%d\nz,,y);
)
运行结果:
输入:x=T
输出:y=T
Pressanykeytocontinue
输入:x=5
输出:y=9
Pressanykeytocontinue
输入:x=12
输出:y=25
Pressanykeytocontinue
5.6给出一百分制成绩,要求输出成绩等级'A、B、'U、、E。90分以上为
A,80~89分为B,70~79为C,60~69为D,60分以下为E。
Sinclude<stdio.h>
voidmain()
{floatx;
printf(〃请输入学生成绩:〃);
scanf&x);
while(x>100|x<0)
{printf(〃输入错误,请重输:〃);
scanf&x);
}
if(100>x>90)
printf(〃相应等级是:A〃);
elseif(x>80)
printf(〃相应等级是:B〃);
elseif(x>70)
printf(〃相应等级是:C");
elseif(x>60)
printf("相应等级是:D〃);
else
printf(〃相应等级是:E〃);
)
运行结果:
请输入学生成绩:111
输入错误,请重输:88
相应等级是:B
Pressanykeytocontinue
5.7给一个不多于5位的正整数,要求:
1.求出它是几位数;2.分别输出每一位数;3.按逆序输出各位数字,如原数为321,应输出
123
Sinclude<stdio.h>
ttinclude<math.h>
voidmain()
{longintnum;
intge,shi,bai,qian,wan,place;
printf(〃请输入一个整数((T99999):〃);
scanf(,z%ld/z,&num);
if(num>9999)
place=5;
elseif(num>999)
place=4;
elseif(num>99)
placets;
elseif(num>9)
place=2;
else
place=l;
printf(〃位数二%d\n〃,place);
printf(〃每位数字为:〃);
wan=num/10000;
qian(int)(num-wan*10000)/I000;
bai=(int)(num-wan*10000-qian*1000)/100;
shi=(int)(num-wan*10000-qian*1000-bai*100)/10;
ge=(int)(num-wan*10000-qian*1000-bai*100-shi*10);
switch(place)
{case5:printf(〃%d,%d,%d,%d,%d〃,wan,qian,bai,shi,ge);
printf(〃\n反序函数为:〃);
printf(/z%d%d%d%d%d\nz,,ge,shi,bai,qian,wan);
break;
case4:printf(〃%d,%d,%d,%d〃,qian,bai,shi,ge);
printf(〃\n反序函数为:〃);
printf(/z%d%d%d%d\nz/,ge,shi,bai,qian);
break;
case3:printf(zz%d,%d,%d〃,bai,shi,ge);
printf(〃\n反序函数为:〃);
printf(,,%d%d%d\n/z,ge,shi,bai);
break;
case2:printf(z/%d,%dz,,shi,ge);
printf(〃\n反序函数为:〃);
printf(,,%d%d\nz/,ge,shi);
break;
case1:printf(〃%d〃,ge);
printf(〃\n反序函数为:〃);
printf(z,%d\n,z,ge);
break;
)
}
运行结果:
请输入一个整数(0~99999):98765
位数=5
每位数字为:9,8,7,6,5
反序函数为:56789
Pressanykeytocontinue
第六章
6.2输入一行字符,分别统计出其中英文字符、空格、数字和其他字符个数。
#include<stdio.h>
voidmain()
charc;
intlettes=0,space=O,digit-O,other=0;
while((c=getchar())!=,\n,)
if((c>=,a&&c<-z')||(c>=*A,&&c<=,Z'))
lettes++;
elseif(c==,')
space++;
elseif(c>='O'&&c<='9')
digit++;
else
other++;
)
printf("字母数:%d\n空格数:%d\n数字数:%d\n其他字符
数:为d\n”,lettes,space,digit,other);
)
运行结果:
abc123""
字母数:3
空格数:1
数字数:3
其他字符数:2
Pressanykeytocontinue
6.6输入所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立
方和等于该数本身。
#include<stdio.h>
voidmain()
(
inti,j,k,n;
printf(""narcissusnumbersare");
for(n=100;n<1000;n++)
(
i=n/100;
j=n/10-i*10;
k=n-i*100-j*10;
if(n==i*i*i+j*j*j+k*k*k)
printf('%d”,n);
)
printf('\n");
)
运行结果:
narcissusnumbersarel53370371407
Pressanykeytocontinue
6.7一个数如果恰好等于它的因子之和,这个数就称为“完数”。
#include<stdio.h>
voidmain()
(
intn,s,i;
for(n=2;n<1000;n++)
{s=0;
for(i=l;i<n;i++)
if((n%i)==0)
s=s+i;
if(s==n)
(
printf(z,%d,itsfactorsare”,n);
for(i=l;i<n;i++)
if(n%i==0)
printf(〃%d,〃,i);
printf(〃\n〃);
)
运行结果:
6,itsfactorsarel,2,3/
28,itsfactorsarel7247,14,
496,itsfactorsarel,2,4,8,16,31,62,124,248,
Pressanykeytocontinue
6.4求l!+2!+3!+…+20!
#include<stdio.h>
voidmainO
(
floats=0,t=l;
intn;
for(n=l;n<=20;n++)
(
t二t*n;
s=s+t;
)
printf(〃1!+2!+3!+...+20!=%e\n,z,s);
)
运行结果:
l!+2!+3!+...+20!=2.561327e+018
Pressanykeytocontinue
6.5
#include<stdio.h>
voidmain()
intnl=100,n2=50,r)3=10;
floatk;
floatsi0,s20,s3-0;
for(k=l;k<=nl;k++)
sl=sl+k;
for(k=l;k<=n2;k++)
s2=s2+k*k;
for(k=l;k<=n3;k++)
s3=s3+l/k;
printf(,,sum=%8.2f\n〃,sl+s2+s3);
)
运行结果:
sum=47977.93
Pressanykeytocontinue
第七章
7.2用选择法对10个整数进行排序
Sinclude<stdio.h>
voidmainO
inta[ll],i,j,k,x;
printf("enterdata:\nz,);
for(i=l;i<ll;i++)
printf("a[%d]=〃,i);
scanf&a[i]);
)
printf(〃\n〃);
printf(〃\nTheoringinalnumbers:\nz/);
for(i=l;i<ll;i++)
printfC%5d;
for(i=l;i<10;i++)
k=i;
for(j=i+l;j<=10;j++)
if(a[j]<a[k])k=j;
x=a[i];a[i]=a[k];a[k]=x;
printf(/z\nThesortednumbers:\n?/);
for(i=l;i<ll;i++)
printf("%5d",a[i]);
printf("\n");
)
运行结果:
enterdata:
a[l]=l
a⑵=5
a[3]=44
a[4]=23
a[5]=15
a[6]=18
a[7]=14
a[8]=36
a[9]=34
a[10]=32
Theoringinalnumbers:
154423151814363432
Thesortednumbers:
151415182332343644
Pressanykeytocontinue
7.3求一个3*3的整型矩阵对角线元素之和
Sinclude<stdio.h>
voidmain()
(
inta[3][3],sum=0;
inti,j:
printf("enterdata:\n");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d”,&a[i][j]);
for(i=0;i<3;i++)
sum=sum+a[i][i];
printf(//sum=%6d//,sum);
)
运行结果:
enterdata:
134567891
sum=8Pressanykeytocontinue
7.4有一个已排序的数组,今输入一个数,要求按原来的排序规则将它插入数组
中
按升序排序
ttinclude<stdio.h>
voidmain()
(
inta[ll]={l,2,3,4,5,50,60,70,80,100};
intn,i,j;
printf(,zarraya:\n〃);
for(i=0;i<10;i++)
printf(,z%5d,z,a[i]);
printf(〃\n〃);
printf(zzintsertdata:\n,z);
scanf&n);
if(n>a[9])
a[10]=n;
else
(
for(i=0;i<10;i++)
if(a[i]>n)
(
for(j=9;j>=i;j)
a[j+l]=a[j];
a[i]=n;
break;
)
)
printf(z,nowarraya:\n〃);
for(i=0;i<ll;i++)
printf(〃%5d〃,a[i]);
)
运行结果:
arraya:
1234550607080100
intsertdata:
33
nowarraya:
123453350607080lOOPressanykeyto
continue
7.6输出以下的杨辉三角形(要求输出10行)
1
11
121
1331
14641
Sinclude<stdio.h>
#definenil
voidmain()
inti,j,a[n][n];
for(i=l;i<n;i++)
(
a[i][1]=1;
a[i][i]=l;
)
for(i=3;i<n;i++)
for(j=2;j<=i-l;j++)
a[i-][j]=a[i-l][j-l]+a[i-l][j];
for(i=l;i<n;i++)
{
for(j=l;j<=i;j++)
printf("%6d",a[i][j]);
printf("\n");
)
printf(〃\n");
运行结果:
1
11
121
1331
14641
15101051
1615201561
172135352171
18285670562881
193684126126843691
Pressanykeytocontinue
第八章
8.2求方程ax*x+bx+c=0的梗,用3个函数分别求当b*b-4ab大于0、
等于0和小于。时的根,并输出结果。从主函数输入a,b,c的值。
源代码:
ttinclude"stdio.h〃
Sinclude"math.h〃
floatdisc,p,q,xl,x2;
voidmain()
{
voidgreater_than_zero(float,float);
voidequal_to_zero(float,float);
voidsmaller_than_zero(float,float);
floata,b,c;
printf(〃\n输入a,b,c:〃);
scanfC%f,%f,%fz/,&a,&b,&c);
printf(〃方程:%5.2f*x*x+%5.2f*x+%5.2f=0z,,a,b,c);
disc=b*b-4*a*c;
printf(〃\n结果:\n〃);
if(disc>0)
(
greater_than_zero(a,b);
printf(/,xl=%f\t\tx2=%f\n,/,xl,x2);
}
elseif(disc==0)
{
equal_to_zero(a,b);
printf(,,xl=%f\t\tx2=%f\nz/,xl,x2);
)
else
{
smaller_than_zero(a,b);
printf(z,xl=%f+fi\tx2=%f-%fi\nz,,p,q,p,q);
voidgreater_than_zero(floata,floatb)
(
xl=(-b+sqrt(disc))/(2*a);
x2:(-b-sqrt(disc))/(2*a);
)
voidequal_to_zero(floata,floatb)
{
xl=x2=(-b)/(2*a);
)
voidsmaller_than_zero(floata,floatb)
p二-b/(2*a);
q=sqrt(-disc)/(2*a);
运行结果:
输入a,b,c:2,5,l
方程:2.00*x*x+5.00*x+1.00=0
结果:
xl=-0.219224x2=-2.280777
Pressanykeytocontinue
8.3编写一个判素数的函数,在主函数输入一个整数,输出是否素数
的信息。
源代码:
Sinclude"stdio.h〃
voidmain()
(
intprime(int);
intn;
printf(〃\n输入一个数:〃);
scanf(〃刎〃,&n);
if(prime(n))
printf(,?\n是素数\n〃);
else
printf(〃\n不是素数\n〃);
}
intprime(intn)
(
intflag=l,i;
for(i=2;i<n/2&&flag=l;i++)
if(n%i==0)
flag=0;
return(flag);
)
运行结果:
输入一个数:47
是素数
Pressanykeytocontinue
8.4编写一个函数,使给定的一个二维数组(3*3)转置,即行列换行。
源代码
^include"stdio.h"
voidmain()
(
inti,j,t,s[3][3];
printf("inputs:\n");
for(i0;i<3;i++)
for(j=0;j<3;j++)
scanf(zz%d,%d”,&s[i][j]);
for(i=0;i<3;i++)
(
for(j=0;j<3;j++)
printf("舫d",s[i][j]);
printf("\rT);
)
for(i-0;i<3;i++)
for(j=i+l;j<3;j++)
(
t=s[i][j];
s[j][i]=t;
}
for(i=0;i<3;i++)
(
for(j=0;j<3;j++)
printf("%5d",s[i][j]);
printf('\n");
}
)
运行结果:
inputs:
123
456
789
123
456
789
147
258
369
Pressanykeytocontinue
8.5编写一个函数,输入一个字符串按反序存放,在主函数输入和输
出字符串
源代码
Sinclude"stdio.h〃
Sinclude<string.h>
voidmain()
(
voidfx(chars[]);
chars[100];
printf(z,inputstrint:\nz,);
gets(s);
fx(s);
puts(s);
voidfx(chars[])
(
chart;
inti,j;
for(i=0,j=strlen(s);i<(strlen(s)/2);i++,j--)
(
t=s[i];
s[j-l]=t;
}
运行结果:inputstrint:
abcdefg
gfedcba
Pressanykeytocontinue
第9章
9.2输入两个整数,求他们相除的余数。用带参数的宏来实现
源代码:
Sinclude<stdio.h>
SdefineXCYS(a,b)((a)%(b))
voidmain()
{
inta,b;
printf(〃输入两个整数a,b:〃);
scanf(〃%d,%dz,,&a,&b);
printf(〃他们相除的余数是%d\n〃,XCYS(a,b));
运行结果:
输入两个整数a,b:9,2
他们相除的余数是1
Pressanykeytocontinue
9.8分别用函数和参数的宏,从3个数中找出最大数
(1)源代码:
#include<stdio.h>
voidmain()
(
intmax(intx,inty);
inta,b,c;
printf(〃输入3个整数a,b,c:〃);
scanf%d,%d〃,&a,&b,&c);
printf("MAX二%d\n〃,max((a,b),c));
)
max(intx,inty)
intz;
z=x>y?x:y;
return(z);
运行结果:
输入3个整数a,b,c:2,4,7
MAX=7
Pressanykeytocontinue
(2)源代码:
Sinclude<stdio.h>
#defineMAX(a,b)((a)>(b)?(a):(b))
voidmain()
inta,b,c;
printf(〃输入3个整数a,b,c:〃);
scanf(〃%d,%d,%d〃,&a,&b,&c);
printf("MAX=%d\n〃,MAX(MAX(a,b),c));
运行结果:
输入3个整数a,b,c:3,6,8
MAX=8
Pressanykeytocontinue
10.3输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后的一
个数对换。编写3个函数:(1)输入10个数(2)进行处理(3)输出10个数
源程序:
#include<stdio.h>
voidmain()
{
voidinput(int*);
voidmax_min_value(int*);
voidoutput(int*);
intnumber[10];
input(number);
max_min_value(number);
output(number);
voidinput(intnumber[])
inti;
printf(〃输入10个数:〃);
for(i=0;i<10;i++)
scanf(z,%dz,,6number[i]);
}
voidmax_min_value(intnumber[])
(
int*max,*min,*p,temp;
max二min=number;
for(p=number+l;p<number+10;p++)
if(*p>*max)
max=p;
elseif(*p〈*min)
min=p;
temp=number[0];number[0]=*min;*min=temp;
temp=number[9];number[9]=*max;*max=temp;
return;
)
voidoutput(intnumber[])
(
int*p;
printf(〃输出:”);
for(p=number;p<number+10;p++)
printf(z,%d",*p);
printf("\n");
)
运行结果:
(1)
输入10个数:22195236478
输出/p>
Pressanykeytocontinue
(2)
输入10个数:51892346789
输出/p>
Pressanykeytocontinue
10.11在主函数中输入10个等长的字符串。用另一个函数对它们进行排序。然
后在主函数输出这10个已排好序的字符串。
源程序:
#include"stdio.h"
#include"string.h"
voidmain()
voidsort(char(*p)[6]);
inti;
charstr[10][6];
char(*p)[6];
printf(〃输入10个字符串\n〃);
for(i=0;i<10;i++)
scanfstr[i]);
p=str;
sort(p);
printf(〃排序号的字符串\n〃);
for(i=0;i<10;i++)
printf(,,%s\n//,str[i]);
)
voidsort(char(*s)[6])
(
inti,j;
chartemp[6],*t=temp;
for(i=0;i<9;i++)
for(j=0;j<9-i;j++)
if(strcmp(s[j],s[j+l])>0)
(
strcpy(t,s[j]);
strcpy(s[j],s[+j+l]);
strcpy(s[j+l],t);
运行结果:
输入10个字符串
aaaaa
sssss
ddddd
eeeee
qqqqq
WWW
zzzzz
ggggg
hhhhh
yyyyy
排序号的字符串
aaaaa
ddddd
eeeee
ggggg
hhhhh
qqqqq
sssss
wwwww
yyyyy
zzzzz
Pressanykeytocontinue
10.18编写一个程序,打入月份号,输出该月的英文用名。
源代码:
#include<stdio.h>
voidmain()
(
char*month_name[13]={/zi1legal
month,January,February,March,April,May,June,July,Augu
st","September","October","November","December"};
intn;
printf(z,inputmonth:z,);
scanf(〃%d〃,&n);
if((n<=12)&&(n>=l))
printf(/zItis%s.\n,z,*(month_name+n));
else
printf(z,Itiswrong.\n〃);
}运行结果:
(1)
inputmonth:2
ItisFebruary.
Pressanykeytocontinue
(2)
inputmonth:8
ItisAugust.
Pressanykeytocontinue
#include<conio.h>
#include<stdio.h>
#defineN20
voidfun(int*a,intm)
inti,n=0,*p;
for(i=l,p=a;p〈a+m;p++,i++)
{n+=i;
*p=n;
)
for(pa;p<a+m;p++)
printf(级5d〃,*p);
}
mainO
(
intk=6;
intb[N];
fun(b,k);
用函数指针变量作参数,求最大值、最小值和两数之和
Sinclude"stdio.h〃
voidmainO
(
inta,b,max(int,int),
min(int,int),add(int,int);
voidprocess(int,int,int(*fun)());
printf(〃输入两个数:〃);
scanf(〃%d,%d〃,&a,&b);
process(a,b,max);
process(a,b,min);
process(a,b,add);
)
voidprocess(intx,inty,int(*fun)0)
(
intresult;
result、(*fun)(x,y);
printfresult);
)
max(intx,inty)
(
printf("max二〃);
return(x>y?x:y);
}
min(intx,inty)
(
printf(〃min=〃);
return(x<y?x:y);
add(intx,inty)
(
printf(〃sum=〃);
return(x+y);
用函数指针变量作参数,求两数之和,之差,之乘,之除
源代码:
ttinclude"stdio.h〃
voidmain()
(
inta,b,add(int,int),ajj(int,int),acc(int,int),ac(int,int);
voidprocess(int,int,int(*fun)());
printf(〃输入两个数:〃);
scanf(,,%d,%d〃,&a,&b);
process(a,b,add);
process(a,b,ajj);
process(a,b,acc);
process(a,b,ac);
}
voidprocess(intx,inty,int(*fun)())
(
intresult;
result=(*fun)(x,y);
printfC%d\n,z,result);
)
add(intx,inty)
(
printf(〃相加=〃);
return(x+y);
)
ajj(intx,inty)
(
printf(〃相减=〃);
return(x-y);
}
acc(intx,inty)
(
printf(〃相乘=");
return(x*y);
)
ac(intx,inty)
printf("相除=");
return(x/y);
)
运行结果:
输入两个数:8,4
相加=12
相减=4
相乘=32
相除=2
Pressanykeytocontinue
1L1定义一个结构体变量(包括年月日)。计算该日在本年中第几天?注意闰年
问题
源代码:
#include<stdio.h>
struct
(
intyear;
intmonth;
intday;
}date;
voidmain()
(
inti,days;
intday_tab[13]={0,31,28,31,30,31,30,31z31,30,31,30,31};
printf("输入年月日
scanf("%d,%d,%cT,&date.year,&date.month,&date.day);
days=O;
for(i=l;i<date.month;i++)
days=days+day_tab[i];
days=days+date.day;
if((date.year%4==0&&date.year%100!=011date.year%400==0)&&
date.month>=3)
days=days+l;
printf("输出结果:");
printf("%d/%disthe%dthdayin%d.\n",date.month,date.day,days,date.year);
}
运行结果:
(1)
输入年月日:2006,10,l
输出结果:10/1isthe274thdayin2006.
Pressanykeytocontinue
⑵
输入年月曰:2010,5,26
输出结果:%26isthe146thdayin2010.
Pressanykeytocontinue
11.3编写一个函数print,打印一个学生的成绩数组,该数组中有5个学生的数据
计录,每个记录包括num;name;score[3];用主函数记录这些数据,用print函数输
出这些记录
源代码:
#include<stdio.h>
WdefineN5
structstudent
(
charnum[6];
charname[8];
intscore[4];
}stu[N];
voidmain()
(
voidprint(structstudentstu[6]);
inti,j;
for(i=0;i<N;i++)
(
printf("\n输入学生信息%d:\n",i+l);
printf("学号
scanf("%s",stu[i].num);
printf("姓名门;
scanf("%s",stu[i].name);
for(j=0;j<3;j++)
(
printf("成绩%d:",j+l);
scanf("%d"z&stu[i].score[j]);
}
printf("\n");
}
printf("输出结果");
print(stu);
}
voidprint(structstudentstu[6])
(
inti,j;
printf("\n学号姓名成绩1成绩2成绩3\n");
for(i=0;i<N;i++)
(
printf("%5s%10s"zstu[i].num,stu[i].name);
for(j=0;j<3;j++)
printf("%9d”,stu[i].score[j]);
printf("\n");
}
)
运行结果:
输入学生信息1:
学号.:101
姓名:li
成绩1:99
成绩2:99
成绩3:99
输入学生信息2:
学号.:102
姓名:ma
成绩1:85
成绩2:85
成绩3:85
输入学生信息3:
学号.:103
姓名:wu
成绩1:90
成绩2:90
成绩3:90
输入学生信息4:
学号.:104
姓名:hu
成绩1:80
成绩2:80
成绩3:80
输入学生信息5:
学号.:105
姓名:an
成绩1:75
成绩2:75
成绩3:75
输出结果
学号姓名成绩1成绩2成绩3
101li999999
102ma858585
103wu909090
104hu808080
105an757575
Pressanykeytocontinue
百钱买百鸡,鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;问鸡翁、母、雏各儿何?
程序:
#include<stdio.h>
voidmain()
{intx,y,z;
for(x=0;x<=19;x++)
for(y=0;y<=33;y++)
{z=100-x-y;
if(15*x+9*y+z==300)
printf("鸡翁=%d鸡母=%d鸡雏=%d\n”,x,y,z);)
)
运行结果:
鸡翁=0鸡母=鸡雏=25
鸡翁=4鸡母=鸡雏=18
鸡翁=8鸡母=鸡雏=11
鸡翁=12鸡母=鸡雏=4
Pressanykeytocontinue
1、某班有3个学生,每个学生3门功课,输入成绩,计算每个学生的总分,平均分并输出
成绩。
程序:
#include<stdio.h>
voidmain()
{
ints[3][5],i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf&s[i][j]);
printf(〃数学物理英语总分平均\n〃);
for(i=0;i<3;i++)
(
s[i][3]=s[i][4]=0;
for(j=0;j<3;j++)
s[i][3]+=s[i][j]:
s[i][4]=s[i][3]/3;
)
for(i=0;i<3;i++)
(
for(j=0;j<5;j++)
printf(级d\t",s[i][j]);
printf('\n");
)
运行结果;
111
222
333
数学物理英语总分平均
11131
22262
33393
Pressanykeytocontinue
#include<stdio.h>
voidmain()
ints[5],j;
for(j=0;j<3;j++)
scanf("%d",&s[j]);
(
s[3]=s[4]=0;
for(j=0;j<3;j++)
s[3]+=s[j];
s[4]=s⑶a;
)
printf("数学\t物理\t英语\t总分\t平均\n");
for(j=0;j<5;j++)
printf("%d\t",s[j]);
printf("\n");
)
}
运行结果;
111
数学物理英语总分平均
11131
Pressanykeytocontinue
做一个循环显示菜单,输入相应数值,会显示相应的文字。
菜单
******************
1输入数据
2计算
3排序
4输出
0退出
******************
请输入你的选择(0~4)
#include<stdio.h>
voidmain()
intn=l;
while(n!=0)
printf("\t\t菜单\n");
pHntf(”\t*******************\n"),
printf("\t1.输入数据\n");
printf("\t2.计算\n“);
printf("\t3.排序\n“);
printf("\t4.输出\n“);
printf("\t0,退出\n“);
printf("\t*******************\n”).
printf("\t请输入你的选择(0~4):");
scanf("%d"z&n);
switch(n)
casel:printf("输入数据\n”);break;
case2:printf("计算\n");break;
case3:printf("排序\n");break;
case4:printf("输入\n");break;
caseO:break;
default:printf("error\n");
)
)
}
#include<stdio.h>
voidmain()
intn=l;
printf(〃\t\t菜单\n〃);
printf(〃\t*******************\n〃);
printf(,z\t1.输入数据\n〃);
printf(〃\t2.计算\n〃);
printf(,z\t3.排序\n〃);
printf(〃\t4.输出\n〃);
printf(〃\t0.退出\n〃);
printf(〃\t*******************\n〃);
printf(〃\t请输入你的选择(0~4):〃);
scanf&n);
if(n=0)
printf(〃输入数据\n〃);
elseif(n=l)
printf(〃计算\n〃);
elseif(n==2)
printf(〃排序\n〃);
elseif(n=3)
printf(〃输入\n〃);
else
printf(〃退出\n〃);
做一个循环显示菜单,输入相应数值,进行计算输出并会显示相应的文字。
菜单
******************
1输入数据
2计算
3输出
0退出
******************
源代码:
(1)
#include<stdio.h>
voidmain()
intn=l;
while(n!=0)
ints[3][5],i,j;
printf("\t\t菜单\n");
printf("\t*******************\n〃);
printfC\t1.输入数据\n");
printf("\t2.进行计算\n");
printf("\t3.输出\n");
printf("\t0.退出\n");
printf(''\t*******************\n'');
printf("\t请输入你的选择(0~3):”);
scanf&n);
switch(n)
case1:printf("输入数据\rT);
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf&s[i][j]);
break;
case2:printf(“计算\n");
for(i=0;i<3;i++)
s[i][3]=s[i][4]=0;
for(j=0;j<3;j++)
s[i][4]=s[i][3]/3;
break;
case3:printf("输出结果\n");
printf("数学物理英语总分平均\n");
for(i=0;i<3;i++)
for(j=0;j<5;j++)
printfs[i][j]);
printf('\n");
break;
case0:break;
default:printf(z/error\nz/);
运行结果:
菜单
1.输入数据
2.进行计算
3输出
0.退出
请输入你的选择(0~3):1
输入数据
333
888
444
菜单
*******************
1.输入数据
2.进行计算
3.输出
0.退出
请输入你的选择(0~3):2
计算
菜单
1.输入数据
2.进行计算
3.输出
0.退出
请输入你的选择(0~3):3
输出结果
数学物理英语总分平均
33393
888248
444124
菜单
*******************
1.输入数据
2.进行计算
3.输出
0.退出
请输入你的选择(0~3):0
Pressanykeytocontinue
(2)
#include<stdi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- can't-couldn't的区别与用法
- 湖北省黄冈市季黄梅县2024届数学八年级下册期末达标测试试题含解析
- 江苏省南京市2024届八年级数学第二学期期末教学质量检测模拟试题含解析
- 2023年陕西省延安市子长市小升初语文试卷
- 中建深浅基坑施工结构与支护设计优化汇报
- 生产加工项目投资估算分析报告
- 部编版道德与法治六年级下册《学会宽容》教案设计
- DB33-T 899-2021 山区高速公路勘察设计规范
- 辽宁省鞍山市2024年高一数学第二学期期末教学质量检测模拟试题含解析
- 四川省泸州泸县第五中学2024年数学高一下期末教学质量检测试题含解析
- 消防移交流程
- 砂石料加工场施工方案两篇
- Few、afew、little、alittle的区别精编版
- 喜剧小品剧本《观光》
- 华为性格测试攻略
- 部编新版二年级语文下册复习计划(2篇)
- 通道、涵洞、防护及排水工程施工方案
- 浅谈傣族孔雀舞的形态流变
- 房地产成本测算表(万科参考)
- 和谐家庭教育指导师志愿者家长培训和咨询制度
- 概率论与数理统计课程设计_.doc
评论
0/150
提交评论