高级语言程序设计总结-陈凯源

时间:2019-05-12 02:24:50下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《高级语言程序设计总结-陈凯源》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《高级语言程序设计总结-陈凯源》。

第一篇:高级语言程序设计总结-陈凯源

《高级语言程序设计》课程总结

C语言程序设计是掌握计算机软、硬件系统工作原理必需的基本知识,也是计算机相关专业的重要入门知识。C语言既有高级语言的特性,又具有汇编语言的特点,可以作为系统程序设计语言,也可以作为应用程序设计语言。通过学习用这种典型的程序设计语言——C语言,建立起程序设计的概念,初步掌握程序设计方法,掌握程序设计的基本方法和技巧,养成良好的程序设计风格,从而具备应用程序设计解决相关专业领域内实际问题的基本能力。

本学期通过对《高级语言程序设计》这门课程的学习,我做出如下总结:

我们共学习了15章内容,知识点大致分为程序设计的概念、C语言的基本概念、C的基本语句、构造类型和指针类型、函数、算法和数据结构、C的预处理、文件、常用库函数的使用等。通过对每一个章节知识点的学习,我们加深了对C语言的理解。

学习过程中,我们配有《高级语言程序设计实验手册》,这也让我们得到了锻炼。通过学习,我们能够熟悉高级语言,了解它们的特点,初步掌握利用高级语言编程解决各种实际应用问题的基本方法,为今后正确运用它而打下基础。增强了实际动手能力和对以前所学的C语言的综合运用能力。

老师采用双语授课、多媒体教学,具有创新性。这也为今后的学习奠定了基础,适应了社会的发展和需要。老师上课经常举例子,让抽象概念具体化,这也使我们对这门课程更加投入兴趣。还有就是概念性的东西,老师会教我们记忆的方法,我觉得这点比较好。

对于我在学习中遇到的问题,我虚心向老师求教,老师也耐心地解答。针对我的实验中的错误,老师认真地给我指出,我也因此从中获得经验,不断进步。

学习C语言,既可以活跃我们的思维逻辑,又能使我们解决问题的算法变得更加清晰。通过学习,我明白解决问题的方法不止一种,并且每种方法之间会存在一些关联,例如for循环和while()循环之间就可以互相转换。我们可以根据需要选取较简捷的语句完成程序。再如,当我们需要调用多个函数时,我们应该应用函数的模块性组织程序,这样可以使程序清晰而不繁杂。

以上是我这个学期对《高级语言程序设计》这门课程的总结,如有不足,希望老师多多指教!

姓名:陈凯源

学号:20101120187

专业:软件工程 年级:本科一年级

第二篇:高级语言程序设计-教学大纲

《高级语言程序设计》教学大纲(Visual FoxPro)

课程编号:030202 总学时:54学时(含上机24学时)

适用专业:全院管理类所有本、专科专业

一、教 学 内 容

1、数据库基本知识 ①数据库的特点; ②数据库系统分代; ③数据库系统的分类;

④Visual FoxPro文件的主要技术指标; ○5 Visual FoxPro的界面和工作方式

2、数据库的基本操作

①数据库文件的建立,CREATE、APPEND、LIST、DISPLAY;

② Visual FoxPro的命令工资方式,菜单和命令方式、表达式、数组和常用函数;

③修改数据库文件。MODIFY STRUCTURE、INSERET、DELETE、RECALL、PACK、EDIT、CHANGE、BROWSE、REPLACE、SCATTER、GATHER;

④复制数据库文件。COPY STRUCTURE、COPY TO、数据库的结构文件、成批记录的复制; ⑤磁盘文件的基本操作。COPY FILE、RENAME FILE、DELETE FILE、DIR、TYPE FILE;

3、查询和统计

①排序和索引sort、index;

②查询命令locate、find、seek、continue、skip;

③数据工作期、视图文件、表的关联、多工作区查询、库文件的关联; ④SELECT-SQL查询。

○5统计命令COUNT、SUM、AVERAGE、CALCULATE、TOTAL;

4、程序设计初步

①程序文件。程序文件的建立和执行MODIFY COMMAND<命令文件>、DO <命令文件>和菜单方式执行、状态命令设置、INPUT、ACCEPT、WAIT、?、??、; ②程序控制命令。程序设计的三种结构顺序、分支、循环;

③多模块化程序设计。基本概念、子程序、函数、过程、全程变量和局部变量;

5、窗口设计

①窗口操作命令。窗口的定义与修改DEFINE WINDOW、ACTIVATE WINDOW、MODIFYWINDOW、HIDE WINDOWS、SHOW WINDOW、DEACTIVATE WINDOWRELEASE WINDOW、CLEAR WINDOW、CLEAR ALL;

②窗口着色。颜色对与颜色模式、SET COLOR TO、COLOR SCHEME、SET COLOROFSCHEME; ③BROWSE窗口设计。定义BROWSE窗口、定义功能键。

6、菜单设计

①下拉式菜单设计 ②弹出式选单设计

7、表单设计基础 ① 表单向导 ② 表单设计器

③面向对象的程序设计方法(基本概念、对象的引用)

8、表单控件设计

① 输出类控件(标签、图象、线条、形状)

② 输入类控件(文本框、编辑框、列表框与组合框、微调控件)③ 控制类控件(美丽按钮与美丽按钮组)④ 容器类控件(表格、页框、容器)

⑤ 连接类控件(ActiveX控件、ActiveX绑定控件)

9、表单高级设计

①多表单应用程序(应用程序界面、表单集)

②用户定义属性与方法程序(用户定义属性、用户定义方法程序)③类(基本概念、用户定义类)④表单/表单集设计实例

10、报表设计

①打印基础。打印准备、打印方法、打印命令 ②传统的打印设计

③报表设计器的基本操作(打开标本设计器窗口、快速制表、标本打印)④报表设计器的高级操作,了解

9、系统开发实例(对本科做基本的讲解)①开发的基本步骤

○2以具体的实例进行讲解

二、《高级语言程序设计(Visual FoxPro语言)》大纲说明

1、教学目的与任务

