A.s==0 B.s!=0 C.s==1
D.s=0
5.下列语句中,哪一个可以输出26个大写英文字母( )。
A.for(a='A';a<='Z';printf(\,++a)); B.for(a='A';a<'Z';a++)printf(\,a); C.for(a='A';a<='Z';printf(\,a++)); D.for(a='A';a<'Z';printf(\,++a));
6.判断下面的while循环体的执行次数( )。
i=0; k=10;
while( i=8 ) i=k––;
A.8次 B.10次 C.2次 D.无数次
解:(1) B (2) B (3) B (4) A (5) C (6) D 二、写出下列程序的输出结果 1.#include
void main() {
char x;
int n=0,k=0;
while((x=getchar())!='#'){ //运行时输入:a the ftheth e
there#
switch(x){
case 't': k++; break;
case 'h': if(k==1) k++; break; case 'e': if(k==2) k++; break; default: k=0; }
if(k==3) n++; } printf(\} 解:3
*2.
#include
void main( ) {
int k=0; char c='A';
do {
switch (c++) {
case 'A': k++; break; case 'B': k--;
case 'C': k+=2; break; case 'D': k=k%2; break; case 'E': k=k*10; break; default: k=k/3;
12
} k++;
}while(c<'G');
printf(\}
解:k=8
*3.
#include
char a,b,x; int i; do
x=getchar(); //运行时输入:2abcD while (isupper(x)==0);
for(a='A'; a<=x; a++){ for(b='A'; b<'A'+x-a; b++) putchar(' '); for(i=1;i<=2*(a-'A')+1;i++) putchar(a);
putchar('\\n'); } }
注:isupper(x)是判断x是否大写字母的函数,如果x是大写字母函数值为1
否则为0。
解: A BBB CCCCC
DDDDDDD 4.
#include
int i,n;
scanf(\输入2520 i=2;
while(n>1) if(n%i==0){
printf(\ n/=i; }
else i++; printf(\}
13
解: 2 2 2 3 3 5 7
三、填空题
1.求1~10的乘积,写作:
for( , i=1; i<=10; ++i) s*=i;
解: s=1
2.下面程序段执行后,x、y的值分别为 。
y=1; x=5;
while(x) { x--; y++; }
解: x、y分别为0和6
*3.输入若干个以问号结束的字符,同时输出这串字符(不包括问号);
while( !='?') putchar(ch);
解: (ch=getchar()) //注意外面的这对括号不能少
*4.有以下程序片段:
s=1.0;
for(k=1;k<=n; k++) s+=1.0/(k*(k+1)); printf(\填空,使下程序段与上程序段功能完全相同。
s=0.0;
; k=0; do
{ s+=d;
; d=1.0/(k*(k+1)); }
while( ); printf(\
解: d=1 k++ k<=n
5.下列程序输出6~10000之间的亲密数对,填空将程序补充完整。若a、b是亲密数对,则a的因子和等于b,b的因子和等于a,且a不等于b。
#include
{ int a,b,c,i;
for(a=6;a<=10000;a++) { b=1;
for(i=2;i<=a/2;i++)
if( ) b+=i;
for(i=2;i<=b/2;i++) if(b%i==0) c+=i;
14
if( &&a!=b)
printf(\ } }
解:a%i==0 c=1; c==a
6.计算2+22+222+2222+?+22+?+2的和。
n #include
void main()
{ int s=1,t=1,a,n; scanf(\
for(int i=2;i<=n;i++) { t=t*10+1; }
printf(\}
解:a=2; s+=t; s*=a;
四、编程题
1.输入一个实数,输出它的平方根值,如果输入数小于0,则输出“The number is error!”的提示。
解:#include
#include
double a,x;
printf(“Input data:\\n”); scanf(“%lf”,&a); if(a>=0){
x=sqrt(a);
printf(“%g的平方根值为%g\\n”,a,x); }
else
printf(“The number is error!\\n”); }
2.用if语句编程序,输入x后按下式计算y值,并输出结果。
2
x+2*x +10 0≤x≤8
y= x-3*x3-9 x<0 或 x>8 解:#include
void main() {
double x,y;
15