C++初学教程二

news2025/1/22 21:42:25

目录

一、格式化输出函数:

格式化输出函数printf()

 1、格式

2、程序示例:

3、格式字符 

4、举例

示例一:

示例二:

​示例三:

示例四: 

 示例五:

5、注意事项

二、格式化输入函数 

格式化输入函数scanf()

1、格式

(1)函数格式

(2)程序示例

2、举例

示例一:

示例二:

示例三: 

示例四:

3、注意事项

三、字符输入输出函数

字符输出函数putchar()

1、函数格式

2、程序示例

字符输入函数getchar()

1、函数格式

2、程序示例

3、练习

算法

1、算法的特性

2.评价算法的标准

3.算法的表示方法

顺序结构综合应用

1、控制结构

顺序结构:

题意:


一、格式化输出函数:

程序分为三个部分:

输入原始数据

进行计算处理

输出运行结果

格式化输出函数printf()

#include<stdio.h>
#define pi 3.14
int main()
{
	float s,c,r;
	printf("请输入半径:");
	scanf("%f",&r);
	s=pi*r*r;
	c=2*pi*r; 
	printf("圆的面积为:\n");
	printf("s=%f",s);
	printf("\n圆的周长为:\n");
	printf("c=%f",c);
}

 1、格式

(1)函数格式

printf(“字符串常量”);//将“字符串常量”显示输出

printf(“格式控制字符串”,输出项列表);//按“格式字符串”所规定的格式,将“输出项列表”中输出项的值输出到标准输出设备

2、程序示例:

3、格式字符 

4、举例

%d格式符——按实际位数输出十进制整数

%md——右对齐,m是一个数字。数据输出占m格,不足空格补齐

%-md——左对齐,m是一个数字

%ld、%hd——长整型、短整型

%u——无符号整型

示例一:
#include<stdio.h>
int main()
{
	int a=123,b=12345;
	printf("%d,%d\n",a,b);
	printf("%-4d,%4d\n",a,a);
	printf("%-4d,%4d\n",b,b); 
}

示例二:
#include<stdio.h>
int main()
{
	int a=97;
	printf("十进制:%d\n",a);
	printf("八进制:%o\n",a);
	printf("十六进制:%x,%X\n",a,a);
	printf("十六进制:%x,%X\n",10,10);
	printf("前导符:%#o,%#X\n",a,a);
}
 示例三:

%c:用来输出一个字符
%s:输出字符串
可在%和s中间插入m.n。
m可省略
n表示只输出字符串左边n个字符。

#include<stdio.h>
int main()
{
	char ch1='A',ch2='a';
	printf("%c\n",(ch1,ch2));
}

 

示例四: 
#include<stdio.h>
int main()
{
	printf("%8.3s\n","book");
	printf("%.3s\n","book");
}

 示例五:

%f格式符
以小数形式输出实数。
%m.nf——右对齐
%-m.nf——左对齐
m代表域宽,即共占m列
n代表保留n位小数
%lf
 

#include<stdio.h>
int main()
{
	float x=123.456;
	printf("x=%f|\n",x);
	printf("x=%6.1f|\n",x);
	printf("x=%-6.1f|\n",x);
	printf("x=%.1f|\n",x);
	printf("x=%e|\n",x);
}

5、注意事项

(1)输出格式中应注意在两个数之间留逗号、空格或回车,或者其他普通字符,以使输出显示更友好。

(2)格式控制符必须与输出项一一对应,且类型必须匹配。若格式控制符个数少于输出项个数,则多余的输出项不予输出;
(3)在格式控制中,还可以包含将按原样输出的任意合法字符(包括汉字和转义符)。
(4) 如果要输出%符号,可以在格式控制中用%%表示。
(5) 调用函数printf时, 其参数是从右至左进行处理。例如:

int k= 8;
printf("%d,%d\n",k,++k);
输出结果:9,9
 

二、格式化输入函数
 

格式化输入函数scanf()

1、格式

(1)函数格式

scanf(“格式控制字符串”,输入项地址列表);

格式控制字符串:

双引号括起来
包括“格式控制符”和“普通字符”
“格式控制符”由%开头
“普通字符”按原样输入。

输入项地址列表:

输入项变量地址组成
变量地址的表示方式为: &变量名
输入项个数与格式控制符个数相同
 

//按“格式控制字符串”所规定的格式,给“输入项地址列表”所对应的存储单元输入数据。

(2)程序示例

scanf("%d%d",&a,&b);

scanf("%f",&r);

scanf("%d,%d",&a,&b);

