for(i=0;i<3;i++) printf(\}
int f(int a) {int b=0;
static int c=3; b++;c++;
return(a+b+c); }
A) 7 7 7 B) 7 10 13 C) 7 9 11 D) 7 8 9 参考答案:D
*6.30 以下程序的正确运行结果是 。
#include
{int k=4,m=1,p;
p=func(k,m); printf(\ p=func(k,m); printf(\}
func(int a,int b) {static int m=0,i=2; i+=m+1; m=i+a+b; return(m); }
A)8,17 B)8,16 C)8,20 D)8,8 参考答案:A
2 填空题
6.31 C语言规定,可执行程序的开始执行点是【 】。 参考答案:main函数
6.32 在C语言中,一个函数一般由两个部分组成,它们是【1】和【2】。 参考答案:【1】函数声明 【2】函数体
*6.33 若输入的值是-125,以下程序的执行结果是 。
#include
scanf(\ printf(\ if(n<0) printf(\ n=abs(n); fun(n); }
fun(int n) {int k,r;
for(k=2;k<=sqrt(n);k++) {r=n%k; while(r==0)
{printf(\ n=n/k;
if(n>1)printf(\ r=n%k; } }
if(n!=1) printf(\}
参考答案:-125=-5*5*5
参考分析:本程序用来将整数分解为素数因子的乘积。
6.34 下面add函数的功能是求两个参数的和,并将和值返回调用函数。函数中错误的部分是【1】;改正后为【2】。
void add(float a,float b) {float c; c=a+b; return c; }
参考答案:【1】void add(float a,float b) 6.35 以下程序的运行结果是 。
main()
{int i=2,x=5,j=7; fun(j,6);
printf(\}
fun(int i,int j) {int x=7;
printf(\}
参考答案: i=7;j=6;x=7 i=2;j=7;x=5
6.36 以下程序的运行结果是 。
main()
{increment(); increment(); increment(); }
increment() {int x=0; x+=1;
printf(\}
参考答案:1 1 1
6.37 以下程序的运行结果是 。
#include
{int a=1,b=2,c; c=max(a,b);
printf(\}
max(int x,int y) {int z;
z=(x>y)?x:y;
2】float add(float a,float b) 【 return(z); }
参考答案:max is 2
6.38 以下程序的功能是根据输入的\与\,在屏幕上分别显示出\与\。请填空。
#include
case 'Y':printf(\【1】; case 'n':
case 'N':printf(\ } }
main() {char ch;
printf(\ ch=【2】;
printf(\ YesNo(ch); }
参考答案:【1】break 【2】getchar()
6.39 以下Check函数的功能是对value中的值进行四舍五入计算,若计算后的值与ponse值相等,则显示\,否则显示计算后的值。已有函数调用语句Check(ponse,value);请填空。
void Check(int ponse,float value) {int val; val=【1】;
printf(\计算后的值:%d\
if(【2】) printf(\
else printf(\}
参考答案:【1】value+0.5 【2】ponse==val 6.40 以下程序的功能是 。
#include
i=n/100;j=n/10-i*10;k=n;
if (i*100+j*10+k==i*i*i+j*j*j+k*k*k) return n; else return 0; }
main() {int n,k;
printf(\
for(n=100;n<1000;n++) {k=f(n); if(k!=0)
printf(\ }
printf(\}
参考答案:输出所有的水仙花数。
6.41 以下程序的功能是用二分法求方程2x3-4x2+3x-6=0的根,并要求绝对误差不超过0.001。请填空。
#include
{return (2*x*x*x-4*x*x+3*x-6);} main()
{float m=-100,n=90,r; r=(m+n)/2;
while(f(r)*f(n)!=0) {if(【1】) m=r; else n=r;
if(【2】) break; r=(m+n)/2; }
printf(\方程的解是%6.3f\\n\}
参考答案:【1】f(r)*f(n)<0或f(r)*f(m)>0【2】n-m<0.001 6.42 若输入一个整数10,以下程序的运行结果是 。
int sub(int a) {int c; c=a%2; return c; }
main()
{int a,e[10],c,i=0;
printf(\ scanf(\ while(a!=0) {c=sub(a); a=a/2; e[i]=c; i++; }
for(;i>0;i--) printf(\}
参考答案:1010
6.43 以下程序的功能是计算下面函数的值。请填空。
sin(x) sin(y) sin(z)
F(x)= + + sin(x-y)*sin(x-z) sin(y-z)*sin(y-x) sin(z-x)*sin(z-y)
#include
{printf(\
scanf(\ sum=【1】;
printf(\}
float f(float a,float b,float c)
{float value; value=【2】; return(value); }
参考答案:【1】f(x,y,z)+f(y,z,x)+f(z,x,y) 【2】sin(a)/sin(a-b)/sin(a-c) 参考分析:本题答案非常不严谨,完全可以写成多种方式,比如 【1】f(x,x-y,x-z)+f(y,y-z,y-x)+f(z,z-x,z-y) 【2】sin(a)/sin(b)/sin(c)
【1】f(x,y,z) 【2】sin(a)/sin(a-b)/sin(a-c)+sin(b)/sin(b-c)/sin(b-a)+sin(c)/sin(c-a)/sin(c-b) 6.44 已有函数pow,现要求取消变量i后pow函数的功能不变。请填空。 修改前的pow函数:
int pow(int x,int y) {int i,j=1;
for(i=1;i<=y;i++) j=j*x; return j; }
修改后的函数:
int pow(int x,int y) {int j;
for(【1】;【2】;【3】) j=j*x; return j; }
参考答案:【1】j=1【2】y>0或y>=1【3】y--或--y 6.45 以下程序的运行结果是输出如下图形。请填空。
* *** ***** ******* ***** *** *
#include
for(j=0;j<=7-i;j++) printf(\ for(k=0;k<【1】;k++) printf(\ printf(\}
main() {int i;
for(i=0;i<3;i++) 【2】; for(i=3;i>=0;i--) 【3】; }
参考答案:【1】2*i+1 【2】a[i] 【3】a[i] 参考说明:最长的一行前面有5个空格。
6.46 以下程序的功能是求三个数的最小公倍数,请填空。
#include