- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
程序设计基础(C语言)机电(专科)实验指导书-2011-2012-2
《程序设计基础(C语言)》实验指导书
实验课程名称:程序设计基础
英文名称:#include
void main int a, b, c, n;
for n 100; n 1000; n++ a n / 100;
b n / 10 – a * 10;
c n % 10;
if n a*a*a + b*b*b + c*c*c printf “%5d”, n ; 输入并执行该程序,观察输出结果。
【2】以下程序,输出下三角形状的乘法九九表。
#include
void main int i, j;
printf %3c |, ; /* 打印表头行首 */
for i 1; i 9; i++ /* 打印表头 */
printf %3d, i ;
printf \n ;
for i 0; i 32; i++ printf %c, - ;
printf %c, \n ;
for i 1; i 9; i++ /* 循环体执行一次,打印一行 */ printf %3d |, i ; /* 打印行首 */
for j 1; j i; j++ /* 循环体执行一次,打印一个数据 */ printf %3d, i * j ; printf \n ; /* 每行尾换行 */ ...+n2的值。
李先生岁数的平方与他的夫人的岁数之和是1053,而他的夫人的岁数的平方与他的岁数之和是873,请编写程序计算李先生及其夫人的岁数各是多少。
输入一行字符,分别统计出其中的英文字母、空格、数字和其它字符的个数。
实验2 函数
一、实验目的
掌握定义函数的方法;
掌握函数实参与形参的对应关系以及“值传递”的方式;
掌握函数的嵌套调用和递归调用的方法;
掌握全局变量和局部变量,动态变量和静态变量的概念和使用方法;
二、实验内容
【1】有5个人,第5个人说他比第4个人大2岁,第4个人说他对第3个人大2岁,第3个人说他对第2个人大2岁,第2个人说他比第1个人大2岁,第1个人说他10岁。求第5个人多少岁。
分析: 10 n 1 age n age n-1 +2 n 1
程序如下:
#include
int age int n if n 1 return 10;
else
return age n - 1 + 2; void main printf age: %d\n, age 5 ; 输出结果?
【2】反向输出一个整数(非数值问题)
非数值问题的分析无法象数值问题那样能得出一个初值和递归函数式,但思路是相同的。
分析方法:
①简化问题:设要输出的正整数只有一位,则“反向输出”问题可简化为输出一位整数。
②对大于10的正整数,逻辑上可分为两部分:个位上的数字和个位以前的全部数字。将个位以前的全部数字看成一个整体,则为了反向输出这个大于10的正整数,可按以下步骤: a、输出个位上的数字; b、将个位除外的其他数字作为一个新的整数,重复a步骤的操作。
其中b问题只是对原问题在规模上进行了缩小——递归。
所以,可将反向输出一个正整数的算法归纳为:
if (n为一位整数)
输出n;
else 输出n的个位数字;
对剩余数字组成的新整数重复“反向输出”操作; #include
void printn int x /*反向输出整数x*/ if x 0 x 9 /*若x为一位整数*/
printf %d, x ; /*则输出整数x*/
else /*否则*/ printf %d, x % 10 ; /*输出x的个位数字*/
printn x / 10 ; /*将x中除个位数字外的全部数字形成新的x后,继续递归操作*/ void main int n;
scanf %d, n ;
if n 0 n -n;
putchar - ; printn n ;
printf \n ; 执行:Input n 12345
结果:?
执行:Input n -12479
结果:?
【讨论】Input n 123456
结果为什么是-6167?
原因:1座机电话号码 1 1110 0010 0100 00002
int类型的数实际只能存入16位,即1110 0010 0100 00002
第1位为符号位,其余各位取反后再加1,得原码1001 1101 1100 0000 真值-761610
三、选做题(至少选一题)
写一个判别素数的函数,在主函数输人一个整数,输出是否素数的信息。
本程序可以准备以下测试数据:17、34、2、l、0。分别输
文档评论(0)