ESIT考题

1,//返回值的类型与函数原型的定义一致;例如,int argc(){...}函数返回一个int类型。

2,//你的想法是对的,这样的函数是递归的。

3,//步骤a+= a-= a+a;此时a = 10;执行a-=a+a后,a=-10(注意此时赋值A);那么a+= a;a =-20;

//组合是从右到左,所以a先赋给-10;

4,.整数f(整数n)

{ static int m = 5;//static表示变量M是静态的,也就是说它总是保存在内存中。

return ++ m+n;

}

主( )

{int i:

for(I = 0;我& lt3;i++)

printf("%5d ",f(I));

//i=0,m = 6;当i=1时,m = 7;当i=2时m = 8;这个问题考察的是static关键字。

printf(" \ n ");

}

5.#定义大小4 //宏定义

主( )

{int n[SIZE]={8,3,4,1 };//声明并初始化数组;相当于:n[0]= 8;n[1]=3,n[2]= 4;n[3]= 1;

int i,j;//声明变量

for(I = 0;我& lt尺寸;i++)

{printf("%d ",n[I]);//打印n数组

for(j = 1;j & lt= n[I];j++)

printf(" * ");//打印结果取决于int数组的初始化。

printf(" \ n ");

}

}

6.# include & ltstdio.h & gt

# include & ltstdlib.h & gt//头文件

主( )

{ char ch

FILE * fp//定义文件指针

If ((fp = fopen ("file.dat "," _ _ _ _ _ _ _ w ")= = null)//" w "是fopen函数的参数,表示可以打开并写入一个文件。首先,将文件的长度减为0。如果“文件。dat”不存在,

{printf("无法打开文件\ n ");退出(0);}

ch = getchar();

而(ch!='#')

{fputc(________ch,FP);

//这个空白是检查fputc(io库函数)的参数,意思是把指定的字符写入指定的流。问题是

//写入file.dat

ch = getchar();

}

fclose(_ _ _ _ _ _ _ _ FP);//关闭指针指定的文件,这里是fp对应的“file.dat”文件。

//也是为了考察fclose(IO库函数)的参数。

}

7.

# include & ltstdio.h & gt

#定义N 100 //宏定义

main0

{int a[N],I,N = 0;

浮点和=0,aver//最上面两行是声明变量和数组;

for(I = 0;我& ltn;i++)scanf("%d ",& ampa[I]);//读键盘,输入100整数。

for(I = 0;我& ltn;i++)

if(a[I]& gt;=0)

{

sum = sum+a[I];//用于计算正整数的和。

n++;//用于计算整数的总数;

}//以上5个作为循环得到正整数之和以及正整数和零的总数。

if(n= =0)printf("所有数字都是负数!\ n ");//查看输入的数字是否都小于零。

//或者非法,比如输入的不是数字。

其他

{ aver = sum \ n;

printf("aver=%7.2f\n ",aver);

}//计算所有大于等于零的数的平均值,保留小数点后2位,占用7个空格。

}

8.

# include & ltstdio.b & gt

Float area (float t,float b,float h)//三个参数(上底t,下底b,高h)。

{

return(t+b)* h * 0.5;//(上底+下底)*高度/2是梯形面积公式,返回面积。

}

主( )

{float t1,b1,h 1;

scanf("%f%f%f ",& ampt 1;b1。h 1);//读取键盘输入梯形的上底边、下底边和高度的值。

printf("area=%7.2f\n ",area(t1,b1,h 1));// %7.2f是函数float area();该函数返回的值

//同区输出占7位,保留2位小数;

}

综上所述,我看得出你考C语言的难度不是很大。我觉得这不应该是大学里的一个考试吧?

同时可以看出你的C语法不是很好。说白了,你应该什么都没学到,顶多在变量声明循环附近。

所以,你最好老老实实读读谭浩强的《C语言程序设计》。

不是你该怎么做那种题,而是你根本没打好基础~ ~