第一章.C语言简介
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,100,'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=300; int shape[28][6]={
{0,-1,0,-2,1,0}, {0,1,1,0,2,0}, {-1,0,0,1,0,2}, {0,-1,-1,0,-2,0},
{0,-1,0,1,-1,0}, {0,1,1,0,-1,0}, {1,0,0,-1,0,1}, {1,0,-1,0,0,-1},
{-1,1,0,1,1,0}, {0,-1,1,0,1,1}, {-1,0,0,-1,1,-1}, {-1,-1,-1,0,0,1},
{-1,0,0,1,1,1}, {0,1,1,-1,1,0}, {-1,0,0,1,1,1}, {0,1,1,-1,1,0},
{-1,0,0,-1,0,-2}, {-1,0,-2,0,0,1}, {0,1,0,2,1,0}, {0,-1,1,0,2,0},
{0,1,1,0,1,1}, {0,-1,1,0,1,-1}, {-1,0,0,-1,-1,-1}, {-1,0,-1,1,0,1},
{0,1,0,2,0,3}, {1,0,2,0,3,0}, {0,-1,0,-2,0,-3}, {-1,0,-2,0,-3,0}
}; void gotoxy(int x,int y){
COORD c;
c.X=x-1; c.Y=y-1;
SetConsoleCursorPosition (GetStdHandle(STD_OUTPUT_HANDLE), c);
}
void Gameover(){
int i,j,flag=0;
for(j=1;j<SIZE_M-1;j++){
if(map[1][j]!=0){
flag=1;break;
}
}
if(flag==1){
for(i=1;i<SIZE_N-1;i++){
gotoxy(2,i+1);
for(j=1;j<SIZE_M-1;j++){
printf("□");
}puts("");
}
gotoxy(7,9);
printf("GAME OVER!");
gotoxy(1,SIZE_N+1);
exit(0);
}
}
void ShowMap(int id){
int i,j;
gotoxy(1,1);
if(id!=-1){
for(i=0;i<SIZE_N;i++){
for(j=0;j<SIZE_M;j++){
if(i==0&&j==0 || i==0&&j==SIZE_M-1 || j==0&&i==SIZE_N-1 || j==SIZE_M-1&&i==SIZE_N-1)printf(" ");
else if(i==0 || i==SIZE_N-1)printf("--");
else if(j==0 || j==SIZE_M-1)printf("|");
else if(map[i][j]==2) printf("■");
else if(i==cur_x+shape[id][0] && j==cur_y+shape[id][1] ||
i==cur_x+shape[id][2] && j==cur_y+shape[id][3] ||
i==cur_x+shape[id][4] && j==cur_y+shape[id][5] ||
i==cur_x && j==cur_y)
printf("■");
else if(map[i][j]==0) printf(" ");
}
if(i==1)printf(" 下一个 :");
if(i==11)printf(" 等分 : %d",score);
if(i==14)printf(" 速度 : %d",score/100+1);
puts("");
}
}
else {
mark=1;
for(i=0;i<SIZE_N;i++){
for(j=0;j<SIZE_M;j++){
if(i==0&&j==0 || i==0&&j==SIZE_M-1 || j==0&&i==SIZE_N-1 || j==SIZE_M-1&&i==SIZE_N-1)printf(" ");
else if(i==0 || i==SIZE_N-1)printf("--");
else if(j==0 || j==SIZE_M-1)printf("|");
else if(map[i][j]==2) printf("■");
else if(map[i][j]==0) printf(" ");
}
if(i==1)printf(" next:");
if(i==11)printf(" score : %d",score);
if(i==14)printf(" speed : %d",score/100+1);
puts("");
}
} gotoxy(30,6); printf(" ");
for(i=0;i<6;i=i+2){
gotoxy(30+2*shape[id][i+1],6+shape[id][i]); printf(" ");
}
gotoxy(30,6); printf("■");
for(i=0;i<6;i=i+2){
gotoxy(30+2*shape[next][i+1],6+shape[next][i]); printf("■");
}
Sleep(Gamespeed);
} void init(int id){
int i,j;
memset(map,0,sizeof(map));
for(i=0;i<SIZE_N;i++){
for(j=0;j<SIZE_M;j++)
if(i==SIZE_N-1 || j==0 || j==SIZE_M-1)
map[i][j]=-1;
}
cur_x=0; cur_y=5;
ShowMap(id);
} int judge_in(int x,int y,int id){
int i;
if(map[x][y]!=0)return 0;
for(i=0;i<6;i=i+2){
if(map[ x+shape[id][i] ][ y+shape[id][i+1] ]!=0)return 0;
}return 1;
} void fun_score(){
int i,j,ii,jj;
for(i=1;i<SIZE_N-1;i++){
int flag=0;
for(j=1;j<SIZE_M-1;j++){
if(map[i][j]!=2){ flag=1;break; }
}
if(flag==0){
int k=3;
while(k--){
gotoxy(2,i+1);
for(ii=1;ii<SIZE_M-1;ii++){
if(map[i][ii]==2){
if(k%2==1)printf(" ");
else printf("■");
}
}Sleep(100);
}
for(ii=i;ii>1;ii--){
for(jj=1;jj<SIZE_M-1;jj++) map[ii][jj]=map[ii-1][jj];
}
ShowMap(-1);
score+=10;
if(score%100==0 && score!=0)Gamespeed-=50;
}
}
} int main(){
int i,id,set=1; srand(time(NULL));
id=rand()%MOD; id=(id+MOD)%MOD;
next=rand()%MOD; next=(next+MOD)%MOD; init(id); while(1){
Here: mark=0;
if(set==0){
id=next;
next=rand()%MOD; next=(next+MOD)%MOD;
cur_x=0;cur_y=5;
set=1;
} while(!kbhit()){
Gameover();
if(judge_in(cur_x+1,cur_y,id)==1) cur_x++;
else {
map[cur_x][cur_y]=2;
for(i=0;i<6;i=i+2)
map[ cur_x+shape[id][i] ][ cur_y+shape[id][i+1] ]=2;
fun_score();
set=0;
}
if(mark!=1)ShowMap(id);
goto Here;
} char key;
key=getch(); if(key==72){
int tmp=id;
id++;
if( id%4==0 && id!=0 )id=id-4;
if(judge_in(cur_x,cur_y,id)!=1)id=tmp;
}
else if(key==80 && judge_in(cur_x+1,cur_y,id)==1)cur_x++;
else if(key==75 && judge_in(cur_x,cur_y-1,id)==1)cur_y--;
else if(key==77 && judge_in(cur_x,cur_y+1,id)==1)cur_y++;
else if(key==27){gotoxy(1,SIZE_N+1);exit(0);}
}
getch();
return 0;
}
七、文件下载
第一章.C语言简介的更多相关文章
- C语言 第一章 C语言简介
一.C语言介绍 C是一种通用的编程语言,广泛用于系统软件与应用软件的开发.于1969年至1973年间,为了移植与开发UNIX操作系统,由丹尼斯·里奇与肯·汤普逊,以B语言为基础,在贝尔实验室设计.开发 ...
- 第一章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语言概述 第二讲 基本编程知识 第三讲 运算符和表达式 第四讲 流程控制 第五讲 函数 第六讲 数组 第七讲 指针 第八讲 变量的作用域和存储方式 第九讲 拓展类型 第十 ...
- 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 ...
随机推荐
- iOS应用程序生命周期(前后台切换,应用的各种状态)详解
http://blog.csdn.net/totogo2010/article/details/8048652/
- IOS的MVC和MVVM模式简明介绍
iOS中的MVC(Model-View-Controller)将软件系统分为Model.View.Controller三部分,结构图如下: Model: 你的应用本质上是什么(但不是它的展示方式) C ...
- WordPress基础:文章的自定义栏目的使用
写文章只有标题和内容,那么我想加个加个怎么办呢?这时候就可以用到自定义栏目了,这个功能相当于增加了一个键值对 1.启动“自定义栏目” 2.定义键值对 3.调用自定义栏目值 <?php $pric ...
- dom4j学习
在使用xml读写的过程中,用到了dom4j,也算是一个比较主流的xml包了,在使用的过程中,将学习经历记录一下,以后查阅也比较方便. 首先是在pom中添加依赖,在Maven的中心库搜索后选择了该包: ...
- TestNG测试报告美化buid.xml配置
<?xml version="1.0" encoding="UTF-8"?> <project name="myproject&qu ...
- CXF WebService整合SpringMVC的maven项目
首先推荐博客:http://www.cnblogs.com/xdp-gacl/p/4259481.html http://blog.csdn.net/hu_shengyang/article/de ...
- Magento后台简单更换favicon.ico
刚才需要更换网站的favicon.ico,就是浏览器url前面的那个小图标. 网上稍微搜搜一下,然后就震惊了,号多方法是替换文件的方法,而且文件散步在网站的各个角落. 其实,后台是有直接上传更换的方法 ...
- ios-将代码创建的视图控件放入拖拽控件的下面
如图所示 图片是拖拽上去的imageView,橘黄色控件是在代码中创建的添加上去的,此时黄色view在imageView 上方 调用方法bringSubviewToFront:试图将imageView ...
- 【Ngui 学习系列之一:简单组件的操作】
一.Buttonunity edit: Sprite作为父对象和背景 -- Collider -- Button script Label 作为子对象和显示文字代码: private UIButton ...
- .net动态类型在处理json数据方面的应用
我们在.net中处理json数据时,经常需要定义相应的类.比如json数据:{ "name" : "hello", "age" : 18 } ...