2021-9-28 C100题

本文档整理了C语言考研复习中的关键100题,涵盖质数判断、数组排序、矩阵运算、动态插入及逆序输出等核心知识点,适合2021年9月考生高效复习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C语言100题

考研初试C语言复习 时间:2021.9.28


前言


提示:以下是本篇文章正文内容,下面案例可供参考

第一题、

1.题目描述

100以内的质数

2.代码

#include <stdio.h>
#include <math.h>
int main() {
	int i, j, k;
	for (i = 2; i < 100; i++) {
		j = (int)sqrt(i);
		for (k = 2; k <= j; k++) {
			if (i % k == 0) break;
		}
		if (k > j) {
			printf("%d\n", i);
		}
	}
	return 0;
}

题目思考:经典找质数 注意平方根和#include <math.h>

第二题、

1.题目描述

10个数进行排序

2.代码

#include <stdio.h>
#define N 10
//小到大
void maopao(int a[N]) {//冒泡排序
	int temp;//缓存用
	for (int i = 0; i < N; i++) {
		for (int j = 0; j < N; j++) {
			if (a[j] > a[i]) {
				temp = a[i];
				a[i] = a[j];
				a[j] = temp;
			}
		}
	}
}
int partition(int a[N], int low, int high) {
	int pivot = a[low];//设置枢轴
	while (low < high) {
		while (low < high && a[high]>=pivot) --high;
		a[low] = a[high];
		while (low < high && a[low] <= pivot) ++low;
		a[high] = a[low];//同上,不断收紧
	}
	a[low] = pivot;
	return low;
}
void quicksort(int a[N],int low,int high) {//快速排序
	if (low < high) {
		int mid = partition(a, low, high);
		quicksort(a, low, mid - 1);
		quicksort(a, mid + 1, high);
	}
}

int max(int a[N]) {//找最大
	int max;
	for (int i = 0; i < N; ++i) {
		if (a[i + 1] > a[i]) max = a[i + 1];
	}
	return max;
}
int min(int a[N]) {//找最小
	int min;
	for (int i = 0; i < N; ++i) {
		if (a[i + 1] < a[i]) min = a[i + 1];
	}
	return min;
}
int main() {
	int a[N];
	printf("请输入10个数字\n");
	for (int i = 0; i < N; ++ i) {
		scanf_s("%d ", &a[i]);
	}
	quicksort(a, 0, 9);
	printf("\n");
	for (int i = 0; i < N; ++i) {
		printf("%d ", a[i]);
	}
	return 0;
}

题目思考:一个快排和冒泡

第三题、

1.题目描述

3*3的矩阵对角线之和

2.代码

#include <stdio.h>
#define N 3
int main(){
	int i, j, a[N][N], sum = 0;
	printf("请输入矩阵\n");
	for (i = 0; i < N; ++i) {
		for (j = 0; j < N; j++) {
			scanf_s("%d", &a[i][j]);
		}
		for (i = 0; i < N; ++i){
			sum += a[i][i];
		}
	}
	printf("对角线和为:%d\n ",sum);
	return 0;

题目思考:多维数组的简单应用

第四题、

1.题目描述

2.代码

#include <stdio.h>
int main() {
    int a[11] = { 1,4,6,9,13,16,19,28,40,100 };
    int number, end, i, j;
    printf("原始数组是:\n");
    for (i = 0; i < 10; i++)
        printf("%4d", a[i]);
    printf("\n插入一个新的数字: ");
    scanf_s("%d", &number);
    end = a[9];
    if (number > end) a[10] = number;
    else  if(a[0]>number){
        for (i = 10; i > 0; i--) {
            a[i] = a[i - 1];
        }
        a[0] = number;
    }
    else {
        for (i = 0; i <= 10; ++i) {
            if (number > a[i] && number < a[i + 1]) {
                for (j = 10; j > i; j--) {
                    a[j] = a[j - 1];
                }
                a[i+1] = number;
                break;
            }
        }
    }
    for (j = 0; j < 11; j++) {
        printf("%d ", a[j]);
    }
    return 0;
}

题目思考:3种情况进行判定

第五题、

1.题目描述

数组逆序输出

2.代码

#include<stdio.h>
#define N 10
int main()
{
    int a[N]={0,1,2,3,4,5,6,7,8,9};
    int i,t;
    printf("原始数组是:\n");
    for(i=0;i<N;i++)
        printf("%d ",a[i]);
    for(i=0;i<N/2;i++)
    {
        t=a[i];
        a[i]=a[N-1-i];
        a[N-1-i]=t;
    }
    printf("\n排序后的数组:\n");
    for(i=0;i<N;i++)
        printf("%d ",a[i]);
    printf("\n");
    return 0;
}

题目思考:同上

总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值