综合练习2
1.以下程序的运行结果是
#define MAX 10
int a[MAX],I;
main()
{printf(“\n”);sub1();sub3(a);sub2();sub3(a);
}
sub2()
{int a[MAX],I,max;
max=5;
for(I=0;I } sub1() {for(I=0;I< MAX;I++) a[j]=I+1; } sub3(int a[]) {int I; for(I=0;I printf(“\n”); } 2.以下程序的正确运行结果是( ). #include <> void num() {extern int x,y;int a=15,b=10; x=a-b; y=a+b; } int x,y; main() { int a=7,b=5; x=a+b; y=a-b; num(); printf(“%d,%d\n”,x,y); } 3.以下程序的运行结果是 . main() {int a=2,I; for (I=0;I<3;I++) printf(“4%d”,f(a)); } { int b=0;static int c=3; b++; c++; return(a+b+c); } 4.以下程序的功能是根据输入的“y”(“Y”)与“n”(“N”),在屏幕上分别显示出“This is YES.”与“This is NO.”。请填空。 #include <> void YesNo(char ch) { switch(ch) { case’y’: case’Y’:printf(“\nThis is YES.\n”);break; case’n’: case’N’: printf(“\nThis is NO.\n”) } } main() {char ch; printf(“\nEnter a char ‘y’,’Y’,or’n’,’N’); ch=___________________; printf(“ch:%c”,ch); YesNo(ch); } 5. 以下Check函数的功能是对value中的值进行四舍五入计算,若计算后的值与ponse值相等,则显示“WELL DONE!!”,否则显示计算后的值。已有函数调用语句Check(ponse,value);请填空。 Void Check(int ponse,float value) {int val; val=_______________________________; printf(“计算后的值:%d”,val); if(_____________________) printf(“\n WELL DONE!!!\n”); else printf(“\nSorry the correct is %d\n”,val); } 6.若输入一个整数10,以下程序的运行结果是【】。 main() { int a,e[10],c,i=0; printf(“输入一整数\n”); scanf(“%d”,&a); while(a!=0) {c=sub(a); a=a/2; e[i]=c; } for(;i>0;i--) printf(“%d”,e[i-1]); } sub(int a) { int c; c=a%2; return c; } 7. 函数gongyu 的作用是求整数num1和num2的最大公约数,并返回该值,请填空 gongyu(int num1,int num2) { int temp,a,b; if(num1______num2) { temp=num1; num1=num2; num2=temp;} a=num1; b=num2; while(_________) { temp=a%b; a=b; b=temp; } return(a); } 8. 下面函数pi的功能是:根据以下攻势,返回满足精度要求的pi的值 pi 1 1 2 1 2 3 1 2 3 4 ─ = 1+─ +── + ─── + ──── +··· 2 3 3 5 3 5 7 3 5 7 9 #include<> #include<> #include<> double pi(double eps) -140- { double s,t; int n; for(_____________;t>eps;n++) { s+=t; t=n*t/(2*n+1); } return(__________); } main() { double x; printf(“\nPlease enter a precision:”); scanf(“%lf”,&x); printf(“\neps=%lf,pi=%lf”,x,pi(x)); } 9.以下程序的运行结果是【】. #include <> main() {printf("FACT(5):%d\n",fact(5)); printf("FACT(1):%d\n",fact(1)); fact(-5); } fact(int value) {if(value<0) {printf("FACT(<0):Error!\n");return(-1);} else if(value==1||value==0) return(1); } 10.下面程序的运行结果是【】。 main() {int i=5; printf(“%d\n”,sub(i)); } sub(int n) {int a; if(n==1) return 1; a=n+sub(n-1); return(a); } 11.以下程序的运行结果是【】。 #include<> f(int a[]) {int i=0; while (a[i]<=10) {printf(“%d”,a[i]); i++;} } main() {int a[]={1,5,10,9,11,7}; f(a+1); } 12. 以下程序的运行结果【】。 main() { int a[3][3]={1,3,5,7,9,11,15,17}; int sum; sum=func(a); printf(“\nsum=%d\n”,sum); } func(int a[][3]) { int i,j,sum=0; for(i=0;i<3;I++) for(j=0;j<3;j++) {a[i][j]=I+j; if(i==j)sum=sum+a[i][j]; } return(sum); } 编程题 1、写一函数,输入一个二进制数,输出相应的十进制数 2、输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数据对换。 写三个函数:(1)输入10个数据;(2)进行处理;(3)输出10个数据。