阶段一上机考试补题报告

7-4 求某月的天数 (20 分)
#include <stdio.h> int main() { int year,month; scanf("%d %d\n",&year,&month); if(month!=2){ if(month==1||3||5||7||8||10||12){ printf("31\n"); }else{ printf("30\n"); } }else if(month==2){ if(year%400==0){ printf("29"); }if(year%100!=0){ if(year%4==0){ printf("29"); }else{ printf("28"); } } } return 0; }
有多处明显错误,且程序复杂。
改正后
#include <stdio.h>
int main()
{
int year,month,day;
while(scanf("%d %d",&year,&month)!=EOF){
switch(month)
{
case 1:day=31;break;
case 2:day=28;break;
case 3:day=31;break;
case 4:day=30;break;
case 5:day=31;break;
case 6:day=30;break;
case 7:day=31;break;
case 8:day=31;break;
case 9:day=30;break;
case 10:day=31;break;
case 11:day=30;break;
default:day=31;break;
}
if(year%4==0&&year%100!=0&&month==2||year%400==0)
day=day+1;
printf("%d\n",day);
}
return 0;
}
7-5 位运算应用 (20 分)
#include <stdio.h>
int main()
{int ua,ub,uc,tag;
scanf("%d %d %d\n%d",&ua,&ub,&uc,&tag);
if(tag>95||tag<0){
printf("Error");
}else{
printf("ua=%d,ub=%d,uc=%d",ua,ub,uc);
}
return 0;
}
这题的位运算是真不懂,就把该拿的分拿了
R7-6 交替字符倒三角形 (20 分)
STSTS
STS
S
STSTSTSTSTSTSTSTSTS
STSTSTSTSTSTSTSTS
STSTSTSTSTSTSTS
STSTSTSTSTSTS
STSTSTSTSTS
STSTSTSTS
STSTSTS
STSTS
STS
S
改正后
#include <stdio.h>
int main()
{
int n,i,j=1,y,h;
char ch;
while(scanf("%d %c",&n,&ch)!=EOF){
y=n-17;
for(i=3;i>=1;i--){
for(h=3-i;h>0;h--){
printf(" ");
}
for(j=1;j<=2*i-1;j++){
printf("%c",ch);
}
printf("\n");
}
for(i=2;i<=3;i++){
for(h=3-i;h>0;h--){
printf(" ");
}
for(j=1;j<=2*i-1;j++){
printf("%c",ch);
}
printf("\n");
}
if(y>0){printf("%d",y);}
}
return 0;
}
总结就是循环部分还没吃透,而后面的部分也完全理解

浙公网安备 33010602011771号