程序设计基础知识
1.程序就是系统可以识别的有序指令
2.计算机基本结构{存储器+CPU}: 存储器是保存信息的记忆设备,分为主存储器,外存储器,寄存器。
3.主存储器:是内存,程序、待处理的数据及处理的结果都在主存储器中,内存以字节为单位对存储单元按顺序进行编址,内存读写速度快,只能在加电时存储数据。
4.外存储器: 是长期保存数据的大容量存储器,读写速度慢于内存,可以在不加电的情况下保存数据。
5.寄存器: Cup内部的高速存储器,速度快数目少,用来保存指令执行过程中临时存放的寄存器操作数及中间(最终)操作结果。
6.CPU中央处理器: 超大规模的集成电路,功能是解释计算机指令,及处理计算机软件中的数据
7.存储器存放数据,CPU处理数据
8.程序执行过程: 磁盘->内存->读取内存
9.程序设计语言包括: 机器、汇编、高级、第四代、自然语言
10.数据:是计算机程序处理的对象,可以是整数、实数、字符、也可以是图像、声音等的编码表示
11.计算机数据分为数值(4种进制)和非数值数据(ASCII)
Linux下c语言开发环境
1.关键字:例如 const(定义常量),if,typedef,static,extern,volatile(里面的所有变量都会变),size of
2.标识符由字母、数字、下划线组成,用于定义宏名、变量名、函数名、自定义类型名
3.Linux+C方向:Linux内核开发+基于Linux嵌入式开发
4.gcc与vi
Linux基础
1.Linux的操作系统: 命令解释、进程管理、内存管理、I/O操作
和文件管理
2.Linux系统结构:硬件(最里面),内核,shell,外部应用程序(最外面)
3.Linux目录结构 ->根目录-> bin: 系统工具二进制可执行命令 sbin:超级管理命令,这里存放的是系统管理员使用的管理程序 boot:内核及其他系统启动所需文件 tmp:公共的临时文件存储点 root:系统管理员的主目录 usr:用户目录
Var:某些大文件的溢出区 opt:安装大的应用程序 lost+found:系统非正常关机留下的文件 proc:虚拟的目录,可直接访问这个目录来获取系统信息
3.1*etc:系统管理和配置文件所在目录 包括以下几点
3.1.1启动引导程序/etc/lilo.conf /etc/grub.cof 多系统引导时可设置默认的启动系统
3.1.2控制启动模式/etc/inittab(图形文本登录)
3.1.3 文件系统的配置 /etc/fstab
3.1.4环境变量配置 /etc/profile 修改path
3.1 .5tp配置文件 /etc/ftp*
3.1 .6web服务器配置文件 /etc/httpd
3.1.7ssh配置文件 /etc/ssh*
3.2*Home:用户默认的主目录 /home/username useradd username添加新用户
Password username添加密码 /etc/passwd:系统能识别的用户清单,纯文本显示加密了的口令,普通用户可读 /etc/shadow:超级用户才能读,用于保护加密口令的安全
3.3 *lib :系统所有的可用库,例如c程序库 /usr/lib/应用程序使用的库,例如mysql的API
3.4 系统提供这个目录是让用户临时挂在其他文件系统
3.4.1光驱的装载: mount -t iso9660/dev/cdrom
/mnt/cdrom mount -t 文件类型 设备类型 挂在目录
3.4.2 卸载 umount/mnt/cdrom
3.4.3 软驱的使用 mount -t fstype /dev/fd0/mnt/floppy
3.5 dev :主要存放设备文件 b--block块设备 c--character字符设备
Linux的硬件设备对应文件 光驱设备 /dev/cdrom 软驱 /dev/fd0 ls -l 命令可查看设备类型,看看首字符,b or c
4.进程打开的是正在运行的程序
5.看到的程序同时运行只是一个假象(每个时间只执行一个程序)
6.Linux 多用户 稳定,性能好,开源安全 uinux:银行用户、石油 Windows 只能一个人登这个系统
7.Bin 目录下为二进制可执行程序,sbin 超级用户才能执行的命令
8.
常用的Linux 命令
1.cd /home/ 进入home 目录,cd进入目录
2.cd/进入根目录,根目录是最原始的目录
3.Cd..回到父目录,cd.当前目录 // .目录本身 ..当前目录
4.Mkdir 创建文件 touch 创建文件夹
5. ./执行
6.清屏 ctrl+l 或 clear
7.rm +rf +文件夹名 删除文件夹
8.man +代码 查阅项目
9.syslog()日志文件 cd/var/log/日志
10.ls -l 查看文件属性
11.df -h 查看磁盘
12. Pwd 查看目录(绝对路径) cd 切换目录(更改当前目录) which pwd 查看在哪个目录下
13.Cat 显示文件内容并输出 less 往下翻,more+文件名 往上翻
14. Cp 拷贝文件 cp -r 拷贝文件夹
15.Mv 剪切文件/文件夹
16.Chmod 设置权限
17.Find / -name hello.c 以hello.c的名字查找
18.Ping 查看网络互通
19.Shutdown -h now 关机 shutdown -r now重启
20.Ls -a 查看隐藏文件夹
21.dd 删除当前行 4dd 删除4行
22.Ps -ef 查进程号
23.Kill杀死进程
基本数据类型
1.常用单位 位(最小的存储单位,值为0或1),字节(几乎对所有机器一个字节8位,一个字节256种0,1组合,这些组合可表示0~255或者一组字符),字(对于一种给定的计算机设计,字是自然的存储单位。对于8位微机,一个字正好有8位。对于16位机,一个字的大小为16位。32位机中的字是32位)
2.数据存储方式 : 整数(以二进制数进行存储,例如整数7的二进制表示为111,在8位的字节中,存储它需要前5位置0,后3位置1)浮点数( 浮点数表示法将一个数分为小数部分和指数部分并分别存储)
3. C语言基本数据类型
3.1 基本类型
3.1.1 字符型 char
3.1.2 数值型(整型{int,short,long,unsigned},实型{float,double(双精度)})*int型有符号整数,一般int型存储在计算机的一个字中
3.1.3*测试数据类型大小
#include <stdio.h>
int main()
{
printf (“long size is %d\n”,size of(long));
return 0;
}
3.1.4 取值范围
类型 标识符名字 取值范围
char 字符型 ASCII字符代码
unsigned char 无符号字符型 0至255
signed char 有符号字符型 -27 ~ 27-1
int 整型 -231~ 231-1
unsigned int 无符号整型 0 ~ 216-1
signed int 有符号整型 同int
float 浮点 10-38~1038
double 双精度型 10-308~10308
3.2构造类型{数组\机构体、共用体、枚举(enum)}
3.3指针类型
3.4空类型
4常量和变量
常量:程序在运行过程中其数值不能改变的量(直接常量(整形,实型,字符型,字符串),*符号常量(用标识符表示数据 例如#define 标识符 常量数据))
变量 :4.1变量的基本要素
变量名: 每一个变量都应有一个名字。//以字母或下划线开头,由数字、字母、下划线构成.
变量的数据类型:每一个变量都应具有一种数据类型(在定义时指定)内存中占据一定的存储空间 。
变量的值: 变量对应的存贮空间中所存放的数
4.2变量定义 给变量分配存储空间 例子:char a1;
4.3*变量初始化:给变量赋初值的过程 未赋初值的变量并不意味着该变量中没有数值,而只表明该变量中尚未定义特定的值
5变量类型(整形,实型(单精度实型提供7位有效数字,双精度实型提供15~16位有效数字),字符型)
6.运算符与表达式(算数运算符与算数表达式)
7数据输入与输出(getchar(),putchar(),printf(),scanf())
语句(基本+复合语句)
基本语句有以下几个方面
1.数据描述语句(定义与声明语句)
2.基本功能语句(表达式语句,空语句,函数调用语句)
3.流程控制语句{选择语句{if,if..else,if..else..if} ,多分支语句(switch),循环语句(while,do..while,for),转向语句(continue,break,return,goto)}
1日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。以下为4个嫌疑犯的供词。
A说:不是我。
B说:是C。
C说:是D。
D说:C在胡说
已知3个人说了真话,1个人说的是假话。现在请根据这些信息,写一个程序来确定到底谁是凶手
#include <stdio.h>
int main()
{
char killer ;
int sum = 0;
int i ;
for (i = 0; i <4; i++)
{
killer = 'A' + i;
sum = (killer != 'A') + (killer == 'C')+(killer == 'D') + (killer != 'D');
if (sum == 3)
{
printf("killer = %c\n",killer);
}
}
return 0;
}
2.题目:通过编程实现,统计0~n有多少个9
提示:n通过参数传入
#include <stdio.h>
int main()
{
int m;
scanf ("%d",&m);
int i;
int temp;
int count = 0;
for (i = 0; i < =m; i++)
{
temp = i;
while (temp)
{
if (temp % 9 == 0)
{
count++;
}
temp = temp / 10;
}
}
printf("count = %d\n",count);
return 0;
}