几个C语言比较基础的题目

来源:百度知道 编辑:UC知道 时间:2024/05/25 03:48:14
第一题:
a=1;b=2;c=2;
while(a<b<c) {t=a;a=b;b=t;c--;}
printf("%d,%d,%d",a,b,c);
答案是1,2,0,我算得却是2,1,1,不知道正确答案到底是多少。

第二题:
#include<stdio.h>
main()
int a=-10,b=-3;
printf("%d",-a%b);
答案是1,不知道是负数的取余怎么算。

第三题:
main()
{long y=-43456;
printf("y=%-8ld\n",y);
printf("y=%-08ld\n",y);
printf("y=%08ld\n",y);
printf("y=%+8ld\n",y);
}
答案是:
y=-43456
y=-43456
y=-0043456
y=■■-43456(■代表空格)

以上题目均有答案,但是不知道答案怎么得出,希望大家可以详细点儿说明下结果,谢谢!

第一题答案是 1、2、0
while 循环做两次:第一次 a<b为真,返回值1,其小于c(c此时为2)。所以
a<b<c总体的返回值为1,为真,做第一次while循环。循环做完a和b交换,c自减一次。第二次时a<b为假(a,b交换了),其返回值为0,小于C(c自减后为1),所以总的返回值为1,执行while循环。a,b再次交换,c自减,变为0.第三次判断 a<b<c你自己去分析吧,所以答案是 1,2,0

第二题
首先,你要知道取负运算符的优先级高于求余运算符。所以此题实际上是求10对-3求余。记住一点,做求余运算时,运算结果的符号和第一个操作数一样

第三题我不是很清楚。你应该是初学者吧,学习过程中不要太拘泥于语法,不要老是去专语法,自己多写程序,这样才可以真的学到东西。

y=%-8ld显示八位,不够的话右端补空格,y=%8ld左端补空格

第三题你可以看一下书上关于printf格式输出