1、字符串复制
题目描述
设计函数实现字符串复制功能,每个字符串长度不超过100,不要使用系统提供的strcpy函数
输入要求
从键盘读入一个字符串到数组b中,以换行符结束
输出要求
将内容复制到另一个数组a中,并分别输出数组a和数组b中的内容
输入样例
Frank comes from Thailand
输出样例
String a is:Frank comes from Thailand.
String b is:Frank comes from Thailand.
代码示例:
#include <stdio.h>
char mystrcpy(char a[101],char b[101])
{
int i;
for(i=0;b[i]!='\0';i++)
{
a[i]=b[i];
}
a[i]='\0'; //以\0结尾,很重要
}
int main()
{
char a[101],b[101],*p1,*p2;
int i;
gets(b);
//调用复制函数
mystrcpy(a,b);
printf("String a is:%s\n",a);
printf("String b is:%s\n",b);
return 0;
}
2、比较串的大小
题目描述
设计函数,比较两个字符串的大小,每个字符串长度不超过50,不要使用系统提供的库函数
输入要求
从键盘分别读入两个字符串,每个字符串以换行符结束
输出要求
比较两个字符串的大小,输出相应的结果。
输入样例
Hello
hi
输出样例
Hello<hi
代码示例:
#include<stdio.h>
char mystrcmp(char *s1,char *s2)
{
int i,c;
for(i=0;s1[i]||s2[i];i++)
{
if(s1[i]!=s2[i])
{
c=s1[i]-s2[i];
break;
}
}
if(s1[i]=='\0'&&s2[i]=='\0')
{
c=0;
}
return c;
}
int main()
{
char s1[51],s2[51];
int k;
gets(s1);
gets(s2);
k=mystrcmp(s1,s2);
if(k>0)
printf("%s > %s\n",s1,s2);
else if(k==0)
printf("%s = %s\n",s1,s2);
else
printf("%s < %s\n",s1,s2);
return 0;
}
3、正数的平均值
题目描述
输入10个实数,计算并输出所有大于0的数的平均值
输入要求
输入10个实数
输出要求
计算大于0的数的平均值
输入样例
-5 2 -6 9 -4 -2 0 6 1 10
输出样例
5.60
代码示例:
#include<stdio.h>
#define N 10
double ave(double a[],int n)
{
int i,count=0;
double sum=0;
for(i=0;i<n;i++)
{
if(a[i]>0)
{
sum+=a[i];
count++;
}
}
return sum/count;
}
int main()
{
double a[N],res;
int i;
for(i=0;i<N;i++)
{
scanf("%lf",&a[i]);
}
res=ave(a,N); //调用函数求大于0的数的平均值
printf("%.2f\n",res);
return 0;
}
4、数组中对应元素相减
题目描述
设计函数,实现两个一维数组的对应元素相减
输入要求
在主函数中各输入10个整数到数组a和数组b中
输出要求
设计函数计算并输出a-b的结果
输入样例
28 65 78 4 3 2 1 21 -9 -19
3 4 56 -81 8 1 0 10 8 -21
输出样例
25 61 22 85 -5 1 1 11 -17 2
代码示例:
#include<stdio.h>
int sub(int a[],int b[],int n)
{
int i;
for(i=0;i<n;i++)
{
printf("%d ",a[i]-b[i]);
}
}
int main()
{
int a[10],b[10],i;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
scanf("%d",&b[i]);
sub(a,b,10); //调用函数
printf("\n");
return 0;
}
5、无序数组的查找
题目描述
已知一维数组中的10个元素各不相同,查找数组中是否存在值位key的数组元素。如果有,输出相应的下标,否则输出not found。已知数组无序排列
输入要求
先从键盘输入10个整数。然后再输入一个待查找的数据key
输出要求
若存在,则输出该数所在位置的下标,若不存在,则输出not found
输入样例
6 70 -9 80 83 54 3 88 10 2
80
输出样例
3
代码示例:
#include<stdio.h>
int main()
{
int a[10],key,k=0,set=0;
int i;
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
scanf("%d",&key);
for(i=0;i<10;i++)
{
if(a[i]==key)
{
k=i;
set=1;
}
}
if(set)
printf("%d\n",k);
else
printf("not found\n");
return 0;
}