itgle.com

有以下程序#include <stdio.h>#include <string.h>typedef struct{ 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);a.sex=b.sex;for(i=0;i<2;i++) a.score[i]=b.score[i];return a;}main(){ STU c={"Qia

题目

有以下程序

#include <stdio.h>

#include <string.h>

typedef struct{ 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);

a.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\n",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


相似考题
更多“有以下程序#include &lt;stdio.h&gt;#include &lt;string.h&gt;typedef struct{ char name[ ”相关问题
  • 第1题:

    有以下程序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是正确的。

  • 第2题:

    有以下程序段:

    当执行上述程序段,并从键盘输入: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选项正确。

  • 第3题:

    有以下程序,程序运行的结果是 ______。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

  • 第4题:

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

  • 第5题:

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

  • 第6题:

    有以下程序: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的是一个值,而不是地址。