2025年9月计算机二级C语言程序设计——选择题打卡Day9

备考计算机二级 C 语言 程序设计考试,选择题是不容忽视的重要部分。

今天为大家带来 10 道选择题,聚焦位运算与预处理命令的高级应用,助力提升综合能力。

1、设有定义:int a=64, b=8; 则表达式(a&b)||(a&&b)的值是( )
A. 0
B. 1
C. 64
D. 8

答案:B

分析:a&b按位与运算:64(二进制01000000)与 8(二进制00001000)结果为 0;a&&b逻辑与运算:因 a、b 均非 0,结果为 1;逻辑或运算0||1结果为 1,故 B 正确。

2、有以下程序

#include <stdio.h>
#define MAX(a,b) (a)>(b)?(a):(b)
main()
{
    int x=1, y=2, z=3;
    printf("%d\n", MAX(x+y, z)*2);
}

程序运行后的输出结果是( )
A. 3
B. 4
C. 5
D. 6

答案:D

分析:宏替换为(x+y)>(z)?(x+y):(z)*2,即3>3?3:3*2,条件不成立,取3*2=6,故 D 正确。

3、以下位运算中,能将变量 x 的第 3 位(从 0 开始计数)设置为 1 的表达式是( )
A. x | (1 << 3)
B. x & (1 << 3)
C. x ^ (1 << 3)
D. ~x | (1 << 3)

答案:A

分析:1<<3得到二进制1000(第 3 位为 1),按位或运算x | (1<<3)可强制将 x 的第 3 位设为 1(其他位不变);B 用于判断第 3 位是否为 1,C 用于翻转第 3 位,D 会改变其他位,故 A 正确。

4、有以下程序

#include <stdio.h>
#define N 3
#define M N+1
#define NUM 2*M+1
main()
{
    printf("%d\n", NUM);
}

程序运行后的输出结果是( )
A. 7
B. 8
C. 9
D. 10

答案:A

分析:宏替换为NUM=2*N+1+1=2*3+1+1=7(宏仅文本替换,不自动加括号),故 A 正确。

5、若有定义:int a=5, b=3; 则表达式a ^ b的值是( )
A. 6
B. 7
C. 8
D. 9

答案:A

分析:5(0101)与 3(0011)按位异或(相同为 0,不同为 1),结果为0110(十进制 6),故 A 正确。

6、有以下程序

#include <stdio.h>
#define S(x) (x)*(x)
main()
{
    int k=3;
    printf("%d\n", S(k+1));
}

程序运行后的输出结果是( )
A. 16
B. 8
C. 4
D. 2

答案:A

分析:宏替换为(k+1)*(k+1)=4*4=16,故 A 正确。

7、以下程序的功能是将整数 x 的低 4 位翻转(0 变 1,1 变 0),高 4 位保持不变,正确的表达式是( )
A. x ^ 0x0f
B. x | 0x0f
C. x & 0x0f
D. ~x & 0x0f

答案:A

分析:0x0f为二进制00001111,按位异或x^0x0f可翻转低 4 位(高 4 位不变

8、有以下程序

#include <stdio.h>
#define PRINT(a) printf("%d,", a)
main()
{
    int i, a[] = {1,2,3,4,5};
    for(i=0; i<5; i++)
        PRINT(a[i]);
}

程序运行后的输出结果是( )
A. 1,2,3,4,5,
B. 12345
C. 5,4,3,2,1,
D. 1 2 3 4 5

答案:A

分析:宏PRINT(a)替换为printf("%d,", a),循环依次输出数组元素并加逗号,结果为 “1,2,3,4,5,”,故 A 正确。

9、若有定义:int x=0x10; 则执行语句x >>= 2;后,x 的值是( )
A. 0x04
B. 0x20
C. 0x40
D. 0x08

答案:A

分析:0x10是十六进制(十进制 16),右移 2 位后为16 >> 2 = 4(十六进制0x04),故 A 正确。

10、以下关于#undef命令的叙述中,正确的是( )
A. #undef用于取消已定义的宏
B. #undef必须放在宏定义之前
C. #undef只能取消函数宏,不能取消对象宏
D. #undef取消宏定义后,该宏仍可在后续代码中使用

答案:A

分析:#undef的作用是取消已定义的宏(A 正确);应放在宏定义之后(B 错误);可取消任何宏(C 错误);取消后宏不可再用(D 错误)。

希望这 10 道题能帮助大家对计算机二级 C 语言的知识点有更深入的理解和掌握。如果想要获取完整版 PDF(含二级更多题目题库)

夸克网盘分享

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值