二级C语言提问

如题所述

1、char
*fun(int
n)请问这里定义这个字符指针有什么用啊?

指示这个函数的类型是字符串,就是函数返回值的类型是字符串

2、还有printf
("\n%s,%s\n",fun(num1
),fun(num2));这里为什么\n%s,%s\n这个换行符号和输出字符串符号能换位置吗?

这里没什么意义,就是排版,首先换行,输出第一个字符串,逗号,输出第二个字符串,最后再换行,它们的位置可以互换的,你想怎么排版就怎么排版

3、为什么说在执行语句s=r*r*pi语句时,r和pi都转换成实型进行计算,结果仍为实型

这是编译器的定义还是什么?

为了保证运算的准确度,一般编译器在编译时都是照最高精度为准的,这个等式中的变量最高精度为实型,结果还是实型,其实有些编译器,可能还把单精当作双精来运算

4、请问他的结果能把65转化为ascii码输出,那么这里的ascii码指的是16进制形式的ascii码吗?c语言编译器默认使用16进制的ascii码?

这个65是十进制的,你输出定义的是%d,也就是十进制;多少进制都无所谓,表达方式不同而已,只要等价就行;没有这个默认的说法

5、此语句的格式为%5.3f,表示输出的总宽度为5,小数为3,这样整数部分只有1位

,请问这句话是什么意思啊总宽度为5,小数为3,那么整数部分不该有两位吗?为什么这里说整数只有1位啊?

小数点也算进去了,这个看编译器的了,这里应该是把整个实数当作一个字符流,小数点也就算一位

6、请问为什么这里把c-32就可以输出c的大写字母了啊?

还有为什么说putchar('\x42');这条语句相当于输出字母B了?

而putchar
(0x42);就是用ascII码输出字母B,这两条语句有什么区别吗?

这个你查下ASCII表就明白了,程序接收的是一个数字代码,和大写字母表相应的大写字母相差32,你自己可以试下,小写字母也一样的差了个固定值;

一个用的转义字符,一个直接用16进制表示,方式不同,结果相同

7、这个-4怎么转换成十进制,无符号十进制,十六进制,八进制的啊?具体流程是什么?

-4本身就已经是有符十进制,在计算机中表示为1100,(第一位符号位,0表示正,1表示符),看成无符十进制时,那就是12了,十六进制和八进制的同理,你自己算吧

都是些很基础的东西,楼主要多看书啊,这样的问题大家都是不太愿意回答的
温馨提示:答案为网友推荐,仅供参考
相似回答