-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhomework
234 lines (145 loc) · 8.9 KB
/
homework
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
29
3.4 %c输入2个数字(0--9),将2个数字组成2位数并每位上的数字不能相同,以%d输出。
4.2. 编程输入一串字符串将字符串中,字母、数字和其他符号归类,并统计出各个字符的个数。
5.1 从键盘上输入一个字符,如果它是大写字母,则把它转换成小写字母输出;否则,直接输出。
5.2 从键盘上输入一个百分制成绩score,按下列原则输出其等级:score≥90,等级为A;80≤score<90,等级为B;70≤score<80,等级为C;60≤score<70,等级为D;score<60,等级为E。
5.3 . 以下程序实现:输入圆的半径r和运算标志m,按照运算标志进行指定计算。请在 填入正确内容。
标志 运 算
a 面 积
c 周 长
b 二者均计算
5.4编程实现以下功能:读入两个运算数(data1和data2)及一个运算符(op),计算表达式data1 op data2的值,其中op可为‘+’,‘-’,‘*’,‘/’(用switch语句实现)。
7-300
6.1下面程序的功能是用do—while语句求1至1000之间满足“用3除余2;用5除余3;用7除余2”的数,且一行只打印五个数。
6.2求fibonacci数列的前40个数。该数列的生成方法为:F1=1,F2=1,Fn=Fn-1+Fn-2(n>=3),即从第3个数开始,每个数等于前2个数之和。
6.12下面程序的功能是计算1-3+5-7+ …… -99+101的值。
6.8.1 编写程序,输出用一元人民币兑换成1分、2分和5分硬币的不同兑换方法。
6.9打印出100~1000之间的所有“水仙花数”(“水仙花数”是指一个3位数,各位数字的立方和等于该数本身。如:153=13+53+33,153就是“水仙花数”)
6.10对于终端上输入的正文分别进行字符、字、行统计,并输出统计结果。请填空。
如: I am a student.
You are a teacher.
Bye.
#
结果显示:line=3 word=9 character=39
8-2
7.1.1下面程序的功能是:从键盘上输入一行字符,存入一个字符数组中,然后输出该字符串。
7.1.2下面程序的功能是显示具有n个元素的数组s中的最大元素,输出最大数值和其位置。
7.1.5下面程序的功能是将字符串s中所有的字符'c'删除。
7.1.7 x的值转换为二进制数,所得的二进制数放在一个一维数组中返回,二进制数的最低位放在下标为0的元素中。
7.1编程 将数字变成所对应的字母,如:198变成字符串”198”。
7.23在数组中查找最大的数与数组中最后一个数交换,并查找数组中最小的数与数组第一个数交换。
7.24一数列 包含10个数,已按升序排列,现要求,能够从指定位置开始的n个数按逆序重新排列并输出新的完整数列(例如:1 ,2,3,4,5,6,7,8,9,10。若要求把从第4个数开始的5个数逆序重新排列,新数列为1,2,3,8,7,6,5,4,9,10)
8-3
7.20下面函数的功能是将字符变量的值插入已经按ASCII码值从小到大排好序的字符串中
7.21下面程序的功能是从键盘上输入两个字符串,对两个字符串分别排序;然后将它们合并,合并后的字符串按ASCII码值从小到大排序,并删去 相同的字符。
7.25 输入两个整数,求他们相除的余数,用宏表示。
7.26 10个学生围一圈,从第一个学生开始数数,数到3的学生退出,显示最后剩余的学生号码。
8-4
7.7任意输入一个 5 阶方阵,输出这个方阵中上三角元素里的最小数和下三角元素里的最大数 。
对角线数据之和。
7.14: 以下程序显示如下所示的矩阵,矩阵中每个元素形成的规律是:右上三角阵(含对角线)元素为1,其它元素值为:行下标-列下标+1。
1 1 1 1 1
2 1 1 1 1
3 2 1 1 1
4 3 2 1 1
5 4 3 2 1
7.15:首先对a所指的N行N列的矩阵,找出各行中的最大的数,再求这N个最大值中的最小的那个数。
8.10请编写一个函数float fun(double h),函数的功能使对变量h中的值保留2位小树,并对第三位进行四舍五入(规定h中的值位正数)。
8.13求数列中第二小的数
8-5
8.33以下程序是用来统计整数的各位数字中零的个数,并求各位数字中最大者的个数及最大数输出。
8.30求二维数组a中的最大值与b中的最大值之差,
8.31两个正整数 m和 n(n>=m),求从 m到 n之间(包括 m和 n)所有素数的和。要求定义并调用函数isprimek来判断x是否为素数(素数是除1以外只能被1或自身整除的自然数)。
8.28以下程序的功能是从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。
8.29该程序功能是运行时输入n,输出n各位数字之和(如n=1308,则输出12,n=-3204则输出9)。
8.16统计两个数组中相应元素大于、等于或小于的次数,并由此决定那个数组较大。
8.18编写一个函数,该函数可以统计一个字符串在另一个字符串中出现的次数。
8-9
10.153编写函数,通过指针将一个字符串反向
10.156将字符串a的所有字符传送到字符串b中,每传三个字符在放一个空格,例如字符串a为“abcdefg”,则字符串b为“abc def g”
10.157两个字符串a、b,将a、b的对应字符中的较大者放到c中
10.160:从键盘输入一个字符串a,并在最大元素后边插入字符串b。
10.161 求一个整数任意次方的最后三位数,要求整数和次数从键盘输入
8-10
10.154 通过指针p输出数组a中任意一行或任意一列
10.15在执行文件名后输入n个字符串,通过函数找出最长的那个串
8-10.19 将字符串中的数字串取出存入各个数组中,例如:如adfad123l4adfj4561,则分别取出123、456放到数组中,并转置,既放进去是4132,1654;
10.17将n个字符串排序,排序规则如下:“参照子串”越小的字符串越靠前(“参照子串”指的是原串后半截的逆序结果)。例如,输入3个字符串“Kitty"、“cake"和"Z",因为它们的参照子串分别是"ytt"、“ek" 和"Z",而"Z" <“ek" < "ytt",故最后应输出:
Z
Cake
Kitty
player:
某播放器是通过三个按键来控制播放动作,play键,stop键和pause键,下表列举了当前模式下,按下某个按键时需要迁移到的状态及需要执行的函数,请书写驱动函数根据输入及当前所处状态实现模式迁移和执行相应函数的功能。
模式
按键 MODE_STOP MODE_PLAY MODE_PAUSE
stop键 -- MODE_STOP MODE_STOP
-- play2stop() pause2stop()
play键 MODE_PLAY -- MODE_PLAY
stop2play() -- pause2play()
pause键 -- MODE_PAUSE --
-- play2pause() --
例如:如果当前处于MODE_STOP状态下,按play键,则迁移到MODE_PLAY状态,并执行stop2play()函数。
8-12
11.7 编程:结构体中存三人的姓名和年龄,输出年龄最大者的姓名和年龄。(完全动态的)
typedef Struct
{
Char *name;
Int age;
}Per, *pPer;
11.8 编程:统计学生成绩,功能包括输入学生姓名和成绩,按成绩从高到低排序输出,对前70%的学生为合格,而后30%的学生不合格。
struct stu
{
char *stu_name;
struct score stu_score;
}
struct score
{
int china;
int english;
int math;
}
11.8c 输入十个学生信息包括姓名、数学、语文和英语打印出低于全体学生平均成绩的学生的信息。
11.9定义结构体包括数据域和指向本身结构体的指针,并定义三个这样结构体变量,
(1)将三个变量连接x的指针域指向y,y的指针域指向z,z的指针域指向NULL,并打印其数据域的值。
(2)将y删除,遍历打印链的值
(3)将y添加到链上,遍历打印链的值。
8-13
11.66编写程序,从键盘输入3个学生的数据,将它们存入文件student;然后再从文件中读出数据,显示在屏幕上。
struct stu
{
char name[10];
struct score stu_score;
int (*print_stu)(struct stu);//打印每个学生的信息
}
struct
{
int (*stu_score_sum)();//计算每个学生的总成绩
int (*print_score_sum)();//打印每个学生的总成绩
}
typedef struct st
{
char name[NL];
sex sx;
int score;
}STU;
task 0:交换两个学生信息
task 1:找姓名最大
task 2:查找从键盘输入的姓名的学生信息
task 3:查找姓名LEN相同的学生
task 4:向结构体中添加成员 int score 将2人姓名和成绩放到一个变量中,姓名以#分割
task 5:将变量存入文件中,并写出test.c测试是否写入成功(test.c 中有main函数)
task 6:并在test.c中将其成绩加密,0-9数字转换为A-I再存入文件,并读文件并打印
11.8b typedef struct school
{
sStuCla *stu_claa;
}sStuSch, pStuSch*
struct class
{
sStu *stu_stu;
}
sStuCla, *pStuCla;
struct student
{
char *name;
int score;
}sStu, *pStu;