程序设计(上机)指导书83694.doc

上传人:marr****208 文档编号:156942807 上传时间:2020-12-20 格式:DOC 页数:24 大小:203.50KB
返回 下载 相关 举报
程序设计(上机)指导书83694.doc_第1页
第1页 / 共24页
程序设计(上机)指导书83694.doc_第2页
第2页 / 共24页
程序设计(上机)指导书83694.doc_第3页
第3页 / 共24页
程序设计(上机)指导书83694.doc_第4页
第4页 / 共24页
程序设计(上机)指导书83694.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《程序设计(上机)指导书83694.doc》由会员分享,可在线阅读,更多相关《程序设计(上机)指导书83694.doc(24页珍藏版)》请在金锄头文库上搜索。

1、一、课程设计的性质、目的本课程是非计算机相关专业的通识基础课,属于集中实践环节,是数据结构、数学建模、操作系统等课程的前导课程,也是一门实践性很强的课程。在掌握编程基本概念的基础上,进行上机实践是一个必不可少的环节,本课程有助于学生全面掌握使用C语言进行程序设计的综合技术。通过本课程,可以培养学生的上机动手能力,使学生巩固高级语言程序设计课程中所学习的内容,掌握工程化软件设计的基本方法,强化上机动手能力;为后续各门计算机课程的学习打下坚实基础。二、课程设计的任务通过集中时间上机实验,使学生充分发挥已有的编程能力,熟悉编译环境,选择若干课题,进行审题、分析、设计和调试,并根据要求写出实验报告。三

2、、课程内容、学时分配及基本要求课程设计为时二周(计40学时),其具体安排如下:课程内容学时基本要求实验设备选题借参考书*21、 每人至少1题,其中难度最好为“M”;2、 每班分若干组、每组最多5人,每小组中组员的难度为“H”的题目至少一道,各小组间难度为“H”的题目至少有一道不与任何其他小组重复。南京邮电大学公共机房微机编程准备8完成一套基础编程题,一套中包括改错/完善程序/简单程序编写三种类型至少各一道。计算机及Internet编程1822结果正确,程序健壮,代码可读性强,界面美观友好,易操作。计算机及Internet交流及汇报4 陈述课题的成果和心得,并解答其他同学的疑问。计算机及Inte

3、rnet书写软件报告文档48主要包含如下几个部分:1、问题分析。2、设计方案。3、流程图。4、测试数据、测试结果、结果分析。5、相关运行界面。6、源代码计算机及Internet*注:对于选题和分组,其操作流程如下:1. 同学们根据自己的兴趣、爱好,选择自己想做的题目。2. 一旦确定以后,交与班长登记。3. 班长按照先来先登记的方式依次进行分组。例如,将先来的同学分到第一组,就这样依次分下去。4. 对于每个小组所选择难度为“H”题目,如果发现重复,则需要重新选择。5. 以上的组织形式应该安照班级和学生的具体情况做灵活的调整。三、考核方式及成绩评定方法本课程考核由平时考核、软件验收、程序设计(上机

4、)报告三部分组成。其中,平时考核占总成绩的10%,软件验收占总成绩的40%,设计报告占总成绩的50%。注:如有以下情况,视为抄袭: 与已验收的程序明显雷同; 面试时不能解释程序中的某些基本功能,或对所写程序一无所知。四、推荐教材与参考书 教 材:1 秦军程序设计(C语言)北京:机械工业出版社,20072 吴伟敏程序设计(上机)指导书南京:南京邮电大学自编教材,20103 程序设计基础(C语言版)学习与实验指导北京:机械工业出版社,2008 参考书: 1 张福炎大学计算机信息技术教程M 南京:南京大学出版社,20032 谭浩强C程序设计(第三版)北京:清华大学出版社,20053 (美)Brian

5、 W.Kernighan、Dennis M.RitchieC程序设计语言(第二版)徐宝文、李志译北京:机械工业出版社,20034 苏小红等C 语言大学实用教程(第二版)M北京:电子工业出版社,2007五、验证及基础练习题1.改错题(1)以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差。例如:输入的两个字符串分别为abcdef和abceef,则输出为-1。请改正程序中的错误,使程序能得到正确的结果。包含错误的源程序如下:#include void main() char str1100,str2100; int i,s; printf(n i

