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

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

    展开全文
  • #include <stdio.h> int main() { int i, n = 0; float x = 1, y1 = 2.1 / 1.9, y2 = 1.9 / 2.1; for ( i = 1; i < 22; i++) x = x * y1;...答案:程序无线循环 解析:浮点类型不能精确相等 ...
    #include <stdio.h>
    
    int main()
    { 
    int i, n = 0;
    float x = 1, y1 = 2.1 / 1.9, y2 = 1.9 / 2.1;
    
    for ( i = 1; i < 22; i++)
    x = x * y1;
    
    while ( x != 1.0 )
    {
    x = x * y2; n++;
    }
    
    printf( "%d\n", n );
    
    return 0; 
    }
    

    答案:程序无线循环
    解析:浮点类型不能精确相等

    展开全文
  • 以下程序段的输出结果为()。 for(i=4;i>1;i--) for(j=1;j;j++) putchar('#'); A:无 B:###### C:# D:###
  • 通过输入输出重定向和windows批处理文件比较刷OJ题目时的程序输出和正确输出 前言 在刷OJ题目或者进行编程考试或比赛时,经常需要对编写好的程序进行测试,即运行编写好的程序,输入样例输入或者自己编写的输入数据...

    方法非常简单,5~10分钟即可掌握,文字比较多是因为,emmmmmm,本人比较话痨O(∩_∩)O哈哈~,比较着急可以直接点击目录阅读方法具体步骤部分哦ღ( ´・ᴗ・` )比心

    前言

    在刷OJ题目或者进行编程考试或比赛时,经常需要对编写好的程序进行测试,即运行编写好的程序,输入样例输入或者自己编写的输入数据,查看程序输出结果和样例输出或者正确输出是否一致。这种方法有很多弊端,当有多组输入数据或程序运行结果多次错误时,需要多次复制粘贴输入数据,这个过程非常繁琐而且浪费时间;用肉眼检查程序输出和正确输出是否一致很容易出错,尤其是当输出数据非常多时。所以,我在这篇博客里介绍一下通过输入输出重定向和windows批处理文件比较程序输出和正确输出的方法,使用这种方法的前提有两点:

    1. 程序运行在windows操作系统下
    2. 程序可以生成一个exe可执行文件(例如C++程序就可直接生成一个exe文件;java不会直接生成一个exe可执行文件,就不能直接使用本博客提出的方法)

    概念介绍

    1. 输入输出重定向:最常见的输入输出是标准输入输出,即读键盘输入、写屏幕。但当我们希望在文件中准备好输入数据,将输出或错误信息输入到另一个文件中时,就需要使用重定向。本博客介绍的方法就是将输入数据保存在一个input.txt文件中,运行程序时,让程序从input.txt文件读取数据,将程序输出数据保存在另一个output.txt文件中,从而就避免了多次复制粘贴输入数据的繁琐步骤。
    2. windows批处理文件:批处理,顾名思义就是进行批量的处理。批处理文件是扩展名为.bat 或.cmd的文本文件,包含一条或多条命令,由DOS或Windows系统内嵌的命令解释器来解释运行。本博客提出的方法使用的是windows批处理文件中的比较文件差异的fc命令。

    方法具体步骤

    第一步:编写程序,生成exe可执行文件

    我们可以以一个读取两个int数据,输出这两个数据之和的简单程序作为例子,这个程序的C程序代码如下:

    #include<stdio.h>
    int main(){
    	int a,b;
    	scanf("%d%d",&a,&b);
    	printf("%d",a+b);
    } 
    

    不妨将程序其命名为test.c,将test.c保存在一个名为test的文件夹下,运行后生成一个名为test.exe的文件,如下图所示:
    test.c文件和生成的test.exe文件

    第二步:建立input.txt、correct.txt文件

    新建三个txt文件input.txt、correct.txt,它们的作用分别为:

    1. input.txt:用于存放输入数据
    2. correct.txt:用于存放正确的输出数据
    3. output.txt:用于存放程序输出数据,这个文件不需要新建和删除,运行windows批处理文件后会自动生成

    我们不妨在input.txt文件中写入1 2作为输入数据,在correct.txt写入3作为正确的输出数据,这时test文件夹下内容如下图:
    test文件夹内容

    第三步:建立windows批处理文件

    新建一个run.txt文件,在其中写入如下3行代码:

    /*test与exe可执行文件名保持一致
    input.txt表示输入数据存放的文件名
    output.txt表示程序输出存放的文件名
    correct.txt文件表示正确的输出数据存放的文件名
    以上四个文件名均可根据实际情况修改*/
    test < input.txt > output.txt//test程序从input.txt文件读取输入,程序输出到output.txt文件
    fc output.txt correct.txt//fc是windows比较两个文件差异的命令
    pause//运行pause命令,将显示消息:请按任意键继续,用于看清楚屏幕上显示的内容
    

    run.txt文件内容如下:
    run.txt内容
    保存,然后将后缀名txt改为bat,这时整个test文件夹如下:
    test文件夹内容

    测试

    按上述步骤,整个准备工作就完成了,双击run.bat文件,就会出现下面的dos窗口:
    dos窗口
    你会发现test文件夹下多了一个output.txt文件,这是test程序的输出数据,dos窗口显示output.txt文件和correct.txt文件没有差异,说明程序输出和正确输出是一致的,即对于当前输入数据来说,程序运行结果是正确的。
    我们修改一下程序代码,如下:

    #include<stdio.h>
    int main(){
    	int a,b;
    	scanf("%d%d",&a,&b);
    	printf("%d",a);
    } 
    

    重新编译生成exe文件,当输入数据仍为1 2,正确输出仍为3时,双击run.bat文件,dos窗口如下:
    dos窗口
    output.txt文件和correct.txt文件出现了差异,说明程序出现了错误。

    总结

    以上就是我要介绍的通过输入输出重定向和windows批处理文件比较程序输出和正确输出的方法,这个方法相比于常见的重复复制粘贴输入数据的方法要简洁轻快许多,尤其在面对输入输出数据极多的情况下,其优势是非常明显的。

    展开全文
  • 已知字母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) 不...
  • 编写程序输出矩阵

    千次阅读 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...
  • 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...
  • qt控制台程序输出中文字符的做法

    千次阅读 2017-11-11 18:47:07
     很多网友反映qt控制台程序输出中文总是乱码,下面介绍一种简单做法来解决这个问题,具体是设置执行字符集为utf8,假如是非utf8的常量字符串需要先转为utf8编码。示例代码如下: #include //设置执行字符集为utf8...
  • function s=subim(f,4,4,2,2) %SUBIM Extracts a subimage,s,from a given image,f. %The subimage is of size m-by-n,and the coordinates %of its top,left corner are(rx,cy). s=zeros(m,n);...
  • 【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++)/*内层循环控制每行输出*字符的个数*/ .....
  • 下面程序执行输出几个hello

    千次阅读 2017-03-20 22:39:21
    美团2016校园招聘 研发工程师(一) 下面程序执行输出几个hello? #include #include int main( ) { fork( ); fork( ); fork( ); printf(“hello\\n”); return 0; } A 3 B 4 C 6 D 8 正
  • 撰写人——软工二班——陈喜平 题目描述 ...将下面程序填写完整。 #include &lt;stdio.h&gt; int main() { int y; while (scanf("%d",&amp;y)!=EOF) { .................
  • 编写一个C程序,运行时输出以下图形: **** **** ​ **** ​ **** 代码示例: #include <stdio.h> int main() { for (int i = 0; i < 4; i++) { for (int j = 0; j < i; j++) { printf("%s", " ...
  • 执行以下程序段后,输出结果是______。 StringBuffer str = new StringBuffer("123"); str.insert(2,"*"); System.out.println(str); A.123 B.*123 C.1*23 D.12*3
  • #include<stdio.h> main() { char ch; int i; for(i=0;i<26;i++) { ch=i+65; if(i%2==0) printf("\n"); printf("c=%c ASCII=%d ",ch,ch); } putchar('\n'); } c=A ASCII=65 c=B ASCII=...c=G
  • 编写一个程序输出以下图案

    万次阅读 2016-10-23 20:36:21
    编写一个程序输出以下图案   *   ***  *****  *******  *********  *********** *************  ***********  *********  *******  *****   ***  * #include int
  • Python实时获取外部程序输出结果

    千次阅读 2020-03-22 11:46:08
    如何Python实时获取外部程序输出结果,可以在运行时加上-u参数或者在print函数中使用flush=True 下面写两个脚本说明一下。 system_time.py 获取系统时间,每秒打印一次,共打印3次 # !/usr/bin/python3 # -*- coding...
  • 初次汇编语言编写程序输出HELLO,WORLD! 初次编写汇编语言,其中遇到了很多困难和问题,下载了很多东西,也查阅了很多关于汇编的资料内容,最后为方便大家直接可以使用快速上手,我把自己花费大量时间和精力整理的...
  • 以下程序段的输出结果为()。

    千次阅读 2020-09-13 19:46:25
    for(i=4;i>1;i–) for(j=1;j<i;j++) putchar(’#’); 答案:###### 解析:内部循环完了之后再进行外部循环,第二次外部循环的时候...putchar:c语言函数之一,作用是向终端输出一个字符,这里一共循环输出6次 ...
  • Visual Studio2017控制台程序输出窗口闪退问题

    万次阅读 多人点赞 2018-06-19 11:09:59
    刚接触 Visual Studio的时候大多数人会写个Hello World的程序试一下,有的人会发现执行结束后输出窗口会一闪而过,并没有出现Press any key to continue的字样。无论是在Visual Studio 2008、2010、2012、2015和现在...
  • 老师布置了一个小作业,需要将学校首页内容爬取...我实现了内容爬取后,内容输出到了控制台。 我的目的是实现控制台内容输出成一个文本文档。 在网上搜索后找到了一种直接在Eclipse中设置 的方法。请参考如下博客: ...
  • Createprocess控制台程序输出重定向

    万次阅读 2010-04-11 11:58:00
    在Windows编程中,并非每一个应用程序都需要一个图形用户界面(GUI),很多情况下,我们可以编写一个控制台应用程序,这样程序更小,加载更快,传输时间也短,同时也丝毫不牺牲程序应有的功能。这种程序特别适合那些在后台...
  • 编写一个程序输出螺旋方阵

    千次阅读 2016-07-02 20:41:52
    /* ...*All rights reserved. *文件名称:main.cpp *作者:张旺华 *完成日期: 2016 年 7 月 2 日 ...*问题描述:编写一个程序输出螺旋方阵 * */ #include #define MaxLen 10 void fun(int a[MaxLen][MaxLen],int n)
  • 输出以下的杨辉三角形(要求输出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]...
  • 编写一个C程序,运行时输出以下图形

    千次阅读 2021-05-24 14:57:57
    编写一个C程序,运行时输出以下图形: **** **** \*\*\*\* \*\*\*\* 点我看视频讲解+可运行代码 记得收藏视频,一键三连 代码示例: #include <stdio.h> int main() { for (int i = 0; i < 4; i++) { ...
  • 题目:请问下面程序一共输出多少个“-”? #include #include #include int main(void) { int i; for(i=0; i; i++){ fork(); printf("-"); } return 0; } 解析:一共输出8个 首先...
  • 执行如下程序, 输出结果是()

    千次阅读 2019-07-30 11:29:56
    class Test { private int data; int result = 0; public void m() { result += 2; data += 2;... System.out.print(result + " " + data);... print方法, 不会自动换行, 所以输出结果是2 24 46 6
  • 编写程序输出如下图形2

    万次阅读 2018-07-25 19:44:19
    题目:编写程序输出如下图形2 思路:将程序分成上下两半,再将上半部分分成三部分,一部分,另一部分就是剩下的部分。第一部分由输出的空格和数字组成,另一部分是反过来的数字。 程序: #include&lt;stdio...
  • 习题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.....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,736,694
精华内容 694,677
关键字:

下面程序的输出是