(1)从键盘上输入3个整数,按大小顺序输出(用指针编程实现)。
(2)写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。
(3)有一个字符串,包含n个字符,写一个函数,将此字符串从第m个字符开始的全部字符复制成为另一个字符串。
(4)将n个数按输入时顺序的逆序排列,用函数实现。
(5)有n个人围成一圈,顺序排号,从第一个开始报数(从1到3),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位。
(6)编译程序,键盘输入月份号,输出该月的英文月名,要求用指针数组处理。
(1)
#include<stdio.h>
void paixu(int *i,int *j,int *k)
{
int p1,p2,p3;
if(*i<*j)
{
p1=*i;
*i=*j;
*j=p1;
}
if(*i<*k)
{
p2=*i;
*i=*k;
*k=p2;
}
if(*j<*k)
{
p3=*j;
*j=*k;
*k=p3;
}
}
void main()
{
int i,j,k;
printf("请输入三个要排序的数:\n");
scanf("%d%d%d",&i,&j,&k);
paixu(&i,&j,&k);
printf("从大到小为:%d %d %d\n",i,j,k);
}
(2)
#include<stdio.h>
int count(char str[])
{
int count=0,i;
for(i=0;i<255&&str[i]!='\0';i++)
count=count+1;
return count;
}
int main()
{
char str[255];
int j;
printf("请输入字符串:\n");
scanf("%s",str);
j=count(str);
printf("你输入的字符串长度为%d个字符串\n",j);
return 0;
}
(3)
#include<stdio.h>
#include<string.h>
void copy(char *d,char *s,int n)
{
strcpy(d,s+n-1);
}
int main()
{
int j,m;
char str1[255],str2[255];
printf("请输入字符串:\n");
scanf("%s",str1);
j=strlen(str1);
printf("请输入要从字符串中开始复制的位置:\n");
scanf("%d",&m);
if(m>j||m<0)
{
printf("error\n");
return 0;
}
else
copy(str2,str1,m);
printf("%s\n",str2);
return 0;
}
(4)
#include<stdio.h>
int main()
{
void nixu(char*p,int m);
int i,n;
char *p,num[20];
printf("请输入要输入的个数:\n");
scanf("%d",&n);
printf("请输入这些数:\n");
for(i=0;i<n;i++)
scanf("%d",&num[i]);
p=&num[0];
nixu(p,n);
printf("逆序之后为:\n");
for(i=0;i<n;i++)
printf("%4d",num[i]);
return 0;
}
void nixu(char *p,int m)
{
int i;
char temp,*p1,*p2;
for(i=0;i<m/2;i++)
{
p1=p+i;
p2=p+(m-1-i);
temp=*p1;
*p1=*p2;
*p2=temp;
}
}
(5)
#include<stdio.h>
void main()
{
int i,j,k,m,n;
int *p;
int num[50];
printf("请给出人数:\n");
scanf("%d",&n);
p=num;
for(i=0;i<n;i++)
*(p+i)=i+1;
i=0;
j=0;
m=0;
while(m<n-1)
{
if(*(p+i)!=0)
j++;
if(j==3)
{
*(p+i)=0;
j=0;
m++;
}
i++;
if(i==n)
i=0;
}
while(*p==0)
p++;
printf("最后留下来的一个人是%d号\n",*p);
}
(6)
#include<stdio.h>
char *Month(int m)
{
char*month[]={"illegalmonth","January","February","March",
"April","May","June","July",
"August","September","October","November","December"};
if(m<1||m>12)
return month[0];
else
return month[m];
}
int main()
{
int n;
printf("请输入月份号:\n");
scanf("%d",&n);
if(n>0)
printf("该月份英文名为:%s\n",Month(n));
return 0;
}