6、nput string 1:n); getchar(str1); printf(n input string 2:n); getchar (str2); i=0; while(strli!=str2i&(str1i=0) i+; s=str1i+str2i; printf(%dn,s); (2)以下程序中函数fun()的功能是:依次取出字符串中所有的数字字符,形成新的字符串,并取代原字符串。例如:输入ewjfio23450ejgvb0erio3mg0wgjn 23,则输出2345003023。请改正程序中的错误,使程序能得到正确的结果。包含错误的源程序如下:#include #include

7、void fun (char *s) ; int i,j;for (i=0,j=0;si!=0;i+)if (si=0 & si=9) sj=si; sj=”0”; main()char item80;printf(nEnter a string:);gets(item);printf(nnThe string is :%sn,item);fun (item);printf(nnThe string of changing is :%sn,item);(3)以下程序的功能是在有序数组中插入一个新数,程序中共存在6个错误,请改正程序中的错误,使程序能得到正确的结果。包含错误的源程序如下:void

8、 main()int i,j,num,n=7; int temp1,temp2;int an=1,3,5,7,9,11; for(i=0;ia5)a6=num;elsefor(i=0;i6;i+)if(ainum)temp1=ai;ai=num;for(j=i+1;j6;j+) temp2=aj;aj=temp1;temp1=temp2;countinue;for(i=0;i7;i+)printf(%3d,ai);printf(n);(4)在屏幕上用“*”显示0360度的余弦函数cos(x)曲线。以下是对该问题的分析:如果在程序中使用数组,这个问题十分简单。但若规定不能使用数组,问题就变得不容

9、易了。关键在于余弦曲线在0360度的区间内,一行中要显示两个点,而对一般的显示器来说,只能按行输出,即:输出第一行信息后,只能向下一行输出,不能再返回到上一行。为了获得本文要求的图形就必须在一行中一次输出两个“*”。为了同时得到余弦函数cos(x)图形在一行上的两个点,考虑利用cos(x)的左右对称性。将屏幕的行方向定义为x,列方向定义为y,则0180度的图 形与180360度的图形是左右对称的,若定义图形的总宽度为62列,计算出x行0180度时y点的坐标m,那么在同一行与之对称的180360度 的y点的坐标就 应为62-m。程序中利用反余弦函数acos计算坐标(x,y)的对应关系。使用这种方

10、法编出的程序短小精炼,体现了一定的技巧。请改正程序中的错误,使程序能得到正确的结果。包含错误的源程序如下:#include#includeint main() double y; int x,m; for(;y=-1;y-=0.1) /*y为列方向,值从1到-1,步长为0.1*/ m=(int)acos(y); /*计算出y对应的弧度m,乘以10为图形放大倍数*/ for(x=1;xm;x+) printf( ); printf(*); /*控制打印左侧的 * 号*/ for(;x62-m;x+)printf( ); printf(*n); /*控制打印同一行中对称的右侧*号*/ return

11、 0;2.完善程序(1)从键盘上输入一个字符串,把该字符串中的小写字母转换为大写字母,输出到文件test.txt中,然后从该文件读出字符串并显示出来。请完善以下程序:#include void main() FILE *fp; char str100; int i=0; if(fp=fopen(text.txt,_w_(1)_)=NULL) printf(cant open this file.n); exit(0); printf(input astring:n); gest(str); while (stri) if(stri=a&stri=z) stri= _stri-32_(2)_;

12、fputc(stri,fp); i+; fclose(fp); fp=fopen(test.txt,_r_(3)_); fgets(_(4)_str,100,fp_); printf(%sn,str); fclose(fp); (2)已知strcpy()函数的原型为:char *strcpy(char *strDest,char *strSrc);其中strDest是目的字符串,strSrc是源字符串,返回目的字符串的首地址。完成以下的空白部分并实现正确的strcpy()函数功能。char *copy_string(char *from,char *to)char *address;_(1)_

13、 while(_(2)_)_(3)_ from+;to+;_(4)_return address;(3)以下程序计算所输入的字符串中某个子串所出现的次数。请完善以下程序:#include string.h#include stdio.hmain()char str120,str220,*p1,*p2;int sum=0;printf(please input two stringsn);gets(str1);gets(str2);p1=str1;p2=str2;while(*p1!=0)_(1)_/此处可填写多条语句printf(%d,sum);(4)验证歌德巴赫猜想。将2000以内的正偶数都能够分解为两个素数之和(即验证歌德巴赫猜想对2000以内的正偶数成立)。为了验证

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号