期中测试题
注:答题时间120分钟
一、阅读程序写结果共35分):
L有如下程序段,运行后的输出结果是
void main()
{int x=1,a=0,b=0;
switch(x)
{
case 0:b++;
case 1:a++;
case 2:a++;b++;
}
printffa=%d,b=%d \ nH,a,b);
}
2以下程序段的输出结果是
void main ()
{int a二4,b二5,c二0,d;
d=!a&&!b||!c;
printf ( H%d \ nH,d );
}
3?若从键盘输入58,则以下程序段输出的结果是
voidmain ()
int a;
scant ( "%d",&a );
if ( a>50 ) printf ( "%d",a );
if ( a>40 ) printf ( n%dn,a );
if ( a>30 ) printf (H%dn,a );
}
4?下列程序段的输出结果是
void main ()
{
int i,a=0,b=0;
for ( i=1;i<10;i++ )
{
if ( i%2= =0 ) { a++; continue;} b++;
}
printf ( Ha=%d,b=%d,,JaJb );
}
5.阅读下面程序段段,则执行后的输出结果为—
void main ()
{int a=1;
for ( ;a<=15;) if ( ++a%5!=2 ) continue; else printf (H%dn,a );
printf ( " \ n");
}
6.阅读下面语句,则执行后的输出结果为
void main ()
{int a=0,b=0;
while ( a<15 ) a++;
while ( b++<15 );
printf ( M%d,%d \ nH,a,b );
}
7?阅读下列程序段,程序段的输出结果是
void main ( ) {
int m,n; float k; k=0;
for ( m=4;m>=2;m--)
{for ( n=m;-)k=k+m*n;} printf (”%f \ nH,k );
}
二、程序填空题 共25分):
1 ?下列程序的输出结果是16.00 ,请填空。
void main ()
int a=9, b=2; float x= [1] , y=1.1 ,z;
z=a/2+b*x/y+1/2;
printf ( "%5.2f \ n”,z );
}
2.下面程序的功能是把316表示为两个加数的和,使两个加数分
别能被13和"整除,请选择填空。
void main ()
{
int i=O,j,k;
do
i++;k=316-13*i;
}while (【2】);
j=k/11;
printf ( ”316 = _[3]_*%d + _[4]_*%dH,i,j );
}
3?函数fun的功能是:根据以下公式求p的值 结果由函数值返回。
m与n为两个正数且要求m>no
例如:m=12 , n=8时,运行结果应该是495.000000。请在题 目的空白处填写适当的程序语句,将该程序补充完整。
float fun ( int m, int n )
{int i; double p=1.0;
for ( i=1;i<=n;i++ )[6] for ( i=1;i<=m-n;i++ ) p=p/i;
return p;
}
void main () { printf ( Hp=%f \ nH,fu n ( 12,8 ) ) ;}
4 ?下面程序的功能是将一个整数的值转换成二进制数,并将所得二
进制数的每一位依次在显示器上输出,请填空。
void main()
{int x,int b;
一【7】一;
do
{ b=x% [8] putchar(_ [9] _);
x/=_ [10]
} while ( _【X】_ );
}
5.下面程序把从终端读入的文本(用@作为文本结束标志)输出到 一个名为bi.txt的新文件中,请填空。
void main()
FILE *fp;char ch;
if ( (fp=fopen ( _【12】_ ) ) ==NULL ) exit ( 0 );
while ( ( ch=getchar () ) !二@ ) _【13】
fclose (fp );
}
三、编程题共40分):
1编程序,要求输入年月日时分秒,输出该年月日时分秒的下一秒。 如输入2012年4月100 23时59分59秒,则输出2012年4月 11H 0时0分0秒。(8分)
2编写程序,它的功能是:根据以下公式求X的值要求满足精度
Q 0005即某项小于Q 0005时停止迭代):(10分)
X/2=l+l/