收藏 分享(赏)

信息学奥赛经典算法C语言经典例题100例.pdf

上传人:weiwoduzun 文档编号:3291000 上传时间:2018-10-10 格式:PDF 页数:53 大小:256.62KB
下载 相关 举报
信息学奥赛经典算法C语言经典例题100例.pdf_第1页
第1页 / 共53页
信息学奥赛经典算法C语言经典例题100例.pdf_第2页
第2页 / 共53页
信息学奥赛经典算法C语言经典例题100例.pdf_第3页
第3页 / 共53页
信息学奥赛经典算法C语言经典例题100例.pdf_第4页
第4页 / 共53页
信息学奥赛经典算法C语言经典例题100例.pdf_第5页
第5页 / 共53页
点击查看更多>>
资源描述

1、1信 息 学 奥 赛 经 典 算 法 C 语 言 经 典 例 题 100例经 典 源 程 序 100例题 目 : 有 1、 2、 3、 4 个 数 字 , 能 组 成 多 少 个 互 不 相 同 且 无 重 复 数 字 的 三 位 数 ? 都 是 多 少 ?1.程 序 分 析 : 可 填 在 百 位 、 十 位 、 个 位 的 数 字 都 是 1、 2、 3、 4。 组 成 所 有 的 排 列 后 再 去掉 不 满 足 条 件 的 排 列 。2.程 序 源 代 码 :main()int i,j,k;printf(“n“);for(i=1;i2)/*如 果 是 闰 年 且 月 份 大 于 2,总

2、 天 数 应 该 加 一 天 */sum+;printf(“It is the %dth day.“,sum);=【 程 序 5】题 目 : 输 入 三 个 整 数 x,y,z, 请 把 这 三 个 数 由 小 到 大 输 出 。1.程 序 分 析 : 我 们 想 办 法 把 最 小 的 数 放 到 x 上 , 先 将 x 与 y 进 行 比 较 , 如 果 xy则 将 x与 y的 值 进 行 交 换 ,然 后 再 用 x与 z进 行 比 较 , 如 果 xz则 将 x与 z的 值 进 行 交 换 , 这 样 能 使 x最 小 。2.程 序 源 代 码 :main()int x,y,z,t;s

3、canf(“%d%d%d“,if (xy)t=x;x=y;y=t; /*交 换 x,y的 值 */if(xz)t=z;z=x;x=t;/*交 换 x,z的 值 */if(yz)t=y;y=z;z=t;/*交 换 z,y的 值 */printf(“small to big: %d %d %dn“,x,y,z); =【 程 序 6】题 目 : 用 *号 输 出 字 母 C 的 图 案 。1.程 序 分 析 : 可 先 用 *号 在 纸 上 写 出 字 母 C, 再 分 行 输 出 。2.程 序 源 代 码 :#include “stdio.h“main() printf(“Hello C-worl

4、d!n“);printf(“ *n“);printf(“ *n“);4printf(“ * n“);printf(“ *n“); =【 程 序 7】题 目 : 输 出 特 殊 图 案 , 请 在 c环 境 中 运 行 , 看 一 看 , Very Beautiful!1.程 序 分 析 : 字 符 共 有 256个 。 不 同 字 符 , 图 形 不 一 样 。2.程 序 源 代 码 :#include “stdio.h“main() char a=176,b=219;printf(“%c%c%c%c%cn“,b,a,a,a,b);printf(“%c%c%c%c%cn“,a,b,a,b,a)

5、;printf(“%c%c%c%c%cn“,a,a,b,a,a);printf(“%c%c%c%c%cn“,a,b,a,b,a);printf(“%c%c%c%c%cn“,b,a,a,a,b);=【 程 序 8】题 目 : 输 出 9*9口 诀 。1.程 序 分 析 : 分 行 与 列 考 虑 , 共 9行 9列 , i 控 制 行 , j 控 制 列 。2.程 序 源 代 码 :#include “stdio.h“main() int i,j,result;printf(“n“);for (i=1;ik, 但 n能 被 k 整 除 , 则 应 打 印 出 k的 值 , 并 用 n除 以 k

