编程练习——c语言编程题精选(21-30题)
上一篇 / 下一篇 2009-03-11 23:11:47 / 个人分类:编程基础
/}"i\H:vp021、定义一个结构体变量(包括年、月、日),计算该日在本年中为第几天?(注意考虑闰年问题),要求写一个函数days,实现上面的计算。由主函数将年月日传递给days函数,计算后将日子传递回主函数输出
D"nA3i`2Wb6A a0#include <stdio.h>51Testing软件测试网0]iO llD*m's
#include <stdlib.h>
m7\t.x&C`L0#include <time.h>
0qB'`;aI-_!c0#include <math.h>
struct TIME51Testing软件测试网
H~8w*C3p
{
])|K1S~TZz
y0 int year;
8V:x!V+ez5Ao0 int month;
rR:x(IM3pe3Z&wg0 int day;
)K
ve P(ml0Lo0};
int is_runyear(int year)
8Q fh:J[E0{
4o"KK6kPP pb0 if((year%4==0&&year%100!=0)||(year%400==0))
p'_6U B3xr0 return 1;
?l3Oz*`8K
o;H
O:g0 else51Testing软件测试网U I*b1[x)GU5p
return 0;
} J
A?4yV
eX
V0}51Testing软件测试网iM8pg-@@pr
G%y(`Hh2A"x0int check_data(struct TIME time)
9u `$J]*t.I0D K0{51Testing软件测试网&GWmXq/M
if(time.year<1)
#e
^&]sGH0 {51Testing软件测试网(pb-L/lz
printf("输入的年份错误\n");
D,o$BLzf
}G,q9K0 return -1;51Testing软件测试网fE.y#lr*?
}51Testing软件测试网$CI3Tglna5d
if(time.month<1||time.month>12)
!bj Et!DM0 {51Testing软件测试网1t"c{Zr's*pa
printf("输入的月份错误\n");
j@'i/?A&~
t0 return -2;
U3gQ6N6t)r0 }51Testing软件测试网c#h.q%Z_QfA
switch(time.month)51Testing软件测试网Z2P5WN+~C
{
|(Gp#aLl0 case 1:51Testing软件测试网$K&ec1I$N'p F
[5U
case 3:51Testing软件测试网.J:UN\/}[@c4RR
case 5:
,B,cc!{ MY0 case 7:
#qM!V"K7M0 case 8:
.?"d*qd.BO:FD0 case 10:51Testing软件测试网|}acwt
case 12:if(time.day<1||time.day>31)51Testing软件测试网!N
u%K'C+\&JM
{
"\Cr&Jb'|*k
E0 printf("输入的日期错误\n");51Testing软件测试网~5px%F!_|}
return -3;
+wE-iLu\za/A0 }51Testing软件测试网.v B)D2UMQ0Q
break;
"o#f6W/K!@Hx v0 case 4:51Testing软件测试网|J?bAI
case 6:51Testing软件测试网t~/L4s!fSR U
case 9:
b3ow&mC9i^k0 case 11:if(time.day<1||time.day>30)51Testing软件测试网}'S]T7s6VHB
{
q8V/vW0R E
RNZ0 printf("输入的日期错误\n");51Testing软件测试网:h9R6b/`NlU
return -3;51Testing软件测试网3s&k
E%d!S5C
}51Testing软件测试网'Qt6e(H5y Y~}
break;
L+`nu-r0m&o2ix}~0 case 2:if(is_runyear(time.year)==1&&(time.day<1||time.day>29))
+k,mH6Z X0\7O R-n_@0 {51Testing软件测试网6U&Eef(`8I:H2cD'ZRZL
printf("输入的日期错误\n");
,`tkKGz'g0 return -3;
6ekZ8[~0 }51Testing软件测试网Us%cd:s/a
else if(is_runyear(time.year)!=1&&(time.day<1||time.day>28))51Testing软件测试网4o*@4i^Q!ROBB)\
{
}I Z#`1b"J8|.d s2x0 printf("输入的日期错误\n");51Testing软件测试网;kvcdz2i
return -3;51Testing软件测试网-D(FBS:fU~l
}
M*\2j6d5_ j2d0 }51Testing软件测试网8X1R0P#F6KxPM
return 0;51Testing软件测试网
K~+c3EIF}5y
}
a7n#i sO|H0 51Testing软件测试网7b A-of:o
K_%R
int days(struct TIME time)
Igj^mi;c*M0{
%b}I,jx)X j0 int flag=0;
HySEPwl;^7g0 int result=0;
}G)?F6zK8p@~{Q7i0 flag=is_runyear(time.year);51Testing软件测试网bK0z"Jkvb
switch(time.month)
s5e#Og^Mp5M?F0 {51Testing软件测试网+GxkY%J y*SV2V9[
case 12:result+=30;51Testing软件测试网
q}s7A/y8G
case 11:result+=31;51Testing软件测试网4BwZ/YT9dz1A/_
case 10:result+=30;51Testing软件测试网'R8e)DwfZ
case 9:result+=31;51Testing软件测试网gk;T~[2J
case 8:result+=31;
)q5X
Re3~0 case 7:result+=30;
#UtB(Y6cW'Vh
h0 case 6:result+=31;
Kn? }X?#k0 case 5:result+=30;
(y$mq/]J;H(eu{n0 case 4:result+=31;
?Vz.g(bs}z0 case 3:if(flag==1)
F,~(o]Bm%d0 result+=29;51Testing软件测试网6W Gh:s$R
else51Testing软件测试网FmL
L0l"T
result+=28;
r j o1fSJ`_4`0 case 2:result+=31;
/z)jnl ge0 }51Testing软件测试网1r7M"p0N(Z+ex3s n
return result+time.day;
2t)AL G
~G`:i
A0}51Testing软件测试网g@N-jT
void main()51Testing软件测试网wjTR`L;^K_+t6m
{51Testing软件测试网,?T1DjN
Q9o
struct TIME time;51Testing软件测试网"A.TK&RBu
int recode;51Testing软件测试网1KF(u&_ b
printf("请输入年月日,以空格分开\n");
6JAe'eH S0 scanf("%d%d%d",&time.year,&time.month,&time.day);51Testing软件测试网5Z8MM6Y e4PN4P
if((recode=check_data(time))!=0)51Testing软件测试网twwG
tl
E/C A
O
{
\g3hi"MoyC4@0 printf("输入数据错误,错误码为%d\n",recode);51Testing软件测试网,`s,aU y&KU6T
exit(0);51Testing软件测试网 C)RB3ZC3yn d
}51Testing软件测试网jNEs6Y(za
printf("是该年的第%d天",days(time));
dU8oys
Fyxa9G0}51Testing软件测试网4R!avi|3n^
22、建立一个链表,每个结点包括:学号、姓名、性别、年龄,输入一个学号,如果链表中的结点包括该学号,则输出该结点内容后,并将其结点删去。51Testing软件测试网,l.S,c6N9i9w&}em
51Testing软件测试网ccxpG~ HC aO#include <stdio.h>
%y)Mk.jae*O.D0#include <stdlib.h>51Testing软件测试网2?
g
a2`8cRG/G-z
#include <time.h>
%S4g3v5ae0#include <math.h>51Testing软件测试网eM[&MQf*WpEpV
#include <string.h>51Testing软件测试网wZ&H8R.Nl%l
struct STU51Testing软件测试网 ?,wd%`{yq*k
{
s2dv ?/}5BWv5{0 char number[20];
4i&Q!s \0zX2p'j0 char name[20];51Testing软件测试网i
`eR4c;?
int sex; //0:女 1:男51Testing软件测试网T1WF
M#U
int age;
F8u's
d6n8_FT3K0 struct STU *next_stu;
a9E9}KeAd0z9n0};
int n;51Testing软件测试网Y4FkZ:B]'\h)p8|
51Testing软件测试网SR&RD s];Zstruct STU *creat_stu()
/Tj"~Egpt0{51Testing软件测试网G(B
\ W x G9v
struct STU *p,*before,*head;51Testing软件测试网7zn RHvs
int n=0;51Testing软件测试网F+V;D%e[+|Z
int temp;
X{3y/A`tR0 p=before=head=NULL;51Testing软件测试网S7HFMLTjb&H
printf("请输入一个学生,以回车分开\n");
1cc)eN(I0 while(1)51Testing软件测试网-i(C!],j-h5G(P
{51Testing软件测试网h
p:[
[GD"Y
p=(struct STU *)malloc(sizeof(struct STU));51Testing软件测试网~vx#V~|w@N l
printf("学号:");51Testing软件测试网
fN+_M9co.z
scanf("%s",p->number);
e{2j.wi'w0 printf("姓名:");51Testing软件测试网"F7iEzK;M
scanf("%s",p->name);
3eJ
]O6Kx
A4l0 printf("性别(女填0,男填1):");51Testing软件测试网nZ"]iZ"C
scanf("%d",&p->sex);
m*m?'r#k0 printf("年龄:");51Testing软件测试网M$B'ABzu3Yu#c
scanf("%d",&p->age);
uN!Pk#a'c PnH
b(H7U0 n++;51Testing软件测试网*n!]4Sd)O
if(before!=NULL)
O~b's,wG0 before->next_stu=p;51Testing软件测试网-WI#Y1jZ8F'Fc
else
$s-twbT9u#|'I2CW0 head=p;51Testing软件测试网'v7?bT-P7i;t(r8j c
printf("是否继续输入?(是的话输入1,不是的话输入0):");51Testing软件测试网$q e2JMXK+n:^
scanf("%d",&temp);
P] ~.N-ykQ-W0 if(temp==0)
2{Nh lylw(J+H,R0 {51Testing软件测试网l/lE"X5YQ/l
p->next_stu=NULL;51Testing软件测试网{vU"B M`
break;51Testing软件测试网 U1W1z&s7~f P
}
!|MlSd}o`#R0 before=p;