以下程序的运行结果是()。includemain(){st,uct date {int year,month,day;}today; pri以下程序的运行结果是( )。 #include <stdio.h> main() { st,uct date {int year,month,day;}today; printf("%d\n",sizeof(struct date)); }A.6B.8C.10D.12

题目
以下程序的运行结果是()。includemain(){st,uct date {int year,month,day;}today; pri

以下程序的运行结果是( )。 #include <stdio.h> main() { st,uct date {int year,month,day;}today; printf("%d\n",sizeof(struct date)); }

A.6

B.8

C.10

D.12


相似考题
更多“以下程序的运行结果是()。#include<stdio.h>main(){st,uct date {int year,month,day;}today; pri ”相关问题
  • 第1题:

    以下程序的运行结果是

    #include "stdio.h"

    main()

    {struct date

    {int year,month,day;}today;

    printf("%d\n",sizeof(struct date));

    }

    A.6

    B.8

    C.10

    D.12


    正确答案:A

  • 第2题:

    在下面程序的画线处填上适当的内容,使程序执行后的输出结果为1/2005。 include usin

    在下面程序的画线处填上适当的内容,使程序执行后的输出结果为1/2005。

    include <iostream>

    using namespace std;

    class Date{

    public:

    Date(int m=1,int y=0):month(m),year(y){}

    void Print( ){cout<<month<<"/"<<year<<endl;}

    (9) operator+(const Date&dl,const Date& d2);

    private:

    int month,year;

    };

    (10) operator+(const Date& dl,const Date& d2){

    int year,month;

    year=d1.year+d2.year;

    month=d1.month+d2.month;

    year+=(month-1)/12;

    month=(month-1)%12+1;

    return Date(month,year);

    }

    void main( ){

    Date dl(3,2004),d2,d3(10);

    d2=d3+dl;

    d2.Print( );

    }


    正确答案:friend:Date Date
    friend:Date Date 解析:因为重载函数后面有两个形参,“+”运算符是二元运算符,故将“+”运算符重载为友元函数,重载为友元函数的一般格式为:
    niend函数类型operator运算符(形参表){函数体}

  • 第3题:

    有以下程序: class Date { public: Date(int y,int m,int D) ; { year =y; month=m; day=d; } Date(int y=2000) { year=y; month=10; day=1; } Date(Date &D) { year=d.year; month=d.month; day=d.day; } void print () { cout<<year<<"."<<month<<"."<<day<<end1; } private: int year,month,day; }; Date fun(Date D) { Date temp; temp=d; return temp; } int main() { Date date1(2000,1,1),date2(0,0,0); Date date3(date1); date2=fun(date3); return 0; } 程序执行时,Date类的拷贝构造函数被调用的次数是

    A.2

    B.3

    C.4

    D.5


    正确答案:B
    解析:本题考核拷贝构造函数。上述程序中,拷贝构造函数一共被调用了3次:第一次是在执行语句Datedate3(date1);时,用已经建立的对象date1对正在建立的对象date3进行初始化:第二次是在调用fun函数时,由于是传值调用,因此实参对象date3要对形参对象d进行初始化;第三次是在执行fun函数中的返回语句returntemp;时,系统用返回初始化一个匿名对象时使用了拷贝构造函数。

  • 第4题:

    有以下程序include using namespace std;static int days[]= { 31,28,31,30,31,30,31

    有以下程序 #include <iostream> using namespace std; static int days[]= { 31,28,31,30,31,30,31,31,30,31,30,31 }; class date { private: int month, day, year; public: date( int m, int d, int y ) { month = m; day = d; year = y; } date() {} void disp() { cout<<year<<"-"<<month<<"-"<<day<<end1; } date operator+( int day ) { date dt = *this; day+= dt.day; while ( day > days[dt.month - 1 ] ) { day -= days[ dt.month - 1 ]; if ( ++dt.month == 13 ) { dt.month = 1; dt.year++; } } dt.day = day; return dt; }; int main() { date d1( 6, 20, 2004 ), d2; d2: d1 + 20; d2.disp(); return 0; } 执行后的输出结果是

    A.2004-7-10

    B.2004-6-20

    C.2004-7-20

    D.程序编译时出错


    正确答案:A
    解析:本题考核运算符的重载。本题通过将“+”运算符重载为类date的成员函数实现简单的对象加法。

  • 第5题:

    有以下程序include usingnamespacestd;static int days []={31,28.31,30,31,30,31,31

    有以下程序 #include <iostream> using namespace std; static int days []={31,28.31,30,31,30,31,31,30,31,30,31}; class date { private: int month, day, year: public: date (int m, int d, int y { month = m; day = d; year = y; } date{} {} void disp {) { cout <<year<<" - "<<month<< "- "<<day<<end1; } date operator+(int day) { date dt = *this: day += dt.day; while { day > days[ dt.month - 1 ] ) { day -= tays[ dt.month - 1 ]; if ( ++dt.month == 13 { dt.month = 1; dt.yeare++; } } dr. day = day; return dt; } }; int main() { date d1( 6, 20, 2004 ), d2; d2.= d1 + 20; d2.disp (); return 0; } 执行后的输出结果是

    A.2004-7-10

    B.2004-6-20

    C.2004-7-20

    D.程序编译时出错


    正确答案:A
    解析:本题考核运算符的重载。本题通过将“+”运算符重载为类date的成员函数实现简单的对象加法。

  • 第6题:

    阅读以下说明和C++抖程序,将应填入(n)处的字句写在答题纸的对应栏内。

    【说明】

    下面程序的功能是计算并输出某年某月的天数。

    【C++程序】

    include<iostream>

    using namespace std;

    (1) Month{Jan,Feb,Mar,Art,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec};

    class Date{

    public:

    Date(int year,Month m_month){

    (2) =year;

    if (m_month<Jan‖m_month>Dec) month=Jan;

    else month=m_month;

    };

    ~Date(){};

    bool IsLeapYear(){

    return ((year%4==0 && year%1001!=0)‖year%400==0);

    };

    int CaculateDays(){

    switch( (3) ){

    case Feb:{

    if( (4) )return29;

    e1Se return 28;

    }

    case Jan:case Mar:case May:case Jul:case AUg:case Oct:

    case Dec:retllrn 31;

    case Apr:case Jun:Case Sep:case Nov:roturu30;

    }

    };

    private:

    int year;

    Month month;

    };

    void main(){

    Date day(2000,Feb);

    tout<<day. (5) ();

    }


    正确答案:(1)enum (2)this->year (3)month (4)IsLeapYear() (5)Cacu lateDays
    (1)enum (2)this->year (3)month (4)IsLeapYear() (5)Cacu lateDays 解析:程序的空(1)所在行的目的是定义一枚举类型用来表示一年12个月,所以空1应填上enum;在类Data中定义了两个私有变量year和m_month分

    别用来存储年份和月份,在Data类的构造函数中,要求给出年份和月份来构造一个Data类的对象,因为构造函数中参数名称和私有变量的名称

    相同,为了在构造函数中使用私有变量year,必须加上 this指针,所以空(2)应填上this->year。
    函数CaculateDays用宋计算某一年某个月的天数,不论是否是闰年,除2月份以外,所有的大月都是31天,小月都是30天;如果是闰年,2

    月份是29天,否则是28天。根据分析,空(3)应填上m month用来判断月份是大月、小月或者二月,空(4)用来判断是否是闰年,调用函数

    IsLeapYear()即可得到结果。

  • 第7题:

    下面程序的运行结果是( )。include main(){int a=25; fun(&A); }fun(int *x){ print

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

    include<stdio.h>

    main()

    {int a=25;

    fun(&A);

    }

    fun(int *x)

    { printf("%d\n",++*x);

    }


    正确答案:26
    26 解析:在主函数中只调用了fun函数,调用时把变量a的地址传递给形参。fun函数的形参x是一个指针,其基类型与主函数中a的类型一致,因此在调用时得到的是a的地址,输出项是++*x,*x代表的就是主函数中变量a的存储单元,++*x就是使主函数中a的值加1,输出26。

  • 第8题:

    有以下程序:includeusingnamespacestd;staticintdays[]={31,28,31,30,31,30,31,31,30

    有以下程序: #include <iostream> using namespace std; static int days[]={ 31,28,31,30,31,30,31,31,30,31,30,31 }; class date { private: int month,day,year; public: date( int m,int d,int y ) { month = m; day = d; year = y; } date() {} void disp() { cout<<year<<"-"<<month<<"-"<<day<<end1; } date operator+( iht day ) { date dt = * this; day += dt.day; while ( day > days[ dt.month - 1 ] ) { day -= days[ dt.month - 1 ]; if ( ++dt.month == 13 ) { dt.month = 1; dt.year++; } } dt.day = day; return dt; } }; int main() { date dl( 6, 20, 2004 ), d2; d2 = dt + 20; d2.disp(); return 0; } 执行后的输出结果是( )。

    A.2004-7-10

    B.2004-6-20

    C.2004-7-20

    D.程序编译时出错


    正确答案:A
    解析:本题通过将“+”运算符重载为类date的成员函数实现简单的对象加法。类date中的“+”运算符重载函数中,将传入的实参值day,加到类date的私有成员变量day上,并实现变量month和year的相应变化,从而达到日期对象相加的目的。

  • 第9题:

    下列程序的运行结果为()。include main(){stmct date {int year,month,day; }today; pr

    下列程序的运行结果为( )。 #include <stdio.h> main() { stmct date {int year,month,day; }today; printf("%d\n",sizeof(struct date)); }

    A.8

    B.6

    C.10

    D.12


    正确答案:B
    解析:解答本题需要注意两个知识点:①结构体变量的长度是其内部成员长度的总和,本题中,stmct date中包含year、month、day这3个整型变量,一个整型变量占2个字节:②sizeof是求所占字节数的运算符。

  • 第10题:

    有以下程序includeusing namespace std;static int days []={31,28,31,30,31,30,3l,3

    有以下程序 #include<iostream> using namespace std; static int days []={31,28,31,30,31,30,3l,31,30,31,30,31}; class date { private: int month,day,year; public: date(int m,int d,int y) { month=m; day=d; year=y; } date() {} void disp() { cout<<year<<"-"<<month<<"-"<<day<<end1; } date operator+(int day) { date dt=*this; day+=dt.day; while(day>days[dt.month-1]) { day-=days[dt.month-1]; if(++dt.month==13) { dt.month=1; dt.year++; } } dt.day=day; retrn dt; } }; int main() { date d1(6,20,2004),d2; d2=d1+20; d2.disp(); return 0; } 执行后的输出结果是

    A.2004-7-10

    B.2004-6-20

    C.2004-7-20

    D.程序编译时出错


    正确答案:A
    解析:本题考核运算符的重载。本题通过将“+”运算符重载为类date的成员函数实现简单的对象加法,

  • 第11题:

    在下向程序和横线处填上适当的内容,使程序执行后的输出结果为1/2005。 include using

    在下向程序和横线处填上适当的内容,使程序执行后的输出结果为1/2005。

    include <iostream>

    using namespace std;

    class Date

    {

    public:

    Date(int m=1,int y=0):month(m),year(y){}

    void Print() {cout<<month<<"/"<<year<<end 1; }

    【 】 operator+(eonst Date& d1, const Date& d2);

    private:

    int month,year;

    };

    【 】 operator+(const Date& d1, const Date& d2)

    {

    int year,month;

    year=d1.year+d2.year;

    month=d1. month+d2.month;

    year+=(month-1 )/12;

    month=(month-1 )% 12+1;

    return Date(month,year);

    }

    void main()

    Date d1 (3,2004),d2,d3(10);

    d2=d3+d1;

    d2,Print();

    }


    正确答案:friend Date Date
    friend Date Date 解析:重载及友元的相关内容。

  • 第12题:

    有以下程序: Class Date {public: Date(int y,int m,int d); {year=y; month=m; day=d;} Date(int y=2000) {year=y; month=10; day=1;) Date(Date &D) {year=d.year; month=d.month; day=d.day;} void print() {cout<<year<<“.”<<mo

    A.2

    B.3

    C.4

    D.5


    正确答案:B
    解析: 本题拷贝构造函数一共被调用了3次:第一次是在执行语句Date date3(date1);时,用已经建立的对象date1对正在建立的对象date3进行初始化;第二次是在调用fun函数时,由于是传住调用,因此实参对象date3要对形参对象d进行初始化,第三次是在执行fun函数中的返回语句returntemp;时,系统用返回初始化一个匿名对象时使用了拷贝构造函数。

  • 第13题:

    以下程序运行后的输出结果是【】include main ( ) {char a[] ="123456789", *p;int i =0;

    以下程序运行后的输出结果是【 】

    include <stdio.h>

    main ( )

    { char a[] ="123456789", *p;

    int i =0;

    p=a;

    while( * p)

    { if(i%2 ==0) *p='*';

    p++;i++;

    }

    puts(a);

    }


    正确答案:*2*4*6*8*
    *2*4*6*8* 解析:程序中指针p指向数组a,while(*P)语句的循环条件是* p!='\0',在循环体中,当 i=0,2,4,6,8时,i%2=0,执行*p='*',即a[i]='*',继续执行p++;i++;使i为奇数;当i=1, 3,5,7时,i%2=1,继续执行p++;i++;使i为偶数。可见,程序在字符串"123456789",的下标为偶数的位置上赋值'*',代替原字符串中的1,3,5,7,9。所以,程序输出结果为*2*4*6*8*。

  • 第14题:

    在下面程序的横线处填上适当的内容,使程序执行后的输出结果果为1/2005。 include using

    在下面程序的横线处填上适当的内容,使程序执行后的输出结果果为1/2005。

    include<iostmam>

    using namespace std;

    class Date

    {

    public:

    Date(int m=1,int y=0):month(m),year(y){}

    void Print(){cout<<month<<"/"<<year<<endl;}

    operator+(const Date&d1.const Date& d2);

    private:

    int month,year;

    };

    operator+(const Date&d1,const Date &d2)

    {

    int year,month;

    year=d1.year+d2.year;

    month=d1.month+d2.month;

    year+=(month-1)/12;

    month=(month-1)%12+1;

    return Date(month,year);

    }

    void main()

    {

    Date d1(3,2004),d2,d3(10);

    d2=d3+d1;

    d2.Print();

    }


    正确答案:friend Date Date
    friend Date Date

  • 第15题:

    下面结构体的定义语句中,不正确的是______。

    A.structdate { int month; int day; int year; } Struct date datel;

    B.stmctdate { intmonth; int day; int year; } datel;

    C.struct { int month; int day; int year; } date 1;

    D.#define DATE stmct date DATE { int month; int day; int year; }datel;


    正确答案:A

  • 第16题:

    有以下程序 include main() { int a=1, b=2, c=3, x; x=(a^b)&c; pri

    有以下程序 #include <stdio.h> main() { int a=1, b=2, c=3, x; x=(a^b)&c; printf("%d\n",x); } 程序的运行结果是

    A.0

    B.1

    C.2

    D.3


    正确答案:D
    解析:在C语言中,整型数据在内存中是按二进制形式存放的,位运算就是直接对这些二进制进行操作的一系列运算符。例如题目中a、 b、c的值分别为1、2、3,那它们在内存中存放的样子就是:0001、0010、0011(由于数据不大,int类型本来要占4字节也就是32位二进制的,这里就省写为4位了)。
    “^”运算符的作用是:按位异或。意思是:两个操作数对应的二进制位如果相异,则结果对应的二进制位为1,否则结果对应二进制位为0。所以0001^0010=0011。“&”运算符的作用是:位与。意思是:如果两个操作数对应的二进制位同时为1,则结果对应的二进制位为1,否则结果对应二进制位为0。所以0011&0011=0011,也就是十进制的3,故本题最终输出结果为3,应该选择D。

  • 第17题:

    有以下程序#include "stdio.h"main(){ struct date { int number; float fenzhi; char name; }stu; printf("%d\n",sizeof(stu));} 程序的运行结果是A.3 B.5C.7 D.8


    正确答案:C
    本题主要考查结构体所占存储单元的计算。在C语言中,函数sizeof的作用是用以计算变量所处存储单元的大小,即占的字节数。
    在本题中,程序首先定义了一个结构体,该结构体包含三个成员变量,分别为整型、浮点型和字符型。在C语言中,这三种类型的变量所占的字节数分别为2、4、1,然后定义一个该结构体的结构体变量,并输出该结构体变量所占的字节数。那么结果应为2+4+1=7,因此本题正确的答案为C。

  • 第18题:

    以下程序运行后的输出结果是( )。 include main() { int x=20; printf("%d", 0

    以下程序运行后的输出结果是( )。

    include<stdio.h>

    main()

    { int x=20;

    printf("%d", 0<x<20);

    printf("%d\n", 0<x && x<20);

    }


    正确答案:10
    10 解析:表达式0x20,首先计算0x,其值为1,再计算120,其值为1,输出1;表达式0x && x20,0x为1,x20为0,再计算1 && 0,其值为0,输出0。所以输出结果为10。

  • 第19题:

    有以下程序#include "stdio.h"main(){ struct date {int year,month,day;}today; printf("%d\n",sizeof(struct date));}程序的运行结果是A.6 B.8C.12 D.10


    正确答案:A
    本题考查结构体类型所占用的内存字节数。结构体占用的内存字节数为各个成员变量所占内存字节数的总和。题目中给出了一个结构体date,里面包括3个整型的成员变量,在Turbo C中,每个整型变量占用2个字节的内存,这3个整型变量总共占用6个字节的内存。sizeof函数是返回对象所占内存的大小。要注意,对于不同的编译器,同样类型的变量所占的内存字节数不同,C语言的默认编译器为Turbo C。

  • 第20题:

    下列程序的运行结果为( )。 #include<stdio.h> main { struct date {int year,month,day; }today; printf("%d\n",sizeof(struct date)); }

    A.8

    B.6

    C.10

    D.12


    正确答案:B
    structdate中包含year、month、day这3个整型变量,一个整型变量占2个字节;sizeof是求所占字节数的运算符。

  • 第21题:

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

    #include<stdio.h>

    main

    { struct date

    {int year,month,day;

    }today;

    printf("%d\n",sizeof(struct date));

    }

    A.8

    B.6

    C.10

    D.12


    正确答案:B
    structdate中包含year、month、day这3个整型变量,一个整型变量占2个字节;sizeof是求所占字节数的运算符。

  • 第22题:

    阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。

    【说明】

    下面程序的功能是计算并输出某年某月的天数,函数IsLeap Year()能够判断是否是闰年。

    【C++程序】

    include < iostream >

    using namespace std;

    (1) Month {Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec };

    class Date {

    public:

    Date( int year, Month m_ month) {

    this→year = year;

    if( (2) ) month: Jan;

    else month = m_ month;

    };

    ~Date(){};

    bool IsLeap Year( ) {

    return ((year%4= =0 &&year% 100 ! =0)|| year%400= =0);

    };

    int CaculateDays( ) {

    switch(m_month ) {

    case (3) ;{

    if (4) return 29;

    else return 28;

    }

    case Jan: case Mar: case May: case Jul: case Aug: case Oct: case Dec: return 31;

    case Apr: case Jun: case Sop: case Nov: return 30;

    }

    }

    private:

    int year;

    Month month;

    };

    void main( ) {

    Date day(2000,Feb);

    cout < <day. (5) ( );

    }


    正确答案:(1)enum
    (1)enum 解析:枚举类型变量month定义,这里填入enum。

  • 第23题:

    下列程序的运行结果为()。includemain(){struct date {int year,month,day; }today; pr

    下列程序的运行结果为( )。 #include<stdio.h> main() { struct date {int year,month,day; }today; printf("%d\n",sizeof(struct date)); }

    A.8

    B.6

    C.10

    D.12


    正确答案:B
    解析:解答本题需要注意两个知识点;①结构体变量的长度是其内部成员长度的总和,本题中,structdate中包含year、month、day这3个整型变量,一个整型变量占2个字节:②sizeof是求所占字节数的运算符。