[C语言课程设计题目](丁海军)

合集下载

C语言课程设计报告书样本

C语言课程设计报告书样本

海南大学三亚学院《C语言程序设计》课程设计题目:学生成绩管理系统专业:电子信息工程班级:电信1001班姓名:刘孝逢学号:1010720057指导老师:刘小飞设计时间:2011年7月4日~2011年7月8日目录《C语言程序设计》课程设计 (1)1. 程序分析与设计 (3)2.流程图 (3)3. 源程序清单 (4)4.调试过程 (4)5.程序有待改进的地方 (5)6. 本次实习的收获和建议 (5)参考文献 (5)附录 (5)学生成绩管理系统1. 程序分析与设计(正文内容使用宋体小4号字。

打印版面上空2.5cm,下空2cm,左空2.5cm,右空2cm(左装订),固定行距,24磅。

页眉和页脚用宋体,小5号字居中标明)利用循环使每个学生的三门功课的成绩相加,然后再把和除以三就得到了平均成绩。

接着用冒泡法利用平均分的高低排出名次。

最后用将每个学生的信息输出学号导论离散 c语言英语数学1 45 78 90 67 562 76 87 89 96 663 77 83 67 45 744 55 67 66 87 515 67 78 98 64 356 66 78 93 76 65各科平均: 64.33333333 78.5 83.83333333 72.5 57.83333333各科最高: 77 87 98 96 74各分数段人数:90-100 80-90 70-80 60-70 60-0导论离散英语数学查找:各科在平均分以上的人的学号2.流程图3. 源程序清单(此部分采用小五号宋体,行间距-固定值14)#include<stdio.h>struct ave_cou{float ave_couM;float ave_couE;float ave_couC;}ave_c;void input(ave_c [],int n)void input(student s[],int n)//输入以及求总分{int sum=0;for(int i=0;i<n;i++){printf("输入第%d个学生的姓名:\n",i+1);gets(s[i].name);printf("输入第%d个学生的学号:\n",i+1);scanf("%d",&s[i].num);printf("输入第%d个学生的英语成绩:\n",i+1);scanf("%d",&s[i].eng);printf("输入第%d个学生的程序设计成绩:\n",i+1);scanf("%d",&s[i].pro);printf("输入第%d个学生的数学成绩:\n",i+1);scanf("%d",&s[i].maths);sum=s[i].eng+s[i].pro+s[i].maths;printf("总分为:%d\n",sum);4.调试过程在程序运行的过程中,出现了很多的错误。

东北石油大学C实验教案2017年度第3学期

东北石油大学C实验教案2017年度第3学期

的值为 5,b 的值为 1。 5. 输入三角形的三边长,用海伦公式求其面积。
1. 数据类型与输出格式是否可以不一致?
2. 将程序 1 中的输出格式%d 分别改为%3d、%-3d、%03d、%-03d,将

显示什么结果?
考 题
3. 将程序 1 中的输出格式%6.1f 分别改为%-6.1f、%6.3f、%.1f,将显示 什么结果?
实验
学生在计算中心机房进行实验,每个机房都提供高档的奔腾Ⅳ微机,并且安
环境 装了全部的教学用软件,每个学生一台微机,能够满足教学要求。
实验 学期
2016-2017 学年第 3、4 学期
实验名称 顺序结构程序设计 实验次数 第 1 次 是否上交报告 否
实验内容(教学过程)
备注
1. 掌握程序调试的方法。
4. 将某一程序中的一个变量声明删除,会有什么情况发生?
5. 使用 scanf 函数输入数据时。是否可以随意输入?
6. 数学表达式和 C 表达式的表示方式有何区别?
实 验 报 告 要 求
实验名称 选择结构程序设计 实验次数 第 2 次 是否上交报告

实验内容(教学过程)
备注

1.掌握关系运算和逻辑运算的应用。
学位
硕士
是否 主讲

实验条件
每生一台计算机
专业
教材 讲义
应数、统计、信计、 授课班级
给水、土木
应数 161,统计 161, 信计 161-2,给水 161-2,土木 161-2
授课地点
教 材:
《C 程序设计教程》(第 2 版)马瑞民等 清华大学出版社 2015
计算中心机房
实验讲义: 《C 程序设计实验指导与习题集》(第 2 版) 衣治安等 清华大学出版社 2015

华中科技大学自动化学院C语言课设实验报告

