学习C语言过程遇到的习题或面试题,不定期更新。。。
目录
一、问答题
1、
#include <stdio.h>
#define SQR(X) X*X
//#define SQR(X) (X)*(X)
//#define SQR(X) ((X)*(X))
int main()
{
int a=10, k=2,m=1;
int b,c;
a/= SQR(k+m)/SQR(k+m);
// b = SQR(k+m)/SQR(k+m);
// c = SQR(k+m);
printf("%d\n",a);
return 0;
}
答案:1,1,10(根据宏定义的顺序)
本题是关于#define的使用,需要注意被替换内容的括号问题;
三种结果:a /= 2+1*2+1/2+1*2+1 => a = 10 / 7 = 1
a /= (2+1)*(2+1) / (2+1)*(2+1) => a = 10 / 9 = 1
a /= ((2+1)*(2+1)) / ((2+1)*(2+1)) => a = 10 / 1 = 10
二、程序题
1、实现一个函数 ,要求将指针t指向的字符串复制到指针s指向的字符串尾部。函数名为void strcat(char *s, char *t)
void strcat(char *s, char *t)
{
while(*s)
s++;
while(*s++ = *t++)
;
}