niusouti.com

有以下程序: #include<stdio.h> main( ) { char*s="[2]34";int k=0,a=0; whil(s[k+1]!=\0) { k++; if(k%2=o){a=a+(s[k]-0+1);continue; } a=a+(s[k]-0); printf("k=%d a=%d\n",k,a); } 程序运行后的输出结果是( )。A.k=6 a=11B.k=3 a=14C.k=4 a=12D.k=5 a=15

题目

有以下程序: #include<stdio.h> main( ) { char*s="[2]34";int k=0,a=0; whil(s[k+1]!=\0) { k++; if(k%2=o){a=a+(s[k]-0+1);continue; } a=a+(s[k]-0); printf("k=%d a=%d\n",k,a); } 程序运行后的输出结果是( )。

A.k=6 a=11

B.k=3 a=14

C.k=4 a=12

D.k=5 a=15


相似考题
参考答案和解析
正确答案:C
输出结果:k=1a=2k=2a=4k=3a=7k=4a=12
更多“有以下程序: #include&lt;stdio.h&gt; main( ) { char*s="[2]34";int k=0,a=0; whil(s[k+1]! ”相关问题
  • 第1题:

    有以下程序 include int fun(int (*s)[4],int n,int k) {int m,i;

    有以下程序 #include <stdio.h> int fun(int (*s)[4],int n,int k) {int m,i; m=s[0][kl; for(i=1;i<n;i++) if(s[i][k]>m) m=s[i][k]; return m; } main() { int a[4][4]={{1,2,3,4},{11,12,13,14}, {21,22,23,24}, {31,32,33,34}}; printf("%d\n",fun(a,4,0)); } 程序的运行结果是______。

    A.4

    B.34

    C.31

    D.32


    正确答案:C
    解析:在主函数中,定义并初始化了4行4列的二维数组a,并通过调用fun函数,将fun函数中指向一维数组的指针变量s指向了二维数组a的首地址,使得指针变量s与数组a共用同一存储单元。在fun函数中,通过for循环,求得了数组a第0列中最大的值,并赋给m返回主函数。由于数组a第0列的值分别为1、11、21、31,故其最大值是31。

  • 第2题:

    下列程序的输出结果是______。main(){ char *s="121"; int k=0,a=0,b=0; do { k++; if(k%2==0) {a=a+s[k]-'0';continue;} b=b+s[k]-'0';a=a+s[k]-'0'; }while (s[k+1]); printf("k=%d a=%d b=%d\n",k,a,b);}

    A.k=3 a=2 b=3

    B.k=3 a=3 b=2

    C.k=2 a=3 b=2

    D.k=2 a=2 b=3


    正确答案:C

  • 第3题:

    下面程序的运行结果是()。includevoid delch(char *s){ int i,j;char*a;a=s;for(i=0,j=

    下面程序的运行结果是( )。 #include<stdio.h> void delch(char *s) { int i,j; char*a; a=s; for(i=0,j=0;a[i]!='\0' ;i++) if(a[i]>='0' &&a[i]<='9') { s[j]=a[i]; j++;} s[j]='\0'; } main() { char*item="a34bc"; delch(item); printf("\n%s" ,item);}

    A.abc

    B.34

    C.a34

    D.a34bc


    正确答案:B
    解析:指针a通过数组元素下标来从头逐个的引用字符串item中的字符,判断不是0~9之间的数字时,就去掉这个字符,所以程序结束后,字符串item中就只剩下34两个字符了。注意:形参为指针变量时,实参和形参之间的数据传递。

  • 第4题:

    以下程序的输出结果是______。 main() { char*s="121"; int k=0,a=0,b=0; do {k++; if(k%2==0){a=a+s[k]-'\0';continue;} b=b+s[k]-'\0';a=a+s[k]-'\0'; }while(s[k+1]); printf("k=%d a=%d b=%d\n",k,a,b); }

    A.k=3 a=98 b=49

    B.k=3 a=99 b=50

    C.k=2 a=99 b=50

    D.k=2 a=98 b=49


    正确答案:C
    解析:第1次循环中,k=1,不执行if分支,s[k]=‘2’,因此b=2,a=2因s[k+1]=‘1’进入第2次循环,k=2,执行if分支,s[k]=‘1’,使a=3,进而提前结束本次循环,s[k+1]=‘\0’,则退出循环,所以k=2,a=3,b=2。

  • 第5题:

    下面程序的运行结果是

    #include<stdio.h>

    void delch(char *s)

    { int i,j;

    char *a;

    a=s;

    for(i=0,j=0;a[i]!=′\n′;i++)

    if(a[i]>=′0′ &&a[i]<=′9′)

    {s[j]=a[i]; j++;}

    s[j]=′\0′;}

    main()

    { char *item="a34bc";

    delch(item);

    printf("\n%s",item);}

    A.abc

    B.34

    C.a34

    D.a34bc


    正确答案:B
    解析:考查用指针引用字符串元素的方法。指针a通过数组元素下标来从头逐个地引用字符串item中的字符,判断不是0~ 9之间的数字时,就去掉这个字符,所以程序结束后,字符串item中就只剩下和两个字符了。