国家二级C语言机试(操作题)模拟试卷642
程序填空题
1.使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,函数fun的功能是:计算如下公式
直到
(1)3.0或(double)3
(2)>
(3)(t+1)
解析:填空1:变量x定义为double类型,而运算符“/”后面是整型数,因此给x赋值时,需要注意数据类型,此处不能将3.0写成3。
填空2:while循环语句的循环条件。根据题意确定循环变量应大于le-3,因此此处应填“>”。
填空3:表达式的通项是(2*i+1)/(2*i)2,由于程序中已定义t=2*i,所以此处应该填写(t+1)。
程序修改题
2.使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,函数fun的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ASCII码值升序排序后输出。例如,若输入\\
(1)for(i=strlen(t)-1;i;i–)或
for(i=strlen(t)-1;i>0;i–)
(2)jf(t[j]>t[j+1])
解析:(1)本题是利用选择法对数组元素进行比较排序。所谓选择法,是依次用当前取得的元素和其后面的元素进行比较,在第一个元素和其后面的元素顺次比较时,可以借助中间变量来对两个数进行交换,要保证第一个元素始终存放数组中的最大数,以后依次挑选出次大数,这样最终的数组就是有序的。strlen函数所求得的字符串长度,数组最大下标表示为字符串长度减1,所以要减1。
(2)这里是一个分析逻辑错误,题中要求按升序排序,所以应改为if(t[j]>t[j+1])。
程序设计题
3.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][N],int m),该函数的功能是使数组右上半三角元素中的值乘以m。
例如,若m的值为2,a数组中的值为:
则返回主程序后a数组中的值应为:
void fun(int a[][N],int m)
{
int i,j;
for(j=0;j<N;j++)
for(i=0;i<=j;i++)
a[i][j]=a[i][j]*m;
/*右上半三角元素中的值乘以m*/
}
解析:本程序实现将矩阵中右上半三角元素中的值乘以m,使用循环语句遍历数组元素,第1个循环用于控制行坐标,第2个循环用于控制列下标。
本文档预览:3600字符,共1764字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载