6.6 综合自测
一、选择题
1.在while(x)语句中的x与下面条件表达式等价的是( )。
A.x==0 B.x==1 C.x!=1 D.x!=0
2.以下程序的输出结果是( )。
#include <stdio.h>
main()
{ int k,j,m;
for(k=5;k> =1;k--)
{ m=0;
for(j=k;j< =5;j++)
m=m+k*j;
}
printf("% d\n",m);
}
A.124 B.25 C.36 D.15
3.以下程序的输出结果是( )。
#include <stdio.h>
main()
{ int x=10,y=10,i;
for(i=0;x>8;y= ++i)
printf("% d % d",x--,y);
}
A.10192 B.9876 C.10990 D.101091
4.以下程序的输出结果是( )。
a=1;b=2;c=2;
while(a<b<c){t=a;a=b;b=t;c--;}
printf("% d,% d,% d",a,b,c);
A.1,2,0 B.2,1,0 C.1,2,1 D.2,1,1
5.以下for循环体的执行次数是( )。
#include <stdio.h>
main()
{ int i,j;
for(i=0,j=1;i< =j+1;i+ =2,j--)printf("% d\n",i);
}
A.3 B.2 C.1 D.0
6.有以下程序:
#include <stdio.h>
main()
{ int n=9;
while(n>6){n--;printf("% d",n);}
}
该程序段的输出结果是( )。
A.987 B.876 C.8765 D.9876
7.有以下程序段:
int k=0;
while(k=1)k++;
while 循环执行的次数是( )。
A.无限次 B.有语法错,不能执行 C.一次也不执行 D.执行一次
8.以下程序中,while循环执行的次数是( )。
#include <stdio.h>
main()
{ int i=0;
while(i<10)
{ if(i<1)continue;
if(i==5)break;
i++;
}
…
}
A.1 B.10 C.6 D.死循环,不能确定次数
9.以下程序的输出结果是( )。
#include<stdio.h>
main()
{ int i=0,a=0;
while(i<20)
{ for(;;)
{ if((i% 10)==0)break;
else i--;
}
i+ =11;a+ =i;
}
printf("% d\n",a);
}
A.21 B.32 C.33 D.11
10.语句while(!E);中的条件!E等价于( )。
A.E==0 B.E!=1 C.E!=0 D.~E
11.以下的for循环( )。
for(x=0,y=0;(y!=123)&&(x<4);x++);
A.是死循环 B.循环次数不定 C.循环执行4次 D.循环执行3次
12.执行以下程序段的结果是( )。
int x=23;
do
{ printf("% d",x--);
}while(!x);
A.打印出321 B.打印出23 C.不打印任何内容 D.陷入死循环
二、操作题
1.下列给定程序中,函数fun()的功能是:计算以下公式前n项的和,并作为函数值返回。
例如,当形参n的值为10时,函数返回值为9.612558。
请在标号处填入正确的内容,使程序得出正确的结果。
注意:部分源程序给出如下,不得增行或删行,也不得更改程序的结构。
试题程序
#include <stdio.h>
double fun(int n)
{ int i;double s,t;
s=【1】;
for(i=1;i< =【2】;i++)
{ t=2.0*i;
s=s+(2.0*i-1)*(2.0*i+1)/【3】;
}
return s;
}
main()
{ int n= -1;
while(n<0)
{printf("Please input(n>0):");
scanf("% d",&n);}
printf("\nThe result is:% f\n",fun (n));
}
2.给定程序中,函数fun()的功能是:统计形参s所指的字符串中数字字符出现的次数,并存放在形参t所指的变量中,最后在主函数中输出。例如,若形参s所指的字符串为“abcdef35adgh3kjsdf7”,则输出结果为4。
请在标号处填入正确内容,使程序得出正确的结果。
注意:部分源程序给出如下。不得增行或删行,也不得更改程序的结构。
试题程序
#include <stdio.h>
void fun(char *s,int *t)
{ int i,n;
n=0;
for(i=0;【1】!=0;i++)
if(s[i] > = '0'&&s[i] < = 【2】)n++;
【3】;
}
main()
{ char s[80] ="abcdef35adgh3kjsdf7";
int t;
printf("\nThe original string is:% s\n",s);
fun(s,&t);
printf("\nThe result is:% d\n",t);
}