目录
系列文章目录
C语言程序设计三大基本结构之顺序结构
●由于作者水平有限,文章难免存在谬误之处,敬请读者斧正,俚语成篇,恳望指教!
文章目录
前言
一,C语句
二,数据结构的输入与输出
1.putchar函数
2.getchar函数
3.printf函数
4.scanf函数
前言
一,C语句
二、数据的输入和输出
●由于作者水平有限,文章难免存在谬误之处,敬请读者斧正,俚语成篇,恳望指教!
系列文章目录
C语言程序设计三大基本结构之顺序结构
●由于作者水平有限,文章难免存在谬误之处,敬请读者斧正,俚语成篇,恳望指教!
文章目录
- 系列文章目录
-
前言
-
一,C语句
-
二,数据结构的输入与输出
-
1.putchar函数
-
2.getchar函数
-
3.printf函数
-
4.scanf函数
-
参考文献:C语言程序设计 宋万干,肖建于编著 人民邮电出版社
前言
背景:1964年,计算机科学家Bohm和Jaeopini证明了任何简单或复杂的算法都可以由顺序结构,选择结构和循环结构这三种基本结构组成。因此,这三种基本结构成为结构程序化设计必须采用的结构。顺序结构按照语句的书写顺序逐条执行。
一,C语句
1.什么是C语句?
语句是类似于自然语言中的句子,是构成C程序的基本成分。程序的功能是由执行语句实现的,
在C语言中,分号是结束符。
2.C语言中基本语句的分类:
(1)简单语句 形式:
①表达式语句:由表达式加上分号 ";" 组成,执行表达式语句就是计算表达式的值
例如:x=y; 赋值语句
++i;实现i的自增
②函数调用语句:由函数名,实际参数加上分号组成
例如:printf("Hello,World!"); 这是一个调用库函数,输出字符串的语句。
③控制语句:控制语句用于控制程序的流程,以实现程序的各种结构方式。
C语言有九种控制语句,分为三类:
条件判断语句:if语句,switch语句
循环执行语句:do while语句,while语句,for语句
转向语句:break语句,continue语句,return语句,goto语句(少见,慎用)
(2)复合语句 把多个语句用一对花括号括起来的一个语句
一般形式:{语句1;语句2;……语句n;}
(3)空语句 只由一个分号";"组成,什么也不执行
C语言没有提供输入输出语句,所有的输入输出都是通过调用标准库函数完成,函数原型都在“stdio.h”中。
二、数据的输入和输出
1.putchar函数
putchar()是字符输出函数,用于在显示器输出一个字符
例如:putchar(x) ; 代表输出字符变量x的值
//例如:先后输出Bit三个字符
#include<stdio.h>
int main()
{
char a='B',b='i',c='t';
putchar(a);
putchar(b);
putchar(c);
putchar('\n');
return 0;
}
2.getchar函数
getchar()函数用于从键盘上输入一个字符,通常把输入的字符赋予一个字符变量,构成赋值语句,例如:a=getchar();
说明:
(1)getchar()函数只能接收单个字符,输入数字也按字符处理。输入多于一个字符时,只接收第一个字符
(2)getchar()函数是无参函数,后面的括号不能省略
(3)在输入时,空格,回车键都作为字符读入,且只在输入回车键时读入才开始执行
//从键盘输入Bit三个字符,输入到屏幕
#include<stdio.h>
int main()
{
char a, b, c;
a = getchar();
b = getchar();
c = getchar();
putchar(a);
putchar(b);
putchar(c);
putchar('\n');
return 0;
}
3.printf函数
printf函数称为格式输出函数,用于按照用户指定的格式,把指定的数据输出到显示器上
例如:printf("%d%f",a,b)
printf函数的格式控制字符串
(1)格式说明符:以“%”开头,后面跟有各种格式字符,以说明输出数据的类型、形式、长度、小数位数等。
格式说明的一般形式为: %[修饰符]格式字符
printf( ) 常用格式字符一览表
格式字符 | 意 义 |
d,i | 以十进制形式输出带符号整数(正数不输出符号) |
o | 以八进制形式输出无符号整数(不输出前缀0) |
x,X | 以十六进制形式输出无符号整数(不输出前缀0x) |
u | 以十进制形式输出无符号整数 |
f | 以小数形式输出单、双精度实数 |
e,E | 以指数形式输出单、双精度实数 |
g,G | 以%f、%e中较短的输出宽度输出单、双精度实数 |
c | 输出单个字符 |
s | 输出字符串 |
在格式说明字段中,可以根据具体情况使用修饰符。前缀修饰符的位置一般紧靠”%”。
前缀修饰符表
修饰符 | 意 义 |
- | 结果左对齐,右边填空格 |
m | 数据最小宽度 |
n | 对实数,表示输出n位小数;对字符串,表示截取字符个数。 |
L,l | 表示按长整型输出 |
(2)转义字符:用于描述键盘上没有的字符或者某个具有复合功能的控制字符,如’\n’。
(3)普通字符:除了格式说明符和转义字符之外的其他字符,原样输出,在显示中起提示作用。
printf函数的输出形式
(1) %ld, %lo, %lx, %lu的形式
%ld:以十进制输出长整型数据。
%lo:以八进制输出长整型数据。
%lx:以十六进制输出长整型数据。
%lu:输出无符号长整型数据。
(2)%md, %mo, %mx, %mu, , %me, %ms的形式 m是一个整数,表示输出数据所占的列数。如果数据位数小于m,则数据的左端补以(m-数据的实际长度)个空格;如果数据位数大于m,则按实际位数输出。%-md的形式则在数据的右边补空格。
(3)%mf ,%m.nf形式 %m.nf表示指定输出的数据共占m列,其中小数占n列。当n大于输出数据的实际小数位数时,小数部分按照实际数据输出,当n小于输出数据的实际小数位数时,只输出n位小数,对第n+1位进行四舍五入。
(4) %me,%m.ne,%-m.ne形式 都是以指数形式输出实数的形式。其中%me是以规范化指数形式输出:小数点前必须有且只有1位非零数字,小数部分占6位,指数部分占5位,小数点占1位,共13位。m、n和“-”字符含义与前相同。
(5)%s, %ms, %-ms, %m.ns,%-m.ns形式
%[-]ms:输出的字符串占m列。如果字符串本身长度大于m,则将字符串按实际长度全部输出。如果字符串长度小于m,则左端(右端)补空格。
%m.ns : 输出占m列,只取字符串中左端n个字符。如果n小于m,则在m列范围内,右对齐,左补空格。
%-m.ns: m、n含义同上,n个字符输出在m列的左侧,右补空格 。如果n>m, 则m自动取n值,即保证n个字符正常输出。
使用printf函数应注意的问题
(1)格式控制字符串和各输出项在数量和类型上应一一对应。
(2)除了X、G、E外,其它格式字符必须小写。如%d不能写成%D。
(3)当输出表列中有多个表达式时,不同的编译系统对输出表列的求值顺序不一定相同,可以从左向右,也可以从右向左。Visual C++按照从右向左的求值顺序。
//printf()函数输出示例
#include<stdio.h>
int main()
{
printf("Hello,World!\n");
return 0;
}
4.scanf函数
scanf()函数称为格式输入函数,用于按照用户指定的格式从键盘把数据输入到指定的变量中
例如:scanf("%d%f",&a,&b)
scanf ()函数称为格式输入函数,即按用户指定的格式从输入设备(键盘)把数据输入到指定的变量中。
其一般形式为: scanf (“格式控制字符串”,地址表列);
scanf()与printf()既有相似之处,也有不同: scanf ()函数的格式控制字符含义与printf()函数相同;地址表列由若干个地址组成,地址是由地址运算符“&”后跟变量名组成的,代表每一个变量在内存中的地址。
scanf ()函数常用的格式说明
(1)格式说明符的一般形式为: %[修饰符]格式字符
scanf ()与printf()的基本格式相似
scanf()常用格式字符一览表
格式字符 | 意 义 |
d,i | 以十进制形式输入带符号整数 |
o | 以八进制形式输入无符号整数 |
x,X | 以十六进制形式输入无符号整数 |
u | 以十进制形式输入无符号整数 |
f | 以小数或者指数形式输入单、双精度实数 |
e,E ,g,G | 与f作用相同 |
c | 输入单个字符 |
s | 输入字符串,将其送入字符数组中,在输入时以非空字符开始,以第一个空白字符结束,字符串以串结束标志’\0’作为最后一个字符 |
在格式说明字段中,可以根据具体情况使用修饰符。前缀修饰符的位置一般紧靠”%”。
前缀修饰符表
修饰符 | 意义 |
* | 表示该输入项读入后不赋予相应的变量,即跳过该输入值 |
h | 表示按短整型输入 |
l | 表示按长整型输入 |
m | 用十进制整数指定输入的宽度(即字符数) |
(2)空白字符:包括空格、跳格和回车键。通常作为相邻两个输入数据的缺省分隔符。
(3)普通字符:除了格式说明符和转义字符之外的其他字符,在输入有效数据时,必须原样输入。
使用scanf()函数需要注意的几点问题:
(1)scanf()中要求给出变量地址。
(2)scanf()函数中没有精度控制。
(3)在输入多个数值时,若格式控制字符中相邻两个格式指定符没有指定分隔符,则可用空格,跳格或回车作间隔。
(4)在输入字符时,若格式控制串中没有非格式字符,则认为所有输入的字符均为有效字符。 另外,如果在格式控制中加入空格作为间隔,即scanf("%c%c%c",&a,&b,&c);则输入def能实现正确赋值。
(5)如输入的数据类型与输出的类型不一致时,虽然编译能够通过,但结果不正确。
#define _CRT_SECURE_NO_WARNINGS
//输入函数示例
#include<stdio.h>
int main()
{
float a;
printf("input a number\n");
scanf("%f", &a);
printf("%f", a);
}
●由于作者水平有限,文章难免存在谬误之处,敬请读者斧正,俚语成篇,恳望指教!