2022 秋《C 语言程序设计》上机操作试卷
学号________________姓名_______________________
完成下列操作题,按要求将答题结果放在题目下方。共 4 题,每题 25 分。答题完毕,将该试卷上传到平台。
1.
程序 1:编程计算:2,3,5,7,9,10,23,29,30,49 十个数字的和。
要求: (1)将十个数字保存在数组 A 中。
(2)求和用 sum 函数实现,在主程序中调用 sum 函数。
(3)将程序代码和运行结果截图放在下面空白处。
答题处:
#include <stdio.h>
int sum_array(int arr[], int n) {
int sum = 0;
for (int i = 0; i < n; i++) {
sum += arr[i];
}
return sum;
}
int main() {
int A[] = {2,3,5,7,9,10,23,29,30,49};
int n = sizeof(A) / sizeof(A[0]);
int sum = sum_array(A, n);
printf("%d\n", sum);
return 0;
}
2.
一个工程文件中有两个源文件,一个是 main.cpp,一个是 func1.cpp,代码如下:
main.cpp 源文件代码:
#include<stdio.h>
void fn();
void staticFn();
void main()
{
fn();
staticFn();
}
func1.cpp 源文件代码:
#include<stdio.h>
static void staticFn();
void fn();
void fn()
{
staticFn();
printf("这是 fn()函数!\n");}
void staticFn()
{
printf("这是 staticFn 函数!\n");}
上机调试上述程序,运行时报什么错误?为什么?为了让程序能够正常运行,显示如下结果,该如何修改代
码?
答题处:
在编译过程中,会出现“未定义的引用”错误,因为在 main.cpp 中调用了 fn()和 staticFn()函数,但是这
两个函数的定义在 func1.cpp 中。
为了让程序能够正常运行,我们需要将 main.cpp 和 func1.cpp 编译链接在一起。这可以通过将两个源文件
一起编译成一个可执行文件来实现。我们可以使用以下命令进行编译链接:
gcc main.cpp func1.cpp -o main