c语言程序设计-第二版-王曙燕-课后答案3-8章_第1页
c语言程序设计-第二版-王曙燕-课后答案3-8章_第2页
c语言程序设计-第二版-王曙燕-课后答案3-8章_第3页
c语言程序设计-第二版-王曙燕-课后答案3-8章_第4页
c语言程序设计-第二版-王曙燕-课后答案3-8章_第5页
已阅读5页,还剩114页未读 继续免费阅读

下载本文档

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

文档简介

程序设计

第3章顺序程序设计习题

程序设计第2章顺序程序设计习题

3.4编写程序,输入三角形的3个边长a、b、c,

求三角形的面积area,并画出算法的流程图和

N-S结构图。公式为

其中,S=(a+b+c)/2O

2

程序设计第2章顺序程序设计习题

流程图

Xtljf入a、b、oX

S=(a+b+c)/2

area=sqrt(S(S-a)(S-b)(S-c))

:,J

/输出qrea/出“error”/^

3

程序设计第2章顺序程序设计习题

N-S图

4

程序设计第2章顺序程序设计习题

2.1选择题

(7)在中,若下面的变量都是int类型的,

则输出的结果是(C)

sum=pad=5;

PAD=sum++;PAD++;++PAD;

ffl

printfC%d5%d5pad5PAD);

A.7,7B.6,5

C.5,7D.4,5

5

程序设计第2章顺序程序设计习题

2.2分析以下程序的输出结果。

(1)#include<stdio.h>

main()

(

intij5m5n;

i=3;j=5;

m=++i;n=j++;

MM

printf(%d5%d5%d5%d\n5i5j5m5n);

}I输出:

4,6,4,5

6

程序设计第2章顺序程序设计习题

2.2分析以下程序的输出结果。

(2)main()

{

intC15C2;

c1=97;c2=95;

ff,f

printf(%c5%c\n5c1,c2);

printfCf%d%d\nMc1c2);

555输出:

}

a,b

97,95

7

程序设计第2章顺序程序设计习题

2.2分析以下程序的输出结果。

(3)main()

char

c1=la\c2=fb\c3=fc\c4=f\101\c5=f\116';

MM

printf(a%cb%c\tc%c\tabc\n5c15c25c3);

ffM

printf(\t\b%c%c5c45c5);

}输出:

aabbccabc

AN

程序设计第2章顺序程序设计习题

2.2分析以下程序的输出结果。

(4)main()

intx=45y=05z;

x*=3+2;

MM

printf(%d\n5x);

x*=(y=(z=4));

fff输出:

printfC%d5x);

}20

50

9

程序设计

第4章分支程序设计习题

程序设计第4章分支程序设计习题

4.1写出下面各逻辑表达式的值,其中

a=3jb=4jC=5o

①a+b>c&&b==c

②a||b+c&&b-c

③!(a>b)&&!c||1

④!(x=a)&&(y=b)&&0

⑤!(a+b)+c-1&&b+c/2

2

程序设计第4章分支程序设计习题

4.2输入四个整数a、b、c、和d,把这四个数由

小到大输出。

3

程序设计第4章分支程序设计习题

4.4某公司要将员工以年龄分配职务,22~3。岁

担任外勤业务员,31~45岁担任内勤文员,

45~55岁担任仓库管理员,56岁以上退休。il

编写程序实现。

程序设计第4章分支程序设计习题

4.5编程序按以下式计算y的值,x的值由键盘输

入。

f5x+110<x<20

sinx+cosx20<x<40

