C语言习题与答案1
5.1选择题
【题5.1】设有程序段
int k=10;
while(k=0) k=k-1;
则下面描述中正确的是 。
A)while循环执行10次 B)循环是无限循环
C)循环体语句一次也不执行 D)循环体语句执行一次
【题5.2】设有以下程序段
int x=0,s=0;
while(!x!=0) s+=++x;
printf("%d",s);
则 。
A)运行程序段后输出0 B)运行程序段后输出1
C)循环的控制表达式不正确 D)程序段执行无限次
【题5.3】语句while(!E);中的!E等价于 。
A)E= =0 B)E!=1 C)E!=0 D)E= =1
【题5.4】下面程序段的运行结果是 。
a=1;b=2;c=2;
while(a
printf("%d,%d,%d",a,b,c);
A)1,2,0 B)2,1,0 C)1,2,1 D)2,1,1
【题5.5】下面程序段的运行结果是 。
x=y=0;
while(x<15)
y++,x+=++y;
printf("%d,%d",y,x);
A)20,7 B)6,12 C)20,8 D)8,20
【题5.6】下面程序段的运行结果是 。
int n=0;
while(n++<=2);
printf("%d",n);
A)2 B)3 C)4 D)语法错误
【题5.7】设有程序段
t=0;
while(printf("*"))
{t++;
if(t<3) break;
}
下面描述正确的是 。
A)其中循环控制表达式与0等价
B)其中循环控制表达式与'0'等价
C)其中循环控制表达式是不合法的
D)以上说法都不对
【题5.8】下面程序的功能是将从键盘输入的一对数,由小到大排序输出。当输入一对相等数时结束循环,请选择填空。
#include
main()
{int a,b,t;
scanf("%d%d",&a,&b);
while( )
{if (a>b)
{t=a;a=b;b=t;}
printf("%d,%d\n",a,b);
scanf("%d%d",&a,&b);
}
}
A)!a=b B)a!=b C)a==b D)a=b
【题5.9】下面程序的功能是从键盘输入的一组字符中统计出大写字母的个数m和小写字母的个数n,并输出m,n中的较大者
#include
main()
{ int m=0,n=0;
char c;
while ((【1】)!='\n')
{ if(c>='A'&&c<='Z') m++;
if (c>='a'&&c<='z') n++;
}
printf("%d",m
}
【1】A)c=getchar() B)getchar()
C) getchar() D)scanf("%c",c)
【2】A) n:m B)m:n
C)m:m D)n:n
【题5.10】下面程序的功能是将小写字母变成对应大写字母后的第二个字母,其中y变成A,z变成B。请选择填空。
#include "stdio.h"
main()
{ char c;
while ((c=getchar())!='\n')
{ if (c>='a'&&c<='z')
{【1】;
if (c>'Z')
【2】;
}
printf("%c",c);
}
}
【1】A)c+=2 B)c-=32 C)c=c+32+2 D)c-=30
【2】A)c='B' B)c='A' C)c-=26 D)c=c+26
【题5.11】下面程序的功能是在输入一批正整数中求出最大者,输入0结束循环,请选择填空 。
#include "stdio.h"
main()
{int a,max=0;
scanf("%d",&a);
while ( )
{if (max
scanf("%d",&a);
}
printf("%d",max);}
A)a= =0 B)a C)a= =1 D)!a
【题5.12 】下面程序的运行结果是 。
#include
main()
{int num=0;
while(num<=2)
{num++;
printf("%d\n",num);
}
}
A)1