请教几道C语言题目

来源:百度知道 编辑:UC知道 时间:2024/05/21 23:59:52
一、
以下程序的输出结果是
main()
{int a=2,b=5;
printf("a=%%d,b=%%d\n",a,b);}
题目给的结果是a=%d,b=%d,可我觉得应该是a=%2,b=%3才对啊?
二、
以下语句的输出结果是
int i=-19,j=%4;printf("%d\n",j);
这个题问题在于那个负号,结果要不要有负号呢?还有如果出现2%7这种题目结果应该是什么呢?

确实是a=%d,b=%d
因为两个%号表示输出一个%号,此外C里面两个\可以输出一个\。
第二题无法编译,原因在于那个%号,C内置操作符中%是取余符号,不知道你的意思是什么?以下列出几个可能:
如果原意为:
int i = -19, j = 4;
printf("%d\n",i % j);
这时输出的是-3;如果是2 % 7,则直接输出2。

此外给你提一条建议:
第一题的代码编译会出现一个警告信息(或许在C编译器里会被忽略):
warning 'main' : function should return a value; 'void' return type assumed

即main()函数前没有类型标识,则默认为int,即是:
int main()
那么程序最后最好加上一句:
return 0;
这点告诉系统,程序正常终止。

对于这种出题人脑中风的时候出的题,最好的解决方法就是运行一下,否则你付出的要比你得到的多得多:
1.结果确如答案所说,由答案就可以推出%%导致输出一个%,单独一个d只好单独输出,后面的参数完全没有用

2.可能你%前少打了什么了,反正我编译不了,反正逗号表达式是最无聊的题目之一了,如果说有什么值得学习的就是取余运算%的结果和被取余的数的符号是一致的

f兄弟才学 努力啊