test- 以下程序运行后的打印结果是______(需要写上分析思路)

问题描述

以下程序运行后的打印结果是______(需要写上分析思路)

#include
int sum(int a, int b)
{
return a + b;
}

int two(int n)
{
return n * 2;
}

void test(int n)
{
printf("%dn", two(n));
}

int main()
{
test( sum(10, 11) );
return 0;
}

解决方案

sum(10, 11) 得到21
test输出 two(21),21 x2=42
所以输出42

以上结果经上机验证
http://codepad.org/y0Ig8vjW

解决方案二:

运行主函数main(),主函数执行test(),test调用two函数,sum(10,11)返回int型参数给two(21),two(21)结果为42,

解决方案三:

sum函数传入10和11返回21,然后sum函数的返回值21作为形参传入test函数,test调用two函数将形参乘以2并且返回得到42,最终输出42

解决方案四:

首先看main方法
(1)执行test方法,传的值是sum(10,11);
(2)计算出sum(10,11),调用sum方法------------a=10,b=11,return 10+11=21
(3)调用test方法-----------------n=21,则打印two(21);
(4)调用two方法-----------------n=21,return n*2=21*2=42;
(5)所以执行的结果是 42。

亲自代码验证:

解决方案五:

首先看main方法
(1)执行test方法,传的值是sum(10,11);
(2)计算出sum(10,11),调用sum方法------------a=10,b=11,return 10+11=21
(3)调用test方法-----------------n=21,则打印two(21);
(4)调用two方法-----------------n=21,return n*2=21*2=42;
(5)所以执行的结果是 42。

亲自代码验证:

解决方案六:

看程序员文件,要找到程序入口main(),函数从main()函数入口,顺序执行。
test( sum(10, 11) );//调用了两个函数,test()和sum()函数。
这里需要知道函数的一般原型:
(.....)name(....);
name:是指函数名
第一个括号,以一个括号为边界,里面填写的是函数的返回值(如果把函数看成一个变换机,或者黑盒子,那么返回值可以对一个变换机运行完输出的数据),比如说这里的main()函数返回值通过return返回0,sum函数返回a+b。
第二个括号,以一个括号为边界,里面填写的是函数的输入参量,(如果把函数看成一个变换机,或者黑盒子,那么函数参数可以对一个变换机的输入,或者变换机要处理的数据),比如test函数参数int类型的a参数。
这样理解test( sum(10, 11) )就很容易了,test()函数要处理的数据,是sum()函数的输出,也就是sum()要处理的数据是整型10,11,返回a+b即10+11=21,返回21.
21作为test()输入,test()函数又库函数printf()打印函数,往终端上打印数据,而printf()的输入,或者说要打印的数据,来自two( ) 函数处理输入数据21后的结果n * 2=21*2=42,所以printf()往终端打印42.
好像很麻烦,很绕,但找到函数入口,或者说起始点,然后顺序理清函数的逐级调用关系,一切就明朗、简单了~
可以理解为:数据流(原始数据)通过一个一个的黑盒子(变换机)最终得到你想要的结果~

时间: 2024-09-19 14:47:52

test- 以下程序运行后的打印结果是______(需要写上分析思路)的相关文章

iostream-为什么我这个c++程序运行后直接关掉了窗口,就是应该运行出来了,但是还没来得及看结果就被自动关了

问题描述 为什么我这个c++程序运行后直接关掉了窗口,就是应该运行出来了,但是还没来得及看结果就被自动关了 程序代码如下: #include "stdafx.h" #include #include using namespace std; int _tmain(int argc, _TCHAR* argv[]) { double daphne = 100.0; double cleo = 100.0; const double rate_1 = 0.1; const double r

启动-程序运行后自动关闭,在dos下出现这个错?

问题描述 程序运行后自动关闭,在dos下出现这个错? Exception:System.IO.FileLoadException: Could not load file or assembly 'SharpSvn.dll' or one of its dependencies. 由于应用程序配置不正确,应用程序未能启动.重新安装应用程序可能会纠正这个问题. (Exception from HRESULT: 0x800736B1) File name: 'SharpSvn.dll' 解决方案 S

contextmenu-android程序运行后长按不弹出菜单,找不到原因。

问题描述 android程序运行后长按不弹出菜单,找不到原因. public class Chan_List extends ListActivity { private ScanActivity sActivity = null; private static final String TAG = "RCU"; private SimpleAdapter listAdapter = null; private MobileControl mControl=null; private

android-Android程序运行后非常卡怎么回事?

问题描述 Android程序运行后非常卡怎么回事? Android程序运行后非常卡怎么回事? Android程序运行后非常卡怎么回事? 解决方案 解决方案二: 原因可能是: 1)你的设备配置太低 2)你的程序实现有问题,占用 CPU 太多 解决方案三: 可能是程序问题,换个机器试试,如果是模拟器运行的话,可能是电脑配置问题, 解决方案四: 1,你的手机配置低 2. 你的程序垃圾代码太多,或者逻辑太复杂,线程太多等等 解决方案五: 卡顿原因很多啊,建议看看性能优化,推荐给你一个网址 http://

mfc-MFC程序运行后按键响应的问题

问题描述 MFC程序运行后按键响应的问题 写的是一个类似视频播放功能的程序(现在写的这段只要具备这个功能,后期还要加上图像处理,暂且就当是个播放器吧) 按下start后,读入视频,是使用opencv的,在按键响应的代码块里,代码如下: std::string videoFile = "d:/123.mp4"; cv::VideoCapture capture; capture.open(videoFile); if (!capture.isOpened()){ MessageBox(&

跪求 帮忙-VC++6.0 环境下,怎么能够使程序运行后的黑框直接变成全屏显示

问题描述 VC++6.0 环境下,怎么能够使程序运行后的黑框直接变成全屏显示 VC++6.0 环境下,win32 console application下编一个什么样的程序能够使输出的黑框变成全屏?例如 #include main() { printf("你好n"); } 这个简单程序中添加上哪些代码就能够使输出的黑框直接占满整个电脑屏幕?麻烦哪位大侠给帮个忙,并把修改后的完整程序附上,小弟不胜感激!

JSP程序运行原理、文档结构及简单输入输出实例分析_JSP编程

本文实例讲述了JSP程序运行原理.文档结构及简单输入输出.分享给大家供大家参考.具体如下: 目标: 掌握Web应用的文档结构: 掌握JSP的运行原理: 掌握JSP的简单输入和输出. 主要内容: 通过一个简单实例介绍Web应用的文档结构和运行原理: 通过一个简单的注册功能介绍基本的输入输出. 实现内容:客户端验证. 1. 文档结构 每个应用都有一个根目录,例如ch2:理论上可以放在任何地方,但是需要配置,简单的做法,直接放在了webapps这个目录下,在这个目录的应用会被自动加载. 在根目录下会有

菜鸟问题 如何让程序运行后 自动退出

问题描述 本人是刚学C#的小菜鸟请问用什么语句和方法让程序执行完一些操作后自动关闭自己谢谢!线上等 解决方案 解决方案二:this.Close();解决方案三:如果没有涉及到多线程,Console的main执行完后就退出了,WinForm的可以用Application.Exit();多线程的大概需要先让线程Abort才能让整个程序退出解决方案四:Application.Exist();解决方案五:TIMER控件,设置时间再Application.Exit();解决方案六:引用2楼ivorstar

程序运行后呈现这样的错误?请大家帮帮忙!

问题描述 请大家帮帮忙,这是什么问题?很长时间也没弄明白?java.lang.reflect.InvocationTargetExceptionsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)sun.reflect.DelegatingMethodAccessorImpl.in