下列程序在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;
阅读(3342) | 评论(1) | 转发(3) |