第3章 最简单的C程序设计

顺序程序设计
数据的表现形式及其运算

常量、变量、常变量、标识符

数据类型

整型、浮点型

  1. 整型数据的分类

    最基本的整型类型

    基本整型(int型):占2个或4个字节

    短整型(short int):VC++6.0中占2个字节

    长整型(long int):VC++6.0中占4个字节

    双长整型(long long int):C99新增的

  2. 整型变量的符号属性

    整型变量的值的范围包括负数到正数

    可以将变量定义为“无符号”类型

    扩充的整形类型:

    有符号基本整型 [signed] int;

    无符号基本整型 unsigned int;

    有符号短整型 [signed] short [int];

    无符号短整型 unsigned short [int];

    有符号长整型 [signed] long [int];

    无符号长整型 unsigned long [int]

    有符号双长整型 [signed] long long [int];

    无符号双长整型 unsigned long long [int]

字符型数据
  1. 字符与字符代码

    大多数系统采用ASCII字符集

    字母:A ~Z,a ~z

    数字:0~9

    专门符号:29个:! ” # & ‘ ( ) *等

    空格符:空格、水平制表符、换行等

    不能显示的字符:空(null)字符(以‘\0’表示)、警告(以‘\a’表示)、退格(以‘\b’表示)、回车(以‘\r’表示)等

字符’1’和整数1是不同的概念:

字符’1’只是代表一个形状为’1’的符号,在需要时按原样输出,在内存中以ASCII码形式存储,占1个字节

整数1是以整数存储方式(二进制补码方式)存储的,占2个或4个字节

  1. 字符变量

    用类型符char定义字符变量
浮点型数据

浮点型数据是用来表示具有小数点的实数

float型(单精度浮点型)

编译系统为float型变量分配4个字节

数值以规范化的二进制数指数形式存放

double型(双精度浮点型)

编译系统为double型变量分配8个字节

15位有效数字

long double(长双精度)型

运算符和表达式

1、基本的算术运算符

2、自增、自减运算符

3、算术表达式和运算符的优先级与结合性

4、不同类型数据间的混合运算

%c、%d

5、强制类型转换运算符

系统自动进行的类型转换
强制类型转换

6、C运算符

算术运算符 (+ - * / % ++ --)

关系运算符 (> < == >= <= !=)

逻辑运算符 (!&& ||)

位运算符 (<< >> ~ | ∧ &)

赋值运算符 (=及其扩展赋值运算符)

条件运算符 (?:)

逗号运算符 (,)

指针运算符 (*和&)

求字节数运算符 (sizeof)

强制类型转换运算符 ( (类型) )

成员运算符 (. 和 ->)

下标运算符 ([ ])

其他 (如函数调用运算符())

C语言的作用和分类

C语句分为以下5类:

控制语句: if、switch、for、while、do…while、continue、break、return、goto等

函数调用语句

表达式语句

空语句

复合语句

and 赋值语句(赋值运算符、复合的赋值运算符、赋值表达式、赋值过程中的类型转换、变量赋初值)、输入输出语句

//给出三角形的三边长,求三角形面积。

#include <stdio.h>
#include <math.h>
int main ( )
{ double a,b,c,s,area;
a=3.67;
b=5.43;
c=6.21;
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("a=%f\tb=%f\t%f\n",a,b,c);
printf("area=%f\n",area);
return 0;
}
求a*x^2+b*x+c = 0方程的根
▲>0 #include <stdio.h>
#include <math.h>
int main ( )
{double a,b,c,disc,x1,x2,p,q;
scanf("%lf%lf%lf",&a,&b,&c);
disc=b*b-4*a*c;
p=-b/(2.0*a);
q=sqrt(disc)/(2.0*a);
x1=p+q; x2=p-q;
printf("x1=%7.2f\nx2=%7.2f\n",x1,x2);
return 0;
}
有关数据输入输出的概念

(1) 所谓输入输出是以计算机主机为主体而言的

从计算机向输出设备(如显示器、打印机等)输出数据称为输出

从输入设备(如键盘、磁盘、光盘、扫描仪等)向计算机输入数据称为输入

(2) C语言本身不提供输入输出语句

输入和输出操作是由C标准函数库中的函数来实现的

printf和scanf不是C语言的关键字,而只是库函数的名字

putchar、getchar、puts、gets

(3) 在使用输入输出函数时,要在程序文件的开头用预编译指令

include <stdio.h> 或 #include ″stdio.h″

用printf函数输出数据:

printf(格式控制,输出表列)
例如:
printf(”i=%d,c=%c\n”,i,c); %d输出int型数据、%ld输出long型数据、%c输出一个字符、%s输出一个字符串、 %f输出实数用小数形式输出
不指定数据宽度和小数位数,用%f
指定数据宽度和小数位数。用%m.nf
输出的数据向左对齐,用%-m.nf
%s输出以指数形式输出实数
printf(”%e”,123.456);//1.234560 e+002
%m.ne
printf(”%13.2e”,123.456);// 1.23 e+002(前面有4个空格)
用scanf函数输入数据

