小练

1,
Description
将输入的两个字符串连接在一起输出。
编写一个函数str_cat()求两个串的连接: 原型:char * str_cat(char * t, char * s); 功能:把串s连接到串t之后,返回值是串t。 函数的调用格式见“Append Code”。

Invalid Word(禁用单词)错误:在解决这个题目时,某些关键词是不允许被使用的。如果提交的程序中包含了下列的关键词之一,就会产生这个错误。 被禁用的头文件:string.h、stdlib.h。 被禁用的库函数:strcat()、strncat()、memcat()、strcpy()、strncpy()、memcpy()等。

Input
输入为多组,每组包括两行。第一行为一个字符串s,第二行为字符串str。s、str的字符总数均不超过100个。

Output
把串s的内容连接到串str之后,输出串str。 输出两遍,一遍是测试返回值,一遍是测试str。

Sample Input
Look!
I love china!
Sample Output
I love china! Look!
I love china! Look!
HINT
str_cat()的返回值参考标准库函数strcpy()、strcat()、strchr()的设计思路:返回指向目标串的指针。

Append Code
append.c
int main()
{
char s[MAX_STR_LEN], str[MAX_STR_LEN], *p;
while(gets(s) != NULL && gets(str) != NULL)
{
p = str_cat(str, s);
puts§;
puts(str);
}
return 0;
}

#include<stdio.h>
#define MAX_STR_LEN 100
char *str_cat(char str[],char s[]){
	int a,b,k;
	for(a=0;str[a]!=NULL;a++){
		k=0;
	}
	for(b=0;s[b]!=NULL;b++){
		k=0;
	}
	for(int i=0;i<b;i++){
		str[a+i]=s[i];
	}
	return str;
	
}

int main()
{
    char s[MAX_STR_LEN], str[MAX_STR_LEN], *p;
    while(gets(s) != NULL && gets(str) != NULL)
    {
        p = str_cat(str, s);
        puts(p);
        puts(str);
    }
    return 0;
}

这应该算早间练.

编写函数:浮点数取整 (Append Code)
Time Limit: 1 Sec Memory Limit: 2 MB

Description
各种程序设计语言里常见的取整函数有四个,分别是fix()、floor()、ceil()、round()。它们的功能细微之处各不相同,但有一点功能是共同的,就是把一个可能带小数点的浮点数转换成一个整数。
编写函数myFloor()和myCeil(): 原型:int myFloor(double data); 功能:下取整,返回不大于data的最大整数。 原型:int myCeil(double data); 功能:上取整,返回不小于data的最小整数。 函数的调用格式见“Append Code”。

Invalid Word(禁用单词)错误:在解决这个题目时,某些关键词是不允许被使用的。如果提交的程序中包含了下列的关键词之一,就会产生这个错误。 被禁用的头文件:math.h和stdlib.h。

Input
输入有多行,每行是一个可能带小数点的浮点数m。

Output
输出为多行,与上述输入一一对应。每行输出两个整数:m上取整和下取整的结果,两者之间用一个空格分隔开。

Sample Input
1.3
-1.5
2
Sample Output
1 2
-2 -1
2 2
HINT
Append Code
append.c
int main()
{
double data;
while(scanf("%lf", &data) != EOF)
printf("%d %d\n", myFloor(data), myCeil(data));
return 0;
}

#include<stdio.h>
#define MAX_STR_LEN 100
int myFloor(double data){
	if(data>=0)
	return data;
	else return data-1;
}
int myCeil(double data){
	int c=data;
	if(data>0&&data!=c)
	return data+1;
	if(data==0){
		return 0;
	}
	if(data<0||data==c) 
	return data;
}
int main()
{
    double data;
    while(scanf("%lf", &data) != EOF)
        printf("%d %d\n", myFloor(data), myCeil(data));
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不惭_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值