期中测试题
注:答题时间120分钟
一、阅读程序写结果(共35分):
1.有如下程序段,运行后的输出结果是_____________:
void main() { int x=1,a=0,b=0;
switch(x) {
case 0∶b++; case 1∶a++;
case 2∶a++;b++; }
printf(\\n\ }
2.以下程序段的输出结果是_________________ void main() { int a=4,b=5,c=0,d; d=!a&&!b||!c;
printf(\\n\); }
3.若从键盘输入58,则以下程序段输出的结果是_____________。
void main()
{ int a;
scanf(\); if(a>50)printf(\); if(a>40)printf(\); if(a>30)printf(\); }
4. 下列程序段的输出结果是________________ void main() {
int i,a=0,b=0; for(i=1;i<10;i++) {
if(i%2= =0) { a++; continue; } b++; }
printf(\); }
5. 阅读下面程序段段,则执行后的输出结果为________________ void main() { int a=1; for(;a<=15;)
if(++a%5!=2) continue; else printf(\); printf(\\n\); }
6. 阅读下面语句,则执行后的输出结果为________________ void main() { int a=0,b=0;
while(a<15)a++; while(b++<15);
printf(\\n\); }
7. 阅读下列程序段,程序段的输出结果是____________________ void main() {
int m,n; float k; k=0; for(m=4;m>=2;m- -)
{ for(n=m;n>1;n- -) k=k+m*n; } printf(\\n\); }
二、程序填空题(共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(\\n\); }
2. 下面程序的功能是把316表示为两个加数的和,使两个加数分
别能被13和11整除,请选择填空。 void main() {
int i=0,j,k; do {
i++; k=316-13*i; }while(【2】); j=k/11;
printf(\【3】*%d + 【4】*%d\); }
3. 函数fun的功能是:根据以下公式求p的值,结果由函数值返
回。m与n为两个正数且要求m>n。
例如:m=12,n=8时,运行结果应该是495.000000。请在题目的空白处填写适当的程序语句,将该程序补充完整。 float fun (int m, int n) { int i; double p=1.0;
for(i=1;i<=m;i++) _【5】_; for(i=1;i<=n;i++) _【6】_; for(i=1;i<=m-n;i++) p=p/i; return p; }
void main ()
{ printf (\\n\(12,8)); }
4.下面程序的功能是将一个整数的值转换成二进制数,并将所得二进制数的每一位依次在显示器上输出,请填空。 void main() { int x,int b;
_【7】_; do
{ b=x% _【8】_;
putchar(_【9】_); x/= _【10】_;
} while( _【11】_ ); }
5. 下面程序把从终端读入的文本(用@作为文本结束标志)输出到一个名为bi.txt的新文件中,请填空。 void main() {