Problem A: 求字符串的长度(编程题) Description
编写一个求字符串长度的函数,其原型如下: int strlen(char str[]);
其中str[]表示待求长度的字符串,返回值是str[]的长度。
注意:主函数已经给出,只需提交strlen()函数及必要的头文件包含命令。
Input
输入为多行。第一行N>0表示有N个测试用例,后面有N行,每行包含一个字符串(不超过1000个字符)。
Output
输出为多行,每行对应于一个测试用例。每行的格式为: case i:lenght=j.
其中i表示测试用例编号(从1开始),j表示相应的字符串长度。
Sample Input
4
I love China!
Do you want to pass this examination? You will succeed finially! Wish you succeed!
Sample Output
case 1:length=13. case 2:length=37. case 3:length=26. case 4:length=17.
Problem B: 一维数组的逆序(编程题)
Description
编程,实现对一个一维数组的逆序,即将数组的元素反转。
Input
输入分多行,第一行是N>0,表示有N个用例。
每个用例的输入有1行或2行,其中第一行是0<=M<=1000,表示该数组有M个整数。如果M>0,则第二行包含M个整数,两两之间用空格隔开;如果M=0,则该用例没有第二行输入。
Output
输出为N行,每行与上述输入一一对应,分别是对应用例的逆序。输出格式为: case i:d1 d2 ...
其中i表示用例编号(从1开始),d1、d2等是数组逆序后的结果,两两之间用空格隔开。如果该用例不包含任何输入,即:M=0,则仅输出: case i:
Sample Input
3 10
10 9 8 7 6 5 4 3 2 1 0 5
1 2 3 4 5
Sample Output
case 1:1 2 3 4 5 6 7 8 9 10 case 2:
case 3:5 4 3 2 1
HINT
注意M可以为0。
Problem C: 编写函数trim()
Description
在C语言中,将ASCII字符集中的制表符('\\t')、回车符('\\r')、换行符('\\n')、垂直制表符('\\v')、换页符('\\f')和空格字符(' ')称作空白符。 你的任务是读入每行字符串,去掉行首和行尾的连续空白符,但是在任意非空白符中间的空白符不要去除。 要求编写一个函数:trim()。trim()函数的参数是一个字符串,去除这个字符串前后的空白符,并将该串的首地址返回。函数原型如下: char * trim(char *);
main()函数见append.c。
malloc()被禁用,不需要重新分配空间。trim()函数在作为参数传入的字符串原存储空间内操作。
Input
输入为多行,每行为一个串(不超过100个字符),至某行输入的非空白符仅为“END”结束。
Output
输出为多行,为每行输入的去掉前后空白符的串。“END”也输出。
Sample Input
abcdefg
12345678 XYZ
abc 123 END
Sample Output
abcdefg
12345678 XYZ
abc 123 END
HINT
头文件ctype.h中有isspace函数对空白符进行检测,若一个字符为空白符之一则返回真。
Problem D: 体重正常吗?(编程题)
Description
体重指数计算器是体重与身高之比值,知道它很重要,可以了解你的健康情况,你的体重是不是标准体重、超重和肥胖等。编写一个体重指数计算器,只需要输入身高与体重,即可计算出体重指数。
体重指数(BMI--Body Mass Index)是评估体重与身高比例的参考指数,它的计算公式为:体重(kg)除以身高(m)的平方。判断结论为:
BMI
<19 [19,25) [25,30) [30,40) >=40
体重偏低 健康体重 超重 严重超重 极度超重
Input
输入为多行,每行包含2个实数:第一个是身高(以cm为单位)、第二个是体重(以kg为单位),两个数据均为正数。两者之间用一个空格隔开。
Output
输出为多行,每行与上述输入一一对应。每行输出的第一个实数是体重指数,保留2位小数。然后是一个空格,接着是判定结论: lower:体重偏低 health:健康体重
heavy:超重
super heavy:严重超重 extra heavy:极度超重。
Sample Input
168 80 185 85
Sample Output
28.34 heavy 24.84 health
HINT
注意:输入的身高是以cm为单位的;计算BMI时,身高是以m为单位的。
Problem E: 字符串的逆序串(函数)
Description
将输入的一个字符串s逆序输出。 编写一个函数str_rev()求一个串的逆序串。 str_rev()的调用格式见append.c,原型如下: char * str_rev(char *, char *)
参数是字符串s和它的逆序串str,str_rev(str, s)函数调用后,str中存储的串为s串的逆序。
Input
输入为一个串s。输入最少为一个字符,最多不会超过100个字符。
Output