以下语句中存在的语法错误是()A、charss[6][20];ss[1]="right?";B、charss[][20]={"right?"};C、char*ss[6];ss[1]="right?";D、char*ss[]={"right?"};

题目

以下语句中存在的语法错误是()

  • A、charss[6][20];ss[1]="right?";
  • B、charss[][20]={"right?"};
  • C、char*ss[6];ss[1]="right?";
  • D、char*ss[]={"right?"};
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

在以下语句中存在语法错误的是______。

A.char ss[6][20]; ss[1]="right?";

B.char ss[][20]={"fight?"};

C.char *ss[6]; ss[1]="right?";

D.char *ss[]={"right?"};


正确答案:A
解析:此题需要了解字符数组和字符指针变量的区别,字符数组由若干个元素组成,每个元素中放一下字符,而字符指针变量中放的是地址(字符串的首地址),决不是将字符串放到指针变量中,选项D是指在定义字符指针变量时让字符指针指向字符串“right?”的首地址;选项C是先定义字符指针数组,再让指针数纽指向字符串"right?"的首地址;选项B是在定义数组时将字符赋给数组,而选项A的这种先定义,再用赋值语句赋值的形式是错误的,因为数组可以在变量定义时整体赋初值,而不能在赋值语句中整体赋值。

第2题:

以下语句中存在语法错误的是( )。

A.char ss[6][20];ss[1]="right?";

B.char ss[][20]={"right?"};

C.char*ss[6];ss[1]="right?";

D.char*ss[]={"right?"};


正确答案:A
解析:数组赋值时需要用{}表示出来,故选项A错误。

第3题:

以下语句中存在语法错误的是

A)char ss[6][20]; ss[1]="right?";

B)char ss[][20]={"right?"};

C)char *ss[6]; ss[1]="right?";

D)char *ss[]={"right?"};


正确答案:A
答案 A
解析:不能用赋值将一个字符串常量直接赋给一个字符串数组。

第4题:

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

include

char*ss(char*s)

{char*p,t;

P=s+1;t=*s;

while(*p){ *(P-1)=*P;P++;}

*(P-1)=t;

return s;

}

main()

{char*p,str[10]="abcdefgh";

p=ss(str);

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

}


正确答案:bcdefgha
bcdefgha

第5题:

有以下程序

#include <stdio.h>

#include <string.h>

void fun(char *s[],int n)

{ char *t; int i,j;

for(i=0;i<n-1;i++)

for(j=i+1;j<n;j++)

if(strlen(s[i])>strlen(s[j])) {t=s[i];s[i]:s[j];s[j]=t;}

}

main()

{ char *ss[]={"bcc","bbcc","xy","aaaacc","aabcc"};

fun(ss,5); printf("%s,%s\n",ss[0],ss[4]);

}

程序的运行结果是

A.xy,aaaacc

B.aaaacc,xy

C.bcc,aabcc

D.aabcc,bcc


正确答案:A
解析:函数fun(char *s[],int n)的功能是对字符串数组的元素按照字符串的长度从小到大排序。在主函数中执行fun(ss,5)语句后,*ss[]={"xy", "bcc", "bbcc", "aabcc", "aaaacc"},ss[0],ss[4]的输出结果为xy,aaaacc。

第6题:

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

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!";”是定义指针同时赋初值,因此是正确的。

第7题:

有以下程序

void ss(char *s,char t)

{ while(*s)

{ if(*s==t)*s=t-′a′+′A′;

s++; } }

main()

{ char str1[100]="abcddfefdbd",c=′d′;

ss(str1,c); printf("%s\n",str1);}

程序运行后的输出结果是

A.ABCDDEFEDBD

B.abcDDfefDbD

C.abcAAfefAbA

D.Abcddfefdbd


正确答案:B
解析:在内存中,字符数据以ASCII码存储,它的存储形式与整数的存储形式类似。C语言中,字符型数据和整型数据之间可以通用,也可以对字符型数据进行算术运算,此时相当于对它们的ASCII码进行算术运算,在本题中,s++相当于s=s+1,即让s指向数组中的下一个元素。

第8题:

已知:charss[][6]={"while","for","else","break"};输出显示"reak"字符串的表达式是()。

A.ss[3]

B.ss[3]+1

C.ss+3

D.ss[3][1]


正确答案:B

第9题:

下列程序的功能是:求出ss所指字符串中指定字符的个数,并返回此值。

例如,若输入字符串123412132,输入字符1,则输出3,请填空。

#include

#include

#define M 81

int fun(char *ss, char c)

{ int i=0;

for(; ( );ss++)

if(*ss==c)i++;

return i;}

main()

{ char a[M], ch;

clrscr();

printf("\nPlease enter a string: "); gets(a);

printf("\nPlease enter a char: "); ch=getchar();

printf("\nThe number of the char is: %d\n", fun(a,ch));}


正确答案:
*ss!= '\0'

第10题:

当执行下面的程序时,如果输入“ABC”,则输出结果是_____。#include"stdio.h"#include"string.h"main(){ char ss[10]="1,2,3,4,5"; gets(ss);strcat(ss,"6789");printf("%s\n",ss);}

A.ABC6789

B.ABC67

C.12345ABC6

D.ABC456789


正确答案:A

更多相关问题