C语言期末考试——易错高频考点(认真学习期末轻松不挂科)

目录

一、选择题

自增自减问题

三目运算符问题

二、编程题

1.冒泡法排序(升序)

2.输出100以内的素数 

3. 奇偶数判断


(更多题目可以参考之前的文章,本文是易错重点考点)

一、选择题

自增自减问题

1.设x的值为10,表达式++x*--x的结果为( A )

A. 100       B. 110     C. 99      D. 90

解析:

  • 在前面执行完 ++x(使得 x 变为 11 后又经过 --x 变回 10)后,接下来执行乘法运算 ++x * --x,就相当于计算 10 * 10,按照乘法运算规则,其结果就是 100。
三目运算符问题

2.以下程序执行结果是( B )

   main()

  {

        int w=1,x=2,y=3,z=4;

        w=(w<x)?x:w;

        w=(w<y)?y:w;

        w=(w<z)?z:w;

        printf(“%d”,w);

  }

   A.2      B.4      C.3      D.1


解析:

第一步:分析第一个条件表达式 w=(w<x)?x:w;

  • 首先判断 w < x 这个条件,此时 w 的值为 1,x 的值为 2,1 < 2 这个条件成立。
  • 根据条件表达式 (条件)?表达式1:表达式2 的规则,当条件为真时,整个表达式的值取 表达式1 的值,在这里就是取 x 的值,然后将其赋给 w,所以经过这一步操作后,w 的值变为 2。

第二步:分析第二个条件表达式 w=(w<y)?y:w;

  • 接着判断 w < y 这个条件,此时 w 的值已经变为 2(上一步操作的结果),y 的值为 3,2 < 3 这个条件成立。
  • 同样根据条件表达式的规则,会取 y 的值(也就是 3)赋给 w,此时 w 的值变为 3。

第三步:分析第三个条件表达式 w=(w<z)?z:w;

  • 再判断 w < z 这个条件,此时 w 的值是 3,z 的值为 4,3 < 4 这个条件成立。
  • 按照条件表达式规则,会取 z 的值(也就是 4)赋给 w,至此,经过这三步条件表达式的操作后,w 的最终值变为 4。
 

最后执行 printf(“%d”,w); 语句,会输出 w 的值,也就是 4。

 

所以该程序的执行结果是选项 B 中的 4。

二、编程题

 1.冒泡法排序(升序)
#include<stdio.h>
// 定义数组长度
#define SIZE 3
int main()
{
    int arr[SIZE];
    int i;
 
    // 从控制台输入数字到数组
    printf("请输入%d个整数:\n", SIZE);
    for (i = 0; i < SIZE; i++)
    {
        scanf("%d", &arr[i]);
    }
 
	int n = SIZE;
	int h, j, temp;
    for (h = 0; h < n - 1; h++)
    {
        for (j = 0; j < n - h - 1; j++)
        {
            if (arr[j] > arr[j + 1])
            {
                // 交换元素
                temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
 
    // 输出排序后的数组
    printf("排序后的数组为:\n");
    for (i = 0; i < SIZE; i++)
    {
        printf("%d ", arr[i]);
    }
	printf("\n");
    return 0;
}
2.输出100以内的素数 
#include <stdio.h>
int main()
{
    int i, j;
 
    printf("1到100之内的素数有:\n");
 
    // 遍历1到100的数字
    for (i = 2; i <= 100; i++)
    {
        // 假设当前数字i是素数
        int isPrime = 1;
 
        // 检查i是否能被2到i-1之间的数字整除
        for (j = 2; j < i; j++)
        {
            if (i % j == 0)
            {
                // 如果能被整除,说明不是素数,标记为0
                isPrime = 0;
                break;
            }
        }
 
        // 如果isPrime为1,说明是素数,输出该数字
        if (isPrime == 1)
        {
            printf("%d ", i);
        }
    }
 
    printf("\n");
 
    return 0;
}
3. 奇偶数判断
#include <stdio.h>
int main() {
    int num;
    printf("请输入一个整数: ");
    scanf("%d", &num);

    if (num % 2 == 0) {
        printf("%d 是偶数。\n", num);
    } else {
        printf("%d 是奇数。\n", num);
    }

    return 0;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值