计算机二级

下面函数的功能是 ( ) int funl(char * X) { char * y=X; whar(* y + + ); return (y - x - 1);}A.求字符串的长度B.比较两个字符串的大小C.将字符串x复制到字符串y中D.将字符串x连接到字符串y后面

题目

下面函数的功能是 ( ) int funl(char * X) { char * y=X; whar(* y + + ); return (y - x - 1);}

A.求字符串的长度

B.比较两个字符串的大小

C.将字符串x复制到字符串y中

D.将字符串x连接到字符串y后面

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

第1题:

下面函数的功能是( )。int func(char*x){ char*y=x;while(*y++);return(y-x-1);}A.求字符串的长度B.比较两个字符串的大小C.将字符串x复制到字符串yD.将字符串x连接到字符串y后面


正确答案:A
首先将x指向的字符串的首地址赋给y,然后进行扫描,知道遇到结束标志0,y-x-1的意思就是求字符串的长度,因为y指向字符串的最后一个字符的下一位,而x指向字符的首地址。

第2题:

如下程序的输出结果是______。 include using namespace std; int funl(int x){retu

如下程序的输出结果是______。

include<iostream>

using namespace std;

int funl(int x){return++x;}

int fun2(int&x){return++x;}

int main( ){

int x:1,y=2;

Y=funl(fun2(x));

cout<<x<<','<<y;

return 0;

}


正确答案:23
2,3

第3题:

若有定义 :char *x="abcdefghi"; ,以下选项中正确运用了 strcpy 函数的是

A)char y[10]; strcpy(y,x[4]);

B)char y[10]; strcpy(++y,&x[1]);

C)char y[10],*s; strcpy(s=y+5,x);

D)char y[10],*s; strcpy(s=y+1,x+1);


正确答案:D

答案 D
解析 : 在字符拷贝函数中 strcpy( 字符数组 1 , 字符串 2) 中 , “ 字符数组 1 ” 必须写成数组名的形式,而且,数组 1 的长度要大于树组 2 的长度。因此本题 D 正确。

 

第4题:

下述函数功能是______。 int fun(char*x) { char*y=x; while(*y++); return y-x-1; }

A.求字符串的长度

B.求字符串存放的位置

C.比较两个字符串的大小

D.将字符串x连接到字符串y后面


正确答案:A
解析:在函数体内定义一字符型指针并指向形参,然后遍历其中各字符直到NULL,最后返回字符串首尾地址的差值,即字符串的长度。

第5题:

向x变量中输入任意一个大写字母,再将x变量中的大写字母转成小写字母 (如 "G”变成 "g”)。正确的算法是( )

A.①输入字母到x ②int y = x - 32 ③x = (char)y→输出x

B.①输入字母到x ②int y = x + 32 ③x = (char)y→输出x

C.①输入字母到x ②int y = (int)x - 32 ③x = (char)y→输出x

D.①输入字母到x ②int y = (int)x + 32 ③输出y


正确答案:B

第6题:

若有定义:char *x="abcdefghi";,以下选项中正确运用了strcpy函数的是______。

A.char y[10]; strcpy(y,x[4]);

B.char y[10]; strcpy(++y,&x[1]);

C.char y[10],*s; strcpy(s=y+5,x);

D.char y[10],*s; strcpy(s=y+1,x+1);


正确答案:D
解析:选项A中x[4]是取字符e,也就是将字符复制到y中,strcpy实现的是地址的复制所以选项A错误;选项B中++y是错误的,不允许对常量进行自加运算(y是—个确定的地址值),所以选项B错误;选项C指针变量s指向了y向后的第5位,则存放x时会出现越界问题,所以选项C错误;选项D中,指针变量s指向了y向后的第—位,此时s可存放数据的长度为9,而地址“x+1”起的字符串的地址长度也刚好为9(包括“\0”),所以开始复制不会出现地址越界问题,故选项D正确。

第7题:

有以下程序: char fun(char x,char y) { if(x<y) return x; return y; } main() { int a='9',b='8',c='7'; printf("%c\n",fun(fun(a,b),fun(b,c)); } 程序的执行结果是( )。

A.函数调用出错

B.8

C.9

D.7


正确答案:D
解析:经过分析得出函数fun()的功能是比较形参x和形参y的大小,返回较小的一个。函数fun()有两个参数。本题中,首先定义了3个整型变量a、b和c,分别赋初值为9、8和7。然后执行函数fun(fun(a,b),fun(b,c))。在该函数中分别将fun(a,b)和fun(b,c)函数的返回值作为该函数的两个实参。在函数fun(a,b)中,由于a>b,故返回较小值b即8,在函数fun(b,c)中,由于bc,故返回较小值c即为7,因此调用函数fun(fun(a,b),fun(b,c))相当于执行函数fun(8,7),返回较小值即7。所以,4个选项中选项D符合题意。

第8题:

●有以下C程序:

char fun(char x,char y)

{if(x)return y;

}

main()

{int a=′9′,b=′8′,c=′7′;

printf("%c/n",fun(fun(a,b),fun(b,c)));

}

程序的执行结果是 (31) 。

(31) A.函数调用出错

B.8

C.9

D.7


正确答案:D
【解析】本题考查C语言以及函数调用等知识点。程序设计语言的基本成分(数据、运算、控制和传输、过程(函数)调用)等是基础知识,考生应该掌握。
根据源程序分析fun(a,b)的返回值应该是8;fun(b,c)的返回值应该是7;那么fun(8,7)的返回值就是7。

第9题:

阅读下列程序说明和c代码,将应填入(n)处的字句写在对应栏内。

[说明]

下面的程序利用递归算法计算x和y的最大公约数。

[函数2.1]

main ( )

{ int x,y,k,t;

scanf(" % d% d" , &x, &y);

if(x>y) { t=x;x=y; y=t;}

(1);

while(k! =0){

y=x;

(2);

k=y%x;

}

prinff( "% d" ,x); }

[函数2.2说明]

函数fun(char *str,char *substr的功能是计算子串sugbstr在串str中出现的次数。

[函数2.2]

fun(ehar * str, char * substr)

{ int x,y,z;

(3);

for(x=0;str[ x] ! = '\O';x + + )

for(y=x,z=0;sabstr[z] = =str[y];(4),y+ +)

if((5)= ='\0') {

num + +;

break;

}

return(num);

}


正确答案:(1)k=y%x (2)x=k (3)int num=0 (4)z++ (5)substr[z+1]
(1)k=y%x (2)x=k (3)int num=0 (4)z++ (5)substr[z+1] 解析:(1)~(2)使用递归算法计算x和y的最大公约数时,不妨令yx,如果y除x余数得。则x即为所求;否则令y←x,x←余数,继续上述判断。
(3)此处应声明变量num并初始化;
(4)次循环的功能是从str的第y个位置起与substr做比较,循环过程中y和z应同时增1;
(5)若上面的循环重复执行,直到到达substr结束,则表示substr在str中出现一次。

第10题:

以下函数原型说明正确的是________。

A. float add(int x, int y) ;

B. int add(int x;int y) ;

C. char add( x,y) ;

D. int add(char x[ ] [ ]) ;


参考答案:A

更多相关问题