printf(“\n”);
}
A)
0
2
4
6
8
10
12
14
16
18
0
1
2
3
4
B)
0
1
2
3
4
0
2
4
6
8
10
12
14
16
18
C)
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
D)
0
2
4
6
8
10
12
14
16
18
0
2
4
6
8
10
12
14
16
18
7.26以下程序的正确运行结果是______。
#include
voidnum()
{
externintx,y;inta=15,b=10;
x=a-b;
y=a+b;
}
intx,y;
main()
{
inta=7,b=5;
x=a+b;
y=a-b;
num();
printf(“%d,%d\n”,x,y);
}
A)12,2B)不确定C)5,25D)1,12
7.27凡是函数中未指定存储类型的局部变量,其隐含的存储类别为______。
A)自动(auto)B)静态(static)
C)外部(extern)D)寄存器(register)
7.28在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是______。
A)externB)register
C)autoD)static
7.29以下程序的正确运行结果是______。
main()
{
inta=2,i;
for(i=0;i<3;i++)printf(“%4d”,f(a));
}
f(inta)
{
intb=0;staticintc=3;
b++;c++;
return(a+b+c);
}
A)7777B)71013
C)7911D)789
7.30以下程序的正确运行结果是______。
#include
main()
{
intk=4,m=1,p;
p=func(k,m);printf(“%d”,p);
p=func(k,m);printf(“%d”,p);
}
func(inta,intb)
{
staticintm=0,i=2;
i+=m+1;
m=i+a+b;
return(m);
}
A)8,17B)8,16C)8,20D)8,8
7.2填空题
7.31C语言规定,可执行程序的开始执行点是______。
7.32在C语言中,一个函数一般由两个部分组成,它们是___1___和___2___。
7.33若输入的值是-125,以下程序的运行结果是______。
#include“math.h”
main()
{
intn;
scanf(“%d”,&n);
printf(“%d=”,n);
if(n<0)printf(“-”);
n=fabs(n);
fun(n);
}
fun(intn)
{intk,r;
for(k=2;k<=sqrt(n);k++)
{r=n%k;
while(r==0)
{printf(“%d”,k);
n=n/k;
if(n>1)printf(“*”);
r=n%k;
}
}
if(n!
=1)printf(“%d\n”,n);
}
7.34下面add函数的功能是求出两个参数的和,并将和值返回调用函数。
函数中有错误的部分___1___;改正后为___2___。
voidadd(floata,floatb)
{
floatc;
c=a+b;
returnc;
}
7.35以下程序的运行结果是______。
main()
{
inti=2,x=5,j=7;
fun(j,6);
printf(“i=%d;j=%d;x=%d\n”,i,j,x);
}
fun(inti,intj)
{
intx=7;
printf(“i=%d;j=%d;x=%d\n”,i,j,x);
}
7.36以下程序的运行结果是______。
main()
{
increment();
increment();
increment();
}
increment();
{
intx=0;
x+=1;
printf(“%d”,x);
}
7.37以下程序的运行结果是______。
#include
main()
{
inta=1,b=2,c;
c=max(a,b);
printf(“max=%d\n”,c);
}
max(intx,inty)
{
intz;
z=(x>y)?
x:
y;
return(z);
}
7.38以下程序的功能是根据的“y”(“Y”)与“n”(“N”),在屏幕上分别显示出“ThisisYES.”与“ThisisNO.”请填空。
#include
voidYesNo(charch)
{
switch(ch)
{
case‘y’:
case‘Y’:
printf(“\nThisisYES.\n”);__1__;
case‘n’:
casr‘N’:
printf(“\nThisisNO.\n”);
}
}
main()
{
charch;
printf(“\nEnterachar‘y’,‘Y’,or‘n’,‘N’:
”);
ch=__2__;
printf(“ch:
%c”,ch);
YesNo(ch);
}
7.39以下Check函数的功能是对value中的值进行四舍五入计算,若计算后的值与ponse值相等,则显示“WELLDONE!
!
”,否则显示计算后的值。
已有函数调用语句Check(ponse,value);请填空。
voidCheck(intponse,floatvalue)
{
intval;
intval=__1__;
printf(“计算后的值:
%d”,val);
if(__2__)printf(“\nWELLDONE!
!
!
\n”);
elseprintf(“\nSorrythecorrectansweris%d\n”,val);
}
7.40以下程序的运行结果是______。
#include
f(intn)
{
inti,j,k;
i=n/100;j=n/10-i*10;k=n%10;
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)returnn;
elsereturn0;
}
main()
{
intn,k;
printf(“output”);
for(n=100;n<1000;n++)
{
k=f(n);
if(k!
=0)printf(“%d”,k);
}
printf(“\n”);
}
7.41以下程序的功能是用二分法求方程2x3-4x2+3x-6=0的根,并要求绝对不超过0.001。
请填空。
#include
floatf(flaotx)
{return(2*x*x*x-4*x*x+3*x-6);}
main()
{
floatm=-100,n=90,r;
r=(m+n)/2;
while(f(r)*f(n)!
=0)
{
if(__1__)m=r;
elsen=r;
if(__2__)break;
r=(m+n)/2;
}
printf(“Thisisfangchengjieis%6.3f\n”,r);
}
7.42若输入一个整数10,以下程序的运行结果是______。
main()
{
inta,e[10],c,i=0;
printf(“输入一个整数\n”);
scanf(“%”,&a);
while(a!
=0)
{
c=sub(a);
a=a/2;
e[i]=c;
i++;
}
for(;i>0;i--)printf(“%d”,e[i-1]);
}
sub(inta)
{
intc;
c=a%2;
returnc;
}
7.43以下程序的功能是计算函数的值。
请填空。
#include
#include
floatf();
main()
{
flaotx,y,z,sum;
printf(“\ninputx,y,z:
\n”);
scanf(“%f%f%f”,&x,&y,&y);
sum=__1__;
printf(“sum=%f\n”,sum);
}
floatf(floata,floatb,floatc)
{
floatvalue;
value=__2__;
return(value);
}
7.44已有函数pow,现在要求取消变量i后pow函数的功能不变。
请填空。
修改前的pow函数pow(intx,inty)
{
inti,j=1;
for(i=1;i<=y;++i)j=j*x;
return(j);
}
修改前的pow函数pow(intx,inty)
{
intj;
for(__1__;__2__;__3__)j=j*x;
return(j);
}
7.45以下程序的运行结果是输出如下图形。
请填空。
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
#include
voida(inti)
{
intj,k;
for(j=0;j<=7-i;j++)print(“”);
for(k=0;k<__1__;k++)printf(“*”);
printf(“\n”);
}
main()
{
inti;
for(i=0;i<3;i++)__2__;
for(i=3;i>=0;i--)__3__;
}
7.46以下程序的功能是求出三个数的最小公倍数,请填空。
#include
max(intx,inty,intz)
{
if(x>y&&x>z)return(x);
elseif(__1__)return(y);
elsereturn(z);
}
main()
{
intx1,x2,x3,i=1,j,x0;
printf(“Input3number:
”);
scanf(“%d%d%d”,&x1,&x2,&x3);
x0=max(x1,x2,