C语言编程题目解析:上机题库与函数实现

需积分: 3 0 下载量 172 浏览量 更新于2024-11-12 收藏 552KB DOC 举报
"2010年3月二级C语言上机考试题库,包含多道编程题目及解题思路" 1. 建立班级通讯录: 在这段代码中,功能是创建一个班级通讯录,将学生信息存储到二进制文件`myfile5.dat`中。`fun`函数接收一个指向`STYPE`类型的指针`std`,其中`STYPE`应当是一个结构体类型,包含了学生编号、姓名和电话号码等字段。函数内部,定义了一个指向`FILE`类型的指针`fp`,用于文件操作。`fwrite`函数用于将`std`数组中每个元素(即每个学生的信息)写入文件,参数分别为要写入的数据地址、每个元素的大小(`sizeof(sTYPE)`)、元素数量(1)以及文件指针`fp`。 解题思路: - 第一处填写`STYPE`,表示`std`是一个`STYPE`类型的数组。 - 第二处填写`FILE`,因为`fp`是文件指针,类型应为`FILE *`。 - 第三处填写`fp`,将文件指针传递给`fwrite`函数以进行写操作。 2. 字符串正序与逆序合并: 给定的程序`MODI1.C`中,函数`fun`的目的是先将字符串`s`正序存入`t`,然后将`s`逆序添加到`t`后面。题目指出有两个错误需要修正。 - 第一处错误:循环变量`i`的范围不正确,应改为`i<s1`而不是`i<=s1`,避免在复制过程中覆盖`\0`终止符。 - 第二处错误:在`t`字符串末尾添加`\0`终止符的位置有误,应将`\0`添加到`t[s1*2]`,因为逆序复制后,原字符串末尾会移动到新字符串的中间位置。 3. 合并两个两位数: 函数`fun`的任务是将两个两位数的正整数`a`和`b`合并成一个新的四位数`c`。合并规则是将`a`的十位和个位依次放在`c`的千位和十位,`b`的十位和个位依次放在`c`的百位和个位。参考答案提供了一种直接计算的方法,通过除以10和取模运算来获取每位数字,然后将它们按顺序相乘并相加,最终结果赋值给`c`。 4. 读写文件操作: 第02套题目涉及文件操作,用户输入的文本被写入文件`myfile4.txt`,然后从文件读出并显示。`WriteText`函数需要一个文件指针参数,用于写入文本。`fputs`函数用于将字符串写入文件,所以`WriteText`函数的原型应为`void WriteText(FILE *fp)`,`fputs`的调用格式是`fputs(str, fp)`,其中`str`是待写入的字符串,`fp`是文件指针。 总结:这些题目涵盖了C语言的基本概念,如文件操作、字符串处理、结构体使用以及基本的数学运算。解决这些问题需要对C语言的基本语法和标准库函数有深入理解。