-
第7章 用函数实现模块化程序设计
2019-02-14 20:20:45函数返回值类型与指定的函数类型不同,分析其处理方法例7.4输入两个实数,用一个函数求出他们之和 函数就是功能。每个函数用来实现一个特定的功能。函数的名字应该反应其代表的功能。 例7.1想...第7章 用函数实现模块化程序设计
函数就是功能。每个函数用来实现一个特定的功能。函数的名字应该反应其代表的功能。
例7.1想输出以下的结果,用函数调用实现
#include <stdio.h> int main() { void print_star();//声明函数 void print_message(); print_star(); print_message();//调用函数 print_star(); return 0; } void print_star() { printf("******************\n"); } void print_message() { printf("How do you do!\n"); }
运行结果:
例7.2输入两个整数,要求输出其中值较大者。要求用函数来找到大数。
//(1)先编写max函数 int max(int x,int y) { int z; z=x>y?x:y; return (z); } //(2)再编写主函数 #include <stdio.h> int main() { int max(int x,int y);//对max函数的声明 int a,b,c; printf("please enter two integer number:");//提示输入数据 scanf("%d,%d",&a,&b);//输入两个整数 c=max(a,b);//调用max函数,有两个实参,大数赋给变量c printf("max is %d\n",c); return 0; }
运行结果:
例7.3将7.2稍作改动,将max函数中的定义的变量z改为float型。函数返回值类型与指定的函数类型不同,分析其处理方法
#include <stdio.h> int main() { int max(float x,float y); float a,b; int c; scanf("%f,%f",&a,&b); c=max(a,b); printf("max is %d\n",c); return 0; } int max(float x,float y) { float z; z=x>y?x:y; return (z); }
运行结果:
例7.4输入两个实数,用一个函数求出他们之和
#include <stdio.h> int main() { float add(float x,float y); float a,b,c; printf("Please enter a and b:"); scanf("%f,%f",&a,&b); c=add(a,b); printf("sum is %f\n",c); return 0; } float add(float x,float y) { float z; z=x+y; return (z); }
运行结果:
-
第七章 用函数实现模块化程序设计
2019-04-01 16:33:10第七章 用函数实现模块化程序设计 例7.1 想输出以下的结果,用函数调用实现。...例7.4 输入两个实数,用一个函数求出它们之和。 例7.5 输入四个整数,找出其中最大的数。用函数的嵌套调用来处理。 ...第七章 用函数实现模块化程序设计
例7.1 想输出以下的结果,用函数调用实现。
例7.2 输入两个整数,要求输出其中值较大者。要求用函数来找到大数。
例7.3 将例7.2稍作改动,将在max函数中定义的变量z改为float型。函数返回值的类型与指定的函数类型不同,分析其处理方法。
例7.4 输入两个实数,用一个函数求出它们之和。
例7.5 输入四个整数,找出其中最大的数。用函数的嵌套调用来处理。
例7.6 有5个学生坐在一起,问5个学生多少岁,他说比第四个学生大两岁。问第4个学生岁数,他说比第三个学生大两岁。问第3个学生,又说比第2个学生大2岁。问第2个学生,说比第1个学生大两岁。最后问第1个学生,他说是10岁。请问第5个学生多大。
例7.7 用递归方法求n!。
例7.8 汉诺塔问题。这是一个古典的数学问题,是一个用递归方法解题的典型例子。问题是这样的:古代有一梵塔,塔内有三座A,B,C。开始时A座上有64个盘子,盘子大小不等,大的在下,小的在上。有一个老和尚想把这64个盘子从A座移到C座,但规定每次只允许移动一个盘,且在移动过程中在3个座上都始终保持大盘在下,小盘在上。在移动过程中可以利用B座。要求编程序输出移动盘子的步骤。
例7.9 输入10个数,要求输出其中值最大的元素和该数是第几个数。
例7.10 有一个一维数组score,内放10个学生成绩,求平均值。
例7.11 有两个班级,分别有35名和30名学生,调用一个average函数,分别求这两个班的学生的平均成绩。
例7.12 用选择法对数组中10个整数按有小到大排序
例7.13 有一个34的矩阵,求所有元素中的最大值。
例7.14 有一个一维数组,内放10个学生成绩,写一个函数,当主函数调用此函数后能求出平均分、最高分和最低分。
例7.15 若外部变量与局部变量同名,分析结果。
例7.16 考察静态局部变量的值。
例7.17 输出1到5的阶乘值。
例7.18 调用函数,求3个整数中的大者。
例7.19 给定b的值,输入a和m,求ab和a^m的值。
例7.20 有一个字符串,内有若干个字符,现输入一个字符,要求程序将字符串中该字符删去。用外部函数实现。
例7.1 想输出以下的结果,用函数调用实现。#include<stdio.h> int main() { void print_star(); void print_message(); print_star(); print_message(); print_star(); return 0; } void print_star() { printf("*******************\n"); } void print_message() { printf(" How do you do!\n"); }
运行结果如下:
例7.2 输入两个整数,要求输出其中值较大者。要求用函数来找到大数。int max(int x,int y) { int z; z=x>y?x:y; return (z); } #include<stdio.h> int main() { int max(int x,int y); int a,b,c; printf("please enter two integer numbers:"); scanf("%d,%d",&a,&b); c=max(a,b); printf("max is %d\n",c); return 0; }
-运行结果如下:
将例7.2稍作改动,将在max函数中定义的变量z改为float型。函数返回值的类型与指定的函数类型不同,分析其处理方法。#include<stdio.h> int main() { int max(float x,float y); float a,b; int c; scanf("%f,%f",&a,&b); c=max(a,b); printf("max is %d\n",c); return 0; } int max(float x,float y) { float z; z=x>y?x:y; return (z); }
运行结果如下:例7.4 输入两个实数,用一个函数求出它们之和。
#include<stdio.h> int main() { float add(float x,float y); float a,b,c; printf("Please enter a and b:"); scanf("%f,%f",&a,&b); c=add(a,b); printf("sum is %f\n",c); return 0; } float add(float x,float y) {float z; z=x+y; return (z); }
运行结果如下:
例7.5 输入四个整数,找出其中最大的数。用函数的嵌套调用来处理。#include<stdio.h> int main() {int max4(int a,int b,int c,int d); int a,b,c,d,max; printf("Please enter 4 interger numbers:"); scanf("%d%d%d%d",&a,&b,&c,&d); max=max4(a,b,c,d); printf("max=%d\n",max); return 0; } int max4(int a,int b,int c,int d) { int max2(int a,int b); int m; m=max2(a,b); m=max2(m,c); m=max2(m,d); return (m); } int max2(int a,int b) {if(a>=b) return a; else return b; }
运行结果如下:
例7.6 有5个学生坐在一起,问5个学生多少岁,他说比第四个学生大两岁。问第4个学生岁数,他说比第三个学生大两岁。问第3个学生,又说比第2个学生大2岁。问第2个学生,说比第1个学生大两岁。最后问第1个学生,他说是10岁。请问第5个学生多大。int age(int n) {int c; if(n==1) c=10; else c=age(n-1)+2; return (c); } #include<stdio.h> int main() {int age(int n); printf("NO.5,age:%d\n",age(5)); return 0; }
运行结果如下:
例7.7 用递归方法求n!。#include<stdio.h> int main() { int fac(int n); int n; int y; printf("input an interger number:"); scanf("%d",&n); y=fac(n); printf("%d!=%d\n",n,y); return 0; } int fac(int n) { int f; if(n<0) printf("n<0,data error!"); else if(n==0||n==1) f=1; else f=fac(n-1)*n; return (f); }
运行结果如下:
例7.8 汉诺塔问题。这是一个古典的数学问题,是一个用递归方法解题的典型例子。问题是这样的:古代有一梵塔,塔内有三座A,B,C。开始时A座上有64个盘子,盘子大小不等,大的在下,小的在上。有一个老和尚想把这64个盘子从A座移到C座,但规定每次只允许移动一个盘,且在移动过程中在3个座上都始终保持大盘在下,小盘在上。在移动过程中可以利用B座。要求编程序输出移动盘子的步骤。#include<stdio.h> int main() {void hanoi(int n,char one,char two,char three); int m; printf("input the number of diskes: "); scanf("%d",&m); printf("The step to move %d diskes:\n",m); hanoi(m,'A','B','C'); } void hanoi(int n,char one,char two,char three) { void move(char x,char y); if(n==1) move(one,three); else{ hanoi(n-1,one,three,two); move(one,three); hanoi(n-1,two,one,three); } } void move(char x,char y) { printf("%c-->%c\n",x,y); }
运行结果
例7.9 输入10个数,要求输出其中值最大的元素和该数是第几个数。#include<stdio.h> int main() { int max(int x,int y); int a[10],m,n,i; printf("enter 10 inteager numbers:"); for(i=0;i<10;i++) scanf("%d",&a[i]); printf("\n"); for(i=1,m=a[0],n=0;i<10;i++) { if(max(m,a[i])>m) {m=max(m,a[i]); n=i; } } printf("The largest number is %d\nit is the %dth number.\n",m,n+1); } int max(int x,int y) { return(x>y?x:y); }
运行结果如下:
例7.10 有一个一维数组score,内放10个学生成绩,求平均值。#include<stdio.h> int main() { float average(float array[10]); float score[10],aver; int i; printf("input 10 scores:\n"); for(i=0;i<10;i++) scanf("%f",&score[i]); printf("\n"); aver=average(score); printf("average score is %5.2f\n",aver); return 0; } float average(float array[10]) {int i; float aver,sum=array[0]; for(i=1;i<10;i++) sum=sum+array[i]; aver=sum/10; return (aver); }
运行结果
例7.11 有两个班级,分别有35名和30名学生,调用一个average函数,分别求这两个班的学生的平均成绩。#include<stdio.h> int main() { float average(float array[ ],int n); float score1[5]={98.5,97,91.5,60,55}; float score2[10]={67.5,89.5,99,69.5,77,89.5,76.5,54,60,99.5}; printf("The average of class A is %6.2f\n",average(score1,5)); printf("The average of class B is %6.2f\n",average(score2,10)); return 0; } float average(float array[ ],int n) {int i; float aver,sum=array[0]; for(i=1;i<n;i++) sum=sum+array[i]; aver=sum/n; return (aver); }
运行结果如下:
例7.12 用选择法对数组中10个整数按有小到大排序#include<stdio.h> int main() {void sort(int array[ ],int n); int a[10],i; printf("enter array:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); sort(a,10); printf("The sorted array:\n"); for(i=0;i<10;i++) printf("%d ",a[i]); printf("\n"); return 0; } void sort(int array[ ],int n) {int i,j,k,t; for(i=0;i<n-1;i++) {k=i; for(j=i+1;j<n;j++) if(array[j]<array[k]) k=j; t=array[k];array[k]=array[i];array[i]=t; } }
运行结果如下:
例7.13 有一个3*4的矩阵,求所有元素中的最大值。#include<stdio.h> int main() {int max_value(int array[ ][4]); int a[3][4]={{1,3,5,7},{2,4,6,8},{15,17,34,12}}; printf("Max value is %d\n",max_value(a)); return 0; } int max_value(int array[ ][4]) {int i,j,max; max=array[0][0]; for(i=0;i<3;i++) for(j=0;j<4;j++) if(array[i][j]>max)max=array[i][j]; return (max); }
运行结果如下:
例7.14 有一个一维数组,内放10个学生成绩,写一个函数,当主函数调用此函数后能求出平均分、最高分和最低分。#include<stdio.h> float Max=0,Min=0; int main() {float average(float array[ ],int n); float ave,score[10]; int i; printf("Please enter 10 scores:"); for(i=0;i<10;i++) scanf("%f",&score[i]); ave=average(score,10); printf("max=%6.2f\nmin=%6.2f\naverage=%6.2f\n",Max,Min,ave); return 0; } float average(float array[ ],int n) { int i; float aver,sum=array[0]; Max=Min=array[0]; for(i=1;i<n;i++) {if(array[i]>Max)Max=array[i]; else if(array[i]<Min)Min=array[i]; sum=sum+array[i]; } aver=sum/n; return (aver); }
运行结果如下:
例7.15 若外部变量与局部变量同名,分析结果。#include<stdio.h> int a=3,b=5; int main() {int max(int a,int b); int a=8; printf("max=%d\n",max(a,b)); return 0; } int max(int a,int b) { int c; c=a>b?a:b; return (c); }
运行结果如下:
例7.16 考察静态局部变量的值。#include<stdio.h> int main() {int f(int); int a=2,i; for(i=0;i<3;i++) printf("%d\n",f(a)); return 0; } int f(int a) {auto int b=0; static c=3; b=b+1; c=c+1; return (a+b+c); }
运行结果如下:
例7.17 输出1到5的阶乘值。#include<stdio.h> int main() {int fac(int n); int i; for(i=1;i<=5;i++) printf("%d!=%d\n",i,fac(i)); return 0; } int fac(int n) { static int f=1; f=f*n; return (f); }
运行结果如下:
例7.18 调用函数,求3个整数中的大者。#include<stdio.h> int main() {int max(); extern int A,B,C; printf("Please enter three integer numbers:"); scanf("%d%d%d",&A,&B,&C); printf("max is %d\n",max()); return 0; } int A,B,C; int max() {int m; m=A>B?A:B; if(C>m)m=C; return (m); }
运行结果如下:
例7.19 给定b的值,输入a和m,求a*b和a^m的值。#include<stdio.h> int A; int main() {int power(int); int b=3,c,d,m; printf("enter the number a and its power m:\n"); scanf("%d,%d",&A,&m); c=A*b; printf("%d*%d=%d\n",A,b,c); d=power(m); printf("%d**%d=%d\n",A,m,d); return 0; } extern A; int power(int n) {int i,y=1; for(i=1;i<=n;i++) y*=A; return (y); }
运行结果:
例7.20 有一个字符串,内有若干个字符,现输入一个字符,要求程序将字符串中该字符删去。用外部函数实现。#include<stdio.h> int main() { extern void enter_string(char str[]); extern void delete_string(char str[],char ch); extern void print_string(char str[]); char c,str[80]; enter_string(str); scanf("%c",&c); delete_string(str,c); print_string(str); return 0; } void enter_string(char str[80]) { gets(str); } void delete_string(char str[],char ch) {int i,j; for(i=j=0;str[i]!='\0';i++) if(str[i]!=ch) str[j++]=str[i]; str[j]='\0'; } void print_string(char str[]) { printf("%s\n",str); }
运行结果如下:
-
第七章
2019-04-01 16:16:46第七章 用函数实现模块化程序设计 例7.1 想输出以下的结果,用函数调用实现。...例7.4 输入两个实数,用一个函数求出它们之和。 例7.5 输入四个整数,找出其中最大的数。用函数的嵌套调用来处理。 ...第七章 用函数实现模块化程序设计
例7.1 想输出以下的结果,用函数调用实现。
例7.2 输入两个整数,要求输出其中值较大者。要求用函数来找到大数。
例7.3 将例7.2稍作改动,将在max函数中定义的变量z改为float型。函数返回值的类型与指定的函数类型不同,分析其处理方法。
例7.4 输入两个实数,用一个函数求出它们之和。
例7.5 输入四个整数,找出其中最大的数。用函数的嵌套调用来处理。
例7.6 有5个学生坐在一起,问5个学生多少岁,他说比第四个学生大两岁。问第4个学生岁数,他说比第三个学生大两岁。问第3个学生,又说比第2个学生大2岁。问第2个学生,说比第1个学生大两岁。最后问第1个学生,他说是10岁。请问第5个学生多大。
例7.7 用递归方法求n!。
例7.8 汉诺塔问题。这是一个古典的数学问题,是一个用递归方法解题的典型例子。问题是这样的:古代有一梵塔,塔内有三座A,B,C。开始时A座上有64个盘子,盘子大小不等,大的在下,小的在上。有一个老和尚想把这64个盘子从A座移到C座,但规定每次只允许移动一个盘,且在移动过程中在3个座上都始终保持大盘在下,小盘在上。在移动过程中可以利用B座。要求编程序输出移动盘子的步骤。
例7.9 输入10个数,要求输出其中值最大的元素和该数是第几个数。
例7.10 有一个一维数组score,内放10个学生成绩,求平均值。
例7.11 有两个班级,分别有35名和30名学生,调用一个average函数,分别求这两个班的学生的平均成绩。
例7.12 用选择法对数组中10个整数按有小到大排序
例7.13 有一个34的矩阵,求所有元素中的最大值。
例7.14 有一个一维数组,内放10个学生成绩,写一个函数,当主函数调用此函数后能求出平均分、最高分和最低分。
例7.15 若外部变量与局部变量同名,分析结果。
例7.16 考察静态局部变量的值。
例7.17 输出1到5的阶乘值。
例7.18 调用函数,求3个整数中的大者。
例7.19 给定b的值,输入a和m,求ab和a^m的值。
例7.20 有一个字符串,内有若干个字符,现输入一个字符,要求程序将字符串中该字符删去。用外部函数实现。
例7.1 想输出以下的结果,用函数调用实现。#include<stdio.h> int main() { void print_star(); void print_message(); print_star(); print_message(); print_star(); return 0; } void print_star() { printf("*******************\n"); } void print_message() { printf(" How do you do!\n"); }
运行结果如下:
例7.2 输入两个整数,要求输出其中值较大者。要求用函数来找到大数。int max(int x,int y) { int z; z=x>y?x:y; return (z); } #include<stdio.h> int main() { int max(int x,int y); int a,b,c; printf("please enter two integer numbers:"); scanf("%d,%d",&a,&b); c=max(a,b); printf("max is %d\n",c); return 0; }
运行结果如下:
例7.3 将例7.2稍作改动,将在max函数中定义的变量z改为float型。函数返回值的类型与指定的函数类型不同,分析其处理方法。#include<stdio.h> int main() { int max(float x,float y); float a,b; int c; scanf("%f,%f",&a,&b); c=max(a,b); printf("max is %d\n",c); return 0; } int max(float x,float y) { float z; z=x>y?x:y; return (z); }
运行结果如下:
例7.4 输入两个实数,用一个函数求出它们之和。#include<stdio.h> int main() { float add(float x,float y); float a,b,c; printf("Please enter a and b:"); scanf("%f,%f",&a,&b); c=add(a,b); printf("sum is %f\n",c); return 0; } float add(float x,float y) {float z; z=x+y; return (z); }
运行结果如下:
例7.5 输入四个整数,找出其中最大的数。用函数的嵌套调用来处理。#include<stdio.h> int main() {int max4(int a,int b,int c,int d); int a,b,c,d,max; printf("Please enter 4 interger numbers:"); scanf("%d%d%d%d",&a,&b,&c,&d); max=max4(a,b,c,d); printf("max=%d\n",max); return 0; } int max4(int a,int b,int c,int d) { int max2(int a,int b); int m; m=max2(a,b); m=max2(m,c); m=max2(m,d); return (m); } int max2(int a,int b) {if(a>=b) return a; else return b; }
运行结果如下:
例7.6 有5个学生坐在一起,问5个学生多少岁,他说比第四个学生大两岁。问第4个学生岁数,他说比第三个学生大两岁。问第3个学生,又说比第2个学生大2岁。问第2个学生,说比第1个学生大两岁。最后问第1个学生,他说是10岁。请问第5个学生多大。int age(int n) {int c; if(n==1) c=10; else c=age(n-1)+2; return (c); } #include<stdio.h> int main() {int age(int n); printf("NO.5,age:%d\n",age(5)); return 0; }
运行结果如下:
例7.7 用递归方法求n!。#include<stdio.h> int main() { int fac(int n); int n; int y; printf("input an interger number:"); scanf("%d",&n); y=fac(n); printf("%d!=%d\n",n,y); return 0; } int fac(int n) { int f; if(n<0) printf("n<0,data error!"); else if(n==0||n==1) f=1; else f=fac(n-1)*n; return (f); }
运行结果如下:
例7.8 汉诺塔问题。这是一个古典的数学问题,是一个用递归方法解题的典型例子。问题是这样的:古代有一梵塔,塔内有三座A,B,C。开始时A座上有64个盘子,盘子大小不等,大的在下,小的在上。有一个老和尚想把这64个盘子从A座移到C座,但规定每次只允许移动一个盘,且在移动过程中在3个座上都始终保持大盘在下,小盘在上。在移动过程中可以利用B座。要求编程序输出移动盘子的步骤。#include<stdio.h> int main() {void hanoi(int n,char one,char two,char three); int m; printf("input the number of diskes: "); scanf("%d",&m); printf("The step to move %d diskes:\n",m); hanoi(m,'A','B','C'); } void hanoi(int n,char one,char two,char three) { void move(char x,char y); if(n==1) move(one,three); else{ hanoi(n-1,one,three,two); move(one,three); hanoi(n-1,two,one,three); } } void move(char x,char y) { printf("%c-->%c\n",x,y); }
运行结果如下:
例7.9 输入10个数,要求输出其中值最大的元素和该数是第几个数。#include<stdio.h> int main() { int max(int x,int y); int a[10],m,n,i; printf("enter 10 inteager numbers:"); for(i=0;i<10;i++) scanf("%d",&a[i]); printf("\n"); for(i=1,m=a[0],n=0;i<10;i++) { if(max(m,a[i])>m) {m=max(m,a[i]); n=i; } } printf("The largest number is %d\nit is the %dth number.\n",m,n+1); } int max(int x,int y) { return(x>y?x:y); }
运行结果如下:
例7.10 有一个一维数组score,内放10个学生成绩,求平均值。#include<stdio.h> int main() { float average(float array[10]); float score[10],aver; int i; printf("input 10 scores:\n"); for(i=0;i<10;i++) scanf("%f",&score[i]); printf("\n"); aver=average(score); printf("average score is %5.2f\n",aver); return 0; } float average(float array[10]) {int i; float aver,sum=array[0]; for(i=1;i<10;i++) sum=sum+array[i]; aver=sum/10; return (aver); }
运行结果如下:
例7.11 有两个班级,分别有35名和30名学生,调用一个average函数,分别求这两个班的学生的平均成绩。#include<stdio.h> int main() { float average(float array[ ],int n); float score1[5]={98.5,97,91.5,60,55}; float score2[10]={67.5,89.5,99,69.5,77,89.5,76.5,54,60,99.5}; printf("The average of class A is %6.2f\n",average(score1,5)); printf("The average of class B is %6.2f\n",average(score2,10)); return 0; } float average(float array[ ],int n) {int i; float aver,sum=array[0]; for(i=1;i<n;i++) sum=sum+array[i]; aver=sum/n; return (aver); }
运行结果如下:
例7.12 用选择法对数组中10个整数按有小到大排序#include<stdio.h> int main() {void sort(int array[ ],int n); int a[10],i; printf("enter array:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); sort(a,10); printf("The sorted array:\n"); for(i=0;i<10;i++) printf("%d ",a[i]); printf("\n"); return 0; } void sort(int array[ ],int n) {int i,j,k,t; for(i=0;i<n-1;i++) {k=i; for(j=i+1;j<n;j++) if(array[j]<array[k]) k=j; t=array[k];array[k]=array[i];array[i]=t; } }
运行结果如下:
例7.13 有一个3*4的矩阵,求所有元素中的最大值。#include<stdio.h> int main() {int max_value(int array[ ][4]); int a[3][4]={{1,3,5,7},{2,4,6,8},{15,17,34,12}}; printf("Max value is %d\n",max_value(a)); return 0; } int max_value(int array[ ][4]) {int i,j,max; max=array[0][0]; for(i=0;i<3;i++) for(j=0;j<4;j++) if(array[i][j]>max)max=array[i][j]; return (max); }
运行结果如下:
例7.14 有一个一维数组,内放10个学生成绩,写一个函数,当主函数调用此函数后能求出平均分、最高分和最低分。#include<stdio.h> float Max=0,Min=0; int main() {float average(float array[ ],int n); float ave,score[10]; int i; printf("Please enter 10 scores:"); for(i=0;i<10;i++) scanf("%f",&score[i]); ave=average(score,10); printf("max=%6.2f\nmin=%6.2f\naverage=%6.2f\n",Max,Min,ave); return 0; } float average(float array[ ],int n) { int i; float aver,sum=array[0]; Max=Min=array[0]; for(i=1;i<n;i++) {if(array[i]>Max)Max=array[i]; else if(array[i]<Min)Min=array[i]; sum=sum+array[i]; } aver=sum/n; return (aver); }
运行结果如下:
例7.15 若外部变量与局部变量同名,分析结果。#include<stdio.h> int a=3,b=5; int main() {int max(int a,int b); int a=8; printf("max=%d\n",max(a,b)); return 0; } int max(int a,int b) { int c; c=a>b?a:b; return (c); }
运行结果如下:
例7.16 考察静态局部变量的值。#include<stdio.h> int main() {int f(int); int a=2,i; for(i=0;i<3;i++) printf("%d\n",f(a)); return 0; } int f(int a) {auto int b=0; static c=3; b=b+1; c=c+1; return (a+b+c); }
运行结果如下:
例7.17 输出1到5的阶乘值。#include<stdio.h> int main() {int fac(int n); int i; for(i=1;i<=5;i++) printf("%d!=%d\n",i,fac(i)); return 0; } int fac(int n) { static int f=1; f=f*n; return (f); }
运行结果如下:
例7.18 调用函数,求3个整数中的大者。#include<stdio.h> int main() {int max(); extern int A,B,C; printf("Please enter three integer numbers:"); scanf("%d%d%d",&A,&B,&C); printf("max is %d\n",max()); return 0; } int A,B,C; int max() {int m; m=A>B?A:B; if(C>m)m=C; return (m); }
运行结果如下:
例7.19 给定b的值,输入a和m,求a*b和a^m的值。#include<stdio.h> int A; int main() {int power(int); int b=3,c,d,m; printf("enter the number a and its power m:\n"); scanf("%d,%d",&A,&m); c=A*b; printf("%d*%d=%d\n",A,b,c); d=power(m); printf("%d**%d=%d\n",A,m,d); return 0; } extern A; int power(int n) {int i,y=1; for(i=1;i<=n;i++) y*=A; return (y); }
运行结果如下:
例7.20 有一个字符串,内有若干个字符,现输入一个字符,要求程序将字符串中该字符删去。用外部函数实现。#include<stdio.h> int main() { extern void enter_string(char str[]); extern void delete_string(char str[],char ch); extern void print_string(char str[]); char c,str[80]; enter_string(str); scanf("%c",&c); delete_string(str,c); print_string(str); return 0; } void enter_string(char str[80]) { gets(str); } void delete_string(char str[],char ch) {int i,j; for(i=j=0;str[i]!='\0';i++) if(str[i]!=ch) str[j++]=str[i]; str[j]='\0'; } void print_string(char str[]) { printf("%s\n",str); }
运行结果如下:
-
c程序设计习题参考(谭浩强三版)习题参考解答
2010-08-29 23:23:07(4)求出平均分方差; 57 8.13写几个函数:(1)输入10个职工的姓名和职工号;(2)按职工号由小到大排序,姓名顺序也随之调整;(3)要求输入一个职工号,用折半查找法找出该职工的姓名。 61 8.14写一函数,输入一... -
C语言程序设计标准教程
2009-05-22 18:41:512. C语言的函数兼有其它语言中的函数和过程两种功能,从这个角度看,又可把函数分为有返回值函数和无返回值函数两种。 (1)有返回值函数 此类函数被调用执行完后将向调用者返回一个执行结果, 称为函数返回值。如... -
C语言标准教程第一章 C语言概论
2009-05-22 18:21:21scanf和 printf这两个函数分别称为格式输入函数和格式输出函数。其意义是按指定的格式输入输出值。因此,这两个函数在括号中的参数表都由以下两部分组成: “格式控制串”,参数表 格式控制串是一个字符串,必须用... -
(谭浩强)c语言学习书
2008-12-16 10:28:45本例中使用了两个变量x,s,用来表示输入的自变量和sin函数值。由于sin函数要求这两个量必须是双精度浮点型,故用类型说明符double来说明这两个变量。说明部分后的四行为执行部分或称为执行语句部分,用以完成程序的... -
3.3.3 二分图应用于最佳匹配问题(游客对房间的满意度之和最大问题) 3.3.4 class与struct的区别? 3.3.5 虚函数和纯虚函数 3.3.6 menset()函数 3.3.7 实现一个函数,对一个正整数n,算得到1需要的最少操作次数...
-
你必须知道的495个C语言问题(高清版)
2010-03-31 16:24:091.7 怎样声明和定义全局变量和函数最好? 4 1.8 如何在C中实现不透明(抽象)数据类型? 5 1.9 如何生成“半全局变量”,就是那种只能被部分源文件中的部分函数访问的变量? 5 存储类型 6 1.10 同一个静态... -
语言程序设计课后习题答案
2012-12-27 17:02:37在C++中,有两种给出注释的方法:一种是延用C语言方法,使用"/*"和"*/"括起注释文字。另一种方法是使用"//",从"//"开始,直到它所在行的行尾,所有字符都被作为注释处理。 2-8 什么叫做表达式?x = 5 + 7是一个... -
LINGO软件的学习
2009-08-08 22:36:50LINGO是用来求解线性和非线性优化问题的简易工具。LINGO内置了一种建立最优化模型的语言,可以简便地表达大规模问题,利用LINGO高效的求解器可快速求解并分析结果。 §1 LINGO快速入门 当你在windows下开始运行... -
《你必须知道的495个C语言问题》
2010-03-20 16:41:181.7 怎样声明和定义全局变量和函数最好? 4 1.8 如何在C中实现不透明(抽象)数据类型? 5 1.9 如何生成“半全局变量”,就是那种只能被部分源文件中的部分函数访问的变量? 5 存储类型 6 1.10 同一个静态... -
javascript入门笔记
2018-05-15 15:01:07Javascript Basic 1、Javascript 概述(了解) Javascript,简称为 JS,是一款能够运行在 JS解释器/引擎 中的脚本语言 ... 1、定义一个函数 change ,该函数中接收两个参数(a,b) 2、在函数体中,如果 a 大于 b的话... -
你必须知道的495个C语言问题
2015-10-16 14:14:281.7 怎样声明和定义全局变量和函数最好? 1.8 如何在C中实现不透明(抽象)数据类型? 1.9 如何生成“半全局变量”,就是那种只能被部分源文件中的部分函数访问的变量? 存储类型 1.10 同一个静态(static)函数或... -
数据结构(C++)有关练习题
2008-01-02 11:27:182、实现1所要求的代码后,运行设计好的代码,将以下的几组整数序列建成搜索二叉树,并记录下它们的前序遍历序列和后序遍历序列: a. 1、3、5、7、9; b. 1、13、35、13、27; c. 50、25、78、13、44、... -
《数据结构 1800题》
2012-12-27 16:52:0316.设m.n均为自然数,m可表示为一些不超过n的自然数之和,f(m,n)为这种表示方式的数目。例f(5,3)=5, 有 5种表示方式:3+2,3+1+1,2+2+1,2+1+1+1,1+1+1+1+1。 ①以下是该函数的程序段,请将未完成的部分填入,... -
net学习笔记及其他代码应用
2010-11-16 18:15:0910.求以下表达式的值,写出您想到的一种或几种实现方法: 1-2+3-4+……+m [Page] 答: int Num = this.TextBox1.Text.ToString() ; int Sum = 0 ; for (int i = 0 ; i ; i++) { if((i%2) == 1) { Sum += i ; ... -
用C编写班级成绩管理系统
2009-06-18 19:32:07这是一个无参函数,里面只有两个语句,它的作用是使链表初始化,使head的值为NULL和一个清屏语句。比如:没有这个函数的话,在你没有输入任何数据的情况下,去执行显示功能的时候会显示一些乱码! 输入记录函数 ... -
超级有影响力霸气的Java面试题大全文档
2012-07-18 09:47:04round方法返回与参数最接近的长整数,参数加1/2后求其floor. 30、String s = new String("xyz");创建了几个String Object? 两个 31、EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的? ... -
java 面试题 总结
2009-09-16 08:45:34round方法返回与参数最接近的长整数,参数加1/2后求其floor. 27、String s = new String("xyz");创建了几个String Object? 两个 28、设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序... -
华为编程开发规范与案例
2008-09-04 16:44:56接口类问题(B类)-指设计、编码中出现的函数和环境、其他函数、全局/局部变量或数据变量之间的数据/控制传输不匹配的问题,在系统中起重要作用,将导致模块间配合失效等严重问题; 维护类问题(C类)-指设计、... -
java源码包---java 源码 大量 实例
2013-04-18 23:15:26java求一个整数的因子 如题。 Java生成密钥的实例 1个目标文件 摘要:Java源码,算法相关,密钥 Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(key... -
JAVA上百实例源码以及开源项目源代码
2018-12-11 17:07:42消息驱动Bean必须实现两个接口MessageDrivenBean和MessageListener 在对象创建的过程中将被容器调用,onMessage函数方法接收消息参数,将其强制转型为合适的消息类型,同时打印出消息的内容。同时一个mail note将被... -
JAVA上百实例源码以及开源项目
2016-01-03 17:37:40java求一个整数的因子 如题。 Java生成密钥的实例 1个目标文件 摘要:Java源码,算法相关,密钥 Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(key...
-
数据结构题目记录
-
PPT大神之路高清教程
-
LVS + Keepalived 实现 MySQL 负载均衡与高可用
-
深入浅出Docker(三):Docker开源之路
-
量化使投资者避免道德风险
-
Zookeeper原理
-
Sql触发器模板
-
MySQL 数据类型和运算符
-
基于采样和延迟输出测量值的非线性系统的连续输出反馈稳定
-
多目标状态转移算法优化氧化铝蒸发过程的运营成本和能源效率
-
练习7-11 字符串逆序 (15分)
-
数据库讲义学习完整版.rar
-
基于python的dango框架购物商城毕业设计毕设源代码使用教程
-
滑动时间窗口实现简单接口限流
-
C/C++反汇编解密
-
MySQL 数据库权限管理(用户高级管理和精确访问控制)
-
Shiro整合SpringBoot以及Thymeleaf
-
下载docker图形监视化工具weaveworks scope过程
-
函数二
-
一篇文章教会你使用Python下载抖音无水印视频