计算机二级C,求助

来源:百度知道 编辑:UC知道 时间:2024/06/10 02:48:44
有两道题不懂啊,
1、有以下程序片段:
{int k = -3;
if ( k < = 0) printf(”* * * * \n");
else printf("&&&&\n");
}
程序的输出结果是()
A、#### B、&&&& C、####&&&& D、有语法错不能通过编译
2、请写出以下程序的输出结果( )
#include<stdio.h>
main( )
{ int a=100;
if(a>100) printf("%d\n",a>100);
else printf("%d\n",a<=100);
}
哦,第一题选D,第二题答案是1。我实在是头疼,怎么算的啊,哪位高人救救我吧!

第一题都说是程序片段了,错误当然不是缺少头文件和主函数 “<=”中间也是允许空格的
而是这行if ( k < = 0) printf(”* * * * \n");错了

这行的printf()括号中的第一个双引号为中文输入法的双引号”,而不是英文中的双引号",所以语法是编译不过去的。呵呵 考眼力吧!!
另外这题ABC中的#号根本就没有,出题人就是为了防止你选它们的。

第二题,输出的是逻辑表达式a<=100的值,逻辑表达式的值只能为为真1或者假0,而100<=100是成立的,故输出逻辑表达式值1。

第一题没有头文件 没有主函数 所以语法错误
第二题 输出else 而a<=100的判定结果是1 所以结果为1

第一题为什么是D?没看明白,是不是因为 "< ="之间多了一个空格?
第二题答案是1.
1>. a = 100,所以a>100不成立,进入else分支
2>. 输出的时候,先计算表达式a<=100的值.因为a<=100成立,所以它的结果是true,也就是数值1.然后输出1.

我只知道第二道,意思是如果a大于100就判断a>100的真假,必然是真,真就是1;如果a<=100就判断a<=100的真假,还是真,=1。所以第二题不论a=几,答案都是1

第一题没有#include<stdio.h>,也没有main函数。所以会报错。第二题a=100,没有满足a>100,所以执行else,而a=100,在a<=100是成立的,为真,所以值为1。即a<=100是用来判断真假,结果要嘛一要嘛0.真为1,假为0。a=100当然满足a<=100。所以真,值为1.