程序设计学习指导_第1页
程序设计学习指导_第2页
程序设计学习指导_第3页
程序设计学习指导_第4页
程序设计学习指导_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

1、程序设计学习指导基本要求: 实验结果要求全部保存后上传到的服务器中(第四周开始),端口号选用31。 实验中所有的源程序要求以统一格式的文件名进行保存,文件名格式为“”,其中“学号”为每个学生自己的学号,“日期”为完成实验当天的月份和日期值,“序号”为完成的实验序号值,例如09120000学号12月5日完成的第1个实验的文件名为09120000_1205_01.c。 由于TC不接受长文件名格式,因此建议先按序号保存文件,如“”、“”、“”等,在上传之前再在序号文件名之前添加“学号_日期”,如“09120000_1205”,形成要求格式的文件名。每周实验上传时设置为一个文件夹,将当周的实验结果上传

2、到怪文件夹中。实验成绩的评定:完成基本要求的,本次实验可得80分(这是基本要求,所有的学生都必须完成),完成较高要求的(学有余力的同学可以完成此项要求),可加15分,完成提高要求的(学有余力的同学可以再完成此项要求),可再加5分。实验内容和要求:3月4日学习与实验要求基本要求(必做): 自学教材第八章8.4、8.6、8.8,理解和掌握链表结构的程序设计,理解和掌握多文件源程序组织管理的基本方法。重点理解链表的建立、遍历、插入和删除等应用程序的编制。 调试通过【例8-22】、【例8-23】,理解创建、遍历链表的程序编写的方法与应用。 调试通过【例8-24】、【例8-25】,理解单链表结点的插入和

3、删除操作的编程方法。 所有实验结果请在本周六之前完成,并发送到指定的FTP中,否则平时成绩将有重大损失。(的服务器,用户名:学号,密码:身份证号,端口号:31)下周进行考前复习练习,练习题已经公布,有不理解的内容可在下周课堂上提出。较高要求(选做): 完成【习题8-10】。以往实验内容:3月1日学习与实验要求基本要求(必做): 自学教材第八章8.18.3,理解和掌握指针的基本概念,重点理解和掌握各种形式的二级指针和指针与数组的关系,掌握指向指针的指针和指向函数的指针的用法。 调试通过【例8-2】、【例8-5】,掌握指针的基本应用。完成【思考题8-1】的编程。 调试通过【例8-7】、【例8-11

4、】,掌握返回指针的函数的编程方法和指向函数的指针的用法。 完成【习题8-5】、【习题8-13】。 预习第八章8.4、8.6、8.7。较高要求(选做): 调试通过【例8-8】、【例8-14】,了解带参数的命令行程序设计方法。提高要求(选做): 完成【习题8-11】,熟悉命令行带参数的程序设计的方法。1月18日学习与实验要求基本要求(必做): 自学教材第七章,重点阅读7.1节和7.2节,理解文件的基本概念,理解程序通过文件输入输出的基本方法,掌握在文件上进行输入输出操作的常用函数的应用,尤其要熟练掌握格式化读写文件函数和顺序读写文件函数的使用方法;掌握文件操作的出错检查。 调试通过【例7-3】(练

5、习时要求输入10个以上的字符保存到自定义的中,文件名自定)、【例7-4】(题中的temp.txt用【例7-3】练习时自定的文件名替代)、【例7-5】,掌握文件的基本应用。 完成【习题7-5】、【习题7-7】、【习题7-9】,掌握文件输入输出的程序设计方法,并总结利用文件进行程序设计的基本方法。 预习第八章。较高要求(选做): 调试通过【例7-6】、【例7-8】程序,完成【习题7-6】、【习题7-13】(文本文件及其内容自己生成),进一步熟悉利用文件进行程序设计的方法。提高要求(选做): 调试通过【例7-7】(题中的temp.c用【例7-3】或【例7-4】的程序文)、,进一步掌握应用文件编程的方

6、法。 完成P.297【习题7-11】。1月14日学习与实验要求基本要求(必做): 综合运用前六章学习的内容,完成下列问题的程序设计(各小组通过讨论确定求解方法)、程序改错和程序填空。(1) 某公司有7个保安:A、B、C、D、E、F、G。为了工作需要,每人每周只能轮休1天,考虑到个人的特殊需要,让他们每人先自行选择自己希望哪一天轮休,他们的选择如下:A:星期二/星期四、B:星期一/星期六、C:星期三/星期日、D:星期五、E:星期一/星期四/星期六、F:星期二/星期五、G:星期三/星期六/星期日请编程安排一个轮休表可以满足他们的要求(要求输出所有满足条件的结果)。(2) 已知计算组合的公式如下:用

