第01套 给定程序中,函数fun的功能
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第01套给定程序中功能是将形参n所指变量中各位上为偶数的数去除剩余的数按原来从高位到低位的顺序组成一个新的数并通过形参指针n传回所指变量。
例如输入一个数27638496新的数为739。
请在程序的下划线处填入正确的内容并把下划线删除使程序得出正确的结果。
注意源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行也不得更改程序的结构给定源程序include ltstdio.hgt void fununsigned long n unsigned long x0 i int t i1 whilen tn __1__ ift2 __2__ xxti ii10 n n /10 n__3__ main unsigned long n-1 whilengt99999999nlt0 printfquotPlease input0ltnlt100000000: quot scanfquotldquotampn funampn printfquotnThe result is: ldnquotn 解题思路第一处t是通过取模的方式来得到n的个位数字所以应填10。
第二处判断是否是奇数所以应填0。
第三处最后通形参n来返回新数x 所以应填x。
给定程序MODI1.C中函数fun 的功能是计算n。
例如给n输入5则输出120.000000。
请改正程序中的错误使程序能输出正确的结果。
注意不要改动main函数不得增行或删行也不得更改程序的结构给定源程序include ltstdio.hgt double fun int n double result 1.0 if n 0 return 1.0 while n gt1 ampamp n lt 170 result n-- return result main int n printfquotInput N:quot scanfquotdquot ampn printfquotnnd lfnnquot n funn 解题思路第一处条件语句书写格式错误应
改为if n0。
第二处语句后缺少分号。
请编写一个函数fun 它的功能是将一个数字字符串转换为一个整数不得调用C语言提供的将字符串转换为整数的函数。
例如若输入字符串quot-1234quot则函数把它转换为整数值-1234。
函数fun中给出的语句仅供参考。
注意: 部分源程序存在文件
PROG1.C文件中。
请勿改动主函数main和其它函数中的任何内容仅在花括号中填入你编写的若干语句。
给定源程序include ltstdio.hgt include ltstring.hgt long fun char p int i len t / len为串长t为正负标识/ long x0 lenstrlenp ifp0- t-1 len-- p else t1 / 以下完成数字字符串转换为一个数
字/ return xt main / 主函数/ char s6 long n printfquotEnter a string:nquot getss n funs printfquotldnquotn NONO NONO / 本函数用于打开文件输入数据调用函数输出数据关闭文件。
/ FILE fp wf int i char s20 long n fp
fopenquotc:testin.datquotquotrquot wf
fopenquotc:testout.datquotquotwquot fori 0 i lt 10 i fscanffp quotsquot s n funs fprintfwf quotldnquot n fclosefp fclosewf 解题思路本题是将一个数字字符串转换为一个整数。
参考答案include ltstdio.hgt include ltstring.hgt long fun char p int i len t / len为串长t为正负标识/ long x0 lenstrlenp ifp0- t-1 len-- p else t1 / 以下完成数字字符串转换为一个数字/ whilep x x10-48p return xt main / 主函数/ char s6 long n
printfquotEnter a string:nquot getss n funs printfquotldnquotn NONO NONO / 本函数用于打开文件输入数据调用函数输
出数据关闭文件。
/ FILE fp wf int i char s20 long n fp fopenquotc:testin.datquotquotrquot wf
fopenquotc:testout.datquotquotwquot fori 0 i lt 10 i fscanffp quotsquot s n funs fprintfwf quotldnquot n fclosefp fclosewf 注意由于NONO 这个函数是改卷人用的与考生没有什么关系故下面从第2套试题开始均省略NONO
※※※※※※※※※※※※※※※※※※※※※※※※※
第02套给定程序中功能是将形参给定的字符串、整数、浮点数写到文本文件中再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。
请在程序的下划线处填入正确的内容并把下划线删除使程序得出正确的结果。
注意源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行也不得更改程序的结构给定源程序include ltstdio.hgt void funchar s int a double f __1__ fp char ch fp fopenquotfile1.txtquot quotwquot fprintffp quots d fnquot s a f fclosefp fp fopenquotfile1.txtquot quotrquot printfquotnThe result :nnquot ch fgetcfp while feof__2__ putchar__3__ ch fgetcfp putcharn fclosefp main char a10quotHelloquot int
b12345 double c 98.76 funabc 解题思路本题是考察先把给
定的数据写入到文本文件中再从该文件读出并显示在屏幕
上。
第一处定义文本文件类型变量所以应填FILE 。
第二处判断文件是否结束所以应填fp。
第三处显示读出的字符所以应填ch。
给定程序MODI1.C中功能是: 依次取出字符串中所有数字字符形成新的字符串并取代原字符串。
请改正函数fun中指定部位的错误使它能得出正确的结果。
注意: 不要改动main函数不得增行或删行也不得更改程序的结构给定源程序include ltstdio.hgt void funchar s int ij fori0j0 si0 i ifsigt0 ampamp silt9 sjsi sjquot0quot main char item80 printfquotnEnter a string : quotgetsitem printfquotnnThe string is : quotsquotnquotitem funitem printfquotnnThe string of changing is : quotsquotnquotitem 解题思路第一处: 要求是取出原字符串中所有数字字符组成一个新的字符串程序中是使用变量j 来控制新字符串的位置所以应改为sjsi。
第二处: 置新字符串的结束符所以应改为sj0. 请编写函数fun 函数的功能是: 将M行N列的二维数组中的字符数据按列的顺序依次放到一个字符串中。
例如二维数组中的数据为: W W W W S S S S H H H H 则字符串中的内容应是: WSHWSHWSH。
注意部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容仅在花括号中填入你编写的若干语句。
给定源程序include ltstdio.hgt define M 3 define N 4 void funchar sN char b int ijn0 fori0 i lt Ni / 请填写相应语句完成
其功能/ bn0 main char a100wMNWWWWSSSSHHHH int ij printfquotThe matrix:nquot fori0 iltM i forj0jltN
jprintfquot3cquotwij printfquotnquot funwa printfquotThe A string:nquotputsa printfquotnnquot NONO 解题思路本题是
把二维数组中的字符数据按列存放到一个字符串中。
1. 计算存放到一维数组中的位置。
2. 取出二维数组中的字符存放到一维数组已计算出的位置中。
参考答案void funchar sN char b int ijn0 fori0 i lt Ni / 请填写相应语句完成其功能/ forj 0 j lt M j bn sji n i M j 1 bn0
※※※※※※※※※※※※※※※※※※※※※※※※※
第03套程序通过定义学生结构体变量存储了学生的学号、姓名和3门课的成绩。
所有学生数据均以二进制方式输出到文件中。
功能是重写形参filename所指文件中最后一个学生的数据即用新的学生数据覆盖该学生原来
的数据其它学生的数据不变。
请在程序的下划线处填入正确的内容并把下划线删除使程序得出正确的结果。
注意源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行也不得更改程序的结构给定源程序include ltstdio.hgt define N 5 typedef struct student long sno char name10 float score3 STU void funchar filename STU n FILE fp fp
fopen__1__ quotrbquot fseek__2__ -1LsizeofSTU SEEK_END fwriteampn sizeofSTU 1 __3__ fclosefp main STU tN
10001quotMaChaoquot 91 92 77 10002quotCaoKaiquot 75 60 88 10003quotLiSiquot 85 70 78 10004quotFangFangquot 90 82 87 10005quotZhangSanquot 95 80 88 STU
n10006quotZhaoSiquot 55 70 68 ssN int ij FILE fp fp fopenquotstudent.datquot quotwbquot fwritet sizeofSTU N fp fclosefp fp fopenquotstudent.datquot quotrbquot freadss sizeofSTU N fp fclosefp printfquotnThe original data :nnquot for j0 jltN j printfquotnNo: ld Name: -8s Scores: quotssj.sno for i0 ilt3 i printfquot6.2f quot ssj.scorei printfquotnquot funquotstudent.datquot n printfquotnThe data after modifing :nnquot fp fopenquotstudent.datquot quotrbquot freadss sizeofSTU N fp fclosefp for j0 jltN j printfquotnNo: ld Name: -8s Scores: quotssj.sno for i0 ilt3 i
printfquot6.2f quot ssj.scorei printfquotnquot 解题思路本题
是考察如何从文件中读出数据再把结构中的数据写入文件中。
第一处从指定的文件中读出数据所以应填filename。
第二处读取文件fp的最后一条记录所以应填fp。
第三处再把读出的记录写入文件fp指定的位置上所以应填fp。
给定程序MODI1.C中的函数Creatlink的功能是创建带头结点的单向链表并为各结点数据域赋0到m-1的值。
请改正函数Creatlink中指定部位的错误使它能得出正确的结果。
注意: 不要改动main函数不得增行或删行也不得更改程序的结
构给定源程序include ltstdio.hgt include ltstdlib.hgt typedef struct aa int data struct aa next NODE NODE Creatlinkint n int m NODE hNULL p s int i pNODE mallocsizeofNODE hp
p-gtnextNULL fori1 iltn i sNODE mallocsizeofNODE
s-gtdatarandm s-gtnextp-gtnext p-gtnexts pp-gtnext return p outlinkNODE h NODE p ph-gtnext printfquotnnTHE LIST :nn HEAD quot whilep printfquot-gtd quotp-gtdata pp-gtnext printfquotnquot main NODE head headCreatlink822 outlinkhead 解题思路第一处: 指向刚分配的结构指针所以应改为pNODE mallocsizeofNODE 第二处: 在动态分配内存的下一行语句是使用临时结构指针变量h保存p指针的初始位置最后返回不能使用p是因为p的位置已经发生了变化所以应改为返回h。
请编写函数fun 函数的功能是:统计一行字符串中单词的个数作为函数值返回。
一行字符串在主函数中输入规定所有单词由小写字母组成单词之间由若干个空格隔开一行的开始没有空格。
注意部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容仅在花括号中填入你编写的若干语句。
给定源程序include ltstdio.hgt include ltstring.hgt define N 80 int fun char s main char lineN int num0 printfquotEnter a
string :nquot getsline numfun line printfquotThe number of word is : dnnquotnum NONO 解题思路本题是统计字符串中
的单词数。
1. 利用while循环语句和指针变量当字符为空格时则单词数k加1。
2. 循环结束返回k。
参考答案int fun char s int k 1 whiles ifs k s return k
※※※※※※※※※※※※※※※※※※※※※※※※※
第04套程序通过定义学生结构体变量存储了学生的学号、姓名和3门课的成绩。
所有学生数据均以二进制方式输出到文件中。
功能是从形参filename所指的文件中读入学生数据并按照学号从小到大排序后再用二进制方
式把排序后的学生数据输出到filename所指的文件中覆盖原来的文件内容。
请在程序的下划线处填入正确的内容并把下划线删除使程序得出正确的结果。
注意源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行也不得更改程序的结构给定源程序include ltstdio.hgt define N 5 typedef struct student long sno char name10 float score3 STU void funchar filename FILE fp int i j STU sN t fp fopenfilename __1__ freads sizeofSTU N fp fclosefp for i0 iltN-1 i for ji1 jltN j if si.sno __2__ sj.sno t si si sj sj t fp fopenfilename quotwbquot __3__s sizeofSTU N fp / 二进制输出/ fclosefp main STU tN 10005quotZhangSanquot 95 80 88 10003quotLiSiquot 85 70 78 10002quotCaoKaiquot 75 60 88 10004quotFangFangquot 90 82 87 10001quotMaChaoquot 91 92 77 ssN int ij FILE fp fp fopenquotstudent.datquot quotwbquot fwritet sizeofSTU 5 fp
fclosefp printfquotnnThe original data :nnquot for j0 jltN j printfquotnNo: ld Name: -8s Scores: quottj.sno for i0
ilt3 i printfquot6.2f quot tj.scorei printfquotnquot funquotstudent.datquot printfquotnnThe data after
sorting :nnquot fp fopenquotstudent.datquot quotrbquot freadss sizeofSTU 5 fp fclosefp for j0 jltN j printfquotnNo: ld Name:
-8s Scores: quotssj.sno for i0 ilt3 i printfquot6.2f quot ssj.scorei printfquotnquot 解题思路本题是考察把结构中的数据写入文件。
第一处建立文件的类型考虑到是把结构中的数据结构中的数据包含不打印的字符从文件中读出所以应填quotrbquot。
第二处判断当前学号是否大于刚读出的学号进行相比如果大于则进行交换所以应填gt。
第三处把已排序的结构数据重新写入文件所以应填fwrite。
给定程序MODI1.C中功能是: 在字符串的最前端加入n个号形成新串并且覆盖原串。
注意: 字符串的长度最长允许为79。
请改正函数fun中指定部位的错误使它能得出正确的结果。
注意: 不要改动main函数不得增行或删行也不得更改程序的结构给定源程序include ltstdio.hgt include ltstring.hgt void fun char s int n char a80 p int i sp fori0 iltn i ai do aip i whilep ai0 strcpysa main int n char s80 printfquotnEnter a string : quot getss printfquotnThe string quotsquotnquots printfquotnEnter n number of : quot scanfquotdquotampn funsn
printfquotnThe string after insert : quotsquot nquot s 解题思路第一处: 指针p应指向s所以应改为ps。
第二处: 死循环当do while循环执行一次临时变量p应该指向字符串的下一位置所以应改为whilep。
请编写函数fun函数的功能是:统计各年龄段的人数。
N个年龄通过调用随机函数获得并放在主函数的age数组中要求函数把0至9岁年龄段的人数放在d0 中把10至19岁年龄段的人数放在d1中把20至29岁年龄段的人数放在d2中其余依此类推把100岁含100以上年龄的人数都放在d10中。
结果在主函数中输出。
注意部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容仅在花括号中填入你编写的若干语句。
给定源程序include ltstdio.hgt define N 50 define M 11 void fun int a int b double rnd static t29c217m1024r0 rrtcm returndoubler/m main int ageN i dM fori0
iltNiageiint115rnd printfquotThe original data :nquot fori0iltNi printfi1100quot4dnquot:quot4dquotagei printfquotnnquot fun age d fori0ilt10iprintfquot4d---4d : 4dnquoti10i109di printfquot Over 100 : 4dnquotd10 NONOd 解题思路本题是统计各年龄段的人数。
1. 初始化各年龄段人数为0。
2. 使用for循环以及求出各年龄的十位数字作为存放人数的地址如果大于
值大于10则存入d10中大于110岁的人。
参考答案void fun int a int b int i j fori 0 i lt M i bi 0 fori 0 i lt N i j ai / 10 ifj gt
10 bM - 1 else bj double rnd static t29c217m1024r0 rrtcm returndoubler/m
※※※※※※※※※※※※※※※※※※※※※※※※※
第05套给定程序中功能是将参数给定的字符串、整数、浮点数写到文本文件中再用字符串方式从此文本文件中逐个读入并调用库函数atoi和atof将字符串转换成相应的整数、浮点数然后将其显示在屏幕上。
请在程序的下划线处填入正确的内容并把下划线删除使程序得出正确的结果。
注意源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行也不得更改程序的结构给定源程序include ltstdio.hgt include ltstdlib.hgt void funchar s int a double f
__1__ fp char str100 str1100 str2100 int a1 double f1 fp fopenquotfile1.txtquot quotwquot fprintffp quots d fnquot s a f __2__ fp fopenquotfile1.txtquot quotrquot
fscanf__3__quotsssquot str str1 str2 fclosefp a1 atoistr1 f1 atofstr2 printfquotnThe result :nns d fnquot str a1 f1 main char
a10quotHelloquot int b12345 double c 98.76 funabc 解题思路本题是考察先把给定的数据写入到文本文件中再从该文件
读出并转换成相应的整数、浮点数显示在屏幕上。
第一处定义文本文件类型变量所以应填FILE 。
第二处关闭刚写入的文件所以应填fclosefp。
第三处从文件中读出数据所以应填fp。
给定程序MODI1.C中功能是: 对N名学
生的学习成绩按从高到低的顺序找出前mm≤10名学生来并将这些学生数据存放在一个动态分配的连续存储区中此存储区的首地址作为函数值返回。
请改正函数fun中指定部位的错误使它能得出正确的结果。
注意: 不要改动main函数不得增行或删行也不得更改程序的结构给定源程序include ltstdio.hgt include ltalloc.hgt include ltstring.hgt define N 10 typedef struct ss char num10 int s STU STU funSTU a int m STU bN t int ijk tSTU callocsizeofSTUm fori0 iltN i biai fork0 .。