18058 一年的第几天
时间限制:1000MS 内存限制:65535K
提交次数:0 通过次数:0
题型: 填空题 语言: G++;GCC;VC
Description
定义一个结构体类型表示日期类型(包括年、月、日)。程序中定义一个日期类型的变量,输入该日期的年、月、日,
计算并输出该日期是一年的第几天。
#include <stdio.h>
struct DATE
{
_______________________
};
int days(struct DATE date)
{
_______________________
}
int main()
{
struct DATE d;
scanf("%d-%d-%d", &d.year, &d.month, &d.day);
printf("%d", days(d));
}
输入格式
年月日,格式如样例
输出格式
该年的第几天
输入样例
2015-1-1
输出样例
1
$block1$
int year;
int month;
int day;
$end1$
$block2$
int day;
if(date.month==1)day=0;
else if(date.month==2)day=31;
else if(date.month==3)day=59;
else if(date.month==4)day=90;
else if(date.month==5)day=120;
else if(date.month==6)day=151;
else if(date.month==7)day=181;
else if(date.month==8)day=212;
else if(date.month==9)day=243;
else if(date.month==10)day=273;
else if(date.month==11)day=304;
else if(date.month==12)day=334;
if(date.year%4==0&&date.year%100!=0||date.year%400==0)
{
if(date.month>=3)
{
day=day+1;
}
}
day=day+date.day;
return day;
$end2$
18059 学生成绩表
时间限制:1000MS 内存限制:65535K
提交次数:0 通过次数:0
题型: 填空题 语言: G++;GCC;VC
Description
输入10个学生,每个学生的数据包括学号、姓名、3门课的成绩。定义结构体类型表示学生类型,输入10个学生的数据,
计算每个学生的平均成绩。按平均成绩由高到低输出所有学生信息,成绩相同时按学号从小到大输出。
#include <stdio.h>
struct data
{
_______________________
};
int main()
{
int i,j;
struct data stu[10],tmp;
for(i=0; i<10; i++)
{
_______________________
}
for(i=0; i<9; i++)
for(j=0; j<9-i; j++)
{
_______________________
}
for(i=0; i<10; i++)
{
printf("%d %s %.0lf %.0lf %.0lf\n", stu[i].num, stu[i].name, stu[i].score[0], stu[i].score[1], stu[i].score[2]);
}
return 0;
}
输入格式
10个学生信息,每行一个学生
输出格式
如题
输入样例
1 aaa 50 60 70
2 bbb 50 50 50
3 ccc 60 70 80
4 ddd 40 40 40
5 eee 70 80 90
6 fff 30 30 30
7 ggg 80 90 100
8 hhh 20 20 20
9 iii 100 100 100
10 jjj 10 10 10
输出样例
9 iii 100 100 100
7 ggg 80 90 100
5 eee 70 80 90
3 ccc 60 70 80
1 aaa 50 60 70
2 bbb 50 50 50
4 ddd 40 40 40
6 fff 30 30 30
8 hhh 20 20 20
10 jjj 10 10 10
$block1$
int num;
char name[20];
double score[3];
double average;
$end1$
$block2$
scanf("%d%s%lf%lf%lf", &stu[i].num, stu[i].name, stu[i].score, stu[i].score+1, stu[i].score+2);
stu[i].average=stu[i].score[0]+stu[i].score[1]+stu[i].score[2];
$end2$
$block3$
if(stu[j].average<stu[j+1].average)
{
tmp=stu[j];stu[j]=stu[j+1];stu[j+1]=tmp;
}
$end3$
18060 删除空格
时间限制:1000MS 内存限制:65535K
提交次数:0 通过次数:0
题型: 填空题 语言: G++;GCC;VC
Description
用指针方法解决,输入一个字符串,删除字符串中所有空格后,输出字符串
#include <stdio.h>
void removeSpace(char *s)
{
_______________________
}
int main()
{
char s[81];
gets(s);
removeSpace(s);
printf("%s", s);
return 0;
}
输入格式
一行字符,以换行回车结束,最多不超过80个字符
输出格式
删除所有空格后输出
输入样例
abc 456
输出样例
abc456
标程
|
18061 数的交换
时间限制:1000MS 内存限制:65535K
提交次数:0 通过次数:0
题型: 填空题 语言: G++;GCC;VC
Description
输入10个整数,把其中最小的数与第一个数交换,最大的数与最后一个数交换。使用3个函数解决问题:
(1) 输入10个整数的函数
(2) 进行交换处理的函数
(3) 输出10个数的函数
#include <stdio.h>
void input(int a[])
{
_______________________
}
void swap(int a[])
{
_______________________
}
void display(int a[])
{
int i;
for(i=0; i<10; i++)
printf("%d\n", a[i]);
}
int main()
{
int a[10];
input(a);
printf("input done\n");
swap(a);
printf("swap done\n");
display(a);
printf("display done\n");
return 0;
}
输入格式
输入10个整数
输出格式
输出结果,一行一个数字
输入样例
2 1 3 4 5 6 7 8 9 0
输出样例
input done
swap done
0
1
3
4
5
6
7
8
2
9
display done
$block1$
int i;
for(i=0; i<10; i++)
scanf("%d", &a[i]);
$end1$
$block2$
int temp,mini,maxi;
int i;
mini=0;
for(i=1; i<10; i++)
if(a[mini]>a[i])
mini=i;
temp=a[mini];a[mini]=a[0];a[0]=temp;
maxi=0;
for(i=1; i<10; i++)
if(a[maxi]<a[i])
maxi=i;
temp=a[maxi];a[maxi]=a[9];a[9]=temp;
$end2$
18062 二维数组每行中的最大值
时间限制:1000MS 内存限制:65535K
提交次数:0 通过次数:0
题型: 填空题 语言: G++;GCC;VC
Description
输入一个4*4的二维整型数组,使用指针变量查找并输出二维整型数组中每一行的最大值。
#include <stdio.h>
void find(int a[][4])
{
int (*p)[4], *q, *max;
for(_______________________)
{
max=*p;
for(_______________________)
{
_______________________
}
printf("%d\n", *max);
}
}
int main()
{
int a[4][4],i,j;
for(i=0; i<4; i++)
for(j=0; j<4; j++)
scanf("%d", &a[i][j]);
find(a);
return 0;
}
输入格式
4*4的整数矩阵
输出格式
每行最大值,一行一个
输入样例
1 2 3 4
8 7 6 5
1 1 1 1
2 2 2 2
输出样例
4
8
1
2
标程
|
18063 圈中的游戏
时间限制:1000MS 内存限制:65535K
提交次数:0 通过次数:0
题型: 编程题 语言: G++;GCC;VC
Description
有n个人围成一圈,从第1个人开始报数1、2、3,每报到3的人退出圈子。编程使用链表找出最后留下的人。
输入格式
输入一个数n,1000000>=n>0
输出格式
输出最后留下的人的编号
输入样例
3
输出样例
2
#include <stdio.h>
int c[1000000];
int main()
{
int i, j, n, pre, cur;
scanf("%d", &n);
if(n==1) printf("1\n");
else
{
for(i=0; i<n-1; i++) c[i]=i+1;
c[n-1]=0;
cur=n-1;
for(i=0; i<n-1; i++)
{
for(j=0; j<3; j++)
{
pre = cur;
cur=c[cur];
}
c[pre]=c[cur];
}
printf("%d", pre+1);
}
return 0;
}
18064 链表的有序合并
时间限制:1000MS 内存限制:65535K
提交次数:0 通过次数:0
题型: 填空题 语言: G++;GCC;VC
Description
已知有两个链表a和b,结点类型相同,均包括一个int类型的数据。编程把两个链表合并成一个,结点按升序排列。
#include "stdio.h"
#include "malloc.h"
#define LEN sizeof(struct DATA)
struct DATA
{
long num;
struct DATA *next;
};
struct DATA *create(int n)
{
struct DATA *head=NULL,*p1=NULL,*p2=NULL;
int i;
for(i=1;i<=n;i++)
{ p1=(struct DATA *)malloc(LEN);
scanf("%ld",&p1->num);
p1->next=NULL;
if(i==1) head=p1;
else p2->next=p1;
p2=p1;
}
return(head);
}
struct DATA *merge(struct DATA *head, struct DATA *head2)
{
_______________________
return head;
}
struct DATA *insert(struct DATA *head, struct DATA *d)
{
_______________________
return head;
}
struct DATA *sort(struct DATA *head)
{
_______________________
return head;
}
void print(struct DATA *head)
{
struct DATA *p;
p=head;
while(p!=NULL)
{
printf("%ld",p->num);
p=p->next;
printf("\n");
}
}
main()
{
struct DATA *head, *head2;
int n;
long del_num;
scanf("%d",&n);
head=create(n);
scanf("%d",&n);
head2=create(n);
head = merge(head, head2);
head = sort(head);
print(head);
}
输入格式
第一行一个数n,表示第一个列表的数据个数
每二行为n个数
第三行为一个数m
第四行为m个数
输出格式
输出合并后的有序的数据,一行一个数
输入样例
2
4 8
3
9 1 5
输出样例
1
4
5
8
9
$block1$
struct DATA *p;
p=head;
while(p->next!=NULL) p=p->next;
p->next = head2;
return head;
$end1$
$block2$
struct DATA *p0,*p1,*p2;
p1=head;
p0=d;
if(head==NULL){head=p0;p0->next=NULL;}
else
{while((p0->num>p1->num)&&(p1->next!=NULL))
{ p2=p1;
p1=p1->next;}
if(p0->num<=p1->num)
{ if(head==p1)head=p0;
else p2->next=p0;
p0->next=p1;
}
else {p1->next=p0;p0->next=NULL;}
}
$end2$
$block3$
struct DATA *p1,*p2;
p2=head;p1=head;
p2=p2->next;
p1->next=NULL;
p1=p2;
while(p2->next!=NULL)
{
p2=p2->next;
p1->next=NULL;
head=insert(head,p1);
p1=p2;
}
head=insert(head,p1);
$end3$