7、递归算法编写一个计算组合的函数zh(m, n)并计算的值(m和n的数值通过主函数输入),程序以c2.c保存。(3) 下列程序实现的功能是:输入任意个整数到数组a中,当输入数字为9999时输入结束,并通过函数calculate计算它们的平均值。程序中有3个错误,请在不改变程序结构的情况下将错误改写正确,并在修改的行尾加上标注。改正后的结果以c3.c为文件名保存。#include <stdio.h>float calculate(int a,int n) int j; int sum=0; for(j=0;j<n;j+) sum+=aj; return n>0?sum/n:

8、-1;main() int a100,i=0; float average; scanf("%d",&a0); for(; ai!=9999;scanf("%d",&ai+); average=calculate(a,i-1); printf("average=%f",average);(4) 程序填空:以下程序可以实现输入任意4个一位整数,按示例给出的形式输出4行。如输入:5 6 7 8则输出:(即:第一行为输入数字,下一行是上一行向右偏移一个数字)5 6 7 88 5 6 77 8 5 66 7 8 5#inclu

9、de <stdio.h>#define M 4main()int i,j,k,m,aM;for ( i = 0; i < M; i+ )_;for ( i = M; i > 0; i- )for ( m = 0; m < M; m+ )printf( "%d ", am );printf(_);k = aM-1;for ( j = M-1; j > 0; j- )aj = _ ;a0 = k; 预习第七章。较高要求(选做): 学有余力的同学可以加选下列问题的程序设计。(1) 以下函数将一个16进制的字符串转化为十进制数,如“2A”转化为4

10、2等。字符串应该仅由数字和大写字母A至F构成,若字符串中出现其它符号则返回-1,且已知转化的整数在有效范围内。程序中有3个错误,请在不改变程序结构的情况下将错误改写正确。并将结果以c5.c为文件名保存。int hexvalue( char *str ) int data, i, n;for ( i = 0; stri!=0; i+ ) if ( stri<=9 ) n = stri 0;else if ( stri>=A && stri<=F )n = stri A + 10;elsereturn 1;data = data*10 + n; return da

11、ta;(2) 编程利用如下的格里高利公式求p的值,要求的迭代精度为最后一项的值小于1e-5。 提高要求(选做): 已完成【较高要求】的同学可以再加选下列问题的程序设计。(1) 随机输入n个国家的英文名字,要求按字母顺序升序排序后输出(要求使用字符串数组实现)。1月11日学习与实验要求基本要求(必做): 学习教材第六章6.8、6.9、6.10节,理解结构体和共用体的概念,理解程序使用结构体的作用,掌握结构体的应用,熟练掌握结构体变量的声明和结构体变量的使用方法;掌握共用体的应用条件。 任意选择【例6-35】、【例6-36】、【例6-37】中的一个调试通过,掌握结构体的应用方法,完成P.235【思

12、考题6-12】和P.264【习题6-6】。 任意选择【例6-38】、【例6-39】中的一个调试通过,进一步掌握结构体的应用规律,掌握算法的应用,完成P.264【习题6-8】。 调试通过【例6-40】、【例6-41】中的任意一个,掌握共用体的应用条件,总结共用体的程序编写,总结对问题进行分析的方法。 完成P.263【习题6-13】、较高要求(选做): 调试通过【例6-44】、【例6-45】,进一步熟悉结构体、共用体的使用。 完成P.263【习题6-14】、【习题6-15】。提高要求(选做):。1月6日学习与实验要求基本要求(必做): 自学教材第六章6.6节的内容,掌握二维数组的使用:定义、初始化

13、、数据输入、引用、输出、作为函数的参数等应用方法。在【例6.26】【例6.30】中任意选择调试通过3个,并掌握其算法的应用。 自学教材第六章6.7节的内容,掌握二维字符数组的使用。在【例6.31】【例6.34】中任意选择调试通过2个,并掌握其算法的应用。 完成P.262【习题6.5】、P.264【习题6.11】。 预习第六章6.8、6.9、6.10节。较高要求(选做): 完成P.263【习题6.7】,进一步理解并掌握二维数组的应用。 完成P.265【习题6.12】,题中m<n。提高要求(选做):、题。1月4日学习与实验要求基本要求(必做): 自学教材第六章6.4节、6.5节,理解指针的基

14、本概念、定义方法及其使用,熟练掌握数组和指针的基本应用。 参考【例6-13】,完成【思考题6-5】和【思考题6-6】。 参考【例6-14】、【例6-15】,理解并掌握自定义函数地址传送的应用,完成【思考题6-7】。 参考【例6-17】,完成【思考题6-8】。 参考【例6-18】,完成【思考题6-9】。 预习第六章6.6、6.7、6.10节。较高要求(选做): 参考【例6-25】,完成【思考题6-10】。 调试通过【例6-42】的程序,归纳复杂问题解析方法,掌握现实问题的形式化方法。提高要求(选做): 采用字符串变量的方式实现【习题4.10】的程序。12月31日学习与实验要求基本要求(必做):

15、自学教材第六章6.1节,理解一维数组的概念,熟练掌握一维数组的应用,掌握冒泡法、选择法等数据排序算法的应用。 自学教材第六章6.2节和6.3节,进一步理解一维数组的概念、定义方法和使用规律,掌握字符数组的应用。 完成P.262【习题6.5】、【习题6.7】,掌握数组的应用。 完成P.264【习题6.11】、【例6-4】,掌握一维数组的应用规律。 预习第六章6.4和6.5节。较高要求(选做): 完成P.265【习题6-12】。题。12月28日学习与实验要求基本要求(必做): 完成P.158的【习题5-6】、【习题5-10】。 完成下列问题的程序设计,并附程序说明:有8位裁判为1个运动员打分,请计

16、算并输出去掉一个最高分和一个最低分后这个运动员的平均得分以及所评分最接近平均分的裁判员号。裁判员号及其所打分数从键盘输入。 完成下列问题的程序设计,并附程序说明:从键盘输入一个正整数,将该正整数中的每位数字重新排列,分别组成一个最大数和一个最小数,并依次输出,两数间用空格分隔。 完成下列问题的程序设计,并附程序说明:从键盘输入一个长整数,将该数按3位一逗号的格式输出。例如,输入1234567,则输出1,234,567。 自学教材第六章6.1节,理解一维数组的概念,熟练掌握一维数组的应用,掌握冒泡法、选择法等数据排序算法的应用。 课后进行复习总结前五章学习的内容,准备星期四做一次小小的测验。较高

17、要求(选做): 调试通过【例6-1】、【例6-2】,掌握排序算法的应用。12月24日学习与实验要求基本要求(必做): 自学教材第五章5.3节,进一步理解模块化程序设计的思想,掌握函数的调用的概念和应用,掌握级数求和、字符图形打印等问题的求解算法。 调试通过【例5-10】,并通过小组讨论,完成P.153【思考题5-8】的编程,要求附程序说明。 完成P.158的【习题5-4】、【习题5-5】、【习题5-7】。 完成下列问题的程序设计,要求附程序说明:输入10个整型数,输出这10个数中仅出现一次的数。如输入:12 36 72 36 87 99 87 87 12 35则输出:72 99 35较高要求(

18、选做): 调试通过【例5-6】,完成【思考题5-4】提出的要求。 完成【习题5-8】、【习题5-11】。提高要求(选做): 读懂【例5-9】,了解图形输出的基本方法。 完成【习题5-12】、【习题5-14】12月21日学习与实验要求基本要求(必做): 通过小组讨论,完成下列编程题,要求使用自定义函数实现处理功能。(1) 编写一个程序能够实现如此功能:求出n以内(n大于1000,小于10000)的能被k(k为20以内的整数)整除,且至少包含有两个m(m为小于10的整数)的整数。(2) 编写程序实现计算机辅助破案:一辆卡车违反交通法规撞人后逃逸,现场有3位目击证人但都未记全车号,只记下了车号的一些

19、特征,甲说牌照的前两位数字是相同的,乙说牌照的后两位数字是相同的、但与前两位数字不同,丙说四位数字刚好是一个整数的平方。请根据以上线索求出车号(车牌号长度为4位的整数)。 自学教材第五章5.1节,调试通过【例5-2】和【例5-3】,理解模块化程序设计的思想,掌握函数的嵌套调用的概念和应用,掌握弦截法求根算法、最大公约数和最小公倍数算法的应用。 通过调试【例5-3】的程序,回答【思考题5-1】的问题。较高要求(选做): 阅读大学程序设计C实践手册P.94 。 自学教材第五章5.2、5.3节,调试通过【例5-6】、【例5-8】,理解并掌握其算法。提高要求(选做): 读懂【例5-10】的程序,实现【

20、思考题5-8】提出的要求。12月17日学习与实验要求基本要求(必做): 自学教材第三章3.2节,理解变量的作用域和变量的存储类型的概念,掌握局部变量、全局变量、静态变量、以及其他变量存储类型的应用。 在【例3-5】【例3-11】中任意选择2个程序调试通过,理解程序中使用的变量的作用域及其存储类型。 完成P.69 P.70的【习题3-5】、【习题3-7】。 完成P.71的【习题3-11】、【习题3-12】。较高要求(选做): 读懂P.67【习题3-2】的程序,写出程序运行结果,并将其改为现代风格的函数定义形式。 完成P.68【习题3-3】,P.69【习题3-6】,P.70【习题3-8】,掌握读程

21、、调试程序的能力。提高要求(选做): 使用自定义函数,完成P.71的【习题3-10】。 阅读大学程序设计C实践手册第6章,重点阅读6.3实验的理论基础,完成P.144编程题(2)。12月14日学习与实验要求基本要求(必做): 完成下列3个编程习题: 完成P.129【习题4.9】,要求提示输入本金、期限,输出得到的利息、利息与本金的合计。 完成P.129【习题4.11】,要求输出每种搭配的方式、不同搭配的总数。 完成P.129【习题4.10】,不必一定采用教材提示的方法,也可以采用其他方法计算。 自学教材第三章3.1,理解自定义函数的作用,掌握自定义函数的定义和使用方法。 编辑运行P.48和P.

22、50【例3-2】的两种程序,熟悉并掌握函数定义与调用的概念、用法。较高要求(选做): 完成P.129【习题4.12】,不要求编写函数,直接在主函数中统计100以内完数的个数、并输出这些完数。 利用【例3-2】的程序代码,完成【思考题3-3】的程序设计。 完成大学程序设计C实践手册中P.99 。提高要求(选做): 修改P.54【例3-3】,实现通过函数调用的方式比较年龄大小。、。12月10日学习与实验要求基本要求(必做): 自学教材第四章4.4节的内容,掌握三种不同形式循环控制结构的用法,了解自增自减运算符与逗号表达式的概念和表示形式。 调试通过【例4-22】和【例4-23】,总结规律,掌握方法

23、。 完成P.106【思考题4-25】和【思考题4-26】。 调试通过【例4-28】的程序,掌握递推算法的应用。 自学教材第四章4.5节的内容,熟练掌握穷举法、牛顿迭代法的程序设计。并完成、习题4.6。 预习教材第三章。较高要求(选做): 调试通过【例4-33】的程序,掌握求素数算法的应用。 在【例4-36】【例4-41】中任意选择2个程序进行调试、运行,掌握算法的应用。 完成习题4.7、习题4.8。、题,掌握读程本领,总结数据交换的基本方法。 掌握第四章中介绍的几个常用的算法:求素数算法、求闰年的算法、递推算法算法(牛顿迭代法、二分法、梯形法、穷举法等)、排序算法(选择法、冒泡法)、查找算法(

24、顺序查找、折半查找)、有序数列的插入/删除操作、存储区的动态分配与释放、单向线性链表的建立/查找/插入/删除操作、初等数论问题求解的有关算法(最大公约数、最小公倍数、素数等)、递归算法(求最大公约数、阶乘等)、字符串的处理(字符和字符串的插入、删除、字符串的连接、比较等),以及猴吃桃子/鸡兔同笼等数论问题的求解方法等。提高要求(选做): 参照大学程序设计C实践手册第2章的范例1,完成DIY的实践题。 完成P.66的拓展与实践中的范例程序的调试和DIY的编写,了解TC环境下菜单的制作方法。12月7日学习与实验要求基本要求(必做): 自学教材第四章4.1节的内容,掌握算法的概念、算法的描述方法、问

25、题的形式化等基本概念和方法;完成【思考题4-1】、【思考题4-2】的算法文字描述,并用C语言实现【思考题4-2】的算法。 自学教材第四章4.2节的内容,掌握顺序结构程序设计的概念和方法;掌握常用库函数putch/putchar、getchar/getche/getch等的应用。 完成教材P.83的【例4-5】的程序设计(可参考P.85的程序代码)。 完成教材P.85【例4-6】、【例4-7】、【例4-8】的程序编辑和调试。 完成大学程序设计(C)实践手册上P.57,【2.改错题】和【3.编程题】中的(1)。 掌握第四章中介绍的几个常用的算法:求素数算法、求闰年的算法、猴吃桃子/鸡兔同笼等数论问题的求解等方法。较高要求(选做): 完成教材P.85的【思考题4-7】的程序设计。 参考教材P.85【例4-6】、【例4-7】、【例4-8】的程序,完成【思考题4-9】的程序设计。提高要求(选做): 自学教材第四章4.3节的内容,用两种方法分别求解【例4-9】的问题。 参考教材的介绍,回答【思考题4-20】的问题。12月3日学习与实验要求基本要求(必做): 阅读大学程序设计C实践手册1.3节,掌握C语言程序的结构及书写格式,掌握变量和常量的定义方法,掌握数据类型、表

温馨提示

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

评论

0/150

提交评论