南京邮电大学c语言期末试卷
时间: 2025-01-06 12:37:30 浏览: 113
针对南京邮电大学C语言期末考试试题的需求,可以基于常见的C语言知识点来构建一份模拟试卷。这份试卷会覆盖重要的概念和技术要点,确保学生能够全面展示所掌握的知识。
### 南京邮电大学 C语言 期末考试 试题
#### 题目一:基础语法理解 (共20分)
1. 解释下列关键词的作用,并给出实际应用场景的例子。
- `static` 和 `extern`
2. 描述什么是预处理器指令?列举至少三个常用的预处理命令并解释它们的功能[^3]。
#### 题目二:函数设计与实现 (共30分)
编写一个名为 `calculateGrade` 的函数,该函数接收五个参数——两个随堂测验分数(每项最高分为10)、一次期中考试成绩以及一次期末考试的成绩(两项均为百分制),按照给定权重计算最终得分,并返回相应的字母等级(A-E)[^1]。
```cpp
#include <iostream>
using namespace std;
char calculateGrade(float quiz1, float quiz2, int midtermExam, int finalExam){
// 计算加权平均分
double totalScore = ((quiz1 + quiz2)/2 * 0.25) + (midtermExam * 0.25) + (finalExam * 0.5);
if(totalScore >= 90)
return 'A';
else if(totalScore >= 80 && totalScore < 90)
return 'B';
else if(totalScore >= 70 && totalScore < 80)
return 'C';
else if(totalScore >= 60 && totalScore < 70)
return 'D';
else
return 'E';
}
```
#### 题目三:指针应用 (共20分)
创建一段代码片段,演示如何利用指针交换两个整数变量的值而不使用临时变量。
```cpp
void swap(int* a, int* b){
*a ^= *b;
*b ^= *a;
*a ^= *b;
}
// 测试swap功能
int main(){
int num1=5,num2=10;
cout << "Before swapping: Num1=" <<num1<<",Num2="<<num2<<"\n";
swap(&num1,&num2);
cout << "After swapping: Num1=" <<num1<<",Num2="<<num2<<"\n";
return 0;
}
```
#### 题目四:结构体操作 (共15分)
定义一个表示书籍信息的数据结构(包括书名、作者和价格),并通过输入输出流读取多本书的信息存入数组中,最后按价格降序打印这些书籍列表。
#### 题目五:文件I/O编程 (共15分)
完成一个小项目,即从文本文件中加载一系列字符串到内存缓冲区,去除重复条目后保存回另一个新文件里。
---
阅读全文