期末复习题

16 阅读2分钟

1.从键盘输入5个整数,保存到一个数组中,然后再逆序输出。

代码如下:

#include <stdio.h>
int main(){
	
	int nums[5];
	printf("请输入五个整数:\n");
	
	for(int i = 0; i < 5; i++){
		scanf("%d", &nums[i]);
		
	}
	printf("----------------------------\n");
	for(int i = 4; i >= 0; i--){
		printf("%d\n", nums[i]);
	}
	
} 

效果如下:

image.png

2.编写一个函数,用来求一个整数数组中所有元素的平均值。

代码如下:

#include <stdio.h>
	
	float Average(int arr[], int length){
		
		int sum = 0;
	
	for(int i = 0; i < length; i++){
		sum += arr[i];
	}
	return(float)sum / length;
	}

int main(){
	 
int arr[] = {1, 2, 3, 4, 5};
    
	int len = sizeof(arr) / sizeof(arr[0]);
    
    float avg = Average(arr, len);
    
	printf("数组平均值为:%.2f\n", avg);  
    return 0;
}

效果如下: image (1).png

3.编写一个函数,用来对输入的数组进行冒泡排序.

代码如下:

#include <stdio.h>
int main(){
	int nums[5];
	
	int temp;
	
	printf("请输入一些整数,用空格分格:\n");
	
	for(int i = 0; i < 5; i++){
		scanf("%d", &nums[i]);
	}
	
	for(int i = 0; i < 4; i++){
		for(int j = 0; j < 4 - i; j++){
			if(nums[j] > nums[j + 1]){
				temp = nums[j];
				nums[j] = nums[j + 1];
				nums[j + 1] = temp;
			}
		}
	}
	
	printf("按照冒泡排序法进行排序结果为:");
	for(int i = 0; i < 5; i++){
		printf("%d", nums[i]);
	}
	printf("\n");
}

效果如下:

image.png

4.编写一个函数,它的参数是数组及数组的长度,以及要查找的值。如果这个值在数组中存在,返回找到的第一个元素的下标。如果这个值在数组中不存在,返回-1。

代码如下:

#include <stdio.h>
int fun2(int arr[], int len, int target){
	int idx = -1;
	for(int i=0;i<len;i++){
		if(arr[i] == target){
			idx = i;
			break;
		}
	}
	return idx;
}
int main(){	
	int arr[] = {1,2,3,4,5};
	int target = 30;
	printf("%d", fun2(arr, 5, target));

	return 0;
}

效果如下:

image.png

5.编写一个函数,计算斐波那契数列的第n项。

代码如下:

#include <stdio.h>
	
	int fun5(int n) {
    int a1 = 1;
    int a2 = 1;
    int t = 1;

    if(n<3)
        return t;

    for(int i=1;i<=n-2;i++){
        t = a1 + a2;
        a1 = a2;
        a2 = t;
    }
    return t;
}

int main() {
    int n = 4;
    for(int i=1;i<=10;i++){
        printf("斐波那契数列的第%d项=%d\n",i,fun5(i));
    }
    return 0;
}

效果如下:

image (1).png