02331数据结构

数据结构里,以下字符串处理函数中,返回值不是char的是()。A、strcatB、strcmpC、strcpyD、strlen

题目

数据结构里,以下字符串处理函数中,返回值不是char的是()。

  • A、strcat
  • B、strcmp
  • C、strcpy
  • D、strlen
如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

有以下类定义:

class A{

char*a;

public:

A( ):a(0){ }

A(char*aA) { //把aa所指字符串复制到a所指的存储空间

a=______;

strcpy(a,aA) ;

}

~A( ){delete[ ]a;}

};

画线处应填写的表达式是

A.new char[strlen(aA)+1]

B.char[strlen(aA)+1]

C.char[strlen(aA)]

D.new char[sizeof(aA)-1]


正确答案:A
解析:为a申请一个比aa串长增加1的一个存储空问。B和C缺少new运算子,D分配空间不足。

第2题:

编写 strcpy函数

已知 strcpy函数的原型是

char *strcpy(char *strDest, const char *strSrc);

其中 strDest 是目的字符串,strSrc 是源字符串。

(1)不调用 C++/C 的字符串库函数,请编写函数 strcpy

(2)strcpy能把 strSrc 的内容复制到 strDest,为什么还要 char * 类型的返回值?


正确答案:
 

第3题:

函数sstrcmp()的功能是对两个字符串进行比较。当s所指字符串和t所指字符串相等时,返回值为0;当s所指字符串大于t所指字符串时,返回值大于0;当s所指字符串小于t所指字符串时,返回值小于0(功能等同于库函数strcmp()),请填空。#include<stdio.h>int sstrcmp(char *s,char *t){ while(*s&&*t&&*s= =){s++;t++; }return;}


正确答案:*t或t[0] *s-*t或*s-t[0]或s[0]-*t或s[0]-t[0]
当s所指字符和t所指字符不等时,退出循环;否则继续执行循环。当发现不等时,返回*s-*t,即如果s所指字符大于t所指字符,则返回值大于0,小于则返回值小于0.

第4题:

数据结构里,关于字符串函数strcmp()描述错误的是()。

  • A、函数功能是比较两个字符串的大小。
  • B、字符串1等于字符串2,函数返回值等于true
  • C、字符串1大于字符串2,函数返回值是1。
  • D、字符串1小于字符串2,函数返回值是-1。

正确答案:B

第5题:

对字符串处理函数strcmp()描述正确的是()

  • A、字符串1等于字符串2,函数返回值等于0
  • B、字符串1大于字符串2,函数返回值等于1
  • C、字符串1小于字符串2,函数返回值等于-1
  • D、不能使用关系运算符“==”来比较两个字符串,只能用strcmp()函数来处理

正确答案:A,B,C,D

第6题:

阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。

【函数1说明】

函数palindrome(char s[])的功能是:判断字符串s是否为回文字符串。若是,则返回0,否则返回-1。若一个字符串顺读和倒读都一样时,则可称该字符串是回文字符串。例如,“LEVEL”是回文字符串,而“LEVAL”不是。

【函数1】