y={ex-140<

ln(x+1)x<60

I060<

程序设计第4章分支程序设计习题

4.6用条件运算符的嵌套来完成此题:学习成绩

>90分的同学用A表示,70〜59分之间的用E

表示,60〜79分之间用C表示,60分以下的用

D表示。

6

程序设计第4章分支程序设计习题

4.7计算器程序。用户输入运算数和四则运算符,

输出计算结果。

7

程序设计

第5章循环程序设计习题

程序设计第5章循环程序设计习题

5.1编写一个程序,计算-32767~+32767之间任

意整数(由键盘输入)中各位奇数的平方和。

2

程序设计第5章循环程序设计习题

#include<stdio.h>

voidmain()

{intx,bit;

longsum;

MM

scanf(x=%d5&x);

MM

printf(\nx=%d5x);

getchar();

while((x>=-32765)&&(x<=32767))

sum=0;

while((x/10)!=0)

3

程序设计第5章循环程序设计习题

{bit=x%10;

if(bit%2!=0)

sum+=(bit*bit);

x=x/10;

}//endofwhile

if(x%2!=0)

sum+=(x*x);

MM

printf(sum=%ld\n5sum);

MM

scanf(x=%d5&x);

nM

getchar();printf(\nx=%d5x);

}//endofwhile

4

程序设计第5章循环程序设计习题

5.2鸡兔问题:鸡兔共30只,脚共有90个。编写

一个程序,求鸡、兔各多少只。

5

程序设计第5章循环程序设计习题

5.3编写一个程序,求

s=1+(1+2)+(1+2+3)+(1+2+3+,■・+n)的值。

6

程序设计第5章循环程序设计习题

#include<stdio.h>

main()

{inti5sum=O5t=O5n;

printf(Hpleaseinpulthevalueofn!\nM);

MM

scanf(n=%d5&n);

for(i=1;i<=n;i++)

{t=t+i;

sum=sum+t;

)

printf("sum=%d\n",sum);

7

程序设计第5章循环程序设计习题

5.4编写一个程序,求1・1/2+1/3・1/4+…+1/99・

1/100的值。

5

程序设计第5章循环程序设计习题

#include<stdio.h>

main()

{ints=1;

floatsum=0,t,i;

for(i=1;i<=100;i++)

{t=(1/i)*S;

sum=sum+t;

s=-s;

)

MM

printf(sum=%f\n5sum);

)

9

程序设计第5章循环程序设计习题

55编写一个程序,将一个二、八或十六进制整

数与十进制数相互转换。

10

程序设计第5章循环程序设计习题

5£编写一个程序,求e的值,当通项小于IO:停

止计算。

e«1+1/1!+1/2!+...+1/n!

11

程序设计第5章循环程序设计习题

#include<stdio.h>

#include<math.h>

main()

{doublei=15x=1;

doublee=15y=1;

while(y>=(1e-7))

{x=x*i;/*存放分母的值*/

y=1/x;/*存放通项的值7

e=e+y;

i++;

)

,,,,

printf(e=%lf\n5e);

)

12

程序设计第5章循环程序设计习题

5.7编写程序,打印以下图形(行n的值由键盘

输入)o

13

程序设计第5章循环程序设计习题

#include<stdio.h>

main()

{intijk,m;

for(i=7;i>=1;i-)空制行的变化

{k=7-i;

if(k>0)

for(m=1;m<=k;m++)/*控制打印每行的空格7

printf(MM);

for(j=1;j<=i;j++)/*控制打印每行的星号7

printf(M*M);

printf(M\nM);

)

}一

14

程序设计第5章循环程序设计习题

5.5打印“九九乘法表二

15

程序设计第5章循环程序设计习题

#include<stdio.h>

main()

{intijjk;

for(i=1;i<=9;i++)/*控制被乘数的变化*/

{for(j=1;j<=9;j++)/甘空制乘数的变化*/

{k=i*j;

if(j<=5)printf(M%d*%d=%dJ',ijk);

,,,,

elseprintf(%d*%d=%dJJ5k);

)

printf(,,\n,');

printf(M\nn);

)

1辎O

16

程序设计

第6章数组习题

程序设计第6章数组习题

6.1判断各语句行是否正确。

⑴inta[][2]={1};%

(2)intb[4]=(1525354);专日

(3)intc[5]={0,1,234,5};错

(4)intd口[5]={{1,2},{3,4,5,6}};对

(5)inte[2][]={{15253}5(45556}};错

(6)intf[2,3]={{1,2,3},{4,5,6}};错

(7)char对

(5)charh[6]=,fabc\0n;对

(9)charm[5]=Mabcdeff;错

(10)charn[6];n=MabcdeM;对

2

程序设计第6章数组习题

6.2写出下面程序执行的输出结果。

(1)

main()

(

int,234,5,6,7,5,9};

for(i=0;i<9;i++)

n[i]=9-i;

MM

printf(%5d%5d5n[3]5n[5]);

)

输出结果:6

3

程序设计第6章数组习题

main()

(

inti5j=15a[]=;

for(i=0;i<4;i++)

{a[i]+=i;j+=a[i]*i;}

MM

printf(%5d5j);

)

输出结果:35

4

程序设计第6章数组习题

(3)

main()

(

inti,a[3][5]={1,2,3,4,5,6,7,5,9J0,11};

MM

for(i=0;i<3;i++)printf(%5d5a[i][4-i]);

}

输出结果:590

程序设计第6章数组习题

(4)

main()

(

inti5j5a[3][4]={{0512M3,4,5,6},{7,5}};

for(i=0;i<3;i++)

for(j=i;j<4;j++)

输出结果:

MM

printf(%5d5a[2-i][j]);

printf(M\nM);7500

)456

)

20

6

程序设计第6章数组习题

(5)

main()

{inti,j,aH4]={1,2,3,4,5,6,7,5,9J0,11};

for(i=1;i<3;i++)

for(j=i;j<4;j++)

a[i][j]+=a[i][j-1];

for(i=0;i<3;i++)

for(j=0;j<4;j++)

MM

printf(%5d5a[i][j]);

)

输出结果:

1234511152691021槌2臬

程序设计第6章数组习题

(6)

main()

(

chars[20];

MM

scanf(%s5s);

MMM1

printf(%s\n5strcat(s5isadoctor'));

}

输入Chenqi,则输出结果?

输出结果:Chenisadoctor

5

程序设计第6章数组习题

(7)

main()

(

charst[16]=n123456\0abcdefn;

MM

printf(%d%d%s\n5strlen(st)5sizeof(st)5st);

}

输出结果:616123456

9

程序设计第6章数组习题

(5)

main()

(

MM,,,M

chari5s[][5]={ab;12347wxyz};

for(i=1;i<2;i++)

MM

printf(%s\n5s[i]);

}

输出结果:1234

10

程序设计第6章数组习题

6.3从键盘输入10个学生的成绩存储在数组

中,求成绩最高者的序号和成绩。

11

程序设计第6章数组习题

#include<stdio.h>

main()

{inti,k;

floatscore[10];

printf(,,\n,');

printf(Mpleaseinputscoreforstudents:\nM);

for(i=0;i<10;i++)〃输入学生成绩

MM

scanf(%f5&score[i]);

12

程序设计第6章数组习题

/*查找成绩最高者的序号和成绩*/

k=0;

for(i=1;i<10;i++)

if(score[i]>score[k])

k=i;

printf(Mthenumberandhighestscoreis:\nM);

MM

printf(%d%f\n5k+15score[k]);

)

13

程序设计第6章数组习题

6.5将整型数组中的所有元素镜像对调,第一个

与最后一个对调,第二个与倒数第二个对调,

按对调后的结果输出。

14

程序设计第6章数组习题

#include<stdio.h>

main()

(

inti,kK,a[10]={1,2,3,4,5,6,7,5,9J0};

k=10/2;

for(i=0;i<k;i++)

(

x=a[i];

a[i]=a[9-i];

a[9-i]=x;

)

for(i=0;i<=9;i++)

printf(M%d;\a[i]);

15

程序设计第6章数组习题

6.6在有序的数列中插入若干个数,使数列在

插入过程中始终保持有序。

16

程序设计第6章数组习题

6.9将矩阵A的转置矩阵存入矩阵B,输出B。

7

程序设计第6章数组习题

#include<stdio.h>

main()

(

inta[2][3]={{1,2,3},{4,5,6}},b[3][2],i,j;

printf(Marraya:\rT);

for(i=0;i<=1;i++)

{for(j=0;j<=2;j++)

{printfC'%5d>\a[i][j]);b[j][i]=a[i][j];}

printf(M\nn);

)

15

程序设计第6章数组习题

printf(Harrayb:\rT);

for(i=0;i<=2;i++)

{for(j=0;j<=1;j++)

MM

printf(%5d5b[i][j]);

printf(,,\nn);

)

}

19

程序设计第6章数组习题

6.11生成如下矩阵:

124

24256nzQ

2Tjdq阴

2n394142n

fjJ1-

t4849A

23*n/n♦

45dM▲

2n3?473635nnT

-NJJA

Q14J7J63E4dR

L/0li1Ad

程序设计第6章数组习题

实现思想:

把要实现的图看成是由四个方框由外到内协

套组成的图,其中每个方框上的四条边都有着

干个数字组成。程序的实现思想是由外到内直

每个方框,其中每个方框都是先画从西到东的

线,再画从北到南的线,再画从东到西的线,

最后画从南到北的线。

21

程序设计第6章数组习题

#defineN7

#include<stdio.h>

main()

{inta[N][N]5k=15i5row5col;

for(i=0;i<=N/2;i++)

{for(col=i;col<N-i;col++)//west->east

a[i][col]=k++;

for(row=i+1;row<N-i;row++)//up->down

a[row][N-i-1]=k++;

for(col=N-i-2;col>=i;col-)//east->west

a[N-i-1][col]=k++;

for(row=N-i-2;row>i;row-)//down->up

22

程序设计第6章数组习题

printf(M\ncontentofarray:\nM);

for(i=0;i<N;i++)

{for(k=0;k<N;k++)

MM

printf(%5d5a[i][k]);

printf(M\nM);

)

)

23

程序设计第6章数组习题

补充题:自己编程实现strcpy()和strlen()函

数的功能。

24

程序设计第6章数组习题

/*strcpy()函数的实现7

voidstrcpy(charx[]5chary[])

(

inti;

printf(,,%s\n,\y);

for(i=0;i<=9;i++)

(

x[i]=y[i];

)

printf(,,%s\n,\x);

)

25

程序设计第6章数组习题

/*strlen()函数的实现7

voidstrlen(charx[])

{charc;

inti=05n=0;

c=x[0];

while(c!=,\0,)

n=n+1;

i=i+1;

c=x[i];

)

printf(M\nn=%d\nM,n);

)

26

程序设计第6章数组习题

main()

(

MM

chara[]=name!5b[10];

strcpy(b5a);

strlen(b);

)

27

程序设计第6章数组习题

6J3用二维字符数组的每行存储键盘输入的

字符串,将这些字符串按字典顺序升序排

序,按排序后的结果输出。

25

程序设计第6章数组习题

include<stdio.h>

{intij;chara[10][10]5b[10];

printf(M\nM);

printf(Mpleaseinputstring(thelengthofstring

isnomorethan9)NrT);

for(i=0;i<10;i++)〃逐个输入字符串

MM

scanf(%s5a[i]);

29

程序设计第6章数组习题

〃将字符串按字典顺序升序排序

for(i=0;i<=5;i++)

for(j=i+1;j<=9;j++)

if(strcmp(a[i],a[j])>0)

{strcpy(b5a[i]);

strcpy(a[i]5a[j]);

strcpy(a[j]5b);

)

printf(M\nM);

for(i=0;i<=9;i++)〃输出排序后的字符串

printf(M%s\nf\a[i]);

30

程序设计

第7章函数习题

程序设计第7章函数习题

7.2应用题

(1)计算x的平方值并输出。

main()

{intx;

MM

scanf(%d5&x);

x=square(x);

Hn

printf(\nthesquareis%d5x);

)

square(intx)

(

return(x*x);

2

程序设计第7章函数习题

(2)计算矩形面积

main()

{floata,b;

MM

scanf(%f%f5&a5&b);

MM

printf(%f5mult(a5b));

}

floatmult(floata,floatb)

(

return(a*b);

3

程序设计第7章函数习题

(3)阅读程序,写出运行结果。

main()

{inta=2,b=3;

,,

printf('f=%d\n\f(a5b));

)

f(intijntj)

(

intt=1;

for(;j>0;j-)

t*=i;

return(t);

)

输出结果:f=5

4

程序设计第7章函数习题

(4)阅读程序,写出运行结果。

intm=13;

fun(intx,inty)

{intm=3;

return(x*y-m);

)

main()

(

inta=7,b=5;

MM

printf(%d\n5fun(aJb)/m);

)

输出结果:2,锵需,:

程序设计第7章函数习题

64编写一个求水仙花数的函数,求100到999之间的全

部水仙花数。所谓水仙花数是一个三位数,其各位娄夕

字立方和等于该数。例如:153就是一个水仙花数:

153=1*1*1+5*5*5+3*3*3

6

程序设计第7章函数习题

/*判断n是否为水仙花数7

voidfunc(intn)

(

intx5y5z;

x=n/100;

y=n/10-x*10;

z=n-x*100-y*10;

if((x*x*x+y*y*y+z*z*z)==n)

printf(M%disashunxianhuashu!\nM,n);

)

7

程序设计第7章函数习题

main()

(

inti;

for(i=100;i<=999;i++)

func(i);

)

5

程序设计第7章函数习题

6.5编写一函数,输出整数m的全部素数因子。例如:

m=120,因子为2,2,2,3,5

9

程序设计第7章函数习题

#defineTRUE1

#defineFALSE0

#include<stdio.h>

#include<math.h>

intfunc(intm)〃判断m是否为素数

{inti,k;

k=sqrt(m);

for(i=2;i<=k;i++)

if(m%i==O)break;

if(i>=k+1)〃m为素数返回整数“1”

returnTRUE;

else〃m为素数返回整数“0”

returnFALSE;

10

C语言程序法计第7章函数习题

r<11■IW

\7

{intx,i,k;

printf(M\nM);

MM

scanf(x=%d5&x);

printf(M\ncontentolsushuyinzi:\nM);

k=sqrt(x);

for(i=2;i<=k;i++)

{while((x%i==O)&&func(i))〃1为乂的素数因子

(

printf(M%5dMJ);

x=x/i;

)

)

}谶通热:

11

程序设计第7章函数习题

7.6编写一函数,求10000以内所有的完数。所谓完

数是指一个数正好是它的所有约数之和。例如6就

是一个完数,因为6的因子有1、2、3,并且

6=1+2+3o

12

程序设计第7章函数习题

voidfunc(intn)/*判断n是否为完数7

(

intsum=1J;

for(i=2;i<n;i++)/*求n的所有素数因子之和*/

(

if((n%i)==O)

sum=sum+i;

)

if(sum==n)〃n为完数

printf(M%disawanshu!\nM,n);

)

13

程序设计第7章函数习题

main()

(

intk;

for(k=2;k<=10000;k++)〃求10000以内的所有完数

(

func(k);

)

)

14

程序设计第7章函数习题

77编写一函数,求1000以内所有的互满数,并

显示输出。所谓互满数是指:有两个数,每一

个数的所有约数(除它本身以外)的和正好等

于对方,则称这两个数为互满数。

15

程序设计第7章函数习题

#include<stdio.h>

#defineN10000

intDivisor_Sum(intx)〃求x的约数之和

(

inti,sum=0;

for(i=1;i<x;i++)

if(x%i==0)

sum+=i;

returnsum;

16

程序设计第7章函数习题

main()

{inti5j5x5y;

inta[N+1][2];

printf("\n%d以内的互满数有:\rT,N);

for(i=2;i<=N;i++)

{a[i][O]=i;

/*第二维为标志位,“0”表示未求出互满数,

“1”表示已求出互满数7

a[i][1]=0;

}一

7

程序设计第7章函数习题

for(i=2;(i<=N)&&(a[i][1]==0);i++)

{x=Divisor_Sum(i);

for(j=i+1;(j<=N)&&(a[j][1]==0);j++)

{y=Divisor_Sum(j);

if((x==j)&&(y==i))

{a[i][1]=1;a[j][1]=1;

}

)

)

15

程序设计第7章函数习题

7.5计算幕级数的递归函数

19

程序设计第7章函数习题

intfunc(intx,intn)

(

intf;

if(n==O)〃递归结束的条件

f=1;

else

f=x*func(x5n-1);〃递归进行的规则

returnf;

}嘘产

20

程序设计第7章函数习题

voidmain()

(

intx5n5y:

MM

scanf(x=%d5n=%d5&x5&n);

y=func(x5n);

MM

printf(\ny=%d\n5y);

)

21

程序设计第7章函数习题

7.9用递归函数求累加和

22

程序设计第7章函数习题

intsum(inti)

(

intf;

if(i==1)〃递归结束的条件

f=1;

else

f=sum(i-1)+i;〃递归进行的规则

returnf;

}嘘产

23

程序设计第7章函数习题

main()

(

ints,n:

MM

scanf(n=%d5&n);

s=sum(n);

MM

printf(\ns=%d\n5s);

)

24

程序设计第7章函数习题

7.10已知某数列的前两项为2和3,其后继项根据当前

的前两项的乘积按

下列规则生成:

1)若乘积为一位数,则该乘积就是数列的后继项。

2)若乘积为两位数,则乘积的十位和个位数字依次作

为数列的后继项。例如,当n=10,求出该数列的前

10项是:

2361556424

编程实现n=10时的数列

25

程序设计第7章函数习题

#include<stdio.h>

voidsequence(intt)〃求指定数列的前n项

{inti5n5n1=25n2=3;

printf("指定数列的前n项为:\rT);

MM

printf(%d\t%d\t5n15n2);

for(i=3;i<=t;)

{n=n1*n2;

if(n>=10)

{n1=n/10;n2=n%10:

MM

printf(%d\t%d\t5n15n2);

i+=2;

)

程序设计第7章函数习题

else

MM

{printf(%d\t5n);

n1=n2;

n2=n;

}

}

}

main()

{intn=10;

sequence(n);

}

燧■:

27

程序设计

第5章结构体与共用体习题

程序设计第5章循环程序设计习题

5.6用结构体数组存储某班的30名学生的信息,

每个学生的数据项有学号、姓名、性别、如

门课的成绩。编写程序计算四门课的平均成

绩,要求用键盘输入学生数据,再按平均成

绩排序,并输出含平均成绩的报表。

2

程序设计第5章循环程序设计习题

有关学生结构体类型的设计:

structstudent

{charnum[15];〃学生学号

charname[20];〃学生姓名

charsex[10];〃学生性另(]

floatscorel;〃课程1的成绩

floatscore2;〃课程2的成绩

floatscore3;〃课程3的成绩

floatscore4;〃课程4的成绩

floataverage;〃4门课的平均成绩

);

3

程序设计第5章循环程序设计习题

程序实现:

main()

{structstudents[N],t;

intij,k;

printf”n请输入学生的信息:”);

for(i=0;i<N;i++)〃逐个输入学生信息并将其存入结构体数组中

{printf("\n学号:H);flushall();gets(s[i].num);

printf("\n姓名:");flushall();gets(s[i].name);

printf("\n性别:vv);flushall();gets(s[i].sex);

4

程序设计第5章循环程序设计习题

printf("\n课程1的成绩:");

flushall();

scanf(M%f\&s[i].score1);

printf("\n课程2的成绩:vv);flushall();

scanf(,,%f\&s[i].score2);printf(M\n

课程3的成绩:M);flushall();

MMM

scanf(%f5&s[i].score3);printf(\n

课程4的成绩:M);flushall();

MM

scanf(%f5&s[i].score4);

s[i].average=

(s[i].score1+s[i].score2+s[i].score3+s[i].score4)/4;

5

程序设计第5章循环程序设计习题

/*排序前学生成绩的输出7

printf(H\nThecontentofarrayis:");

printf("\n学号\t姓名\t性别\t课程1的成绩\t课程2的成

绩\t课程3的成绩\t课程4的成绩”);

for(i=0;i<N;i++)

MM

printf(\n%s\t%s\t%s\t%f\t%f\t%f\t%f5

s[i].num,s[i].name,s[i].sex,

s[i].score1,s[i].score2,s[i].score3,

s[i].score4);

6

程序设计第5章循环程序设计习题

for(i=0;i<N-1;i++)〃将学生成绩按平均成绩从高到低排序

(

k=i;

for(j=i+1;j<N;j++)

if(s[k].average<s[j].average)

k=j;

if(k!=j){t=s[i];s[i]=s[k];s[k]=t;}

}

7

程序设计第5章循环程序设计习题

/*排序后学生成绩的输出7

printf(M\nThecontentofarrayaftersortis:");

printf「\n学号\t姓名\t性别\t课程1的成绩\t课程2的成

绩\t课程3的成绩\t课程4的成绩\t平均成绩”);

for(i=0;i<N;i++)

MM

printf(\n%s\t%s\t%s\t%f\t%f\t%f\t%f\t%f5

s[i].num,s[i].name,s[i].sex,s[i].score1,

s[i].score2,s[i].score3,s[i].score4,

s[i].average);

程序设计第5章循环程序设计习题

5/I0有一个商品信息表,除了商品号、商品名、

进货日期、进货单价、数量、销售单价等公共

信息外,对于家电类商品应有保修单位名和它

的服务电话,而对于食品类则应有保质期。请

编程输入商品数据,以表格形式输出。

9

程序设计第5章循环程序设计习题

日期结构体类型

structkDate

intyear;

intmonth;

day;

};

10

程序设计第5章循环程序设计习题

家电类商品的保修单位和服务电话结构体

structkElectronic

{

charname[50];/家电的保修单位

chartelephone[15];/家电的服务电话

};

11

程序设计第5章循环程序设计习题

食品类商品的保质期结构体

structkFood

structkDated1;僮品的生产日期

structkDated2;僮品的过期日期

};

12

程序设计第5章循环程序设计习题

/*商品信息结构体类型7

structkModity

{charcode[20];/商品号

charname[30];/商品名

structkDated3;/进货日期

floatbPrice;优货单价

intnum;偻攵量

floatsPrice;除肖售单价

intkind;/商品类别

13

程序设计第5章循环程序设计习题

union

{

/*家电类商品信息*/

structkElectronicelectronic;

structkFoodfood;度品类商品信息

charkOther[10];/其它商品信息

}other;/商品的其它信息

};

14

程序设计第5章循环程序设计习题

main()

(

inti,k;

structkModitymodity[N];〃存放商品的结构体数组

for(i=0;i<N;i++)

(

printf(M\npleaseinputkindofthemodify:1.

electronic2.food3.other\nM);

MM

scanf(%d5&modity[i].kind);

15

程序设计第5章循环程序设计习题

switch(modity[i].kind)

(

case1:〃家电类商品信息输入

printf(Hpleaseinputthecodeofmodity:\nM);

flushall();

MM

scanf(%s5modity[i].code);

printf(v,pleaseinputthenameofmodity:\nM);

flushall();

MM

scanf(%s5modity[i].name);

16

程序设计第5章循环程序设计习题

printf(Hpleaseinputthestockdateofmodity:\nM);

flushall();

MM

scanf(%d5%d5%d5&modity[i].d3.year5

&modity[i].d3.month,&modity[i].d3.day);

printf(MpleaseinputthebPriceofmodity:\nM);

flushall();

MM

scanf(%f5&modity[i].bPrice);

printf(Mpleaseinputthenumofmodity:\nM);

flushallQ;

scanf(vv%dv\&modity[i].num);

程序设计第5章循环程序设计习题

printf(HpleaseinputthesPriceofmodity:\nn);

flushall();

fM

scanff%f5&modity[i].sPrice);

printf(Mpleaseinputthewarrantydepartment:M);

flushall();

MM

scanf(%s55modity[i].other.electronic-name);

printf(Mpleaseinputthewarrantyservicecall:");

flushall();

scanf(vv%sv\modity[i].other.electronic.telephone);

break;

程序设计第5章循环程序设计习题

case2:〃食品类商品信息输入

printf("pleaseinputthecodeofmodity:\nM);

flushall();

MM

scanf(%s5modity[i].code);

printf(v,pleaseinputthenameofmodity:\nM);

flushall();

M,f

scanf(%s5modity[i].name);

printf(Hpleaseinputthestockdateofmodity:\nM);

flushall();

MM

scanf(%d5%d5%d5&modity[i].d3.year5

&modity[i].d3.month,&modity[i].d3.day);

程序设计第5章循环程序设计习题

printf(MpleaseinputthebPriceofmodity:\nM);

flushall();

scanf("%r\&modity[i].bPrice);

printf(Mpleaseinputthenumof

modity:\nM);

flushall();

scanf("%cT,&modity[i].mjm);

printf(MpleaseinputthesPriceof

modity:\nM);

flushall();

MM

scanf(%f5&modity[i].sPrice);

20

程序设计第5章循环程序设计习题

printf(-pleaseinputthefood.sdateOfproduction-);

,,

scanf(,%d5%d5%d'J&modity[i].other.food.d1.yearJ

&modity[i].other.food.d1.month,

&modity[i].other.food.d1.day);

printf("pleaseinputthefood'sexpiredate:

flushall();

MM

scanf(%dJ%dJ%d5&modity[i].other.food.d2.yearJ

&modity[i].other.food.d2.month,

&modity[i].other.food.d2.day);

break;

21

程序设计第5章循环程序设计习题

case3:〃其它类商品信息输入

printf(Mpleaseinputthecodeofmodity:\nM);

flushall();

MM

scanf(%s5modity[i].code);

printf("pleaseinputthenameofmodity:\nM);

flushall();

MM

scanf(%s5modity[i].name);

printf(Mpleaseinputthestockdateofmodity:\nM);

flushall();

MM

scanf(%d5%d5%d5

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论