有以下程序 main( ) { char k; int l; for(i=1;i<3;i++) { scanf(“%c”,&k); switch(k) { case ‘0’: printf(“another\n”); case ‘1’: printf(“number\n”); } } } 程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是( )A.another numberB.another number anotherC.another number numberD.number numbe

题目

有以下程序 main( ) { char k; int l; for(i=1;i<3;i++) { scanf(“%c”,&k); switch(k) { case ‘0’: printf(“another\n”); case ‘1’: printf(“number\n”); } } } 程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是( )

A.another number

B.another number another

C.another number number

D.number number


相似考题
更多“有以下程序 main( ) { char k; int l; for(i=1;i<3;i++) { scanf(“%c”,&amp;k); ”相关问题
  • 第1题:

    有以下程序includeintt b=2;int fun(int*k) {b=*k+b;return(b);}main(){int a[10]={1,

    有以下程序 #include<stdio.h> intt b=2; int fun(int*k) {b=*k+b;return(b);} main() { int a[10]={1,2,3,4,5,6,7,8,},i; for(i=2;i<4;i++) {b=fun(&a[i])+b; printf("%d",b);} print("\n"); } 程序运行后的输出结果是______。

    A.10 12

    B.8 10

    C.10 28

    D.10 16


    正确答案:C
    解析:程序在执行for循环中,第—次调用fun()函数时,因为变量i的值为2,所以&a[i]指向a[2]),值为3,又因为b是全局变量,所以在fun函数中可以直接使用,执行“b=*k+b;”,即b=3+2=5,从被调函数中返回的值为5,此时全局变量b的值也变为5,所以由main()函数中执行语句“b=fun(&a[i])+b;”的结果b=5+5=10,因此第—次输出b的值为10;第二次调用时变量i的值为3,调用 fun函数的返回值为14,所以第二次输出28,此时for循环中,变量i=4,不符合循环条件i4,跳出循环,故选项C是正确的。

  • 第2题:

    有以下程序: main () { char k; int i; for(i=1;i<3;i++) { scanf("%c",&k); switch(k) { case '0': printf("another\n"); case '1': printf("number\n"); } } } 程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是

    A.another number

    B.another number another

    C.another number number

    D.number number


    正确答案:C
    解析:switch语句的执行过程是:在switch后面的表达式的值和case后面常量表达式的值吻合时,就执行后面的语句.如果在该语句的后面没有break语句,则继续执行下一个case,直到遇到break语句或switch多分支的结束,在switch语句中,break语句的作用是使流程跳出switch结构,终止Switch语句的执行.本题中在for循环中嵌套了swish语句,每循环一次通过scanf()函数从键盘上输入一个k值,然后执行switch语句。for循环共循环了2次,当i=1时,从键盘上输入0,使得k的值为0,执行switch语句中case:0后面的语句,输出another,接着执行case:0下面的语句输出number,退出switch语句,当i=2时,从键盘上输入1,使得k的值为1,执行switch语句中case1后面的语句,输出number,退出switch语句.当i=3时退出循环.故最后的输出为another、number和number,所以,4个选项中选项C符合题意。

  • 第3题:

    有以下程序 main() { int i=1, j=2,k=3; if(i++ == l && (++j==3|| k++==3)) printf("%d %d %d\n",i,j,k); 程序运行后的输出结果是

    A.1 2 3

    B.2 3 4

    C.2 2 3

    D.2 3 3


    正确答案:D
    解析:在计算由&&或‖组成的逻辑表达式时一定要注意“短路”现象:&&是逻辑与,要两边的运算分量同时为真的时候表达式的值才为真,否则为假,若&&左边的运算分量为假的时候,无论&&右边的运算分量如何,整个&&表达式的结果都为假,因此C语言会忽略&&右边的表达式;‖(逻辑或)也有同样现象,当‖左边为真时将忽略右边的表达式。本题的关键点在于逻辑表达式i++==1&&(++j)==3‖k++==3的计算。因为‖的优先级最低,所以先计算‖左边的于表达式i++==1&&(++j)==3,而该表达式中&&的优先级最低,所以先计算i++==1,==的优先级低于++,所以最先计算的表达式为i++,该表达式的值为i自增之前的值1,因此子表达式i++==1等价于1==1结果为“真”,此时的&&运算没有被“短路”继续运算右边的(++j)==3子表达式,因为表达式(++j)的值为6自增之后的值3,所以子表达式(++j)==3等价于3==3结果还是“真”。“真”&&“真”的结果为“真”,即‖运算符的左边运算分量为“真”!注意,此时满足了“短路”的条件,C语言将忽略||右边的表达式,而将整个i++==1&&(++j)==3‖k++==3表达式的结果判定为“真”,子表达式k++==3没有被计算,即变量k没有自增!而i和j在前面均有得到自增1的机会,所以,4个选项中选项D符合题意。

  • 第4题:

    有以下程序:includeint fun(int*k){int b=0;b=*k+b:return(B);}main(){int a[10]={1,2

    有以下程序: #include<stdio.h> int fun(int*k) {int b=0; b=*k+b: return(B);} main() {int a[10]={1,2,3,4,5,6,7,8},i; for(i=2;i<4;i++){printf("%d",fun(&a[i]));} printf("\n"); } 程序运行后的输出结果是( )。

    A.10 12

    B.8 10

    C.3 4

    D.10 28


    正确答案:C

  • 第5题:

    有以下程序:includemain(){char k; int i; for(i=1;i<3;i++) {scanf("%c",&k);swi

    有以下程序: #include <stdio.h> main() { char k; int i; for(i=1;i<3;i++) { scanf("%c",&k); switch(k) { case '0': printf("another\n"); case '1': printf("number\n"); } { } 程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是( )。

    A.another number

    B.another number another

    C.another number

    D.number number


    正确答案:C
    解析:本题中没有使用break终止switch语句的执行,当k为'0'时,执行完case'0'后的输出后将继续执行case'1'后的输出;当k为'1'时,执行case'1'后的输出。

  • 第6题:

    有以下程序 main() { char k;int i; for(i=1;i<3;i++) { scanf("%c",&k); switch(k) { case'0':printf("another\n"); case'1':printf("number\n"); } } } 程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是

    A.another number anothor

    B.another number number

    C.another number

    D.number number


    正确答案:C
    解析:switch语句的执行过程是:在switch后面的表达式的值和case后面常量表达式的值吻合时,就执行后面的语句。如果在该语句的后面没有break语句,则继续执行下一个case,直到遇到break语句或switch多分支则结束,在switch语句中,break语句的作用是使流程跳出switch结构,中止switch语句的执行。本题中在for循环中嵌套了 switch语句,每循环一次通过scanf()函数从键盘上输入一个k值,然后执行switch语句。 for循环共循环了2次,当i=1时,从键盘上输入0,使得k的值为0,执行switch语句中 cast:0后面的语句,输出another,接着执行case:0下面的语句输出number,退出switch语句,当i=2时,从键盘上输入1,使得k的值为1,执行switch语句中case:1后面的语句,输出number,退出switch语句。当i=3时退出循环。故最后的输出为another、number和 number。