当前位置:首页 » 编程语言 » c语言怎么显示程序运行过程
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言怎么显示程序运行过程

发布时间: 2022-12-23 05:10:27

c语言程序运行过程

运行程序的时候主程序三次调用fun函数。第一次调用是一写方式打开在文件中写入鼓励的以后关闭文件。第二次再次以w的方式打开文件。打开的同时就把第一次写入的文件内容全部覆盖掉了,然后洗肉hello再关闭文件。第三次调用fun函数是以添加方式打开。所以原文件中原来的内容依旧保留在文件的末尾,追加内容world感叹号。
所以最后文件中的内容是hello world!

② C语言程序运行过程

C源程序头文件-->预编译处理(cpp)-->编译程序本身-->优化程序-->汇编程序-->链接程序–>可执行文件

1.编译预处理
读取c源程序,对其中的伪指令(以#开头的指令)和特殊符号进行处理
[析] 伪指令主要包括以下四个方面
(1)宏定义指令,如#define Name TokenString,#undef等。对于前一个伪指令,预编译所要做的是将程序中的所有Name用TokenString替换,但作为字符串常量的Name则不被替换。对于后者,则将取消对某个宏的定义,使以后该串的出现不再被替换。

(2)条件编译指令,如#ifdef,#ifndef,#else,#elif,#endif,等等。这些伪指令的引入使得程序员可以通过定义不同的宏来决定编译程序对哪些代码进行处理。预编译程序将根据有关的文件,将那些不必要的代码过滤掉

(3)头文件包含指令,如#include “FileName”或者#include 等。在头文件中一般用伪指令#define定义了大量的宏(最常见的是字符常量),同时包含有各种外部符号的声明。采用头文件的目的主要是为了使某些定义可以供多个不同的C源程序使用。因为在需要用到这些定义的C源程序中,只需加上一条#include语句即可,而不必再在此文件中将这些定义重复一遍。预编译程序将把头文件中的定义统统都加入到它所产生的输出文件中,以供编译程序对之进行处理。

包含到c源程序中的头文件可以是系统提供的,这些头文件一般被放在/usr/include目录下。在程序中#include它们要使用尖括号(>)。另外开发人员也可以定义自己的头文件,这些文件一般与c源程序放在同一目录下,此时在#include中要用双引号(”")。

(4)特殊符号,预编译程序可以识别一些特殊的符号。例如在源程序中出现的LINE标识将被解释为当前行号(十进制数),FILE则被解释为当前被编译的C源程序的名称。预编译程序对于在源程序中出现的这些串将用合适的值进行替换。

③ 怎样用c语言程序看一个程序的执行步骤

c语言中的头文件time.h中定义了库函数clock(),它返回的是从程序运行开始算起的时间,一时钟周期为单位,time.h还定义了符号:clocks_per_sec,即一秒钟的时钟周期。这样就简单了,在头文件中加入#include<time.h>,在程序main()主函数的开头定义longnow=0;并给把clock()赋值给now,即now=clock();记录程序开始时的时间,clock()会继续增加,但now已经确定为开始那一时刻clock()的值,在程序结尾,算式clock()-now就是程序执行所需的时间,但是是以时钟周期为单位的,如果想得到以秒为单位的时间只要输出(clock()-now)/clocks_per_sec就是了,即在程序结尾添加
printf("%lf",(clock()-now)/clocks_per_sec);就可以了。

④ C语言源程序到运行程序经过哪几个步骤

1、预处理

在这一阶段,源码中的所有预处理语句得到处理,例如:#include语句所包含的文件内容替换掉语句本身,所有已定义的宏被展开。

根据#ifdef,#if等语句的条件是否成立取舍相应的部分,预处理之后源码中不再包含任何预处理语句。

GCC预处理阶段可以生成.i的文件,通过选项-E可以使编译器在预处理结束时就停止编译。例如:gcc -E -o hello.i hello.c

2、编译

这一阶段,编译器对源码进行词法分析、语法分析、优化等操作,最后生成汇编代码。这是整个过程中最重要的一步,因此也常把整个过程称为编译。

可以通过选项-S使GCC在进行完编译后停止,生成.s的汇编程序。例如:gcc -S -o hello.s hello.c

3、汇编

这一阶段使用汇编器对汇编代码进行处理,生成机器语言代码,保存在后缀为.o的目标文件中。

当程序由多个代码文件构成时,每个文件都要先完成汇编工作,生成.o目标文件后,才能进入下一步的链接工作。

目标文件已经是最终程序的某一部分了,只是在链接之前还不能执行。可以通过-c选项生成目标文件:gcc -c -o hello.o hello.c

4、链接

经过汇编以后的机器代码还不能直接运行。为了使操作系统能够正确加载可执行文件,文件中必须包含固定格式的信息头,还必须与系统提供的启动代码链接起来才能正常运行,这些工作都是由链接器来完成的。gcc -o hello hello.c

5、运行:执行.EXE文件,得到运行结果。

⑤ [C语言] 运行C程序的步骤

(1)上机输入和编辑源程序。通过键盘向计算机输入程序,如发现有错误,要及时改正。最后将此源程序以文件形式存放在自己指定的文件夹内(如果不特别指定,一般存放在用户当前目录下),文件用.c作为后缀,生成源程序文件,如f.c。

(2)对源程序进行编译,先用C编译系统提供的“预处理器”(又称“预处理程序”或“预编译器”)对程序中的预处理指令进行编译预处理。例如,对于#include<stdio.h>指令来说,就是将stdio.h头文件的内容读进来,取代#include<stdio.h>行。由预处理得到的信息与程序其他部分一起组成一个完整的、可以用来进行正式编译的源程序,然后由编译系统对该源程序进行编译。
编译的作用首先是对源程序进行检查,判定它有无语法方面的错误,如有,则发出“出错信息”,告诉编程人员认真检查改正。修改程序后重新进行编译,如果还有错,再发出“出错信息”。如此反复进行,直到没有语法错误为止。这时,编译程序自动把源程序转换为二进制形式的目标程序(在Visual C++中后缀为.obj,如f.obj)。如果不特别指定,此目标程序一般也存放在用户当前目录下,此时源文件没有消失。
在用编译系统对源程序进行编译时,自动包括了预编译和正式编译两个阶段,一气呵成。用户不必分别发出二次指令。
(3)进行连接处理。经过编译所得到的二进制目标文件(后缀为.obj)还不能供计算机直接执行。前面已说明:一个程序可能包含若干个源程序文件,而编译是以源程序文件为对象的,一次编译只能得到与一个源程序文件相对应的目标文件(也称目标模块),它只是整个程序的一部分。必须把所有的编译后得到的目标模块连接装配起来,再与函数库相连接成一个整体,生成一个可供计算机执行的目标程序,称为可执行程序(executive program),在Visual C++中其后缀为.exe,如f.exe。
即使一个程序只包含一个源程序文件,编译后得到的目标程序也不能直接运行,也要经过连接阶段,因为要与函数库进行连接,才能生成可执行程序。
以上连接的工作是由一个称为“连接编辑程序”(linkage editor)的软件来实现的。
(4)运行可执行程序,得到运行结果。
以上过程如图1.2所示。其中实线表示操作流程,虚线表示文件的输入输出。例如,编辑后得到一个源程序文件f.c,然后在进行编译时再将源程序文件f.c输入,经过编译源程序,找出问题,修改源程序,并重新编译,直到无错为止。有时编译过程未发现错误,能生成可执行程序,但是运行的结果不正确。一般情况下,这不是语法方面的错误,而可能是程序逻辑方面的错误,例如计算公式不正确、赋值不正确等,应当返回检查源程序,并改正错误。
为了编译、连接和运行C程序,必须要有相应的编译系统。目前使用的很多C编译系统都是集成开发环境(IDE)的,把程序的编辑、编译、连接和运行等操作全部集中在一个界面上进行,功能丰富,使用方便,直观易用。

⑥ 怎么查看c语言程序运行过程

用单步执行,VC下面是
按键F10
就是键盘上面最上面一行的F数字按键·~~~~
进行一步一步的执行,下面的窗口可以设定跟踪变量
在TC里面则是
F7、F8进行单步执行(其中一个是跳过被调用函数,好像是F8)
按键Ctrl+F7组合可以加入跟踪变量的结果显示~~~~
其他编译器一般没有支持调试的,再次就不说了·~~~~

⑦ C语言程序运行过程

  1. 第一题答案:

    60.5

    70.5

    运行过程:首先struct xscj xs[]={{1,60,61},{2,70,71}};这条语句是对结构体数组xs赋初值,{1,60,61}分别赋值给xs[0].n=1, xs[0].cj1=60, xs[0].cj2=61;xs[0].cj3未赋值。同理,{2,70,71}分别赋值:xs[1].n=2, xs[1].cj1=70, xs[1].cj2=71;xs[1].cj3未赋值.

    其次,

    for(i=0;i<2;i++){

xs[i].cj3=(xs[i].cj1+xs[i].cj2)/2;

printf("%5.1f ",xs[i].cj3);

}

这条语句是分别对xs[1],xs[2]的cj3字段赋值,赋值为(cj1+cj2)/2的值。输出语句 printf("%5.1f ",xs[i].cj3);限定了输出宽度和小数点位数,故输出60.5 和 70.5.

2.第二题填空:st.name @st.age

首先明白scanf的格式:

scanf("格式化字符串",变量地址表);

“变量地址表”是接受输入数据的变量的地址。第一个输入格式是%s,接收字符串,字符串名字即为首地址,所以直接st.name就可以了;第二个格式是%d,接收整型数据,所以必须取地址,使用取地址符号&,所以第二空答案就是&st.age.

⑧ Visual C++ 2010 在写好的C程序后,如何一步一步查看程序的运行

我用的vs2012,不过原理都是一样的,打开你的程序,在上方菜单里,有调试选项,下拉选择里有逐语句调试(快捷键f11),点击逐语句调试,就开始了调试,你应该能看到程序开头有个箭头指向第一条语句。下一步,工具栏里有三个箭头状的命令,第一个是逐语句,第二个是逐过程,第三个是跳出,你点击逐过程的箭头,程序就会一步一步运行了,遇到函数想进一步查看,就点击逐语句(转入),希望能帮到你,谢谢

⑨ C语言程序运行过程

C源程序到运行程序步骤:
1.编辑:输入源程序并存盘(.C)
2.编译:将源程序翻译为目标文件(.OBJ)
3.链接:将目标文件生成可执行文件(
.EXE)
4.运行:执行.EXE文件,得到运行结果

⑩ 当编好一个C语言时,怎么看到其运行效果

VC 6.0这是目前血C用的比较多的
运行VC6.0—>文件—>新建—>文件—>C++ Source File—>填写路径和文件名—>确定—>编辑代码—>编译—>连接—>运行
之后就可以看到程序运行过程了,编译,连接,运行这三个命令有快捷键的
在右边望远镜图标右下方有三个图标,鼠标放上去有提示的,从左到右一次是编译,连接,运行