下列程序在32位linux或unix中的结果是什么?
func(char *str)
{
printf(" %d",sizeof(str));
printf(" %d",strlen(str));
}
main()
{
char a[]="123456789";
printf(" %d",sizeof(a));
printf(" %d",strlen(a));
func(a);
}
结果: 10 9 4 9
第一题:写出下述程序结果:
int m[][3] = {1,4,7,2,5,8,3,6,9};
int i, j, k = 2;
for (i = 0; i < 3; i++) {
printf(“%d”, m[k]);
}
结果为地址
第二题:下列哪个引用是不正确的?
int a[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, *p = a;
(A) a[p-a]; (B) *(&a); (c) p; (D) *(*(a+i));
答:D
第三题:下列4个选项中,哪个结果为6?
int a[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, *p = a;
(A) *p + 6; (B) *(p+6); (C) *p += 5; (D) p+5;
答: A B
1、写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个。
答: MIN(x,y) (x)<(y)?(x):(y)
2、给定一个整型变量a,写两段代码,第一个设置a的bit 3,第二个清除a 的bit 3。在以上两个操作中,要保持其它位不变。
答: int a = 2;
int i ;
i = 1 <<2;
a = a | i;
3、在某工程中,要求设置一绝对地址为0x67a9的整型变量的值为0xaa66。写代码去完成这一任务。
答: int *p = 0x67a9;
*p = 0xaa66;
kaishui 于 2010-02-24 23:08:48发表:
a=a&(0<<3);这个也不对啊,这样a=0
a=a&(~(1<<3));
ziyueling 于 2009-11-23 15:50:38发表:
1# Oracleust
dd
xuruiyi 于 2009-11-22 11:35:43发表:
很简单哦
yuchao668 于 2009-11-15 05:43:06发表:
6# mailtoyj
p=(int *)(0x67a9);很明显的错误;
应该是p=(int )(0x67a9);或直接为p=0x67a9;
clotfish 于 2009-11-07 18:56:55发表:
第一题:写出下述程序结果:
int m[][3] = {1,4,7,2,5,8,3,6,9};
int i, j, k = 2;
for (i = 0; i < 3; i++) {
printf(“%d”, m[k]);
}
这一题有点意思。
clotfish 于 2009-11-06 15:23:15发表:
写了6年的windows代码了,好象转linux啊!
shilinlin0321 于 2009-10-30 17:19:33发表:
顶一下先
BSDix 于 2009-09-24 13:12:32发表:
和Linux一点关系没有。。。
wang7131984 于 2009-09-23 21:41:58发表:
仔细实验一下发现楼上的方法还是行的通的,看来是我少见多怪了。
wang7131984 于 2009-09-22 23:44:29发表:
上面的代码从第0位开始,如果从第一位可以用16进制的4
wang7131984 于 2009-09-22 23:42:01发表:
LS的代码是行不通的。立即数怎么能够取地址,立即数存在代码段中,在执行过程中直接载入寄存器,根本就没有地址。LZ的答案是正确的吧。
清位
a &= ~0x8
设置位
a |= 0x8
这东西在linux中还是挺常用的吧
shenhao0129 于 2009-09-22 22:14:17发表:
3、在某工程中,要求设置一绝对地址为0x67a9的整型变量的值为0xaa66。写代码去完成这一任务。
答: *((int*)0x67a9) = 0xaa66;
failgod 于 2009-09-22 14:46:53发表:
第二个清零错了,这样做会全清零的
按你的写法可以这样写:
a &= (~(1 << 2));
eeuu 于 2009-09-18 15:52:38发表:
半懂不懂的!
zhangshijie 于 2009-09-18 13:07:01发表:
{:3_108:}
chyf3942 于 2009-05-20 21:35:19发表:
唉,忘完了
mailtoyj 于 2009-05-13 14:47:27发表:
其它的,好象没有什么问题了!学习中。。。。。。。
mailtoyj 于 2009-05-13 14:46:51发表:
1、写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个。
答: #define MIN((A),(B)) ((A)>(B)?(B):(A))
mailtoyj 于 2009-05-13 14:44:20发表:
2、给定一个整型变量a,写两段代码,第一个设置a的bit 3,第二个清除a 的bit 3。在以上两个操作中,要保持其它位不变。
答: int a;
a=a|(1<<3);
a=a&(0<<3);
mailtoyj 于 2009-05-13 14:43:05发表:
3、在某工程中,要求设置一绝对地址为0x67a9的整型变量的值为0xaa66。写代码去完成这一任务。
答: int *p = 0x67a9;
*p = 0xaa66;
答: int *p;
p=(int *)(0x67a9);
*p=oxaa66;
微宝贝 于 2009-05-13 00:09:48发表:
还会点呢,基本上看得懂啊,呵呵
微宝贝 于 2009-05-13 00:09:45发表:
还会点呢,基本上看得懂啊,呵呵
yihao530 于 2009-05-11 10:22:46发表:
[i=s] 本帖最后由 yihao530 于 2009-5-11 10:24 编辑 [/i]
哪题错了 乱说
yorktown 于 2007-08-29 06:15:25发表:
晕! 错了2体!!!!!!!!!!!!!!1:49ab:1 :49ab:1 :49ab:1 :49ab:1 :49ab:1 :49ab:1 :49ab:1 :49ab:1 :49ab:1 :49ab:1 :49ab:1