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");
}