单选题有以下程序:#include #include struct S{ char name[10];};main(){ struct S s1,s2; strcpy(s1.name,XXX); strcpy(s2.name,=); s1=s2; printf(%s,s1.name);}程序运行后的输出结果是(  )。A =B XXXC =XXD X=

题目
单选题
有以下程序:#include #include struct S{ char name[10];};main(){ struct S s1,s2; strcpy(s1.name,XXX); strcpy(s2.name,=); s1=s2; printf(%s,s1.name);}程序运行后的输出结果是(  )。
A

=

B

XXX

C

=XX

D

X=

参考答案和解析
正确答案: B
解析:
主函数首先定义两个结构体变量s1,s2,分别使用字符串拷贝函数strcpy为s1和s2的成员name赋值,再将s2中的成员信息赋值给s1,因此输出为“=”,答案选择A选项。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

下列程序的运行结果是()。includeincludemain(){ char*s1="ahDuj";char*s2=

下列程序的运行结果是( )。#include<stdio.h>#include<string.h>main(){ char*s1="ahDuj"; char*s2="ABdUG": int t; t=strcmp(s1,s2); printf("%d", t);}

A.正数

B.负数

C.零

D.不确定的值


正确答案:A
解析:本题考查字符串比较函数和两个字符串比较的原则两个知识点:①原则是依次比较两个字符串同—位置的一对字符,若它们的ASCII码值相同,则继续比较下一对字符,若它们的ASCII码值不同.则ASCII码值较大的字符所在的串符串较大;若所有字符相同,则两个字符串相等;若一个字符串全部i个字符与另一个字符串的前i个字符相同,则字符串较长的较大。②strcmp(s1,s2)的返回值,当str1str2时,返回值0;当str1=str2时,返回值为0;当str1>str2,返回值>0。

第2题:

有以下程序并includeincludefun(char * w,int n){char t,*s1,*s2; s1=w;s2=

有以下程序 并include<stdio.h> #include<string.h> fun(char * w,int n) { char t,*s1,*s2; s1=w; s2=w+n-1; while(s1<s2) { t=*s1++; * s1=*s2--; * s2=t; } } main() { char p[]="1234567"; fun(p,strlen(p)); puts(p); } 程序运行后的输出结果是( )

A.1234567

B.7654321

C.1711717

D.7177171


正确答案:C

第3题:

以下程序的输出结果是 【 18 】 。

# include <stdlib.h>

main( )

{ char *s1,*s2,m;

s1=s2=(char*)malloc(sizeof(char));

*s1=15; *s2=20; m=*s1+*s2;

printf("%d\n",m);

}


正确答案:

第4题:

下列程序的运行结果是()。 include include main() {char*s1="abDuj"; char

下列程序的运行结果是( )。

#include<stdio.h>

#include<string.h>

main()

{ char*s1="abDuj";

char*s2="ABdUG";

int t;

t=strcmp(s1,s2) ;

printf("%d",t);

}

A.正数

B.负数

C.零

D.不确定的值


正确答案:A
解析:本题考查字符串比较函数和两个字符串比较的原则两个知识点:①原则是依次比较两个字符串同一位置的一对字符,若它们的ASCII码值相同,则继续比较下一对字符,若它们的ASCII码值不同,则ASCII码值较大的字符所在的字符串较大;若所有字符相同,则两个字符串相等;若一个字符串全部i个字符与另一个字符串的前i个字符相同,则字符串较长的较大。② strcmp(s1,s2)的返回值,当str1str2时,返回值0:当 str1=str2时,返回值为0;当str1>str2,返回值>0。

第5题:

对于下面的程序includeincludechar *scmp(char*s1,char*s2){if(strcmp(s1,

对于下面的程序 #include<stdio.h> #include<string.h> char *scmp(char*s1,char*s2) { if(strcmp(s1,s2)<0)return(s1); else return(s2); } main() { int i:char string[20],sb[3][20]; for(i=0;i<3;i++)gets(str[i]); strcpy(string,scmp(str[0],str[1])); strcpy(string,scmp(string,str[21)); printf("%s\n",string); } 若运行时依次输入abcd、abba和abc三个字符串,则输出结果为______。

A.abcd

B.abba

C.abc

D.abca


正确答案:B
解析:本题自定义函数scrnp()的作用是比较字符串s1和s2的大小,如果s1s2,函数返回s1的值,否则返回s2的值。若运行时依次输入abcd、abba和abc三个字符串,执打strcpy(string,scmp(str[0],str[1]));后,string的值为abba,再执行strcpy(string,scmp(string,str[2]));,由于scmp(string,str[2])返回string的值abba,再拷贝到字符串数组string中,所以本题输出abba。

第6题:

有以下程序includestruct STU{char name[10];int num;};void f(char*name, intnum){s

有以下程序 #include <string.h> struct STU { char name[10]; int num; }; void f(char *name, int num) { struct STU s[2]={{"SunDan",20044},{"Penghua",20045}}; num=s[0].num; strcpy(name,s[0].name); } main() { struct STU s[2]={{"YangSan",20041},{"LiSiGuo",20042}},*p; p=&s[1]; f(p->name,p->num); printf("%s %d\n",p->name,p->num); } 程序运行后的输出结果是

A.SunDan 20042

B.SunDan 20044

C.LiSiGuo 20042

D.YangSan 20041


正确答案:A
解析:题目中定义的函数f()包含两个参数,一个字符指针,—个整型变量。当修改参数指针所指向的内容的时候,实参所指的内容也被修改,即传址调用;但只是修改参数变量的内容,则实奉不受影响,即传值调用。因此,主函数调用f()函数后,第1个参数被修改成函数中s[0]的name成员,第2个参数不受影响,还是主函数中s[1]的num成员。故最终输出SunDan20042。应该选择A。

第7题:

以下程序的输出结果是【】。 include include void main 0 { char s[50]; st

以下程序的输出结果是【 】。

include<iostream.h>

include <string.h>

void main 0 {

char s[50];

strcpy(&s[O], "No" );

strcpy(&s[1], "123" );

strcpy (&s[2], "23456" );

cout<<s;

}


正确答案:N123456
N123456

第8题:

设已包含头文件,下列程序段的运行结果是()。char s1[]={"ACDEF"};char s2[]="ABC";strc

设已包含头文件<string.h>,下列程序段的运行结果是( )。 char s1[]={"ACDEF"}; char s2[]="ABC"; strcpy(s1,s2); printf("%d",strlen(s1));

A.3

B.4

C.6

D.5


正确答案:A
解析: 头文件string.h>是字符串处理函数对应的头文件,要想调用C语言的库函数时,都要在程序中嵌入该函数对应的头文件,否则无法使用库函数。strcpy(s1,s2)把s2中的字符串复制到s1中,所以结果就为s2的长度。

第9题:

有以下程序: include struct STU (char name[10]; int num; };

有以下程序: #include <string.h> struct STU (char name[10]; int num; }; void f(char *name, int num) {struct STU s[2]={{"SunDan",20044}.{"Penghua",20045}}; num=s[0].num; strcpy(name,s[0].name); } main() {struct STU s[2]={{"YangSall",20041},{"LiSiGao",20042}},*p;p=&s[1]; f(p->name,p->num); printf("%s%d\n",p->name,p->num); } 程序运行后的输出结果是 ______。

A.SunDan 20042

B.SunDan 20044

C.LiSiGuo 20042

D.YangSan 20041


正确答案:A
解析:本题主函数中定义了结构体类型的指针变量p,并使其指向了结构体类型的数组s[1],并通过调用函数f改变了指针变量p所指向的结构体中成员变量name的值,但并未改变其num的值。这是因为函数f中的形参name是一个字符型指针变量,它指向了主函数中指针变量p所指向的结构体的成员变量name,所以对函数f中的形参*name的改变也就是刘主函数中p->name的改变,而函数f中对形参num的改变并不会影响主函数中p->num的值,因为此时传递给num的是一个值,而不是地址。

第10题:

以下程序的输出结果是______。includeincludefun(char*w,int n){ char t,*s

以下程序的输出结果是______。 #include<stdio.h> #include<string.h> fun(char*w,int n) { char t,*s1,*s2; s1=w;s2=w+n-1; while(s1<s2) { t=*s1++; *s1=*s2-; *s2=t; } } main() { char*p; p="1234567"; fun(p,strlen(p)); puts(p); }

A.1234567

B.7654321

C.1711717

D.7177171


正确答案:C
解析:在子函数fun中,s1为字符串w的起始地址,s2为字符串的结束地址(字符'\0'除外),当执行循环结束循环, w="1711717"。

更多相关问题