更多“设有char*a=”ABCD”;,则printf(“%s”,a)的输出是(),而printf(“%c”,*a)的输出是()。”相关问题
  • 第1题:

    下面程序的输出是______。 char s[]="ABCD"; main() { char *p; for(p=s;p<s+4;p++) printf("%s\n",p); }

    A.ABCD BCD CD D

    B.A B C D

    C.D C B A

    D.ABCD ABC AB A


    正确答案:A
    解析:在第—次执行for循环时,字符数组的首地址赋给了指针变量p,使得指针变量p指向了s的首地址,输出p所指向的字符串;第二次执行for循环时,p值增加1,p指向了s的第二个元素输出BCD:第三次输出CD:第四次输出D;直到p指向字符串的结束字符“\0”,for循环终止执行。

  • 第2题:

    以下程序的输出结果是main(){ char s[]="abcdef"; s[3]=’\0’; printf("%s\n",s);}


    正确答案:abc
    printf函数输出字符串时,当遇到第一个“\0”时,就把它当做字符串的结束标志,它只输出“\0”前面的字符,所以程序输出结果为abc。

  • 第3题:

    下面程序的输出结果是 ( ) char b[]="ABCD"; main() { char * chp; for ( chp=b; * chp;chp + =2 )printf("%s",chp); print{("\n"); }

    A.ABABCD

    B.ABCDAB

    C.ABCDD

    D.ABCDCD


    正确答案:D

  • 第4题:

    以下程序的输出结果为main(){ char *alpha[6]={"ABCD","EFGH","IJKL","MNOP","QRST","UVWX"}; char **p; int i; p=alpha; for(i=0;i<4;i++) printf("%s",p[i]); printf("\n");} A.ABCDEFGHIJKL B.ABCDC.ABCDEFGHIJKLMNOP D.AEIM


    正确答案:C
    指针数组*alpha[6]实际上相当于一个二维数组,而p是一个指向指针的指针,p=alpha后,引用p[x]便是引用数组*alpha[6]中的第x个数组元素的首地址,所以打印的结果应当为ABCDEFGHIJKLMNOP。

  • 第5题:

    关于C++ 输出函数cout 与 printf 的区别

    我知道在C++中cout  和printf  都能用于输出,但是他俩肯定在输出的方式、细节上有差别的。

    我想问 指针,char* p=“abcd”   按我的理解p就是存储地址的变量,输出p就应该是输出存储“abcd”的空间首地址。

    用printf则输出的是存储“abcd”的空间首地址(这和我预想的一样),用cout输出p则整个字符数组都输出了,这是为什么?他们两个的输出方式到底有什么差别。以至于输出同一个变量会得到不同的结果?

    比如:

       #include<iostream>

    #include<stdio.h>

    using namespace std;

    int main () {

    char* p="abcd";

    cout<<p<<"                "<<*p;//这里p输出的是abcd完整的字符串,而*p则输出的是第一个字符a。

    printf("%x                    %c",p,*p);//这里p则输出的是存储“abcd”的空间首地址,*p则输出第一个字符a。

    return 0;

    }


     

     

    您说的这个跟cout,printf没关系

     

    输出不同是因你printf的格式不对

    应该为printf("%s                   %c",p,*p)

    cout<<p默认帮你进行了格式化,即是%s“”

     

     

  • 第6题:

    若有以下定义和语句,则输出结果是(口代表空格)______。char s[10]; s="abcd"; printf("%s\n",s);

    A.输出abcd

    B.输出a

    C.输出abcd口口口口口

    D.编译不通过


    正确答案:D

  • 第7题:

    设有如下程序: char sub(char * q) {while(* q,='\0') {if(*q>='A'&&*q<='Z')*q=* q+32; else if(*q>='a' &&*q<='z')*q=*q-32; printf("%c",*q); q++;} } main() {char *s="abcABC"; sub(s); } 则程序运行后的输出结果是( )

    A.ABCabc

    B.abcABC

    C.abcabc

    D.ABCABC


    正确答案:A

  • 第8题:

    设有如下函数定义,则输出结果为_______。 char*fun(char*str) { char*p=str; while(*p) {if(*p>'d')continue; p++; } return p; } main() { printf("%s\n",fun("welcome!")); }

    A.welcome

    B.come!

    C.w

    D.程序进入死循环


    正确答案:D
    解析:continue语句的作用是用于结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定。由于'w'>'d',执行continue语句,结束本次循环(即跳过p++;语句),还是继续比较'w'>'d',程序进入死循环。

  • 第9题:

    下面程序输出的结果是()。includemain(){char *a="1234";fun(a);printf("\n");}fun(cha

    下面程序输出的结果是( )。 #include<stdio.h> main() { char *a="1234"; fun(a); printf("\n"); } fun(char *s) { char t; if(*s) { t=*S++;fun(s);} else return; if(t!='\0') putchar(t); }

    A.1234

    B.4321

    C.1324

    D.4231


    正确答案:B
    解析:本题的fun()函数是用递归法实现逆序输出一个字符串。函数中首先定义一个局部变量t,然后s所指的内容是否为字符串结束符,不是的话将s所指的内容赋给t,同时使s后移一位,然后递归调用fun(s)。到这条语句为止是递归过程,即接下来连续递归调用fun(s)都只会执行到这一半,直到回朔条件(s所指内容是字符串结束符)出现,fun()函数连续返回,判断t不等于0的话,就输出t,所以输入的字符串被逆序输出,故本题的正确答案应该是B。

  • 第10题:

    若有以下定义语句:chars[10],s="abcd”;printf(“%s/n”,s);则运行结果是()

    • A、输出abcd
    • B、输出a
    • C、输出acbd
    • D、编译不通过

    正确答案:D

  • 第11题:

    单选题
    若有以下定义和语句:char s1[10]=abcd!, *s2=n123\\;printf(%d%d, strlen(s1), strlen(s2));则输出结果是(  )。
    A

    55

    B

    105

    C

    107

    D

    58


    正确答案: C
    解析:
    strlen函数是计算字符串长度的函数,求字符串的实际字符个数,不包括字符'\0'在内,在字符'\0'之后的所有字符均不计入长度中。所以strlen(s1)=5。而以"\"开头的字符序列是转义字符,"\\"的含义是一个字符'\',所以s2所指向的内容实际上是"n123\",所以strlen(s2)=5。答案选择A选项。

  • 第12题:

    单选题
    有以下程序:#include main(){  char *s[6]={ABCD,EFGH,IJKL,MNOP,QRST,UVWX},**p; int i; p=s;  for(i=0;i<4;i++)printf(%s,p[i]); printf();}程序运行后的输出结果是(  )。
    A

    ABCDEFGHIJKLMNOP

    B

    ABCDEFGHHKL

    C

    ABCD

    D

    AEIM


    正确答案: D
    解析:
    程序定义数组指针s以及指针的指针p,p指向数组指针s。p[i]为s的第i行字符串,因此程序输出s的前四行字符串。答案选择A选项。

  • 第13题:

    有以下程序: include main( ) {char s[ ] ="159" , * p;p=s;printf( "% c", * p + +

    有以下程序: #include <stdio.h> main( ) { char s[ ] ="159" , * p; p=s; printf( "% c", * p + + ); printf("%~", * p++);}程序运行后的输出结果是( )。

    A.15

    B.16

    C.12

    D.59


    正确答案:A
    解析:语句p=s将指针变量p指向字符数组s,第一次输出时,由于++和*为同一优先级,而结合方向为自右向左,所以,*p++相于*(p++)。但又因为“++”在p的右侧,所以,先输出*p,得到s[0]的值,然后P++,P指向s[1],故第二次输出时,输出s[1]的值,所以输出结果为15。

  • 第14题:

    以下程序运行后的输出结果是( )。 include main() {char ch[]="abcd",x[4][4];int i; f

    以下程序运行后的输出结果是( )。 include<string.h> main() {char ch[]="abcd",x[4][4];int i; for(i=0;i<4;i++)strcpy(x[i],ch); for(i=0;i<4;i++)printf("%s",&x[i][i]); printf("\n"); }


    正确答案:abcdabcdabcdabcdbcdabcdabcdcdabcdd
    abcdabcdabcdabcdbcdabcdabcdcdabcdd

  • 第15题:

    以下程序:includeincludemain(){char str[]="abcd\n\123\xab";printf("%d"

    以下程序: #include<stdio.h> #include<string.h> main() {char str[]="abcd\n\123\xab"; printf("%d",(str)); } 运行后的输出结果是( )。

    A.10

    B.9

    C.7

    D.14


    正确答案:C

  • 第16题:

    若有定义和语句 ( ) char s[10];s="abcd";printf("%s\n",s); 则结果是(以下μ代表空格)

    A.输出abcd

    B.输出a

    C.abcdμμμμμ

    D.编译不通过


    正确答案:D

  • 第17题:

    有以下程序(说明:字母A的ASCII码值是65)

    #include

    void fun(char *s)

    { while(*s)

    { if(*s%2) printf("%c",*s);

    s++;

    }

    }

    main()

    { char a[]="BYTE";

    fun(a); printf("\n");

    }

    程序运行后的输出结果是

    A.BY

    B.BT

    C.YT

    D.Y


    正确答案:D

  • 第18题:

    下面程序的输出结果是( )。 char s()="ABCD",*p; main() { for(p=s;p<s+4;p++)printf("%s\n",p); )

    A.ABCD BCD CD D

    B.A B C D

    C.D C B A

    D.ABCD ABC AB A


    正确答案:A
    解析:p为指针型变量。第一次循环,p=s,p的值为字符数组s的首地址,输出字符串"ABCD"。p++,第二次循环,p的值为字符数组s的首地址加1,输出字符串"BCD"。p++,第三次循环,p的值为字符数组s的首地址加2,输出字符串"CD"。p++,第4次循环,p的值为字符数组s的首地址加3,输出字符串'D"。

  • 第19题:

    设已执行预编译命令include,以下程序段的输出结果是()。char s[]="an apple";printf("

    设已执行预编译命令#include<string.h>,以下程序段的输出结果是( )。 char s[]=" an apple" ; printf(" %d\n" ,strlen(s));

    A.7

    B.8

    C.9

    D.10


    正确答案:B
    解析:如果一个字符数组中存放一个字符串,则函数strlen的值为“\0”之前的全部字符个数,也包括空格在内。注意:字符串处理函数的使用。

  • 第20题:

    设有定义:"char s[12]={"string"};" 则printf("%d\n",strlen(s));的输出是( )

    A.6

    B.7

    C.11

    D.12


    正确答案:A
    在C语言中,字符串是指在有效字符之后有字符率结束标记符的字符列,并约定字符串的长度是指字符率中有效字符个数,不包括字符串的结束标记符。存放于字符数组s中的字符串是“string”,该字符串的长度为6,所以输出该字符串的长度应是6。正确的解答是A。

  • 第21题:

    设char*p=“abcde”,则printf(“%s”,p)的输出结果为( )。

    A.c

    B.cde

    C.b

    D.abcde


    正确答案:D

  • 第22题:

    若有定义和语句: char s[10]:s=""abcd"";printf(""%s/n"",s); 则结果是(以下u代表空格)()

    • A、输出abcd
    • B、输出a
    • C、输出abcduuuuu
    • D、编译不通过

    正确答案:D

  • 第23题:

    单选题
    若有定义和语句: char s[10]:s=""abcd"";printf(""%s/n"",s); 则结果是(以下u代表空格)()
    A

    输出abcd

    B

    输出a

    C

    输出abcduuuuu

    D

    编译不通过


    正确答案: D
    解析: 暂无解析