作业帮 > 综合 > 作业

C语言程序设计两道题 两题每句语句的意思 尽可能的详细

来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/12 23:57:28
C语言程序设计两道题 两题每句语句的意思 尽可能的详细
C语言程序设计两道题 两题每句语句的意思 尽可能的详细
main()
{
int a=5,b=-1,c;
c=adds(a,b);//调用函数adds 传递实参a,b 传递过去相当于x=a y=b,返回值赋给c
printf("%d",c);//1.c=2
c=adds(a,b);//在调用一次函数
printf("%d\n",c);//2.c=3
}
int adds(int x,int y)
{
static int m=0,n=3;//我想考的知识点就是这里 静态局部变量 这个就相当于全局变量 但是作用范围只在这个调用函数中 用完之后值是不释放的 而且在整个程序中只定义一次
n*=++m;//等价于 n=n*(m+1) 1.n=3*(0+1)=3 ++m是先加再使用 此时变了m=1 n=3 2.m=2 n=3 n=3*(2+1)=9
m=n%x+y++;//y++是先使用后再加 1.m=n%x+y=3%5+(-1)=2 m变为2 2. m=9%5+(-1)=3
}
所以答案选A
第二题主要考的是宏定义,宏定义 只要明确一点 复制粘贴替换而已
这个程序执行f(a)/f(b) 就是讲a与b先递给x c=f(a)/f(b) 相当于 c=a*a/b*b;宏定义是不进行运算的 就是简单的替换 因为没加括号的原因 *和/是同等级别的 所以从左往右计算c=6*6/2*2=36