C语言编程题C语言编程题
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
XYZ
abc 123
END
Sample Output
abcdefgXYZ
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
1