更多“以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是______。A.char s[10]="abcdefg";B.char t[]="abcdefg", * s=t;C.char s[10]; s="abcdefg";D.char s[10]; strcpy(s, "abcdefg");”相关问题
  • 第1题:

    以下语句或语句组中,能正确进行字符串赋值的是( )。

    A.char*sp;*sp="right!";

    B.char s[10];s="right!";

    C.char s[10];*s="right!";

    D.char*sp="right!";


    正确答案:D
    解析:本题的考点是C语言的数组和指针。C的数组名是一个特殊类型的指针,固定指向数组第一个元素的位置,运行过程中不能再改变其指向。因此选项B、C都是错误的。指针可以指向任何单元,但选项A是错误的,因为赋值语句“*sp=”right!”;”是错误的,正确写法是“sp=”right!”;”。而对于选项D,由于“char*sp="right!";”是定义指针同时赋初值,因此是正确的。

  • 第2题:

    有以下程序:includeincludeincludevoid f(char*s,char*t){char k;k=*s; *

    有以下程序: #include<stdio.h> #include<string.h> #include void f(char*s,char*t) { char k; k=*s; *s=*t; *t=k; s++;t--; if(*s)f(s,t): } main() {char str[10]="abcdefg",*P; P=str+strlen(str)/2+1: f(p,p-2); printf("%s\n",str); } 程序运行后的输出结果是( )。

    A.abcdefg

    B.gfedcba

    C.gbcdefa

    D.abedcfg


    正确答案:B

  • 第3题:

    以下选项中,不能确定赋值的是______。

    A.char s1[10];s1="chest";

    B.char s2[]={'C','t','e','s','t'};

    C.char s3[20]="Chest";

    D.char *s4="Ctest\n"


    正确答案:A
    解析:C语言中不能将字符串常量直接赋给数组。但在赋初值时可以。

  • 第4题:

    有以下程序:includevoid f(char*s,char*t){ char k;k=*s;*s=*t;*t=k;s++;t--;if(*s)f

    有以下程序: #include<string.h> void f(char*s,char*t) { char k; k=*s; *s=*t; *t=k; s++; t--; if(*s) f(s,t); } main( ) {char str[10]="abcdefg",*p; p=str+strlen(str)/2+1; f(p,p-2); printf(~%s\n",str); } 程序运行后的输出结果是 ______。

    A.abcdef

    B.gfedcba

    C.gbcdefa

    D.abedcfg


    正确答案:B
    解析:p=str+strlen(str)/2+1=str+4,f(p,p-2)的功能是将p[4]与p[2]互换,p[5]与p[1]互换,p[6]与p[0]互换,最后的结果为gfedcba。

  • 第5题:

    从字符串S("abcdefg")中返回子串B("cd")的正确表达式为______。

    A.Mid(S,3,2)

    B.Right(Left(S,4),2)

    C.t,eft(mght(S,5),2)

    D.以上都可以


    正确答案:D

  • 第6题:

    以下选项中,不能正确赋值的是 ( )

    A.char sl [10];sl="Ctest";

    B.char s2 []={'C','t','e','s','t',}

    C.char s3[20]="Ctest";

    D.char * s[4]="Ctest\n";


    正确答案:A

  • 第7题:

    以下语句或语句组中能正确进行字符串赋值的是( )。

    A.ehar以*sp; * sp = "right!";

    B.char s[10] ;s = "right!";

    C.char s [10]; * s = "right !";

    D.char * sp = "right !";


    正确答案:D
    解析:选项A)应将*sp="right!";中的*叩改为sP,即把字符串"right!”的首地址赋给指针变量sp;选项B)中的s代表数组的首地址,不能给它赋字符串,只能在定义数组时,对其进行初始化;选项C)中的。s指的是数组的第一个元素,不能给它赋字符串。

  • 第8题:

    执行下列语句后,输出结果是______。

    s$="ABCDEFG"

    Print lnStr(s$,"efg")

    Print LCase$(s$)


    正确答案:0CR>abcdefg
    0CR>abcdefg 解析: 本题考查了字符串函数的应用。lnStr函数是字符串匹配函数,它的格式为:InStr([首字符位置,]字符串1,字符串2[,n])。它的功能是在字符串1中查找字符串2,如果找到了,则返回字符串2的第一个字符在字符串1中的位置。注意:字符串的第一个字符的位置为1。

  • 第9题:

    以下程序段十,不能正确赋字符串(编译时系统会提示错误)的是( )。

    A.chars[10]="abedefg";

    B.char t[]="abcdefS",*s=t;

    C.chars[10];s="abcdefg";

    D.chars[10];strcpy(s,"abcdefg");


    正确答案:C
    解析:选项A中定义了一个字符型数组并赋初值,故选项A正确;选项B定义了一个字符型数组t并初始化,然后定义了一个指针变量s并让它指向t,故选项B正确;选项C先定义了一个长度为10的字符型数组,然后在给它赋值,这时应该分别给数组中的每个元素赋值,故选项c不正确:选项D中先定义了一个长度为10的字符型数组s,然后通过字符串拷贝函数将字符串“abcdefs”赋值给它,选项D正确。所以,4个选项中选项C符合题意。

  • 第10题:

    以下选项中正确的语句组是( )。

    A.char s[]; s="HELLO!";

    B.char *s; s={"HELLO!"};

    C.char s[10]; s="HELLO!";

    D.char *s; s="HELLO!";


    正确答案:D

  • 第11题:

    下列能正确进行字符串赋值的是( )。

    A.char s[5]={"ABCDE"};

    B.char s[5]={A,B,C,D,E}; 、

    C.char*S;S="ABCDE";

    D.char*s;printf("%《",s);


    正确答案:C
    选项A、B的空间不够;字符串存储要有结束符\0,且要占用一个空间,printf用来输出字符,不能输入字符串。

  • 第12题:

    下列选项中正确的语句是

    A.char s[8]; s={"Beijing"};

    B.char*s; s ={"Beijing"};

    C.char s[8]; s="Beijing";

    D.char *s; s ="Beijing";


    正确答案:D
    解析:本题考核的知识点是字符欺组初始化及字符型指针的应用。字符数组初始化可以有两种方式:方式一,按单个字符的方式赋初值。方式二,把一个字符串作为初值赋给字符数组。比如:charch[5]=rabc”),选项A属于这种情况,但是选项A定义的字符数组长度为8,由于最后还要加一个“\0”做结束标志,所以赋给他的字符串长度应小于等于7,所以选项A不正确;在给字符数组赋初值的时候,应该用花括号“{”和“}”将字符串括起来,故选项C不正确。将字符型指针变量指向字符串也有两种方法,一是在定义指针变量时就给其赋初值,比如:char*p="student";二是给指针变量赋值,比如:p="student";(p已经被定义为字符型指针变量;),故选项D正确,而选项C中的花括号是多余的,应该去掉,所以,4个选项中选项D符合题意。

  • 第13题:

    下列能正确进行字符串赋值的是( )。

    A.char s[5]={"ABCDE"};

    B.char s[5]={'A','B','C','D','E'};

    C.char*s;s="ABCDE";

    D.char*s;printf("%s",s);


    正确答案:C
    解析:字符串存储要有结束符“\0”且要占用一个空间,选项A)、B的空间不够;primf用来输出字符,不能输入字符串。

  • 第14题:

    有以下程序:includevoid f(char *s, char *t){ char k;k=*s;*s=*t; *t=k;s++;t- -;

    有以下程序:#include <string .h>void f(char *s, char *t){ char k; k=*s; *s=*t; *t=k; s++; t- -; if(*s) f(s, t);}main(){ char str[10]="abcdefg",*p; p=str+strlen(str)/2+ 1; f(p,p-2); printf("%s\n", str);}程序运行后的输出结果是( )。

    A.abcdcfg

    B.gfedcba

    C.gbcdefa

    D.abedcfg


    正确答案:B
    解析:本题定义的函数f()是一个递归函数。它先交换两个字符指针所指的内容,然后将第1个指针往后移动—位,第2个指针往前移动一位,如果第1个指针所指内容不是字符串结束标志,则递归调用自身。主函数中首先定义了—个字符数组sir[10]=“ahcdeft”然后定义了一个字符指针p=str+strlen(str)/2+1,即让p指向str+4(或&str[4])的位置。然后调用f(p,p-2);,这使得p所指的str[4]及其以后的2个位置str[5]、str[6]中的内容同p-2所指的str[p]及其以前的2个位置str[1]、str[0]中的内容互相交换。即让整个字符串逆序。所以本题应该选择B。

  • 第15题:

    有以下等程序include void f(char *s, char *t){ chark; k=*s; *s=*t; *t=k; s++;t-

    有以下等程序#include <string. h>void f(char *s, char *t){ char k; k=*s; *s=*t; *t=k; s++; t--; if(*s) f(s, t);}main (){ char stt[10] ="abcdefg", *p; p=str+strlen (str)/2+1; f (p,p-2); print f ( "%s\n", str);}

    A.abcdefg

    B.gfedcba

    C.gbcdefa

    D.abedcfg


    正确答案:B
    解析:本题考查的是递归函数。在一个函数中直接或间接地调用了自身,则称此函数为递归函数。本题定义的函数f()就是一个递归函数。它先交换两个字符指针所指的内容,然后将第1个指针往后移动一位,第2个指针往前移动一位,如果第1个指针所指内容不是字符串结束标志,则递归调用自身。主函数中首先定义了一个字符数组sTR[10]="abcdefg",然后定义了一个字符指针p=str+strlen(str)/2+1,即让p指向str+4(或&str[4])的位置.然后调用f(p,p-2);,这使得p所指的str[4]及其以后的2个位置str[5]、str[6]中的内容同p-2所指的3tr[2]及其以前的2个位置str[1]、str[0]中的内容互相交换。即让整个字符串逆序。所以本题应该选择B。

  • 第16题:

    下面各语句中,能正确进行赋字符串操作的语句是

    A.char s[5]= { "ABCDE" };

    B.char s[5]= { 'A' ,' B' ,' C' ,' D' ,' E' };

    C.char *s; s = "ABCBE";

    D.char *s; scanf("%s", s);


    正确答案:C

  • 第17题:

    下面能正确进行字符串赋值操作的是

    A.char s[5]={"ABCDE"};

    B.char s[5]={'A','B','C','D','E'};

    C.char*s;s="ABCDE";

    D.char*s;char a;scanf("%s",&s);


    正确答案:C
    解析:如果一个字符数组用来存储字符串,那么在定义该字符数组时,数组的大小应该比它将要实际存放的字符串长度大1,所以选项A)和B)错。选项D)e本身就是一个字符指针,不需再取地址。

  • 第18题:

    有以下程序: include void f(char *s,char *t) {char k; k=*s; +s=*t;

    有以下程序: #include<string.h> void f(char *s,char *t) {char k; k=*s; +s=*t; *t=k; S++; t--; if(*s) f(s,t); } main() {char.str[10]="abcdefg",*p; p=str+strlen(str) /2+1; f(p,p-2); printf("%s\n",str); } 程序运行后的输出结果是 ______。

    A.abcdefg

    B.gfedcba

    C.gbcdefa

    D.abedcfg


    正确答案:B
    解析:本程序的作是将字符串str倒序。语句“p=str+strlen(str)/2+1;”用于将指针变量p指向e字符所在的存储单元,p-2指向了c字符所在的存储单元,在函数f中将这两个存储单元的内容交换,并使得f函数中指向c字符的指针变量s加1。指向c字符的指针变量t减1,然后继续将s和t指向的存储单元的内容进行交换,直到s指向的存储单元的内容为空为止。所以本题程序输出的结果是字符串“abcdefg”的倒序形式“gfedcba”。

  • 第19题:

    下列各个选项中对字符数组赋字符串的语句中,错误的是( )。

    A.char s[10];s="program";

    B.char s[]="program";

    C.char s[10]="program";

    D.char s[10]; strcpy(s,"program");


    正确答案:A

  • 第20题:

    以下选项中,不能正确赋值的是 ______。

    A.char s1[10];s1="chest";

    B.char s2[]={'C','t','e','s','t'};

    C.char s3 [20]="Chest";

    D.char * s4="Cest\n"


    正确答案:A
    解析:C语言中不能将字符串常量直接赋给数组。但在赋初值时可以。

  • 第21题:

    下列语句组中,不正确的是( )。

    A.char *s;s="Olympic";

    B.char s[]="Olympic";

    C.char *s;s={"Olympic"};

    D.char s[]={"Olympic"};


    正确答案:C

  • 第22题:

    下列语句组中,正确的是

    A.char*s;s="Olympic";

    B.char s[7];s="Olympic";

    C.char*s;s={"Olympic"};

    D.char s[7];s={"Olympic"};


    正确答案:A
    解析:若s被定义为指针,选项A表示将指针s指向一个字符串,选项C表示为指针s赋一个字符串的值,显然选项A正确,选项C错误;若s被定义为数组,且要为该数组直接赋值,则必须在定义时进行,因此选项B和选项D都错误。

  • 第23题:

    以下能正确进行字符串赋值、赋初值的语句是______。

    A.char s[5]:{'a','e','i','o','u'};

    B.char *s; s="good";

    C.char s[5]="good";

    D.char s[5]; s="good";


    正确答案:C

  • 第24题:

    以下能将字符串,you are luck!正确读入的语句组是( )

    A.char s[80]; scanf("%s",s);

    B.char *s: scanf("%s",s);

    C.char s[80]; gets(s);

    D.char *s; gets(3);


    正确答案:C