欢迎您来到未来学院,加入我们共同学习吧!
1 2 3 4
  • 当前位置:首页 > 考试中心 > 计算机考试 > 二级 > 二级C >

    二级C

    2015年计算机二级C语言测试题及答案解析(三)

    浏览次数:     时间:2015/11/17

    2015年计算机二级C语言测试题及答案解析(三)

    1.
    #include "stdio.h" 
    main() 
    {char c; 
    c=getchar(); 
    while(c!=?) {putchar(c);c=getchar(); } 

    如果从键盘输入abcde?fgh(回车)
    运行结果为:abcde
    2.
    #include 
    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#CD$时,运行结果为:ABABCDCD
    3. 
    #include 
    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
    详见教材p120for语句
    详见教材p126~128break,continue语句
    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
    4.
    #include
    main( )
    {char ch;
    ch=getchar( ); 
    switch(ch)
    {case‘A’ : printf(“%c”,’A’);
    case‘B’ : printf(“%c”,’B’); break;
    default: printf(“%s\n”,”other”);
    } }
    当从键盘输入字母A时,运行结果为:AB
    详见教材p103,switch语句
    switch(表达式)
    { case常量1 :语句1 
    case常量2 :语句2 
    ┇┇ ┇
    case常量n :语句n 
    default :语句n+1 

    其中表达式,常量1,…,常量n都为整型或字符型
    case相当于给出执行程序的入口和起始位置,若找到匹配的常量,则从此处开始往下执行程序,不再匹配常量,直至遇到break或switch结束
    本题过程:
    首先从键盘接收一个字符’A’并将其放在变量ch中。
    执行switch语句。Switch后面的条件表达式为ch,因此表达式的值即为字符’A’. 用字符’A’依次与下面的 case中的常量匹配。
    与第1个case后的常量匹配,则从其后的语句开始往下执行程序(在执行过程中不再进行匹配。)因此先执行printf(“%c”,’A’),屏幕上输出A;再往下继续执行printf(“%c”,’B’),屏幕上输出B;再继续执行break, 此时跳出switch语句。
    5. 
    #include 
    main( )
    { int a=1,b=0;
    scanf(“%d”,&a);
    switch(a)
    {case 1: b=1;break;
    case 2: b=2;break;
    default : b=10;}
    printf("%d ", b);
    }
    若键盘输入5,运行结果为:10
    本题过程:
    首先用scanf函数为变量a赋值为5。
    执行switch语句。switch后面的条件表达式为a,因此表达式的值即为5. 用5依次与下面 case中的常量匹配。没有找到匹配的常量,因此两个case后的语句都不执行。执行default后面的语句b=10;将10赋给变量b。
    输出变量b,结果为10

    上一篇:2015年计算机二级C语言考试模拟预测题及答案(一)
    下一篇:2015年计算机二级C语言测试题及答案解析(二)
    版权所有©安徽佰通教育科技发展股份有限公司 备案号:皖B2-20180049-5 电话:0551-65772438 地址:安徽省合肥市蜀山区蜀山新产业园区振兴路自主创新产业基地4栋2层203室