c语言作业

44 阅读2分钟

1.简答题

1.请阐述一维数组的初始化方式

答: 一维数组的初始化可以通过以下几种方式实现:

  1. 完全初始化:在定义数组时给所有元素赋初值,这时数组的每个元素都有明确的值.

  2. 部分初始化:只对数组中的一部分元素赋值,未指定的元素会被自动赋值为0.

  3. 不指定长度的初始化:可以在初始化时不指定数组的长度,系统会根据给定的初始值的个数来定义数组的长度.

  4. 在定义后初始化:可以在定义数组后,通过赋值语句对数组进行初始化.

2.编程题

1.请编写程序实现以下功能

从键盘输入六个整数

找出这六个整数的最大值,并将其输入到控制台

代码如下:

int arr[6];
int max;	
	
printf("请输入六个整数:");
for(int i = 0; i < 6; i++){
    scanf(&#34;%d&#34;, &arr[i]);
}
	
max = arr[0];
for(int i = 1; i < 6; i++){
    if(arr[i] > max){
        max = arr[i];
    }			
}
	
printf(&#34;最大值为:%d\n&#34;, max);

效果如图:

屏幕截图 2025-12-10 195041.png

2.请编写程序实现以下功能

从键盘输入六个整数

使用冒泡排序法将这六个整数从小到大排序

代码如下:

int arr[6];
	
for (int i = 0; i < 6; i++){
    scanf(&#34;%d&#34;, &arr[i]);
}

for (int i = 0; i < 5; i++){
    int is = 0;
    for (int j =0; j < 5 - i; j++){
        if (arr[j] > arr[j + 1]){
        int a = arr[j];
        arr[j] = arr[j + 1];
        arr[j + 1] = a;

    is = 1;
    }
}

    if (is ==0){
        break;
    }
    
    printf(&#34;\n&#34;);
    
    for (int k = 0; k < 6; k++){
        printf(&#34;%d\t&#34;, arr[k]);
    }
} 

效果如图:

屏幕截图 2025-12-10 194125.png

3.矩阵转置是线性代数的基本算法,就是将矩阵的行 列交换, 即将行变成列,将列变成行.要求编写程序,实现输入一个四行四列的矩阵,将矩阵转置后输出.

代码如下:

int arr[4][4];
int brr[4][4];
// 输入4行4列矩阵
printf(&#34;请输入44列矩阵:\n&#34;);
for (int i = 0; i < 4; i++) {
    for (int j = 0; j < 4; j++) {
        scanf(&#34;%d&#34;, &arr[i][j]);
    }
}
// 矩阵转置
for (int i = 0; i < 4; i++) {
    for (int j = 0; j < 4; j++) {
        brr[j][i] = arr[i][j];
    }
}
// 输出转置后的矩阵
printf(&#34;转置后的矩阵:\n&#34;);
for (int i = 0; i < 4; i++) {
    for (int j = 0; j < 4; j++) {
        printf(&#34;%d &#34;, brr[i][j]);
}

printf(&#34;\n&#34;);
}

效果如图:

屏幕截图 2025-12-10 195331.png