仅供借鉴、仅供借鉴、仅供借鉴(整理了一下大一C语言每个章节的练习题、没得题目、只有程序了)
文章目录
- 1 、实训名称
- 2 、实训目的及要求
- 3 、源代码及运行截图
- 4、小结
1 、实训名称
实训7:数组
2 、实训目的及要求
实验目的:
1、熟练掌握一维数组,二维数组,字符数组的定义、赋值、输入、输出方法
2 、熟练掌握一维数组,二维数组,字符数组的使用
3 、通过上机实践掌握与数组有关的算法
3 、源代码及运行截图
【6-6】
(1)
#include<stdio.h>
int main (){
int i=0, j,a[10],temp;
printf("请输入十个整数:\n");
for(int i=0;i<10;i++){
scanf("%d ",&a[i]);//从键盘获取整数
}
//冒泡排序
for(int i=0;i<9;i++){
for(int j=0;j<10-i;j++){
if(a[j]>a[j+1])
{
temp=a[j+1];
a[j+1]=a[j];
a[j]=temp;
}
}
}
for(int i=0;i<10;i++){
printf("%d\n",a[i]);
}
return 0;
}
(2)、
#include<stdio.h>
int main (){
int a1,b2,c3,d4,e5,f6,g7,h8,i9,g10,k11,l12,sum=0;
a1=4;//一月
printf("1月的产量:%d\n",a1);
b2=(a1-1)*2;
printf("2月的产量:%d\n",b2);
c3= (b2-1)*2;
printf("3月的产量:%d\n",c3);
d4=(c3-1)*2;
printf("4月的产量:%d\n",d4);
e5= (d4-1)*2;
printf("5月的产量:%d\n",e5);
f6=(e5-1)*2;
printf("6月的产量:%d\n",f6);
g7= (f6-1)*2;
printf("7月的产量:%d\n",g7);
h8=(g7-1)*2;
printf("8月的产量:%d\n",h8);
i9=(h8-1)*2;
printf("9月的产量:%d\n",i9);
g10=(i9-1)*2;
printf("10月的产量:%d\n",g10);
k11=(g10-1)*2;
printf("11月的产量:%d\n",k11);
l12=(k11-1)*2;
printf("12月的产量:%d\n",l12);
sum=a1+b2+c3+d4+e5+f6+g7+h8+i9+g10+k11+l12;
printf("总的产量:%d\n",sum);
return 0;
}
(4)、
#define N 50
#include<stdio.h>
int main (){
int i,n ,a,count;
for(n=1;n<N;n+=2){
for(i=0;i<n;i++){
count++;
if(count==40)
printf("第四十项数据:%d\n",n);
}
}
return 0;
}
(5)、
#include<stdio.h>
int main (){
int i,j, b;
int sum=0,f[3][4];
//键盘输入二维数组
for(i=0;i<3;i++){
printf("请输入四个数据:\n");
for(j=0;j<4;j++){
scanf("%d",&f[i][j]);
printf("\n");
}
}
for(i=0;i<3;i++){
sum+=f[i][1];
}
printf("第二列的和是%d",sum);
return 0;
}
(6)、
#include<stdio.h>
int main (){
int i,j, b;
int sum=0,sum1=0,sum2=0,sum3=0,sum4=0,f[4][5];
//键盘输入二维数组
for(i=0;i<4;i++){
printf("第%d行五个元素:\n",i+1);
for(j=0;j<5;j++){
scanf("%d",&f[i][j]);
}
}
for(j=0;j<5;j++){
sum1=sum1+f[0][j];
}
printf("第一行和:%d\n",sum1);
for(j=0;j<5;j++){
sum2+=f[3][j];
}
printf("第四行和:%d\n",sum2);
for(i=1;i<3;i++){
sum3+=f[i][0];
}
printf("第一列和:%d\n",sum3);
for(i=1;i<3;i++){
sum4+=f[i][4];
}
printf("第五列和:%d\n",sum4);
sum=sum1+sum2+sum3+sum4;
printf("边和是%d",sum);
return 0;
}
(7)、
#include<stdio.h>
int main (){
int t,i,j;
int f[3][4];
int a,b,max;
//键盘输入二维数组
for(i=0;i<3;i++){
printf("第%d行四个元素:\n",i+1);
for(j=0;j<4;j++){
scanf("%d",&f[i][j]);
}
}
printf("\n");
max=f[0][0];
for(i=0;i<3;i++){
for(j=0;j<4;j++){
printf("%3d",f[i][j]);
if(f[i][j]>max){
max=f[i][j];
a=i;
b=j;
}
}printf("\n");
}
printf("%d,%d\n",a,b);
printf("输出数组的最大值:%d\n",max);
return 0;
}
(8)、
#include<stdio.h>
int main (){
int t,i,j;
int a[3][3];
int b[3][3];
//键盘输入二维数组
for(i=0;i<3;i++){
printf("第%d行三个元素:\n",i+1);
for(j=0;j<3;j++){
scanf("%d",&a[i][j]);
}
}
printf("数组a:\n");
for(i=0;i<3;i++){
for(j=0;j<3;j++){
printf("%-4d",a[i][j]);
}
printf("\n");
}
printf("\n");
printf("\n");
for(i=0;i<3;i++){
printf("第%d行三个元素:\n",i+1);
for(j=0;j<3;j++){
scanf("%d",&b[i][j]);
}
}
printf("数组b:\n");
for(i=0;i<3;i++){
for(j=0;j<3;j++){
printf("%-4d",b[i][j]);
}
printf("\n");
}
printf("数组a和数组b相加后的结果在数组c中的显示\n");
for(i=0;i<3;i++){
for(j=0;j<3;j++){
printf("%-4d",a[i][j]+b[i][j]);
} printf("\n");
}
return 0;
}
4、小结
通过本次练习我能够较为熟练的掌握数组的构造和一些简单的运用,一维数组的实现较为简单、二维数组相对较为复杂。在动态的输出二维数组的时候需要使用两层循环对数组赋值。二维数组的输出和输入主要涉及两层for循环以此将数组中的每一行每一列的数值输出输入。利用数组可以实现简单的排序方法,冒泡排序的原理就是通过两层循环将相邻的两个数互换位置,不断对比最终实现一个有顺序的数表。