C语言实训报告-5_第1页
C语言实训报告-5_第2页
C语言实训报告-5_第3页
C语言实训报告-5_第4页
C语言实训报告-5_第5页
已阅读5页,还剩15页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

广东交通职业技术学院交通信息学院C语言课程设计分析报告专业:班级:学号:姓名:指导教师:日期:成绩:C语言课程设计项目任务书专业:电气自动化班级:电气121教师:曾素勤2013年6月7日课程设计题目名称C语言程序设计及分析题目内容和要求:(一)、题目内容:运用本课程所学的顺序结构、选择结构、循环结构、数组、指针、函数进行相关程序的分析设计。 (二)、要求:1、每人完成10个题目的分析(包括必做题6个,综合应用题2个,选做题2个);2、要求完成各程序的程序调试及分析,画出程序流程图;3、完成设计报告。注:如希望另做课题,需经教师同意后按要求进行。需要使用的设备:硬件:PC机软件:Win2000或Win2003/XP、VC++6.0编程环境。评分方法和标准:1、评分方法:学生自行完成程序设计,并提交以下资料(1)交电子稿,内容包括:A、设计报告、程序清单及程序流程图;B、可运行的程序。(2)另交文字打印稿,并附项目任务书、课程设计总结与指导教师评阅表。2、评分标准:(1)程序设计(20%)(2)可运行的程序(20%)(3)设计报告(包括格式、代码、流程图、相关说明等)(40%)(4)出勤、纪律考核(20%)自选项目:教师意见:年月日注:内容较多时,可以附页。交通信息学院制表C语言程序设计内容题目1:如果从键盘输入一个大写字母,要求改用小写字母输出;如果从键盘输入一个小写字母,要求改用大写字母输出。程序:#include"stdio.h"main(){ charx; scanf("%c",&x); if(x>='a'&&x<='z') printf("%c\n",x-32); if(x>='A'&&x<='Z') printf("%c\n",x+32);}流程图:开始开始输入xa>=x>=zA>=x>=Zprintf("%c\n",x-32)printf("%c\n",x+32)结束否是是否题目2:计算器设计:编写程序,输入两个整数,和+、-、*、/之中的任意一个运算符,输出计算结果。程序:#include"stdio.h"main(){ inta,b; charx; scanf("%d%c%d",&a,&x,&b); switch(x) { case'+': printf("a+b=%d\n",a+b); break; case'-': printf("a-b=%d\n",a-b); break; case'*': printf("a*b=%d\n",a*b); break; case'/': if(b!=0) printf("a/b=%d\n",a/b); else printf("无法计算\n"); break; }}流程图:开始开始Switch(x)x=+,-,*,/case+:a+bcase-:a-bcase*:a*bcase/:a/b结束否是题目3:利用while循环语句,控制从键盘上不断地输入数字1~7,然后根据输入的数字,利用switch语句,输出对应的英文星期名。循环直至键盘上输入的不是数字1~7时停止。程序:#include"stdio.h"main(){ intx; printf("从键盘不断输入数字"); scanf("%d",&x); while(x<=7&&x!=0) { switch(x) { case1: printf("monday\n",x); break; case2: printf("tuesday\n",x); break; case3: printf("wdnesday\n",x); break; case4: printf("thuresday\n",x); break; case5: printf("friday\n",x); break; case6: printf("saturday\n",x); break; case7: printf("sunday\n",x); break; } scanf("%d",&x); }流程图:开始开始从键盘不断输入数字1>=x>=7case1;输入mondaycase2;输入thesdaycase3;输入wdnesdaycase1;输入thuresdaycase5;输入fridaycase6;输入staurdaycase1;输入sunday1>=x>=7结束否是是x=1x=2x=3x=4x=5x=6x=7题目4:从键盘上输入一个字符串,并存入一维数组中,找出字符串中的最大字符和最小字符。然后打印输出。程序:#include"stdio.h"main(){ inti; charmax,min,num[30]; printf("请输入一串字符:\n"); scanf("%s",num); max=num[0];min=num[0];for(i=1;num[i]!='\0';i++) { if(max<num[i]) max=num[i]; if(min>num[i]) min=num[i]; }printf("最大为:%c\n最小为:%c\n",max,min); }流程图:开始开始请输入一段字符请输入一段字符max=min=0max=min=0i=1i=1num[i]!='\0'num[i]!='\0'否否是是max<num[i]max<num[i]是是max=num[i]max=num[i]否否否否min>num[i]min>num[i]是是min=num[i]min=num[i]i++i++输出minmax输出minmax结束结束题目5:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了3个。第二天早上又将剩下的桃子吃掉一半,又多吃三个。以后每天早上都吃了前一天剩下的一半零3个。到第10天早上想再吃时,就只剩下一个桃子了。求第一天共摘多少个桃子。程序:#include"stdio.h"main(){ inti=1,a=1; while(i<=9) { a=(a+3)*2; i=i++; } printf("%d\n",a);}开始流程图:开始否否是i<=9是i<=9a=(a+3)*2;i=i++;输出一共有多少桃子输出一共有多少桃子结束结束题目6:我国古代数学家张丘键在《算经》中出了一道题“鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?程序:#include"stdio.h"main(){ intx,y,z; for(x=0;x<=100;x++) for(y=0;y<=100;y++) for(z=0;z<=100;z=z+3) { if((x+y+z==100)&&(5*x+3*y+z/3==100)) printf("公鸡%d只,母鸡%d只,小鸡%d只\n",x,y,z); }}开始流程图:开始x,y,zx=0;y=0;z=0x<=100;y<=100;z<=100?x,y,zx=0;y=0;z=0x<=100;y<=100;z<=100?z=z+3z=z+3y=y++y=y++YYx=x++(x+y+z==100)&&(5*x+3*y+z/3==100)x=x++(x+y+z==100)&&(5*x+3*y+z/3==100)输出x;y;zN输出x;y;zNYY输出x;y;z输出x;y;z结束结束题目7:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第3个月后每个月又生一对兔子。假设所有兔子不死,问每个月的兔子总数为多少?程序:#include"stdio.h"main(){ intx1=1,x2=0,x,i=1,n; printf("请输入您要计算的最后一个月的月数"); scanf("%d",&n); while(i<=n) { x=x1+x2; x1=x2; x2=x; printf("第%d个月的兔子总数为%d\n",i,x); i=i++; }}流程图:开始开始x1=1;x2=0;i=1;xx1=1;x2=0;i=1;x输入n输入nNNi<=n?i<=n?YYi=i++x=x1+x2i=i++x=x1+x2x1=x2x1=x2x2=xx2=x结束结束输出i;x输出i;x题目8:为了使电文保密,往往按一定规律将其转换成密码,收报人再按约定的规律将其译回原文。例如:将每一个字母变成它后面的第4字母,即将A变成E,B变成F,…,Z变成D,非字母字符不变,“!”作为电文结束标志。要求:输入一行字符,输出其相应的密码。程序:#include"stdio.h"main(){ charch; printf("请输入一些字符,最后输入'!'结束\n");scanf("%c",&ch); for(;ch!='!';) { if((ch>=65&&ch<=86)||(ch>=97&&ch<=118)) printf("%c",ch+4); elseif((ch>86&&ch<=90)||(ch>118&&ch<=122)) printf("%c",ch+4-26); else printf("%c\n",ch); scanf("%c",&ch); } printf("\n");}流程图:开始开始输入ch输入chch!=ch!=’!’?是是 ch+465<=ch<=86ch+465<=ch<=86是否ch+4-26否ch+4-26 是86<=ch<是86<=ch<=90否否97<=<=11897<=<=118是ch+4 ch+4否否 118<=ch<=122118<=ch<=122是ch+4-26否否chch结束结束题目9:约瑟夫问题15个基督徒和15个异教徒在海上遇险,必须将一半的人投入大海,其余的人才能幸免于难,于是想了一个办法:30个人围成一个圆圈,从第一个人开始依次报数,每数到第9个人就将他扔入大海,如此循环直到仅余15个人为止。问怎样排法,才能使每次投入大海的都是异教徒。程序:#include"stdio.h"main(){ inti,k,x,n,a[30],*p;/*定义整型变量、数组、指针变量*/ p=a;/*让p指向a数组*/ for(i=0;i<30;i++) *(p+i)=i+1; printf("非教徒的位置是:\n"); n=0; k=0; i=0; while(n<15) {if(*(p+i)!=0) k++; if(k==9) { printf("%d\n",*(p+i)); n++; *(p+i)=0; k=0; } i++; if(i==30) i=0; } printf("\n教徒的位置是:\n"); for(i=0;i<30;i++) if(*(p+i)!=0) printf("%d\n",*(p+i));}流程图:开始开始定义整型变量i,k,x,n,a[30],*pp=ai=0?*(p+i)=i+1printf("非教徒的位置是:\n")n=0;k=0;i=0;?k=k+1k==9?printf("%d\n",*(p+i));n++;*(p+i)=0;k=0;i=i+1i==30?i=0printf("\n教徒的位置是:\n");i=0i<30?*(p+i)!=0?printf("%d\n",*(p+i))结束i=i+1i=i+1YYYYYYYNNNNNN题目10:指针的运用往数组里输入一个字符串,然后用一个指针变量指向它。借助该指针变量,按正向和反向顺序将字符串输出。程序:#include<stdio.h>#include<stdlib.h>#include<string.h>main(){ char*s; inti,L; s=(char*) malloc(sizeof(char)); printf("请输入字符串\n"); scanf("%s",s); L=strlen(s); printf("正向顺序\n"); for(i=0;i<L;i++) { printf("%c",*(s++)); } printf("\n反向顺序\n"); for(i=0;i<L;i++) { printf("%c",*(--s)); } printf("\n");}流程图:开始开始定义字符变量*s,整形变量i,Ls=(char*);malloc(sizeof(char));输入字符串sL=strlen(s);printf("正向顺序\n");i=0i<L?printf("%c",*(s++));printf("\n反向顺序\n");i=0i<L?printf("%c",*(--s));printf("\n");i=i+1i=i+1YYNN结束实习总结与评分表:课程设计总结与指导教师评阅表学生姓名余跃文学号47班级电气121专业电气自动化指导教师姓名周淦淼课题名称C语言程序设计与分析个人总结:(包括以下方面

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论