当前位置:快学网资格考试计算机等级考试2017年计算机二级考试C语言填空模拟试题四» 正文

2017年计算机二级考试C语言填空模拟试题四

[05-16 16:21:15]   来源:http://www.kuaixue5.com  计算机等级考试   阅读:8489
概要: 概要:8. 请补全main函数,该函数的功能是:如果数组aa的前一个元素比后一个元素小,则把它保存在数组bb中并输出 。main(){int i,n=0;int aa[N]={45,55,62,42,35,52,78,95,66,73};int bb[N];clrscr();for(i=0;i《___1___;i++)if(aa[i]___2___;printf(“\n*** display bb ***\n”);for(i=0;iprintf(“bb[%d]=- ”,___3___);}第一处:N-1第二处:bb[n++]=aa[i]第三处:i,bb[i]解析:由于bb[ ]数组中实际元素个数未知,故需要边比较,边统计。n作为bb[ ]数组元素的个数,开始n=0,比较aa[ ]中相邻两个元素,满足条件则将其放入bb中,且个数加1。9. 已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体中,给定程序的功能是找出成绩最低的学生记录,通过形参返回主函数。typedef struct ss{char num[10];
2017年计算机二级考试C语言填空模拟试题四,标签:计算机等级考试试题,全国计算机等级考试试题,http://www.kuaixue5.com
8. 请补全main函数,该函数的功能是:如果数组aa的前一个元素比后一个元素小,则把它保存在数组bb中并输出 。

main()

{int i,n=0;

int aa[N]={45,55,62,42,35,52,78,95,66,73};

int bb[N];

clrscr();

for(i=0;i《___1___;i++)

if(aa[i]

___2___;

printf(“\n*** display bb ***\n”);

for(i=0;i

printf(“bb[%d]=- ”,___3___);

}

第一处:N-1

第二处:bb[n++]=aa[i]

第三处:i,bb[i]

解析:

由于bb[ ]数组中实际元素个数未知,故需要边比较,边统计。

n作为bb[ ]数组元素的个数,开始n=0,比较aa[ ]中相邻两个元素,满足条件则将其放入bb中,且个数加1。

9. 已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体中,给定程序的功能是找出成绩最低的学生记录,通过形参返回主函数。

typedef struct ss

{char num[10]; int s; } STU;

fun(STU a, STU *s)

{___1___ h;

int i ;

h = a[0];

for ( i = 1; i 《 N; i++ )

if ( a[i].s 《 h.s ) ___2___ = a[i];

*s = ___3___ ;

}

第一处:STU

第二处:h

第三处:h

解析:

记住:要想通过函数的参数返回结果,该参数需要使用指针类型或者数组。

求最小值,算法思想同19题。

第三处:也可以是 s=&h 指针赋值。

www.kuaixue5.com

10. 给定程序的功能是求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积。

#include

float fun ( float ___1___ )

{

return 3.14159 * ___2___ /2.0;

}

main ( )

{float x;

printf ( “Enter x: ”);

scanf ( “%f”, ___3___ );

printf (“ s = %f\n ”, fun ( x ) );

}

第一处:r

第二处:r * r

第三处:&x

解析:这题太简单了。

11. 请补全main函数,该函数的功能是求方程ax2+bx+c=0的两个实数根。方程的系数a,b,c从键盘输入,如果判别式(disc=b*b-4*a*c)小于0,则要求重新输入a,b,c的值。

#include

#include

main()

{float a,b,c,disc,x1,x2;

//clrscr(); //clear screen

do

{

printf(“Input a, b, c: ”);

scanf(“%f,%f,%f”,&a,&b,&c);

disc=b*b-4*a*c;

if(disc《0)

printf(“disc=%f \n Input again!\n”,disc);

}while(___1___);

printf(“*******the result*******\n”);

x1=___2___;

x2=___3___;

printf(“\nx1=%6.2f\nx2=%6.2f\n”,x1,x2);

}

第一处:disc《0

第二处:(-b+sqrt(disc))/(2*a)

第三处:(-b-sqrt(disc))/(2*a)

解析:

搞清while 循环与do……while的差别。

表达式的正确书写。加上括号。

此题有一定的问题 a=0 ?

www.kuaixue5.com

12. 请补全main函数,该函数的功能是:输出方程A+B=52,A+2B=60的一组正整数解,

main()

{int i,j,k;

clrscr();

for(i=0;i《100;i++)

for(j=0;j《100;j++)

if(___1___)

printf(“A=-,B=-”,___2___);

}

第一处:i+j= =52&&i+2*j= =60

第二处:i,j

解析:

方程:满足条件的组合就是方程的解。

枚举法。

当方程的个数少于未知数的个数时,一般使用枚举法(多重循环)

13. 请补全fun函数,该函数的功能是,判断一个年是否为闰年。

int fun(int n)

{int flag=0;

if (n % 4==0)

{

if (___1___)

flag=1;

}

if (___2___)

flag=1;

return ___3___;

}

第一处:n % 100 != 0

第二处:n % 400 == 0

第三处:flag

解析:

条件表达式的正确书写。

三个if可以缩成一个if

if((n%4==0&&n0!=0) ||n@0==0)。前面的括号不加也可以,最好还是加上吧。

flag起标记的作用。

if (flag) 等价于if (flag!=0)

if (!flag) 等价于if (flag= =0)

0为假,非0即为真。

www.kuaixue5.com

14. 给定程序的功能是将n个人员的考试成绩进行分段统计,考试成绩放在a数组中,各分段的人数存到b数组中:成绩为60到69的人数存到b[0]中,成绩70到79的人数存到b[1],成绩为80到89的人数存到b[2],成绩90到99的人数存到b[3],成绩为100的人数存到b[4],成绩为60分以下的人数存到[5]中。

void fun(int a, int b, int n)

{int i;

for (i=0; i《6; i++) b[i] = 0;

for (i=0; i《 ___1___; i++)

if (a[i] 《 60) b[5]++;

___2___ b[(a[i]- 60)/10]++;

}

main()

{int i, a[100]={ 93, 85, 77, 68, 59, 43, 94, 75, 98}, b[6];

fun(___3___, 9);

printf(“the result is: ”);

for (i=0; i《6; i++) printf(“%d ”, b[i]);

printf(“\n”);

}

第一处:i《6

第二处:else

第三处:a, b

解析:

数组 a 实际有9个元素。

数组 b 实际有6个元素。

理解语句 b[(a[i]- 60)/10]++; 的含义。动手。

个数的计数。

上一页  [1] [2] 


Tag:计算机等级考试计算机等级考试试题,全国计算机等级考试试题计算机等级考试
上一篇:2017年计算机二级考试C语言填空模拟试题三

发表评论

表达一些您的想法吧!

文明评论,理性发言!

分类导航