打印自身源代码的程序
无意当中看到了这样一个问题:
任意选定一个语言写一个打印自身源代码的程序,这个程序不允许读取或者写其他文件的数据,程序必须是完全独立的。
很有趣吧?我正在学习C语言,这个问题是我在查找其他资料时看到的,这激发了我的兴趣,我躺在床上想了很久,没有一点头绪,额,最后抱着认为不大可能实现的想法睡着了······
回到正题,我在网上搜索了有关资料以后,知道了如何去写出这样的一个程序,原理是定义一个关于源代码自身的串string,然后加入把string改写成程序自身的算法编码,最后输出string。由于c语言中有个Printf(),实现这个代码就十分的方便,由于我还不会其他语言,所以只把c的代码贴下:
#include <stdio.h>
int main()
{
char *s = "#include <stdio.h>%cint main(){char *s = %c%s%c; printf( s, 10, 34, s, 34 ); return 0; }";
printf( s, 10, 34, s, 34 ); return 0;
}
需要注意的一点是,这个代码应该有指明打印的位置与打印多少。
打印自身源代码的程序相关推荐
- python 打印自己代码_如何编写一个打印自身源代码的程序
一个程序,在没有任何外部输入的情况下,打印自身的源代码,这类程序在英文里有一个专门的称呼,叫做Quine,之所以叫这个名字,是为了纪念美国哲学家及逻辑学家Willard Van Orman Quine ...
- 超市购物打印小票的简单程序 记录下来
做了2个版本的超市购物小票打印程序,做过记录 一.C/S样图如下: 其中 输入商品的编码 回车 将会调用该商品的信息,显示在下面的DataGridView中 ,DataGridView中数量 ...
- Java黑皮书课后题第6章:*6.15(金融应用:打印税表)程序清单3-5给出了计算税款的程序。使用下面的方法体编写一个计算税款的方法。使用这个方法编写程序,打印可征税人从50000到60000间隔
*6.15(金融应用:打印税表)程序清单3-5给出了计算税款的程序.使用下面的方法体编写一个计算税款的方法.使用这个方法编写程序 题目 题目描述 破题 程序清单3-5(非本题):代码不全 补充代码:编 ...
- Java黑皮书课后题第2章:2.18(打印表格)编写程序,显示下面的表格,将浮点数值类型转化为整数
2.18(打印表格)编写程序,显示下面的表格,将浮点数值类型转化为整数 题目 题目描述 代码 方法评价 化繁为简:强制(数据)类型转换 题目 题目描述 2.18(打印表格)编写程序,显示下面的表格,将 ...
- Java黑皮书课后题第1章:1.4(打印表格)编写程序,显示以下表格
这是目录标题 题目 题目描述 题目槽点 代码 代码块 代码评析与赘述 修改日志 题目 题目描述 1.4(打印表格)编写程序,显示以下表格 a a^2 a^3 1 1 1 2 4 8 3 9 27 4 ...
- Firefox改变查看页面源代码的程序
我们使用Firefox火狐浏览器浏览网页时,当我们需要查看页面源代码时,Firefox默认是用他自己的源代码查看程序来显示源代码.由于这个页面查看程序的功能很少,我们可以用其他功能强大的编辑器来查看页 ...
- 基于c#条码打印软件源代码 可选择打印机,可选择标签
基于c#条码打印软件源代码 可选择打印机,可选择标签 标签类容可设置,可变化 ID:86146658054853962
- 基于S7-200 PLC和MCGS组态的水箱水位控制系统设计 组态王动画仿真,带PLC源代码,plc程序每一条都带着解释
基于S7-200 PLC和MCGS组态的水箱水位控制系统设计 组态王动画仿真,带PLC源代码,plc程序每一条都带着解释,组态王源代码,图纸,IO地址分配 ID:7269672992996086Hol ...
- 基于组态王和S7-200 PLC的六层电梯8层电梯控制 组态王动画仿真,带PLC源代码,plc程序每一条都带着解释
基于组态王和S7-200 PLC的六层电梯8层电梯控制 组态王动画仿真,带PLC源代码,plc程序每一条都带着解释,组态王源代码,图纸,IO地址分配 ID:6465675194299424Holly1 ...
- python打印空心长方形_Python程序打印空心半菱形星形图案
给出一个整数N,任务是打印空心半菱形图案.示例:输出:## ## ## ## ## ##输入:7## ## ## ## ## ## ## #### ## ## ## #下半部分:对于下半部分,使用迭代 ...
最新文章
- 在 Windows 7 下安装 Hyper-V manager
- markdown测试
- openssl 开启AES-NI指令集性能增加
- linux vim配置缩减,让VIM更好的工作——VIM基本配置
- Apple Mach-O Linker Error _sqlite3_exec, referenced from: _sqlite_open, referenced from: _sqlit
- PIMPL(private implementation或者pointer to implementation)
- 2019电子科大计算机基础知识,电子科技大学820真题1999-2019终极版.pdf
- ListT 和DataTable的相互转换
- GridView.RowCommand 事件
- 【转载】jQuery框架
- 关于AVOD, 你需要知道的事
- 液晶电视测试软件u盘,突破封锁!用U盘给电视安装APP居然这么简单
- 如何清空c盘只剩系统_c盘怎么清理到最干净只保留系统,教你如何给C盘减肥
- android课程设计的需求分析,安卓课程设计心得体会.doc
- 多传感器融合算法,单目测距、基于双目,长焦短焦,图像拼接,环视等
- EXCEL 2013中“定义名称”的命名规则
- HTML5实现动态视频背景
- Hotel booking -探索性数据分析(EDA)一(seaborn matplot pyecharts)
- 在CentOS 6.3中安装拼音输入法 详细出处参考:http://www.jb51.net/os/RedHat/73029.html
- 【算法 | 实验18】在字符矩阵中查找给定字符串的所有匹配项
热门文章
- spring security +oauth2(授权服务和资源服务分离) 解决getPrincipal只返回用户名的问题
- 科学计数法(PAT)
- Ubuntu系统字体所在的文件夹的位置。
- 2.2、云计算FusionCompute计算虚拟化
- JAVA Swing界面美化 -付费界面库
- 创业和工作的心态问题
- oracle可恢复的等待,【案例】Oracle RAC恢复报错RMAN-06004 RMAN-20003解决办法笔记
- 统计文件中元音字母的数量
- Dapper使用技巧和基础CRUD
- 串口调试助手源码java_Java串口调试助手工程源码