实验7函数——参考程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验七函数——参考程序
一、程序调试方法实验
1.找出并改正以下源程序中错误,得出正确的运行结果。
源程序如下:
#include
//函数声明int add(int a, int b);
void main()
{
int a,b;
scanf("%d%d",&a,&b);
printf("a+b=%d",add(a,b));
}
void add(int a,b) //改为int add(int a, int b)
{
return a+b;
}
2.找出并改正以下源程序中错误,得出正确的运行结果,其中max函数的功能是得到数组中最大元素的值。源程序如下:
#include
#define N 10; //去掉尾部分号
float max(float a[], int n) //尾部加上分号
void main()
{
float data[N];
int i;
for(i=0;i scanf("%f",data[i]); //改为scanf("%f", &data[i]); printf("max is=%f",max(data[N],N)); // 改为printf("max is=%f",max(data, N)); } float max(float a[], int n) { int i,result; //改为int i; float result; //增加result=a[0]; for(i=0;i { if(a[i] > result) result = a[i]; } return result; } 3.找出并改正以下源程序中错误,得出正确的运行结果,其中converse函数的功能是逆序输出 n个字符。 解题思路:已知字符串的长度,逆序输出字符串 如果只有1个字符,直接输出该字符后结束 否则:输出后面的所有字符之后,再输出该字符 源程序如下: #include void main() { int i=5; void converse(int n); printf("Input 5 characters:"); converse(i); printf("\n"); } void converse(n); //改为void converse(int n) 并去掉分号 { char next; if(n>=1) //改为if(n= =1) { next=getchar(); putchar(next); } else { next=getchar(); converse(n-1); putchar(next); } } 四、编写程序 1、编写一个函数,其功能是判断形式参数是否为小写字母,若是,返回其对应的大写字母,否则返回原字符。然后在main函数中输入一个字符,调用该函数得到其大写字母并输出 #include char isLow(char ch) { if(ch >= 'a' && ch <= 'z') return ch - 32; else return ch; } void main(void) { char ch; printf("请输入一个字符:\n"); scanf("%c",&ch); printf("%c\n", isLow(ch)); } 2、编写函数reverse(int number),它的功能是将number逆序输出,在main函数中输入一个整数,调用该函数得到逆序的数并输出。例如reverse(11233)的返回值为33211。 #include int reverse(int n) { int rev=0,num; do { num=n %10; rev = rev*10 + num; n=n/10; }while(n); return rev; } void main(void) { int num,revnum; printf("请输入一个整数:\n"); scanf("%d",&num); revnum = reverse(num); printf("逆序后整数为:%d\n",revnum); } 3、编写函数完成如下功能:将长整型数中数字为偶数的数依次取出,构成一个新数返回,例如,当s 中的数为:时,则返回的数为:8642。 提示:依次取出长整型数的每一位数字,如果是偶数,则放入新数中。在main函数中输入一个长整型数,调用该函数得到新的数,并输出结果。 #include "stdio.h" long func(long s); void main() { long a; printf("请输入一个整数:"); scanf("%ld",&a); printf("%ld\n",func(a)); } long func(long n) { long result=0; int num, weight=1 ; // weight表示数位的权值(即个、十、百,。。。。) while ( n != 0 ) { num = n%10; //得到最低位 if (num % 2==0)