程序设计复赛(参考答案)
2003年7月10日
/* A-1 */
#include <string.h>
main()
{ char *str[80],state[80][30];
int len[80],i,j,max,im;
for(i=0;i<80;i++)
{ str[i]=state[i];
gets(str[i]);
if(strcmp(str[i],"end")==0) break;
}
for(j=0;j<i;j++)
len[j]=strlen(str[j]);
im=0;max=len[0];
for(j=0;j<i;j++)
if(len[j]>max) im=j;
puts(str[im]);
}
/* A-1 */
#include <string.h>
main()
{ char str[80][30];
int i,max=0,im;
for(i=0;i<80;i++)
{ gets(str[i]);
if(strlen(str[i])>max)
{ max= strlen(str[i]);
im=i;
}
if(strcmp(str[i],"end")==0) break;
}
puts(str[im]);
}
/* A-2 */
main()
{ int a[20],i,j,k,n=20;
for(i=0;i<n;i++) scanf("%d",&a[i]);
for(i=0;i<n;i++)
{ for(j=i+1;j<n;j++)
if(a[i]==a[j])
{ for(k=j;k<n-1;k++) a[k]=a[k+1];
--n;
j--;
}
}
for(i=0;i<n;i++) printf("%d ",a[i]);
}
/* A-2 */
main()
{ int a[20],b[20],i,j,k,n=20;
for(i=0;i<n;i++) scanf("%d",&a[i]);
b[0]=a[0]; k=1;
for(i=1;i<n;i++)
{ for(j=0;j<k;j++)
if(a[i]==b[j]) break;
if(j>=k) b[k++]=a[i];
}
for(i=0;i<k;i++) printf("%d ",b[i]);
}
/* A-3 */
#include <stdio.h>
main()
{ char str[10];
int n,base,m=0,y;
int i,j;
scanf("%d%s",&base,str);
n=strlen(str);
for(i=0;i<n;i++)
{ if(str[i]>='0'&&str[i]<='9') y=str[i]-'0';
if(str[i]>='A'&&str[i]<='Z') y=str[i]-'A'+10;
if(str[i]>='a'&&str[i]<='z') y=str[i]-'a'+10;
m=base*m+y;
}
printf("%d\n",m);
}
/* B-1 */
main()
{ char c[80],*p;
int a,e,i,o,u,count;
a=e=i=o=u=count=0;
gets(c);
p=c;
while(*p)
{ if(*p>='a'&&*p<='z'||*p>='A'&&*p<='Z')count++;
if(*p=='a'||*p=='A') a++;
else if(*p=='e'||*p=='E') e++;
else if(*p=='i'||*p=='I') i++;
else if(*p=='o'||*p=='O') o++;
else if(*p=='u'||*p=='U') u++;
p++;
}
printf("%d %d %d %d %d %d\n",a,e,i,o,u,count-a-e-i-o-u);
}
/* B-2 */
main()
{ int a,i,g,s,b;
for(a=100;a<1000;a++)
{ g=a%10;
s=(a/10)%10;
b=a/100;
if(g!=s&&s!=b&&b!=g) continue;
for(i=10;i<32;i++)
if(a==i*i) printf("%d ",a);
}
printf("\n");
}
/* B-3 */
#include <stdio.h>
#include <math.h>
main()
{ int x,i,j,end,n,k;
int c[10];
scanf("%d",&n);
end=pow(3,n)-1;
for(i=0;i<=end;i++)
{ for(k=0;k<n;c[k]=0,k++);
k=i; j=0;
do{ c[j]=k%3;
j++;
} while(k/=3);
for(j=n-1;j>=0;printf("%d",c[j--]));
printf("\n");
}
}
/* B-3 */
#include <stdio.h>
#include <math.h>
main()
{ int x,i,j,end,n,k;
int c[10]={0};
scanf("%d",&n);
end=pow(3,n)-1;
for(i=0;i<=end;i++)
{ for(j=0,k=i;j<n;k/=3,j++) c[j]=k%3;
for(j=n-1;j>=0; j--) printf("%d",c[j]);
printf("\n");
}
}