18、查看文件夹 08.08 - dice2,描述该文件夹下主要文件的功能和代码结构。
该文件夹下有文件 `dice2.c`,此程序模拟掷三个骰子,每次掷完后将三个骰子的点数相加,记录总和。程序掷骰子 1000 次后报告结果。其代码包含头文件引入、函数原型声明,主函数中初始化数组、生成随机数模拟掷骰子并统计结果,还有 `RollOne`、`PrintRolls`、`PrintX` 等函数实现具体功能。
19、指出以下代码可能存在的错误:a. 代码存在员工编号后的分号缺失问题。b. 代码逻辑为如果getchar()返回的第一个字符是‘\n’,则执行; 否则,循环直接退出,可考虑将== 改为!= 。c. 代码使用双引号包含头文件,虽然能运行,但系统头文件用尖括号括起来是更好的形式。d. 代码中名称字段缺少类型,虽可编译但可能不会按预期运行,C 编译器会假定为整型数组。e. 代码中next 和 prev 都应该声明为指针。f. 代码存在几个问题,while 循环完全无用,代码应该使用‘\0’而不是 0,到执行printf()时,line 指向字符串末尾之外。
- a. 员工编号后缺少分号;
- b. 代码逻辑不合理,可将
==
改为!=
; - c. 系统头文件用
< >
形式更好; - d. 名称字段缺少类型,编译器默认当作整型数组,是不良形式;
- e. next 和 prev 应声明为指针;
- f. while 循环无用,应使用
'\0'
,printf
时line
指向字符串末尾之外。
20、指出以下代码可能存在的错误:a. 代码中 fopen() 函数的参数使用情况;b. 代码中 fopen() 与 fscanf() 函数的使用情况;c. 代码中 line 变量的声明及 fscanf() 调用情况;d. 代码中文件打开模式与读取操作的情况。
- a.
fopen()
参数顺序错误; - b.
fopen()
参数顺序错误,fscanf()
第一个参数含提示信息,第二个参数类型与格式说明符不匹配; - c.
line
声明为指针未分配内存,fscanf()
调用中不应有&
; - d. 文件以写入模式打开却尝试读取数据。
21、查看文件夹 10.05 - cdFiler2 中的内容。
文件夹 10.05 - cdFiler2
中有 main.c
和 cdFiler2.h
文件。
-
main.c
文件包含全局定义、main
函数等内容; -
cdFiler2.h
文件包含宏定义和结构体声明等内容。