C语言课程训练系统题-一维数组
- 1.创建并输出一个一维数组(含20个元素),数组元素的值分别是下标的3倍多2
- 2.输入10个数,找出其中最小和最大的数及其位置
- 3.输入10个数,找出最大的数及其位置
- 4.编写程序计算一个包含10个整数的数组中所有整数的平均值(平均值计算为双精度浮点数)。
- 5.利用数组计算fibonacci数列的前10个数,即1, 1, 2, 3, 5, ……,并按每行打印5个数的格式输出
- 6.编程实现从键盘任意输入20个整数,统计非负数个数,并计算非负数之和。
- 7.编程实现两个数组中对应该元素值的交换(数组的长度定义成5)
- 8.如果一个正整数等于其各个数字的立方和,则该数称为阿姆斯特朗数(亦称为自恋性数)。如407=4^3+0^3+7^3就是一个阿姆斯特朗数。试编程求1000内的所有3位数的阿姆斯特朗数。
- 9.反向输出有5个元素的int数组中的各元素的值。数组为{10,20,30,40,50}
- 10.
- 11.
- 13.输入一行字符,统计其中的英文字符、数字字符、空格和其他字符的个数
- 14.数组在函数中的返回
1.创建并输出一个一维数组(含20个元素),数组元素的值分别是下标的3倍多2
**输出格式要求:"%3d"
#include <stdio.h>
main()
{
int a[20],i,b,n;
for(i=0;i<20;i++)
{
a[i]=3*i+2;
printf("%3d",a[i]);
}
}
2.输入10个数,找出其中最小和最大的数及其位置
#include<stdio.h>
main()
{
int a[10],n,i,b,d,e;
for(i=0;i<10;i++)scanf("%d",a+i);
b=a[0];
d=a[0];
for(i=0;i<10;i++)
{
if(a[i]>=b)
{b=a[i];n=i;}
if(a[i]<=d){d=a[i];e=i;}
}
printf("max=%d, pos=%d\n",b,n);
printf("min=%d, pos=%d\n",d,e);
}
3.输入10个数,找出最大的数及其位置
#include<stdio.h>
main()
{
int a[10],n,i,b;
printf("请输入10个元素的值:\n");
for(i=0;i<10;i++)scanf("%d",a+i);
b=a[0];
for(i=1;i<10;i++)
{
if(a[i]>b)
{b=a[i];n=i;}
}
printf("值最大的元素值为:%d 下标为%d\n",b,n);
}
4.编写程序计算一个包含10个整数的数组中所有整数的平均值(平均值计算为双精度浮点数)。
在main函数中利用循环输入10个整数,保存在一个数组中,计算均值,然后输出计算结果。
***输入提示信息:“Please input ten integers:\n”
***每个整数的输入格式要求:"%d"
***输出格式要求:“The mean value is %.2f\n”
#include<stdio.h>
main()
{
int a[10],n,i,b;
double sum=0,ave;
printf("Please input ten integers:\n");
for(i=0;i<10;i++)scanf("%d",a+i);
for(i=0;i<10;i++)
{
sum+=a[i];
}
ave=sum/10.0;
printf("The mean value is %.2f\n",ave);
}
5.利用数组计算fibonacci数列的前10个数,即1, 1, 2, 3, 5, ……,并按每行打印5个数的格式输出
输出格式要求:"%6d"
#include<stdio.h>
main()
{
int a[10],n=0,i,b;
a[0]=1;
a[1]=1;
for(i=2;i<10;i++)
{a[i]=a[i-2]+a[i-1];}
for(i=0;i<10;i++)
{
printf("%6d",a[i]);
n++;
if(n==5)printf("\n");
}
}
6.编程实现从键盘任意输入20个整数,统计非负数个数,并计算非负数之和。
输入提示信息:“Input 20 Numbers:\n”
输入格式:"%d"
输出格式:“sum = %d, counter = %d\n”
运行示例:
Input 20 Numbers:
1 2 3 4 5 6 7 8 -9 -10↙
12 -45 56 -99 34 87 90 -23 0 65↙
sum = 380, counter = 15
#include<stdio.h>
main()
{
int a[20],n,i,b=0;
long sum=0,ave;
printf("Input 20 Numbers:\n");
for(i=0;i<10;i++)scanf("%d",a+i);
for(i=10;i<20;i++)scanf("%d",a+i);
for(i=0;i<20;i++)
{
if(a[i]>=0){sum+=a[i];b++;}
}
printf("sum = %d, counter = %d\n",sum,b);
}
7.编程实现两个数组中对应该元素值的交换(数组的长度定义成5)
输出函数:"%5d"
输入举例:注意输入的顺序
6 7 8 9 10 (输入第一个数组元素)
1 2 3 4 5 (输入第二个数组元素)
输出举例:
1 2 3 4 5 (输入第一个数组元素)
6 7 8 9 10 (输入第二个数组元素)
#include<stdio.h>
void main()
{
int a[5],b[5],i,c,n;
for(i=0;i<5;i++)scanf("%d",a+i);
for(i=0;i<5;i++)scanf("%d",b+i);
for(i=0;i<5;i++)
{
c=a[i];
a[i]=b[i];
b[i]=c;
}
for(i=0;i<5;i++)printf("%5d",a[i]);
printf("\n");
for(i=0;i<5;i++)printf("%5d",b[i]);
}
8.如果一个正整数等于其各个数字的立方和,则该数称为阿姆斯特朗数(亦称为自恋性数)。如407=43+03+7^3就是一个阿姆斯特朗数。试编程求1000内的所有3位数的阿姆斯特朗数。
如407=43+03+7^3就是一个阿姆斯特朗数。试编程求1000内的所有3位数的阿姆斯特朗数。
**输出格式要求:“There are following Armstrong number smaller than 1000:\n” " %d "
程序运行示例如下:
There are following Armstrong number smaller than 1000:
153 370 371 407
#include<stdio.h>
void main()
{
int a[5],i,c,n;
printf("There are following Armstrong number smaller than 1000:\n");
for(i=100;i<1000;i++)
{
a[0]=i/100;
a[1]=(i/10)%10;
a[2]=((i%100)%10);
if((a[0]*a[0]*a[0]+a[1]*a[1]*a[1]+a[2]*a[2]*a[2])==i)printf(" %d ",i);
}
}
9.反向输出有5个元素的int数组中的各元素的值。数组为{10,20,30,40,50}
**输出格式要求:"\ta[%d]=%d,"
程序运行示例如下:
a[4]=50, a[3]=40, a[2]=30, a[1]=20, a[0]=10,
#include<stdio.h>
void main()
{
int a[5]={10,20,30,40,50},i,c,n;
for(i=4;i>=0;i--)printf("\ta[%d]=%d,",i,a[i]);
}
10.
#include<stdio.h>
#define N 10
void main()
{
int a[N];
int i,j,temp;
printf("Input %d number",N);
for(i=0;i<N;i++)scanf("%d",a+i);
for(i=0;i<N-1;i++)
{
for(j=0;j<N-i-1;j++)
{if(a[j]>a[j+1])
{temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
printf("After sorted:");
for(i=0;i<N;i++)
{
if(i%10==0)
printf("\n");
printf("%d ",a[i]);
}
}
11.
#include<stdio.h>
#define N 5
void main()
{
int a[N];
int i,j,temp;
for(i=0;i<N;i++)
{
printf("Enter No.%2d:",i+1);
scanf("%d",&a[i]);
}
for(i=0;i<N-1;i++)
{
for(j=0;j<N-i-1;j++)
{if(a[j]>a[j+1])
{temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
for(i=0;i<N;i++)
{
printf("%d",a[i]);
}
}
13.输入一行字符,统计其中的英文字符、数字字符、空格和其他字符的个数
输入提示信息:“Please input a string:”
输入字符串用gets()
输出提示信息和格式:
“English character: %d\n”
“digit character: %d\n”
“space: %d\n”
“other character: %d\n”
#include<stdio.h>
#include<string.h>
void main()
{
char a[1000],b=0,e=0,f=0,g=0,i,c;
printf("Please input a string:");
gets(a);
c=strlen(a);
for(i=0;i<c;i++)
{
if(' '==a[i])f++;
if('0'<=a[i]&&'9'>=a[i])b++;
if('a'<=a[i]&&'z'>=a[i]||'A'<=a[i]&&'Z'>=a[i])e++;
}
printf("English character: %d\n",e);
printf("digit character: %d\n",b);
printf("space: %d\n",f);
printf("other character: %d\n",c-e-b-f);
}
14.数组在函数中的返回
#include <stdio.h>
int* fun(int* a,int n);
void main()
{
int n=10,i;
int aa[10];
int *p=fun(aa,n);
for(i=0;i<n;i++)
{printf("%d\n",p[i]);}
getchar();
}
int* fun(int* a,int n)
{
int i=0;
for(i=0;i<n;i++)
{
a[i]=+i;
}
return a;
}
本文通过一系列C语言编程题目,包括创建一维数组、找数组中最大最小值、计算平均值、 Fibonacci 数列、阿姆斯特朗数等,深入讲解一维数组的操作和算法应用。通过实例代码,帮助读者掌握C语言中数组的使用技巧。
1140

被折叠的 条评论
为什么被折叠?



