




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言经典编程【实例01】编制日历【实例02】阿姆斯特朗数【实例03】素数幻方【实例04】模拟自动取款机屏幕【实例05】输出九九表【实例06】彩球问题【实例07】递归解决分酒问题【实例08】获取当前的CMOS信息【实例09】不使用strcpy()函数实现字符串的拷贝【实例10】寻找三重回文数【实例11】归并排序【实例12】字母顺序输出字符串【实例13】字符串的匹配【实例14】应用栈设置密码【实例15】同时显示两个文件信息
【实例01】编制日历输入年份,自动生成该年日历。利用自定义函数f()和g()求出某年一月一日是星期几,并判定该年是否闰年。为了便于按星期输出各月的日历,引入三维数组的日期表intdate[12][6][7]。其中,12表示一年的12个月;6表示一个月最多有6周;7表示每周有7天。每个月的天数按照月份取自数组intday_tb1[][]。该数组是二维数组,第一行存储平年的各月天数,第二行存储闰年的各月天数。
程序如下:
【实例02】阿姆斯特朗数
如果一个正整数等于每位数字的立方和,则称该数为阿姆斯特朗数,也叫自恋性数。编程求1000以内的所有阿姆斯特朗数。依次取1000以内的正整数i,将i的各位数字分解后,根据阿姆斯特朗数的性质进行判断。程序如下:
【实例03】素数幻方
所谓n阶的素数幻方就是在一个n×n的矩阵中,每一个格子填入一个数字,使每一行、每一列和两条对角线上的n个数字所组成的n位数,均为可逆素数,即正向和逆向组合的n位数都是素数。
求四阶的素数幻方,若采用穷举法,则设定4×4矩阵中每个元素的值后,判断每一行、每一列和两条对角线上的4个数字组成的4位数是否都是可逆素数。这种算法的程序实现效率很低,穷举和判定的次数过多。可先求出全部204个4位可逆素数,以矩阵的行为单位,在4位可逆素数的范围内穷举,然后将穷举的4位整数分解为单个数字后,再进行列和对角线方向的筛选。
矩阵的第一行和最后一行数字,它们分别是列方向四位数的第一个数字和最后一个数字,由于这些四位数也是可逆素数,因此矩阵的每一行和最后一行中的各个数字都不能为偶数或5。这样穷举矩阵的第一行和最后一行时,它们的取值范围是:所有位的数字均不是偶数或5的四位可逆数。由于符合这一条件的四位可逆素数很少,因此这一范围限制又一次减少了穷举的次数。程序如下:
【实例04】模拟自动取款机屏幕
通过对自动取款机屏幕事务的模拟来学习switch语句。switch的中文意思是开关,switch语句专门用来处理事务性的多分支情况。程序如下:
【实例05】输出九九表
通过本例加深对for循环语句的理解,掌握光标位置的控制方法。程序如下:
【实例06】彩球问题
若一个口袋里放有12个球,其中有3个红的、3个白的和6个黑的,问从中任取8个球共有多少种不同颜色的搭配?设任取8个球,其中红球i个,白球j个,则黑球为8-i-j个。根据条件,红球和白球数量的取值范围是0~3,黑球数量的取值范围即8-i-j≤6。程序如下:
【实例07】递归解决分酒问题
法国著名数学家Poison在青年时代研究过一个有趣的数学问题:一个酒徒有12品脱的啤酒一瓶,他想从中倒取6品脱,但又没有正好6品脱的容器,仅有一个8品脱和5品脱的容器,怎样才能将啤酒分为两个6品脱呢?用a代表12品脱的瓶子,b代表8品脱的瓶子,c代表5品脱的瓶子,倒酒的规则如下:按照a→b→c→a的顺序;b倒空后才能从a中取;c装满后才能向a中倒酒。
程序如下:
【实例08】获取当前的CMOS信息
通过系统调用来获取CMOS的信息。计算机把系统配置信息存放在CMOS存储器中,包括用户驱动类型、系统日期等。本例中程序通过调用inportb和outportb函数来获取CMOS信息,并显示相关内容。70H和71H分别是针对CMOS进行写入和读取的端口。程序如下:
【实例09】不使用strcpy()函数实现字符串的拷贝
这是C语言里面复制字符串的库函数,函数声明包括在专门处理字符串的头文件<string.h>中,char*strcpy(char*dst,constchar*src);函数用于把字符串src复制到一分配好的字符串空间dst中,复制的时候包括标志字符串结尾的空字符一起复制。操作成功,返回dst,否则返回NULL。
使用char*的原因是,函数strcpy1()用于把参数s字符串复制到d参数,由于d参数将进行修改,因此它必须是个字符数组或者是一个指向动态分配内存的数组的指针,不能使用字符串常量。
程序如下:
【实例10】寻找三重回文数
回文数是指其各位数字左右堆成的整数,例如121,94249等。三重回文数是指某个数字m、m2、m3都是回文数,例如m=11,m2=121,m3=1331。本例编程寻找11~999之间的回文数,要求编制函数intsvalue(longm)实现此功能。如果是回文数,则函数返回1,否则返回0,最后把结果输出到文件out中去。程序如下:
【实例11】归并排序
归并是指将若干已排序的子文件合并成一个有序的文件。MergeSort是利用“归并”技术进行排序的一种常见的稳定的排序方法。设两个有序的子文件放在同一向量中相邻的位置R[low..m],R[m+1..high],先将它们合并到一个局部的暂存向量R1中,待合并完成后将R1复制回R[low..high]中。.程序如下:
【实例12】字母顺序输出字符串
这是C语言里面比较字符串大小的库函数,函数声明包括在专门处理字符串的头文件<string.h>中。有三个字符串str1,str2,str3,使用标准库函数strcmp()两两比较,按照字母先后顺序输出字符串。程序如下:
【实例13】字符串的匹配
这是C语言里面字符串匹配的库函数,函数声明包括在专门处理字符串的头文件<string.h>中。不使用C语言标准库函数strstr()完成此项操作。在目标字符串中查找是否含有子串,如果查找到含有子串,则输出主串中第一个匹配字符的位置。程序如下:
【实例14】应用栈设置密码
当用户输入错误密码时,系统提示密码错误,要求重新输入,只有输入正确的密码(123456),才能进行下一步操作。本例通过栈来设置密码,涉及了栈的定义、初始化、删除以及销毁。程序如下:
【实例15】同时
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 地方政府与电力公司新能源充电桩共建合作框架协议
- Brand KPIs for sauces condiments in Brazil-外文版培训课件(2025.2)
- 路政联合执法协议书
- 黄石食堂承包协议书
- 仓库登高梯租用协议书
- 资产整体转让协议书
- 公司建合同框架协议书
- 餐饮法人变更协议书
- 解除劳务外包协议书
- 食堂污水清掏协议书
- 湖南省2024年对口升学考试计算机综合真题试卷
- 第2课 抗美援朝 课件(共13张)
- 中医适宜技术-中药热奄包
- 材料力学第4版单辉祖习题答案
- 苏教版二年级下册数学竞赛试卷
- 晶体几何基础
- 腹腔穿刺术考核评分表
- 楼面板静载试验检测报告
- 控制电缆敷设、接线施工方案
- 科目一考试成绩单
- Q∕CR 9604-2015 高速铁路隧道工程施工技术规程
评论
0/150
提交评论