二 填空题
1.下列程序的输出结果是 5 6 。
int t(int x, int y, int cp, int dp)
{cp=x*x+y*y;
dp=x*x-y*y;
}
main( )
{int a=4, b=3, c=5, d=6;
t(a, b, c, D);
printf("%d %d\n", c, D);
}
2.以下程序的运行结果是 8,17 。
#include
main()
{int k=4, m=1, p;
p=func(k, m); printf("%d,", p);
p=func(k, m); printf("%d\n", p);
}
func(int a, int B)
{static int m=0, i=2;
i+=m+1;
m=i+a+b;
return m;
}
3.以下程序输出的最后一个值是 120 。
int ff(int n)
{static int f=l;
f=f*n;
return f;
}
main()
{int i;
for(i=1;i<=5;i++) printf("%d\n",ff(i));
}
4.以下函数的功能是:求x的y次方,请填空。
double fun(double x, int y)
{int i;
double z;
for(i=1, z=x; i
return z;
}
5.若变量n中的值为24,则prnt函数共输出 5 行,最后一行有 4 个数。
void prnt(int n, int aa[ ])
{int i;
for(i=1; i<=n; i++)
{printf("%6d", aa[i]);
if(!(i%5)) printf("\n");
}
printf("\n");
}
6.以下程序中,主函数调用了LineMax函数,实现在N行M列的二维数组中,找出每一行上的最大值。请填空。
#define N 3
#define M 4
void LineMax(int x[N][M])
{int i, j, p;
for(i=0; i
{p=0;
for(j=1; j
if(x[i][p]
printf("The max value in line %d is %d\n", i, x[i][p] );
}
}
main()
{int x[N][M]={1,5,7,4,2,6,4,3,8,2,3,1};
LineMax(x)
}
7.函数pi的功能是根据以下近似公式求π值:
(π*π)/6=1+1/(2*2)+1/(3*3)+ … +1/(n*n)
请在下面的函数中填空,完成求π的功能。
#include “math.h”
double pi(long n)
{double s=0.0;
long i;
for(i=1;i<=n; i++) s=s+ 1.0/i*i ;
return(sqrt(6*s));
}
8.设在主函数中有以下定义和函数调用语句,且fun函数为void类型;请写出fun函数的首部 void fun( double b[10][22]) 。要求形参名为b。
main()
{double s[10][22];
int n;
…
fun(s);
…
}
9.输入12时,程序输出结果为 12 is not prime number. ;若输入17,输出结果为 17 is prime number. 。
main()
{int number;
scanf(“%d”, &number);
if(prime(number)) printf(“\n%d is prime number.”, number);
else printf(“\n%d is not prime number.”, number);
}
int prime(int number)
{int flag=1, n;
for(n=2; n
if(number%n= =0) flag=0;
return(flag);
}
10.理解下面的程序,填空完善程序。
main()
{int a, b, c;
scanf(“%d %d”, &a,%b );
c= max (a,
B);
printf(“a=%d b=%d max=%d\n”, a, b,
C);
}
int max(x, y)
int x,int y ;
{int z;
if(x>y) z=x;
else z=y;
return z ;
}
11.下面程序的输出结果是 2,5,1,2,3,-2 。
main()
{int a=3, b=2, c=1;
c-=++b;
b*=a+c;
{int b=5, c=12;
c/=b*2;
a-=c;
printf(“%d, %d, %d,”, a, b,
C);
a+=--c;
}
printf(“%d, %d, %d”, a, b,
C);
}
12.下面的findmax函数返回数组s中值为最大的元素的下标,数组中元素的个数由t传人,请填空。
findmax(int s[ ], int t)
{int k, p;
for(p=0, k=p; p
if(s[p]>s[k]) p=k ;
return k;
}
13.下面程序的输出结果是 7 。
fun(int x)
{int p;
if(x= =0||x= =1) return(3);
p=x-fun(x-2);
return p;
}
main()
{printf(“%d\n”, fun(9));}
14.函数fun的功能是:使一个字符串按逆序存放,请填空。
void fun(char str[ ])
{char m;
int i, j;
for(i=0, j=strlen(str); i< strlen(str) ; i++, j--)
{m=str[i];
str[i]= str[j-1] ;
str[j-1]=m;
}
printf(“%s\n”, str);
}
更多精彩请关注读书人网计算机频道!