int palindrome(char s[]{

char *pi, *pj;

pi=s; pj=s+strlen(s)-1;

while(pi<pj&&(1)){

pi++; pj--;

}

if((2))return-1;

else return 0;

}

【函数2说明】

函数f(char *str, char del)的功能是:将非空字符串str分割成若干个子字符串并输出,del表示分割时的标志字符。

例如,若str的值为“33123333435”,del的值为“3”,调用此函数后,将输出三个子字符串,分别为“12”、“4”和“5”。

【函数2】

void f(char *str, char del){

int i,j, len;

len=strlen(str);

i=0;

while(i<len){

While((3)) i++; /*忽略连续的标志字符*/

/*寻找从str[i]开始直到标志字符出现的一个子字符串*/

j=i+1;

while(str[j]!=del && str[j]!='\0')j++;

(4)='\0'; /*给找到的字符序列置字符串结束标志*/

printf("%s\t",&str[i]);

(5);

}

}


正确答案:(1)*pi==*pi (2)pipj或*pi!=*pj (3)str[i]==del (4)str[j] (5)i=j+1
(1)*pi==*pi (2)pipj或*pi!=*pj (3)str[i]==del (4)str[j] (5)i=j+1 解析:本题考查在C语言中对字符串的处理。
【函数1】
使用数组s[n]来存储一个字符串,因为要根据回文字符串的定义来判断一个串是否是回文字符串,所以需要循环比较。
(1)拿该字符串的第一个元素s[0]和最后一个元素s[n-1]比较,如果s[0]不等于s[n-1],则s不是回文字符串。
(2)如果s[0]等于s[n-1],则拿第二个元素s[1]和倒数第二个元素s[n-2]比较,如果 s[1]不等于s[n-2],则s不是回文字符串。
(3)依次类推,直到最中间的两个元素也比较完毕(如果s有偶数个元素),或者只剩下中间的一个元素(如果s有奇数个元素)。
当上述循环结束时,如果最中间的元素没有进行比较,就说明s不是回文字符串;如果进行了比较,则s是回文字符串。
在函数1中,pi和pj是两个指向字符的指针,程序首先将s的首地址赋给pi(即*pi =a[0]),将元素s[strlen(s)-1]的地址赋给pj(即*pj=s[strlen(s)-1]),当pipj并且pi和pj所指向的值相等时进行循环:pi自增,pj自减。
退出循环后,如果pipj,则s是回文字符串(如果s有偶数个元素,则为pi>pj;如果s有奇数个元素,则为pi=pj);如果pipj,则s不是回文字符串。
【函数2】
由函数2说明可知,此函数对给定的字符串进行从左至右的扫描,找出不包含标志字符的子字符串。
在函数2中,i的初值为0,len表示字符串的长度。当ilen时进行循环:如果当前字符是标志字符,则不作处理,继续扫描。当退出该循环时,当前字符str[i]不是标志字符,这时从str[i]开始寻找,直到找到在标志字符中出现的一个子字符串(i保持不变,用i标记寻找的过程),给找到的字符序列置字符串结束标志,以便于后面语句的输出。
输出语句结束后,就要继续寻找后面的不包含标志字符的子字符串,这时,需要把指针i移动至j的后面,继续扫描。

第7题:

数据结构与算法里,字符串处理函数是字符串拷贝的是()。

  • A、strcat
  • B、strcpy
  • C、strcmp
  • D、strlen

正确答案:B

第8题:

请补充函数fun(),该函数的功能是:把字符串str中的字符按字符的ASCⅡ码降序排列,处理后的字符串仍然保存在原串中,字符串及其长度作为函数参数传入。

例如,如果输入“cdefgh”,则输出为“hgfedc”。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。

试题程序:

include <stdio.h>

define N 80

void fun (char s [], int n)

{

int i, j;

char ch;

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

for(j=【 】;j<n;j++)

if (s[i]<s [j])

{

ch=s [j];

【 】;

s [i] =ch;

}

main ( )

{

int i=0, strlen=0;

char str [N];

clrscr ();

printf ("\nInput a string: \n");

gets (str);

while (str [i] !=' \0')

{

strlen++;

i++;

}

fun (str, strlen);

printf ("\n***display string ***\n");

puts (str);

}


正确答案:I s[j]=s[i]
I s[j]=s[i] 解析:第一空:本题采用选择法进行排序。选择法的算法思路是:如果有n个数则从头到倒数的第2个数一个一个往后走动,每走动一个数总是将这个数与其后的所有数进行两两比较,在比较时按题目要求的顺序将进行比较的这两个数排序 (即交换)。理解了选择法的思路,则此空就非常简单了,应该填i。第二空:借助第三个变量交换两数的方法,非常重要也非常基础,必须要求掌握。

第9题:

数据结构里,关于字符串描述正确的是()。

  • A、字符串可以为空串
  • B、字符串的长度计算’/0’在内
  • C、字符串比较函数strcmp返回值类型是char
  • D、字符串求长度使用strcat

正确答案:A

第10题:

字符串的处理函数strcpy是系统定义的,作用是进行字符串拷贝,两个参数,返回值为char*。


正确答案:正确