请计算机高手看几个C语言题目
发布网友
发布时间:2022-04-27 07:22
我来回答
共4个回答
热心网友
时间:2022-06-28 11:06
2. define 展开以后不进行检查的,所以展开以后变成10*(10)<(15)?(10):(15),100当然不小于15,所以判断结果是15,这个是宏的概念,朋友应该好好很很C的基础了!
3.getchar 是一个字符接受,第3个你输入的stru 或许会有问题,还有就是回车的时候是‘\r',系统是否会作为作为字符去接受也不一定。
4.printf(“abcdef/%d”,a);逗号以后的那个a是一个变量,会根据程序的变化而打印出不同的值,而前面ab....中的a 是一个字符串,不会去改变
5.enum 是一枚举,他会自动定义变量后的值,一般用于错误输出的处理比较好!
6.这个是根据cpu的大小端来判断的,有些cpu是大端存储方式,有些事小端存储方式,兄弟这个搞不清楚的话很难和你解释,可以去,查一下这种存储方式
8.题目有些看不懂,scanf 的话是输入一个字符串,但是strcat得连接2个字符串,当然ss这个字符串是81大小,而hh也是81大小,这个时候需要考虑的是是不是会导致越界!这个需要兄弟你自己好好的理解一下题目的本意了
9。这个题目的代码规范不好容易让人理解错,我简单说一下,当if判断好以后,进入if 以后会打印+,完成以后掉出判断,紧接着就会打印-,因为else后面只写了continue,这样的写法就导致只要满足if中的条件就会输出+ -。因此你感觉有无continue都一样了!
热心网友
时间:2022-06-28 11:06
#define MIN(a,b) (a)<(b)?(a):(b)
main()
{int m=10,n=15,k;
k=10*MIN(m,n);
printf("%d\n",k);
}
A)30 B)180 C)15 D)200
答案选C,运行也是这个结果,我觉得应该是100。
应该是这个样子
K = 10*10<15?10:15;
所以结果肯定是15啦 宏只是简单的替换 运算时你要先替换在运算的
热心网友
时间:2022-06-28 11:07
A
热心网友
时间:2022-06-28 11:07
第四题很简单啊
printf函数引号里面的东西是原样输出的,
%(d、c、f、s...)代表输出的数据类型