表达式0x13while(*(str+num)!=\0)num++;return(num);}main(){charstr[10],*p=str;gets(p);printf(“%d\n“,func(p));}如果从键盘上输入ABCDE回车,则输出结果为()A、8B、7C、6D、5

题目
表达式0x13while(*(str+num)!=\0)num++;return(num);}main(){charstr[10],*p=str;gets(p);printf(“%d\n“,func(p));}如果从键盘上输入ABCDE回车,则输出结果为()

A、8

B、7

C、6

D、5


相似考题
更多“表达式0x13while(*(str+num)!=\0)num++;return(num);}main(){charstr[10],*p=str;gets(p);printf(“%d\n“,func(p));}如果从键盘上输入ABCDE回车,则输出结果为() ”相关问题
  • 第1题:

    以下程序运行后,如果从键盘上输入ABCDEF<回车>,则输出结果为______。includeinclude

    以下程序运行后,如果从键盘上输入ABCDEF<回车>,则输出结果为______。 #include<stdio.h> #include<string.h> func(char str[]) { int num=0; while(*(str+num)!='\0') num++; return(num);p } main() { char str[10],*p=str; gets(p);printf("%d\n",func(P)); }

    A.8

    B.7

    C.6

    D.5


    正确答案:C
    解析:本题通过函数gets()从键盘接收一个字符串,并通过调用fune()函数,统计串中字符的个数。

  • 第2题:

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

    main

    {char str[][10]={"china","beijing"),*p=str;

    printf("%s\n",p+10);

    }

    A.China

    B.Beijing

    C.ng

    D.ing


    正确答案:B
    本题考查指针,由*p=str可知,指针P指向字符串数组的首地划。二维数组str为每个字符串分配的存储空间是10个字节,因此p+10指向str[1][0],输出的字符串就是数组中的第2个字符串。

  • 第3题:

    7、若能使程序运行后的输出结果如下: 201501 201502 201503 则空白处填写的表达式或语句应该是 #include <stdio.h> struct student { int age; char num[8]; }; int main() { struct student stu[3]={{20,"201501"},{21,"201502"},{19,"201503"}}; struct student *p=stu; ____________________ return 0; }

    A.printf("%s\n",(*p).num); printf("%s\n",(p)->num); printf("%s\n",stu[2].num);

    B.printf("%s\n",(p++).num); printf("%s\n",(p++).num); printf("%s\n",(p++).num);

    C.printf("%s\n",(p)->num); printf("%s\n",(p)->num); printf("%s\n",(*p).num);

    D.printf("%s\n",stu[0]->num); printf("%s\n",stu[1]->num); p


    2

  • 第4题:

    字符串str由数字字符‘0’和‘1’组成(长度不超过8个字符),可看作二进制数,请补充函数fun(),该函数的功能是:把str字符串转换成十进制数,结果由函数返回。例如,输入“1001”,结果输出:9。

    注意:部分源程序给出如下。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。

    试题程序:

    include<stdio.h>

    include<stdlib.h>

    include<string.h>

    int fun(char *str)

    {

    int n;

    char *p=str;

    【 】;

    p++;

    while (*p)

    {

    n=【 】;

    p++;

    }

    return【 】;

    }

    main()

    {

    char str[9];

    int i;

    int n;

    printf ("Enter a string made up of '0' and

    '1' digital character:");

    gets (str);

    if (strlen(str)>8)

    {

    printf ("Error:string too longer!

    please input again !\n\n");

    exit(0);

    }

    for(i=0;str[i];i++)

    if(str[i]<'0'||str[i]>'1')

    {

    printf("Error:%c not is '0'and

    '1' digital character !\n\n",

    str[i]);

    exit(0);

    }

    printf("The original string:");

    puts(str);

    n=fun(str);

    printf("\n%s is convered to decimal

    number:%d\n\n",str,n);

    }


    正确答案:n=*p-'0' n*2+*p'0' n
    n=*p-'0' n*2+*p'0' n 解析:第一空:'0'和'1'是字符串中的数字字符,为了进行数字运算,必须要将数字字符转换为数字,用数字字符减去字符'0'的ASCII码,就得到对应的数字。第二空:将二进制数转换为十进制数的算法是:以1001为例,对应的十进制数为1*23+0*22+0*2+1=2*(2*(2*1+0)+0)+1=9。明白了这一算法,此空就非常容易了。第三空:最后计算的结果存放在变量n中,所以函数的返回值为n。

  • 第5题:

    运行时从键盘上输入字符串Student,以下程序运行后的输出结果是() #include <stdio.h> int func(char s[]) { int i=0; for(;s[i]!='0';i++); return i; } main() { char str[50]; int num; gets(str); num=func(str); printf("%d",num); }


    0