void main(void) { char str[80]; int iNum,i;⑧ ⑧ gets(str);
for( i=0; ⑨ ; i++) ⑨ if( ⑩ ) iNum++; ⑩ printf( “iNum=%d”, iNum); }
五、编程题(30分)
1.求符号函数 1 x>0 y= 0 x=0
-1 x<0 输入x的值,输出结果(5分)。
2.输入6个整数,组成2行3列的二维数组,统计数组中的正数之和、正数个数以及负数之和、负数个数。(7分)
3.编写子函数exps,求ex≈1+x+x2/2!+x3/3!......,要求精度为10-6。在主函数中输入x,利用子函数exps 求(ex+e-x)/2的值,并在主函数中输出结果。(8分)
4.一个班有45人,用a数组存放一门课的成绩,编程输入a的成绩,统计不及格(<60分)的人数,并将成绩按降序排序,输出结果。(10分)
参
一. 填空题(20分,每空1分)
1.main( ) 或主函数 2.1 7 3.0 4.0 5.4.5 6.0 7.4 8.一个字符 一串字符 9.6
10.‟c‟ ‟\\0‟ 11.值传递 地址传递 12.12345 1
13.16 10 14.fp = fopen (“file.txt” , ”w”); 二. 选择题(10分,每题1分)
1.D 2.B 3. A 4.B 5.C 6.B 7.C 8.D 9.A 10.B 三. 写出以下程序的运行结果(30分, 每题5分)
1.5, 6, 5, 0 数值每个一分,格式一分。 2.c=1 数值每个两分,格式一分。 d=0.000000
3.hello world! 大写字母变小写每个两分,其余不变1分。 4.b = -10 i = 33, b=0
i = 75, b=33 每个数据包括数据的格式各一分,。 5.6, 45 最小值位置,最小值各一分; 2, 98 最大值位置,最大值各一分; 格式1分
注释:最大值最小值颠倒扣2分。 6.1 3 5 7 9
数据各一分,格式错误扣一分。 四.程序填空(10分, 每空1分)
1. ① ②j<=s ③break2.④ &a,&b ⑤ int *y ⑥ int t; ⑦ *y=t 3.⑧ iNum=0 ⑨i='a' && str[i]<='z' 五.编程题(30分)说明:每个语法错误扣0.5,语法错误最多扣两分为止。 1. #include main(){ float x,y; /*变量定义1分*/ scanf(“%f”, &x); /*输入1分*/ if(x>0)
y=1;
else if(x<0)
y=-1;
else
y=0; /*判断求值2分*/
printf(“x=%f, y=%f”, x,y); /*输出1分*/ }
2.#include main(){
int i,j,a[2][3],k1=0,k2=0,sum1=0,sum2=0; /*变量说明1分*/ for (i=0;i<2;i++) for(j=0;j<3;j++)
scanf(“%d”, &a[i][j]); /*循环输入2分*/ for (i=0;i<2;i++) for(j=0;j<3;j++) if (a[i][j]>0)
{
sum1= sum1+ a[i][j]; k1++; }
else if (a[i][j]<0)
{
sum2= sum2+ a[i][j]; k2++; } /*统计求和3分*/
printf(“k1=%d, k2=%d”, k1,sum1,k2,sum2); /*输出1分*/ } ⒊
#include #include float exps(float); void main( void) {float x,y; /*变量说明0.5分*/ scanf(“%f”,&x) /*输入0.5分*/ y=(exps(x)+exps(-x))/2 /*函数调用表达式2分*/ printf(“y=%f”,y); /*输出结果1分*/ }
float exps(float x) /*函数结构定义1分*/ {
float s=1,t=1; int i=1;
while( fabs(t)>1e-6) {
t=t*x/i; i++; s+=t; } /*迭代循环2分*/ return s; /*返回结果1分*/ } ⒋
#include #define NUM 45 void main(void) {int i,j,a[NUM],sum=0; for(i=0;i/*变量说明1分*/ /*循环输入1分*//*循环统计2分*/
for(i=0;i{int t; t=a[i]; a[i]=a[j]; a[j]=t; } for(i=0;i}/*排序算法5分,冒泡、选择都可*/ /*循环输出1分*/