C语言程序解析

C语言程序解析,第1张

1

#include "stdioh"

main()

{

printf("\n\n%d,%d\n",20/7,-20/7);

printf("%f,%f\n",200/7,-200/7);

}

运行截图

分析:

\n 表示换行

%d 表示以十进制形式输出带符号整数(正数不输出符号)

%f 表示以小数形式输出单、双精度实数

2

#include "stdioh"

main()

{

int x;

char y;

x=65;

y='B';

printf("x=%c\n",x);

printf("y=%c\n",y);

printf("y=%d\n",y);

}

运行截图

分析:

%c 表示输出单个字符

3

#include "stdioh"

main()

{

int i=7,j=7,p,q;

p=(i++)+(i++)+(i++);

q=(++j)+(++j)+(++j);

printf("%d,%d,%d,%d",p,q,i,j);

}

运行截图

分析:

i++ 表示先使用i,然后i的值加1

++i 表示先把i的值加1,再使用i

程序入口main()

fun(i++);//i++,执行后+1,输出结果,所以主函数输出:i=5①

fun(4)

m=m+k=4+0=4,

k=k+m=0+4=4,

printf("m=%dk=%d",m,k++);

输出结果:m=4,k=4

k++,执行后+1,所以主函数输出:k=5

所以程序运行结果:

m=4k=4i=5k=5

先做个LL(1)或者LALR的语法分析器,然后先把教材上的几个LL(1)的例子调通过。然后网上有C语言子集的文法,有人做了转成大小写这样的表述。通过那个的测试就差不多了。。。。其实做语法分析也没多大用 编译器的难点在于语法制导、代码优化之类的,真要做C语言的完整编译器,普通的学生都几乎不可能实现。。。。就不多说了 你可以动手开始做了 如果你有较强的程序设计能力,做个漂亮的LR(1)分析器还是可以的,实在不会就做SLR(1)这样的分析器,如果程序设计能力比较差,建议先做LL(1),那个比较好做。码字不易,望采纳!

以上就是关于C语言程序解析全部的内容,包括:C语言程序解析、请教各位,这道c语言程序该怎么分析多谢、C语言的语法分析器等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9426576.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存