在当今时代,计算机已经在世界范围内得到广泛的推广和应用。其中信息管理和数据处理已成为计算机应用的主流领域,而数据库技术是这个领域的核心之一。

Visual FoxPro系统是一个优秀的多用户关系数据库管理系统。本课程详细地讲解了Visual FoxPro的各种命令、函数的功能,以及Visual FoxPro程序设计的方法,培养学生能灵活地应用Visual FoxPro 语言设计程序、进行维护管理,充分发挥计算机在信息管理和数据处理方面的优越性。

《高级语言程序设计(Visual FoxPro语言)》是面向全院所有专业本、专科生的计算机高级语言程序,它侧重于数据库的基本概念、数据库的基本操作、简单的程序设计、菜单程序设计、窗口菜单设计以及必须掌握的表单设计和简单的菜单生成程序设计。侧重于计算机对数据的基本处理、表单的数据输出,使学生具备一定的计算机高级语言程序设计的能力,为学生利用计算机解决问题(特别是专业中的问题)准备必要的知识;本大纲重点基于数据库的基本操作和简单的程序设计,为学生学习相应的语言打下一定的基础。

2、本课程与其他课程的关系

学习本课程,需要有一定的计算机基本操作技能,对计算机有一定的了解和使用。它是学 要求学生掌握计算机高级语言以及对计算机对数据处理方式和方法的掌握。为学习今后学习计算机解决问题和高年级学习专业课打下坚实的基础。

3、教学基本要求

具有使用计算机高级语言解决基本问题的能力,掌握计算机对数据处理的方法和掌握计算机对数据处理的基本操作技能。要求学生学习了本课程后,能编制简单的程序解决数据处理的问题,掌握程序设计的基本方法。

了解数据库的基本原理和数据库与数据库管理系统的关系,了解Visual FoxPro的基本性能指标,掌握数据库的基本使用方法。

掌握数据库的基本统计和数据库记录的查询。

掌握程序设计的三种方法和简单的程序设计,这是全书的重点。

掌握菜单设计、窗口设计、菜单设计,对菜单设计,只要求掌握屏幕菜单方式和屏幕生成程序,对命令方式只做基本的了解。

4、实验课程

附实验大纲,按实验大纲的要求完成实验。

5、课程学时安排

学时安排遵循理论重于实践,理论课的学时分配占总学时的60%,实验课的操作,要求严格按照实验大纲,以循序渐进的方式进行,如果学生没有完成当天实验课程的任务,学生可以自己找时间自己解决。

章 次

讲 课 内 容

授课

上机 第一部分 数据库的基本概念第二部分 数据库的基本操作第三部分 查询与统计、SQL 第四部分 程序设计基础第五部分 菜单设计第六部分 表单设计及基础第七部分 表单高级设计第八部分 报表设计合计

22

6、教学参考资料

《数据库及其应用》 牛允鹏等 经济科学出版社

《Visual FoxPro活学活用》 张佑挺 张锦川等 重庆大学出版社

《Visual FoxPro及其应用系统开发》 史济民 汤观全编著 清华大学出版社 《FoxPro用户参考大全》 金荣得 胡传国等 电子出版社 《FoxBASE数据库应用教程》 北京希望电子出版社 《FoxPro命令与函数》 张锦豪等 学苑出版社

《FoxPro数据库实用教程》 王跟东等编著 四川大学出版社

第三篇:《高级语言程序设计》课程设计大纲

《高级语言程序设计》课程设计教学大纲

课程名称:高级语言程序设计课程设计

课程总学时:32 适用专业:广播电视工程、电子信息工程、电子科学与技术

课程类别:必修

一、课程设计任务与目的

《高级语言程序设计》课程是一门实践性较强的课程,课程设计环节是课程学习的重要组成,是课程教学的必经步骤。目的是培养学生实际操作技能和解决实际问题的能力。要求学生掌握C语言设计、调试、运行方法,获得用C语言解题的实际体会,加深对C语言的理解,得到C程序设计方法和技巧的训练,掌握C程序设计的全过程。通过课程设计的教学,使学生巩固和深化已学的理论知识,加强综合应用能力,训练学生掌握分析问题、解决问题的方法,培养较强的动手能力和一定的设计和调试能力。

二、课程设计基本内容与要求

鉴于课程设计的性质、要求和具体内容,对课程设计提出如下要求;

1、关于课题及选题

在课程设计任务书中列出了多个设计课题,每个课题都有相应的要求或说明。参加课程设计的学生首先要了解设计的任务,仔细思考各题的设计要求,然后根据自已的基础和能力情况从中选择一题。一般来说,选择课题应以在规定的时间内能完成,并能得到应有的锻炼为原则。

若学生对任务书中课题以外的相关课题较感兴趣,希望选作课程设计的课题时,应征得指导教师的认可,并写出明确的设计要求和说明。

2、关于设计的总要求

在设计时,要严格按照题意要求独立进行设计,不能随意更改。若确因条件所限,必须要改变课题要求时,应在征得指导教师同意的前提下进行。

3、验收

在课程设计完成后应由指导教师当场运行、验收,只有在验收合格后才能算设计部分的结束。

4、设计报告

课程设计结束后要写出课程设计报告,以作为整个课程设计评分的书面依据和存档材料。设计报告一般要以固定规格的纸张书写并装订,字迹及图形要清楚、工整(电子文档尤佳)。内容及要求如下:

(1)设计任务、要求及所用软件环境或工具。

(2)问题模型化描述以及求解算法的简要描述。

(3)设计的模块构成、各模块的简要说明、流程图、调用关系表。

(4)所设计软件的组成(程序文件和数据文件)及使用说明。

(5)设计总结和体会。

(6)验收情况。

三、课程设计设备与材料

计算机;Visual C++6.0或C-Free3.5或Turbo C++3.0软件。

四、考核方式与评分办法

1、学生按照实习计划和大纲完成实习教学任务,考试合格取得相应学分。

2、学生实习考核内容与成绩比例:实习态度与实习纪律占20%、业务能力与水平占40%、答辩与验收情况占20%,实习报告占20%。

3、无故不参加实习或实习全过程缺勤在三分之一及以上者,实习成绩视为不及格。

