精华内容
下载资源
问答
  • 以下程序输出结果是____。

    千次阅读 2017-08-01 16:27:24
    以下程序输出结果是__。class A { public: virtual void func(int val = 1) { std::cout<<"A->";} virtual void test() { func();} }; class B : public A { public: void func(int val=0

    以下程序输出结果是__

    class A
    {
    public:
        virtual void func(int val = 1)
        { std::cout<<"A->"<<val <<std::endl;}
        virtual void test()
        { func();}
    };
    class B : public A
    {
    public:
        void func(int val=0)
    {std::cout<<"B->"<<val <<std::endl;}
    };
    int main(int argc ,char* argv[])
    {
        B*p = new B;
        p->test();
    return 0;
    }

    正确答案: B

    A、A->0
    B、B->1
    C、A->1
    D、B->0
    E、编译出错
    F、以上都不对

    正确答案:B

    记住:virtual 函数是动态绑定,而缺省参数值却是静态绑定。 意思是你可能会 在“调用一个定义于派生类内的virtual函数”的同时,却使用基类为它所指定的缺省参数值。
    结论:绝不重新定义继承而来的缺省参数值!(可参考《Effective C++》条款37)
    对于本例:

    B*p = newB;
    p->test();

    p->test()执行过程理解:
    (1) 由于B类中没有覆盖(重写)基类中的虚函数test(),因此会调用基类A中的test();
    (2) A中test()函数中继续调用虚函数 fun(),因为虚函数执行动态绑定,p此时的动态类型(即目前所指对象的类型)为B*,因此此时调用虚函数fun()时,执行的是B类中的fun();所以先输出“B->”;
    (3) 缺省参数值是静态绑定,即此时val的值使用的是基类A中的缺省参数值,其值在编译阶段已经绑定,值为1,所以输出“1”;
    最终输出“B->1”。所以大家还是记住上述结论:绝不重新定义继承而来的缺省参数值!

    展开全文
  • 以下程序输出结果是:

    千次阅读 2018-11-21 23:31:50
    以下程序输出结果是: #include “stdio.h” main() {char *s,*s1=“here is”,*s2=“key”; s=s1; while (*s1!=’\0’) s1++; while (*s1++!=*s2++) s2=s; while (*s2!=’\0’) s2++; printf ("%d-%d=%d\n&...

    以下程序的输出结果是:
    #include “stdio.h”
    main()
    {char *s,*s1=“here is”,*s2=“key”;
    s=s1;
    while (*s1!=’\0’) s1++;
    while (*s1++!=*s2++) s2=s;
    while (*s2!=’\0’) s2++;
    printf ("%d-%d=%d\n",s2,s,s2-s);
    }
    之前一直不理解这个的结果是什么意思。。
    在这里插入图片描述

    #include "stdio.h"
    main()
    {char *s,*s1="here is",*s2="key"; 
    s=s1; //从这里开始,print的s=s1=19748668,即字符串存储起始位置
    while (*s1!='\0')	s1++;//s1向后走,直到字符串的末尾\0,此时printf的s1=19748675
    while (*s1++!=*s2++)	s2=s;
    //这行功能:比较s1与s2,s1的“h”(位置为s+1=19748669)与s2的“k”不同,则s2=s
    //这行执行后:s1=19748922,s2=19748669
    while (*s2!='\0')	s2++; 
    //这行让s2查找至末尾\0: s2=19748675(*s2="here is")
    printf ("s=%d\n",s);
    printf ("s1=%d\n",s1);
    printf ("s2=%d\n",s2);
    printf ("%d-%d=%d\n",s2,s,s2-s);//s2-s即“here is”的长度为7
    }
    

    每次执行程序,存储位置都不一定相同,故s,s1,s2的值每次都会有所不同,但是存储的相对位置是不会改变的,s2-s即“here is”的长度,为7。

    展开全文
  • 以下程序段的输出结果为()。 for(i=4;i>1;i--) for(j=1;j;j++) putchar('#'); A:无 B:###### C:# D:###
  • void ss (char *s,char t) { while (*s) { if(*s==t) *s=t-‘a’+’A’; s++; } } void main() { char str1[100]=“abcddfefdbd”,c=‘d’; ss (str1,c); printf ("%s\n",str1); } ABCDDEFEDBD ...Abcd...

    void ss (char *s,char t)
    {
    while (*s)
    {
    if(*s==t) *s=t-‘a’+’A’;
    s++;
    }
    }
    void main()
    {
    char str1[100]=“abcddfefdbd”,c=‘d’;
    ss (str1,c); printf ("%s\n",str1);
    }

    ABCDDEFEDBD
    abcDDfefDbD
    abcAAfefAbA
    Abcddfefdbd

    解析:
    函数ss的功能就是将字符串s中的所有字符为t的字符替换为大写字符。对
    于主函数中的函数ss的调用,就是将字符串str1中的小些字符’d’替换成大写字符’D’。所以
    正确答案是B。

    展开全文
  • 执行以下程序段后,输出结果是______。 StringBuffer str = new StringBuffer("123"); str.insert(2,"*"); System.out.println(str); A.123 B.*123 C.1*23 D.12*3
  • 以下代码的输出结果是什么?

    千次阅读 2017-07-27 17:17:06
    本来是要调用C类的GetData() ,C中未定义,故调用B中的,但是B中也为定义,故调用A中的doGetData() ,因为A中的doGetData() 是虚函数,所以调用B类中的doGetData(),而B类的doGetData() 返回B::a,故输出1. ...

    #include<iostream>
    using namespace std;
    class A{
    	protected:
    		int a;
    	public:
    		A(int data=0)
    		{
    			a=data;
    		}
    		int GetData()
    		{
    			return doGetData();
    		}
    		virtual int doGetData()
    		{
    			return a;
    		}
    };
    
    class B:public A
    {
    	protected:
    		int a;
    	public:
    		B(int data=1)
    		{
    			a=data;
    		}
    	    int doGetData()
    		{
    			return a;
    		}
    };
    
    
    class C:public B
    {
    	protected:
    		int a;
    	public:
    		C(int data=2)
    		{
    			a=data;
    		}
    };
    
    int main()
    {
    	C c(10);
    	cout<<c.GetData()<<endl;
    	cout<<c.A::GetData()<<endl;
    	cout<<c.B::GetData()<<endl;
    	cout<<c.C::GetData()<<endl;
    	cout<<c.doGetData()<<endl;
    	cout<<c.A::doGetData()<<endl;
    	cout<<c.B::doGetData()<<endl;
    	cout<<c.C::doGetData()<<endl;
    	
    	return 0;
    }


    cout<<c.GetData()<<endl;
    本来是要调用C类的GetData() ,C中未定义,故调用B中的,但是B中也为定义,故调用A中的doGetData() ,因为A中的doGetData() 是虚函数,所以调用B类中的doGetData(),而B类的doGetData() 返回B::a,故输出1.

    cout<<c.A::GetData()<<endl;
    因为A中的doGetData() 是虚函数,又因为C类中未重定义该接口,所以调用B类中的doGetData(),故输出1.

    cout<<c.B::GetData()<<endl;
    肯定返回1了。

    cout<<c.C::GetData()<<endl;
    因为C类中未重定义GetData(),故调用从B继承来的GetData(),但是B类也未定义,所以调用A中的GetData(),因为A中的doGetData() 是虚函数,所以调用B类中的doGetData(),而B类的doGetData() 返回B::a,故输出1.

    cout<<c.doGetData()<<endl;
    肯定是B类的返回值1了。

    cout<<c.A::doGetData()<<endl;
    因为直接调用了A的doGetData(),所以输出为0.

    cout<<c.B::doGetData()<<endl;
    因为直接调用了B的doGetData(),所以输出为1.

    cout<<c.C::doGetData()<<endl;
    因为C类中未重新定义该接口,所以调用B类中的doGetData(),故输出为1.





    展开全文
  • 【C语言】编写程序输出以下图形

    千次阅读 2019-11-22 14:26:00
    编写程序输出以下图形: * ** *** **** ***** 代码: #include <stdio.h> int main() { int i, j; for (i = 1; i <= 5; i++) { for (j = 1; j <= i; j++)/*内层循环控制每行输出*字符的个数*/ .....
  • 编写一个程序输出以下图案

    万次阅读 2016-10-23 20:36:21
    编写一个程序输出以下图案   *   ***  *****  *******  *********  *********** *************  ***********  *********  *******  *****   ***  * #include int
  • 写了一个JAVA程序,想再写一个界面,将程序输出结果显示在界面上该怎么做
  • 以下程序的功能是输入一个字符串和一个字符,如果该字符在字符串中,就从该字符首次出现的位置开始输出字符串中的字符。例如,如果输入的字符串为“Hello”,输入的字符为’e’,则输出结果为“ello”。请填空。 ...
  • 输出以下的杨辉三角形(要求输出10行) #include<stdio.h> int main() { int i,j,a[10][10]; for(i=0;i<10;i++) { a[i][0]=1; a[i][i]=1; if(i>0) { for(j=1;j<i;j++) { a[i]...
  • 编写程序输出矩阵

    千次阅读 2018-03-25 16:10:56
    4、编写程序输出下面矩阵: 1 2 3 4 5 2 3 4 5 1 3 4 5 1 2 4 5 1 2 3 5 1 2 3 4 #include &lt;stdio.h&gt; int main() { int i,j; int a[5][5]={{1,2,3,4,5},{2,3,4,5,1},{3,4,5,1,2},{4,5,1,2,3...
  • 编写一个控制台应用程序,完成下列功能,并写出运行程序输出结果。1) 创建一个类A,在A中编写一个可以被重写的带int类型参数的方法MyMethod,并在该方法中输出传递的整型值加10后的结果。2) 再创建一个类B,使其...
  • 功能:请编写输出以下图案的程序,图案的行数由输入的值确定 A BBB CCCCC DDDDDDD EEEEEEEEE */ #include<stdio.h> int main(void) { int i, j; int lines; char ch = 'A'; printf("请输入图案的行数...
  • 编写程序,从键盘上输入两个数,比较两个数的大小,并输出比较结果程序运行结果参考下图:    代码: import java.util.Scanner; public class Compare_Number { public static void main(String[] ...
  • 编写程序输出如下图形2

    万次阅读 2018-07-25 19:44:19
    题目:编写程序输出如下图形2 思路:将程序分成上下两半,再将上半部分分成三部分,一部分,另一部分就是剩下的部分。第一部分由输出的空格和数字组成,另一部分是反过来的数字。 程序: #include&lt;stdio...
  • 返回:贺老师课程教学链接 C语言及程序设计初步 【阅读程序题】1、写出以下程序输出结果,再在计算机上运行程序。对比两结果是否相同,以此检查自己的学习效果。2、遇到在视频中未讲的格式控制符,上网搜索发现...
  • 2013版本的基本上看不到输出结果。 第一种办法: 在程序的最末端加上system("pause"); 通过系统命令来停止。 ...PS:记得加上system的头文件哦。...比如以下程序: int main() { char passwd[10] = {0}
  • 如果是闰年,输出“yes”,否则输出“no”。 将下面的程序填写完整。 #include &lt;stdio.h&gt; int main() { int y; while (scanf("%d",&amp;y)!=EOF) { .................
  • 方法一:使用的是tee命令将运行结果输出到日志中 1.直接覆盖日志文件 tee ./t.log 2.将输出内容附加到日志文件 tee -a ./t.log 例: 方法二:使用的是script命令将终端所有信息输出到日志中 实现方式 ...
  • package Second; import java.util.Scanner;...对输入的字符串进行反转并显示结果,例如输入字符串为hello,则程序输出olleh。  */  public static void main(String[] args) {  // TODO Au
  • 第一个python程序-输入与输出

    千次阅读 2018-07-27 15:46:29
    不同的程序有不同的作用,但最终的结果都要反馈给人类,这就需要程序结果输出在屏幕上。那么,首先,我们来看python程序输出。用 print()在括号内加上字符串,就可以在屏幕上输出指定的文字了,比如说,你想输出...
  • 近期一个Win32窗口项目中,调试时经常需要输出调试信息以追踪数据流及程序运行状态。 起初我封装了一系列文件操作,实现了日志形式的调试信息输出,但在后期的使用过程中越发觉得颇不顺手。那么,如何方便地在Win32...
  • 已知字母A的ASCII码为十进制的65,下面程序输出是______A_____. #include<stdio.h> void main() {char ch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3'; printf("%d,%c\n",ch1,ch2); } A) 67,D B) B,C C) C,D D) 不...
  • 本题要求编写程序,对顺序读入的n个整数,顺次计算后项减前项之差,并按每行三个元素的格式输出结果。 输入格式: 输入的第一行给出正整数n(1<n≤10)。随后一行给出n个整数,其间以空格分隔。 输出格式: 顺次...
  • Windows程序设计--文本输出(一)

    万次阅读 2015-10-21 23:10:45
    这里主要讨论的是WM_PAINT消息 ,以下任何一个事件发送,窗口过程都会收到一条WM_PAINT消息: 1用户移动一个窗口,导致原来被遮盖的部分窗口暴露出来; 2用户调整了窗口的大小; 3程序调用ScrollWindow或
  • C程序设计(第三版) 谭浩强习题1.5 请参照本章例题,编写一个C程序输出以下信息:* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *Very good!* * * * * * * * * * * * * * * * * * * * * * * * * *...
  • 编一个统计选票的程序,先后输入被选人的名字,最后输出各人得票结果。解:程序:#includestruct Person{char name[20];int count;}leader[3] = {"li",0,"zhang",0,"yao",0};int main(){int i, j;char leader_name...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 996,832
精华内容 398,732
关键字:

以下程序的输出结果是123