华中科技大学自动化学院C语言课设实验报告

华中科技大学自动化学院《C语言程序设计》课程设计实验报告题目:南海军演模拟系统专业:测控班级: 1301学号: U201314492 U201314494姓名:柳焜剑杨渊超成绩:指导教师:周凯波完成日期:2014年11 月 1 日一系统功能结构模块及程序结构二各模块的功能1、maine();/*这个函数将第一张欢迎图片展示出来*/2、void init();/*画图初始化*/3、process0();process00();process01();process02();process03();process03A();process03B();/*实现各个界面的功能,通过if语句来执行不同的界面切换*/4、abc();form();bfjj1();bfjj2();bfjj3();help();/*画图函数以及返回mouse函数,通过返回到达不同界面下的不同按钮效果*/5、end/*结束函数 */6、outhz ()/*汉字和输入函数*7、menue();/*菜单函数,显示主菜单,四个按钮*/8 ……三试验结果1、主菜单页面2、军舰指导3、军演开始一、体会这是我们第一次做这么大型的且比较复杂的一个C程序,从暑假开始边看书边慢慢尝试到如今全部做出来花费了许多时间与精力。

以前接触到的C程序设计都是最简单、最基本的编程,就连最后的期末考试也只是一些小程序,并不像课程设计这样庞大复杂。

小程序是考察我们对基本概念的熟识,而这种大程序则是考察了我们对整体构架的设计以及各种小程序的拼接,看似不难,实则会遇到许多意想不到的困难,当然,这过程当中我们学到了许多。

后来经过网上的搜索资料以及和其他同学的讨论,对这个军演系统进行一些列分块,拆成几个部分,然后再逐个突破,这样显得有条理且方便。

接下来是真正开始动手写程序,随之而来的是一些列的问题,其中最困扰我的是内存模式。

在所有内核做好之后,接下来就是界面的问题,最开始的时候我考虑做图形界面,但是由于时间比较紧迫,不得不放弃,只好做了一个简易菜单,菜单设计容易,可是将界面和程序结合起来却又是一个难题。

C语言课程设计报告(约瑟夫环)胡存夫

C语言课程设计报告(约瑟夫环)胡存夫

