清华大学C语言黄维通
- 格式:pptx
- 大小:1.34 MB
- 文档页数:38
主要参考文献[1]Jeannette M. Wing. Computational Thinking[J]. Communications of the ACM,2006,49(3): 33—35.[2]孙家广.计算机科学的变革[M].中国计算机学会通讯[M],2009,5(2):6—9.[3]陈国良,董荣胜.计算思维与大学计算机基础教育[M].中国大学教学2011.[4]孙连科,许薇薇.C程序设计[M].北京:清华大学出版社,2013.[5]曹哲,刘军,等.C语言程序设计[M].北京:机械工业出版社,2013.[6]陈明晰,谢蓉蓉.C程序设计[M].北京:清华大学出版社,2013.[7]王曙燕,曹锰,王春梅,等.C语言程序设计[M].北京:科学出版社,2008.[8]刘志铭,杨丽,等.C语言入门经典[M].北京:机械工业出版社,2013.[9]杨路明.C语言程序设计教程[M].北京:北京邮电大学出版社,2011.[10]孔浩,张华杰,陈猛.C指针编程之道[M].北京:人民邮电出版社,2011.[11]侯俊杰,深入浅出MFC[M].武汉:华中科技大学出版社,2001.[12]David JKnglinski,Scot Wingo.Visual C++6.0技术内幕(第5版)[M].北京:希望电子出版社,2001.[13]鲍有文,等.C程序设计(二级)样题汇编[M].北京:清华大学出版社,2000.[14]陈维兴,林小茶.C++面向对象程序设计教程[M].北京:清华大学出版社,2002.[15]成岩,周露,杨嘉伟.C++语言与应用基础[M].北京:科学出版社,2002.[16]冯博琴,刘路放.精讲多练C语言[M].西安:西安交通大学出版社,1997.[17]高枚,杨志强,许丽华.C语言程序设计教程[M].上海:同济大学出版社,2001.[18]顾元刚等.C语言程序设计教程[M].北京:机械工业出版社,2004.[19]黄维通,姚瑞霞.Visual C++程序设计教程[M].北京:机械工业出版社,2001.[20]李春葆.C程序设计教程[M].北京:清华大学出版社,2004.[21]李凤霞.C语言程序设计教程[M].北京:北京理工大学出版社,2001.[22]李剑.Visual C++.NET实用教程[M].北京:人民邮电出版社,2002.[23]刘加海.高级语言程序设计[M].浙江:浙江大学出版社,2002.[24]卢凤双,张律.C语言程序设计案例教程[M].北京:北京科海电子出版社,2002.[25]齐勇等.C语言程序设计[M].修订本.西安:西安交通大学出版社,1999.[26]谭浩强.C程序设计(第二版)[M].北京:清华大学出版社,2002.[27]王斌君,卢安国.面向对象的方法学与C++语言[M].西安:西北大学出版社,2000.[28]杨健霑.C语言程序设计[M].武汉:武汉大学出版社,2002.[29]姚庭宝.C语言及编程技巧[M].长沙:国防科技大学出版社,2001.[30]张毅坤,曹锰,张亚玲,等.C语言程序设计教程[M].西安:西安交通大学出版社,2003.[31]郑莉,刘慧宁,孟威.C++程序设计教程[M].北京:机械工业出版社,2001.[32]Consor Sexton.C++简明教程[M].张红译.北京:机械工业出版社,1998.372。
清华数据结构习题集答案C语⾔版清华数据结构习题集答案(C 语⾔版严蔚敏)第1章绪论1.1 简述下列术语:数据,数据元素、数据对象、数据结构、存储结构、数据类型和抽象数据类型。
解:数据是对客观事物的符号表⽰。
在计算机科学中是指所有能输⼊到计算机中并被计算机程序处理的符号的总称。
数据元素是数据的基本单位,在计算机程序中通常作为⼀个整体进⾏考虑和处理。
数据对象是性质相同的数据元素的集合,是数据的⼀个⼦集。
数据结构是相互之间存在⼀种或多种特定关系的数据元素的集合。
存储结构是数据结构在计算机中的表⽰。
数据类型是⼀个值的集合和定义在这个值集上的⼀组操作的总称。
抽象数据类型是指⼀个数学模型以及定义在该模型上的⼀组操作。
是对⼀般数据类型的扩展。
1.2 试描述数据结构和抽象数据类型的概念与程序设计语⾔中数据类型概念的区别。
解:抽象数据类型包含⼀般数据类型的概念,但含义⽐⼀般数据类型更⼴、更抽象。
⼀般数据类型由具体语⾔系统内部定义,直接提供给编程者定义⽤户数据,因此称它们为预定义数据类型。
抽象数据类型通常由编程者定义,包括定义它所使⽤的数据和在这些数据上所进⾏的操作。
在定义抽象数据类型中的数据部分和操作部分时,要求只定义到数据的逻辑结构和操作说明,不考虑数据的存储结构和操作的具体实现,这样抽象层次更⾼,更能为其他⽤户提供良好的使⽤接⼝。
1.3 设有数据结构(D,R),其中{}4,3,2,1d d d d D =,{}r R =,()()(){}4,3,3,2,2,1d d d d d d r =试按图论中图的画法惯例画出其逻辑结构图。
解:1.4 试仿照三元组的抽象数据类型分别写出抽象数据类型复数和有理数的定义(有理数是其分⼦、分母均为⾃然数且分母不为零的分数)。
解:ADT Complex{数据对象:D={r,i|r,i 为实数}数据关系:R={}基本操作:InitComplex(&C,re,im) 操作结果:构造⼀个复数C ,其实部和虚部分别为re 和imDestroyCmoplex(&C) 操作结果:销毁复数CGet(C,k,&e) 操作结果:⽤e 返回复数C 的第k 元的值Put(&C,k,e)操作结果:改变复数C的第k元的值为eIsAscending(C)操作结果:如果复数C的两个元素按升序排列,则返回1,否则返回0 IsDescending(C)操作结果:如果复数C的两个元素按降序排列,则返回1,否则返回0 Max(C,&e)操作结果:⽤e返回复数C的两个元素中值较⼤的⼀个Min(C,&e)操作结果:⽤e返回复数C的两个元素中值较⼩的⼀个}ADT ComplexADT RationalNumber{数据对象:D={s,m|s,m为⾃然数,且m不为0}数据关系:R={}基本操作:InitRationalNumber(&R,s,m)操作结果:构造⼀个有理数R,其分⼦和分母分别为s和m DestroyRationalNumber(&R)操作结果:销毁有理数RGet(R,k,&e)操作结果:⽤e返回有理数R的第k元的值Put(&R,k,e)操作结果:改变有理数R的第k元的值为eIsAscending(R)操作结果:若有理数R的两个元素按升序排列,则返回1,否则返回0 IsDescending(R)操作结果:若有理数R的两个元素按降序排列,则返回1,否则返回0 Max(R,&e)操作结果:⽤e返回有理数R的两个元素中值较⼤的⼀个Min(R,&e)操作结果:⽤e返回有理数R的两个元素中值较⼩的⼀个}ADT RationalNumber1.5 试画出与下列程序段等价的框图。
第5章习题解答一、选择题1.以下叙述中错误的是。
A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出B)数组名代表的是数组所占存储区的首地址,其值不可改变C)在程序执行中,当数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息D)可以通过赋初值的方式确定数组元素的个数解析:对于double类型数组,不能直接用数组名对数组进行整体输入或输出。
所以选项A的说法是正确的。
数组名代表数组所占内存区的首地址,是一个固定指针,其值不可改变,因此选项B也是正确的。
在C语言一维数组定义时可以不指定数组长度,由赋初值的初值个数决定数组的长度。
因此选项D也是正确的。
C语言程序在执行时,不检查数组元素的下标是否越界,如果出现越界,可能会引起系统死机,因此选项C不正确。
答案:C2.有以下程序:/* 文件路径名:ex5_1_2\main.c */#include <stdio.h> /* 标准输入/出头文件*/int main(void) /* 主函数main() */{char s[] = "abcde"; /* 定义字符数组*/s += 2; /* s自加2 */printf("%d\n", s[0]); /* 输出s[0] */return 0; /* 返回值0, 返回操作系统*/}执行后的结果是。
A)输出字符a的ASCII码B)输出字符c的ASCII码C)输出字符c D)程序出错解析:数组s[]的首地址值s是不可改变的,故该程序编译时会出错。
答案:D3.有以下程序:/* 文件路径名:ex5_1_3\main.c */#include <stdio.h> /* 标准输入/出头文件*/int main(void) /* 主函数main() */{int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, *p = &a[3], *q = p + 2; /* 定义数组及变量*/printf("%d\n", *p + *q); /* 输出*p + *q之值*/return 0; /* 返回值0, 返回操作系统*/}程序运行后的输出结果是。
C++语言程序答案第四版清华大学第一章概述1-1 简述计算机程序设计语言的发展历程。
解:迄今为止计算机程序设计语言的发展经历了机器语言、汇编语言、高级语言等阶段,C++语言是一种面向对象的编程语言,也属于高级语言。
1-2 面向对象的编程语言有哪些特点?解:面向对象的编程语言与以往各种编程语言有根本的不同,它设计的出发点就是为了能更直接的描述客观世界中存在的事物以及它们之间的关系。
面向对象的编程语言将客观事物看作具有属性和行为的对象,通过抽象找出同一类对象的共同属性(静态特征)和行为(动态特征),形成类。
通过类的继承与多态可以很方便地实现代码重用,大大缩短了软件开发周期,并使得软件风格统一。
因此,面向对象的编程语言使程序能够比较直接地反问题域的本来面目,软件开发人员能够利用人类认识事物所采用的一般思维方法来进行软件开发。
C++语言是目前应用最广的面向对象的编程语言。
1-3 什么是结构化程序设计方法?这种方法有哪些优点和缺点?解:结构化程序设计的思路是:自顶向下、逐步求精;其程序结构是按功能划分为若干个基本模块;各模块之间的关系尽可能简单,在功能上相对独立;每一模块内部均是由顺序、选择和循环三种基本结构组成;其模块化实现的具体方法是使用子程序。
结构化程序设计由于采用了模块分解与功能抽象,自顶向下、分而治之的方法,从而有效地将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护。
虽然结构化程序设计方法具有很多的优点,但它仍是一种面向过程的程序设计方法,它把数据和处理数据的过程分离为相互独立的实体。
当数据结构改变时,所有相关的处理过程都要进行相应的修改,每一种相对于老问题的新方法都要带来额外的开销,程序的可重用性差。
由于图形用户界面的应用,程序运行由顺序运行演变为事件驱动,使得软件使用起来越来越方便,但开发起来却越来越困难,对这种软件的功能很难用过程来描述和实现,使用面向过程的方法来开发和维护都将非常困难。
信息与计算科学专业课程简介课程代码:3112001131.课程名称:解析几何 Analytic Geometry总学时: 64 周学时: 4学分: 3 开课学期:一修读对象:必修预修课程:无内容简介:《解析几何》是学科基础课程,是所有数学专业及应用数学专业的主要的基础课。
它是用代数的方法来研究几何图形性质的一门学科。
《解析几何》包括向量与坐标,轨迹与方程,平面与空间直线,柱面、锥面、旋转曲面与二次曲面,二次曲线的一般理论与二次曲面的一般理论等。
选用教材:吕林根,许子道,《解析几何》(第四版),高等教育出版社,2006年。
参考书目:周建伟,《解析几何》,高等教育出版社,2005年。
课程代码:311200214、311200314、311200616、3112007152.课程名称:数学分析Ⅰ-Ⅳ Mathematical AnalysisⅠ-Ⅳ总学时:334 周学时:4,4,6,5学分: 18 开课学期:一,二,三,四修读对象:必修预修课程:无内容简介:《数学分析》是学科基础课程,是所有数学专业及应用数学专业第一基础课。
它提供了利用函数性质分析和解决实际问题的方法, 培养学生严谨的抽象思维能力,为学习其他学科奠定基础。
主要内容有:实数、函数、极限论,函数的连续性。
一元函数微分学,微分学基本定理。
一元微分学应用,实数完备性基本定理,闭区间上连续函数性质的证明,不定积分,定积分及应用,非正常积分。
数项级数,函数列与函数项级数,幂级数,付里叶级数,多元函数的极限与连续,多元函数微分学。
隐函数定理及其应用,重积分,含参量非正常积分,曲线积分与曲面积分。
选用教材:华东师范大学数学系,《数学分析》(第三版)(上、下册),高等教育出版社,2001年。
参考书目:① 陈纪修,《数学分析》(第二版),高等教育出版社2004年。
② 刘玉琏,傅沛仁,《数学分析讲义》(第三版),高等教育出版社,1992年。
课程代码:311200416、3112005153.课程名称:高等代数Ⅰ-Ⅱ Advanced AlgebraⅠ-Ⅱ总学时:198 周学时:6,5学分: 11 开课学期:二,三修读对象:必修预修课程:无内容简介:《高等代数》是学科基础课程。
《C语言程序设计》教案
单位:湖南理工职业技术学院学院(教研室):风能工程学院工业机器人专业授课教师:周常欣职称:助教
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
第29-30 课时
《C语言程序设计》教案
第31-32 课时
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
第37-38 课时
《C语言程序设计》教案
第39-40 课时
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案。
第4章习题解答一、选择题1.在C语言中,函数返回值的类型最终取决于A)函数定义时的函数首部所说明的函数类型B)return语句中表达式值的类型C)调用函数时主调函数所传递的实参类型D)函数定义时形参的类型解析:函数返回值类型最终取决于定义函数时所定义的函数类型.答案:A2.设函数Fun()的定义形式为:void Fun(char ch,float x){}则以下对函数Fun()的调用语句中,正确的是.A)Fun(”abc”, 3。
0);B)t = Fun(’D’,16.5);C)Fun('65’,2.8); D)Fun(32,32);解析:选项A中"abc”是字符串,与形参不匹配:由于Fun函数的返回值类型为void,所以选项B中进行了赋值操作是不正确的;在选项C中,’65’是不合法的字符形式,单引号中应该是单个字符。
只有选项D才是合法的函数调用形式。
答案:D3.有以下程序:/*文件路径名:ex4_1_3\main。
c */#include <stdio。
h> /* 标准输入/输出头文件*/int f1(int x,int y){return x 〉y ? x : y;}int f2(int x,int y){return x 〉y ? y : x;}int main(void)/*主函数main()*/{int a = 4,b = 3, c = 5,d = 2,e,f, g;/* 定义变量*/e = f2(f1(a,b),f1(c,d));f = f1(f2(a,b),f2(c, d));/*调用函数*/g = a + b + c + d —e —f;/* 算术运算*/printf(”%d,%d,%d\n", e, f,g);/*输出e,f,g */return 0; /*返回值0,返回操作系统*/}程序运行后的输出结果是。
A)4,3,7 B)3,4,7 C)5,2,7 D)2,5,7解析:函数f1用于求两个数中的最大数,而函数f2用于求两个数中的最小数.因此有:e=f2(f1(a,b),f1(c,d))=f2(f1(4,3),f1(5,2))= f2(4,5)=4;f=f1(f2(a,b),f2(c,d)) =f1(f2(4,3),f2(5,2)) =f1(3,2)=3;g=a+b+c+d—e—f=4+3+5+2—4—3=7.答案:A4.若函数调用时的实参为变量,以下关于函数形参和实参的叙述中正确的是.A)函数的实参和其对应的形参共占同一存储单元B)形参只是形式上的存在,不会占用具体存储单元C)同名的实参和形参占同一存储单元D)函数的形参和实参分别占用不同的存储单元解析:在C语言中,函数的形参和实参是分别占用不同的存储单元的,因此,选项D是正确的。