大一c课后习题答案_第1页
大一c课后习题答案_第2页
大一c课后习题答案_第3页
大一c课后习题答案_第4页
大一c课后习题答案_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四章

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论