C语言的几道填空题给详细说明

1:表达式1<0<5的值是______。2:表达式~(10>>1^~5)的值是______。3:下列程序段的输出结果是______。inta=1;longb=a*0x12... 1:表达式 1<0<5 的值是______。
2:表达式 ~(10>>1^ ~5) 的值是______。
3:下列程序段的输出结果是______。
int a=1;
long b=a*0x12345678;
printf("%x\n", b);
4:下列程序段的输出结果是_____。
#define T 10
#define MD 3*T
printf("%d", 30/MD);

5:下列程序的输出结果是_____。
# include <stdio.h>
char * f(char *str)
{ return str="fun";
}
void main( )
{ char *str="one";
printf("%s, %c\n", f(str)+1, *f(str)+1);
}
6: 用typedef定义一个指向函数的指针类型FP,该函数的返回值为整型。
 
我有答案的!我想知道理由,有些符号内容我还没学到,你就直接解释你的想法好的了,不用接受符号意思!
int a=1;
long b=a*0x12345678
中的b=a*0x12345678 是什么意思?
答案是typedef int (*FP)();怎么那么多刮号啊???你的又是什么意思?typedef int (*pFunc)() FP;虚心请教!!!
展开
 我来答
Re_start200805
2008-05-03 · 超过18用户采纳过TA的回答
知道答主
回答量:65
采纳率:0%
帮助的人:0
展开全部
1. 运算符左到右 1<0<5 ==> ((1<0)<5) (1<0)返回假,即0 ;(0<5)为真
2. ~(10>>(1^ (~5))) 1^ (~5)=-5 10>>-5肯定为0
~(10>>1^ ~5)=-1
3. 12345678 如果你用的编译器的int是俩位的话结果会是5678 %x打印整形改为%lx就能打印long型了
4. 100 宏是替代的 30/MD ==》30/3*T ==》 30/3*10=100
5. f(str)+1 str地址对应的内容在子函数中给修改了 str = "fun" f(str)+1 表示str+1是str字符串首地址加一 "un"
*f(str)+1==>(*f(str))+1 将str地址里的第一个字符加一 'f'+1='g';
结果是 un g
6 typedef int (*PF)();
aauutthh
2008-05-03 · TA获得超过394个赞
知道小有建树答主
回答量:316
采纳率:0%
帮助的人:436万
展开全部
1. 1(或TRUE) (1<0)返回假,即0 ;0<5为真
2. 这题不现实,没有回答必要.我说说原理
~是取反,取反是有分位长的.对字节取反,对字取反,对双字取反,值都不同.
所以这一题没有做的必要.
而且取反后,值变的极大(无符号),右移的结果为0.

3. 12345678
4 100. 30/MD宏展开为:30/3*10
5 没有输出,程序错误 return str="fun";这句赋值没有通过!!
6.typedef int FP;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式