C语言 第一章 C语言简介
一、C语言介绍
C是一种通用的编程语言,广泛用于系统软件与应用软件的开发。于1969年至1973年间,为了移植与开发UNIX操作系统,由丹尼斯·里奇与肯·汤普逊,以B语言为基础,在贝尔实验室设计、开发出来。
C语言具有高效、灵活、功能丰富、表达力强和较高的可移植性等特点,在程序员中备受青睐,成为最近25年使用最为广泛的编程语言[2]。目前,C语言编译器普遍存在于各种不同的操作系统中,例如Microsoft Windows, Mac OS X, Linux, Unix等。C语言的设计影响了众多后来的编程语言,例如C++、Objective-C、Java、C#等。
二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言订定了一套完整的国际标准语法,称为ANSI C,作为C语言的标准。二十世纪八十年代至今的有关程序开发工具,一般都支持匹配ANSI C的语法。
二、C语言特点
C语言是一个有结构化程序设计、具有变量作用域(variable scope)以及递归功能的过程式语言。
C语言传递参数均是以值传递(pass by value),另外也可以传递指针(a pointer passed by value)。
不同的变量类型可以用结构体(struct)组合在一起。
只有32个保留字(reserved keywords),使变量、函数命名有更多弹性。
部分的变量类型可以转换,例如整型和字符型变量。
通过指针(pointer),C语言可以容易的对内存进行低级控制。
编译预处理(preprocessor)让C语言的编译更具有弹性。
三、Hello World
#include "stdio.h"
void main()
{
printf("Hello World!");
}
四、转义符
//单行注释 /*
1、多行注释、单行注释
2、C语言是由函数组成 函数名()
*/ //3、包含头文件,printf函数处在stdio.h
#include "stdio.h" //4、定义主函数,有且仅有一个,是程序的入口
void main()
{
//5、向屏幕输出信息,调用函数
printf("Hello World!\n"); //6、转义符
//\n 转行
//\t 制表位
//\" 双引号
//\' 单引号
//\b 退格
//\a 蜂鸣
printf("张果老师说\t\t");
printf("\"Hello S1SR139!\'");
printf("\a\a\a");
}
五、占位符
#include "stdio.h"
void main()
{
/**
%c 单个字符
%d 十进制整数
%f 十进制浮点数
%o 八进制数
%s 字符串
%u 无符号十进制数
%x 十六进制数
%% 输出百分号%
一个格式说明可以带有几个修饰符,用来指定显示宽度,小数尾书及左对齐等:
- 左对齐
+ 在一个带符号数前加"+"或"-"号
0 域宽用前导零来填充,而不是用空白符
*/ printf("%10s%s的成绩是%lf分,全班第%d名,性别%c。\n","","张3",98.5,,'M'); printf("%10s\n","Hello");
printf("%10s\n","Good");
printf("%10s\n","Boy");
}
六、俄罗斯方块游戏
game.cpp C++代码如下:
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<time.h>
#include<conio.h> #define MOD 28
#define SIZE_N 19
#define SIZE_M 12 int cur_x,cur_y;
int score,mark,next,map[SIZE_N][SIZE_M],Gamespeed=; int shape[][]={
{,-,,-,,}, {,,,,,}, {-,,,,,}, {,-,-,,-,},
{,-,,,-,}, {,,,,-,}, {,,,-,,}, {,,-,,,-},
{-,,,,,}, {,-,,,,}, {-,,,-,,-}, {-,-,-,,,},
{-,,,,,}, {,,,-,,}, {-,,,,,}, {,,,-,,},
{-,,,-,,-}, {-,,-,,,}, {,,,,,}, {,-,,,,},
{,,,,,}, {,-,,,,-}, {-,,,-,-,-}, {-,,-,,,},
{,,,,,}, {,,,,,}, {,-,,-,,-}, {-,,-,,-,}
}; void gotoxy(int x,int y){
COORD c;
c.X=x-; c.Y=y-;
SetConsoleCursorPosition (GetStdHandle(STD_OUTPUT_HANDLE), c);
}
void Gameover(){
int i,j,flag=;
for(j=;j<SIZE_M-;j++){
if(map[][j]!=){
flag=;break;
}
}
if(flag==){
for(i=;i<SIZE_N-;i++){
gotoxy(,i+);
for(j=;j<SIZE_M-;j++){
printf("□");
}puts("");
}
gotoxy(,);
printf("GAME OVER!");
gotoxy(,SIZE_N+);
exit();
}
}
void ShowMap(int id){
int i,j;
gotoxy(,);
if(id!=-){
for(i=;i<SIZE_N;i++){
for(j=;j<SIZE_M;j++){
if(i==&&j== || i==&&j==SIZE_M- || j==&&i==SIZE_N- || j==SIZE_M-&&i==SIZE_N-)printf(" ");
else if(i== || i==SIZE_N-)printf("--");
else if(j== || j==SIZE_M-)printf("|");
else if(map[i][j]==) printf("■");
else if(i==cur_x+shape[id][] && j==cur_y+shape[id][] ||
i==cur_x+shape[id][] && j==cur_y+shape[id][] ||
i==cur_x+shape[id][] && j==cur_y+shape[id][] ||
i==cur_x && j==cur_y)
printf("■");
else if(map[i][j]==) printf(" ");
}
if(i==)printf(" 下一个 :");
if(i==)printf(" 等分 : %d",score);
if(i==)printf(" 速度 : %d",score/+);
puts("");
}
}
else {
mark=;
for(i=;i<SIZE_N;i++){
for(j=;j<SIZE_M;j++){
if(i==&&j== || i==&&j==SIZE_M- || j==&&i==SIZE_N- || j==SIZE_M-&&i==SIZE_N-)printf(" ");
else if(i== || i==SIZE_N-)printf("--");
else if(j== || j==SIZE_M-)printf("|");
else if(map[i][j]==) printf("■");
else if(map[i][j]==) printf(" ");
}
if(i==)printf(" next:");
if(i==)printf(" score : %d",score);
if(i==)printf(" speed : %d",score/+);
puts("");
}
} gotoxy(,); printf(" ");
for(i=;i<;i=i+){
gotoxy(+*shape[id][i+],+shape[id][i]); printf(" ");
}
gotoxy(,); printf("■");
for(i=;i<;i=i+){
gotoxy(+*shape[next][i+],+shape[next][i]); printf("■");
}
Sleep(Gamespeed);
} void init(int id){
int i,j;
memset(map,,sizeof(map));
for(i=;i<SIZE_N;i++){
for(j=;j<SIZE_M;j++)
if(i==SIZE_N- || j== || j==SIZE_M-)
map[i][j]=-;
}
cur_x=; cur_y=;
ShowMap(id);
} int judge_in(int x,int y,int id){
int i;
if(map[x][y]!=)return ;
for(i=;i<;i=i+){
if(map[ x+shape[id][i] ][ y+shape[id][i+] ]!=)return ;
}return ;
} void fun_score(){
int i,j,ii,jj;
for(i=;i<SIZE_N-;i++){
int flag=;
for(j=;j<SIZE_M-;j++){
if(map[i][j]!=){ flag=;break; }
}
if(flag==){
int k=;
while(k--){
gotoxy(,i+);
for(ii=;ii<SIZE_M-;ii++){
if(map[i][ii]==){
if(k%==)printf(" ");
else printf("■");
}
}Sleep();
}
for(ii=i;ii>;ii--){
for(jj=;jj<SIZE_M-;jj++) map[ii][jj]=map[ii-][jj];
}
ShowMap(-);
score+=;
if(score%== && score!=)Gamespeed-=;
}
}
} int main(){
int i,id,set=; srand(time(NULL));
id=rand()%MOD; id=(id+MOD)%MOD;
next=rand()%MOD; next=(next+MOD)%MOD; init(id); while(){
Here: mark=;
if(set==){
id=next;
next=rand()%MOD; next=(next+MOD)%MOD;
cur_x=;cur_y=;
set=;
} while(!kbhit()){
Gameover();
if(judge_in(cur_x+,cur_y,id)==) cur_x++;
else {
map[cur_x][cur_y]=;
for(i=;i<;i=i+)
map[ cur_x+shape[id][i] ][ cur_y+shape[id][i+] ]=;
fun_score();
set=;
}
if(mark!=)ShowMap(id);
goto Here;
} char key;
key=getch(); if(key==){
int tmp=id;
id++;
if( id%== && id!= )id=id-;
if(judge_in(cur_x,cur_y,id)!=)id=tmp;
}
else if(key== && judge_in(cur_x+,cur_y,id)==)cur_x++;
else if(key== && judge_in(cur_x,cur_y-,id)==)cur_y--;
else if(key== && judge_in(cur_x,cur_y+,id)==)cur_y++;
else if(key==){gotoxy(,SIZE_N+);exit();}
}
getch();
return ;
}
七、文件下载
帮助与示例点击下载
开发工具点击下载
C语言 第一章 C语言简介的更多相关文章
- 第一章.C语言简介
C语言第一章 C语言简介 目录 一.C语言介绍 二.C语言特点 三.Hello World 四.转义符 五.占位符 六.俄罗斯方块游戏 七.文件下载 一.C语言介绍 C是一种通用的编程语言,广泛用 ...
- 第一章C语言简介及输出函数 上机部分
第一章C语言简介及输出函数 上机1 #include "stdio.h" void main() { printf("南方学院,你好!\n"); printf( ...
- 第一章. ActionScript 语言基础
第一章. ActionScript 语言基础 1.0. ActionScript 3.0 Cookbook 概述 1.1. 新建一个 ActionScript project 1.2. 自己定义应用程 ...
- javaSE习题 第一章 JAVA语言概述
转眼就开学了,正式在学校学习SE部分,由于暑假放视频过了一遍,略感觉轻松,今天开始,博客将会记录我的课本习题,主要以文字和代码的形式展现,一是把SE基础加强一下,二是课本中有很多知识是视频中没有的,做 ...
- Linux内核分析——第一章 Linux内核简介
第一章 Linux内核简介 一.Unix的历史 1.Unix系统成为一个强大.健壮和稳定的操作系统的根本原因: (1)简洁 (2)在Unix中,很多东西都被当做文件对待.这种抽象使对数据和对设备的 ...
- 第一章:Druid简介
第一章:Druid简介 声明 公司的项目中用到了Druid(不是阿里的连接池),由于网上没有中文的文档,所以只好阅读官方文档.本人第一次阅读英文的文档,非常吃力,借助翻译工具和自己的理解阅读了Duri ...
- C语言——第一章,程序设计和C语言
第一章,程序设计和C语言 一,程序和程序语言 程序:完成某项事物所预设的活动方式和活动过程 程序设计:人们描述(指程序)计算机要做的工作 程序设计语言及发展 1,机器语言 2,汇编语言 3 ...
- C基础入门 - 第一章 - C语言绪言
第1章 C语言绪言 1.1 C语言概述 1.1.1 C语言世界 1.1.2 C语言学习, 能当饭吃吗 1.2 开发环境构建 1.2.1 visual studio安装使用 1.2.2 visual s ...
- [编程笔记]第一章 C语言概述
//C语言学习笔记 第一讲 C语言概述 第二讲 基本编程知识 第三讲 运算符和表达式 第四讲 流程控制 第五讲 函数 第六讲 数组 第七讲 指针 第八讲 变量的作用域和存储方式 第九讲 拓展类型 第十 ...
随机推荐
- Centos 7 安装 设置 IP地址,DNS,主机名,防火墙,端口,SELinux (实测+笔记)
环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) 系统版本:CentOS-7.0-1406-x86_64-DVD.iso 安装步骤: 1.虚拟系统安装 1.1 使 ...
- Android事件分发传递
一.与触摸事件有关的几个方法 boolean dispatchTouchEvent(MotionEvent ev); 接收到触摸事件时,是否分发事件到下面的View 返回true:分发触摸事件 返回f ...
- markdown预览-快速入门
最近要写文档,领导指定用markdown. 这个两三年前用过两次的神器工具,都忘的差不多了. 为了熟练一点这个技能,决定好好的重新学一次. 于是乎:看快速入门文档 ...30分钟...看完文档发现要来 ...
- Handlebars.js的学习
写在开头的话: 在使用Ghost搭建自己的博客的时候,发现不会Handlebars.js寸步难行,所以本人决定学习下Handlebars.js,因此在此做个记录 为什么选择Handlebars.js ...
- 编译链接 C++
预处理之后的源文件被称为一个编译单位,也即编译器的工作对象.为了使编译能够进行,程序员必须提供各种程序其他部分的声明来孤立分析一个编译单位.所有名字空间,类,函数都应该在他们所在的编译单位中有声明,所 ...
- 在VisualStadio2015上使用EF6.0建立MySql数据库
1.新建工程 2.建立类的文件夹DAL 3.建立相关类 [Student类] using System;using System.Collections.Generic;using System.Li ...
- The Solution of UESTC 2016 Summer Training #1 Div.2 Problem A
Link http://acm.hust.edu.cn/vjudge/contest/121539#problem/A Description standard input/output Haneen ...
- JAVA的continue用法
JAVA的continue用法: public class test{ public static void main(String [] args){ for(int i=0;i<=10;i ...
- 皮裤原理和运营微信公众号dotNET跨平台
经常碰到有同学对.NET跨平台存在各种疑惑和误解,原因是什么呢?当然我是知道.NET的跨平台不是问题,而且微软2014年的努力可圈可点,而且还有很多人对.NET的前景感到困惑.春节期间突然明白了,这就 ...
- 在Android上使用qemu-user运行可执行文件
在Android上使用qemu-user运行可执行文件 作者:寻禹@阿里聚安全 前言 QEMU简要介绍: QEMU可以解释执行可执行程序.既然QEMU可以解释执行可执行程序,那么QEMU就能够知道执行 ...