scanf(格式控制,地址表列)
scanf("a=%f,b=%f,c=%f",&a,&b,&c);
scanf(”%f%f%f”,a,b,c); 错
scanf(”%f%f%f”,&a,&b,&c); 对 对于scanf("a=%f,b=%f,c=%f",&a,&b,&c);
1 3 2 错
a=1,b=3,c=2 对
a=1 b=3 c=2 错 对于scanf(”%c%c%c”,&c1,&c2,&c3);
abc 对
a b c 错
字符数据的输入输出
用putchar函数输出一个字符
putchar(c)
putchar(’\101’) (输出字符A)
putchar(’\’’) (输出单撇号字符’)
用getchar函数输入一个字符
getchar( ) 从键盘输入BOY三个字符,然后把它们输出到屏幕。
#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;
} #include <stdio.h>
int main ( )
{ putchar(getchar());
putchar(getchar());
putchar(getchar());
putchar('\n');
return 0;
}

【C语言】的更多相关文章

  1. c语言:<tchar.h>

    头文件“<tchar.h>”作用就是为了进行ASCII码和UNICODE(wide-character)码的头文件(该头文件由微软提供): 这样我们就可以使用TCHAR.H头文件中的定义的 ...

  2. 如何使用微软提供的TCHAR.H头文件?

    转载:https://www.cnblogs.com/flyingspark/archive/2012/03/16/2399788.html 如何使用微软提供的TCHAR.H头文件? 如果你现在写的代 ...

  3. C语言math.h库函数中atan与atan2的区别

    源: C语言math.h库函数中atan与atan2的区别 C语言中的atan和atan2

  4. c语言string.h和memory.h某些函数重复问题

    在C语言中,为了使用memset()函数,你是选择#include <string.h>还是<memory.h>?两个都可以,如何选择? <string.h>,标准 ...

  5. C语言string.h中常用字符函数介绍

    原文:http://www.cnblogs.com/xuwenmin888/archive/2013/05/03/3057883.html strcpy 函数名: strcpy 功 能: 拷贝一个字符 ...

  6. C语言ctype.h字符函数和字符串

    ctype.h存的是与字符相关的函数: 这些函数虽然不能处理整个字符串,但是可以处理字符串中的字符: ToUpper()函数,利用toupper()函数处理字符串中的每个字符,转换成大写: Punct ...

  7. C语言函数--H

    函数名: harderr 功 能: 建立一个硬件错误处理程序 用 法: void harderr(int (*fptr)()); 程序例: /*This program will trap disk ...

  8. C语言conio.h部分解释

    #include <conio.h> int getch(void);// 从控制台得到下一个字符,以ASCII值返回,并不在屏幕显示该字符 int getche(void);// 从控制 ...

  9. C语言——stdio.h

        int fgetc(FILE * stream); get character from stream 返回流中的一个字符,并以int的类型返回,如果碰到文件的结尾,或者一个错误发生,函数返回 ...

  10. C语言string.h常用函数总结

    void *memcpy(void *dest, const void *src, size_t n); 从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中. ...

随机推荐

  1. 使用mvn命令将pom和jar上传至nexus私服

    要将自定义的jar或者pom上传至nexus私服,需要配置maven的settings文件! 上传至nexus私服配置 1. settings配置 <!-- maven设置私服对应的信息:id. ...

  2. 在Java中,负数的绝对值竟然不一定是正数!!!

    绝对值是指一个数在数轴上所对应点到原点的距离,所以,在数学领域,正数的绝对值是这个数本身,负数的绝对值应该是他的相反数. 这几乎是每个人都知道的. 在Java中,想要获得有个数字的绝对值,可以使用ja ...

  3. GraphQL 概念入门

    GraphQL 概念入门 Restful is Great! But GraphQL is Better. -- My Humble Opinion. GraphQL will do to REST ...

  4. Dijkstra和堆优化

    Dijkstra算法 由于我之前一直记的迪杰斯特拉的翻译导致我把dijkstra写成了dijstra--所以下文#define dijstra dijkstra 我以后叫她迪杰克斯歘! Dijskra ...

  5. 【洛谷P4933 大师】动态规划

    题目描述 ljt12138首先建了n个特斯拉电磁塔,这些电塔排成一排,从左到右依次标号为1到n,第i个电塔的高度为h[i]. 建筑大师需要从中选出一些电塔,然后这些电塔就会缩到地下去.这时候,如果留在 ...

  6. atom之插件安装及相关

    1. simplified-chinese-menu 汉化软件 2. file-icons 加上文件图标 3. language-vue 加上vue语言支持 4. platformio-ide-ter ...

  7. k8s入门你至少需要会哪些

    body { margin: 0; overflow: auto; font: normal 14px Verdana; background: rgba(255, 255, 255, 1); pad ...

  8. CSocket,CAsyncSocket多线程退出时的一些注意事项(解决关闭WinSoket崩溃的问题)

    在最近修改代码时发现,如果使用了CSocket(CAsyncSocket)对象进行网络通信,在程序结束时关闭这个socket时程序就会崩溃.之前代码是好的,改出来的问题.对比代码和在网上找了些资料,确 ...

  9. 移动端 CPU 的深度学习模型推理性能优化——NCHW44 和 Record 原理方法详解

    用户实践系列,将收录 MegEngine 用户在框架实践过程中的心得体会文章,希望能够帮助有同样使用场景的小伙伴,更好地了解和使用 MegEngine ~ 作者:王雷 | 旷视科技 研发工程师 背景 ...

  10. (转)Python爬虫--通用框架

    转自https://blog.csdn.net/m0_37903789/article/details/74935906 前言: 相信不少写过Python爬虫的小伙伴,都应该有和笔者一样的经历吧只要确 ...