C语言深度解剖【习题续】

来源:互联网 发布:绝对值的算法 初一 编辑:程序博客网 时间:2024/06/06 11:20
 

第二章

2.7
留一个问题:
for(i=0,printf(“First=%d”,i);
i<10,printf(“Second=%d”,i);
i++,printf(“Third=%d”,i))
{
printf(“Fourth=%d”,i);
}
打印出什么结果?

2.7.1
我们先看看这个:a+++b 和下面哪个表达式想当:
A),a++ +b;
B),a+ ++b;

第三章
3.1.4
留四个问题:
A),#define SQR (x) ((x)*(x))
#define SUM (x) (x)+(x)
上述宏定义中“SUM”、“SQR”是宏吗?
B),#define EMPTY
这样定义行吗?
C),打印上述宏定义的值:printf(“SUM (x)”);结果是什么?
D), “#define M 100”是宏定义吗?


第四章

三个问题:
A),什么是指针?
B),什么是数组?
C),数组和指针之间有什么样的关系?

4.4.3
但是如果修改一下代码,会有什么问题?p3+1 和p4+1 的值又是多少呢?
int main()
{
char a[5]={'A','B','C','D'};
char (*p3)[3] = &a;
char (*p4)[3] = a;
return 0;
}
甚至还可以把代码再修改:
int main()
{
char a[5]={'A','B','C','D'};
char (*p3)[10] = &a;
char (*p4)[10] = a;
return 0;
}
这个时候又会有什么样的问题?p3+1 和p4+1 的值又是多少?
上述几个问题,希望读者能仔细考虑考虑。

4.7.3
(*(char**(*) (char **,char **))0) ( char **,char **);
分析以上语句意思

5.3.5.4
写两个函数,一个生成链表,一个释放链表。两个函数的参数都只使用一个表头指针。

5.3.5.5
留一个问题:对NULL 指针连续free 多次会出错吗?为什么?如果让你来设计free
函数,你会怎么处理这个问题?

 


 

原创粉丝点击