C语言程序设计实训指导书(3)

2019-05-26 18:14

#include “stdio.h” main() {

char ch;

while((ch=getchar( ))!=?\\n?) {

if(ch>=?A?&&ch<=?Z?) ch=ch+32; putchar(ch); } }

程序4、编写程序求 20+21+22+2 3+···+263 的和 。 算法思路: 变量设定:

s:存放累加和; t:存放每项的值; i:为循环次数; 算法分析:

1、循环累加,用 s=s+t; 或 s+=t; 2、每项可递推计算, t=t*2; 或 t*=2; 3、初值 s=1,t=1,循环63次。 #include “stdio.h” main( ) {

int i;

float s=1,t=1; for (i=1;i<=63;i++) { t*=2; s+=t; }

printf(“s=%e\\n”,s); }

程序5、从键盘上任意输入一个正整数,判断其是否为素数。

素数:除了1和它本身之外没有其他因子的数。换句话说只要有因子(除了1和它本身之外)则该数一定不是素数 算法思路:

1、从键盘输入一正整数,存入变量m中;

2、测定m是否有约数,利用变量i=2-m-1,逐个验证m%i是否等于0;

3、如果m%i==0,说明m有约数,不符合素数的条件,后续的i不必验证,退出验证过程;

4、根据退出的条件判定m是否有约数,若非正常退出说明m有约数i,否则没有约数,即为素数。

#include “stdio.h” main( ) {

int m,i;

scanf(\ for(i=2;i<=m-1;i++) if(m%i==0) break;

if(i>m-1) printf(\ else printf(\}

实训题目

1、任意输入两个整数,求它们的最大公约数。 2、打印形状为直角三角形的乘法口诀。

3、输入一个包含有三个数字字符的字符串,把该字符串转换为整形数据输出。(如:输入字符串123,则输出整形数据123)

第三部分 结构化程序设计与算法认识 (结构化程序设计与算法基本知识)

[实训目的及要求]简单掌握算法的概念,并在编程中进行具体算法的应用。 穷举法:

程序1:找出100之内的所有素数并输出。 算法分析:

这是一个穷举问题,通过对2-100之内的数据逐一进行验证是否是素数,从而解决该问题。

1、设定变量n:2-100;

2、判断n是否为素数,是则输出当前的n,否则不输出; 3、更新n值,返回第1步;

4、以上3步重复执行,直到n的值超过100。 #include “stdio.h” main( ) {

int m,i;

for(m=2;m<=100;m++) { for(i=2;i<=m-1;i++) if(m%i==0) break; if(i>m-1) printf(\ } }

程序2:搬砖问题:36块砖,36人搬,男搬4,女搬3,两个小孩抬1砖,要求一次搬完,问男、女和小孩各若干? 算法分析:

这是一个多重穷举问题,根据题意,可知: 1、男人(men)的可能取值范围为:0-9; 2、女人(women)的可能取值范围为:0-12; 3、孩子(children)的可能取值范围为:0-36; 要求这三个数的组合符合以下条件: men*4+women*3+children/2==36

要求children为偶数。

采用穷举法,首先考虑men分别取0-8中的各值时,找符合题意的women和children,得到: for(men=0;men<=9;men++)

找符合条件的women和children; 进一步细化:

for(women=0;women<=12;women++) 找符合条件的children; #include “stdio.h” main() {

int men,women,children; men=0;

while(men<=8) {women=0;

while(women<=11)

{children=36-men-women;

if((men*4+women*3+children/2= =36)&&children%2= =0)

printf(“men=%d,women=%d,children=%d\\n”,men,women,children); women++;} men++;} }

程序3:要登上n阶楼梯,每一步允许跨1阶或2阶,问共有多少种登楼梯的方法? 算法分析:

设每步1阶走了m1步,每步2阶走了m2步,则有方程: m1+2*m2=n

能够满足上述方程式的m1和m2的一对组合就为一种方法,所有满足该方程式的组合数就是方法总数。

#include “stdio.h” main() {

int m1,m2,count=0,n; for(m1=0;m<=n;m1++)

for(m2=0;m2<=n/2;m2++)

if (m1+2*m2= =n) count++; printf(“count=%d\\n”,count); }

程序4:计算和统计旅客运费程序 。 由键盘输入旅客行李重量(w),按公式 :

若( w<=50kg )f=1.5*w ,若(w>50kg)f=1.5*50 + 2.8*(w-50) ( w>50kg ) 计算运费,要求:

(1)打印每位旅客的顺序号,行李重量,应付运费 ; (2)假定每天最多办理100人的行李托运手续或当w≤0时循环结束, 下班时打印出全天的运费总收入和办理的总人数 。 思路分析:

(1) 输入行李重量(w);若w<=0,转(5)

(2) 计算运费(f);

(3) 确定顺序号(num);

(4) 打印 num , w , f;若num<=100转(1); (5) 累加运费收入 total=total + f; 方法一(while结构) #include “stdio.h” main( ) {

int num=0;

float w,f,total=0; scanf(\

while (w>0&&num<100 ) { if (w<=50) f=1.5*w;

else f=1.5*50+2.8*(w-50); num++;

printf ( \ total+=f; scanf (\ }

printf (\ TotalIncome=.2f\\n\

}

方法二(do-while结构) #include “stdio.h” main( ) {

int num=0;

float w,f,total=0; do

{ scanf(\ if (w<=0) break; if (w<=50) f=1.5*w; else f=1.5*50+2.8*(w-50); num++;

printf ( \ %8.2f\\n\ total+=f;

} while (num<100);

printf (\ TotalIncome=.2f\\n\ }

方法三(for结构) #include “stdio.h” main( ) {

int num;

float w,f,total=0; scanf(\

for (num=1;w>0&&num<=100;num++) {if (w<=50) f=1.5*w;

else f=1.5*50+2.8*(w-50);

printf ( \ %8.2f\\n\ total+=f; scanf(\ }

printf (\ TotalIncome=.2f\\n\ }

实训题目

1、任意输入一行字符,分别统计字母、数字、空格和其它字符的个数。

2、打印1000之内的所有完数。一个数如果正好等于它的因子之和,这个数就称之为完数。 3、实现菜单功能,当输入为“退出”的控制时结束 。 ************************************* * 1---input * * 2---search * * 3---sort * * 4---delete * * 0---exit * ************************************* please input your choice(0---4):); 4、编程实现10道+、-、*、/的运算。

第四部分 数据类型构造与模块化程序设计

(数组的构造与应用)

[实训目的及要求] 数组是一种构造类型,在解决问题中使用非常普遍,通过本次实训内容,使学生对数组类型有一个系统的认识,并能灵活的在具体问题中进行应用。

程序1:一个班有30个同学,通过键盘输入成绩,并打印输出,每行输出10个同学的成绩。 算法分析:

(1)定义一个数组用来存放30个成绩数据, int score[30];

(2)用循环结构实现成绩输入; for(i=0;i<30;i++)

scanf(“%d”,&score[i]);

(3)用循环结构实现成绩输出,并控制换行; for(i=0;i<30;i++)

{printf(“]”,score[i]);

if((i+1)==0) printf(“\\n”);} #include “stdio.h” main() {

int i;

int score[30]; /*成绩数组的定义*/ for(i=0;i<30;i++) /*输入成绩*/ scanf(“%d”,&score[i]);

for(i=0;i<30;i++) /*输出成绩*/ {printf(“]”,score[i]);

if((i+1)==0) printf(“\\n”);}/*输出10个数据换行*/ }


C语言程序设计实训指导书(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:人力资源管理开题报告需要文献集锦

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: