2019二级C题库及解析(9)

2020-06-16 10:11:42 浏览数 (1)

循环结构

11.

代码语言:javascript复制
#include "stdio.h"
main()
{
    char c;
    c=getchar();
    while(c!='?')
    {   
        putchar(c);
        c=getchar(); 
    }
}

如果从键盘输入abcde?fgh(回车)

按回车后,才将字符串送入缓冲区,之后才开始执行getchar及其后面语句。getchar每次从缓冲区读入一个字符,遇到 ?循环结束。该缓冲机制是的按了回车之后程序才会继续执行,并不是输入一个字符之后立马putchar输出。

运行结果为:abcde

12.

代码语言:javascript复制
#include <stdio.h>
main()
{ 
    char c;
    while((c=getchar())!=’$’)
    { 
        if(‘A’<=c&&c<=‘Z’)  
            putchar(c);
        else 
            if(‘a’<=c&&c<=‘z’)  
                putchar(c-32); 
     }
}

当输入为ab*AB�#CD$时,运行结果为:ABABCDCD

13. for语句,break,continue语句

代码语言:javascript复制
#include <stdio.h>
main()
{ 
    int x, y =0;
    for(x=1;x<=10;x  )
    { 
        if(y>=10)
            break;
        y=y x;
    }
    printf(“%d   %d”,y,x);
}

运行结果为:10 5

for( 表达式1;表达式2;表达式3)

{

}

(1) 先求解表达式1

(2) 求解表达式2,若其值为真,执行循环体,然后执行 (3). 若为假,则结束循环,转到(5)

(3) 求解表达式3

(4) 转回上面 (2)继续执行

(5) 循环结束,执行for语句下面的一个语句

break ,跳出循环体;

continue,结束本次循环(第i次循环),继续执行下一次循环(第i 1次循环)

此题 表达式1为x=1,表达式2(循环条件)为x<=10,表达式3为x

初值x为1,y为0,循环条件(即表达式2)x<=10成立,进入循环体

第1次循环

执行if语句。0小于10,if语句的条件表达式不成立,不执行break;

执行y=y x; y=0 1=1

转向表达式3,执行x , x=x 1=1 1=2。循环条件x<=10成立,进入第2次循环

第2次循环

执行if语句。1小于10,if语句的条件表达式不成立,不执行break;

执行y=y x; y=1 2=3

转向表达式3,执行x , x=x 1=2 1=3。循环条件x<=10成立,进入第3次循环

第3次循环

执行if语句。3小于10,if语句的条件表达式不成立,不执行break;

执行y=y x; y=3 3=6

转向表达式3,执行x , x=x 1=3 1=4。循环条件x<=10成立,进入第4次循环

第4次循环

执行if语句。6小于10,if语句的条件表达式不成立,不执行break;

执行y=y x; y=6 4=10

转向表达式3,执行x , x=x 1=4 1=5。循环条件x<=10成立,进入第5次循环

第5次循环

执行if语句。10等于10,if语句的条件表达式成立,执行break,跳出循环。

从break跳出至for语句的下一条语句。执行printf(“%d %d”,y,x);

输出当前的y与x.结果为10 5

0 人点赞