第一题
#include <stdio.h>
int a=4,b=5;
int max(int a,int b)
{
int c;
c=a>b?a:b;
return c;
}
void main()
{
int a=6;
printf("%d\n",max(a,b));
}
【输出结果】6
【分析】
int max(int a, int b)
{
int c;
c = a > b ? a : b;
return c;
}
此部分使用条件运算符?,比较a和b的值大小,并将较大值赋给c后返回c的值
void main()
{
int a=6;
printf("%d\n",max(a,b));
}
在此部分中重新定义了一个值为6的变量a,并用max函数比较此时a和b的大小,用printf函数输出较大值
第三题
#include <stdio.h>
int f(int b);
main()
{
int a=3,i;
for(i=0;i<3;i++)
printf("%d,",f(a++));
}
int f(int b)
{
int a=0;
static int c=3;
a++;
b++;
c++;
return (a+b+c);
}
【输出】9,11,13
【分析】使用for循环函数迭代计算,由于static的修饰,变量c在函数调用完之后中不会被重置,而是会保留数据参与下一次的调用,从而实现在函数之间传递数据
第四题
#include <stdio.h>
void main()
{
int a=10,b=4,c=5,x,y;
x=++a-c+b++;
y=18+(b=4)*3;
printf("x=%d,y=%d\n",x,y);
}
【输出】x = 10;y = 30
【分析】运算符计算题,++a先自增,然后使用自增后的值计算,b++使用自增前的值计算
第五题
已知: int a=2, b=7; 计算下列表达式的值: ___________________ a=4,b=1,a>b?++a:++b;
【输出】a = 5
第六题
已知:int k= 4,a=3,b=2,c=1;则表达式“k<a ? k : c<b ?c :a”的值为 ___________________
【输出】c = 1