BNU-25硕信息学奥赛day5
2026.3.17
提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 2026.3.17
- 前言
- 一、printf的用法
- 1.直接输出
- 2.数字+d
- 3.%数字.数字+d
- 4.%-数字.数字d
- 5.%f&%s的用法
- 二、逻辑运算和逻辑表达式
- 1.逻辑运算
- 练习
- 2.布尔值
- 3.条件表达式
- 格式<表达式1>?<表达式2>:〈表达式3>
- 除此之外,还可以用三目运算符
- 总结
- printf函数的使用方法
- 逻辑运算与应用
- 布尔类型与运算
- 条件表达式(三目运算符)
前言
提示:这里可以添加本文要记录的大概内容:
今天学习printf、逻辑运算符、表达式以及三目运算符
完成几道练习题。
提示:以下是本篇文章正文内容,下面案例可供参考
一、printf的用法
printf是输出函数,比cout的用法更多
1.直接输出
#include<iostream>using namespace std;intmain(){intx=1024;printf("%d",x);//返回值1024return0;}2.数字+d
#include<iostream>using namespace std;intmain(){intx=1024;printf("%6d\n",x);//\n表示换行printf("000000");return0;}返回结果:
由此可知,%6d标识返回的宽度是六位,不够则要补齐!
3.%数字.数字+d
#include<iostream>using namespace std;intmain(){intx=1024;//printf("%6d\n",x);//\n表示换行printf("%6.5d\n",x);printf("000000");return0;}返回结果:
清晰可见的是,.5是要求显示五位,不足的用0占位!!
4.%-数字.数字d
#include<iostream>using namespace std;intmain(){intx=1024;printf("%-6d\n",x);printf("000000");return0;}返回结果:明显是左对齐了(加了-,左对齐)
5.%f&%s的用法
%f:输出浮点数
%s:输出字符串
用法和%d大同小异!
二、逻辑运算和逻辑表达式
1.逻辑运算
与:&&;或||;非!
与:全真才为真;
或:一个为真就是真
非:把真变成假;把假的变真
#include<iostream>using namespace std;intmain(){floatchinese,math;cout<<"请输入你的语文和数学成绩(用空格分隔!)"<<endl;cin>>chinese>>math;if(chinese>=90&&math>=90){cout<<"cool man~"<<"准备拿奖";}elsecout<<"keep fighting!"<<"再接再厉~";}表示的必须语文和数学成绩都为90及以上才能拿奖;
if在判断是,chinese>=90为真并且math>=90为真,才算是满足条件,执行cout语句1,否则执行语句2
或运算同理,如果一边为真即可拿奖;
练习
输入年份,判断是否是闰年?
#include<iostream>using namespace std;intmain(){intyear;cout<<"请输入你想验证是否为闰年的年份:"<<endl;cin>>year;if(year%400==0||(year%4==0&&year%100!=0)){cout<<year<<"是闰年!"<<endl;}elsecout<<year<<"不是闰年!";return0;}测试结果:
2.布尔值
布尔值,即bool,有两个值,一个为true【1】,一个为false【0】
代码如下(示例):
#include<iostream>using namespace std;intmain(){bool flag=true;//true的值为1;false的值为0,可以进行加减计算inta=4;intc;c=a+flag;cout<<c<<endl;return0;}返回结果:
3.条件表达式
格式<表达式1>?<表达式2>:〈表达式3>
三目运算符
运算规则:·计算表达式1的值
若1式值为真(或非0),则只计算2式,并将2式结果作为整个式子的结
果
若1式为假,则只计算3式,并将3式结果作为整个式子的结果
题目:输入大写字母转成对应的小写字母,小写字母转成大写字母
#include<bits/stdc++.h>using namespace std;intmain(){charc;cout<<"请输入你想转换的字符:"<<endl;cin>>c;if(c>='A'&&c<='Z'){c=c+32;}elsec=c-32;cout<<"对应的字符是:"<<c<<endl;return0;}运行结果:
除此之外,还可以用三目运算符
#include<bits/stdc++.h>using namespace std;intmain(){charc;cout<<"请输入你想转换的字符:"<<endl;cin>>c;//(c >= 'A'&& c<= 'Z' )?( c = c + 32): (c-= 32);c=(c>='A'&&c<='Z')?c+32:c-32;//两种写法都正确的!!cout<<"转换之后的字符为:"<<c<<endl;return0;}总结
提示:这里对文章进行总结:
printf函数的使用方法
printf是C语言中的格式化输出函数,比C++的cout功能更丰富。
直接输出变量值:
printf("%d",x);// 输出整型变量x的值控制输出宽度和填充:
printf("%6d\n",x);// 输出宽度为6位,不足用空格补齐printf("%6.5d\n",x);// 输出宽度6位,至少显示5位数字,不足用0填充对齐方式控制:
printf("%-6d\n",x);// 左对齐输出其他格式说明符:
- %f:输出浮点数
- %s:输出字符串
逻辑运算与应用
基本逻辑运算符:
- &&(与):两个条件都为真时返回真
- ||(或):任一条件为真时返回真
- !(非):对布尔值取反
闰年判断示例:
if(year%400==0||(year%4==0&&year%100!=0)){cout<<year<<"是闰年!";}布尔类型与运算
布尔值特点:
- true对应数值1
- false对应数值0
- 可参与算术运算
示例:
bool flag=true;intc=a+flag;// flag会被转换为1参与运算条件表达式(三目运算符)
语法格式:
condition?expr1:expr2大小写转换示例:
c=(c>='A'&&c<='Z')?c+32:c-32;等价于:
if(c>='A'&&c<='Z'){c=c+32;}else{c=c-32;}