4、学生实习成绩按优秀、良好、中等、及格和不及格五级评定,原则上呈正态分布,严格控制优秀比例,一般优秀率不大于20%。

五、课程设计参考书

1、潭浩强.C语言程序设计.清华大学出版社.2000

2、廖湖声等.C语言程序设计案例教程.人民邮电出版社.2003

3、张仁杰 王风茂.《C语言程序设计实训教程》中国电力出版社.2004

执笔人:裘姝平

教研室:电子信息工程教研室 编制日期: 2008 年 9月

第四篇:高级语言程序设计A第2次作业

1.以下说法中错误的是。

(B)a/=b+c;这个式子和a=a/b+c;等价

2.16、若有如下说明

int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;

则数值为6的元素的表达式是

(B)*(p+5)

3.下面哪条语句是错误的(B)int a=b=c=1;

4.已知实型变量a存贮的是一个0~1之间的实数,将a以两位小数百分比形式输出(如:a=0.347592,则输出为34.75%)正确的打印语句是

(A)printf(“%.2f%%”,a*100);

5.定义C函数时,不给出返回值类型,则默认的返回值类型是

(C)int

6.C语言存贮字符串时,用特殊字符表示字符串结束

(D)’’

7.有以下程序段

int k=0;

while(k=1)k++;

则while 循环执行的次数是。

(A)无限次

8.对于for循环语句:for(x=0,y=0;(y=3)&&(x<4);x++)y++;,正确的是。

(C)执行4次

9.有定义struct { int a[5];} b;则正确表达成员数组a的最后一个元素地址的是____。

(C)b.a+4

10.以只写方式打开一个二进制文件,应选择的文件操作方式是____。

(D)“wb”

第五篇:高级语言程序设计课后练习参考答案(全部)

特别说明:此答案不是标准答案,仅供参考,如有疑问,请与老师共同商量

第1章

一、单项选择题 1-6 ACDBBD

二、填空题

1、机器、过程

2、源、解释、编译、目标

3、用某种计算机能理解并执行的计算机语言描述解决问题的方法和步骤、分写解决问题的方法步骤并将其记录下来的过程

第2章

一、单项选择题

1-5 ACCBB 6-10 ADDDD

二、填空题1、2、小写

3、字母、下划线、32、8

4、P10

5、P10-11

6、函数调用、表达式

7、main

8、main、main

9、/*、*/

10、分

11、略

第3章

一、单项选择题

1-5 CBABB 6-10 ACBAB 11-15 AADAD 16-20 CDCCB 21-25 CCCDB 26-30 ACDDC 31-34 CADC

二、填空题

1、字符、字符串

2、-

15、-15 3、0、65535 4、2、1

5、''、0

6、#define 符号常量 常量 7、4

8、数据类型符 变量名1,变量名2,„„

9、unsigned int、double、char

10、const int nn=199;11、1.0

12、a/(b*c)13、1、0

14、非0、0、1、0 15、1

16、(x>20 && x<30)||x<-100

17、x<0 || y<0 || z<0 18、0 19、11110000 20、5、5、3

21、++、&&

22、算术、关系、逻辑、赋值、逗号、条件

第4章

一、单项选择题

1-5 BCBDC 6-10 CBCAB 11-15 CAADC 16-18 ADA

二、填空题

1、顺序、循环

2、单分支、双分支、多分支

3、直到、当

4、#include

5、输出格式字符串、输出表达式表

6、整、短整、无符号、字符、长整、无符号长整、单精度、双精度、单精度、双精度。

7、如果e1和e2两个条件都成立,那么就执行语句s。

8、如果e1条件成立执行语句s1,如果e1不成立但e2成立则执行语句s2。

9、###a=26,b=13,c=19。

10、if(a<=b){ x=1;printf(“%d”,x);} else { y=2;printf(“%d”,y);}

11、先执行语句然后判断表达式,直到表达式不成立才停止执行语句。

12、先判断表达式再执行语句,如果表达式不成立就停止执行语句。13、10

三、阅读程序题

1、A=65,A=0101,A=0x41 2、10,4,3

3、-1 4、0,8,-22 5、8,5,2

6、在循环语句中重复输入数值,如果输入的数值小于0就输出-1,如果输入的数大于0则输出1,如果输入的数值是0则结束循环。

7、输出10个数,求这10个数中的奇数之和保存在s1中,偶数之和保存在s2中,最后分别输出s1和s2。

8、输出1到99中能被3整除且被10整除余数为1的数。

四、程序填空题

1、if(x

2、i=3,s=0

3、x>=1

4、x%i == 0

5、t3=-t3

五、程序设计题

1、思路:输入f之后,按照公式计算c即可。#include void main(){ float f,c;printf(“请输入华氏温度f:”);scanf(“%f”,&f);c=(f-32)*5/9.0;printf(“摄氏温度c为%fn”,c);}

2、思路:输入a之后,判断如果大于等于0则输出1,否则输出-1。#include void main(){ int a;scanf(“%d”,&a);if(a>=0)

printf(“1n”);else

printf(“-1n”);}

3、思路:输入一个数之后,先考虑x小于等于1的情况,如果不满足这个条件,则再判断是否小于10,针对每种情况进行计算即可。

#include void main(){ float x,y;scanf(“%f”,&x);if(x<=1)/*处理x小于等于1的情况*/

y=x;else {

if(x<10)/*处理x大于1小于10的情况*/

y=2*x-1;

else /*处理x大于等于10的情况*/

y=3*x-11;} printf(“y=%fn”,y);

}

4、思路:输入3个数之后,如果a小于b则a为小的,否则b为小的,在这个判断中将小的值保存在min中;最后再判断c是否比min小,如果比min小则c是最小的,否则就是原来的min是最小的。

#include void main(){ float a,b,c,min;scanf(“%f%f%f”,&a,&b,&c);if(a

min = a;else /*否则b为小的*/

min = b;if(c

min = c;printf(“最小值为%fn”,min);}

5、思路:让输入的数除以10求余得到最后一位数字,然后判断这位数字是否比当前最大的要大,如果比当前最大的要大,则更新maxnum;求得最后一位数之后,让这个数除以10则去掉它的最后一位。依次循环直到这个数变为0。

