●执行下面的一段C程序后,变量ret的值为(61)。
char str[20];
int ret= strlen(strcpy(str,"Hello_World\0"));
(61) A.0
B.11
C.12
D.20
第1题:
下面的程序各自独立,请问执行下面的四个TestMemory 函数各有什么样的结果?
①void GetMemory(char * p)
{
p = (char * )malloc(100);
}
void TestMemory (void)
{
char *str = NULL;
GetMemory (str);
strcpy(str, "hello world");
prinff(str);
}
② char * GetMemory (void)
{
char p[ ] = "hello world";
return p;
}
void TestMemory (void)
{
char * str = NULL;
str = GetMemory( );
printf(str);
}
③void GetMemory(char * * p, int num)
{
* p = (char * )malloc(num);
}
void TestMemory (void)
{
char * str = NULL;
GetMemory(&str, 100);
strcpy( str, "hello" );
printf(sir);
}
④void TestMemory (void)
{
char *str = (char * )malloe(100);
strepy (str, "hello" );
free ( str );
if(str ! = NULL)
{
strepy( str, "world" );
printf(str);
}
}
第2题:
有以下程序: #include <iostream> #include <string> using namespace std; class Y; class X { private: int x; char *strx; public: X(int a, char *str) { x=a; strx=new char[strlen(str)+1]; strcpy(strx,str); } void show(Y &ob) ; }; class Y { private: int y; char *stry; public: Y(int b,char *str) { y=b; stry=new char[strlen(str)+1]; strcpy(stry, str); } friend void X: :show(Y &ob) ; }; void X: :show(Y &ob) { cout<<strx<<", "; cout<<ob, stry<<end1; } int main ( ) { X a(10,"X"); Y b (20, "Y"); a. show(B) ; return 0; } 执行后的输出结果是( )。
A.X,Y
B.a,b
C.X,X
D.Y,Y
第3题:
第4题:
执行下列语句后,输出结果为steven的是 Char * str="steven"; cout. write(str, );
A.strlen(str)
B.sizeof(str)
C.strlen(str+1)
D.sizeof(str-1)
第5题:
下面函数的功能应该是:删除字符串str中所有与变量ch相同的字符,并返回删除后的结果。例如:若str="ABCDABCD",ch="B",则函数的返回值为:"ACDACD"
Function delchar(str As String,ch As String)As String
Dim k As Inlegcr,temp As String,ret As String
ret=""
For k=1 To Len(str)
temp=Mid(str,k,1)
If temp=ch Then
ret=ret&temp
End If
Next k
delchar=ret
En d Function
但实际上函数有错误,需要修改,下面的修改方案中正确的是( )。
A.把ret=ret&temp改为ret=temp
B.把If temp=ch Then改为If temp<>ch Then
C.把delchar=ret改为delchar=temp
D.把ret=""改为temp=""