1. (30分) 10-从键盘输入三个整数,按从大到小排列。
题目描述
从键盘输入三个整数,按从大到小排列。写三个函数,主函数,exchange函数和swap函数。
swap函数实现两个数排序。在exchange函数中多次调用swap(),实现三个数排序。主函数中输入数据、调用exchange()排序,输出结果。
输入描述
从键盘输入三个数
输出描述
输入三个数从大到小排列
输入样例
10 20 30
输出样例
30,20,10
用户代码
#include<stdio.h>
int main()
{
int a,b,c;
void swap(int *a,int *b);
void exchange(int *a,int *b,int *c);
scanf("%d%d%d",&a,&b,&c);
exchange(&a,&b,&c);
printf("%d,%d,%d",a,b,c);
return 0;
}
void swap(int *a,int *b)
{
int t;
if(*a<*b)
{t=*a;*a=*b;*b=t;}
}
void exchange(int *a,int *b,int *c)
{
swap(a,b);
swap(a,c);
swap(b,c);
}
2. (30分) 10-字符复制
题目描述
有一个字符串,包含n个字符,写一个函数,将此字符串中从第m个字符开始的全部字符复制称为另一个字符串。
函数原型为void copystr(char *,char *,int );
输入描述
键盘输入分两行,第一行输入一个字符串,第二行输入一个整型数
输出描述
输出复制结果
输入样例
qwertyuiop(第一组数据)
3
qwert(第二组数据)
6
输出样例
result:ertyuiop(符号均为英文符号)
input error!
用户代码
#include<stdio.h>
#include<string.h>
int main()
{
void copystr(char *p,char *b,int n);
char a[13]="",b[10]="";
char *p1=a;
char *p2=b;
int m,n;
gets(a);
scanf("%d",&n);
m=strlen(a);
if(n>m)
puts("input error!");
else
{
copystr(p1,p2,n);
printf("result:%s",b);
}
return 0;
}
void copystr(char *p1,char *p2,int n)
{
for(p1=p1+n-1;*p1!=0;p1++,p2++)
*p2=*p1;
}
3. (40分) 10-编写把字符串string中指定字符删除的函数和主函数
题目描述
编写把字符串string中指定字符删除的函数和主函数。函数原型为:
void DeleteChar(char *string,char c);
输入描述
从键盘输入字符串
输出描述
从键盘输入要从字符串中删除的一个字符
输入样例
asdddde
d
输出样例
ase
用户代码
#include<stdio.h>
int main()
{
void DeleteChar(char *p,char c);
char str[10];
char n;
char *p=str;
gets(str);
n=getchar();
DeleteChar(p,n);
printf("%s",str);
return 0;
}
void DeleteChar(char *p,char c)
{
char *i;
char t;
for(p;*p!=0;p++)
if(*p==c)
for(i=p+1;*i!=0;i++)
if(*i!=c)
{
t=*p;
*p=*i;
*i=t;break;
}
for(p--;*p==c;p--)
*p=0;
}