华东师范大学C语言程序设计期末考试.doc
华东师范大学C语言程序设计期末考试2008年2009第二学期试卷(A卷)评分标准(本试卷答卷时间为90分钟)特别注意1.考试结束后不要关机;2.cecnu_ksrootTEST文件夹十分重要,考生不得对其作任何操作。3.操作题结果必须保存在cecnu_ksroot下,否则没有分数。一、选择题(21020分)12345678910cdacbcadcc二、填空题(2510分)1.对n个人分班,每班k(k0)个人,最后不足k个人也编一班,问要编几个班number【1】。(请用条件运算符完成)答案nkn/k1n/k2.执行下列程序后,sum的值是【2】。答案【9】for(i1i10i)sum0;sumsumi;3.如果函数不要求带回值,可用【3】来定义函数返回值为空.答案【void】4.设有变量定义如下charsHello,*ps;inti;执行完fori0;*pi;i;后,*pi的值是【4】。答案005设有intx11,12,13,14,q,*px1;则执行语句q*p后;变量q的值为【6】。答案116.设有变量定义为structnodeintx;inty;array5,8,1,3;structnode*parray;则array1.x*p1-y的值为【6】。答案37.若要用函数打开一个新的二进制文件,该文件要只能写,则文件打开方式字符串是【7】.答案wb三、程序填空题本大题3道小题,每空2分,共20分)。【8】voidmcopychar*s,intm,char*t;【9】str1,m,str2【10】*t0【11】*t*s【12】structstudent【13】i【14】studj.scorestudindex.score,studindex.scorestudj.score【15】feoffp1【16】fgetcfp1【17】fp2四、操作题(本大题1道小题,共10分)打开root目录中的程序E_4_1.cpp,输入一个以回车结束的字符串,将它的内容逆序输出。改正程序中的错误,保存E_4_1.cpp文件在root目录中。includestdio.hincludestring.hintmaininti,k,temp;charstr80;getsstr;kstrlenstr-1;fori0;ik;itempstri;stristrk;strktemp;k;putsstr;return0;评分标准共5处错误,每处2分。五、编程题(2题,181836分)1、编程题1E_5_1.cpp打开E_5_1.cpp文件,按下面要求编写程序,并调试通过,将结果(E_5_1.cpp文件,source.txt文件,results.txt文件)保存到目录CECNU_KSROOT中。编写程序处理图书销售信息,E_5_1.cpp文件中已建立图书结构体类型为BOOKSALE,和三个功能函数如下(1)readData从文件source.txt读取图书销售信息到结构体数组books,返回图书的本数。在source.txt中存放的图书销售信息包括编号,书名,单价,销售量。(2)writeData将结构体数组books的完整内容写入到文件result.txt。(3)display显示一本图书的信息。请继续按以下要求完整程序功能(1)编写函数voidcalBOOKSALE*pb,intn,计算每本书的销售额。(5分)(2)编写函数intfind_maxBOOKSALEbooks,intn,查找销售额最高的书本,返回该书在结构体数组book中的下标。(5分)(3)在main函数中调用readData函数从source.txt中读入图书销售信息到books数组,readData函数的返回值就是读入图书的本数。如果图书的本数不为0,调用cal函数统计每本书的销售额,调用writeData函数将修改好的数组写入文件result.txt中。最后则调用find_max函数,查找销售额最高的书本,调用display函数显示该本书的信息。评分标准(1)可以运行(3分)(2)正确计算每本书的销售额。(5分)(3)正确找到销售额最高的书本(5分)(4)文件和显示内容正确(5分)2、编程题2E_5_2.cpp按下面要求编写程序,并调试通过,将结果(E_5_2.cpp文件)保存到目录CECNU_KSROOT中。编写程序实现功能先从键盘输入一个字符串,再输入一个字符ch,然后将字符串中的字符ch删除后输出。要求(1)编写函数voiddelstrchar*s,charch,把字符串s中字符ch删除。(2)在main函数中输入一个字符串s,存放在字符数组s1中,输入一个字符ch,调用delstr函数将s串中的ch删除后输出。评分标准(1)可以运行(3分)(2)函数voiddelstrchar*s,charch(8分)(3)main函数调用delstr(3分)(4)输入输出内容正确(4分)华东师范大学C语言程序设计期末考试2008年2009第二学期试卷(B卷)(本试卷答卷时间为90分钟)特别注意1.考试结束后不要关机;2.cecnu_ksrootTEST文件夹十分重要,考生不得对其作任何操作。3.操作题结果必须保存在cecnu_ksroot下,否则没有分数。一、选择题(21530分)12345678910abcabcdbaa二、填空题本大题7道小题,每空2分,共14分)。1.执行下列程序后,i的值是【1】。答案【105】for(i0i100ii7);2.表达式float23/2int3.5int4.5的值为【2】。答案5.53.已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式cha9-6的值为【3】.答案dd4.设有变量定义如下charswelcome,*ps;inti;执行完fori0;*pi;i;后,变量i的值是_【4】_;答案85.设有intx4,3,2,1,q,*px1;则执行语句q*p后;变量q的值为【5】。答案26.设有变量定义如下structnumintx;inty;a10,50,15,60;structnum*pa;则表达式p-x*p1-y的值为【6】。答案6007.若要用函数打开一个新的文本文件,该文件要既能写,又能读,则文件打开方式字符串是【7】.答案w三、程序填空题本大题3道小题,每空2分,共20分)。【8】voidmidchar*s,intstart,intn,char*t;【9】str1,s,n,str2【10】s;,s,s;,s,ss1;,ss1,s1,s1;【11】*t00【12】listn-1【13】listj1listj【14】x【15】a【16】feoff2【17】fgetcfp2四、操作题(本大题1道小题,共10分)打开root目录中的程序E_4_1.cpp,输入一个以回车结束的字符串,将它的内容逆序输出。改正程序中的错误,保存E_4_1.cpp文件在root目录中。includestdio.hincludestring.hintmaininti,k,temp;charstr80;getsstr;kstrlenstr-1;fori0;ik;itempstri;stristrk;strktemp;k;putsstr;return0;评分标准共5处错误,每处2分。五、编程题(2题,181836分)1、编程题1E_5_1.cpp打开E_5_1.cpp文件,按下面要求编写程序,并调试通过,将结果(E_5_1.cpp文件,source.txt文件,results.txt文件)保存到目录CECNU_KSROOT中。编写程序处理图书销售信息,E_5_1.cpp文件中已建立图书结构体类型为BOOKSALE,和三个功能函数如下(1)readData从文件source.txt读取图书销售信息到结构体数组books,返回图书的本数。在source.txt中存放的图书销售信息包括编号,书名,单价,销售量。(2)writeData将结构体数组books的完整内容写入到文件result.txt。(3)display显示一本图书的信息。请继续按以下要求完整程序功能(1)编写函数voidcalBOOKSALE*pb,intn,计算每本书的销售额。(2)编写函数voidsort(BOOKSALEbooks,intn,按销售额从高到底排序。(3)在main函数中调用readData函数从source.txt中读入图书销售信息到books数组,readData函数的返回值就是读入图书的本数。如果图书的本数不为0,调用cal函数统计每本书的销售额,调用sort函数按销售额从高到底排序,最后调用writeData函数将修改好的数组写入文件result.txt中并调用display函数显示排序后的图书信息。评分标准(1)可以运行(3分)(2)正确计算每本书的销售额。(5分)(3)正确按销售额从高到底排序(5分)(4)文件和显示内容正确(5分)2、编程题2E_5_2.cpp按下面要求编写程序,并调试通过,将结果(E_5_2.cpp文件)保存到目录CECNU_KSROOT中。编写程序实现功能输入n个整数到数组a,再输入一个整数x,在数组a中查找x,若找到则输出相应的下标。否则显示“Notfound”。要求定义和调用函数searchintlist,intn,intx,在数组list中查找元素x,若找到则返回相应下标,否则返回-1。评分标准(1)可以运行(3分)(2)函数searchintlist,intn,intx(8分)(3)main函数调用search(3分)(4)输入输出内容正确(4分)