#include void main(){ short a;int maxnum=0;/*假设最大的数开始为0*/ scanf(“%d”,&a);while(a!=0)/*只要a不等于0,表示还没有求完数中每一位的值*/ {

if(a%10>maxnum)/*判断目前这个数的最后一位是否大于最大的*/

maxnum = a%10;

a=a/10;/*去掉这个数的最后1位*/ } printf(“最大的数字为%dn”,maxnum);}

6、思路:根据题意这个数为3位的数,则本题的循环初值是100,终值是999。在循环题中,对每个i都求出它的个位、十位和百位,然后对这三个数字求他们的立方和,如果等于1099,就输出它。当循环完毕之后就能把100-999中所有满足条件的数字输出。

#include void main(){ int x,a,b,c,i;for(i=100;i<1000;i++){

x=i;/* 将i复给x,下列语句中求出x的个、十、百位就等于是求i的个、十、百位 */

a=x%10;/* 求x的个位 */

x=x/10;b=x%10;/* 求x的十位 */

x=x/10;c=x%10;/* 求x的百位 */

if(a*a*a+b*b*b+c*c*c == 1099)/*如果个、十、百位的立方和等于1099则输出这个数 */

printf(“%d ”,i);} }

7、思路:设置3个变量分别保存每一类数的个数,开始时这三个变量的初值均为0。然后在循环体中依次输入10个数(每次循环输入一个),输入一个数之后,判断这个数的类型并使对应类的变量加1。

#include void main(){ int num,zheng,fu,ling,i;zheng=0;/*保存整数的个数*/ fu=0;/*保存负数的个数*/ ling=0;/*保存0的个数*/ for(i=1;i<=10;i++)/*在循环体中,每输入一个数,判断这个数的类型并给对应的变量增加1*/ { scanf(“%d”,&num);if(num>0)/*如果为正数*/ zheng++;else if(num<0)/*如果为负数*/ fu++;else /*为零*/ ling++;} printf(“正数%d个,负数%d个,零%d个n”,zheng,fu,ling);}

8、题目中的应该修改为

思路:这是一种累加运算,n从1开始,每次累加,直到小于10-6。#include void main(){ int i=2;float e,s,n;/* e表示和,n表示每次被加数的分子,s表示每次的被加数 */ e=1;/* 第1个被加数1没有规律,所以初值为1 */ n=1;/*第1个被加数的分子为1 */ s=1;/*第1个被加数为1 */ while(s>1e-6){ e = e + s;/* 将被加数累加到e中 */ /* 下列步骤为计算好下一个被加数 */ n=n*i;s=1/n;i++;} printf(“e的值为%fn”,e);}

9、思路:这是一种累加运算,n从1开始,每次累加

11,直到小22n1n11n!1n!33!13!于10-6。

#include void main(){ int n=1;float y,s;/*y保存累加的和,s表示每次被加的数*/ y=0;s=1.0/(n*n+1);/*计算第1个被加数*/ while(s>1e-6){ y = y + s;/* 将被加数累加到y中 */ /* 下列步骤为计算好下一个被加数 */ n++;s=1.0/(n*n+1);} printf(“y=%fn”,y);}

10、思路:在循环体中,依次把0x30至0x5f的值用%d以及%c输出即可。#include void main(){ int x;for(x=0x30;x<=0x5f;x++)printf(“ASCII码为%d的数值对应字符为%cn”,x,x);}

11、方法1:

#include void main(){ int i;for(i=1;i<=100;i++)printf(“%d的平方为%dn”,i,i*i);} 方法2:

#include void main(){ int i;i=1;while(i<=100){ printf(“%d的平方为%dn”,i,i*i);i++;} } 方法3:

#include void main(){ int i;i=1;do { printf(“%d的平方为%dn”,i,i*i);i++;}while(i<=100);}

第5章

一、单项选择题

1-5 DCBDA 6-10 CDDAC 11-15 ACDCA

二、填空题 1、0、6 2、0、0

3、float s[2][3]={{70.5,85.0,69.5},{92.5,89.5,78.0}};

4、s[3][0],s[0][2],s[3][2] 5、10 说明:n个数用冒泡法需要比较n-1趟,第1趟需要比较n-1个数,第2趟需要比较n-2个数,依次类推。所以本体需要比较4趟,从第1趟到第4趟的比较次数分别为4、3、2、1,所以共比较了10次。

6、全部、所有行的前若干个

7、#include、#include

8、x1小于x2、x1等于x2、x1大于x2 9、4、s[0]、''

三、阅读程序题 1、12 2、22 3、18 10

4、说明:下列的□表示空格 ***** □***** □□***** □□□***** □□□□*****

5、efabcd

6、abcAB

7、先输入9个数保存到3行3列的数组a中(程序第4、5行),然后将数组a转置的结果保存到数组b中(程序第6、7行),最后将数组b的所有元素输出(程序第8、9、10、11行)。

8、先输入9个数保存到3行3列的数组a中(程序第4、5行),再输入9个数保存的3行3列的数组b 中(程序第6、7行),然后将数组a和b中对应下标的元素相加并将相加的结果保存到3行3列的数组c中(程序第8、9行),最后将数组c的所有元素输出(程序第10、11、12、13行)。

四、程序填空题

1、k=p

2、n=strlen(s1)

3、s[i]+=32;、i++;

4、n%base、[d]

5、max_i=min_i=0、max_i=i

五、程序设计题

1、思路:输入10个数保存到数组a中,然后计算数组a中10个元素之和,最后让这个和除以10就得到平均值。

#include void main(){ float a[10],sum,avg;int i;for(i=0;i<10;i++)/*输入10个单精度型数据保存到数组a中*/ scanf(“%f”,&a[i]);sum=0;for(i=0;i<10;i++)/*计算这10个元素之和*/ sum=sum+a[i];avg=sum/10;/*让10个元素之和除以10即可得到平均值*/ printf(“所有元素的平均值为:%fn”,avg);}

2、思路:先输入10个数保存到数组a中;然后通过一个循环将第一个元素与最后一个元素交换,第2个元素与倒数第2个元素交换,交换到中间即可完成逆序存放;最后输出数组a的元素即可。

