3071阅读以下说明,回答问题1至问题3,将答案填入答题纸对应栏内。【说明】在某嵌入式处理器上,编写以下两2583
阅读以下说明,回答问题1至问题3,将答案填入答题纸对应栏内。 【说明】 在某嵌入式处理器上,编写以下两段秸序(编译选项中,存储采用4字节对齐方式)。 程序段1: struct studentl { char name [10] ; long sno; char sex; float score [4] ; *pl, al, bl; 程序段2: union student2 { char name [10] ; long sno; char sex, float score [4] ; *p2, a2, b2; 汉诺塔问题说明:有n个盘子在A处,盘子从小到大,最上面的盘予最小,程序要 把这n个盘子从A处搬到C处,可以在E处暂存,但任何时候都不能出现大的盘子压 在小的盘子上面的情况。 下列是一段求解汉诺塔问题的C语言程序。 include <stdio . h> void move (int n, char a, char c) { static int Step=l; printf ("Step %2d: Disk %d %c..--> %c\n", Step, n, a, c) ; Step++; } void Hanoi (int n, char a, char b, cnar c) { if (n>l) { Hanoi (n-l, a, c, b) ; move (n, a. c) ; Hanoi (n-l, b, a, c) ; } else move (n,a,c); } void main() { Hanoi(3, ’A’, 、B’, 、C ’); } 【问题1】(3分) C语言函数的一般格式为: <函数类型> <函数名> (<参数列表>) { <函数体>; } 简答下述问题,将答案填写在答题纸中对应栏目。 (l)<函数类型>的含义是什么? (2)<参数列表>的含义是什么? (3)C语言函数之间的参数如何传递? 【问题2] (6分) 回答问题,将答案填写在答题纸中对应栏目。 (1)sizeof(struct studentl)结果是多少 (2) sizeof(union student2)结果是多少 (3)变量a2在程序段2中定义,写出执亍以下语句后的输出结果。 strcpy (a2. name,¨zhangwei¨); a2.sex=’f’; printf ("%s¨, a2 .name); 【问题3](6分) 仔细阅读求解汉诺塔问题的C语言程序,完成其中(1)~(4)空白填空,将答案 填入答题纸的对应栏内。 运行结果为: Step1:Disk l A---->C Step 2: (l) Step 3: Disk I C---->B Step4: (2) Step 5: (3) Step 6: Disk 2 B---->C Step 7: (4) 请帮忙给出正确答案和分析,谢谢!