13.6 以下程序的输出结果是
A) 11.10
B) 12.00
C) 21.10
D) 1.10
void fun(float *p1,float *p2,float *s)
{ s=(float *)calloc(1,sizeof(float));
*s=*p1+*p2++;
}
main()
{ float a[2]={1.1,2.2},b[2]={10.0,20.0},*s=a;
fun(a,b,s);
printf("%5.2f\\n",*s);
}
答案:D
13.7 以下叙述中正确的是
A) 用#include包含的头文件的后缀不可以是“.a”。
B) 若一些源程序中包含某个头文件;当该头文件在错时,只需对该头文件进行修改,包含此头文件所有源程序不必重新进行编译。
C) 宏命令行可以看做是一行C语句。
D) C编译中的预处理是在编译之前进行的。
答案:D
二、填空题
13.8 以下程序的输出结果是_____。
#define PR(ar) printf("ar=%d ",ar)
main()
{ int j,a[]={1,3,5,7,9,11,13,15},*p=a+5;
for(j=3; j; j--)
tch(j)
{ case 1:
case 2:PR(*p++); break;
case 3:PR(*(--p));
}
}
答案:ar=9 ar=9 ar=11
13.9 下面程序调用getone函数开辟一个动态存储单元,调用assone函数把数据输入此动态存储单元,
调用outone函数输出此动态存储单元中的数据。请填空。
#include "stdio.h"
getone(int **s)
{ *s=(____)malloc(sizeof(int)); }
assone(int *s)
{ scanf("%d",_____); }
outone (int *b)
{ printf("%d\\n",_____); }
main()
{ int *p;
getone(&p); assone(p); outone(p);
}
答案:int *s *b