#include void main(){ int a[10],i,temp;/*temp用来做交换两个元素的临时变量*/ for(i=0;i<10;i++)/*输入10个整数保存到a中*/ scanf(“%d”,&a[i]);for(i=0;i<=4;i++)/*通过循环交换元素*/ { temp=a[i];a[i]=a[9-i];a[9-i]=temp;} for(i=0;i<10;i++)/*输出交换后a的内容*/ printf(“%d ”,a[i]);}

3、思路:输入两个字符串保存到str1和str2数组之后,然后将第2个字符串str2连接到第1个字符串str1的后面。难点是如何确定把str2添加到str1的哪个元素之后以及为连接后的字符串加结束标志;可以通过统计str1的长度,将str2的每个元素加在str1数组长度位置之后,最后记得给连接后总的字符串添加上''作为字符串的结束标志。

#include #include void main(){ char str1[100],str2[100];int i,k,len1,len2;gets(str1);/*输入第一串字符保存到str1*/ gets(str2);/*输入第二串字符保存到str1*/ len1=strlen(str1);len2=strlen(str2);k=len1;/*将str2连接到str1之后,那么在str1后的第k个位置开始放str2的字符*/ for(i=0;str2[i]!='';i++)/*依次将str2的内容连接到str1之后*/ { str1[k]=str2[i];

k++;} str1[len1+len2]='';/* 给连接后的字符串添加结束标志 */ puts(str1);}

4、思路:先输入n,接着根据n输入n个数保存到数组x中。然后计算出这n个数的平均值,最后按照公式计算这n个数与平均值的平方和。

#include #include void main(){ float x[100],x0=0,s=0;int i,n;printf(“请输入n的值:”);scanf(“%d”,&n);/*输入n的值 */ printf(“请输入%d个数据:”,n);for(i=0;i

scanf(“%f”,&x[i]);for(i=0;i

x0=x0+x[i];x0=x0/n;/*计算这n个数的平均值 */ for(i=0;i

s=s+(x[i]-x0)*(x[i]-x0);printf(“s=%fn”,s);}

5、思路:通过一个双重循环输入数据保存到数组a中,然后假设a[0][0]既是最大(max)的又是最小(min)的,同时将最大和和最小的行、列坐标均设置为0;接着使用双重循环依次遍历数组a的每一个元素,如果比max大就更新max(同时也更新max对应的行和列坐标),如果比min小则更新min(同时更新min对应的行和列坐标);最后输出数据时要将行和列坐标的值均加1,因为在数组中下标从0开始而实际生活中的下标是从1开始。

#include void main(){ int a[3][5],i,j,max,min,max_i,max_j,min_i,min_j;/*max保存最大的值,min保存最小的值,max_i保存最大值的行号,min_j保存最大值的列号,min_i保存最小值的行号,min_j保存最小值的列号 */ for(i=0;i<3;i++)/*通过这个双重循环输入3行5列的整数到数组a中*/ for(j=0;j<5;j++)scanf(“%d”,&a[i][j]);max=min=a[0][0];/*假设数组的第1个元素是最大的、最小的 */ max_i=max_j=min_i=min_j=0;/*设置最大、最小的行和列值为0 */ for(i=0;i<3;i++)/*通过这个双重循环依次遍历数组a的每个元素,并求出最大、最小值 */ for(j=0;j<5;j++){ if(a[i][j]>max)/*如果当前元素的值比max还大,则要记录下来 */ {

max=a[i][j];

max_i=i;

max_j=j;} else /*不是最大的,有可能是最小的 */

if(a[i][j]

{

min=a[i][j];

min_i=i;

min_j=j;

}

} printf(“最大值为%d,行为%d,列为%dn”,max,max_i+1,max_j+1);printf(“最小值为%d,行为%d,列为%dn”,min,min_i+1,min_j+1);}

6、思路:通过一个循环输入数据保存在50行3列的数组a中(每列放一科的成绩),然后通过一个循环计算每科的平均值,最后输出这3个平均值。

#include void main(){ int stu[50][3],i;float sum1,sum2,sum3;/*sum1保留第1科的和,sum2保留第2科的和,sum3保留第3科的和,最后让sum1、sum2、sum3除以50即可得到平均分*/ sum1=sum2=sum3=0;for(i=0;i<50;i++)/*输入成绩*/ scanf(“%d%d%d”,&stu[i][0],&stu[i][1],&stu[i][2]);for(i=0;i<50;i++)/*计算每科的总分*/ {

sum1=sum1+stu[i][0];

sum2=sum2+stu[i][1];

sum3=sum3+stu[i][2];} printf(“%f,%f,%fn”,sum1/5,sum2/5,sum3/5);/*输出平均分*/ }

7、输入一个数保存到num中,然后将num的每一位数值逆序存储到数组a中。求num每一位数值的方法:让num除以10求余数则得到这个数的最后1位数值,让num除以10则将最后一位去掉,如此重复直到num为0。最后逆序输出数组a中保存有数值的元素即可。

#include void main(){ int num,a[5],i;scanf(“%d”,&num);/*输入这个数 */ i=0;while(num>0){ a[i]=num%10;/*将当前数的最后1位保存在a[i]中*/ num=num/10;/*去到当前这个数的最后一位 */ i++;/*更新i,方便存下一个数*/ }

/*由于刚才存放时,是将这个数的每1位逆序存放到数组a中,所以在下面的输出时要从最后一个存放数值的元素开始输出*/ i--;/*由于在前一个循环中,i增加到没有存放数的地方*/ while(i>=0){ printf(“%d”,a[i]);if(i>0)/*由于最后一个数值之后不输出逗号,所以在最后一个数值之前都输出逗号 */ printf(“,”);i--;} }

8、思路:通过gets函数将输入字符串保存到数组中;然后通过循环依次读取每个字符,判断处理每个字符,处理方法为:通过if判断如果是大写字母让其加3,是小写字母让其减3;最后输出处理之后的字符。

#include #include void main(){ char a[100];int i;gets(a);/*输入字符串*/ for(i=0;i

