没有合适的资源?快使用搜索试试~ 我知道了~
这是新教材的………… 南开100题虽然是100道,但大致分类可以分为以下13类:难度在在第三类,其实也不难就是排序有点乱,冒泡法和,比较法,其他都简单。沉着冷静都能写出来,况且人家考式不要求用指针写,算法臃肿没人说你错。
资源详情
资源评论
资源推荐
南开 100 题虽然是 100 道,但大致分类可以分为以下 13 类:难度在在第三类,其实也不难就是排序有
点乱,冒泡法和,比较法,其他都简单。沉着冷静都能写出来,况且人家考式不要求用指针写,算法臃
肿没人说你错。呵呵,细细写来:
一、替换字符。
形如这样:函数 ReadDat()实现从文件 ENG.IN 中读取一篇英文文章,存入到字符串数组 xx 中;请编制
函数 encryptChar(),按给定的替代关系对数组 xx 中的所有字符进行替代,仍存入数组 xx 的对应的位置
上,最后调用函数 WriteDat()把结果 xx 输出到文件 PS10.DAT 中。
替代关系:f(p)=p*11 mod 256 (p 是数组中某一个字符的 ASCII 值,f(p)是计算后新字符的 ASCII 值),
如果原字符的 ASCII 值是偶数或计算后 f(p)值小于等于 32,则该字符不变,否则将 f(p)所对应的字符进
行替代。
二、字符串左右排序和比较。
形如这样:函数 ReadDat()实现从文件 in.dat 中读取 20 行数据存放到字符串数组 xx 中(第行字符串长度
均小于 80)。请编制函数 jsSort(),其函数的功能是:以行为单位对字符串按给定的条件进行排序,排序
后的结果仍按行重新存入字符串数组 xx 中,最后调用函数 WriteDat()把结果 xx 输出到文件 out.dat 中。
条件:从字符串中间一分为二,左边部分按字符的 ASCII 值升序排序,排序后左边部分与右边部分进行
交换。如果原字符串长度为奇数,则最中间的字符不参加处理,字符仍放在原位置上。
三、正整数排序求平均值(包括将数拆散、求最大最小值)。
形如这样:在文件中有 200 个正整数,且每个数均在 1000 至 9999 之间。函数 ReadDat()读取这 200 个
数存放到数组 aa 中。请编制函数 jsSort(),其函数的功能是:要求按每个数的后三位的大小进行升序排
列,然后取出满足此条件的前 10 个数依次存入数组 b 中,如果后三位的数值相等,则按原先的数值进行
降序排列。最后调用函数 WriteDat()把结果 bb 输出到文件 out.dat 中。
四、产品五个因素的比较排列,是结构体操作问题。
形如这样:已知在文件 IN.DAT 中存有 100 个产品销售记录,每个产品销售记录由产品代码 dm(字符型 4
位),产品名称 mc(字符型 10 位),单价 dj(整型),数量 sl(整型),金额 je(长整型)四部分组成。其中:金
额=单价*数量计算得出。函数 ReadDat()是读取这 100 个销售记录并存入结构数组 sell 中。请编制函数
SortDat(),其功能要求:按产品代码从大到小进行排列,若产品代码相同,则按金额从大到小进行排列,
最终排列结果仍存入结构数组 sell 中,最后调用函数 WriteDat()把结果输出到文件 OUT10.DAT 中。
五、素数。
形如这样:请编写一个函数 jsValue(int m,int k,int xx[]),该函数的功能是:将大于整数 m 且紧靠 m 的 k
个素数存入数组 xx 传回。
最后调用函数 writeDat()读取 10 组数据,分别得出结果且把结果输出到文件 out.dat 中。
六、数字排序。
形如这样:在文件 in.dat 中有 200 组数据,每组有 3 个数,每个数均是三位数。函数 ReadDat()读取这
200 组数据存放到结构数组 aa 中,请编制函数 jsSort(),其函数的功能是:要求在 200 组数据中找出条
件为每组中的第一个数大于第二个数加第三个数的之和,其中满足条件的个数作为函数 jsSort() 的返回
值,同时把满足条件的数据存入结构数组 bb 中,再对 bb 中的数据按照每组数据的第一个数加第三个之
和的大小进行升序排列(第一个数加第三个数的和均不相等),排序后的结果仍重新存入结构数组 bb 中,
最后调用函数 WriteDat()把结果 bb 输出到文件 out.dat 中。
部分源程序已给出。
七、其他数学计算。
形如这样:某级数的前两项 A1=1,A2=1,以后各项具有如下关系:
An=An-2+2An-1
下列程序的功能是:要求依次对于整数 M=100,1000 和 10000 求出对应的 n 值,使其满足:Sn<M 且
Sn+1>=M,这里
Sn=A1+A2+...+An,
并依次把 n 值存入数组单元 b[0],b[1]和 b[2]中,请编制 jsValue()函数来实现此功能, 最后调用函数
writeDat()把数组 b[]中的值输出到 out.dat 文件中。
八、数字或字符移位后的计算。
形如这样:函数 ReadDat()实现从文件 IN.DAT 中读取一篇英文文章存入到字符串数组 xx 中,请编制函
数 StrCharJR(),其函数的功能是:以行为单位把字符串中所有字符的 ASCII 值右移 4 位,然后把右移
后的字符 ASCII 值再加上原字符的 ASCII 值,得到新的字符仍存入原字符串对应的位置上。最后把已处
理的字符串仍按行重新存入字符串数组 xx 中,最后调用函数 writeDat()把结果 xx 输出到文件
OUT8.DAT 中。
九、学生成绩,结构体问题。
形如这样:下列程序的功能是:已知学生的记录由学号和学习成绩构成,N 名学生的数据已存入 a 数组
中。找出成绩最低的学生记录(假定最低成绩的记录是唯一的),通过形参返回。请编写函数 mm(STU
a[],STU *s)实现程序要求,最后调用函数 reawriteDAT()把结果输出到文件 out.dat 中。
例如: KS01 87
KS09 67
KS11 97
则调用该函数后,输出 The lowest:KS19,67
十、字符串(单词)的倒置和删除。
形如这样:函数 ReadDat()实现从文件 IN.DAT 中读取一篇英文文章存入到字符串数组 xx 中,请编制函
数 StrOL(),其函数的功能是:以行为单位对行中以空格或标点符号为分隔的所有单词进行倒排。最后
把已处理的字符串(应不含标点符号)仍按行重新存入字符串数组 xx 中,最后调用函数 writeDat()把结果
xx 输出到文件 OUT6.DAT 中。
例如:原文: You He Me
I am a student.
结果:Me He You
student a am I
原始数据文件存放的格式是:每行的宽度均小于 80 个字符,含标点符号和空格。
十一、选票问题。
形如这样:现有一个 10 个人 100 行的选票数据文件 IN.DAT,其数据存放的格式是每条记录的长度均为
10 位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依此类推 :内容均为字符 0
和 1,1 表示此人被选中,0 表示此人未被选中,若一张选票人数小于等于 5 个人时被认为无效的选票。
给定函数 ReadDat()的功能是把选票数据读入到字符串数组 xx 中。请编制函数 CountRs()来统计每个人
的选票数并把得票数依次存入 yy[0]到 yy[9]中。把结果 yy 输出到文件 OUT.DAT 中。
部分源程序已给出。
十二、出圈问题。
形如这样:设有 n 个人围坐一圈并按顺时针方向从 1 到 n 编号,从第 s 个人开始进行 1 到 m 的报数,报
数到第个 m 人,此人出圈,再从他的下一个人重新开始 1 到 m 的报数,如此进行下去直到所有的人都出
圈为止。现要求按出圈次序,每 10 人一组,给出这 n 个人的顺序表。请考生编制函数 Josegh()实现此
功能并调用函数 WriteDat()把结果 p 输出到文件 OUT.DAT 中。
设 n=100,c=1,m=10.
(1)将 1 到 n 个人的序号存入一维数组 p 中;
(2)若第 i 个人报数后出圈,则将 p[i]置于数组的倒数第 i 个位置上,而原来第 i+1 个至倒数第 i 个元素依次
向前移动一个位置;
(3)重复第(2)步直至圈中只剩下 p[1]为止。
部分源程序已给出。
十三、进制转换。
形如这样:请编制函数 readdat()实现从文件 in.dat 中读取 100 个十六进制数到字符串数组 xx 中
;再编制函数 h16to2(),将 xx 中的十六进制数转换成二进制数并把已转换的二进制数仍
存放在字符串数组 xx,最后调用函数 writedat()把结果输出到 out.dat 文件中。
原始数据文件存放的格式是:每行存放 10 个数,并用逗号隔开。(每个数均大于 0 且小于
等于 2000)
部分源程序已给出。
有的种类就一两道,爽的很,背上去就可以了,看来不难过!
已知在文件中存有个产品销售记录,每个产品销售记录由产品代码字符型
位、产品名称字符型位、单价整型、数量整型、金额长整型几部分组成。
其中:金额=单价数量。函数的功能是读取这个销售记录并存入结构数组
中。请编制函数,其功能要求:按产品名称从小到大进行排列,若产品名称相
同,则按金额从小到大进行排列,最终排列结果仍存入结构数组 中,最后调用函数
把结果输出到文件中。
!,;
"#;
$=;%&&;++
$=+;%;++
$#'(,'()
#='(;
'(='(;
'(=#;
*
$#'(,'(==
$'()'(
#='(;
'(='(;
'(=#;
*
}
+已知数据文件 中存有 , 个 位数,并已调用读函数 把这些数存入数组
中。请编制函数 -.,其功能是:求出千位数上的数加个位数上的数等于百位数上的
数加十位数上的数的个数 !,再把所有满足此条件的 位数依次存入数组 / 中,然后对数组
/ 的 位数按从小到大的顺序进行排序,最后调用写函数 0把数组 / 中的数输出到
文件中。
-.
!,;
!,+,,,;
!#;
$=;%,;++
='(1;
,='(21;
+='(21;
='(2;
$+==,++
/'!(='(;
!++;
*
*
$=;%!-;++
$=+;%!;++
$/'()/'(
#=/'(;
/'(=/'(;
/'(=#;
*
}
,已知数据文件 中存有 + 个 位数,并已调用读函数 把这些数存入数
组 中,请编制一个函数 -,其功能是:把千位数字和十位数字重新组成一个新的 + 位
数 /新十位数的 + 位数字是原 位数的千位数字,新 + 位数的个位数字是原 位数的十位数
字,以及把个位数字和百位数字组成另一个新的十位数 新十位数的十位数字是原 位数
的个位数字,新 + 位数的个位数字是原 位数的百位数字,如果新组成两个 + 位数 /-)
= 且 /-%= 且两个数均是奇数,同时两个新十位数字均不为零,则将满足此条件的
位数按从大到小的顺序存入数组 / 中,并要计算满足上述条件的 位数的个数 !,最后调
用写函数 0把结果 ! 及数组 / 中符合条件的 位数输出到 文件中。
-
!,;
!,+,,,;
!#;
!/,;
$=;%+;++
='(1;
,='(21;
+='(21;
='(2;
$/3)455/3%455/2+44552+4455645564
/'!(='(;
!++;
*
*
$=;%!-;++
$=+;%!;++
$/'(%/'(
#=/'(;
/'(=/'(;
/'(=#;
*
}
已知数据文件!中存有,个位数,并已调用读函数把这些数存入数组中,
请编制一函数-.,其功能是:求出千位数上的数减百位数上数减十位数上的数减个位
剩余62页未读,继续阅读
mishiao
- 粉丝: 0
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0