2、举例

示例一:

输入数值数据:
输入整数或实数时,输入的数据之间必须用空格、回车符、制表符(tab键)等间隔符隔开。

示例二:

2)输入字符型数据%c:
输入字符时,空格字符和转义字符中的字符都作为有效字符输入。因此在输入字符数据之前不需要插入间隔符。

示例三: 

3)指定输入数据所占的宽度。在格式字符前加入一个正整数指定输入数据所占的宽度。

示例四:

4)跳过某个输入数据
在%和格式字符之间加入“*”号,作用是跳过对应的输入数据。

3、注意事项

1、格式控制符必须与输入项一一对应
若格式控制符个数少于输入项个数,则多余的输入项将无法得到正确的输入值;若格式控制符个数多于输入项个数,多余的数据作废。
2、当输入的数据少于输入项时,运行程序将等待输入,直到满足要求为止。
 

三、字符输入输出函数

字符输出函数putchar()

1、函数格式

putchar ( ch ); /I在标准输出设备上输出一个字符

ch代表整型或字符型的常量、变量或表达式(不包括实型)

2、程序示例

putchar('A');                     //输出字符'A'

putchar(\101');                 //101八进制转十进制输出65,输 出字符'A'

putchar("a'-32);               //输出字符'A'

putchar(65);                    //输 出字符'A'

int ch=65;putchar(ch);     //输 出字符'A'

字符输入函数getchar()

1、函数格式


getchar ( ); 在标准输入缓冲区中读取一个字符。

参数为空

2、程序示例


char ch; .
ch=getchar( );
putchar(ch);

putchar(getchar());
/将getchar( )读入的字符直接用putchar()输出
 

3、练习

下面程序功能为:输入一个A~Z之间的字母,输出与之左右相邻的两个字母,根据注释信息将程序填写完整。

#include<stdio.h>
int main()
{
	char ss=getchar();  //调用getchar()输入一个字母,并赋值给ss 
	putchar(ss-1);     //调用putchar()输出与ss左相邻的字母 
	putchar(ss+1);     //调用putchar()输出与ss右相邻的字母 
}


算法

程序=数据结构+算法

算法是为解决一个问题而采取的方法和步骤,是程序的灵魂。

1、算法的特性

有穷性:一个算法应包含有限的操作步骤,而不能是无限的(不进入死循环)
确定性:算法中的每一个步骤都应当是确定的,对于每一个过程不能有二义性。
有0个或多个输入:所谓输入是指在执行算法时需要从外界取得必要的信息。
有1个或多个输出:算法的目的是为了求解,“解”就是输出。没有输出的算法是没有意义的。
有效性:算法的每个步骤都应当能有效执行,并能最终得到正确的结果。


2.评价算法的标准

①正确性
②可读性
③健壮性
④高效性


3.算法的表示方法


①自然语言
②流程图
③N-S流程图
④伪代码
⑤计算机语言

顺序结构综合应用

1、控制结构

三种基本的控制结构:顺序结构、选择结构、循环结构

顺序结构:

变量定义
数据输入
数据处理
数据输出

题意:

1.模拟ATM机取款操作,仅要求输入取款金额,输出“正在出钞提示。
答案简略版

#include<stdio.h>
int main()
{
	float a;
	scanf("%f",&a);
	printf("正在出钞"); 
}

2.从键盘输入一个大写字母,然后转换成小写字母输出。
答案简略版

#include<stdio.h>
int main()
{
	char zz;
	zz=getchar();
	putchar(zz+32);
}

#include<stdio.h>
int main()
{
	char zz,rr;
	scanf("%c",&zz);
	rr=zz+32;
	printf("%c",rr);
}

3.鸡兔同笼问题:有若干只鸡兔同在一个笼子里, 从上面数,有35命头,从下面数,有94只脚。问笼中各有几只鸡和几只兔?
 

错误记录:

我固执的觉得可以用总头=鸡头+兔头、总腿=鸡腿+兔腿解决,然而并不可以

粗看这不是对吗?腿数对不起来

右面的X还没有求出来

还是不对 

#include<stdio.h>
int main()
{
	//假设笼子里有x只鸡和y只兔子    
	//h头,f脚 
	int x,y,h,f;
	printf("请输入鸡和兔的总只数:");
	scanf("%d",&h);   //输入 
	printf("请输入鸡和兔的总腿数:");
	scanf("%d",&f);   //输入 
	y=(f-2*h)/2;  	//(总腿数-2*头数)/2=兔数 
	x=h-y;         //x+y=35     总头数减去兔子只数还剩鸡的只数 
	printf("鸡有:"); 
	printf("%d\n",x);
	printf("兔有:");
	printf("%d",y);
}

4.变量值互换:从键盘随机输入两个整数赋给变量x、y,且输出x、y,然后使x与y的值互换,再输出x、y

#include<stdio.h>
int main()
{
	int x,y,z;
	printf("请输入第一个数:");
	scanf("%d",&x);
	printf("请输入第二个数:");
	scanf("%d",&y);
	printf("%d%d\n",x,y);
	z=x,x=y,y=z;
	printf("两级反转:\n%d\n%d",x,y);
}



 

5.输入三角形的三边长,求三角形面积。

#include<stdio.h>
#include<math.h>
int main()
{
	float a,b,c,s,area;
	scanf("%f%f%f",&a,&b,&c);
	s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c)); //sqrt()求平方根的函数
	printf("a=%7.2f,b=%7.2f,c=%7.2f\n",a,b,c);
	printf("area=%8.3f\n",area); 
	
}


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1290009.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于springboot+vue篮球联盟管理系统源码