if(a[i]>='A'&&a[i]<='Z')/*判断是否是大写字母*/

a[i]=a[i]+3;

else if(a[i]>='a'&&a[i]<='z')/*判断是否是小写字母*/

a[i]=a[i]-3;} puts(a);/*输出字符串*/ }

9、思路:与上一题一致,只是输入数据后,通过循环读取每个字符的处理方法不同,如果值是大于等于'A'+3且小于等于'Z'+3则让其减3(这个地方处理的是由原来大写字母加密所得的),如果值是大于等于'a'-3且小于等于'z'-3则让其加3(这个地方处理的是由原来小写字母加密所得的)。

#include #include void main(){ char a[100];int i;gets(a);/*输入字符串*/ for(i=0;i

if(a[i]>='A'+3&&a[i]<='Z'+3)/*判断是否是大写字母加密所得的字符*/

a[i]=a[i]-3;

else if(a[i]>='a'-3&&a[i]<='z'-3)/*判断是否是小写字母加密所得的字符*/

a[i]=a[i]+3;} puts(a);/*输出字符串*/ }

10、思路:先通过一个双重循环输入5行5列的数据保存到二维数组a中。然后通过一个双重循环读取矩阵上三角的数据(特点是列下标大于行下标),如果其a[i][j]的值不等与a[j][i]的值则设置标志flag的值为1并结束内循环,在外循环中判断如果标志flag的值变为1则结束整个循环;最后判断flag的值并输出对应的内容。

#include #include void main(){ int a[5][5],i,j,flag;flag=0;/*这个是标志变量,如果值变为1则矩阵不是对称矩阵*/ for(i=0;i<5;i++)/*这个双重循环输入数据保存到数组a中*/

for(j=0;j<5;j++)

scanf(“%d”,&a[i][j]);for(i=0;i<5;i++)/*这个双重循环读取矩阵上三角的数据*/ {

for(j=i+1;j<5;j++)

{

if(a[i][j]!= a[j][i])/*如果满足这个条件,则矩阵是不对称矩阵*/

{

flag = 1;/*是不对称矩阵,设置标志为1,并结束内循环*/

break;

}

}

if(flag==1)/*如果已经知道是不对称矩阵,则可以直接结束整个循环*/

break;} if(flag == 1)/*判断是否是对称矩阵并输出对应的内容*/

printf(“non”);else

printf(“yesn”);}

第6章

一、单项选择题

1-5 DBBDD 6-10 BDDCC 11-15 BACDD 16 D

二、填空题

1、该字节、第一个字节

2、指针、取地址

3、a+i*4

4、地址

5、关系 6、3、+3

7、double *p=&d

8、地址、所指向的值、地址

9、ABCD、A

10、&变量名、数组名、&数组第一个元素名 11、2、5

三、阅读程序题

1、ABCDEFGH

2、eybdooG 3、4,p=

4、ABCD BCD CD D 5、17,10,-3,13,1,-21

6、从键盘输入10个整数保存在数组a中,然后将这10个数逆序输出。

7、从键盘输入一串字符保存在数组a中,然后通过一个循环统计左圆括号'('和右圆括号')'的数量,如果两个括号的数量相等则输出ok!,否则输出no!。

四、程序填空题

1、''、++

2、x=x*10+((long)(*p++)-48);

五、程序设计题

略,考试一般不会考指针类的编程题,根据历年的情况只考一题顺序或分支结构的题目、一题函数或循环结构的编程题,所以本章只要能掌握第6章课件中相关的例子即可。

第7章

一、单项选择题

1-5 BACCC

6、D

7、C

8、无答案,全部都可以

9、C

10、C

二、填空题

1、所定义的函数或它所在的复合语句。

2、地址传递、值传递

3、函数定义的语句块中、内部定义的局部

4、return、void

5、函数外、函数内、static、外部

6、整、地址

7、嵌套、递归

8、指针、指针型

9、按照1000赫兹的频率连续发出鸣笛声、产生0-999之间的随机整数

三、阅读程序题 1、30,20,10

2、BABBAB 3、5 4、12

5、此题比较难,不需要理解。

6、如果p1指向的内容比p2指向的内容大,则交换p1和p2所指向的内容

7、求数组a中前n个数的平均值。

8、此题的题目有错,将题目中第5行的:*p++''改为:*p==' '。那么这个函数的功能为:统计p所指向的一串字符中空格和星号(*)的个数。

9、此题比较难,不需要理解。

四、程序填空题

1、int *、*z

2、-1

3、此题的题目有错,将第2行的“int;”改为“int t;”,将第4行程序if括号内的内容修改为:*pc>*pb。第1空填:pc,pb 第2空填:pa,pc 第3空填:pa,pb

4、tupper(x)、f(ch)

5、w[i-1]

五、程序设计题

在此处的程序设计题中,题目仅要求设计函数。但在下列给出的程序中,除开写出规定的函数外,还写出main函数,以方面大家能够正常执行程序。

1、思路:假设函数的形式参数a、b和c为整型数据,那么返回值b2-4ac也应该是整型数据。在函数体中只要按照公式计算好b2-4ac并将其返回即可。

#include int p(int a,int b,int c)/*这是定义函数p */ { int m;m=b*b-4*a*c;return(m);} void main()/* 这是主函数 */ { int a,b,c,x;/*注意:此处的a、b、c与函数中的a、b、c不是同一个变量,它们分别是2个不同的局部变量*/ scanf(“%d%d%d”,&a,&b,&c);x=p(a,b,c);/*调用函数p*/ printf(“b*b-4*a*c=%dn”,x);}

2、思路:假设函数的名称为leap,那么这个函数有一个整型的参数y用来接受年份,有一个整型的返回值,用来返回0或者1,然后在函数体中判断y是否为闰年并返回对应的值即可。判断闰年的条件是年份y能被4整除但是不能被100整除,或者年份y能被400整除。

#include int leap(int y)/*定义函数*/ { if((y%4==0 && y%100!=0)|| y%400==0)/*判断是否是闰年*/

return(1);/*是闰年返回1*/ else

