内容发布更新时间 : 2025/6/14 23:42:28星期一 下面是文章的全部内容请认真阅读。
#include
void find(float *p, int max, int min, int n) {
int k;
*max=*p; for(k=1;k
t=*(p+k);
if( ) *max=t; if(t<*min) *min=t; } }
五、选做题
1、写出下列程序运行结果 main() {
int i=1,p; p=fun(i,i+1); printf(\ }
int fun(int a,int b) {
int f; if(a>b) f=1;
else if(a==b) f=0; else f=-1; return f; }
2、键盘输入 abcdef
char c ;
if((c=getchar( ))!='\\n')
- 26 -
fun( ) ; putchar(c); }
void main( ) { fun( ); }
3、写出下列程序运行结果 #include
int x;
x=y++; printf(\
if(x>4) { int x ; x=++y; printf(\ x+=y--;
printf(\}
4、写出下列程序运行结果 #include
func(int a , int b)
{ c=a*b ; a=b-1 ; b++ ; return (a+b+1) ; } void main( ) {
int b=2 , p=0 ; c=1 ; p=func(b , a) ;
printf(\}
5、写出下列程序运行结果
unsigned fun6(unsigned num) {
unsigned k=1;
do { k*=num; num/=10; } while(num); return k; }
void main( )
- 27 -
{
unsigned n=26;
printf(\}
6、写出下列程序运行结果 #include
int x,y,z,t,m;
scanf(\ t=max(x,y); m=max(t,z); printf(\}
int max(int a,int b) {
if(a>b)
return(a); else
return(b); }
运行时若输入:10,15,9 则输出:
运行时若输入:300,129,300 则输出: 7、写出下列程序运行结果 #include
int n1,n2; long a;
scanf(\ a=sum(n1,n2);
printf(\}
long sum(int a,int b) {
long c1,c2;
- 28 -
c1=factorial(a); c2=factorial(b); return(c1+c2); }
long factorial(int n) {
long rtn=1; int i;
for(i=1;i<=n;i++) rtn*=i; return(rtn); }
运行时若输入:2,3 则输出: 运行时若输入:0, 5 则输出: 8、
#include
int n; x=1;y=2; n=s();
printf(\}
int s() {
int z; x=3;y=4; z=x+y; return(z); }
程序运行后输出:
- 29 -
9 预处理命令
一、单项选择题
1、 以下不正确的叙述是( )
A.宏替换不占用运行时间。 B.宏名无类型。
C.宏替换只是字符替换。 D.宏名必须用大写字母表示。 2、 C语言的编译系统对宏命令的处理( ) A.在程序运行时进行的。 B.在程序连接时进行。
C.和C程序中的其它语句同时进行编译的。 D.在对源程序中其它语句正式编译之前进行的。 3、以下程序的输出结果是( )
A.15 B.100 C.10 D.150 #define MIN(x,y) (x)<(y)?(x):(y) void main( ) {
int I,j,k;
i=10;j=15;k=10*MIN(i,j); printf(“%d\\n”,k);
}
4、以下叙述中正确的是( )
A.用#include包含的文件的后缀必须是“.h”。
B.若一些源程序中包含某个头文件;当该文件有错时,只需对该头文件进行修改,包含此头.文件的所有源程序不必重新进行编译。 C.宏命令行可以看作是一行C语句。 D.预处理是在编译之前进行的。 5、以下叙述中正确的是( ) A.源程序中所有的行都参加编译。
B.宏定义常量与const定义常量是一样的。
C.宏定义可以嵌套定义,即在宏定义中的字符串可以引用另一个宏定义的标识符。 D.以上都不正确。
二、填空题
1、以下程序中for 循环执行的次数是 。
#define N 2 #define M N+1
- 30 -