国家二级C语言机试(操作题)模拟试卷784
程序填空题
1.使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,通过定义并赋初值的方式,利用结构体变量存储了一名学生的学号、姓名和3门课的成绩。函数fun的功能是将该学生的各科成绩都乘以一个系数a。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
typedef struct
{int num;
char name[9];
float scoEe[3];
}STU;
void show(STU tt)
{int i;
printf(\\
(1)STU
(2)score[i]
(3)&std
解析:本题是利用结构体存储学生记录,对记录进行修改并由实参ss返回。
填空1:实参ss是一个结构型指针变量,所以应填STU。
填空2:该学生的各科成绩都乘以一个系数a,所以应填score[i]。
填空3:函数的调用,由于函数定义时使用的指针结构型变量,所以应填&std。
程序修改题
2.使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,函数fun的功能是:求k!(k<13),所求阶乘的值作为函数值返回。例如,若k=10,则应输出3628800。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<conio.h>
#include<stdio.h>
long fun(int k)
{
/*********found*********/
if k>1
return(k*fun(k﹣1));
return1;
}
main()
{
int k=10;
printf(\\
if(k>1)
解析:语法错误,if条件表达式应写在小括号内。
程序设计题
3.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。此程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][N],int n),该函数的功能是:使数组左下半三角元素中的值乘以n。例如,若n的值为3,a数组中的值为
则返回主程序后a数组中的值应为
void fun(int a[][N],int n)
{
int i,j;
for(i=0;i<N;i++)
for(j=0;j<=i;j++)
/*矩形的下三角时,积相乘*/
a[i][j]=a[i][j]*n;
}
解析:首先从数组中找出要被乘以n的那部分元素,这一过程其实就是找出将被挑出的元素在原数组中的分布规律的过程。通过观察得出,要被处理的元素下标值的范围是每行中从第一个元素开始,直到列数等于该行行数时为止。找到这个规律后,依次从数组中取得符合要求的元素,然后乘以n。
本文档预览:3600字符,共1919字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载