实验六 函数与编译预处理

更新时间:2023-12-27 20:46:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验六 函数与编译预处理 1. void main() { float a,b,c;

scanf(\ c=add(a,b);

printf(\

}

float add(float x,float y) { float z; z=x+y; return(z); }

//错误的地方,(1)没有包含头文件 更正后的程序: #include float add(float x,float y) { float z; z=x+y; return(z); }

void main() { float a,b,c;

scanf(\ c=add(a,b);

printf(\} 2. void main() { int a=3,b=6;

printf(\ exchange1(a,b);

printf(:a=%d,b=%d\\n\}

void exchange1(int x,int y) {

int t; (2)函数定义应该在函数调用的前面. }

t=x;x=y;y=t;

printf(\

//错误的地方,(1)没有包含头文件 (2)函数定义应该在函数调用的前面.

更正后的程序: #include void exchange1(int x,int y) { }

void main() { }

int a=3,b=6;

printf(\exchange1(a,b);

printf(\int t; t=x;x=y;y=t;

printf(\

3.

long int fac(int n) { long int p; int i; p=1; for(i=1;i<=n;i++) p=p*i; return(p); }

int cmn(int m,int n) { int x; x=fac(m)/(fac(n)*fac(m-n)); return(x); }

void main() { int m,n,c; scanf(\ c=cmn(m,n); printf(\}

//应该加个#include 头文件 4.

int a=7,b=9; void main() { }

int sum(int x,int y) { }

int m=12,n=25; int max(int 1,int b) { }

程序更正: #include int a=7,b=9; void main() { }

int sum(int x,int y) {

extern int m,n; int i,a=5,x=80,y=60; int max(int a,int b); int sum(int x,int y); for(i=1;i<4;i++) { }

printf(\

printf(\b+=6; return(a>b?a:b); extern int m,n; int temp;

temp=x+y+m+n+a+b; return(temp); int i,a=5,x=80,y=60; for(i=1;i<4;i++) { }

printf(\

printf(\b+=6;

}

int temp;

temp=x+y+m+n+a+b; return(temp);

int m=12,n=25; int max(int a,int b) { }

5.调试运行以下程序. #include int fun(int a) { }

void main() { } 6.略 7.略 8.

#include #define DEBUG void main() { }

程序结果为:a=14,b=15,temp=0

(1)第二行中,宏定义是可以没有具体的值的,在这里只是定义了一个宏名.DEBUG没有值. (2)第7~9行为: #ifdef DEBUG

printf(\int a=14,b=15,temp; temp=a/b;

printf(\printf(\int a=3,i;

for(i=0;i<3;i++) printf(\int b=0; static int c=2; b+=c; c+=1; return(a+b-c); return(a>b?a:b);

#ifdef DEBUG #endif

#endif

会被编译,因为种种原因DEBUG已经被定义过.

(3)如将第2行删除,程序运行结果为:temp=0 因为没有定义DEBUG,所以原来第7~9行的程序没有执行.

(4)第9行不能删除,因为#ifdef 和 #endif必须成对出现. 9.编程题 #include long int fac(int n) { }

void main() { }

int m,n,c;

scanf(\c=fac(n)/(fac(n-m)*fac(m)); printf(\long int p; int i; p=1;

for(i=1;i<=n;i++)

p=p*i; return(p);

本文来源:https://www.bwwdw.com/article/unkx.html

Top