6、的 商 ,作 为 新 的 正 整 数你 n, 重 复 执 行 第 一 步 。(3)如 果 n 不 能 被 k 整 除 , 则 用 k+1作 为 k 的 值 ,重 复 执 行 第 一 步 。2.程 序 源 代 码 :/* zheng int is divided yinshu*/main()7 int n,i;printf(“nplease input a number:n“);scanf(“%d“,printf(“%d=“,n);for(i=2;i=90分 的 同 学 用 A 表 示 , 60-89 分 之 间的 用 B表 示 , 60分 以 下 的 用 C表 示 。1.程 序 分 析 : (

7、ab)?a:b这 是 条 件 运 算 符 的 基 本 例 子 。2.程 序 源 代 码 :main() int score;char grade;printf(“please input a scoren“);scanf(“%d“,grade=score=90?A:(score=60?B:C);printf(“%d belongs to %c“,score,grade);=【 程 序 16】题 目 : 输 入 两 个 正 整 数 m和 n, 求 其 最 大 公 约 数 和 最 小 公 倍 数 。1.程 序 分 析 : 利 用 辗 除 法 。2.程 序 源 代 码 :main() int a,b

8、,num1,num2,temp;printf(“please input two numbers:n“);scanf(“%d,%d“,if(num1 temp=num1;num1=num2;num2=temp;a=num1;b=num2;8while(b!=0)/*利 用 辗 除 法 , 直 到 b 为 0 为 止 */ temp=a%b;a=b;b=temp; printf(“gongyueshu:%dn“,a);printf(“gongbeishu:%dn“,num1*num2/a); =【 程 序 17】题 目 : 输 入 一 行 字 符 , 分 别 统 计 出 其 中 英 文 字 母

9、、 空 格 、 数 字 和 其 它 字 符 的 个 数 。1.程 序 分 析 : 利 用 while语 句 ,条 件 为 输 入 的 字 符 不 为 n.2.程 序 源 代 码 :#include “stdio.h“main()char c;int letters=0,space=0,digit=0,others=0;printf(“please input some charactersn“);while(c=getchar()!=n)if(c=a/*第 一 天 的 桃 子 数 是 第 2 天 桃 子 数 加 1 后 的 2 倍 */x2=x1;day-; printf(“the total

10、 is %dn“,x1); =【 程 序 22】题 目 : 两 个 乒 乓 球 队 进 行 比 赛 , 各 出 三 人 。 甲 队 为 a,b,c 三 人 , 乙 队 为 x,y,z三 人 。 已 抽 签决 定 比 赛 名 单 。 有 人 向 队 员 打 听 比 赛 的 名 单 。 a 说 他 不 和 x比 , c 说 他 不 和 x,z比 , 请 编 程序 找 出 三 队 赛 手 的 名 单 。1.程 序 分 析 : 判 断 素 数 的 方 法 : 用 一 个 数 分 别 去 除 2到 sqrt(这 个 数 ), 如 果 能 被 整 除 , 则表 明 此 数 不 是 素 数 , 反 之 是

11、素 数 。2.程 序 源 代 码 :main() char i,j,k;/*i是 a的 对 手 , j 是 b 的 对 手 , k 是 c 的 对 手 */for(i=x;ivoid main() char letter;printf(“please input the first letter of somedayn“);while (letter=getch()!=Y)/*当 所 按 字 母 为 Y时 才 结 束 */ switch (letter)case S:printf(“please input second lettern“);if(letter=getch()=a)printf

12、(“saturdayn“);else if (letter=getch()=u)printf(“sundayn“);else printf(“data errorn“); break;case F:printf(“fridayn“);break;case M:printf(“mondayn“);break;case T:printf(“please input second lettern“);if(letter=getch()=u)printf(“tuesdayn“);else if (letter=getch()=h)printf(“thursdayn“);else printf(“dat

13、a errorn“);break;case W:printf(“wednesdayn“);break;default: printf(“data errorn“); =【 程 序 32】题 目 :Press any key to change color, do you want to try it. Please hurryup!1.程 序 分 析 :2.程 序 源 代 码 :#include void main(void)15 int color;for (color = 0; color void main(void) clrscr();/*清 屏 函 数 */textbackgroun

14、d(2);gotoxy(1, 5);/*定 位 函 数 */cprintf(“Output at row 5 column 1n“);textbackground(3);gotoxy(20, 10);cprintf(“Output at row 10 column 20n“);=【 程 序 34】题 目 : 练 习 函 数 调 用1. 程 序 分 析 :2.程 序 源 代 码 :#include void hello_world(void) printf(“Hello, world!n“); void three_hellos(void) int counter;for (counter =

15、1; counter void main(void) int color;16for (color = 1; color #include “math.h“#define N 101main() int i,j,line,aN;for(i=2;iaj) min=j;tem=ai;ai=amin;amin=tem;/*output data*/printf(“After sorted n“);for(i=0;iend)a10=number;elsefor(i=0;inumber)temp1=ai;ai=number;for(j=i+1;j4;c=(0=RIGHT)dx1=-dx1;if(y1=B

16、OTTOM)dy1=-dy1;if(x2=RIGHT)dx2=-dx2;if(y2=BOTTOM)dy2=-dy2;if(+countLINES)setcolor(color);color=(color=MAXCOLOR)?0:+color;25closegraph();【 程 序 61】题 目 : 打 印 出 杨 辉 三 角 形 ( 要 求 打 印 出 10 行 如 下 图 )1.程 序 分 析 : 11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 12.程 序 源 代 码 :main()int i,j;int a1010;printf(“n“);for(i=0;in

17、2) swap(pointer1,pointer2);if(n1n3) swap(pointer1,pointer3);if(n2n3) swap(pointer2,pointer3);printf(“the sorted numbers are:%d,%d,%dn“,n1,n2,n3);swap(p1,p2)int *p1,*p2;int p;p=*p1;*p1=*p2;*p2=p;=【 程 序 67】29题 目 : 输 入 数 组 , 最 大 的 与 第 一 个 元 素 交 换 , 最 小 的 与 最 后 一 个 元 素 交 换 , 输 出 数 组 。1.程 序 分 析 : 谭 浩 强 的

18、 书 中 答 案 有 问 题 。2.程 序 源 代 码 :main()int number10;input(number);max_min(number);output(number);input(number)int number10;int i;for(i=0;i*max) max=p;else if(*parray;p-)*p=*(p-1);*array=array_end;m-;if(m0) move(array,n,m);=【 程 序 69】题 目 : 有 n个 人 围 成 一 圈 , 顺 序 排 号 。 从 第 一 个 人 开 始 报 数 ( 从 1到 3报 数 ) , 凡 报 到 3的 人 退 出圈 子 , 问 最 后 留 下 的 是 原 来 第 几 号 的 那 位 。1. 程 序 分 析 :2.程 序 源 代 码 :#define nmax 50main()int i,k,m,n,numnmax,*p;printf(“please input the total of numbers:“);scanf(“%d“,p=num;for(i=0;in;i+)*(p+i)=i+1;i=0;k=0;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报