niusouti.com
更多“以下程序运行后的输出结果是【】。main()int p[7]={11,13,14,15,16,17,18};int i=0,j=0;while(i7p[i]%2! =1) j+=p[i++];printf("%d\n",j);}”相关问题
  • 第1题:

    以下程序运行后的输出结果是【 】。

    main()

    { int p[7]={11,13,14,15,16,17,18};

    int i=0,j=0;

    while(i<7&&p[i]%2==1)j+=p[i++];

    printf("%d\n",j);

    }


    正确答案:24
    24 解析:主函数中首先定义了一个长度为7的数组,然后用一个while循环引用数组的元素,当i大于7或者p[i]为偶数时,循环结束。显然当i=2时,p[2]=14为偶数时,循环结束,此时j的值为j=p[0]+p[1]=24;

  • 第2题:

    以下程序的输出结果是【】。 main() { int p[7]=(11,13,14,15,16,17,18}; int i=0,j=0; while(i<7&a

    以下程序的输出结果是【 】。

    main()

    {

    int p[7]=(11,13,14,15,16,17,18};

    int i=0,j=0;

    while(i<7&&p[i]%2==1)j+=p[i++];

    printf("%d\n",j);

    }


    正确答案:24
    24 解析:本题程序定义了一维数组p,有七个数组元素,整型变量i,j初值分别为0,当while的条件表达式(i7&&p[i]%2=1)的值为真时,执行语句j+=p[i++];,如:当i=0时,i7为真,p[i]%2=11%2=1,表达式(p[i]%2=1)的值为真,所以接个表达式(i7&&p[i]%2=1的值为真,执行j=j+p[i++]=0+11=11,i=1;,依此类推可以得出答案24。

  • 第3题:

    有以下程序 main() { char *p[]={"3697","2548"}; int i,j; long num=0; for(i=0;i<2;i++) {j=0; while(p[i][j]!='\0') { if((p[i][j]-'0')%2) num=10*num+p[i][j]-'0'; j+=2; } } printf("%d\n",num); } 程序执行后的输出结果上______。

    A.35

    B.37

    C.39

    D.3975


    正确答案:C
    解析:此题考核的是指针数组。题目中定义的指针数组“*p[]”相当于一个两行四列的数组。执行for()语句i=0,j=O,p[i][j]=p[0][0]=3,满足while循环条件,执行循环体中的if语句得num=3,j=2,此时p[i][j]=p[0][2]=9,满足循环条件,执行while循环体得num=39,j=4,判断while条件且不符合并退出while循环;再次执行for()语句i=1,j=0,p[i][j]=p[1][0],满足while条件,执行循环体中的if语句,但不符合if条件,所以num不进行运算,j进行加2运算j=2,此时p[i][j]=p[1][2]=4,if条件还是为假,num不进行运算,j进行加2运算j=4,再执行while语句条件不符合退出循环。所以结果为39。

  • 第4题:

    以下程序运行后,输出结果是 ( ) main( ) {char ch[2][5]={"693","825"},*p[2]; int i,j,s=0; for(i=0;i<2;i+ +)p[i]=ch[i]; for(j=0;j<2;j+ +) for(j=0;p[i][j]>='0'& & p[i][j]<='9';j+=2) s=10 * s+p[i][j]-'0'; printf("%d\n",s); }

    A.6385

    B.22

    C.33

    D.693825


    正确答案:A

  • 第5题:

    有以下程序: main() { int p[8]={11,12,13,14,15,16,17,18},i=0,j=0; while(i++<7)if(p[i]%2)j+=p[i]; printf("%d\n",j); } 程序运行后的输出结果是 ______。

    A.42

    B.45

    C.56

    D.60


    正确答案:B
    解析:此程序实现了将p[1)~p[7]中的奇数求和的功能,因此,最后的输出结果是j=13+15+17=45。

  • 第6题:

    有以下程序: main() {char*p[]={"3697","2584"}; int i,j;long num=0; for(i=0;i<2;i++) {j=0; while(p[i][j]!='\0') {if((p[i][j]-'0')%2)num=10*num+p[i][j]-'0'; j+=2; } } printf("%d\n",num); } 程序执行后的输出结果是( )。

    A.35

    B.37

    C.39

    D.3975


    正确答案:C
    解析:通过赋值表达式指针数组*p[]等价于数组p[2][4];表达式“p[i][j]-'0'”可用来表示该字符数组元素的数值,故表达式“(p[i][j]-'0')%2”为判断该字符数组元素的数值的奇偶性,表达式“num=10*num+p[i][j]-'0'”中的数值运算表示直接加该字符数组元素的数值。

  • 第7题:

    有下列程序: main { char*p[]={"3697","2584"}; int i,j;long num=0; for(i=0;i<2:i++) { j=0; while(p[i][j]!=\0) { if((p[i][j]-\0 )%2)num=1O*num+p [j][j]-0; j+=2; } } printf("%d\n",num); } 程序执行后的输m结果是( )。

    A.35

    B.37

    C.39

    D.3975


    正确答案:D
    执行第一次for循环时,用表达式p[i][j]!=\0来判断字符串数组指针P是否到达字符串的结尾,如果没有到达,继续执行while中的语句。if语句表示(p[i][j]-\0)除2的余数不为0时,即字符串所有奇数,执行后面的语句。所以退出第1次for的循环体时,输出为397,执行第2次循环体。对字符串“2584”进行处理,输出结果为5,因而最后输出结果为3975。

  • 第8题:

    有以下程序:main(){ char *p[]={"3697","2584"}; int i, j; long num=0; for(i=0;i<2;i++) {j=0; while(p[i][j]!='\0') { if((p[il[j] -'0')%2) num=10*num+ p[i][j] -'0'; j+=2; } printf("%d\n", num);}程序执行后的输出结果是( )。

    A.35

    B.37

    C.39

    D.3975


    正确答案:C
    解析:本题首先定义了一个字符指针数组p,然后使用一个两重循环遍历数组p。因为内循环的循环变量j每次会加2,所以只能遍历到数组p每行中列下标为偶数的字符,它们是‘3’、‘9’、‘2’、‘8’。然后,将它们通过p[i][j]-‘0’表达式转换为对应的整数3、9、2、8,并用%2来判断该整数是否为奇数。所以最终能执行到num=10*num+p[i][j]-‘0’,语句的只有‘3’和‘9’两个字符。此时已不难算出,运行后num中的值为39。故应该选择C。

  • 第9题:

    有下列程序:

    main

    { char*p[]={"3697","2584"};

    int i,j;long num=0;

    for(i=0;i<2:i++)

    { j=0;

    while(p[i][j]!='\0')

    { if((p[i][j]-'\0 ')%2)num=1O*num+p

    [j][j]-'0';

    j+=2;

    }

    }

    printf("%d\n",num);

    }

    程序执行后的输m结果是( )。

    A.35

    B.37

    C.39

    D.3975


    正确答案:D
    执行第一次for循环时,用表达式p[i][j]!='\0'来判断字符串数组指针P是否到达字符串的结尾,如果没有到达,继续执行while中的语句。if语句表示(p[i][j]-'\0')除2的余数不为0时,即字符串所有奇数,执行后面的语句。所以退出第1次for的循环体时,输出为397,执行第2次循环体。对字符串“2584”进行处理,输出结果为5,因而最后输出结果为3975。

  • 第10题:

    下列程序的输出结果是()。 inClude main() {charch[2][5]={"1234","5678"},*p[2]; int

    下列程序的输出结果是( )。

    #inClude<stdio.h>

    main()

    { charch[2][5]={"1234","5678"},*p[2];

    int i,j,s=0;

    for(i=0;i<2;i++)

    p[i]=ch[i];

    for(i=0;i<2;i++)

    for(j=0;p[i][j]>'\0';j+=2)

    { s=p[i][j]-'0';

    printf("%d",s);}

    }

    A.6357

    B.6135

    C.1357

    D.691357


    正确答案:C
    解析:本题先将指针p指向二维数组ch[2][5],相当于p[0]="1234",p[1]="5678",通过双重for循环,是要将p中的字符隔一个输出一个,通过s=p[i][j]-'0'这条语句是将所要输出的字符转换成相应的+进制数。

  • 第11题:

    有以下程序 main() { int p[8]={11,12,13,14,15,16,17,18},i=0,j=0; while(i++<7) if(p[i]%2)j j+=p[i]; printf("%d\n",j); } 程序运行后的输出结果是______。

    A.42

    B.45

    C.56

    D.60


    正确答案:B

  • 第12题:

    有以下程序

    int f(int n)

    { if(n==1)return 1;

    else return f(n-1)+1;}

    main()

    { int i,j=0;

    for(i=1;i<3;i++)j+=f(i);

    printf("%d\n",j);}

    程序运行后的输出结果是

    A.4

    B.3

    C.2

    D.1


    正确答案:B

  • 第13题:

    有下列程序: main( ) { char*P[]={"3697","2584"); int i,j;long num=0; for(i=0;i<2;i++) {j=0; while(p[i][j]!=\0) {if((p[i][j]-t\0)%2)num=10*num+p[j][j]-0; j+=2; } } printf("%d\n",num); } 程序执行后的输出结果是( )。

    A.35

    B.37

    C.39

    D.3975


    正确答案:D
    执行第一次for循环时,用表达式p[i][J]!=\o来判断字符串数组指针P是否到达字符串的结尾,如果没有到达,继续执行while中的语句。if语句表示(p[i][j]-\o)除2的余数不为0时,即字符串所有奇数,执行后面的语句。所以退出第1次for的循环体时,输出为397,执行第2次循环体。对字符串“2584”进行处理,输出结果为5,因而最后输出结果为3975。

  • 第14题:

    有以下程序 int f(int n) { if(n==1)return 1; else return f(n-1)+1;} main() { int i,j=0; for(i=1;i<3;i++)j+=f(i); printf("%d\n",j);} 程序运行后的输出结果是

    A.4

    B.3

    C.2

    D.1


    正确答案:B
    解析:在main函数中,对f(1)和f(2)的值进行了累加。f(1)=1f(2)=f(1)+1=2最后,j的值为1+2=3

  • 第15题:

    有以下程序:include main( ) char * p[ ] = {"3697" ,"2548" }; int i,j;long num =0

    有以下程序: #include <stdio.h> main( ) char * p[ ] = {"3697" ,"2548" }; int i,j; long num =0; for(i =0;i<2;i ++ ) { j =0; while(p[i][j]! ='\0') { if((p[i][j]-'0')%2) num=10*num+p[i][j]-'0'; j+ =2; } printf( "%d \n" ,num);}程序执行后的输出结果是( )。

    A.35

    B.37

    C.39

    D.3975


    正确答案:C
    解析:执行main函数中的for语句,当i=0,j=0时,p[i][j]=p[0)[0]='3',满足while循环条件,执行循环体中的if语句得num=3,j=2,此时p[i][j]=p[0][2]='9',满足循环条件,执行while循环体得num=39,j=4,判断while条件,不满足并退出while循环;再次执行for语句,当i=1,j=0,p[i][j]=p[1][0]=2,满足while条件,执行循环体中的if语句,但不符合if条件,所以num不进行运算,j进行加2运算j=2,此时p[i][j]=p[1][2]=4,if条件为假,num不进行运算,j进行加2运算j=4,再执行while语句,条件不符合退出循环。所以结果为39。

  • 第16题:

    有以下程序 main() { int p[8]={11,12,13,14,15,16,17,18}, i=0,j=0; while(i++<7) if(p[i]%2) j+=p[i]; prizltf("%d\n", j); } 程序运行后的输出结果是

    A.42

    B.45

    C.56

    D.60


    正确答案:B
    解析:本题考查的是while语句和if语句的综合应用。程序中while的循环条件是1++7,由于程序开始时将i初始化为0,而且循环体中没有改变变量i的语句,只有循环条件中i的自增,所以当i从0自增到6时循环的循环体一共被执行了7次,但是在循环体中,i的值为从1到7。在循环体中只有一条if语句,其条件表达式为p[i]%2,当p[i]为奇数时,p[i]除以2余1,条件表达式的值为“真”,所以整个循环语句所做的事就是:累计p[1]到p[7]之间的奇数到变量j中。所以最后j的值应该为13+15+17=45.选项B符合题意。

  • 第17题:

    以下程序的输出结果是______。 main() { char ch[2][5]={"6937","8254"},*p[2]; int i,j,s=0; for(i=0;i<2;i++)p[i]=ch[i]; for(i=0;i<2;i++) for(j=0;p[i][j]>'\0';j+=2) s=10*s+p[i][j]-'\0'; printf("%d\n",s); }

    A.69825

    B.59713

    C.6385

    D.693825


    正确答案:C
    解析:p是指向字符的指针数组。执行第1个循环后,p[0]指向字符数组ch的第1行"6937",p[1]指向字符数组ch的第2行"8254",那么p[0][0]其实就对应着ch[0][0],表示第1行的第1个元素“6”。第2个循环中,外层i循环是控制指针数组p的,内层j循环则是对每一行内的各个元素进行处理,特别注意循环变量j的改变"j+=2"。这样就可以看出是对ch[0][0]、ch[0][2]、ch[1][0]和ch[1][2]进行处理。

  • 第18题:

    有以下程序: main() { int p[8]={11,12,13,14,15,16,17,18},i=0,j=0; while(i++<7)if(p[i]%2)j+=P[i]; printf("%d\n",j); } 程序运行后的输出结果,是 ______。

    A.42

    B.45

    C.56

    D.60


    正确答案:B
    解析:本程序的作用是求除p[0]外的其他奇数的和。

  • 第19题:

    下列程序运行后,输出结果是______。main(){ char ch[2][5]={"693","825"),*p[2]; int i,j,s=0; for (i=0;i<2;i++) p[i]=ch[i]; for (i=0;i<2;i++) for (j=0;p[i][j]>='0' &&p[i][j]<='9';j+=2) s=10*s+p[i][j]-'0'; printf("%d\n",s);}

    A.6385

    B.22

    C.33

    D.693825


    正确答案:A

  • 第20题:

    以下程序运行后的输出结果是【】。include main(){int i=10,j=0;do{j=j+ i; i--;}while

    以下程序运行后的输出结果是【 】。

    include <iostream.h>

    main()

    {

    int i=10,j=0;

    do

    {

    j=j+ i; i--;

    }

    while(i>2);

    cout<<j;

    }


    正确答案:52
    52

  • 第21题:

    以下程序运行后,输出结果是______。 main() {char ch[2][5]={"693","825"},*p[2]; int i,j,s=0; for(i=0;i<2;i++)p[i]=ch[i]; for(i=0;i<2;i++) for(j=0;p[i][j]>='0'&&p[i][j]<='9';j+=2) s=10*s+p[i][j]-'0'; printf("%d\n",s); }

    A.6385

    B.22

    C.33

    D.693825


    正确答案:A

  • 第22题:

    有以下程序 int f(int n) { if (n==l) return 1; else return f(n-1)+1; } main () { int i,j=0; for(i=i;i<3;i++) j+=f(i); printf {"%d\n", j ); } 程序运行后的输出结果是

    A.4

    B.3

    C.2

    D.1


    正确答案:B
    解析:本题考查的知识点是递归函数.通过分析不难写出,f()函数的数学表达式为:f(n)=1n=1;f(n)=f(n-1)+1n不等于1;在主函数中for循环执行了两次函数调用f(i)。第一次:i为1,调用f(1)得到返回值1,并把它加到i中,i的值为1。第二次i为2,调用f(n),根据递归公式可知“f(2)=f(1)+1”,得到返回值2并把它加到i中,j的值为3。所以最后输出的j的值为3,所以4个选项中B正确。

  • 第23题:

    有以下程序: int f(int n) { if (n==1) return 1; else return f(n-1)+1; } main() { int i,j=0; for(i=i;i<3;i++) j+=f(i); printf("%d\n",j); } 程序运行后的输出结果是( )。

    A.4

    B.3

    C.2

    D.1


    正确答案:B
    解析:通过分析不难写出,f()函数的数学表达式为:
      f(n)=1  n=l;
      f(n)=f(-1)+1  n≠1;
      在主函数中for循环执行了两次函数调用f(i)。第一次:i为1,调用f(1)得到返回值1,并把它加到j中,j的值为1。第二次i为2,调用f(n),根据递归公式可知f(2)=f(1)+1,得到返回值2并把它加到j中,j的值为3。所以最后输出,i的值为3。