&#x1f345; 简介&#xff1a;500精品计算机源码学习 &#x1f345; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 文末获取源码 目录 一、以下学习内容欢迎交流&#xff1a; 二、文档资料截图&#xff1a; 三、项目技术栈 四、项目运行图 背景&#xff1a; 篮球运…

Chrome浏览器调整搜索标签页按钮位置

地址栏输入 chrome://flags 搜索 chrome-refresh-2023 第一项 修改为Enabled 标签搜索页按钮出现在chrome的左上角 修改为Default 标签搜索页按钮出现在chrome的右上角 修改完成后&#xff0c;点击Relaunch&#xff0c;重启浏览器&#xff0c;修改生效。

在发布应用程序时如何选择合适的分发方式?

大家好&#xff0c;我是咕噜-凯撒&#xff0c;在现代移动互联网的环境下&#xff0c;应用已经成为人们生活不可或缺的一部分&#xff0c;选择合适的分发方式对于应用的发展和成功来说至关重要。不同的分发方式有着自己的特点和优缺点&#xff0c;所以需要针对性地进行选择。下面…

2024王道考研计算机组成原理——存储系统

微信打开的时候会有一个人站在地球上&#xff0c;这个过程就是把程序从辅存转移到主存&#xff0c;数据只有调入主存当中才可以被CPU访问 cache&#xff1a;主存速度还是慢&#xff0c;为了进一步缓解CPU和主存之间的速度矛盾 在微信打视频聊天的时候&#xff0c;在这一段比较…

算法-03-排序-归并-快速排序

冒泡排序、插入排序、选择排序这三种排序算法&#xff0c;它们的时间复杂度都是O(n^2)&#xff0c;比较高&#xff0c;适合小规模数据的排序。如果数据量大&#xff0c;我们就需要使用到时间复杂度低的排序算法&#xff0c;归并排序和快速排序是复杂度为O(nlogn)的排序算法。 …

Image Segmentation Using Deep Learning: A Survey

论文标题&#xff1a;Image Segmentation Using Deep Learning:A Survey作者&#xff1a;发表日期&#xff1a;阅读日期 &#xff1a;研究背景&#xff1a;scene understanding,medical image analysis, robotic perception, video surveillance, augmented reality, and image…

【keepalived】高可用神器,实现应用的自动主备切换

目录 1.概述 2.配置 3.效果 4.keepalived主备切换原理 5.联系作者 1.概述 什么是keepalived&#xff1a; keepalived是一个基于VRRP协议来实现的服务高可用方案。VRRP协议&#xff0c;即虚拟路由冗余协议&#xff0c;其一开始提出来是为了解决局域网中配置静态网关出现单…

工业级路由器在智能交通系统(ITS)中的创新应用

智能交通系统&#xff08;ITS&#xff09;作为一种先进的交通管理与控制系统&#xff0c;旨在提高交通运输系统的效率、安全性和便捷性。随着科技的不断发展&#xff0c;智能交通系统已经成为城市交通管理的重要组成部分。而工业级路由器作为一种可靠的网络通信设备&#xff0c…

憋了个大招_群发版

大家好&#xff0c;我是良许。 憋了个大招&#xff0c;兄弟们&#xff01;我花了两个月的时间&#xff0c;搭建了一个自己的网站啦&#xff5e; 不卖关子&#xff0c;网站链接为&#xff1a; www.lxlinux.net/e/ 网站首页截图如下&#xff1a; 这个网站全部都是关于嵌入式及…

