【单选题】若有如下定义: char s[20],*ps=s; 则,以下赋值语句正确的是________。(第7章 指针程序设计)A.s=ps+s;B.ps=20;C.s[5]=ps[9];D.ps=s[0];

【单选题】若有如下定义: char s[20],*ps=s; 则,以下赋值语句正确的是________。(第7章 指针程序设计)

A.s=ps+s;

B.ps=20;

C.s[5]=ps[9];

D.ps=s[0];


参考答案和解析
分析:此题涉及的知识点是字符数组与指针的应用,对每个选项逐个分析如下:(1) 数组名代表数组的首地址,s=ps+s;对数组名赋值是不允许的。(2) ps=ps+20;将会使数组的使用超界,导致产生不能预料的错误。(3) s[5]=ps[9];等价于s[5]=s[9];,实现对数组元素s[5]的赋值。(4) ps=s[0];试图将一个整数值赋值给指针变量,这是不允许的。所以答案为选项 C。

相关考题:

有以下结构体说明、变量定义和赋值语句struct STD{ char name[10];int age;char sex;} s[5],*ps;ps=s[0];则以下 scanf 函数调用语句中错误引用结构体变量成员的是A)scanf("%s",s[0].name);B)scanf("%d",s[0].age);C)scanf("%c",(ps-sex));D)scanf("%d",ps-age);

设有如下程序段char s[20]= "Be i jing",*p;p=s;则执行 p=s; 语句后,以下叙述正确的是A) 可以用 *p 表示 s[0]B)s 数组中元素的个数和 p 所指字符串长度相等C)s 和 p 都是指针变量D) 数组 s 中的内容和指针变量 p 中的内容相等

程序中若有如下说明和定义语句:char fun(char *);main(){ char *s="one",a[5]={0},(*f1)()=fun,ch; ...}以下选项中对函数fun的正确调用语句是( )。A.(*f1)(a) B.*f1(*s) C.fun(a) D.ch=*f1(s)

程序中若有如下说明和定义语句: char fun(chat*); main() {char*s="one",a[5]={0},(*f1)()=fun,ch; } 以下选项中对函数fun的正确调用语句是( )。A.(*f1)(A);B.*f1(*s);C.fun(&A);D.ch=*f1(s);

有以下结构体说明、变量定义和赋值语句 struct STD { char name[10]; int age; char sex; }s[5],*ps; ps=s[0]; 则以下scanf函数调用语句中错误引用结构体变量成员的是______。A.scanf("%s",s[0].name);B.scanf("%d",s[0].age);C.scanf("%c",(ps->sex));D.scanf("%d",ps->age);

以下语句或语句组中,能正确进行字符串赋值的是( )。A.char*sp;*sp="right!";B.char s[10];s="right!";C.char s[10];*s="right!";D.char*sp="right!";

若有以下定义和语句: ( ) ints[4][5](* ps)[5]; ps=s; 则对s数组元素的正确引用形式是A.psq+1B.*(ps+3)C.ps[0][2]D.*(ps+1)+3

程序中若有如下说明和定义语句Char fun(char *);main(){char *s="one", a[5]={0}.(*f1)()=fun, ch;…}以下选项中对函数fun的正确调用语句是A.(*f1)(A) ;B.*fl(*s);C.fun(A) ;D.ch=*fl(s);

有以下程序中若有如下说明和定义语句; char fun(char*); main() { char * s="one",a[5]={0},(*f1)()=fun,ch; … } 以下选项中对函数fun的正确调用语句是 ______。A.(*f1)(a);B.*f1(*s);C.fun(a);D.ch=*f1(s);

若有以下定义,则不能代表字符。的表达式是______。 char s[20]="programming",*ps=s;A.ps+2B.s[2]C.ps[2]D.ps+=2,*ps

以下语句或语句组中能正确进行字符串赋值的是( )。A.ehar以*sp; * sp = "right!";B.char s[10] ;s = "right!";C.char s [10]; * s = "right !";D.char * sp = "right !";

若有以下定义和语句: int s[4][5],( *ps)[5]; ps=s; 则对s数组元数的正确引用形式是A.ps+1B.*(ps+3)C.ps[0][2]D.*(ps+1)+3

若有定义语句:char s[10]="1234567\0\0";,则strlen(s)的值是______。A.7B.8C.9D.10

若有以下定义和语句: int s[4][5],(*ps)[5]; ps=s; 则对s数组元素的正确引用形式是( )。A.ps+1B.*(ps+3)C.ps[0][2]D.*(ps+1)+3

若有定义语句:char s[3][10],(*k)[3]。*P;,则以下赋值语句正确的是A.p=S;B.p=k;C.p=s[0];D.k=S;

若有定义和语句 ( ) char s[10];s="abcd";printf("%s\n",s); 则结果是(以下μ代表空格)A.输出abcdB.输出aC.abcdμμμμμD.编译不通过

若有以下定义: char s[20]="programming",*ps=s; 则不能代表字符o的表达式是_______。A.ps+2B.s[2]C.ps[2]D.ps+=2,*ps

若有定义语句:char s[3][10],(*k)[3],*p;,则以下赋值语句正确的是;A.p=s;B.p=kC.p=s[0]D.k=s;

(28)若有定义语句:char s[3][10],(*k)[3],*p;,则以下赋值语句正确的是A)p=s;B)p=k;C)p=s[0];D)k=s;

若有定义和语句: char s[10]:s=""abcd"";printf(""%s/n"",s); 则结果是(以下u代表空格)()A、输出abcdB、输出aC、输出abcduuuuuD、编译不通过

若有以下定义和语句:ints[4][5],(*ps)[5];ps=s;则对s数组元素的正确引用形式是()。A、ps+1B、*(ps+3)C、ps[0][2]D、*(ps+1)+3

单选题若有定义和语句: char s[10]:s=""abcd"";printf(""%s/n"",s); 则结果是(以下u代表空格)()A输出abcdB输出aC输出abcduuuuuD编译不通过

单选题若有定义语句:char s[3][10],(*k)[3],*p;则以下赋值语句正确的是(  )。Ap=s;Bp=k;Cp=s[0];Dk=s;

单选题设有以下函数:void fun(int n,char* s){……}则下面对函数指针的定义和赋值均是正确的是(  )。Avoid(*pf)();pf=fun;Bvoid * pf();pf=fun;Cvoid * pf();* pf=fun;Dvoid(* pf)(int,char);pf=fun;

单选题若有定义语句char s[10]=1234567\0\0,则strlen(s)的值是(  )。A7B8C9D10

单选题有以下结构体说明、变量定义和赋值语句structSTD{ charname[10]; intage; charsex;}s[5],*ps;ps=s[0];则以下scanf函数调用语句有错误的是(  )。Ascanf("%s",s[0].name);Bscanf("%d",s[0].age);Cscanf("%c",(ps-sex));Dscanf("%d",ps-age);

单选题若有以下定义和语句:ints[4][5],(*ps)[5];ps=s;则对s数组元素的正确引用形式是()。Aps+1B*(ps+3)Cps[0][2]D*(ps+1)+3

单选题设有如下程序段:char s[20]= Bejing,*p;p=s:则执行p=s;语句后,以下叙述正确的是(  )。A可以用*p表示s[0]Bs数组中元素的个数和p所指字符串长度相等Cs和p都是指针变量D数组s中的内容和指针变量p中的内容相等