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

    千次阅读 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。

    展开全文
  • void ss (char *s,char t) { while (*s) { if(*s==t) *s=t-‘a’+’A...void main() { char str1[100]=“abcddfefdbd”,c=‘d’; ss (str1,c); printf ("%s\n",str1); } ABCDDEFEDBD abcDDfefDbD abcAAfefAbA 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。

    展开全文
  • 【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++)/*内层循环控制每行输出*字符的个数*/ .....

    编写程序输出以下图形:

    *

    **

    ***

    ****

    *****

    代码:

     

    #include <stdio.h>
    int main()
    {
        int i, j;
        for (i = 1; i <= 5; i++)
        {
            for (j = 1; j <= i; j++)/*内层循环控制每行输出*字符的个数*/
                printf("*");
            printf("\n");/*输出一行后换行*/
        }
        return 0;
    }

     

     

     

    展开全文
  • 编写一个程序输出以下图案

    万次阅读 2016-10-23 20:36:21
    编写一个程序输出以下图案   *   ***  *****  *******  *********  *********** *************  ***********  *********  *******  *****   ***  * #include int
  • 习题3.6 阅读下面程序,分析其执行过程,写出输出结果 #include <iostream> using namespace std; class Student {public: Student(int n,float s):num(n),score(s){} void change(int n,float s) {num=n.....
  • 若运行以下程序时,从键盘输入3.6,2.4,(表示回车),则下面程序的运行结果是: include <stdio.h> #include <math.h> main() { float x,y,z; scanf("%f,%f",&x,&y); z=x/y; while(1) { if(fabs(z)&...
  • 编写一个C程序,运行时输出以下图形

    千次阅读 2021-05-24 14:57:57
    编写一个C程序,运行时输出以下图形: **** **** \*\*\*\* \*\*\*\* 点我看视频讲解+可运行代码 记得收藏视频,一键三连 代码示例: #include <stdio.h> int main() { for (int i = 0; i < 4; i++) { ...
  • 输出以下的杨辉三角形(要求输出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...
  • 以下程序输出结果是_ main) { float a ; a=1/100000000 ; printf%g,a; } 下面程序的输出结果是_ #include<stdio.h> main) { int x=10 ; { int x=20 ; printf%d,x; } printf%d\n,x; } 以下程序输出结果是_ main) ...
  • 以下程序的功能是输入一个字符串和一个字符,如果该字符在字符串中,就从该字符首次出现的位置开始输出字符串中的字符。例如,如果输入的字符串为“Hello”,输入的字符为’e’,则输出结果为“ello”。请填空。 ...
  • 2013版本的基本上看不到输出结果。 第一种办法: 在程序的最末端加上system("pause"); 通过系统命令来停止。 ...PS:记得加上system的头文件哦。...比如以下程序: int main() { char passwd[10] = {0}
  • 功能:请编写输出以下图案的程序,图案的行数由输入的值确定 A BBB CCCCC DDDDDDD EEEEEEEEE */ #include<stdio.h> int main(void) { int i, j; int lines; char ch = 'A'; printf("请输入图案的行数...
  • 返回:贺老师课程教学链接 C语言及程序设计初步 【阅读程序题】1、写出以下程序输出结果,再在计算机上运行程序。对比两结果是否相同,以此检查自己的学习效果。2、遇到在视频中未讲的格式控制符,上网搜索发现...
  • 描述使以下代码输出结果为200.#include using namespace std; class Number { public: int num; Number(int n=0): num(n) {} // 在此处补充你的代码 };int main() { Number n1(10), n2(20); Number n3;n3 = n1*n
  • C++ 程序不一定从 main 处开始执行

    千次阅读 2013-06-10 12:33:22
    C++程序我们一般写程序都知道,是从main开始执行,不过,也有例外,比如以下这段程序#include #include using namespace std; class A { public: A() { cout << "I come here before main()!" ; f(); } ...
  • 编写程序输出如下图形2

    万次阅读 2018-07-25 19:44:19
    题目:编写程序输出如下图形2 思路:将程序分成上下两半,再将上半部分分成三部分,一部分,另一部分就是剩下的部分。第一部分由输出的空格和数字组成,另一部分是反过来的数字。 程序: #include&lt;stdio...
  • package Second; import java.util.Scanner;...对输入的字符串进行反转并显示结果,例如输入字符串为hello,则程序输出olleh。  */  public static void main(String[] args) {  // TODO Au
  • 相关文章: 【Java练习题】Java程序输出 | 第一套(含解析) ...预测以下 Java 程序输出: 问题一 // Main.java public class Main { public static void gfg(String s) { System.out.println("String.
  • 博主简介:CSDN原力作者,华为云享专家,掘金优秀作者 个人博客:haiyong.site 粉丝专属福利:简历模板、PPT模板、...预测以下 Java 程序输出: public class Test { public static void main(String[] args) throw
  • 相关文章: 【Java练习题】Java程序...预测以下 Java 程序输出: 问题 1 // 文件名: Main.java class Base { protected void foo() {} } class Derived extends Base { void foo() {} } public class Main { pu.
  • 习题1.4.编写程序输出 Hello World!

    千次阅读 2019-02-18 17:57:11
    4.编写程序输出 Hello World! 代码 /* 4.编写程序输出 Hello World!*/ #include &lt;stdio.h&gt; int main () { printf ("Hello World!\n"); return 0; } 结果
  • 1.首先打开VS2008/VS2010,选择创建工程。...这样就创建了一个带有main函数的文件,如果你程序输出到终端的话,你根本看不到。因为main的函数返回值返回后程序就结束了,mian函数的返回值0表示正常
  • C程序设计(第三版) 谭浩强习题1.5 请参照本章例题,编写一个C程序输出以下信息:* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *Very good!* * * * * * * * * * * * * * * * * * * * * * * * * *...
  • 预测以下 Java 程序输出。 考虑到如果将答案紧接着问题贴出来,同学们可能还没思考就不小心看到了结果,所以我把问题和答案分开放,中间还用东西挡了一下,希望不会给大家带来阅读上的困难 问题 问题一 // 文件...
  • 预测以下 Java 程序输出: // 文件名: Test.java class Test { int x = 10; public static void main(String[] args) { Test t = new Test(); System.out.println(t.x); } } 该程序运行良好并打印 10。在 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 409,983
精华内容 163,993
关键字:

以下程序输出的结果main