关键词不能为空

当前您在: 主页 > 英语 >

北航大一上c语言第四五六七八次作业

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-01-26 10:21
tags:

-

2021年1月26日发(作者:cancel是什么意思中文)

数问题

1.

【问题描述】输入一个高精度的大正整数
S

S
最长可达
240
位),去掉其中任意
N位数字后剩下
的数字按原次序组成一个新的正整数
S’
。编程对给定的
N

S
,寻找一种方案使得剩下的数字组成
的新数
S’
最小。

【输入形式】输入有两行:

1.
第一行是大整数
S。其中
S
最长可达
240
位。

2.
第二行 是整数
N

S

N
均以非
0
数字开头。< br>
【输出形式】输出有一行,是在
S
中删除
N
位后所得的最小 数字
S’


【样例输入
1


178543
4
【样例输出
1

13
【样例输入
2


1002
1
【样例输出
2

002
【样例说明】
样例
1中输入整数
S=178543

N=4

要求在
178 543
中删除
4
位,
使剩下的数字最小。
正确答案为
S’ = 13
。样例
2
中输入整数
S

1002
N

1
,删完一位后
S’ = 002
,而不是
2,即
2

前的
0
也必须输出。

【运行时限】 程序一次运行的最长时间限制在
15
秒内,超出则认为程序错误。

【算法提 示】将整数看作字符串形式读入;删数时,从前往后寻找第一个比后一个数字大的数字,
然后删除之,按 照这种方法删除
N
个数字即得最小数字。


【评分标准】该题要求 输出一个大整数的各位数字。结果完全正确得
20
分,每个测试点
4
分。上传
C
语言文件名为
delete.c



展字符

2.
【问题描述】

编写一函数expand(s1,s2)
,用以将字符串
s1
中的缩记符号在字符串
s2
中扩展为等价的完整字符,
例如将
a-d
扩展为
abcd

该函数可以处理大小写字母和数字,
并可以处理
a-b-c

a -z0-9

-a-z
等类
似的情况。在
main
函数中测 试该函数:从键盘输入包含缩记符号的字符串,然后调用该函数进行扩
展,输出扩展结果。

(教材

P63

Exercise 3-3


注意:

1.
待扩展字符串中有可能包含空格,例如:
a-d x-z
应扩展成:
abcd xyz
。所以读入待扩展字
符串时,应能够读入包含空格的字符串。

2.
只要缩记符号
-
之后的字符比之前的字符的
ASCII
码值大,就要 将它们之间的所有字符扩展
出来,例如:
Z-a
之间的字符也要扩展出来;

3.
特殊情况:
a-b-c
将被扩展为:
abc

a-a
将被扩展为:
a-a



【输入形式】

从键盘输入包含扩展符的字符串

【输出形式】

输出扩展后的字符串

【输入样例】

a-c-u-B
【输出样例】

abcdefghijklmnopqrstu-B
【样例说明】

扩展输 入
a-c-u
为:
abcdefghijklmnopqrstu
,而
B

u
值小,所以无法扩展,直接输出。

【评分标准】

结果完全正确得
20
分,每个测试点
4
分,提交程序文件
e xpand.c



母频率统计

3.
【问题描述】

编写程序从标准输入中读入一段英文,统计其中小写字母出现次数,并 以柱状图的形式显示其出现
次数。

【输入形式】

在标准输入上输 入一段英文文章
(可能有一行,
也可能有多行)

在新的一行的开头输入ctrl+z
键表
示结束。

【输出形式】

在屏幕上 依次输出表示每个小写字母出现次数的柱状图(以
“*”
字符表示柱状图,空白处用空格字符< br>表示,某个小写字母出现多少次,就显示多少
“*”
字符;柱状图的高度以出现最多的字 母次数为准),
在最后一行依次输出
26
个小写字母。

【样例输入】

The computing world has undergone a
revolution since the publication of
The C Programming Language in 1978.

【样例输出】


【样例说明】

在输入的英文短文中,小 写字母
a
出现了
6
次,所以其上输出了
6
个字符
< br>。出现次数最多的是字

n
,所以柱状图的高度为
9
个字符。 字母
j
没有出现,所以其上都为空格字符。

【评分标准】

该题要求输出柱状图表示的字母出现次数,共有
5
个测试点。上传
C
语言文 件名为
bar.c



阵运算

4.
【问题描述】

对于多个
N
阶矩阵,依次进行加、减运算。

【输入形式】

从标准输入读取输入。第一行只有一个整数
N
1≤N≤10
),代表矩阵的阶数。

