1.有以下程序,程序运行后的输出结果是 9
float fun (int x,int y)
{ return (x+y); }
void main()
{
int a=2,b=5,c=8;
printf("%3.0f\n",fun ((int)fun (a+c,b),a-c));
}
解:
%3.0f 中的0 表示输出小数点后0 位 如123.234 显示 123
%3.0f 中的3 表示输出这个数占用三列 如123 显示 123
2.有以下程序,程序的输出结果是 1.10
#include <stdio.h>
#include <stdlib.h>
void fun ( double *pl,double *p2,double *s)
{
s = ( double*) calloc ( 1,sizeof(double));
*s = *pl + *(p2+1);
}
main( )
{
double a [2] = {1.1,2.2},b [2] = {10.0,20.0}, *s = a;
fun (a,b,s);
printf ( "%5.2f\n",* s) ;
}
解:本题考查把数组名作为函数参数,执行fun函数后,s的值并没有发生变化,仍然是指向a,所以输出结果为1.10
本文详细解析了两个C语言程序片段,第一个展示了浮点数函数调用及运算,第二个解释了数组名作为函数参数时的行为,强调了s的值在执行fun函数后并未改变,仍指向a数组,输出结果为1.10。
16万+

被折叠的 条评论
为什么被折叠?



