循环结构程序设计测试
1.若变量已正确定义,执行以下while语句将陷入死循环。
i = 1;
while (i <= 10) ;
i++;
T
2.以下程序段计算级数 s= 1+1/3+1/5+...的前若干项之和,1/101这项没有被加入。
item = 1.0;
denominator = 1;
sum = 0.0;
while( item > 0.01)
{
item = 1.0/denominator;
sum += item;
denominator += 2;
}
F
3.执行以下程序段,sum的值是55。
int i, sum;
for (i = 1; i <= 10; i++){
sum = sum + i;
}
F
4.运行包含以下代码段的程序将可能进入死循环。 int i = 1; while(i>0){ i++; printf("%d ",i); }
F
5.for语句循环体可能一次也不执行。
T(首先会执行判断条件,不符合就跳过,所以最少执行一次)
6.执行以下循环语句时,下列说法正确的是()。
x = -1;
do {
x = x * x;
} while (x == 0);
A.循环体将执行一次
B.循环体将执行两次
C.循环体将执行无限次
D.系统将提示有语法错
A
7.运行以下程序后,如果从键盘上输入65 14<回车>,则输出结果为()。
int main(void)
{
int m, n;
printf("Enter m,n;");
scanf("%d%d", &m,&n);
while (m != n)
{ while (m > n) m = m - n;
while (n > m) n = n - m;
}
printf("m=%d\n",m);
return 0;
}
m=1;
8.在下列选项中,没有构成死循环的程序段是( )。
A.int i=100; while (1) { i=i%100+1; if(i>100) break; }
B.for ( ; ;);
C.int k=1000; do {++k;}while (k>=10000);
D.int s=36; while (s) ; --s;
C
9.下列程序段执行后s值为__。
int i=5, s=0;
while(--i!=0){
if (i%2==1)
continue;
s+=i;
}
C
10.设E为表达式,以下与do … while(E);不等价的语句是( )。
A.do … while(!E==0);
B.do … while(E>0||E<0);
C.do … while(E==0);
D.do … while(E!=0);
C;
11.
设有程序段
int k=10;
while(k=10)
k=k-1;
则下面描述中正确的是()。
A.循环执行了10次
B.循环一次也不执行
C.循环是无限循环
D.循环执行一次
C;
12.
请问下面哪个选项与程序段中while(x)含义一样?
int x,sum=0;
scanf("%d",&x);
while(x)
sum+=x;
A.while(x!=0)
B.while(x>0)
C.while(x<>0)
D.while(x==0)
A
13.
当执行以下程序段时,以下答案正确的是?
x=-1;
do {
x=x*x;
} while(!x);
A.循环体将执行一次
B.循环体将执行两次
C.循环体将执行无限次
D.系统将提示有语法错误
A
14.统计均分
#include <stdio.h>
int main() {
double sum = 0;
int num = 0;
double input;
while (scanf("%lf", &input) == 1 && input != 0) {
num++;
sum += input;
}
if (num > 0) {
printf("%.2f\n", sum / num);
}
}
15.输出整数的各个位
#include<stdio.h>
int main()
{
int cock=0,hen=0,chicken=0;
for(cock=0;cock<20;cock++)
{
for(hen=0;hen<33;hen++)
{
for(chicken=0;chicken<100;)
{
if(cock+hen+chicken==100)
{
if(5*cock+3*hen+chicken/3==100)
{
printf("cock=%d,hen=%d,chicken=%d\n",cock,hen,chicken);
}
}
chicken+= 3;
}
}
}
return 0;
}
16.百钱百鸡
#include<stdio.h>
int main()
{
int cock=0,hen=0,chicken=0;
for(cock=0;cock<20;cock++)
{
for(hen=0;hen<33;hen++)
{
for(chicken=0;chicken<100;)
{
if(cock+hen+chicken==100)
{
if(5*cock+3*hen+chicken/3==100)
{
printf("cock=%d,hen=%d,chicken=%d\n",cock,hen,chicken);
}
}
chicken+= 3;
}
}
}
return 0;
}
17.求平均成绩和优秀率
#include<stdio.h>
int main()
{
int n;
double naverage=0,sum=0;
scanf("%d",&n);
int a[n+1];
for(int flag=1;flag<=n;flag++)
{
scanf("%d",&a[flag]);
naverage+=(double)a[flag];
if(a[flag]>=90)
sum++;
}
printf("average=%.2lf\n",naverage/n);
printf("rate=%.2lf",sum/n);
return 0;
}