单选题若有定义语句char s[10]=1234567\0\0,则strlen(s)的值是(  )。A 7B 8C 9D 10

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

7

B

8

C

9

D

10

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

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

A.4

B.5

C.9

D.10


正确答案:A

第2题:

若有以下定义和语句: 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。

第3题:

有定义语句: char s[10]; ,若要从终端给 s 输入 5 个字符,错误的输入语句是

A)gets(&s[0]);

B)scanf("%s",s+1);

C)gets(s);

D)scanf("%s",s[1]);


正确答案:D

第4题:

已知C源程序如下:

/ * longIntAdd * /

include <stdio. h>

include <string. h>

define LENGTH 81

void addLInt(char sl[],char s2[]); void reverse(char s[]) ; int main()

{

char intstrl[LENGTH],intstr2[LENGTH];

printf("请输入超长整数的被加数和加数:\n")

scanf("%s%s" ,intstrl ,intstr2) ; addLInt(intstrl ,intstr2) j printf("超长整数和为: %s" .intstrl); return 0;

}

void addLInt(char sl[] ,char s2[]) {

int i=0,tmp,c=0;

char s[LENGTH];

if(strlen(s1)<strlen(s2)){ strcpy(s,sl); strcpy(sl,s2); strcpy(s2,s);

}

reverse(sl);reverse(s2);

while(s2[i]! ='\0'){

tmp=sl[i]-'0'+s2[i]-'0'+ c;

sl[i] = tmp%10+,0';

c=tmp/10;

i++; } while(sl[i]! ='\0,&&c){

tmp=sl[i] —'0' + c;

sl[i] = tmp%10+'0';

c=tmp/10;

i++; } If(c){

sl[i++] = c+'0';

sl[i] = '\0'; } reverse(sl);

}

void reverse(cliar s[])

{

inti,j,c;

for(i=0,j = strlen(s) -l;i<j;i++,j--){

c=s[i]; s[i] = s[j]; s[j] = c; } }

(1)画出程序中函数addLInt的控制流程图(10分);

(2)设计一组测试用例,使该程序addLInt函数的语句覆盖率和分支覆盖率均能达到100%。如果认为该函数的语句覆盖率或分支覆盖率无法达到100%,需说明为什么(10分)。


正确答案:×
(1)函数addLInt的控制流程图。 C2)测试用例 a.sl:“111111111111111l”s2:“2222222222222222” b. s1:“123456789” s2:“989” c.s1:“989” s2 :“123456789” d.sl :“999999999999” s2 :“111111” 解析:语句覆盖是指设计若干测试用例,运行被测程序,使得每个可执行语句至少执行一次。 语句覆盖率=被评价到的语句数量/可执行的语句数量×100%。 设计若干测试用例,运行被测程序使得每个判定的取真分支和取假分支至少评价一次。 判定覆盖率=被评价到的判定分支个数/判定分支的总数×100%。 当输入a、b、c、d中的测试用例后,语句覆盖率和分支覆盖率均为100%。

第5题:

若有以下定义: char s(10)="program",t[]="test"; 则下列选项中对字符串操作错误的是( )。

A.strcpy(s,t);

B.strcat(s,t);

C.cout<<strlen(s);

D.gets(s);


正确答案:B

第6题:

若有定义语句“charS[10]="1234567\0\0";”,则strlen(s)的值是( )。

A.7

B.8

C.9

D.10


正确答案:A
A。【解析】C语言中strlen函数的功能是返回字符串的长度,其中'\0'是一个转义字符,它占存储空间,但不计入字符串的长度。所以选项A正确。

第7题:

若有以下定义和语句: char s [10]="abcd!",*s2="\nl23\\"; Drintf("%d%d\n",strlen(sl),strlen(s2)); 则输出结果是( )。

A.5 5

B.10 5

C.10 7

D.5 8


正确答案:A
\n和\\分别为转义字符,各占据一个字符的位置。

第8题:

若有定义语句: char s[10]= " 1234567\0\0 " ; ,则 strlen(s) 的值是

A)7

B)8

C)9

D)10


正确答案:A

第9题:

若有定义语句:char s[10]="1234567\0\0";,则strlen(s)的值是______。

A.7

B.8

C.9

D.10


正确答案:A
解析:strlen(字符数组)是测试字符串的长度的函数。函数的值为字符串的实际长度,不包括'\0'在内。 C语言中字符串是以'\0'字符结束的,且salen()函数计算的是'\0'字符前的所有字符的个数,所以本题strlen(s)的值是7。需要与其区分的是sizeof()函数,它的功能是计算变量或数组所分配到的内存空间的大小。如果本题要求计算sizeof(s)的话,则其值应为10。

第10题:

若有定义语句:

则strlen(s)的值是()。

A.7

B.8

C.9

D.10


正确答案:A
本题考查的是字符串的长度。字符数组中可以存放字符串,但字符数组的长度并不是字符串的长度,字符串的长度是指字符数组中存放的有效字符个数,即“Ⅷ”之前的字符数。字符数组s中依次存放的字符是:l234567和2个字符串结束标记“Ⅷ”,故字符串的长度是7,所以应该选择A)。