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;}