nbhkdz.com冰点文库

NOIP竞赛培训第一讲


Concept: I/O
?

什么是 I/O?
? Input & Output (输入与输出) ? printf, scanf, putchar, getchar… ? <stdio.h>

字符I/O ? 格式化I/O ? 文件I/O
?

Review:get

char & putchar
?

字符I/O

Char c; ? c=getchar(); ? putchar(c); ? putchar(?\n?);
?

Review:printf & scanf
格式化I/O ? F=format
? ? ? ? ? ? ?

char s[]=“abcdefghijklmn” printf (“%s\n”,s); printf (“%.5s\n”,s); printf (“%30s\n”,s); printf (“%20.5s\n”,s); printf (“%-20.5s\n”,s);

Exercise:陶陶摘苹果
?

陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去 摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。 现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下 她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。 【输入】输入包括两行数据。第一行包含10个100到200之间(包括100和200)的整数(以厘米为 单位)分别表示10个苹果到地面的高度,两个相邻的整数之间用一个空格隔开。第二行只包括一个 100到120之间(包含100和120)的整数(以厘米为单位),表示陶陶把手伸直的时候能够达到的最 大高度。

?

?

?

【输出】输出包括一行,这一行只包含一个整数,表示陶陶能够摘到的苹果的数目。

? ? ? ? ?

【样例输入】 100 200 150 140 129 134 167 198 200 111 110 【样例输出】 5

Ans
? ? ? ? ? ? ?

#include <stdio.h> int apples[10]; int main(void) { int ans; int i, h; for(i = 0; i < 10; i++){ scanf("%i", &apples[i]); } scanf("%d", &h); h += 30; for(i = ans = 0; i < 10; i++){ if(apples[i] <= h){ ans++; } } printf("%i\n", ans); return 0; }

?
? ? ? ? ?

?
? ? ? ? ?

But……
?

?

【输入文件】 输入文件apple.in包括两行数据。第一行包含10个100 到200之间(包括100和200)的整数(以厘米为单位) 分别表示10个苹果到地面的高度,两个相邻的整数之 间用一个空格隔开。第二行只包括一个100到120之间 (包含100和120)的整数(以厘米为单位),表示陶 陶把手伸直的时候能够达到的最大高度。

? ?

【输出文件】 输出文件apple.out包括一行,这一行只包含一个整数, 表示陶陶能够摘到的苹果的数目。

New!文件输入输出操作
将I/O重定向到文件中 ? 读写文件操作——写作业
?
? 打开文件——打开作业本

? 读取数据——读题目
? 运算——运算 ? 输出数据——写解答

? 关闭文件——关上作业本

New!打开文件
? ? ?

文件的结构类型FILE fopen(); #include<stdio.h> FILE *input,*output; Input=fopen(“apple.in”,”r”); Output=fopen(“apple.out”,”w”); If (input==NULL) printf(“Bi! Error!\n”); Else //读取数据

?
? ? ? ? ? ?

New!读取数据&输出数据
?

getc, putc

c=getc(input); ? putc(?\n?, output);
?

New!关闭文件
fclose(); ? 非常重要!!!
?

fclose(input); ? fclose(output);
?

Exercise:拷贝文件
输入:需要拷贝的文件,拷贝文件的输出 名称 ? 操作 :拷贝文件!
?

Ans
#include<stdio.h> int main(void) { FILE *input, *output; char c; input=fopen(“1.in”,”r”); output=fopen(“1.out”.”w”); while((c=getc(input))!=EOF) putc(output,c); fclose(input); fclose(output); }

New:fscanf & fprintf
fscanf(input,”%i”,&a); ? fprintf(output,”%i”,a);
?

Focus! Two Methods
? ? ? ? ? ? ? ?

Method 1:

?

Method 2:
freopen(“apple.in”,”r”,st din); freopen(“apple.out”,”w”, stdout); scanf(”%i”,&a); printf(”%i”,a); fclose(stdin); fclose(stdout);

FILE *input,*output; ? input=fopen(“apple.in”,”r ”); ? output=fopen(“apple.out ”,”w”); ? fscanf(input,”%i”,&a); ? fprintf(output,”%i”,a); ? fclose(input); ? fclose(output);

End


在信息学奥赛辅导中我的几点做法_学科竞赛_初中教育_教育专区

辅导完这些就到了每年的十一月份参加 NOIP(全国奥林匹克信息学竞赛联赛) 。二、注重自主性学习,辅导小组的形式多样性 信息学竞赛知识不是我们上课讲给学生的 word...

信息学竞赛辅导资料

信息学竞赛辅导资料_学科竞赛_高中教育_教育专区。信息学奥赛。。第...NOIP 是同一时间在全国各个省份同时开展的比赛,1995 年开始举办第一届。只有在...

全国信息学奥林匹克竞赛中级指导教师培训班

全国信息学奥林匹克竞赛中级 中级指导教师培训班 中级 教学大纲一、宗旨 中国...(2 小时) 第六天 授课内容 上午:2007、2008 年 NOIP 提高组复赛试题简要分析...

浅谈如何在信息学竞赛辅导中引导学生“学会学习”

浅谈如何在信息学竞赛辅导中引导学生“学会学习” ...(NOIP)是由国家教育部、中国科协批准,中国计算机学会...讲一个算法,它的形式或结果并不重要,重要的是让...

信息竞赛推荐书籍

3、《学习指导》(推荐指数:5 颗星) 刘汝佳著,《算法艺术与信息学竞赛》的辅导...2、除此之外 Vijos 也是一个不错的题库,有很多中文题. 3、国内广受 NOIP ...

信息学奥赛教学的几点心得_学科竞赛_高中教育_教育专区

会采用一种固定的方式,有的时候我会讲,还有的时候,我会 叫学生上来讲, 有...在信息学奥林匹 克竞赛的中,我辅导的学生总共获得了 NOIP 一等奖 5 人次、二...

鼓励和组织学生参加信息学奥林匹克培训

鼓励和组织学生参加信息学奥林匹克培训_初一数学_数学...信息学奥林匹克竞赛和联赛分别设一、二、 三等奖...对于信息学奥林匹克的联赛简称为 NOIP,对于信息学的...

信息学奥赛(NOIP)必看经典书目汇总

信息学奥赛(NOIP)必看经典书目汇总_学科竞赛_高中教育_教育专区。信息学奥赛(...《全国信息学奥林匹克联赛培训教程(一) 》 (推荐指数:5 颗星) 传说中的黄书...

学校信息技术学奥林匹克竞赛培训计划

的兴趣, 信息科组计划举办信息学奥林匹克竞赛培训班, 组织培训学生 参加 2005 年全国青少年信息学奥林匹克竞赛(NOIP),为了在竞赛中取得较好名次,特制 定此培训计划...

青少年信息学奥林匹克初级竞赛辅导练习题

青少年信息学奥林匹克初级竞赛辅导练习题_学科竞赛_小学教育_教育专区。第一题(p...P28 练习 [例2]报数游戏(NOIP-TJ-2006小学组复赛题)。(p30) 小朋友都喜欢...