清华大学C 语言程序设计教程 (8)
- 格式:ppt
- 大小:632.00 KB
- 文档页数:92


一、实验目的
1、掌握定义函数的方法;
2、掌握函数实参与形参的对应关系以及“值传递”的方式;
3、掌握函数的嵌套调用和递归调用的方法;
4、掌握全局变量、局部变量、动态变量、静态变量的概念和使用方法;
5、了解数组元素、数组名作函数参数。
二、实验内容(程序清单及运行结果)
1. 上机调试下面的程序,记录系统给出的出错信息,并指出出错原因。
void main()
{ int x,y;
printf("%d\n",sum(x+y));
int sum(a,b);
{
int a,b;
return(a+b);
}
}
错误原因:没有输入x,y的值,没有定义函数a b.
更改:
#include
void main()
{
int x,y;
scanf("%d%d",&x,&y);
printf("%d\n",sum(x,y));
}
int sum(int a,int b) {
return (a+b);
}
2. 已有变量定义和函数语句“int a=1,b=-5,c;c=fun(a,b);”,fun函数的作用是计算两个数之差的绝对值,并将差值返回给调用函数,请编写fun函数,并调试。
fun (int x,int y)
{ }
#include
int fun(int x ,int y)
{
int tmp;
tmp=x-y;
if(tmp>=0)
return tmp;
else
return -tmp;
}
void main()
{
int a=1,b=-5;
printf("%d与%d差的绝对值为:%d\n",a,b,fun(a,b));
}
3. 自己写一个字符串复制函数strcpy( ),并调试运行;
分析:一个字符串是以’\0’结束的,那么就可以以’\0’作为结束循的标志进行解决之,算法流程图如下:
《C语言程序设计》课后习题参考答案
第1章 C语言及程序设计概述
1. 单选题
(1)A (2)B (3)A (4)B (5)C
2.填空题
(1)//,/*…*/
(2)scanf()
(3)printf()
3.判断题
(1)对 (2)错 (3)错 (4)对
第二章:数据类型 运算符与表达式
1.单选题
(1)C (2)D (3)C (4)B (5)C (6)A
(7)B (8)D (9)A
(8)D
(9)A
(10)B
(11)C
(12)C
(13)D (14)A
(15)B
(16)C
(17)A
(18)A
(19)B
(20)C
(21)C
(22)D
(23)C
(24)A
(25)D
(26)B
(27)C
(28)B
(29)B
(30)A
2.填空题
(1)sqrt(pow(y,x)+log10(y))
(2)36
(3)6
(4)3 3 (5)6
(6)36
(7)int x=8,y=8;
(8)1
(9)E
(10)6,7,8,9
(11)6
(12)66,96
(13)240
(14)1,1,-1,-1
(15)5,2,6
(16)1
(17)!
(18)2
(19)(a>0&&a<101)&&(a%3==0||a%7==0)
(20)A
3.程序分析题
(1)2 7
2 7
4 9
4 4
12 12 (2)3 1 4 0
1
16
(3)100 d 68 D
97 a 49 1
(4)0 1 0 1
(5)2 4 6 7
-0.58 70
4
6.58
7.5
(6)3
3 1
2 1
13 13 0
8
C语言程序设计教程
习题答案
总主编杨路明
主审郭浩志
文件摘自CSDN
习题1
1、算法描述主要是用两种基本方法:第一是自然语言描述,第二是使用专用工
具进行算法描述
2、c语言程序的结构如下:
1、c语言程序由函数组成,每个程序必须具有一个main函数作为程序的主
控函数。
2、"/*"与"*/"之间的内容构成c语言程序的注释部分。
3、用预处理命令#include可以包含有关文件的信息。
4、大小写字母在c语言中是有区别的。
5、除main函数和标准库函数以外,用户可以自己编写函数,程序一般由多
个函数组成,这些函数制定实际所需要做的工作。
例如:
voidmain()
{
inta,b,c,s;
a=8;b=12;c=6;
s=a+b*c;
printf("s=%d\n",s);
}
3、c语言的特点:
1、c语言具有结构语言的特点,程序之间很容易实现段的共享;2、c语言的主要结构成分为函数,函数可以在程序中被定义完成独立的任务,
独立地编译成代码,以实现程序的模块化。
3、c语言运算符丰富,运算包含的范围很广;
4、c语言数据类型丰富。
5、c语言允许直接访问物理地址,即可直接对硬件进行操作,实现汇编语言
的大部分功能;
6、c语言语法限制不太严格,程序设计自由度大,这样是c语言能够减少对
程序员的束缚;
7、用c语言编程,生成的目标代码质量高,程序执行效率高,可移植性好;
4、合法标识符:AB12、leed_3、EF3_3、_762、PAS、XYZ43K2
不合法标识符:a*b2、8stu、D.K.Jon、if、ave#xy、#_DT5、C.D
5、F2:将当前编辑器中文件存盘
F10:调用主菜单
F4:程序运行到光标所在行
Ctrl+F9:当前编辑环境下,进行编译、连接且运行程序;
Alt+F5:将窗口切换到DOS下,查看程序运行结果
6、
(1):
********************
welcomeyou
verygood
********************
第一章概述
1-1简述计算机程序设计语言的发展历程。
解:
迄今为止计算机程序设计语言的发展经历了机器语言、汇编语
言、高级语言等阶段,C++语言是一种面向对象的编程语言,
也属于高级语言。
1-2面向对象的编程语言有哪些特点?
解:
面向对象的编程语言与以往各种编程语言有根本的不同,它设
计的出发点就是为了能更直接的描述客观世界中存在的事物
以及它们之间的关系。面向对象的编程语言将客观事物看作具
有属性和行为的对象,通过抽象找出同一类对象的共同属性
(静态特征)和行为(动态特征),形成类。通过类的继承与
多态可以很方便地实现代码重用,大大缩短了软件开发周期,
并使得软件风格统一。因此,面向对象的编程语言使程序能够
比较直接地反问题域的本来面目,软件开发人员能够利用人类
认识事物所采用的一般思维方法来进行软件开发。C++语言是
目前应用最广的面向对象的编程语言。
1-3什么是结构化程序设计方法?这种方法有哪些优点和缺
点?
解:
结构化程序设计的思路是:自顶向下、逐步求精;其程序结构
是按功能划分为若干个基本模块;各模块之间的关系尽可能简
单,在功能上相对独立;每一模块内部均是由顺序、选择和循
环三种基本结构组成;其模块化实现的具体方法是使用子程
序。结构化程序设计由于采用了模块分解与功能抽象,自顶向
下、分而治之的方法,从而有效地将一个较复杂的程序系统设
计任务分解成许多易于控制和处理的子任务,便于开发和维
护。
虽然结构化程序设计方法具有很多的优点,但它仍是一种面向
过程的程序设计方法,它把数据和处理数据的过程分离为相互
独立的实体。当数据结构改变时,所有相关的处理过程都要进行相应的修改,每一种相对于老问题的新方法都要带来额外的
开销,程序的可重用性差。
由于图形用户界面的应用,程序运行由顺序运行演变为事件驱
动,使得软件使用起来越来越方便,但开发起来却越来越困难,
对这种软件的功能很难用过程来描述和实现,使用面向过程的
方法来开发和维护都将非常困难。
1-4什么是对象?什么是面向对象方法?这种方法有哪些特