精华内容
下载资源
问答
  • 7.1 分析并写出下面程序运行结果

    千次阅读 2017-12-01 20:19:13
    #include //#include int square(int i) { return i*i; } int main() { int i=0; i=square (i); for (;i;i++) { static int i=1; i+=square (i);
    #include <stdio.h>
    //#include <stdlib.h>
    int square(int i)
    {
        return i*i;
    }
    int main()
    {
        int i=0;
        i=square (i);
        for (;i<3;i++)
        {
            static int i=1;
            i+=square (i);
            printf("%d,",i);
        }
        printf("%d\n",i);
        return 0;
    }
    

    这里写图片描述

    展开全文
  • 程序运行相当长一时间,或者有很大量的输出的时候 第二,如何改变程序运行环境 首先说第一个问题。我现在官方文档上找了下。发现似乎可以使用Popen类来实现。文档里面说到的跟输出相关的有两个,一个...

    先说说背景。

    这几天项目中遇到一个签名的算法,没有相应的python库,自己去实现又比较费时间。

    中间的过程是这样的。

    经过查找发现这个开源项目本身支持一个JavaScript的SDK,里面已经实现了必须的功能。大概试了一下写了几个简单的js脚本,就实现了所需要的基本功能。既然js脚本很容易就实现了需要的功能,为了方便(其实是因为我懒,懒得去自己用python再实现内容转换和签名的算法了)就决定使用python调用已经写好的js脚本,获取脚本的输出来做为结果,在解析整理下就可以了。

    思路有了,下面就是如何用python的实现程序的调用和获取结果了。

    看了下有些人使用os模块提供的函数,类似os.system, os.spawn族的函数(其实就是Linux下相应的C的API)。但是觉得太底层了,而且有些还只能在特定的平台上使用。就没有使用这种方法。转而找到了subprocess库(终于进入正题了)。

    去官方的文档看了下描述,发现就是用来代替os.system,os.spawn族之类的

    This module intends to replace several older modules and functions:

    os.system

    os.spawn*

    我的需求很容易就满足了,使用subproces的run方法获取输出和返回值。

    然后,又好奇了两个问题:

    第一,如何实时的获取程序的输出。当程序会运行相当长一段时间,或者有很大量的输出的时候

    第二,如何改变程序的运行环境

    首先说第一个问题。我现在官方文档上找了下。发现似乎可以使用Popen类来实现。文档里面说到的跟输出相关的有两个,一个是Popen.communicate方法,一个是Popen的stdout属性。两者的描述很容易再官文上找到就不贴了。大概说一下就是官方推荐使用communicate方法来跟运行的子进程进行交互。

    我就试了一下communicate方法,包括timeout参数。

    发现下面的几点:

    1.communicate在不设置timeout的时候,会一直block,直到子进程运行完。

    2.communicate再设置了timeout参数,并且捕获了TimeoutExpired事件之后,获取的out是空的,并且子程序还在继续运行没有收到影响

    总结一下就是,使用communicate你必须等到程序运行完之后才能够一次性获取全部的输出。运行过程中,程序的输出是暂存在内存里面的。所以在communicate的描述后面特别说明了,如果输出较大的时候,不要使用这个函数。

    之后,就看了stdout,stdin之类的属性,也发现一个警告说可能引起死锁之类的。然后Google了一下。发现还是很多人在用stdout这个属性的。当然用法就是把它当作一个打开的文件对象。使用readline方法不断获取程序的输出,但是在每个readline的调用中,依然是block的。

    总结一下,关于第一个问题。如果子进程的运行时间有限,输出的内容也比较少的情况下,使用communicate方法比较合适。还有一种情况就是要限制子进程的运行时间,这个时候可以用communicate的timeout参数,并在timeout时间的处理中kill掉子进程。如果程序运行时间长,需要实时的获取输出,或者输出比较多的情况下,就使用stdout这样的属性,不断调用readline获取输出就好。

    然后关于第二个问题。其实使用Popen类就可以完美解决,Popen类的cwd参数用来设定子进程的工作目录,还有env参数用来设定子进程运行的环境变量。基本上就可以满足我们的使用中的大部分场景了。

    今天就先好奇这些吧,后面有时间遇到再继续挖。

    展开全文
  • 习题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.....

    谭浩强c++ 面向对象程序设计(第2版)
    习题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;score=s;}
    	   void display(){cout<<num<<" "<<score<<endl;}
    	 private:
    	   int num;
    	   float score;
     };
    
    int main()
    {
    	Student stud(101,78.5);
    	stud.display();
    	stud.change(101,80.5);
    	stud.display();
    	return 0;
    }
    

    输出结果

    101 78.5
    102 80.5
    

    分析:第一个直接通过析构函数赋初值,输出得到101和78.第二个的话只是做了一个修改,输出得到101和80.5。此题考察的是读程序的分析能力,难度比较简单。

    展开全文
  • 阅读下面程序,并写出运行结果

    千次阅读 2016-05-26 09:05:32
    * 文件名称:第12周项目:阅读下面程序,并写出运行结果 * 作者:马康泰 * 完成日期:2016.5.19 * 版本号:v1.0 * * 问题描述:阅读下面程序,并写出运行结果 * 输入描述: * 程序输出: */ //虚...
    /* 
     * Copyright(c)2016,烟台大学计算机与控制工程学院 
     * All rights reserved. 
     * 文件名称:第12周项目:阅读下面的程序,并写出运行结果
     * 作者:马康泰
     * 完成日期:2016.5.19 
     * 版本号:v1.0 
     * 
     * 问题描述:阅读下面的程序,并写出运行结果 
     * 输入描述: 
     * 程序输出: 
    */  
     //虚函数
     #include <iostream>
     using  namespace  std;
     class  A  {
     	int a;
     public:
     	A():a(5){
     		virtual void print()const{cout<<a;}
     	};
     	class  B:  public  A {
    char  b;
    public:
    B()  {  b='E';
    void  print()  const  { cout<<b;  }
    };
    void shoow(A &x){x.print();}
    int main()
    {
    	A d1,*p;
    	B d2;
    	p=&d2;
    	d1.print;
    	d2.print;
    	p->print;
    	show(d1);
    	show(d2);
    	return 0;
    }
    <img src="https://img-blog.csdn.net/20160526090431669?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
    //(2)虚析构函数
    #include  <iostream>
    using  namespace  std;
    class  BASE
    {
    	private:
    		char  c;
    	public:
    		BASE(char  n):c(n)  {}
    virtual  ~BASE()  {  cout<<c; }
    };
    class  DERIVED:public  BASE
    {
    private:
    	char  c;
    	public:
    		DERIVED(char  n):BASE(n+1),c(n)  {}
    ~DERIVED(){  cout<<c;  }
    };
    int  main(){
    DERIVED  d('X');
    return  0;
    }
    <img src="https://img-blog.csdn.net/20160526090437812?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
    //(3)纯虚函数
    #include  <iostream>
    using  namespace  std;
    class  Base
    {
    	public:
    		virtual  void  Who()  =0;
    };
    class  FirstDerived:public  Base
    {
    public:
    void  Who()  {  cout<<"F";  }
    };
    class  SecondDerived:public  Base
    {
    public:
    	void  Who()  {  cout<<"S";  }
    };
    int  main()
    {
    FirstDerived  first_obj;
    SecondDerived  second_obj;
    Base  &bref=first_obj;
    bref.Who();
    bref=second_obj;
    bref.Who();
    Base  *bp;
    bp=&first_obj;
    bp->Who();
    bp=&second_obj;
    bp->Who();
    return  0;
    }
    <img src="https://img-blog.csdn.net/20160526090447622?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
    


    展开全文
  • 第一次安装使用sublime,用快捷键Ctrl+B运行python程序出现空白框但是却没有其他结果输出的问题 第一次安装sublime,在运行python程序时。在输出框没有展示结果或者只显示秒数,这个问题我也搜索了好多人的回答...
  • VC++编写交互程序时将打印结果输出到cmd窗口显示 地址:http://www.itwis.com/html/c/ccc/20080527/1576.html 2011-06-20 10:57:46 humming 0 评论 475 浏览 在使用VC++编写交互程序时运行中...
  • 程序运行时的内存空间分布

    万次阅读 多人点赞 2014-03-21 01:33:18
    其实在程序运行时,由于内存的管理方式是以页为单位的,而且程序使用的地址都是虚拟地址,当程序要使用内存,操作系统再把虚拟地址映射到真实的物理内存的地址上。所以在程序中,以虚拟地址来看,数据或代码是一块...
  • 改成Python3.8解释器(红色椭圆),结果就正常输出了 本人是技术小白,之前学了一时间python,后面没怎么深入,最近想好好学一下Python,看了一时间的书,在Python自带的idle写过一些代码,然后下...
  • 下面程序运行结果是: main() { int x,i,j; for(i=1;i<=100;i++) { x=i; if(++x%20) if(++x%30) if(++x%7==0) printf("%d ",x); } } A)39 81 B)42 84 C)26 68 D) 28 70 nt x,i; //定义两个整型变量dao for(i=1;i...
  • 以下程序输出结果是____。

    千次阅读 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
  •  这个应用报告和相关的代码提供了一种把编译后的程序段从TMS320F28xxx的flash复制到ram的功能,这样可以提高代码的运行速度。这个解决方案在直接启动之后,进入c_int00 ——C语言代码运行之前实现此功能。  本...
  • 已知字母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) 不...
  • C++中计算程序运行时间

    万次阅读 多人点赞 2018-09-29 19:19:12
    在我们实际开发中,尤其对于算法工程师来说,有时候为了比较不同的算法或者优化算法,需要计算各个算法运行的时间或者关键代码运行时间,以此来衡量算法在速度上的优劣或者进行代码优化的一个参考。...
  • 段输出自身代码的好玩程序

    千次阅读 2013-12-06 10:27:24
    下面是一有趣的C语言代码,它可以输出它本身: #include main(char *a){printf(a,34,a="main(char *a){printf(a,34,a=%c%s%c,34);}",34);} 是不是很有趣? 这里只是用了printf的一个特点。它的使用原型是这样的:...
  • Java程序运行机制及其运行过程

    万次阅读 多人点赞 2018-07-31 13:34:46
    本文主要讲的是jvm运行java程序。 (一)终端中如何运行一个java程序(这个是我在mac下运行的,windows下原理是一样的,大同小异) 做这个事情的前提下,一定是jdk已经安装好了并且没任何问题。 首先要想运行java...
  • 写了这么久代码,总认为,只要是C编译器,同一代码总会有相同运行结果的(不考虑随机以及多线程的情况)。 但是,今天在百度知道上看到了一代码,运行结果不同,本来打算直接说——小子,机器出问题了吧!!但是...
  • 【深入理解计算机系统】程序是如何运行

    万次阅读 多人点赞 2017-11-05 20:53:14
    程序是如何运行的现代计算机存储和处理的信息以二值信号表示,程序对于计算机而言就是一串二进制数据流,以流水线的方式进入CPU进行运算。主要在;CPU与内存之间进行数据传递。本文将从程序源码的结构与表现形式开始...
  • linux后台运行程序

    千次阅读 2018-06-14 09:58:04
    对于密集访问磁盘的进程,我们更希望它能够在每天的非负荷高峰时间段运行(例如凌晨)。为了使这些进程能够在后台运行,也就是说不在终端屏幕上运行,有几种选择方法可供使用。&amp; 当在前台运行某个作业,...
  •  计算机是由硬件和软件组成的,这两个部分共同协作完成程序运行。这两部分如何协作完成程序运行,是本系列的重点。   信息的表示  信息的表示说到底就是位加上下文。举个小例子,比如11011101这一串二进制...
  • 在Java程序中截获控制台输出

    千次阅读 2007-03-21 22:57:00
    在Java程序中截获控制台输出
  • 因为数据和BSS的唯一区别是,数据从文件中初始化内容,BSS内容全部初始化为0。  我们主要关心前两个Segment,第一个是代码,虚拟地址从0x00400000到0x004c1026。文件偏移从0x00000000到0x000c1026。  第...
  • 从编写源代码到程序在内存中运行的全过程解析

    万次阅读 多人点赞 2018-04-21 17:49:51
    作为一个C/C++程序员,搞清楚从编写源代码到程序运行过程中发生的细节是很有必要的。这在之前也是困扰我的一个很大问题,因为最近在忙着找实习,一直没有下定决心来写这篇博客,最近才抽时间写。下面的代码除了明显...
  • 1、tic和toc组合(使用最多的)计算tic和toc之间那段程序之间的运行时间,它的经典格式为[plain] view plain copy tic 。。。。。。。。。。 toc 换句话说程序程序遇到ticMatlab自动开始计时,运行到toc自动...
  • 使用Mono让.NET程序跨平台运行

    万次阅读 2016-05-03 14:49:39
    传统的针对不同平台进行开发的方式常常让开发者顾此失彼,难以保证应用程序在不同的平台都有着相同的、出色的体验,这种情况下寻找到一种跨平台开发的方式将会为解决这个问题找到一种思路。从目前的开发环境来看,...
  • 测试程序运行时间

    万次阅读 2011-06-14 15:26:00
    测试程序运行时间-time.h1.计时 C/C++中的计时函数是clock(),而与其相关的数据类型是clock_t。在MSDN中,查得对clock函数定义如下: clock_t clock( void ); 这个函数返回从“开启这个程序进程”到“程序中调用...
  • 编写输出C风格字符串的汇编子程序

    千次阅读 2013-12-15 01:21:51
    一、C语言是如何输出字符串的 为了更加清楚地说明这个子程序,先来说说如何在C语言中输出一个字符串。在C语言中,我们要输出一个字符串,通常可以...非常地简单,但是如果不能用%s的格式输出而只能用%c来输出时,你会
  • C++程序如何编译运行

    千次阅读 2019-06-09 12:27:33
    下面是C++入门的hello world程序源码 #include <iostream> using namespace std; int main(int argc, char* argv[]) { cout << "hello world" << endl; return 0; } 你可以在将上述源码复制...
  • 2.熟悉在PC机上编辑、汇编、连接、调试和运行汇编语言程序的过程。 二.实验内容 一个汇编语言程序从写出到最终执行的简要过程如下: 1) 编辑 可以用任意的文本编辑器来编辑源程序,只要最终将其存储为纯文本文件...
  • Java中使用Runtime和Process类运行外部程序 使用Runtime.getRuntime().exec()方法可以在java程序运行外部程序。  1.exec(String command)  2.exec(String command, String envp[], File dir)  3.exec...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 454,630
精华内容 181,852
关键字:

下面程序段运行时输出结果