return(0);/*不是闰年返回0*/ } void main(){ int year;scanf(“%d”,&year);if(leap(year)==1)

printf(“%d是闰年n”,year);else

printf(“%d不是闰年n”,year);}

3、思路:此函数名为root2,有4个参数,分别是3个单精度型的a、b、c和单精度型的数组名root,在函数体中计算方程的2个根按照求根公式算即可。由于root是数组名,所以在子函数中将值保存到root数组中则会在主调函数中体现出来。

#include #include void root2(float a,float b,float c,float root[])/*定义函数root2*/ { float q;q=b*b-4*a*c;/*计算△的值 */ root[0]=(-b+sqrt(q))/(2*a);/*根据公式计算第1个根*/ root[1]=(-b-sqrt(q))/(2*a);/*根据公式计算第2个根*/ } void main(){ float a,b,c,rt[2];a=1;b=-3;c=2;root2(a,b,c,rt);printf(“root1=%fn”,rt[0]);printf(“root2=%fn”,rt[1]);}

4、思路:这个函数的名称为trus,函数中有2个二维数组的形式参数用来接受进行转置的数组和转置后的数组。在函数体中按照以前讲的知识通过一个双重循环将参数中数组s1转置之后保存到数组s2中,转置的方法是将s1的每个元素s1[i][j]赋值给s2的每个元素s2[j][i]即可。由于形参是数组名,所以在函数中进行的转置在主调函数的实参中能直接体现出来。

#include void trus(int s1[2][3],int s2[3][2])/*定义函数trus*/ { int i,j;for(i=0;i<2;i++)

for(j=0;j<3;j++)

s2[j][i]=s1[i][j];} void main(){ int a[2][3]={1,2,3,4,5,6},b[3][2],i,j;trus(a,b);printf(“转置后的数组为:n”);for(i=0;i<3;i++)/*输出转置后的数组*/ {

for(j=0;j<2;j++)

printf(“%3d”,b[i][j]);

printf(“n”);} }

5、思路:该函数的名称为countc,函数的形参为一个字符型的数组,返回值类型为整型。在函数体中依次读取参数数组array中的每个元素,如果是大写字母则使计数器n加1,最后返回n的值。

#include int countc(char array[]){ int n=0,i;for(i=0;array[i]!='';i++)/*读取形参数组的每个元素*/

if(array[i]>='A' && array[i]<='Z')/*如果是大写字母则让n++ */

n++;return(n);} void main(){ char a[50];int num;gets(a);/*输入一串字符保存到字符数组a中 */ num=countc(a);printf(“数组a中的大写字母个数为:%dn”,num);}

6、思路:此函数的名称为link,形参为3个字符数组,函数的返回值类型为void。在函数体中,难点是如何将s2连接到s1之后存入s3中;其实最简单的方法不是直接将s2连接到s1之后,而是先把s1的每个元素放到s3的前面元素中,然后再将s2的每个元素紧接着放在s3的后面元素中(即在s3中接着s1后的元素放s2的元素)。

#include void link(char s1[40],char s2[40],char s3[80]){ int i,j;for(i=0;s1[i]!='';i++)/*读取s1的每个元素到s3的前面元素中*/

s3[i]=s1[i];for(j=0;s2[j]!='';j++,i++)/*在s3中接着s1后的元素放s2的元素*/

s3[i]=s2[j];s3[i]='';/*给连接之后的数组添加字符串结束符号*/ } void main(){ char a[40]=“abcde”,b[40]=“12345”,c[80];link(a,b,c);printf(“连接后的字符串为:%sn”,c);}

7、思路:假设函数的名称为find,函数的返回值为void,由于本题函数计算的结果最大值、最小值、平均值均要通过函数的形参在主调函数中能体现,那么这些形参必须为指针类型,则函数的形参共有5个参数,分别为实型数组f、整型变量n、三个实型指针变量。函数体中寻找最大值、最小值和平均值的方法与之前讲的一致;求平均值为将所有元素值求和,最后再除以n即可;求最大值为假设第一个值是当前最大的,然后依次用每个元素与当前最大的比较,如果这个元素比当前最大的要大,则把这个元素更新为当前最大的;求最小值与求最大值类似。

#include void find(float f[],int n,float *max,float *min,float *avg){ int i;*max=*min=f[0];/*假设开始时第1个元素为当前最大的,也为当前最小的*/ for(i=0;i

*avg = *avg + f[i];/*把元素求和*/

if(f[i]>*max)/*判断当前元素是否比当前最大的要大,如果成立则更新当前最大的*/

*max=f[i];

else if(f[i]<*min)/*判断当前元素是否比当前最小的要小,如果成立则更新当前最小的*/

*min=f[i];} *avg = *avg/n;/*根据元素和求它们的平均值*/ } void main(){ float a[10]={6,3,8,9,10,7,4,1,2,5};float da,xiao,pingjun,*max=&da,*min=&xiao,*avg=&pingjun;/*da表示存储最大的值,xiao表示存储最小的值,pingjun表示存储平均值,并分别用三个指针指向它们 */ find(a,10,max,min,avg);printf(“最大值为%f,最小值为%f,平均值为%fn”,da,xiao,pingjun);

}

8、思路:假设该函数的名称为f,则函数f有一个整型的形参n,用来接受进行判断是否是同构数的数,该函数有一个整型的返回值,返回的值为0或1。那么在函数体中主要是对接受到传递的数n判断是否为同构数,如果是则返回1,否则返回0;由于题目要求判断是否为同构数是2位的整数,那么判断同构数的方法:先求这个数的平方,如果被判断数(假设为n)与它的平方(假设为x)最后一位相同且倒数第2位也相同,则为同构数;最后一位相同的判断式子为n%10 == x %10,即某个数与10求余则得到这个数最后一位的值;倒数第2位相同的判断式子为(n/10)%10 ==(x/10)%10,即某个整数除以10则得到它删除最后1位后的值,再让删去最后一位的结果与10求余就可以得到倒数第2位的数值。

#include int f(int n){ int x;x=n*n;/*求被判断数的平方*/ if((n%10 == x%10)&&((n/10)%10==(x/10)%10))/*判断是否为同构数 */ return(1);else return(0);} void main()/*主函数为输入一个数,然后调用函数f判断这个数是否为同构数 */ { int a;scanf(“%d”,&a);if(f(a)== 1)