接下来是一个矩阵,是
N
行,每行有
N
个整数(可能是正、负整数),是矩阵的所有元素。

然后一行 只含一个字符
“+”


-

,代表加、减操作。

然后用同样的方式输入另一个矩阵。

后续仍然是运算符和矩阵。直至运算符为
“#”
时停止计算,将结果输出。


【输出形式】

向标准输出打印矩阵的操作结果。输出
N
行,每行对应矩阵在该行上的所有元素,每一行末均输出
一个回车符。每个元素占
5
个字符宽度(包括负号),向右对齐,不足部分补以空格。

【输入样例】

3
1 -2 7
2 8 -5
3 6 9
+
3 5 7
-1 2 6
3 7 10
-
1 -2 7
2 8 -5
3 6 9
#
【输出样例】

(下图中

-

代表空格)

####3####5####7
###-1####2####6
####3####7###10
【评分标准】

本题不准使用数学库函数 。运行时限
1
秒,完全正确
20
分,每个测试点
4
分。提交 程序文件名为
matrix.c



件拷贝
2

5.
【问题描述】

写一程序将一个文件

拷贝至另一个文件
,
其中在所拷贝的文件中
,
多个连续空白符
(包括空格符、制表符)只拷贝一个空格符,其它字符不变。

【输入形式】

源文件名和目标文件名分别为



, 程序将从当前目录下读取

文件。

【输出形式】



文件内容拷贝至当前目录下的

文件中。
在所拷贝的文件中
, 多个连续空白符
(包
括空格符、制表符)只拷贝一个空格符,若非空白符之间有一个制表符 ,则该制表符也要替换为空
格符,其它字符不变。

【输入样例】

假如文件

中内容如下:

Alcatel
provides end-to-end solutions.
【输出样例】

输出文件

中内容为:

Alcatel provides end-to-end solutions.
【样例说明】

将文件

拷贝到

,同时做适当的转换。

【评分标准】

其中在所拷贝的文件中
,
多个连续空白符
(包括空格符、
制表符)
只拷贝一个空格符,
其它字符不变,
完全符合要求得
20
分,每个测试点
4
分。提交程序名为
copy.c
。< br>

号匹配

6.
【问题描述】

假设一 个输入字符串中包含圆括号、方括号和花括号三种类型的括号,以及其它一些任意字符。编
写程序,判别 串中的括号是否正确匹配,即:

1.
各种左、右括号的个数要一致;

2.
不能先出现右括号;

3.
其它规则暂不考虑,例如:
( ad [ ce ) ef ]
认为是正确的。


【输入形式】

从当前目录下

文件中读入一行字符串。字符串最大长度
80
,不含空格。


【输出形式】

输出到当前目录下

文件中。
输出只有一个单 词,
如果括号匹配则输出
“True”
到文件中,

则输出
“False”
。在输出末尾要有一个回车符。


【输入样例】

设输入文件内容如下:


