更多“若有以下语句,则正确的描述是()。 char x[]="12345"; char y[]={'1','2','3','4','5'};”相关问题
  • 第1题:

    以下不正确的定义语句是

    A.double x[5]={2.0,4.0,6.0,8.0,10.0};

    B.int y[5.3]={0,1,3,5,7,9};

    C.char c1[]={′1′, ′2′, ′3′, ′4′, ′5′};

    D.char c2[]={′\x10′, ′\xa′, ′\x8′};


    正确答案:B

  • 第2题:

    以下不正确的定义语句是

    A.double x[5]={2.0,4.0,6.0,8.0,10.0};

    B.int y[5]={0,1,3,5,7,9};

    C.char c1[]={'1','2','3','4','5'};

    D.char c2[]={'\x10','\xa','\x8'};


    正确答案:B
    解析: 在一维数组中要注意的是作为下标表达式的常量表达式的值必须是大于等于0,选项B)中定义有5个元素,但赋值时有6个元素,所以是错误的。

  • 第3题:

    若有定义:char *x="abcdefghi";,以下选项中正确运用了strcpy函数的是______。

    A.char y[10]; strcpy(y,x[4]);

    B.char y[10]; strcpy(++y,&x[1]);

    C.char y[10],*s; strcpy(s=y+5,x);

    D.char y[10],*s; strcpy(s=y+1,x+1);


    正确答案:D
    解析:选项A中x[4]是取字符e,也就是将字符复制到y中,strcpy实现的是地址的复制所以选项A错误;选项B中++y是错误的,不允许对常量进行自加运算(y是—个确定的地址值),所以选项B错误;选项C指针变量s指向了y向后的第5位,则存放x时会出现越界问题,所以选项C错误;选项D中,指针变量s指向了y向后的第—位,此时s可存放数据的长度为9,而地址“x+1”起的字符串的地址长度也刚好为9(包括“\0”),所以开始复制不会出现地址越界问题,故选项D正确。

  • 第4题:

    若有以下类型说明语句: char w;int x;float y, z; 则表达式w*x+z-y的结果为______类型。

    A.float

    B.char

    C.int

    D.double


    正确答案:A
    解析:在进行运算时,不同类型的数据参加运算;需要先将其转换成同一类型的数据,然后再进行运算。转换的顺序由低到高为:char,shor→int→unsigned→long→double←float,故结果为float型。

  • 第5题:

    若有定义和语句: char*sl="12345",* s2="1234"; printf("%d\n",strlen(stren(sl,s2))); 则输出结果 ( )

    A.4

    B.5

    C.9

    D.10


    正确答案:A

  • 第6题:

    若有以下定义和语句: char*s1="12345",*s2="1234"; printf("%d\n",strlen(strcpy(s1,s2)));则输出结果是______。

    A.4

    B.5

    C.9

    D.10


    正确答案:A
    解析:函数strcpy(s1,s2)的返回结果是指针s1的新值"1234",因此求串长函数的结果为4。

  • 第7题:

    以下不正确的定义语句是( )。

    A.double x[5]={2.0,4.0,6.0,8.0,10.0};

    B.int y[5.3]={0,1,3,5,7,9};

    C.charc\[]={'1','2','3','4','5'};

    D.char c2[]={'\x10','\xa','\x8'};


    正确答案:B
    解析:在一维数组中要注意的是下标常量表达式的值必须是大于等于零,并且小于自身元素的个数,选项B)的下标不是整数,所以错误。

  • 第8题:

    下列对字符数组进行初始化的语句中,______ 是正确的。

    A.char s 1[]=“abcd”;

    B.char s2[3]=”xyz”;

    C.char s 3[][3]={‘a’,‘x’,‘y’}

    D.char s3[][3]={“xyz”,“mnp”};


    正确答案:A
    解析:BCD选项都不合字符数组的定义。

  • 第9题:

    若有以下变量和函数说明:includecharCh='*';void sub(int x,int y,char ch,double*

    若有以下变量和函数说明: #include<iostream.h> charCh='*'; void sub(int x,int y,char ch,double*Z) { switch(ch) { case'+':*Z=x+y;break; case'-':*Z=x-y;break: case'*':*Z=x*y;break; case'/':*z=x/y;break: } } 以下合法的函数调用语句是( )。

    A.sub(10,20,Ch,y);

    B.sub(1.2+3,2*2,'+',&Z);

    C.sub(sub(1,2,'+',&y),sub(3,4'+',&x),'-',&y);

    D.sub(a,b,&x,ch);


    正确答案:B

  • 第10题:

    设有以下语句char x=3,y=6,z;z=x^y<<2;则z的二进制值是A.00010100 B.00011011 C.00011100 D.00011000


    正确答案:B
    本题主要考查位运算。“按位异或”运算(^)是双目运算符,其功能是把参与运算的两数各对应的二进制位相异或,它在操作时,两对应位相同结果为0,不同则为1。“左移”运算(<<)的功能是把“<<”左边的运算数的各二进制位全部左移若干位,由“<<”右边的数指定移动的位数,高位丢弃,低位补0。左移时,若左端移出的部分不包含有效二进制数1,则每左移一位,相当于移位对象乘以2。
    本题中,有三个字符型的变量x,y,z,其中x和y的值分别为3和6。先转换为二进制数分别为00000011和00000110。本题中需要注意的是逻辑左移运算符的优先级比按位异或运算符的优先级高,因此,先将y进行运算逻辑左移2位操作,得到的结果为00011000,然后进行按位异或运算,得到最后的结果是00011011。本题正确的答案选B。

  • 第11题:

    若有以下的说明语句,则与它等价的说明是char s[3][5]={"aaaa","bbbb","cccc"};

    A.char**s1={"aaaa","bbbb","cccc"};

    B.char*s2[3]={"aaaa","bbbb","cccc"};

    C.char s3[][5]={"aaaa","bbbb","cccc"};

    D.char s4[][4]={"aaaa","bbbb","cccc"};


    正确答案:C
    解析:本题中的s数组是一个二维字符数组,选项A)是一个双重指针,但字符串的长度没有限制;选项B)是一个元素为字符指针的数组,同样的也是字符串的长度没有限制;选项D)中,每个字符串的长度限制为4,不正确。注意:用字符数组作为字符串和用指针指向的一个字符串之间的区别。

  • 第12题:

    数组char x[]="12345";和char y[]={’1’,’2’,’3’,’4’,’5’};长度相同。


    正确答案:错误

  • 第13题:

    设有以下语句:

    char x=3,y=6,z;

    z=x^y<<2;

    则z的二进制值是

    A.00010100

    B.00011011

    C.00011100

    D.00011000


    正确答案:B

  • 第14题:

    设有以下语句 char x=3,y=6,Z; z=x^y<<2; 则z的二进制值是

    A.00010100

    B.00011011

    C.00011100

    D.00011000


    正确答案:B
    解析: 本题考查两个位运算符。
    按位异或运算符“^’是双目运算符,其功能是参与运算的两数各对应的二进位相异或,当两对应的二进位相异或时,结果为1。
    左移运算符“”是双目运算符,其功能是把“”左边的运算数的各二进位全部左移若于位,由“”右边的数指定移动的位数,高位丢弃,低位补0,并且“”运算符的优先级高于“^’。

  • 第15题:

    若有以下定义和语句 union date { int i; char c; fioat f;} x; int y; 则以下语句正确的是______。

    A.x=10.5;

    B.x.c=101;

    C.y=x;

    D.printf("%d\n",x);


    正确答案:B
    解析:本题定义了共用体变量x及整型变量y,需要说明的是共用体变量不能直接引用,而只能用共用体变量中的成员,故选项A、C、D均错误。

  • 第16题:

    若有以下语句,则正确的描述是

    char a[]="toyou";

    char b[]={′t′,′o′,′y′,′o′,′u′};

    A.a数组和b数组的长度相同

    B.a数组长度小于b数组长度

    C.a数组长度大于b数组长度

    D.a数组等价于b数组


    正确答案:C

  • 第17题:

    下列对字符数组进行初始化中,( )是正确的。

    A.char s1[]="abcd";

    B.char s2[3]="xyz";

    C.char s3[][]={'a','x', 'y');

    D.char s4 [2][3]={"xyz", "rnnp"};


    正确答案:A

  • 第18题:

    若有

    char x=32,y=3

    则表达试~x&y的值为【 】。


    正确答案:3
    3

  • 第19题:

    以下不正确的定义语句是

    A.double x[5]={2.0,4.0,6.0,8.0,10.0};

    B.int y[5]={0,1,3,5,7,9};

    C.char cl[]={'1','2','3','4','5'};

    D.char c2[]={'\x10','\xa','\x8'};


    正确答案:B
    解析:在一维数组中要注意的是作为下标表达式的常量表达式的值必须是大于等于0,选项B)中定义有5个元素,但赋初值时有6个元素,所以是错误的。

  • 第20题:

    设有以下语句: char X=3,y=6,z; z=XY<<2; 则2的二进制值是

    A.10100

    B.O0011011

    C.11100

    D.11000


    正确答案:B
    解析:本题考查两个位运算符。按位异或运算符“^”是双目运算符。其功能是参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。左移运算符“”是双目运算符。其功能把“”左边的运算数的各二进位全部左移若干位,由“”右边的数指定移动的位数,高位丢弃,低位补0。并且“”运算符的优先级高干“^”。

  • 第21题:

    若有char s[3][3]=={"AAA","BBB","CCC"};说明语句,则与它等价的语句是( )。

    A.char**s={"AAA","BBB","CCC"};

    B.char*s[3]={"AAA","BBB","CCC"};

    C.char s[][5]={"AAA","BBB","CCC"};

    D.char s[][3]={"AAA","BBB","CCC"};


    正确答案:D

  • 第22题:

    若有以下定义语句: char * sl="12345", * s2="1234"; printf("%d"n",strlen(strcpy(s1,s2))); 则输出结果是 ( )

    A.4

    B.5

    C.9

    D.10


    正确答案:A

  • 第23题:

    以下不正确的定义浯句是

    A.double x[5]={2.0,4.0,6.0,8.0,10.0};

    B.int y[5]={0,1,3,5,7,9};

    C.char c1[]={‘1’,’2’,’3’,’4’,’5’};

    D.char c2[]={‘\x10’,’\xa’,’\x8’};


    正确答案:B
    解析:在一维数组中要注意的是作为下标表达式的常量表达式的值必须是大于等于0,并且小于自身,本题中选项B)的下标表达式的值超过了自身。

  • 第24题:

    以下不正确的定义语句是()。

    • A、double x[5]={2.0,4.0,6.0,8.0,10.0};
    • B、int y[5]={0,1,3,5,7,9};
    • C、char c1[]={‘1’,’2’,’3’,’4’,’5’};
    • D、char c2[]={‘x10’,’xa’,’x8’};

    正确答案:B