试题及答案14
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
程序填空题
给定程序的功能是:从键盘输入若干行文本(每行不超过80个字符),写到文件myfile4.txt 中,用-1(独立一行)作为字符串输入结束的标志。然后将文件的内容读出显示在屏幕上。文件的读写分别由自定义函数ReadText和WriteText实现。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
本题考核点为:文件的读写函数等。
题中第一个空填"*fw":fw是一个文件指针,从键盘上读入数据,输入其所指向的文件中。
题中第二空填"str":fputs函数向文件中写数据,其函数原型为:fputs(ch,fp) 其中ch是要输出的字符,它可以是一个字符常量,也可以是一个字符变量。fp是文件指针变量。
题中第三个空填"str":printf函数的一般格式为:
printf(格式控制,输出表列)
1、"格式控制"是用双引号括起来的字符串,也称"转换控制字符串",它包括两种信息:
格式说明:由"%"和格式字符组成,如%d,%f等。它的作用是将输出的数据转换为指定的格式输出。格式说明总是由"%"字符开始的。
普通字符,即需要原样输出的字符。
2、"输出表列":是需要输出的一些数据,可以是表达式。
本评析仅作参考。
程序修改题
给定程序modi.c中,函数fun的功能是:从字符串s中删除所有小写字母c。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
本题着重考察考生对C语言中一些简单算法的掌握情况。
本题中的第一个错误:j值在条件语句中应自增,所以程序中语句"s[j]=s[i];"应改为"s[j++]=s[i];"
本题中的第二个错误:变量i是控制原串的下标的,变量j才是删除后串的下标,所以程序中语句"s[i]='\0';"应改为"s[j]='\0';"或相同作用的语句。
本评析仅作参考。
程序设计题
请编写一个函数 int fun(int *s, int t, int *k),用来求出数组的最大元素在数组中的下标, 用k返回。
例如,输入如下整数:
876 675 896 101 301 401 980 431 451 777
则输出结果为: 6, 980
注意:部分源程序存在文件prog.c中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
本题的考核点是求数组中的最大元素在数组中的下标。
解题思路:
1、定义变量max_integer,用以存放数组s[]中的最大元素;
2、建立循环,查找出数组s[]中的最大元素;
3、将查找到的最大元素的下标赋给k,并传回主函数。
int fun(int *s, int t, int *k)
{
int max_integer=0; /*定义变量max_integer,用以存放数组s[]中的最大元素*/
int i=0;
max_integer = s[0]; /*假定第一个数组元素为最大*/
for(i=0; i /*将查找到的最大元素的下标赋给k,并传回主函数*/ if(max_integer max_integer=s[i]; *k=i; } } return *k; }