返回:贺老师课程教学链接
【项目1-程序的多文件组织】请将下面的程序中的代码分别保存在两个文件中,利用多文件的方式组织。
* main.c(也可以是别的名字)
#include <stdio.h>
int max(int x,int y);
int min(int x,int y);
int main( )
{
int a,b,c1,c2;
printf("输入两数:");
scanf("%d %d", &a, &b);
c1=max(a,b);
printf("max=%d\n", c1);
c2=min(a,b);
printf("min=%d\n", c2);
return 0;
}
* fun.cpp(也可以是别的名字)
//文件开头还可以根据需要写#include<>及其他声明(本程序不需要)
int max(int x,int y)
{
int z;
z=x>y?x:y;
return(z);
}
int min(int x,int y)
{
int z;
z=x<y?x:y;
return(z);
}
【项目2——带头文件的程序】建立下面由多个头文件和源文件组成的程序,并运行
* main.h
#ifndef MAIN_H
#define MAIN_H
#include <stdio.h>
#include <stdlib.h>
int *a;
int b;
#endif
*main.cpp
#include "main.h"
#include "extern.h"
int main()
{
a = (int *)malloc(sizeof(int));
*a = 1;
b = 2;
printf("int a = %d\n",*a);
printf("int b = %d\n",b);
func();
free(a);
return 0;
}
* extern.h
#ifndef EXTERN_H
#define EXTERN_H
#include <stdio.h>
extern int *a;
extern int b;
static int c = 8;
void func();
#endif
* extern.cpp
#include "extern.h"
void func()
{
printf("Before:\n");
printf("in func a = %d\n",*a);
printf("in func b = %d\n",b);
*a = 3;
b = 4;
printf("After:\n");
printf("in func a = %d\n",*a);
printf("in func b = %d\n",b);
printf("only used in extern.h c = %d",c);
}
【项目3-随便改】保持下面程序主体for循环部分不变,用你能想到的办法修改程序,使下面程序的输出的a每次都能变化,输出1 2 3 4
#include<stdio.h>
void change(int a)
{
a=a+1;
}
int main()
{
int a=0;
int n=4;
int i=0;
for(i=0; i<n; i++)
{
change(a);
printf("%d ",a);//如何使这里a的值,每次都发生改变
}
return 0;
}
[参考解答]
【项目4-自选多文件组】
选择一个你在前面做过的一个“大程序”,将mian()函数保存在一个单独的源文件中,程序中所需要变量、类型、函数声明,保存到一个.h文件中,而涉及到的自定义函数,分类别地保存到不同的源文件中。以此巩固用多文件组织的能力,体会这样组织程序的好处。
时间: 2024-09-20 17:42:47