版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第四章
4.8設(shè)圓半徑r=1.5,圓柱高h(yuǎn)=3,求圓周長、圓面積、圓球表面積、圓
球體積、圓柱體積。用scanf輸入數(shù)據(jù),輸出計算結(jié)果,輸出時要求
有文字說明,取小數(shù)點后2位數(shù)字。
#defineP3.1415926
Sinclude<stdio.h>
voidmain()
{floath,r,1,s,sq,vq,vz;
printf(“請輸入圓半徑r,圓柱高h(yuǎn):〃);
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);
運行結(jié)果:
請輸入圓半徑r,圓柱高h(yuǎn):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位小數(shù)。
Sinclude<stdio.h>
voidmain()
{floatc,f;
printf("請輸入一個華氏溫度:");
scanf&f);
c=5.0/9.0*(f-32);
printf("攝氏溫度為%5.2f\n",c);
)
運行結(jié)果:
請輸入一個華氏溫度:2O
攝氏溫度為-6.67
Pressanykeytocontinue
4.10編程序,用getchar函數(shù)讀入兩個字符給cl,c2,然后分別用
putchar函數(shù)和printf函數(shù)輸出這兩個字符。思考以下問題:
(1)變量cl、c2應(yīng)定義為字符或整型?或二者皆可?
(2)要求輸出cl和c2值的ASCII碼,應(yīng)如何處理?用putchar函數(shù)
還是printf函數(shù)?
(3)整形變量與字符變量是否在任何情況下都可以互相代替?如:
charcl,c2;與intel,c2是否無條件的等價?
(1)
Winclude<stdio.h>
voidmain()
(
charcl,c2;
printf(〃請輸入兩個字符cl,c2:〃);
cl=getchar();
c2=getchar();
printf(〃用putchar語句輸出結(jié)果〃);
putchar(cl);
putchar(c2);
printf("\n");
printf("用printf語句輸出結(jié)果”);
printf(//%c%c\n,z,cl,c2);
運行結(jié)果:
請輸入兩個字符cl,c2:as
用putchar語句輸出結(jié)果as
用printf語句輸出結(jié)果as
Pressanykeytocontinue
⑵
Sinclude<stdio.h>
voidmain()
(
charcl,c2;
printf(〃請輸入兩個字符cl,c2:〃);
scanf,&cl,&c2);
cl=getchar();
c2=getchar();
printf(〃按ASCH碼輸出結(jié)果為:\n〃);
printf(〃%d,%d\n,z,cl,c2);
)
運行結(jié)果:
請輸入兩字符cl,c2:a,s
按ASCII碼輸出結(jié)果為:
97,115
Pressanykeytocontinue
⑶
#include<stdio.h>
voidmain()
{intcl,c2;
printf("請輸入兩個整數(shù)cl,c2:");
scanf("%d%d”,&cl,&c2);
printf("按字符輸出結(jié)果:\n");
printf(,/%c%c\nz,,cl,c2);
printf("按ASCH碼輸出結(jié)果為:\n");
printf(//%c%c\n,,,cl,c2);
)
運行結(jié)果:
請入兩個整數(shù)cl,c2:97,98
按字符輸出結(jié)果:
a,b
按ASCII碼輸出結(jié)果為:
97,98
Pressanykeytocontinue
#include<stdio.h>
voidmain()
{charcl,c2;
intal,a2;
printf(〃請輸入兩個字符cl,c2:〃);
scanf(,,%c%c”,&cl,&c2);
al=cl;
a2=c2;
printf(〃按字符輸出結(jié)果:\n〃);
printf(〃%c%c\n〃,al,a2);
printf(〃按整數(shù)輸出結(jié)果為:\n〃);
printf(,z%d%d\nz,,cl,c2);
運行結(jié)果:
請輸入兩個字符cl,c2:ab
按字符輸出結(jié)果:
ab
按整數(shù)輸出結(jié)果為:
9798
Pressanykeytocontinue
第五章
5.3寫出下列各邏輯表達(dá)式的值.設(shè)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有一個函數(shù):
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);
)
運行結(jié)果:
輸入: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(〃請輸入學(xué)生成績:〃);
scanf&x);
while(x>100|x<0)
{printf(〃輸入錯誤,請重輸:〃);
scanf&x);
}
if(100>x>90)
printf(〃相應(yīng)等級是:A〃);
elseif(x>80)
printf(〃相應(yīng)等級是:B〃);
elseif(x>70)
printf(〃相應(yīng)等級是:C");
elseif(x>60)
printf("相應(yīng)等級是:D〃);
else
printf(〃相應(yīng)等級是:E〃);
)
運行結(jié)果:
請輸入學(xué)生成績:111
輸入錯誤,請重輸:88
相應(yīng)等級是:B
Pressanykeytocontinue
5.7給一個不多于5位的正整數(shù),要求:
1.求出它是幾位數(shù);2.分別輸出每一位數(shù);3.按逆序輸出各位數(shù)字,如原數(shù)為321,應(yīng)輸出
123
Sinclude<stdio.h>
ttinclude<math.h>
voidmain()
{longintnum;
intge,shi,bai,qian,wan,place;
printf(〃請輸入一個整數(shù)((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(〃位數(shù)二%d\n〃,place);
printf(〃每位數(shù)字為:〃);
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反序函數(shù)為:〃);
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反序函數(shù)為:〃);
printf(/z%d%d%d%d\nz/,ge,shi,bai,qian);
break;
case3:printf(zz%d,%d,%d〃,bai,shi,ge);
printf(〃\n反序函數(shù)為:〃);
printf(,,%d%d%d\n/z,ge,shi,bai);
break;
case2:printf(z/%d,%dz,,shi,ge);
printf(〃\n反序函數(shù)為:〃);
printf(,,%d%d\nz/,ge,shi);
break;
case1:printf(〃%d〃,ge);
printf(〃\n反序函數(shù)為:〃);
printf(z,%d\n,z,ge);
break;
)
}
運行結(jié)果:
請輸入一個整數(shù)(0~99999):98765
位數(shù)=5
每位數(shù)字為:9,8,7,6,5
反序函數(shù)為:56789
Pressanykeytocontinue
第六章
6.2輸入一行字符,分別統(tǒng)計出其中英文字符、空格、數(shù)字和其他字符個數(shù)。
#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("字母數(shù):%d\n空格數(shù):%d\n數(shù)字?jǐn)?shù):%d\n其他字符
數(shù):為d\n”,lettes,space,digit,other);
)
運行結(jié)果:
abc123""
字母數(shù):3
空格數(shù):1
數(shù)字?jǐn)?shù):3
其他字符數(shù):2
Pressanykeytocontinue
6.6輸入所有的“水仙花數(shù)”,所謂“水仙花數(shù)”是指一個3位數(shù),其各位數(shù)字立
方和等于該數(shù)本身。
#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");
)
運行結(jié)果:
narcissusnumbersarel53370371407
Pressanykeytocontinue
6.7一個數(shù)如果恰好等于它的因子之和,這個數(shù)就稱為“完數(shù)”。
#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〃);
)
運行結(jié)果:
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);
)
運行結(jié)果:
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);
)
運行結(jié)果:
sum=47977.93
Pressanykeytocontinue
第七章
7.2用選擇法對10個整數(shù)進(jìn)行排序
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");
)
運行結(jié)果:
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);
)
運行結(jié)果:
enterdata:
134567891
sum=8Pressanykeytocontinue
7.4有一個已排序的數(shù)組,今輸入一個數(shù),要求按原來的排序規(guī)則將它插入數(shù)組
中
按升序排序
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]);
)
運行結(jié)果:
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");
運行結(jié)果:
1
11
121
1331
14641
15101051
1615201561
172135352171
18285670562881
193684126126843691
Pressanykeytocontinue
第八章
8.2求方程ax*x+bx+c=0的梗,用3個函數(shù)分別求當(dāng)b*b-4ab大于0、
等于0和小于。時的根,并輸出結(jié)果。從主函數(shù)輸入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結(jié)果:\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);
運行結(jié)果:
輸入a,b,c:2,5,l
方程:2.00*x*x+5.00*x+1.00=0
結(jié)果:
xl=-0.219224x2=-2.280777
Pressanykeytocontinue
8.3編寫一個判素數(shù)的函數(shù),在主函數(shù)輸入一個整數(shù),輸出是否素數(shù)
的信息。
源代碼:
Sinclude"stdio.h〃
voidmain()
(
intprime(int);
intn;
printf(〃\n輸入一個數(shù):〃);
scanf(〃刎〃,&n);
if(prime(n))
printf(,?\n是素數(shù)\n〃);
else
printf(〃\n不是素數(shù)\n〃);
}
intprime(intn)
(
intflag=l,i;
for(i=2;i<n/2&&flag=l;i++)
if(n%i==0)
flag=0;
return(flag);
)
運行結(jié)果:
輸入一個數(shù):47
是素數(shù)
Pressanykeytocontinue
8.4編寫一個函數(shù),使給定的一個二維數(shù)組(3*3)轉(zhuǎn)置,即行列換行。
源代碼
^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");
}
)
運行結(jié)果:
inputs:
123
456
789
123
456
789
147
258
369
Pressanykeytocontinue
8.5編寫一個函數(shù),輸入一個字符串按反序存放,在主函數(shù)輸入和輸
出字符串
源代碼
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;
}
運行結(jié)果:inputstrint:
abcdefg
gfedcba
Pressanykeytocontinue
第9章
9.2輸入兩個整數(shù),求他們相除的余數(shù)。用帶參數(shù)的宏來實現(xiàn)
源代碼:
Sinclude<stdio.h>
SdefineXCYS(a,b)((a)%(b))
voidmain()
{
inta,b;
printf(〃輸入兩個整數(shù)a,b:〃);
scanf(〃%d,%dz,,&a,&b);
printf(〃他們相除的余數(shù)是%d\n〃,XCYS(a,b));
運行結(jié)果:
輸入兩個整數(shù)a,b:9,2
他們相除的余數(shù)是1
Pressanykeytocontinue
9.8分別用函數(shù)和參數(shù)的宏,從3個數(shù)中找出最大數(shù)
(1)源代碼:
#include<stdio.h>
voidmain()
(
intmax(intx,inty);
inta,b,c;
printf(〃輸入3個整數(shù)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);
運行結(jié)果:
輸入3個整數(shù)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個整數(shù)a,b,c:〃);
scanf(〃%d,%d,%d〃,&a,&b,&c);
printf("MAX=%d\n〃,MAX(MAX(a,b),c));
運行結(jié)果:
輸入3個整數(shù)a,b,c:3,6,8
MAX=8
Pressanykeytocontinue
10.3輸入10個整數(shù),將其中最小的數(shù)與第一個數(shù)對換,把最大的數(shù)與最后的一
個數(shù)對換。編寫3個函數(shù):(1)輸入10個數(shù)(2)進(jìn)行處理(3)輸出10個數(shù)
源程序:
#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個數(shù):〃);
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");
)
運行結(jié)果:
(1)
輸入10個數(shù):22195236478
輸出/p>
Pressanykeytocontinue
(2)
輸入10個數(shù):51892346789
輸出/p>
Pressanykeytocontinue
10.11在主函數(shù)中輸入10個等長的字符串。用另一個函數(shù)對它們進(jìn)行排序。然
后在主函數(shù)輸出這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);
運行結(jié)果:
輸入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〃);
}運行結(jié)果:
(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);
用函數(shù)指針變量作參數(shù),求最大值、最小值和兩數(shù)之和
Sinclude"stdio.h〃
voidmainO
(
inta,b,max(int,int),
min(int,int),add(int,int);
voidprocess(int,int,int(*fun)());
printf(〃輸入兩個數(shù):〃);
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);
用函數(shù)指針變量作參數(shù),求兩數(shù)之和,之差,之乘,之除
源代碼:
ttinclude"stdio.h〃
voidmain()
(
inta,b,add(int,int),ajj(int,int),acc(int,int),ac(int,int);
voidprocess(int,int,int(*fun)());
printf(〃輸入兩個數(shù):〃);
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);
)
運行結(jié)果:
輸入兩個數(shù):8,4
相加=12
相減=4
相乘=32
相除=2
Pressanykeytocontinue
1L1定義一個結(jié)構(gòu)體變量(包括年月日)。計算該日在本年中第幾天?注意閏年
問題
源代碼:
#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("輸出結(jié)果:");
printf("%d/%disthe%dthdayin%d.\n",date.month,date.day,days,date.year);
}
運行結(jié)果:
(1)
輸入年月日:2006,10,l
輸出結(jié)果:10/1isthe274thdayin2006.
Pressanykeytocontinue
⑵
輸入年月曰:2010,5,26
輸出結(jié)果:%26isthe146thdayin2010.
Pressanykeytocontinue
11.3編寫一個函數(shù)print,打印一個學(xué)生的成績數(shù)組,該數(shù)組中有5個學(xué)生的數(shù)據(jù)
計錄,每個記錄包括num;name;score[3];用主函數(shù)記錄這些數(shù)據(jù),用print函數(shù)輸
出這些記錄
源代碼:
#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輸入學(xué)生信息%d:\n",i+l);
printf("學(xué)號
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("輸出結(jié)果");
print(stu);
}
voidprint(structstudentstu[6])
(
inti,j;
printf("\n學(xué)號姓名成績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");
}
)
運行結(jié)果:
輸入學(xué)生信息1:
學(xué)號.:101
姓名:li
成績1:99
成績2:99
成績3:99
輸入學(xué)生信息2:
學(xué)號.:102
姓名:ma
成績1:85
成績2:85
成績3:85
輸入學(xué)生信息3:
學(xué)號.:103
姓名:wu
成績1:90
成績2:90
成績3:90
輸入學(xué)生信息4:
學(xué)號.:104
姓名:hu
成績1:80
成績2:80
成績3:80
輸入學(xué)生信息5:
學(xué)號.:105
姓名:an
成績1:75
成績2:75
成績3:75
輸出結(jié)果
學(xué)號姓名成績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);)
)
運行結(jié)果:
雞翁=0雞母=雞雛=25
雞翁=4雞母=雞雛=18
雞翁=8雞母=雞雛=11
雞翁=12雞母=雞雛=4
Pressanykeytocontinue
1、某班有3個學(xué)生,每個學(xué)生3門功課,輸入成績,計算每個學(xué)生的總分,平均分并輸出
成績。
程序:
#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(〃數(shù)學(xué)物理英語總分平均\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");
)
運行結(jié)果;
111
222
333
數(shù)學(xué)物理英語總分平均
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("數(shù)學(xué)\t物理\t英語\t總分\t平均\n");
for(j=0;j<5;j++)
printf("%d\t",s[j]);
printf("\n");
)
}
運行結(jié)果;
111
數(shù)學(xué)物理英語總分平均
11131
Pressanykeytocontinue
做一個循環(huán)顯示菜單,輸入相應(yīng)數(shù)值,會顯示相應(yīng)的文字。
菜單
******************
1輸入數(shù)據(jù)
2計算
3排序
4輸出
0退出
******************
請輸入你的選擇(0~4)
#include<stdio.h>
voidmain()
intn=l;
while(n!=0)
printf("\t\t菜單\n");
pHntf(”\t*******************\n"),
printf("\t1.輸入數(shù)據(jù)\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("輸入數(shù)據(jù)\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.輸入數(shù)據(jù)\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(〃輸入數(shù)據(jù)\n〃);
elseif(n=l)
printf(〃計算\n〃);
elseif(n==2)
printf(〃排序\n〃);
elseif(n=3)
printf(〃輸入\n〃);
else
printf(〃退出\n〃);
做一個循環(huán)顯示菜單,輸入相應(yīng)數(shù)值,進(jìn)行計算輸出并會顯示相應(yīng)的文字。
菜單
******************
1輸入數(shù)據(jù)
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.輸入數(shù)據(jù)\n");
printf("\t2.進(jìn)行計算\n");
printf("\t3.輸出\n");
printf("\t0.退出\n");
printf(''\t*******************\n'');
printf("\t請輸入你的選擇(0~3):”);
scanf&n);
switch(n)
case1:printf("輸入數(shù)據(jù)\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("輸出結(jié)果\n");
printf("數(shù)學(xué)物理英語總分平均\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/);
運行結(jié)果:
菜單
1.輸入數(shù)據(jù)
2.進(jìn)行計算
3輸出
0.退出
請輸入你的選擇(0~3):1
輸入數(shù)據(jù)
333
888
444
菜單
*******************
1.輸入數(shù)據(jù)
2.進(jìn)行計算
3.輸出
0.退出
請輸入你的選擇(0~3):2
計算
菜單
1.輸入數(shù)據(jù)
2.進(jìn)行計算
3.輸出
0.退出
請輸入你的選擇(0~3):3
輸出結(jié)果
數(shù)學(xué)物理英語總分平均
33393
888248
444124
菜單
*******************
1.輸入數(shù)據(jù)
2.進(jìn)行計算
3.輸出
0.退出
請輸入你的選擇(0~3):0
Pressanykeytocontinue
(2)
#include<stdi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度智能車位銷售代理合作協(xié)議書4篇
- 2025年度草原生態(tài)旅游投資合作草場租賃合同3篇
- 2025年度生態(tài)旅游項目土地承包合作協(xié)議范本4篇
- 2025版新能源汽車研發(fā)與制造承包合同范本3篇
- 二零二五版高校學(xué)生實習(xí)實訓(xùn)合同示范文本3篇
- 2025年度冷鏈物流保障下餐飲原材料集中采購合同2篇
- 2025年食品安全追溯食品運輸采購合同3篇
- 2025版害蟲防治產(chǎn)品認(rèn)證與推廣服務(wù)合同3篇
- 二零二五年度酒店行業(yè)顧客信息保密與隱私保護(hù)協(xié)議范本4篇
- 教育行業(yè)售后服務(wù)模式在小區(qū)超市的應(yīng)用
- 2025新譯林版英語七年級下單詞表
- 新疆2024年中考數(shù)學(xué)試卷(含答案)
- 2024-2030年中國連續(xù)性腎臟替代治療(CRRT)行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略分析報告
- 跨學(xué)科主題學(xué)習(xí):實施策略、設(shè)計要素與評價方式(附案例)
- 場地委托授權(quán)
- 2024年四川省成都市龍泉驛區(qū)中考數(shù)學(xué)二診試卷(含答案)
- 項目工地春節(jié)放假安排及安全措施
- 印染廠安全培訓(xùn)課件
- 紅色主題研學(xué)課程設(shè)計
- 裝置自動控制的先進(jìn)性說明
- 《企業(yè)管理課件:團(tuán)隊管理知識點詳解PPT》
評論
0/150
提交評論