2.5 数组
题目链接:
H题
代码:
//冒泡排序
#include <stdio.h>
int A[10]={0};
int main()
{
int i,j,temp=0;
for(i=0;i<10;i++)
scanf("%d",&A[i]);
for(i=0;i<10;i++)
{
for (j=0;j<(9-i);j++)
{
if (A[j]>A[j+1])
{
temp=A[j];A[j]=A[j+1];A[j+1]=temp;
}
}
}
for(i=0;i<10;i++)
printf("%d\n",A[i]);
return 0;
}
I题
代码:
#include <stdio.h>
int A[2][3]={0};
int main()
{
int i,j,temp=0;
for(i=0;i<2;i++)
for (j=0;j<3;j++)
scanf("%d",&A[i][j]);
for(i=0;i<3;i++)
for (j=0;j<2;j++)
{
printf("%d",A[j][i]);
if (j==1)
printf("\n");
else
printf(" ");
}
return 0;
}
J题
代码:
#include <stdio.h>
#include <string.h>
char A[3][100]={'\0'};
int main()
{
gets(A[0]);
gets(A[1]);
gets(A[2]);
if (strcmp(A[0],A[1])>0)
{
if (strcmp(A[0],A[2])>0)
printf("%s",A[0]);
else
printf("%s",A[2]);
}
else
{
if (strcmp(A[1],A[2])>0)
printf("%s",A[1]);
else
printf("%s",A[2]);
}
return 0;
}
2.6 函数
A题
代码:
#include <stdio.h>
#include <string.h>
char A[100]={'\0'};
int main()
{
gets(A);
int n=0,i;
n=strlen(A);
for(i=0;i<n;i++)
printf("%c",A[n-1-i]);
return 0;
}
B题
代码:
#include <stdio.h>
#include <string.h>
char A[100]={'\0'};
int main()
{
gets(A);
int n=0,i;
n=strlen(A);
for(i=0;i<n;i++)
{
if (A[i]=='a'||A[i]=='e'||A[i]=='i'||A[i]=='o'||A[i]=='u'||A[i]=='A'||A[i]=='E'||A[i]=='I'||A[i]=='O'||A[i]=='U')
printf("%c",A[i]);
}
return 0;
}
2.7 指针
A题
code:
#include <stdio.h>
int main()
{
int a=0,b=0;
int *x=&a,*y=&b;
scanf("%d %d",x,y);
if(*x>*y)
printf("%d %d",a,b);
else
printf("%d %d",b,a);
return 0;
}
B题
code:
#include <stdio.h>
int sort(int *x,int *y)
{
int temp=0;
if (*x<*y)
{
temp=*x;*x=*y;*y=temp;
}
return 0;
}
int main()
{
int a=0,b=0,c=0;
int *x=&a,*y=&b,*z=&c;
scanf("%d %d %d",x,y,z);
sort(x,y);
sort(x,z);
sort(y,z);
printf("%d %d %d",a,b,c);
return 0;
}
C题
code:
#include <stdio.h>
int main()
{
int n=0;
char *a="I love China!";
scanf("%d",&n);
printf("%s",a+n);
return 0;
}
D题
code:
#include <stdio.h>
#include <string.h>
char A[21]={'\0'},B[21]={'\0'},C[21]={'\0'};
int main()
{
gets(A);
gets(B);
gets(C);
char *a=A,*b=B,*c=C;
if (strcmp(a,b)<0)
{
if (strcmp(a,c)<0)
{
if (strcmp(b,c)<0)
printf("%s\n%s\n%s",a,b,c);
else
printf("%s\n%s\n%s",a,c,b);
}
else
printf("%s\n%s\n%s",c,a,b);
}
else
{
if (strcmp(b,c)<0)
{
if (strcmp(a,c)<0)
printf("%s\n%s\n%s",b,a,c);
else
printf("%s\n%s\n%s",b,c,a);
}
else
printf("%s\n%s\n%s",c,b,a);
}
return 0;
}
E题
code:
#include <stdio.h>
int A[11]={0};
int input()
{
int i;
for (i=0;i<10;i++)
scanf("%d",&A[i]);
return 0;
}
int solve(int *p)
{
int i,max_index=0,min_index=0,temp=0;
for (i=0;i<10;i++)
{
if (A[i]>A[max_index])
max_index=i;
if (A[i]<A[min_index])
min_index=i;
}
temp=A[max_index];A[max_index]=A[9];A[9]=temp;
temp=A[min_index];A[min_index]=A[0];A[0]=temp;
return 0;
}
output(int *p)
{
int i;
for (i=0;i<10;i++)
{
printf("%d",*(p+i));
if (i!=9)
printf(" ");
}
return 0;
}
int main()
{
input();
int *a=A;
solve(a);
output(a);
return 0;
}
2.8 结构体
A题
code:
#include <stdio.h>
#include <string.h>
struct person
{
char name[20];
int count;
}leader[3]={"Li", 0, "Zhang", 0, "Fun", 0};
int main()
{
int n=0,i,j;
char temp[6]={'\0'};
scanf("%d",&n);
for (i=0;i<n;i++)
{
scanf("%s",temp);
for (j=0;j<3;j++)
{
if (strcmp(leader[j].name,temp)==0)
leader[j].count++;
}
for (j=0;j<6;j++)
temp[j]='\0';
}
for (i=0;i<3;i++)
printf("%s:%d\n",leader[i].name,leader[i].count);
}
B题
code:
#include <stdio.h>
#include <string.h>
struct person
{
int num;
char name[20];
char sex;
int age;
}leader[21]={0,"A",'F',0};
int main()
{
int n=0,i,j;
scanf("%d",&n);
for (i=0;i<n;i++)
{
scanf("%d %s %c %d",&leader[i].num,leader[i].name,&leader[i].sex,&leader[i].age);
printf("%d %s %c %d\n",leader[i].num,leader[i].name,leader[i].sex,leader[i].age);
}
return 0;
}
C题
code:
#include <stdio.h>
#include <string.h>
struct person
{
int num;
char name[20];
char sex;
char job;
union
{
int classes;
char position[10];
}catagery;
}leader[101];
int main()
{
int n=0,i,j;
scanf("%d",&n);
for (i=0;i<n;i++)
{
scanf("%d %s %c %c ",&leader[i].num,leader[i].name,&leader[i].sex,&leader[i].job);
if (leader[i].job=='t')
{
scanf("%s",leader[i].catagery.position);
printf("%d %s %c %c %s\n",leader[i].num,leader[i].name,leader[i].sex,leader[i].job,leader[i].catagery.position);
}
else
{
scanf("%d",&leader[i].catagery.classes);
printf("%d %s %c %c %d\n",leader[i].num,leader[i].name,leader[i].sex,leader[i].job,leader[i].catagery.classes);
}
}
return 0;
}
D题
code:
#include <stdio.h>
#include <string.h>
struct person
{
int num;
char name[20];
int course1;
int course2;
int course3;
}student[5];
int input1(struct person *x)
{
scanf("%d %s %d %d %d",&(x->num),(x->name),&(x->course1),&(x->course2),&(x->course3));
return 0;
}
int output1(struct person *x)
{
printf("%d %s %d %d %d\n",(x->num),(x->name),(x->course1),(x->course2),(x->course3));
return 0;
}
int main()
{
int i;
for (i=0;i<5;i++)
{
input1(&student[i]);
output1(&student[i]);
}
return 0;
}
E题
code:
#include <stdio.h>
#include <string.h>
struct person
{
int num;
char name[20];
int course1;
int course2;
int course3;
}student[10];
int input1(struct person *x)
{
scanf("%d %s %d %d %d",&(x->num),(x->name),&(x->course1),&(x->course2),&(x->course3));
return 0;
}
int main()
{
int i,max_index=0;
double ave1=0,ave2=0,ave3=0,max=0;
for (i=0;i<10;i++)
{
input1(&student[i]);
ave1+=student[i].course1;ave2+=student[i].course2;ave3+=student[i].course3;
if ((double)((student[i].course1+student[i].course2+student[i].course3)/3)>max)
{
max=(double)((student[i].course1+student[i].course2+student[i].course3)/3);
max_index=i;
}
}
ave1=ave1/10;ave2=ave2/10;ave3=ave3/10;
printf("%.2f %.2f %.2f\n",ave1,ave2,ave3);
printf("%d %s %d %d %d",student[max_index].num,student[max_index].name,student[max_index].course1,student[max_index].course2,student[max_index].course3);
return 0;
}
2.10 黑盒测试
A题
code:
#include <stdio.h>
int main()
{
int a=0,b=0;
while(scanf("%d %d",&a,&b)!=EOF)
{
printf("%d\n",a+b);
}
return 0;
}
B题
code:
#include <stdio.h>
int main()
{
int a=0,b=0,i=0,n=0;
scanf("%d",&n);
while(scanf("%d %d",&a,&b)!=EOF)
{
printf("%d\n",a+b);
if (i>=n-1)
break;
i++;
}
return 0;
}
C题
code:
#include <stdio.h>
int main()
{
int a=0,b=0;
while(scanf("%d %d",&a,&b)!=EOF)
{
if (a!=0&&b!=0)
printf("%d\n",a+b);
else
break;
}
return 0;
}
D题
code:
#include <stdio.h>
int main()
{
int a=0,sum=0,n=0,i;
while(scanf("%d",&n),n)
{
for (i=0;i<n;i++)
{
scanf("%d",&a);sum+=a;
}
printf("%d\n",sum);
sum=0;
}
return 0;
}
E题
code:
#include <stdio.h>
int main()
{
int a=0,sum=0,n=0,i,x=0,j;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&x);
j=0;
while(j<x)
{
scanf("%d",&a);
sum+=a;j++;
}
printf("%d\n",sum);
sum=0;
}
return 0;
}
F题
code:
#include <stdio.h>
int main()
{
int a=0,sum=0,i,x=0;
while(scanf("%d",&x)!=EOF)
{
for (i=0;i<x;i++)
{
scanf("%d",&a);
sum+=a;
}
printf("%d\n",sum);
sum=0;
}
return 0;
}
F题
code:
#include <stdio.h>
int main()
{
int a=0,b=0;
while(scanf("%d %d",&a,&b)!=EOF)
printf("%d\n\n",a+b);
return 0;
}
G题
code:
#include <stdio.h>
int main()
{
int a=0,b=0;
while(scanf("%d %d",&a,&b)!=EOF)
printf("%d\n\n",a+b);
return 0;
}
H题
code:
#include <stdio.h>
int main()
{
int a=0,sum=0,n=0,i,x=0,j;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&x);
j=0;
while(j<x)
{
scanf("%d",&a);
sum+=a;j++;
}
printf("%d\n\n",sum);
sum=0;
}
return 0;
}