C语言课程笔记 - 运算符和程序控制
运算符
一元运算符
加减号:正负号
按位取反:~
逻辑非:!
自增自减:++ –
类型转换:sizeof
二元运算符
算术运算符:+ - * / %
位运算符:& | ^(与、或、异或)
关系运算符:> < >= <= == !=
逻辑运算符:&& || !(与、或、非)
短路现象
逻辑与:&& 如果第一个操作数为假,则不计算第二个操作数。
逻辑或:|| 如果第一个操作数为真,则不计算第二个操作数。
赋值运算符
复合赋值运算符:+= -= *= /= %= &= |= ^= 等。
位运算符
位运算通常用于底层二进制操作。
三元运算符
格式:条件 ? 表达式1 : 表达式2
类似于简化版的if-else。
程序控制
分支控制
if-else:根据条件执行不同分支。
switch-case:根据整数表达式的值执行不同分支。
循环控制
for:适合已知循环次数的情况。
while:适合循环次数未知,需要条件判断的情况。
do-while:至少执行一次循环体。
练习题
逻辑运算符练习:编写一个程序,使用逻辑与、或、非运算符来判断一个整数数组中是否存在同时为正数和负数的情况。

位运算符练习:给定一个整数,编写程序计算其按位取反的结果。

赋值运算符练习:编写程序,使用复合赋值运算符计算两个整数的和、差、积、商。

三元运算符练习:编写一个程序,根据用户输入的分数,使用三元运算符判断分数是优秀、良好还是及格。

分支控制练习:

使用if-else语句编写一个程序,根据用户输入的月份,输出对应的季节。
使用switch-case语句编写一个程序,根据用户输入的星期数(1-7),输出对应的星期名称。
练习题解答

  1. 逻辑运算符练习
    c
    #include <stdio.h>

int main() {
int arr[] = {1, -2, 3, -4, 5};
int size = sizeof(arr) / sizeof(arr[0]);
int hasPositive = 0, hasNegative = 0;

for (int i = 0; i < size; i++) {
    if (arr[i] > 0) hasPositive = 1;
    if (arr[i] < 0) hasNegative = 1;
}

if (hasPositive && hasNegative) {
    printf("数组中同时存在正数和负数。\n");
} else {
    printf("数组中不存在同时为正数和负数的情况。\n");
}

return 0;

}
2. 位运算符练习
c
#include <stdio.h>

int main() {
int num;
printf(“请输入一个整数:”);
scanf(“%d”, &num);

int bitwiseNot = ~num;
printf("按位取反的结果为:%d\n", bitwiseNot);

return 0;

}
3. 赋值运算符练习
c
#include <stdio.h>

int main() {
int a = 10, b = 5;

// 计算和
a += b;
printf("和:%d\n", a);

// 计算差
a -= b;
printf("差:%d\n", a);

// 计算积
a *= b;
printf("积:%d\n", a);

// 计算商
a /= b;
printf("商:%d\n", a);

return 0;

}
4. 三元运算符练习
c
#include <stdio.h>

int main() {
int score;
printf(“请输入分数:”);
scanf(“%d”, &score);

// 使用三元运算符判断分数等级
printf("分数等级:%s\n", score >= 90 ? "优秀" : score >= 60 ? "良好" : "及格");

return 0;

}
5. 分支控制练习
使用if-else
c
#include <stdio.h>

int main() {
int month;
printf(“请输入月份(1-12):”);
scanf(“%d”, &month);

if (month == 1 || month == 2 || month == 12) {
    printf("冬季\n");
} else if (month == 3 || month == 4 || month == 5) {
    printf("春季\n");
} else if (month == 6 || month == 7 || month == 8) {
    printf("夏季\n");
} else if (month == 9 || month == 10 || month == 11) {
    printf("秋季\n");
} else {
    printf("输入的月份不正确\n");
}

return 0;

}
使用switch-case
c
#include <stdio.h>

int main() {
int week;
printf(“请输入星期数(1-7):”);
scanf(“%d”, &week);

switch (week) {
    case 1:
        printf("星期一\n");
        break;
    case 2:
        printf("星期二\n");
        break;
    case 3:
        printf("星期三\n");
        break;
    case 4:
        printf("星期四\n");
        break;
    case 5:
        printf("星期五\n");
        break;
    case 6:
        printf("星期六\n");
        break;
    case 7:
        printf("星期日\n");
        break;
    default:
        printf("输入的星期数不正确\n");
}

return 0;

}
这些练习题涵盖了基础的逻辑、位、赋值运算符以及分支控制语句的使用。您可以将这些代码复制到您的C语言开发环境中,编译并运行它们。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部