语言程序设计指导书(编辑修改稿)内容摘要:

位 2) 从终端输入两个实数和一个四则运算符(+、-、 *、 /) ,执行相应的运算并输出运算结果。 (如输入 12+4,结果为 48) 【编程点拨】 ( 1)先用 scanf 函数,输入四则运算的两个操作数和运算符,分别保存在不同的变量,注意保存运算符的变量只能是字符型 ( 2)对运算符变量进行判断,根据运算规则,编写相应的表达式求运算结果 【 预习报告 】 1 流程图 代码 2 流程图 代码 3 流程图 代码 【 实验报告 】 【 思考题 】 ( 1)对于编程题 2,如何使用 if语句嵌套的方式和 switch语句的方式实现 ( 2)对于多分支结构,使用 if„ else if 还是使用嵌套结构,需要注意什么。 ( 3)编写分支结构时,条件的编写需要注意什么 实验四 循环结构程序设计 【 实验目的 】 掌握使用 for、 while和 do„ while语句实现循环程序设计 理解循环条件、循环体 掌握 break、 continue语句的使用 【 实验性质 】 验证性 【 实验要求 】 认真阅读本次实验的目的,了解本次实验要求掌握的内容 在程序改错题旁,将程序中存在的错误修改过来 将编程题的代码在预习报告中写出来 在实验时,将实验要求的基本题(程序改错和编程题)根据预习报告中编写的代码,在 VC环境中编写出来 在 VC中将编写的程序编译、调试,能正确运行结果 将正确程序上传 FTP服务器 争 取完成选作题 【 实验内容 】 程序改错 1) 编写程序, 求 1!+2!+3!+...+10!的和 , 源代码如下,程序中存在错误,请将其改正写在旁边。 include main(){ int i。 long sum,temp。 /*定义变量 */ for(i=1,i=10,i++){/*循环 */ temp=temp+i。 /*计算 i的阶乘 */ sum=sum*temp。 /*求和 */ } printf(1!+2!+3!+.....10!=%d,sum)。 } 编程题 1) 编写程序, 打印出所有的 “ abcd=(ab+cd)2”性质的数,例如 3025=( 30+25) 2。 【要求 】 (1)打印的数字占 8个字符宽,每行显示 3个 (2)使用 for语句实现 2) 有一分数序列: 1/22/3+3/55/8+8/1313/21..., 求出这个数列的前 20项之和。 【要求 】 (1)和需要保留两位小数 (2)使用 for语句实现 3) 从键盘输入一个数 n,打印高度为 2*n1行的菱形,例如: n=4时,打印图形如下: 【要求 】 (1)打 印的高度需要通过键盘输入的 n控制 (2)使用 for语句实现 3 选作题 1) 一个数如恰好等于它的因子之和,这个数就称为“完数”。 编写一程序找出 1000以内的所有完数,并输出其因子( 6是一个 完数 ,它的因子是 1,2,3)。 【编程点拨 】 (1)使用 for循环,遍历 11000之内的所有数 n (2)在内层循环中,遍历比 n的数,判断其是否是 n的因子,如果是将其加到累加器。 (3)内层循环结束时,判断累加器中的数是否和 n相当,如果是则输出。 2) 输入一个字母,输出由这个字母决定其高度的字符“金字塔”。 例如 输入小写字母d,则输出左边的图形,如输入大写字母 D,则输出右边图形。 【编程点拨 】 (1)首先根据输入的字符判断需要输出的字母是大写还是小写,以及需要输出的行数 (2)在外层循环中控制行数 (3)内层循环控制输出每一行,对每一行可分为两部分:从首字母到该行的最大字母,从该行最大字母的前一个字母到首字母如第 3行是 ABC和 BA,分别用两个循环实现。 (4)每一行的最大字母跟行号有关系,请注意其变化规律。 A A B A A B C B A A B C D C B A a a b a a b c b a a b c d c b a * * * * * * * * * * * * * * * * * * * * * * * * * 【 预习报告 】 1 流程图 代码 2 流 程图 代码 3 流程图 代码 【 实验报告 】 【 思考题 】 区分 while和 do„ while的区别,使用 do„ while改造教材 P61页中例 42程序 什么时候使用 for语句比较方便 break和循环条件有什么联系和区别,什么时候使用 break 实验五 函数程序设计 【 实验目的 】 掌握函数的定义和调用 掌 握使用函数编写程序 掌握函数参数传递形式和返回值的概念 【 实验性质 】 验证性 【 实验要求 】 认真阅读本次实验的目的,了解本次实验要求掌握的内容 在程序改错题旁,将程序中存在的错误修改过来 将编程题的代码在预习报告中写出来 在实验时,将实验要求的基本题(程序改错和编程题)根据预习报告中编写的代码,在 VC环境中编写出来 在 VC中将编写的程序编译、调试,能正确运行结果 将正确程序上传 FTP服务器 争取完成选作题 【 实验内容 】 程序改错 1) 下面程序从键盘输入两个数,输 出两个数的最大公约数和最小公倍数,源代码如下,程序中存在错误,请将其改正写在旁边。 include main(){ int x,y,acd,amd。 /*定义变量, acd保存最大公约数 ,amd保存最小公倍数 */ printf(请输入两个数: /n)。 /*提示输入 */ scanf(%d,%d,amp。 x,amp。 y)。 if(xy){/*如果 xy,两个值互换,保证第一个参数为小值 */ x=y。 y=x。 } acd=acd(int m1,int m2)。 /*调用函数求最大公约数 */ amd=(x*y)/acd。 /*求最小公倍数 */ printf(最大公约数 =%d,最小公倍数 =%d,acd,amc)。 } /** 函数功能:使用辗转相除法求两个数的最大公约数 参数 m1:两个数中较小者 参数 m2:两个数中较大者 返回值 :m1和 m2的最大公约数 **/ int acd(int m1,int m2)。 { int r。 while (m1=0){/*使用辗转相除法求最大公约数 */ r=m2%m1。 m1=r。 m2=m1。 } return r。 /*返回最大公约数 */ } 编程题 1) 若正整数 A的所有因子 (包括 1但不包括自身,下同 )之和为 B,而 B的因子之和为 A,则称 A和 B为一对亲密数。 例如, 6的因子之和为 1+2+3=6,因此 6与 6为一对亲密数 (即 6自身构成一对亲密数 );又如, 220的因子之和为 l+2+4+5+10+11+20+22+44+55+110=284,而284的因子之和为 1+2+4+71+142=220,因此, 220与 284为一对亲密数。 编写程序,求 500以内的所有亲密数对。 【要求 】 (1)编制 facsum(n) 函数,返回 n的所有因子 (包括 1但不包括自身 )之和。 (2)在 main函数中调用 facsum(),寻找并输出 500以内的所有亲密数对。 (3)输出要有文字说明。 并且小数在前、大数在后,去掉重复的数对。 (4)采用程序改错题的的编码风格对源代码做注释 2) 计算并输出 !n)!nm( !m 【要求 】 (1)编制一个函数 pq(n),返回 n!值。 (2)在 main函数中,从键盘输入 m与 n, 调用函数 pq计算。 (3)在 main 函数中,输入 m与 n 之前要有提示,并检查输入数据的合理性 (m≥ n≥ O),对于不合理的输入,应输出出错信息,不再进行计算。 (4)采用程序改错题的的编码风格对源代码做注释 3)使用函数的方法求 1000 之内的自守数 ,自守数 是指一个数的平方的尾数等于该数自身的自然数。 例如: 252=625 ; 762=5776; 93762=87909376 (1)编制一个 函数 isAutomorphic (n),判 断 n是否为自守数数,如果是返回 1,如果不是返回 0。 (2)在 main函数 中,使用 for循环,调用函数 isAutomorphic判断 n是否为自守数。 (3) 打印的数字占 8个字符宽,每行显示 5个自守数。 (4)采用程序改错题的的编码风格对源代码做注释 3 选作题 1)已知,  !37!25!13)( 753 xxxxxs ,编写一程序,从键盘输入 x,求 s(x)的值(计算后面的 20项的和)。 2) 用递归方法,计算 13+23+33+43„„ +n3的值, n的值由键盘输入。 【编程点拨】假设用 f(n)表示 13+23+33+43„„ +n3,则可用以下公式表示: 1 当 n=1时 f(n)= n3 +f(n1) 当 n1时 根据上述的递归关系式,编写函数 f()。 【 预习报告 】 1 流程图 代码 2 流程图 代码 3 流程图 代码 【 实验报告 】 【 思考题 】 函数调用时,参数是如何传递的 如果在函数中有多条 return语句,程序执行会如何处理,如果想返回多个值,应该怎么办 ? 如果函数在执行时,需要得到上一次该函数调用时变量的值该怎么办,如果函数想使用别的函数中的变量的值该怎么办 实验六 数组程序设计 【 实验目的 】 掌握使用一维数组编程方法 掌握使用字符数组处理字符串的方法 了解二维数组 【 实验性质 】 验证性 【 实验要求 】 认真阅读本次实验的目的,了解本次 实验要求掌握的内容 在程序改错题旁,将程序中存在的错误修改过来 将编程题的代码在预习报告中写出来 在实验时,将实。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。