ESIT考题
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语言程序设计》。
不是你该怎么做那种题,而是你根本没打好基础~ ~