C语言课程设计报告(约瑟夫环)胡存夫沈阳航空航天大学课程设计报告课程设计名称:C语言课程设计课程设计题目:约瑟夫环院:计算机学院专业:计算机科学与技术班级:3410301学号:2013040103023姓名:胡存夫指导教师:丁一军沈阳航空航天大学课程设计报告目录 1 课程设计介绍............................................................... ............................................. 1 课程设计内容及要求............................................................... ............................. 1 系统需求............................................................... ................................................. 1 2 课程设计原理............................................................... ............................................. 3 课设题目粗略分析............................................................... ................................. 3 功能模块图............................................................... ...................................... 5 流程图分析............................................................... ...................................... 5 3 调试与分析............................................................... ............................................... 10 调试过程............................................................... .. (10)沈阳航空航天大学课程设计报告原理图介绍第三步:第二次,1号出列 1 3 1 2 约瑟夫环原理演示图 3 4 5 6 7 7 2 4 8 4 第一步:给第一个人赋初始密码为:20则从它开始向下走20次,到6第四步:第三次,4号出列最后排序后的密码序列:第二部:第一次停下的位置,此时6号出列,并将他的值作为新的m值,即:新的m=8;从7好开始继续向下走8次,到18 6 3 1 2 4 4 7 1 2 7 3 4 5 图约瑟夫环原理演示图 4 沈阳航空航天大学课程设计报告功能模块图Case 1:一个简单的输出函数,用于说明约瑟夫环;void instruction() Case 2:建立的约瑟夫环,并输出已建立的约瑟夫环:createList(LNode **ppHead,int n) 输出该约瑟夫环的每个人的出列顺序: jose(LNode *ppHead,int Case 0:default : 输入0,退出exit(0);主函数调用函数;main() 菜单函数;void menu() 图约瑟夫环函数调用关系图流程图分析 5 沈阳航空航天大学课程设计报告1. Main()函createList; 创建储存玩家密码的循环单链表的方法从主函数中获取玩家信息n 如果n>0 是否退出创建循环单链表,储存各个玩家密码创建链表完成返回主函数main() 图创建链表函数的数据流程图 2.6 沈阳航空航天大学课程设计报告Main()函jose();出队函数出队处理的方法从循环链表中按初始密码依次扫描,找出对应的玩家序列输出其持有的密码i=ppHead->pwd; j=ppHead->num; 移动浮标指针m_pwd=ppHead->pwd; 输出密码后,删除相应的结点,并释放所占的储存空间free(ppHead); ppHead=p->next; 图出队函数的数据流程图 3. void instruction() {printf(\\\n\ printf(\约瑟夫环:\\n\ printf(\ 编号为1,2,3,4?,n的n个人按顺时针方向围坐一圈,每人持有一个密\\n\ 执行完后返回主函数7 沈阳航空航天大学课程设计报告printf(\码(正整数).一开始任选一个正整数作为报数的上限值m,从第一个人开始\\n\ printf(\按顺时针方向自1开始顺序报数,报到时停止.报m的人出列,将他的密码\\n\ printf(\作为新的m值,从他在顺时针方向上的下一人开始重新从1报数,如此下去,\\n\ printf(\直到所有人全部出列为止.编程打印出列顺序.\\n\ printf(\ return 0; } 4菜单模块void menu(){ printf(\约瑟夫环*****************************\\n\ printf(\\\n\ printf(\[1]约瑟夫环问题的阐述\\n\ printf(\[2]按要求求解约瑟夫环\\n\ printf(\ [0]退出\\n\ printf(\欢迎使用!****************************\\n\} 8沈阳航空航天大学课程设计报告 5. 9 沈阳航空航天大学课程设计报告Main()开Menu()功能菜单选择要执行的操作功能1:约瑟夫环说明功能2:按要求求解约瑟夫环输入总人数n 输入开始上线数:功能3:退出系统输入每个玩家的密码调用:createList(&ppHead,n); jose(ppHead,m);函数求解所需的密码序列图主函数数据流程图程序运行完,自动返回到功能菜单 3 调试与分析调试过程在调试程序是主要遇到一下几类问题:这是一个使用循环链表的经典问题。

《C语言程序设计》课程整体设计

《C语言程序设计》课程整体设计

第35卷第4期 福 建 电 脑 Vol. 35 No.42019年4月Journal of Fujian ComputerApr. 2019———————————————周军强,男, 1979年生,主要研究领域为软件工程。

E-mail: professorzhou@ 。

《C 语言程序设计》课程整体设计周军强(宁波职业技术学院 浙江 宁波 315000)摘 要 计算机应用的发展日新月异,对程序员的需求量非常大,因此高职院校的计算机软件类专业都开设了软件开发类课程,C 语言作为程序设计入门的课程尤为重要。

而学生刚开始往往是零基础,如何让学生有效的掌握好这门课程,课程的设计非常关键,本文主要对《C 语言程序设计》课程进行整体设计,从而实现课堂的有效教学。

关键词 有效课堂;C 语言;课程设计中图法分类号TP399 DOI:10.16707/ki.fjpc.2019.04.055Integral Design of the C Fundamentals of Programming CourseZHOU Junqiang(Ningbo Polytechnic, Ningbo, China, 315800)1引言程序设计和编程是计算机科学与软件类学生必须掌握的一项技能。

从事软件开发的课程有很多,PHP 、移动APP 、JA V A 等。

这些课程都是学生以后从事IT 开发领域需要学习的重要课程。

《C 语言程序设计》这门课以C 语言作为教学语言,是以后学习其他软件开发课程的基础。

程序设计基础的学习涉及到最基本语言的结构,包括程序的设计方法、顺序结构、选择结构、循环结构、数组等等基础的概念都是以后程序开发的基础[1]。

所以学好《C 语言程序设计》课程可以为以后程序设计开发的学习打下良好的基础。

2学习者分析及应对措施在知识方面,该课程开设在大一上学期。

部分学生在高中的时候接触过程序VB ,有一定的编程相关的概念基础;但仍有部分学生没接触过程序,编程基础相对比较差。

C语言程序设计报告-南海军演模拟系统

C语言程序设计报告-南海军演模拟系统

《C语言程序设计》课程设计实验报告南海军演模拟系统题目:南海军演模拟系统班级:组员:指导教师:上交日期:2015.11.10目录1 引言 (3)1.1背景 (3)1.2编写目的 (3)1.3任务概述 (4)2 需求分析 (4)2.1需求分析 (4)2.2运行环境 (4)3 系统设计 (5)3.1功能需求描述 (5)3.2程序流程图 (5)3.3功能和操作简介(界面) (6)3.4模块划分 (10)3.5结构定义 (10)4算法分析 (10)4.1算法分析 (10)5程序总结 (11)5.1编程过程中的疑难点处理 (11)5.2程序不足之处 (11)6组员分工 (11)7参考资料 (11)8源代码 (12)一. 引言1.1背景南海北靠中国大陆和台湾岛,东接菲律宾群岛,南邻加里曼丹岛和苏门答腊岛,西接中南半岛和马来半岛。

南海是联系中国与世界各地非常重要的海上通道,同时也是太平洋和印度洋之间的海上走廊。

从军事战略上而言,控制了南海岛礁,就意味着直接或间接的控制了从马六甲海峡到日本、从新加坡到香港、从中国广东到菲律宾马尼拉,甚至从东亚到西亚、非洲和欧洲的多数海上通道。

南海岛礁附近海域拥有丰富的资源,渔业资源、航道资源,特别是石油、天然气资源。

从航道上来讲,每年大约有4万多艘船只经过南海海域。

日本、韩国和中国台湾省,90%以上的石油输入要依赖南海这个航道;经过南海航道运输的液化天然气,占世界总贸易额的三分之二。

就中国来讲,通往国外的近40条航线中,超过一半以上的航线经过南海海域。

南海自古以来就是中国领土不可分割的一部分,在1949年前,国际上公认南海主权属于中国;80年代后期,随着南海油气田大规模的勘测和中国的崛起,周边国家纷纷插足南海,以美国为首的日本等国更是以调解者自居,罔顾事实,不断在南海搅局,南海问题越来越多边化、复杂化。

1.2编写目的以南海军演问题为对象,建立简单的军演模型,通过简单的动画模拟出军演中飞机、军舰、潜艇的移动与攻击。

C语言程序设计实例教程(第2版)丁爱萍第4章 选择结构程序设计_百度文库

C语言程序设计实例教程(第2版)丁爱萍第4章 选择结构程序设计_百度文库

本文由xjsir2010贡献 ppt文档可能在WAP端浏览体验不佳。

建议您优先选择TXT,或下载源文件到本机查看。

第4章 选择结构程序设计 章 第4章 选择结构程序设计 章 4.1 关系运算符及其表达式 4.2 逻辑运算符及其表达式 4.3 条件运算符 4.4 单条件选择if语句 单条件选择 语句 4.5 开关分支 开关分支switch语句 语句 习题4 第4章 选择结构程序设计 章 4.1 关系运算符及其表达式 关系表达式是由关系运算符连接表达式构成的。

 1. 关系运算符 1) 关系运算符 关系运算符都是双目运算符,共有如下6种: >,<,>=,<=,==,!= 分别是大于、小于、大于或等于、小于或等于、 等于和不等于。

第4章 选择结构程序设计 章 2) 运算符的优先级和结合性 前4种关系运算符的优先级别相同,后2种也相同,前4 种高于后2种。

关系运算符具有自左至右的结合性。

 关系运算符、算术运算符和赋值运算符之间的优先级次序 为:算术运算符优先级最高,关系运算符次之,赋值运算 符最低。

 2. 关系表达式 1) 关系表达式 由关系运算符组成的表达式称为关系表达式。

 关系运算符两边的运算对象可以是C语言中任意合法 的表达式。

例如,x>y,(x=5)<=y,x==y等。

第4章 选择结构程序设计 章 2) 关系表达式的值 关系表达式的值是整数0(代表结果为逻辑假)或 1(代表结果为逻辑真),在C语言中不存在专门的“逻 辑值”,此处请读者务必清楚。

例如,关系表达式 (x=3)>(y=4)的值为0。

 关系表达式常用在条件语句和循环语句中。

 3) 举例 一般情况下,关系表达式用在选择结构或循环结 构的关系判断中,并不需要输出关系表达式的值,这 里我们为了了解关系表达式的内部运行机制,在例4-1 中可以看到关系表达式的值只能是0或1。

第4章 选择结构程序设计 章 【例4-1】关系表达式示例。

 #include "stdio.h" main( ) { char x='m' , y='n' ; int n ; n=x<y ; printf("%d\n" , n) ; n=x==y-1 ; printf("%d\n" , n) ; n=('y'!='Y')+(5<3)+(y-x==1) ; printf("%d\n" , n) ; } 第4章 选择结构程序设计 章 运行结果: 1 1 2 通过上面的程序可以看出:关系运算的结果为 “真”时,值等于1;结果为“假”时,值等于0。

[C语言课程设计题目](丁海军)

[C语言课程设计题目](丁海军)

C语言课程设计设计题丁海军本手册提供的设计题大致可分为为3类:第一类侧重于算法设计与实现;第二类侧重于文件操作。

(一)算法设计类题目1. Fibonacci数列。

Fibonacci数列的计算公式如下:fib(1) = 1;fib(2) = 1;fib(n) = fib(n-1) + fib(n-2); //对大于等于3的任意n(1)简单变量“数据平移”方法计算Fibonacci数列的第n项(正整数n通过键盘输入):说明变量old1=1,old2=1,newItem;新的Fibonacci项newItem总是“距它最近”的前两项(old1与old2)的累加和。

而后通过“old1=old2; old2=newItem;”进行所谓的“数据平移”。

接着计算另一个新的Fibonacci项newItem,依次循环,直到求出数列的第n项时为止。

(2)使用数组求出Fibonacci数列的第n项(正整数n通过键盘输入)并显示在屏幕上:说明数组f用来存放Fibonacci数列的各项之值,且仅初始化前两个元素f[0]=1,f[1]=1,而后通过f[i]=f[i-2]+f[i-1];依次计算出f[2]到f[n-1](注意f[n-1]恰为所要求出的第n项)并将该值显示在屏幕上。

2.编程序,循环进行如下的处理过程:由计算机生成简单的四则运算题;用户给出答案;计算机判断对错。

直到用户回答说不再继续做了时结束程序。

提示:可让用户选择指定出加、减、乘、除哪一种运算题,以及出一位数还是两位数的运算题;而后通过使用“rand()%10”或“rand()%100”来获得一个0到9的一位整数随机值或得到0到99的两位整数随机值来为用户出题。

还可进一步对用户所做算术题的对错次数进行记录,结束程序时给出一个某种形式的成绩。

3.数的进制转换(1)将输入的2进制数(一个非“0”即“1”的字符串)化为10进制数。

提示:用字符数组a盛放所输入的二进制数;而后从后往前逐一计算每一位的“位权”w (2的0次方、2的1次方、...),再计算“位权”乘以“位值”并累加到一个初值为0的变量value 上,最后输出该value。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言课程设计设计题丁海军本手册提供的设计题大致可分为为3类:第一类侧重于算法设计与实现;第二类侧重于文件操作。

(一)算法设计类题目1. Fibonacci数列。

Fibonacci数列的计算公式如下:fib(1) = 1;fib(2) = 1;fib(n) = fib(n-1) + fib(n-2); //对大于等于3的任意n(1)简单变量“数据平移”方法计算Fibonacci数列的第n项(正整数n通过键盘输入):说明变量old1=1,old2=1,newItem;新的Fibonacci项newItem总是“距它最近”的前两项(old1与old2)的累加和。

而后通过“old1=old2; old2=newItem;”进行所谓的“数据平移”。

接着计算另一个新的Fibonacci项newItem,依次循环,直到求出数列的第n项时为止。

(2)使用数组求出Fibonacci数列的第n项(正整数n通过键盘输入)并显示在屏幕上:说明数组f用来存放Fibonacci数列的各项之值,且仅初始化前两个元素f[0]=1,f[1]=1,而后通过f[i]=f[i-2]+f[i-1];依次计算出f[2]到f[n-1](注意f[n-1]恰为所要求出的第n项)并将该值显示在屏幕上。

2.编程序,循环进行如下的处理过程:由计算机生成简单的四则运算题;用户给出答案;计算机判断对错。

直到用户回答说不再继续做了时结束程序。

提示:可让用户选择指定出加、减、乘、除哪一种运算题,以及出一位数还是两位数的运算题;而后通过使用“rand()%10”或“rand()%100”来获得一个0到9的一位整数随机值或得到0到99的两位整数随机值来为用户出题。

还可进一步对用户所做算术题的对错次数进行记录,结束程序时给出一个某种形式的成绩。

3.数的进制转换(1)将输入的2进制数(一个非“0”即“1”的字符串)化为10进制数。

提示:用字符数组a盛放所输入的二进制数;而后从后往前逐一计算每一位的“位权”w (2的0次方、2的1次方、...),再计算“位权”乘以“位值”并累加到一个初值为0的变量value 上,最后输出该value。

(2)如何把8进制数或16进制数化为10进制数。

(3)如何把某一个k进制的数化为10进制数呢?4.编程序,输入正整数m,它代表一个人民币钱数(元数)。

求取这样一个方案,使用最少张数的人民币纸币,凑成上述的钱数m,并输出求取结果。

注意,现在共有7种元以上面值的人民币纸币,分别为:100,50,20,10,5,2,1。

5.在体育、文艺比赛及选举等打分类项目中,为了公平起见,往往n个评委打出分数后,要去掉一个最高分和一个最低分,然后求取平均得分。

当n较大时(本题设为9),则应取掉两个最高分和两个最低分,然后求取平均分。

编程实现该算法。

6.用户任意输入一个年份以及该年的1月1日是星期几,而后再输入该年的任意一个月份,由程序负责在屏幕上按照你所设计的格式显示出这一个月的月历。

思考:利用元年元月元日(即1年1月1日)是星期一的已知事实,可对程序进行改造,让用户仅输入任意一个年份和一个月份,则程序就应按格式显示出该年那一个月的月历。

7.有n人围坐成一圈(假设他们的编号沿顺时针方向依次为1到n)。

编程序,使用数组来存放各数据(人员编号),而后从1号人员开始数起(沿顺时针方向),当数到k时(其中k>1由用户通过cin输入指定),则该号人员被“淘汰出局”;接着仍沿顺时针方向从被淘汰出局者的下一人员又重新从1开始数起,数到k后,淘汰第2个人;如此继续,直到最后剩下一个人时停止。

请输出先后被“淘汰”的人的编号。

8.编制具有如下原型的函数prime,用来判断整数n是否为素数:bool prime(int n); 而后编制主函数,任意输入一个大于4的偶数d,找出满足d=d1+d2的所有数对,其中要求d1与d2均为素数(通过调用prime来判断素数)。

如偶数18可以分解为11+7以及13+5;而偶数80可以分解为:43+37、61+19、67+13、73+7。

提示:i与d-i的和恰为偶数d,而且只有当i与d-i均为奇数时才有可能成为所求的“数对”。

9.编一通用排序程序,程序可以对任意类型的数值常数或字符串构成的行进行排序,通过人机对话选择程序是按数值进行排序还是按字符顺序进行排序。

排序是针对数据文件的。

例如初始数据为:12,24,9,128,3,76,345按数值大小排序应为:3,9,12,24,76,128,345按字符串大小排序应为:12,128,24,3,345,76,910.编一程序对至少三个排序方法进行比较,比较方法是生成一组数据(≥400),用选定的排序方法进行排序。

输出每种方法数据比较或交换的次数。

最后输出所花费的时间。

注:此题要用到VC++函数库中time()函数time_t time(time_t *timeptr)参数说明:time_t *timeptr 指向存放自格林威治标准时间1970年1月1日00:00:00:至现在经过多少秒数,类型为time_t的指针变量。

功能描述:函数读取当前时间,然后计算自格林威治标准时间1970年1月1日00:00:00:至现在经过多少秒数,结果被放在类型为time_t的指针变量所指向的地址变量中。

函数返回值:返回自格林威治标准时间1970年1月1日00:00:00:至现在经过多少秒数头文件:time.h11.编一函数(过程)集, 可分别将整数、实数、布尔值转换成相应的字串,及将以字串表示的整数、实数、布尔值转换成相应类型的值。

(整数->字串,实数->字串均应规定位宽)。

12.输入一批学生某门课程考试的各题的分数,计算每个人的总分,统计各分数段0~49, 50~59,160~69,70~79, 80~89, 90~100的人数及占总人数的百分比。

要求输入:课程名称,考试日期,学生班号,学生姓名,学号,课程考试得分。

输出要求:课程名称,考试日期,学生班号;各分数段的人数及百分比。

13.验证卡布列克运算任意一个四位数,只要它们各个位置上的数字是不全相同的,就有这样的规律:(1)将组成这个四位数的四个数字由大到小排列,形成由这四个数字构成的最大的四位数;(2)将组成这个四位数的四个数字由小到大排列,形成由这四个数字构成的最小的四位数(如果四个数字中含有0,则得到的数不足四位);(3)求两个数之差,得到一个新的四位数。

(4)重复以上过程,最后得到的结果总是6174。

14.100!的末尾有多少个零由于计算机所能表示的整数范围有限,不可能用求出100!之后再数其尾数有多少个零的方法。

必须从数学上分析100!末尾出产生零的条件。

不难看出:一个整数若含有一个5的因子则必然会在求100!时产生一个零。

因此原问题转换为求1到100这100个整数中包含了多少5的因子。

15.高次方数的尾数求13的13次方的尾数。

乘法的规律:乘积的最后三位的值只与乘数和被乘数的后三位有关,与乘数和被乘数的高位无关。

16.输出正六边型编写程序输出边长为N的空心正六边型(N由用户输入),其边由’*”组成。

思考:输出边长为N的空心正M边型(N,M由用户输入)。

17. 输出空心圆编写程序在屏幕上输出一个由”*”围成的空心圆。

由于屏幕是25行×80列,故将园心定在屏幕中心40列的位置,将半径定为10行,这样可保证整个图形显示在一屏中。

利用圆的方程X2+Y2=R2(R=10)可求出坐标(X,Y),然后用对称性算出右侧对应点的坐标。

18.横向绘制余弦曲线在屏幕上用”*”横向显示0~360度的cos(x)曲线。

此题关键在于余弦曲线在0~360度的范围内,一行要显示两个点。

考虑到cos的对称性,将屏幕的行方向定义为x,列方向定义为y,则0~180度的图形是左右对称的。

若将图形的总宽度定义为62列,计算出x行0~180度时y点的坐标m,那么在同一行与之对称的180~360度的y点的坐标就应为62-m。

程序中利用反余弦函数acos计算坐标(x,y)的对应关系。

19.绘制余弦曲线和直线在屏幕上显示0~360度的cos(x)曲线与直线f(x)=45*(x-1)+31的迭加图形。

其中cos图形”*”表示,f(x)用”+”表示,在两个图形交叉点处则用f(x)图形的符号。

图形迭加的关键是要在分别计算出同一行中两个图形的列方向点坐标后,正确判断相互的位置关系。

为此,可以先判定图形的交点,再分别控制打印不同的图形。

20.模拟人工洗牌编写一个模拟人工洗牌的程序,将洗好的牌分别发给四个人。

使用结构card 来描述一张牌,用随机函数来模拟人工洗牌的过程,最后将洗好的52张牌顺2序分别发给四个人。

对每个人的牌要按桥牌的规则输出。

即一个人的牌要先按牌的花色(顺序为梅花、方块、红心和黑桃)进行分类,同一类的牌要再按A、K、Q、J、…、3、2牌的大小顺序排列。

另发牌应按四个人的顺序依次分发。

注:C随机数函数有:void srand(unsigned seed)功能:函数可以设置rand函数所用得到随机数产生算法的种子值。

任何大于1的种子值都会将rand随机数产生函数所产生的虚拟随机数序列重新设置一个起始点。

int rand(void)功能:此函数可以产生介于0到32767间的虚拟随机数,所谓虚拟随机数的意思就是因为当只设置相同的启动种子值,所产生的数值序列都是可预测的。

要产生不可预测的数值序列,必须通过srand函数不断改变随机数的启始种子值,已产生最佳的随机数。

头文件:stdlib.h21.用户猜测藏物位置:计算机在n行n列(行号为0到n-1,列号为0到n-1)的“棋盘”的某一位置处“藏放一物件”(具体位置通过使用“rand()%10”来随机产生);用户通过输入行列号来“寻找”该物件;若没猜对时计算机要告诉用户与藏放物件的位置有多远(取整后的近似距离)。

思考:若没猜对时也可增加告诉用户藏物的方向信息;另外在猜对结束时,还可告诉用户共猜了几次。

22.编写具有如下函数原型的递归与非递归两种函数f,负责判断数组a的前n个元素是否从大到小完全有序了,是则返回true,否则返回false。

并编制主函数对它们进行调用,以验证其正确性。

bool f(int a[], int n);提示:(1)非递归函数中只需逐对地判断各a[i]与a[i+1]是否都已从大到小有序排列(i = 0,1,…,n-2)。

(2)递归函数中将问题分解处理为:若n=1(即只有1个元素时)则返回true而递归出口;n>1时,若最后一对元素不顺序则返回false,否则进行递归调用(传去实参a与 n-1,去判断前n-1个元素的顺序性),并返回递归调用的结果(与前n-1个元素的是否顺序性相同)。

相关文档
最新文档