C++初学教程二

2023-12-13 19:16:21

目录

一、格式化输出函数:

格式化输出函数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); 
	
}


?

文章来源:https://blog.csdn.net/weixin_64033212/article/details/134810304
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。