参考答案:
【问题1】 (2)Disk 3 A--->C
(1)<函数类型> 的含义是:函数返回值的类型,无返回值时应写为void。
(2)<参数列表> 的含义是:函数的接口参数,可以为空,即表示没有参数,但函 数名后面的0不能省略。
(3)C语言函数之间的参数传递是传值,是通过栈来传递的。
【问题2】
(1)sizeof(struct studentl)结果为:31
(2)sizeof(union student2)结果为:16
(3)执行语句后的结果为:“fhangwei”
【问题3】
(1)Disk 2 A--->B
(3)Disk 1 B--->A
(4)Disk 1 A--->C
详细解析:
本题考查C语言应用知识。
【问题1】
C语言函数的一般格式为:
<函数类型> <函数名> (<参数列表>){
<函数体>;
}
<函数类型> :一般函数都会返回一个值(return 后面跟随的值),这个返回值的数据类型,就是函数的返回类型。也有一些函数没有返回值,只是执行一些具体的操作(比如打印输出等),这些没有返回值的函数在定义时其返回类型为void型。
<函数名>:函数头部分中用小括号括起来的,是函数需要接收的变量的声明,即形式参数(简称形参)声明,多个形参用逗号分隔。也有不接收任何形参的函数,此时,在小括号中一般会写入void。
在 C 语言中,函数的参数传递方式有两种:值传递与地址传递。
值传递的特点是单向传递,即主调函数调用时给形参分配存储单元,把实参的值传递给形参,在调用结束后,形参的存储单元被释放,而形参值的任何变化都不会影响到实参的值,实参的存储单元仍保留并维持数值不变。
地址传递的特点是形参并不存在存储空间,编译系统不为形参数组分配内存。数组名或指针就是一组连续空间的首地址。因此在数组名或指针作函数参数时所进行的传送只是地址传送,形参在取得该首地址之后,与实参共同拥有一段内存空间,形参的变化也就是实参的变化。
【问题2】
sizeof是C语言中保留关键字,也可以认为是一种运算符,单目运算符;sizeof是计算对象所占的字节数,通常用来查看变量、数组或结构体等所占的字节个数。
【问题3】
汉诺塔问题是指在一块铜板装置上,有三根杆(编号A、B、C),在A杆自下而上、由大到小按顺序放置64个金盘(如图1)。游戏的目标:把A杆上的金盘全部移到C杆上,并仍保持原有顺序叠好。操作规则:每次只能移动一个盘子,并且在移动过程中三根杆上都始终保持大盘在下,小盘在上,操作过程中盘子可以置于A、B、C任一杆上。