C语言编程实例01


1. 输出前 30 个素数,每行输出 6 个。

#include <stdio.h>
#include <math.h>
#define EACHLINECOUNT 6

void main()
{
	int i, k, num=2, n=0;
	while(n<30)
	{
		k = sqrt(num);
		for(i=2; i<=k; i++)
			if(num%i==0)
				break;
		//如果是素数,输出
		if(i>k)
		{
			n++;
			printf("%4d",num);
			if( !(n%EACHLINECOUNT) )
				printf("\n");
		}
		num++;
	}
}

2. 输出以下图案:

      *
    * * *
  * * * * *
* * * * * * *
  * * * * *
    * * *
      *

#include <stdio.h>
#define EACHLINECOUNT 6

void main()
{
	int i,j,k;
	for(i=0;i<=3;i++)
	{
		for(j=0;j<3-i;j++)
			printf(" ");
		for(k=0;k<2*i+1;k++)
			printf("*");
		printf("\n");
	}
	for(i=2;i>=0;i--)
	{
		for(j=0;j<3-i;j++)
			printf(" ");
		for(k=0;k<2*i+1;k++)
			printf("*");
		printf("\n");
	}
}

3. 分析以下程序,写出运行结果,并上机运行验证结果。

#include "stdio.h"

void main()
{ 
	int a[]={2,4,6,8,10}, i, s=0;
	for(i=0;i<3;i++)			
		s += a[i+1];
	printf("%d\n",s);
}

4. 阅读并实际上机验证下面程序的运行结果,说出程序完成的功能。

#include "stdio.h"

//删除连续重复数据,不是连续重复的无法删除
void main()
{ 
	int a[80]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10}, j, n=19, k=1;
	// 输出原始数据
	printf("The original data:\n");
	for(j=0;j<n;j++)								
		printf("%3d ",a[j]);
	// 对原始数据进行处理和输出提示信息
	for(j=1;j<n;j++)								
		if(a[k-1]!=a[j])
			a[k++] = a[j];
		printf("\nThe data after deleted:\n"); 
	// 输出处理后结果
	for(j=0;j<k;j++)
		printf("%3d ",a[j]);
	printf("\n");
}

5. 假设一个数组中元素的值依次为 12,5,7,8,4,编写程序将其逆序放,变成 4,8,7,5,12。

#include <stdio.h>

void main()
{
	int a[]={12, 5, 7, 8, 4}, i, t, n;
	n = sizeof(a)/sizeof(a[0]);
	//输出原始数据
	printf("The original data:\n");
	for(i=0; i<n; i++)
		printf("%4d",a[i]);
	//逆序排放,数组元素个数是奇数或偶数都可以
	for(i=0; i<n/2; i++)
	{
		t = a[i];
		a[i] = a[n-1-i];
		a[n-1-i] = t;
	}
	//输出结果
	printf("\nThe result data:\n");
	for(i=0; i<n; i++)
		printf("%4d",a[i]);
	printf("\n");
}

文章作者: John
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 John !