rhe+[35(fjej)w-wr3f[efe{feofds}]

【输出样例】

输出文件内容为:


False

【样例说明】

输入字符串为
rhe+[35(fjej)w -wr3f[efe{feofds}]
,在式中
“[”

“]”
的 个数不一致,不符合嵌套规则,故输
出为
“False”



【评分标准】

结果正确得
20
分,每个测试点
4
分,提交程序名为
c0802.c



多边形面积

1.
【问题描述】给出平面上一组顶点的坐标,计算出它们所围成的凸多边形的面积。

【 输入形式】从标准输入读取顶点坐标。格式为:第一行是点的个数
N

3≤N≤15< br>),后面紧接着
N
行,每行两个数字(由空格隔开),分别表示该点的
X

Y
坐标(
0≤X

Y≤32767
)。所有点的坐标< br>互不相同,且按顺时针次序给出。

输入数据确保该多边形是一个凸多边形。

【输出形式】向标准输出打印一个浮点数,是该多边形的面积。该浮点数保留两位小数。

【输入样例】

4
3

3
3

0
1

0
1

2


【输出样例】

5.00
【样例说明】输入数据表示了如图所示的四边形。其面积为
5.00

提示:求三角形面积可用海伦公式,求平方根可用

头文件中定义的
sqrt
函数。

【评分标准】结果完全正确得
20
分,每个测试 点
4
分。提交程序名为:
points.c



数的
N
进制字符串表示

2.
【问题描述】< br>编写函数
itob(n,s,b),
用于把整数
n
转换成以
b
为基的字符串并存储到
s

.
编写程序
,
使 用函数
itob(n,s,b)
将输入的整数
n,
转换成字符串
s,

s
输出
.
转换后的字符串从最高的非零位开始
输出。如果
n
为负数,则输出的字符串的第一个字符为

-


b
为大于
1
小于
37
的任意自然数值。当
b=2
时,输出字符只可能是
’0’

’1’
;当
b=16
时,输 出字符串中可能含有字符为
’0’
-
’9’

’a’
-’f’(
字母以
小写输出
)

b
还可以是其它数值。比 如输入
n=33,b=17
,则输出
33

17
进制值为< br>


【输入形式】控制台输入整数
n

b
, 其中
n
可以为负数。
n

b
以空格分隔
.
【输出形式】控制台输出转化后的字符串
s.
【样例输入】
5 2
【样例输出】
101
【样例说明】
5
的二进制就是
101
【评分标准】结果完全正确得
20
分,每个测试点
4
分。提交程序名 为:
itob.c

两组整数的异或集

3.
【问题描述】

从标准输入中输入两组整数
(
每行不超过
2 0
个整数,每组整数中元素不重复
),
合并两组整数,去掉在
两组整数中都出 现的整数,并按从大到小顺序排序输出(即两组整数集

异或

)。


【输入形式】

首先输入第一组整数,以一个空格分隔各个整数;然后在新 的一行上输入第二组整数,以一个空格
分隔,行末有回车换行。


【输出形式】

按从大到小顺序排序输出合并后的整数集(去掉在两组整数中都出现的 整数,以一个空格分隔各个
整数)。


【样例输入】


5
1
4
32
8
7
9
-6
5
2
87
10
1

【样例输出】

87
32
10
9
8
7
4
2
-6

【样例说明】

第一组整数为
5
1
4
32
8
7
9
-6
,第二组整数分别为
5
2
87
10 < br>1
。将第一组和第
二组整数合并(去掉在两组整数中都出现的整数
5

1
),并从大到小顺序排序后结果为
87
32
10
9
8
7
4
2
-6



【评分标准】该题要求输出两组整数的异或集,共有5
个测试点,提交程序文件名为
xor.c



符串中字符排序

4.
【问题描述】编写一个程序,从键盘接收 一个字符串,然后按照字符顺序从小到大进行排序,并删
除重复的字符。

【输入形式】用户在第一行输入一个字符串。

【输出形式】程序按照字符
( ASCII)
顺序从小到大排序字符串,并删除重复的字符进行输出。

【样例输入】
badacgegfacb
【样例输出】
abcdefg < br>【样例说明】
用户输入字符串
badacgegfacb

程序对其进 行按从小到大
(ASCII)
顺序排序,
并删除重
复的字符,最后输出为abcdefg
【评分标准】结果完全正确得
20
分,每个测试点
4< br>分。提交源程序名为
stringsort.c

长正整数的减法

5.
【问题描述】

编写程序实现两个超长正整数(每个最长
80
位数字)的减法运算。


【输入形式】

从键盘读入两个整数,要考虑输入高位可能为
0
的情况(如
00083
)。

1.
第一行是超长正整数
A


2.
第二行是超长正整数
B



【输出形式】

输出只有一行,是长整数
A
减去长整数
B
的运算结果,从高到低依次 输出各位数字。要求:若结果

0
,则只输出一个
0
;否则输出的结 果的最高位不能为
0
,并且各位数字紧密输出。


【输入样例】


234098
134056

【输出样例】



134958
【样例说明】

进行两个正整数减法运算,

234098

134056 =

134958



【评分标准】


完全正确得
20
分,每个测试点
4
分,提交程序文件名为
s ubtract.c




符串替换(新)

6.
【问题描述】

编写程序将一个指定文件中某一字符串替换为另一个字 符串。要求:(
1
)被替换字符串若有多个,
均要被替换;(
2
)指 定的被替换字符串,大小写无关。

【输入形式】

给定文件名为
< br>。从控制台输入两行字符串(不含空格,行末尾都有回车换行符),分别表示
被替换的字符串和替 换字符串。

【输出形式】

将替换后的结果输出到文件

中。

【样例输入】

从控制台输入两行字符串:

in
out
文件

的内容为:

#include
void main()
{
FILE * IN;
if((IN=fopen(
{
printf(

t open !
return;
}
fclose(IN);
}
【样例输出】

文件

的内容应为:

#outclude
void maout()
{
FILE * out;
if((out=fopen(
{
prouttf(

t open !
return;
}
fclose(out);
}
【样例说明】

输入 的被替换字符串为
in
,替换字符串为
out
,即将文件

中 的所有
in
字符串(包括
iN

In

IN
字符串)全部替换为
out
字符串,并输出保存到文件

中。

【评分标准】

该题要求得到替换后的文件内容,共有
5
个测试点。 上传
C
语言文件名为
replace.c



长升序子串(选做,不计分)

7.
【问题描述】输入一行字符 串,该字符串只由小写英文字母
a-z
组成,且其中的字符可以重复,最长
不超过10000
个字符。

从该字符串中按顺序挑选出若干字符(不一定相邻)组成一 个新串,称为

子串

。如果子串中每两个
相邻的字符或者相等,或 者后一个比前一个大,则称为

升序子串

。编程求出输入字符串的最长升序
子串的长度。

例如,由输入字符串
abdbch
可以构成的升序子 串有:
abd

abch

bbch

abbch
等。其中最长的升
序子串是
abbch
,其长度为
5

【输入形式】从标准输入读取一行字符串,该串不含空格,以回车符结束。

【 输出形式】向标准输出打印一个正整数,是字符串中最长的升序子串的长度,在行末要输出一个
回车符。

【输入样例】
abdbch
【输出样例】
5
【样例说 明】
abdbch
中最长子串是
abbch
,长度是
5
。< br>
【评分标准】结果完全正确得
20
分,每个测试点
4
分。上 传
c
语言源程序为
up.c



并字符串
【问题描述】

1.
编写一个函数
char * str_bin(char* str1, char* str2)


str1

str2
是两个有序字符串(其中字符按
ASCII
码从小到大排序),将
str2
合并到字符串< br>str1
中,要求合并后的字符串仍是有序的,允许字符重复。

main函数中测试该函数:
从键盘输入两个有序字符串,
然后调用该函数,
最后输出合并 后的结果。

【输入形式】

分行从键盘输入两个有序字符串(不超过
100
个字符)

【输出形式】

输出合并后的有序字符串

【输入样例】

aceg
bdfh
【输出样例】

abcdefgh
【样例说明】

输入两个有序字符串
aceg

bdfh< br>,输出合并后的有序字符串
abcdefgh
【评分标准】

结果完 全正确得
20
分,每个测试点
4
分,提交程序文件名为
combin e.c


-
删除子串【问题描述】编写一个程序,当在一个字符串中出现子串时就删除它。

2.
【输入形式】用户在第一行输入一个字符串,用户在第二行输入一个子串。
< br>【输出形式】程序在下一行输出删除其中所有子串后的字符串。如果字符串不包含子串则输出原字
符串本身。

【样例输入】

I am a boy!
a
【样例输出】

I m
boy!
【样例说明】用户首先输入字符串
I am a boy!,
然后输出子串
a ,
程序会寻找字符串中的子串删除它,
最后

将删除后的结果输出
:I#m##boy!
#
表示空格。
< br>【评分标准】结果完全正确得
20
分,每个测试点
4
分。提交程序名为 :
delsubstring.c



数形式与科学计数法转换(简)
【问题描述】

3.
编 写一个程序,将用小数表示的浮点数,转换成科学计数法的形式输出。输入的数据没有符号,小
数点前后 必有数字,且全为有效数据,即小数点后的末尾数字不为
0
;小数点前若只有一位数字,可以为
0
,否则小数点前的最高位数字不为
0


提示:以字符串形式保存相关数据。

【输入形式】

从控制台输入 一小数,最后有回车换行符,所有输入的字符数不会超过
100


【输出形式】

以科学计数法形式输出数据。输出的数据由以下几部分构成:

1.
底数部分是一个小数或整数,若为小数,则小数点前后必有数字,而且都为有效数字。即: 小数点
前只有一位大于
0
的数字,
小数点后的末尾数字不能为
0
若为整数,
则只有一位数字,
不带小数点。

2.
必有小写字母
“e”


3.
指数部分是一个 整数,若大于等于
0
,则不带正号
“+”
。若小于
0
,则需 要带负号

-

,且整数的最高
位数字不为
0
。< br>
【输入样例
1


0.002
【输出样例
1


2e-15
【输入样例
2


8.9845623489651700659
【输出样例
2


8.9845623489651700659e0
【输入样例
3


367298599999859503.4
【输出样例
3


3.672985999998595034e41
【样例说明】

以小数形式输入数据,然后转换成科学计数法形式输出。

【评分标准】
< br>该题要求以科学计数法形式输出数据,提交程序文件名为
notation.c



-
旋转魔方阵
(
文件
)
【问题描述】

4.
输入一个自然数N(
2≤N≤9

,要求输出如下的魔方阵, 即边长为
N*N
,元素取值为
1

N*N

1

左上角,呈顺时针方向依次放置各元素。

N=3
时:


1
2
3

8
9
4

7
6
5
【输入形式】

从标准输入读取一个整数
N


【输出形式】

将结果输出到文件文件

。输出符合要求的方阵,每个 数字占
5
个字符宽度,向右对齐,在每
一行末均输出一个回车符。

【输入样例】

4
【输出样例】输出文件

内容为:


1
2

3

4


12

13

14
5


11

16

15
6


10
9

8
7
【评分标准】

本题不准使用数学库函数。结果正 确得
20
分,每个测试点
4
分,提交程序文件名为
magic.c< br>。


排列数的生成
【问题描述】输入整数
N( 1 <= N <= 10 )
,生成从
1~N
所有整数的全排列。

5.
【输入形式】输入整数
N


【输出形式】输出有
N!行,每行都是从
1~N
所有整数的一个全排列,各整数之间以空格分隔。各行
上的 全排列不重复。输出各行遵循

小数优先

原则
,
在各全 排列中,较小的数尽量靠前输出。如果将
每行上的输出看成一个数字,则所有输出构成升序数列。具体格 式见输出样例。

【样例输入
1

1
【样例输出
1

1
【样例说明
1
】输入整数
N=1
,其全排列只有一种。

【样例输入
2

3
【样例输出
2


1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
【样例说明
2
】输入整数
N=3
,要求整数< br>1

2

3
的所有全排列
,
共有
N!=6
行。且先输出
1
开头的
所有排列数,再输出
2
开头 的所有排列数,最后输出
3
开头的所有排列数。在以
1
开头的所有全排
列中同样遵循此原则。

【样例输入
3

10
【样例输出
3


1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 10 9
1 2 3 4 5 6 7 9 8 10

-


-


-


-


-


-


-


-



本文更新与2021-01-26 10:21,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/571211.html

北航大一上c语言第四五六七八次作业的相关文章