有以下程序: void swap(char*x,char*y) { char t; t=*x;*x=*y;*y=t; } main { char*s1="abe",*s2

题目

有以下程序: void swap(char*x,char*y) { char t; t=*x;*x=*y;*y=t; } main { char*s1="abe",*s2="123": swap(s1,s2); printf("%s,%s\n",s1,s2); } 程序执行后的输出结果是( )。

A.123,abe

B.abc.123

C.1bc,a23

D.321,cba

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

第1题:

有以下程序:void swap (char *x,char *y){char t; t=*x,*x=*y;*y=t;}main(){char* s1="abc",*s2="123"; swap(s1,s2); printf("%s,%s\n",s1,s2);}程序执行后的输出结果是( )。

A.123,abc

B.abc,123

C.1bc,a23

D.321,cba


正确答案:C
解析:首先看swap()函数,函数中定义了一个临时字符变量t,然后将形参指针x所指内容存入t,再将形参指针y所指内容存入到x所指内容中,最后将临时变量t的内容存入到y所指内容中。所以该函数实现的是:交换两个字符指针所指向的内容。在主函数中,首先定义了两个字符指针s1和s2,同时用字符串"abc"和"123”来初始化它们,此时它们指向的是两个字符串的第1个字符。所以,在调用完swap()函数后,彼此交换了两个字符串的第1个字符,最后输出结果为1bc,a23。故应该选择C。

第2题:

有以下程序:include void swap(char * x,ehar * y){ char t;t= *x; *x: *y; *y=t;main

有以下程序:#include <stdio.h>void swap(char * x,ehar * y){ char t; t= *x; *x: *y; *y=t;main ( ){ char *s1 ="abc", * s2 ="123"; swap(s1 ,s2); printf("%s,%s \n" ,s1 ,s2);}程序执行后的输出结果是( )。

A.123,abe

B.abe,123

C.1bc,a23

D.321,cba


正确答案:C
解析:C语言中,字符串常量在内存中是以字符数组的形式存放的,形参字符指针x和y指向的是各字符串的首地址,在swap函数中,*x与*y交换的是字符串的第一个字符,即字符'a'与'1'的交换,而字符串中其他字符保持不变。

第3题:

有以下程序 void swap(char *x,char *y) {char t; t=*x;*x=*y;*y=t; } main() {char *s1="abc",*s2="123"; swap(s1,s2); printf("%s,%s\n",s1,s2); } 程序执行后的输出结果是______。

A.123,abc

B.abc,123

C.1bc,a23

D.321,cba


正确答案:C
解析:此题考核的知识点是指针变量值的交换。c语言中,字符串常量在内存中是以字符数组的形式进行存放的,因此字符指针x和y指向的是各字符串的首地址,也就是字符串第—个字符的地址,则*x与*y交换的是字符串的第—个字符,即字符“a”与“1”的交换,而字符串中其它字符保持不变,所以答案选C。

第4题:

有以下程序 void swap(char* x,char *y) {char t; t= *x; *X= *y; *y=t; } main() {char*s1:"abc",*s2="123"; swap(s1,s2);printf("%s,%s\n",s1,s2); } 程序执行后的输出结果是

A.123,abc

B.abc,123

C.1bc,a23

D.321,cba


正确答案:C
解析: 这是一个转换程序:低字节相互转换,高字节不变。“abe”的ab和“123”的12相互转化。

第5题:

有以下程序:

void swap(char*x,char*y)

{ char t;

t=*x;*x=*y;*y=t;

}

main

{ char*s1="abe",*s2="123":

swap(s1,s2);

printf("%s,%s\n",s1,s2);

}

程序执行后的输出结果是( )。

A.A.123,abe

B.abc.123

C.1bc,a23

D.321,cba


正确答案:C
本题考查swap函数,它的作用是把x、Y所指的内容互换,其他的不变,因此当执行完调用函数后,仅仅'a'与'1'互换,其他的没有变。

第6题:

有以下程序: void swap(char*x,char*y) {cbar t; t=*x; *x=*y; *y=t; } main() {char*s1="abc",*s2="123"; swap(s1,s2);printf("%s,%s\n",s1,s2); } 程序执行后的输出结果是( )。

A.123,abc

B.abc,123

C.1bc,a23

D.321,cba


正确答案:C
解析:函数swap()实现的功能为交换字符指针x和y首位的数值。

第7题:

阅读下列程序说明和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中出现一次。

第8题:

有以下程序

void swap(char *x,char *y)

{char t;

t=*x; *x=*y; *y=t;

}

main()

{char *s1="abc",*s2="123";

swap(s1,s2);printf("%s,%s\n",s1,s2);

}

程序执行后的输出结果是

A.123,abc

B.abc,123

C.1bc,a23

D.321,cba


正确答案:C
解析:这是一个转换程序:低字节相互转换,高字节不变。"abc"的ab和"123"的12相互转化。

第9题:

有以下程序

void swap(char *x,char *y)

{ char t;

t=*x; *x=*y; *y=t;

}

main()

{ char *s1="abc",*s2="123";

swap(s1,s2);printf(" % s, % s\n",s1,s2);

}

程序执行后的输出结果是

A)123,abc

B)abc,123

C)1bc,a23

D)321,cba


正确答案:C
(38)C) 解析 : 这是一个转换程序 : 低字节相互转换 , 高字节不变 。 “ abc ” 的 ab 和 “ 123 ” 的 1 2相互转化。