printf(“%d是同构数”,a);else

printf(“%d不是同构数”,a);}

x2x3x49、思路:这题比较难,难在如何求1x这个式子的值,2!3!4!x1x2x3x4()这个式子可以看成1,那么只要把括号里的式子求出来,1!2!3!4!x1x2x3x4然后加上1就得到整个式子的值。求为一种累加元素,假

1!2!3!4!设每次的被加数为n,则n为一个分数,分子的初值为x,分母的初值为1,则每加完一个数之后,被加数的分子多乘一个x,分母多乘一个i(从2开始,每x1x2x3x4次增加1),直到某个被加数的值小于10;那么计算的思

1!2!3!4!-4想为:在循环之前要给第一个被加数赋好初值,然后在循环体中先将被加数累加到变量sum中,然后更新被加数的分子和分母,并计算好下一个被加数。

那么假设计算ex的函数为f,则f有一个整型的参数用来接受x的值,并有一个浮点型的返回值,循环体中按照上述的方法求即可ex。

#include float f(int x){ float sum,n,fenzi,fenmu;/* sum保存整个式子的和,n保存每次的被加数,fenzi保存每次被加数的分子,分母保存每次被加数的分母 */ int i;i=2;sum=0;fenzi=x;/*给分子赋初值*/ fenmu=1;/*给分目赋初值*/ n=fenzi/fenmu;/*计算好第1个被加数*/ while(n>1e-4){ sum = sum +n;/*将当前的被加数加到sum中*/ fenzi=fenzi*x;/*计算下一个被加数的分子*/ fenmu=fenmu*i;/*计算下一个被加数的分母*/ n=fenzi/fenmu;/*根据下一个被加数的分子和分母计算出下一个被加数*/ i++;/*更新i,方便计算再下一个数的分母 */ } return(sum+1);} void main()/*主函数为输入一个数,然后调用函数f计算结果*/ { int a;scanf(“%d”,&a);printf(“%f”,f(a));}

10、递归函数设计比较难,在考试一般不考,所以本题不需要理解,略。

第8章

一、单项选择题

1、无答案,每个选项都错

2-7 DDDBCB

8、比较难,略 9-10 AC

二、填空题

1、struct a{char name[10];int age;float wage;};

2、指向成员、结构型的指针名、成员名

3、.、结构型变量名、结构型的成员名

4、ab.a、(&ab)->a、p_ab->a、(*p_ab).a

5、ti_hour、ti_min、ti_sec、ti_hund

6、该结构型中所有成员所占的字节数之和

7、int *x[5];

三、阅读程序题

1、name:zhang total=170.0 Name:wang total:150.0 2、2 3、123 abc 456 4、34 相关知识:date为系统提供的结构型,用于表示一个日期,在这个结构型中有三个成员da_year、da_mon、da_day分别表示日期中的年、月、日的值。使用getdate函数获得当前系统日期给参数中的指针。5、51,60,21

四、程序填空题

1、c[j]=c[j]+s[i].score[j];

2、getdate(&date1);

五、程序设计题 略

第9章

一、单项选择题

1-5 BAABA 6-10 CDCBC

二、填空题

1、盘符:路径文件主名.扩展名、盘符、扩展名

2、打开、关闭

3、stdin、stdout、stderr

4、文件型指针变量p、stdio.h

5、a地址、b*c、d

6、rewind(fp)、fseek(fp,0,0)

三、阅读程序题 1、10 2、121314252627 3、567890

4、将f1指向的文件p1.c的内容读出,并依次写入到p2指向的文件p2.c中,即将文件p1.c的内容复制到文件p2.c中。

四、程序填空题

1、(!feof(fp))

2、“w”、close(fp)

五、程序设计题 略

下载高级语言程序设计总结-陈凯源word格式文档
下载高级语言程序设计总结-陈凯源.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    《高级语言程序设计C》实验教学大纲

    《高级语言程序设计C》实验教学大纲 课程编号:1021742 总学时:56学时 适用专业:非计算机理工科各专业 总实验学时:24 实验次数: 12 次 应开实验个数:13 已开实验个数:13 实验开出......

    高级语言程序设计(C语言)实验教学大纲

    信息技术系《高级语言程序设计》实验教学大纲 一、教材名称: 二、课程总学时:108学时 [理论: 72 学时;实验与上机:36学时] 三、适用专业和开课学期:软件技术专业,第2学期。 四、实......

    C高级语言程序设计实验内容

    实验一 C语言的运行环境和基础知识 一、实验目的 1. 掌握c程序设计编程环境visual c++,掌握运行一个c程序设计的基本步骤,包括编辑、编译、连接和运行。 2. 熟练掌握Visual C+......

    《高级语言程序设计》课程设计任务书2

    《高级语言程序设计》课程设计任务书 一、课程设计的目的 高级语言程序设计是本科工科类各专业的重要基础课,课程以影响深远的、传统的、面向过程的优秀编程语言C语言为基础,......

    高级语言程序设计实验报告 C语言实验报告(5篇范例)

    C语言程序设计实验报告 实验二 循环结构程序设计 班级 2012196 学号 201219628 姓名 李明月 一、实验目的 掌握用while语句,do-while语句和for语句实现循环的方法; 掌握......

    C语言高级程序设计讲座1(转)

    C语言高级程序设计讲座1 C语言程序设计 2009-07-27 08:44 阅读153 评论0 字号: 大大中中小小 第一讲C语言图形方式下的编程 前言 一年前我刚刚接触网站制作,正值我学C语言,便......

    高级程序设计-教学大纲

    高级程序设计 Advanced Programming Languages 课程编码:05305100 学分:2.5 课程类别:专业方向课(必修) 计划学时:48 其中讲课:32 实验或实践:0 上机:16 适用专业:电子商务 推荐教材......

    高级程序设计教学大纲

    华中科技大学文华学院 《高级程序设计》课程教学大纲 一、课程名称:高级程序设计 Senior Program Design 二、课程编码: 三、学时与学分:32/2 四、先修课程:C语言程序设计 五、......