生物动力葡萄酒的快速指南

虽然我们大多数人都熟悉有机酿酒和农业&#xff0c;但围绕生物动力学仍有许多困惑和神秘。无论你是否完全陌生&#xff0c;或者你已经听到一些小道消息&#xff0c;我们在这里揭开这种独特的葡萄酒生产方法的神秘面纱。 生物动力葡萄酒就是一个更全面的有机酿酒过程&#xff0c…

详解nginx优势以及应用场景,实操编译安装和nginx版本平滑升级

目录 一、nginx的特点 那么nginx有哪些特点&#xff1f; 先讲nginx的优点&#xff1a; 缺点&#xff1a; 二、nginx与Apache的区别 三、nginx的应用场景 四、nginx为什么能支持高并发 五、为什么nginx不使用多线程 六、nginx的两种进程分别有什么作用 七、编译安装ngi…

web:[SUCTF 2019]CheckIn(一句话木马,.user.ini)

题目 页面显示 上传文件&#xff0c;随便上传一个文件试试 上传了一个文本&#xff0c;显示失败&#xff0c;不是图片 那就换图片马上传试试 不能包含<?,换一种写法&#xff0c;需要加上GIF89a&#xff0c;进行exif_imagetype绕过 上传成功 这里用.user.ini或者用post传参…

解决找不到msvcr120.dll无法执行代码的4个方法,快来看看解决方法!

在计算机使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中最常见的就是“缺少xxx.dll文件”。而msvcr120.dll就是其中之一。那么&#xff0c;msvcr120.dll到底是什么呢&#xff1f;它又有什么作用呢&#xff1f;本文将从多个方面对msvcr120.dll进行详细的解析…

CMMI5大成熟度等级和4大过程域

CMMI&#xff08;Capability Maturity Model Integration&#xff0c;能力成熟度模型集成&#xff09;模型系列是帮助组织改进其过程的最佳实践的集合。这些模型由来自产业界、政府以及软件工程研究所&#xff08;Software Engineering Institute&#xff0c; SEI&#xff09;的…

通用基座大模型是否可以超越领域专有大模型?微软最新论文证明这是可以的!微软最新动态Prompt技术——MedPrompt详解

本文来自DataLearnerAI官方网站&#xff1a;通用基座大模型是否可以超越领域专有大模型&#xff1f;微软最新论文证明这是可以的&#xff01;微软最新动态Prompt技术——MedPrompt详解 | 数据学习者官方网站(Datalearner)https://www.datalearner.com/blog/1051701842078748 在…

我不是DBA之慢SQL诊断方式

最近经常遇到技术开发跑来问我慢SQL优化相关工作&#xff0c;所以干脆出几篇SQL相关优化技术月报&#xff0c;我这里就以公司mysql一致的5.7版本来说明下。 在企业中慢SQL问题进场会遇到&#xff0c;尤其像我们这种ERP行业。 成熟的公司企业都会有晚上的慢SQL监控和预警机制。…

华为鸿蒙爆发真实力!原生应用媲美iOS,使用流畅度将提升20至30%

随着华为鸿蒙原生应用开发计划的启动&#xff0c;一场席卷全球的科技浪潮正在涌动。鸿蒙生态的快速发展&#xff0c;吸引了无数企业和开发者的关注&#xff0c;他们纷纷拥抱这个新兴的生态系统&#xff0c;共同构建一个更加繁荣的鸿蒙世界。 华为鸿蒙原生应用开发计划引爆全球…

IO / day04 作业

1.使用两个子进程完成两个文件的拷贝&#xff0c;子进程1拷贝前一半内容&#xff0c;子进程2拷贝后一半内容&#xff0c;父进程用于回收两个子进程的资源 代码 #include <myhead.h>int main(int argc, const char *argv[]) {if(argc<3){printf("input error\n&q…

Python代码将txt里面多行json字符串转成excel文件

python 代码 将txt里面的多行json字符串转成excel history.txt文件json代码样例 Json转换Excel代码 import json import pandas as pddef json_out(file_path,excel_path):all_list[]with open(file_path, "r", encodingutf-8) as f:for line in f:all_list.append…

Linux动态库常见问题

1.编译好库后&#xff0c;应用程序调用&#xff0c;路径明明写对了&#xff0c;但是编译的时候却显示xxx未定义 2.编译好了却说不能打开动态库&#xff0c;没有此文件 ./jrtplib_test: error while loading shared libraries: libjrtp.so.3.11.2: cannot open shared object f…