有以下程序 #include <stdio.h> #include <string.h> typedef strlIct{char name[9]

题目

有以下程序 #include <stdio.h> #include <string.h> typedef strlIct{char name[9];char sex;float score[2];}STU; STU f(STU a) { STU b={"Zhao",m,85.0,90.0);int i; strcpy(a name,b.name); sex:b.sex; for(i=0;i<2;i++)a.score[i]=b.score[i]; return a; } main {STU c="Qian",f,95.0,92.0},d; d=f(c).printf("%s,%c,%2.0f,%2.0f",d.Name,d.sex,d.score[0],d.score[1]); } 程序的运行结果是( )。

A.Qian,f,95,92

B.Qian,m,85,90

C.Zhao,m,85,90

D.Zhao,f,95,92

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

第1题:

有以下程序includeincludevoid main( ){char*p="abcde\0fghjik\0"; cou

有以下程序 #include<string.h> #include<iostream.h> void main( ) { char*p="abcde\0fghjik\0"; cout<<strlen(p);} 程序运行后的输出结果是

A.12

B.15

C.6

D.5


正确答案:D
解析:C++语言规定了一个字符串结束标志,以字符'\0'代表,在遇到'\0'时,表示字符串结束,由它前面的字符组成字符串。

第2题:

有以下程序includemain(){int a=5,b=lt; t=(a<<2)|b;printf("%d\n",t);}程序运行后的

有以下程序 #include<stdio.h> main() { int a=5,b=lt; t=(a<<2)|b;printf("%d\n",t); } 程序运行后的输出结果是______。

A.21

B.11

C.6

D.1


正确答案:A
解析:本题主要考查了C语言的逻辑运算符,先将变量a,b的值转换为2进制数,a=00000101,b=00000001,a先左移 2位结果为00010100,再与b按位或运算,结果为00010101,转换为十进制数为21,因此,选项A是正确的。

第3题:

有以下程序:includeincludeusingnameSpacestd;classperson{ intage; Char*nam

有以下程序:

include <iostream>

include <string>

using nameSpace std;

class person

{

int age;

Char * name;

public:

person ( int i, Char * str )

{

int j;

j = strlen( str ) + 1;

name = new char[ j ];

strcpy( name, str );

age = i;

}

~person()

{

delete name;

cout<<"D";

}

void display()

{

cout<<name<<":"<<age;

}

};

int main()

{

person demo( 30,"Smith" );

demo.display();

return 0;

}

则该程序的输出结果为:【 】。


正确答案:Smith:30 D
Smith:30 D 解析:本题考核类与对象的操作。主函数中定义类person的对象 demo,并赋初值(30,"smith")。然后调用成员函数display()输出赋值结果,即Smitch:30。程序结束时demo对象的析构函数被调用,再输出“D”。

第4题:

有以下程序,程序运行的结果是 ______。includeincludevoid main(){charx

有以下程序,程序运行的结果是 ______。 #include<iostream.h> #include<string.h> void main(){ char x[]= "C++" ,y[10]= "C++" ; cout<<sizeof(x)/sizeof(char)<<“,”<<sizeof(y)/sizeof(char); }

A.3 3

B.4 4

C.4 10

D.10 10


正确答案:C

第5题:

有以下程序段:

当执行上述程序段,并从键盘输入:nalne=Lili nLim=1001<;回车>;后,name的值为( )。

A.name:=Lili num=1001

B.nfll"ne=Lili

C.Uli.h.um=

D.Lili


正确答案:D
在输入格式控制“name=%snum=%d”中,普通字符“ns.111e=num=”在输入时要原样输入,而格式控制符%s和%d对应各自的输入项,将输入的数据赋给相应的输入项。本题中输入“name=Lifthum=1001<回车>”后,将字符串Ijli赋给字符数组llalne,整数1001赋给变量num。因此D选项正确。

第6题:

有以下程序:includeincludevoid main( ){char * p="abcde\0fghjik\0";c

有以下程序: #include<string.h> #include<iostream.h> void main( ) { char * p="abcde\0fghjik\0"; cout < < strlen(p) ;} 程序运行后的输出结果是

A.12

B.15

C.6

D.5


正确答案:D
解析:C++语言规定了一个字符串结束标志,以字符'\0'代表,在遇到'\0'时,表示字符串结束,由它前面的字符组成字符串。

第7题:

有以下程序: #include 〈iostream〉 #include 〈string〉 using namespace std; class visited { private: int number; char *name; public: static int glob; void set mes(char *a); }; void visited::set mes(char *a) { name=new char[strlen(A) +1]; strcpy(name,A) ; number=++glob; } int visited::glob-O; int main() { visited person[10]; int i; char str[8]; for(i=0;i<5;i++) { cin>>str; person[i] .set mes(str); } cout<

A.5

B.4

C.3

D.2


正确答案:A
解析:本题考核静态数据成员的应用。分析程序:①类visited中,定义了两个私有成员:整型变量number和指针变量name。两个公有成员:静态数据变量glob和函数setmes()。②在函数setmes中,把传入的字符串保存在类的私有成员name中,并把静态数据成员glob自加,同时赋值给私有成员number。通过以上分析可知,函数setmes()用来记录输入的名字(即来访者的姓名),静态数据变量glob用来记录有多少来访者。在主函数中,输入5个字符串(即5个来访者的姓名)后,用来记录来访者数目的静态数据成员glob的值变成5。所以程序最后的输出结果是5。

第8题:

有以下程序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。

第9题:

有以下程序include.main(){char*p="abcde\ofghjik\0";printf("%d\n",strlen(p));} 程

有以下程序 #include.<string.h> main() { char *p="abcde\ofghjik\0"; printf("%d\n",strlen(p)); } 程序运行后的输出结果是

A.12

B.15

C.6

D.5


正确答案:D
解析:本题首先定义了一个字符型指针变量p,并用一个宇符串给它赋值,然后调用printf()函数输出p所指向的字符串的长度。字符串的结束标记为“\0”,其长度为“\0”前的字符个数,故长度为5。所以4个选项中D正确。

第10题:

有以下程序:includeinclude struct STU {char name[10];int hum;};void f(

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

A.SunDan 20042

B.SunDan 20044

C.LiSiGuo 20042

D.YangSan 20041


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