您好,欢迎来到五一七教育网。
搜索
您的当前位置:首页linuxC语言day6

linuxC语言day6

来源:五一七教育网

1.已知数组a[10]和b[10]中元素的值递增有序,用指针实现将两个数组中的元素按递增的顺序输出。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	int a[10]={0,2,4,6,8,10,12,14,16,18};
	int b[10]={1,3,5,7,9,11,13,15,17,19};
	int c[20]={0};
	int *A=a,*B=b,*C=c,i,j,t;
	for(i=0;i<10;i++)
		*C++=*A++;
	for(i=0;i<10;i++)
		*C++=*B++;
	C-=20;
	for(i=0;i<20;i++){
		for(j=0;j<19-i;j++){
			if(C[j]>C[j+1]){
				t=C[j],C[j]=C[j+1],C[j+1]=t;
			}
		}
	}
	for(i=0;i<20;i++)
		printf("%-3d",*(C+i));
	putchar(10);
	return 0;
}

2.编写一个程序实现功能:将字符串”Computer Science”赋给一个字符数组,然后从第一个字母开始间隔的输出该字符串,用指针完成。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	char s[100]="Computer Science",a[100]="0";
	char *p=s,*q=a;
	while(*p){
		*q++=*p++;
		*q++=' ';
	}
	*q=0;
	puts(a);
	return 0;
}

3.用指针将整型组s[8]={1,2,3,4,5,6,7,8}中的值逆序存放。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	int s[8]={1,2,3,4,5,6,7,8},*p=s,i,t;
	for(i=0;i<8/2;i++)
		t=*(p+i),*(p+i)=*(p+7-i),*(p+7-i)=t;
	for(i=0;i<8;i++)
		printf("%d ",*(p+i));
	putchar(10);
	return 0;
}

4、程序哪里有错误

wap( int* p1,int* p2 )

int *p;

*p = *p1;

*p1 =* p2;

*p2 =* p;

}

答案:p为野指针

5、定义3个整数及整数指针,仅用指针方法按由小到大的顺序输出。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	int a,b,c,t,i,j;
	printf("请输入三个整数:");
	scanf("%d%d%d",&a,&b,&c);
	int s[3]={a,b,c},*p=s;
	for(i=0;i<3;i++){
		for(j=0;j<2-i;j++){
			if(p[j]>p[j+1]){
				t=p[j],p[j]=p[j+1],p[j+1]=t;
			}
		}
	}
	for(i=0;i<3;i++)
		printf("%-3d",*(p+i));
	putchar(10);
	return 0;
}

6、随机输入一个字符串,统计每个字符出现的次数

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	char s[100]={0},i,j,c,flag;
	printf("请输入一个字符串\n");
	gets(s);
	char *p=s,*q=s;
	for(i=0;*(p+i);i++){
		c=0,flag=0;
		for(j=0;*(q+j);j++){
			if(*(p+i)==*(q+j)){
				c++;
			}
			if(*(p+i)==*(p+i-j-1)){
				flag=1;
			}
		}
		if(flag==0)
		printf("%c出现了%d次\n",*(p+i),c);
	}
	return 0;
}

7、删除字符数组中的重复字符

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	char s[100]={0},i,j,c,flag;
	printf("请输入一个字符串\n");
	gets(s);
	char *p=s,*q=s;
	for(i=0;*(p+i);i++){
		flag=0;
		for(j=0;*(q+j);j++){
			if(*(p+i)==*(p+i-j-1)){
				flag=1;
			}
		}
		if(flag==0)
		printf("%c",*(p+i));
	}
	putchar(10);
	return 0;
}

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 517ttc.cn 版权所有 赣ICP备2024042791号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务