您的位置:首页 > 编程语言 > C语言/C++

C语言基础

2017-06-04 16:15 169 查看
       编辑源程序f.c,经过编译生成目标程序f.obj,  经过连接生成可执行程序f.exe,
运行即得结果。

      C语言数据类型

         1.基本类型:

                 a.整形:基本整数,短整型,无符号型,长整形

                 b.字符型

                 c.实数(浮点型):单精度型,双精度型

                 d.枚举类型

           2.构造类型:

                 a.数组类型

                 b.结构体类型

                 c.共用体类型

          3.指针类型

          4.空类型

 

  基本数据类型描述

字  符形式所对应的数据类型            描述
\n换行(输出位置移到下一行开头)
\t横向跳格(输出位置移到下一个输出区)
\b退格(输出位置移到前一列)
\r回车(输出位置移到本行行首)
\\反斜杠字符‘\’
\'或\"单,双引号
\ddd八进制ddd所代表的字符,如'\101'为字符A,'\32'为空格
\xhh十六进制hh所代表的字符,如'\x41'为字符A,'\x20'为空格
算术运算符的优先级与结合级
运算符号优先级结合性
+,-(正负运算符),++,--自右至左
*,/,%自左至右
+,-(加减运算符)自左至右
复合赋值运算:a*=b+3,等效为a=a*(b+3).
逗号运算符:用逗号将多个表达式连接起来的式子为逗号表达式,运算符中最低的一种,按顺序运算。

a=3*5,a*4  最后值为60。

强制类型转换:

(类型名)(表达式)

(float)(a+b)  /*将a+b的值强制转换为float*/

赋值运算时的类型转换

int i;

i=3.24+7%4;   /*只保留整数部分,结果为6*/

字母大小写转换:

b=a-32; 小写变大写

数据的输入与输出:

(1)单个字符输出函数:

char c='A';

putchar('A');

putchar(c);

putchar('\n');

putchar(65);       输出ASCII码十进制对应的字母A

putchar('\101');   输出ASCII码八进制对应的字母A

(2)单个字符输入函数:

char c;

c=getchar();  输入

putchar(c);    输出

(3)printf 函数

printf("格式控制字符串",表达式列表)

(4)scanf 函数

scanf("格式控制字符串",表达式列表)

例:转换时间格式

#include <stdio.h>

void main()

{
int t,h,m,s;
scanf("%d",&t);
h=t/3600;
m=(t-h*3600)/60;
s=t-h*3600-m*60;
printf("%02d:%02d:%02d\n",h,m,s);

}

运行结果:

5432

01:30:32

printf函数的附加说明符及意义
附加       说           明符意义
字母L或l输出长整型数据时,加在d,i,o,x,X,u前
字母H或h输出短整型数据时,加在d,i,o,x,X,u前
m(正整数)数据输出的域宽(列数),当数据实际输出列数超出m时,则按实际宽度输出,当少于m时,则在数据前补空格到m列。
n(正整数)输出实数时,表示输出n位小数,自动在n+1位四舍五入
-输出的数据域内左对齐,右边补空格
+输出的数字前带有正负号
0输出的数据域内右对齐,左边补0
#用在0,x,X前,使输出八进制或十进制数时输出前导0或0x
scanf的附加说明符及意义
附加              说明符意义
字母l或L加在d,i,o,x,X,u前,表示输入长整型数据,加在f,e前,表示输入double型数据
字母h或H
加在d,i,o,x,X,u前,表示输入短整型数据
m(正整数)
指定输入数据所占域宽
*表示对应的输入项在读入后不赋给相应的变量,不需要为其指定参数地址
优先级:

算术运算符>关系运算符>赋值运算符

关系运算符的优先级:>、<、>=、<=、具有相同的优先级并且高于相同优先级的!=、==。

逻辑运算符:II或,!非,&&与

*C语言中,用括号括起来的语句块与一个单语句等价。

if语句实现分支:

 if(表达式)

{

     语句1;

     语句2;

     语句3;

}

二分支结构 if…else

if(表达式)

      语句1;

else

     语句2;

if …else嵌套

if(表达式1)
      语句1;

else if(表达式2)

      语句2;

……
else
     语句n;

if(…)
    if(…)  语句1;
    else  (语句2,可以不写为空);
else

     if(…)  语句3;
    else   (语句4,可以不写为空);

用switch语句实现多分支的程序结构:

switch(表达式)

{

    case 常量表达式1:语句1;

    case 常量表达式2:语句2;

    …

    case 常量表达式n:语句n;

    default:语句N+1;

}

*default子结构对于switch结构而言不是必须的。

“case 常量表达式”只相当于一个语句标号,表达式的值与某标号相等则转向该标号执行,但不能执行完该语句后跳出来,所以后面的case语句都将一一执行。每一段语句后加break,则能跳出来。

switch(表达式)

{

    case 常量表达式1:

                           语句1

                           break;

    case 常量表达式2:

                           语句2

                           break;

    …

    case 常量表达式n:

                          语句n 

                           break;

    default:

                           语句N+1  

                           break;;

}

条件表达式及其分支结构:
表达式1?表达式2:表达式3;

*求值规则:若1的值为真,则表达式2的值作为该条件表达式的值,否则则取3的值。
例:
     max=(a>b)?a:b;

条件运算符的优先级低于关系运算符和算术运算符,但高于赋值符。条件运算符的结合方向为自右至左。
例:
     a>b?a:c>d?c:d  应理解为         a>b?a:(c>d?c:d)

while循环语句

while(表达式)   语句;   /*或者花括号里的一串代码*/

*只要表达式为非0,就能一直循环下去。

do…while循环

初始值:

do

{

    循环体;

}while(条件);

*这个循环和while循环的不同在于,它先执行循环中的语句,然后再判断表达式是否正确,如为真则继续循环,否则停止。它至少循环一次,而while循环可能一次也不执行。

for循环语句

for(循环变量赋初值;循环条件;循环变量增量)

{

     循环体;

}

变体:

1.无循环终止条件的循环(没有break)

for(;;) printf("I will run forever"); 

2.与while一样

i=1;

for(;i<100;)

{

          s=s+i;

          i++;

}

3.for循环里的逗号表达式

for(i=1,j=10;i<j;i++,j--)  

   printf("i=%d,j=%d\n",i,j);

4.循环体为空

for(表达式1;表达式2;表达式3);

例:for(sum=0,i=1;i<=100;sum+=i,i++);

语句标号及goto语句

goto语句成为无条件转移语句。

一般形式为

  goto 标号;

           标号:语句

continue语句

意义:结束本次循环,即不再执行循环体中continue后的语句,转入下一次循环条件的判决与执行,只结束本层的本次循环,并不跳出循环。

ASCII码表大概内容:

0~31及127(共33个)是控制字符或通信专用字符(其余为可显示字符),如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BS(退格)、BEL(响铃)等;通信专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等;ASCII值为8、9、10
和13 分别转换为退格、制表、换行和回车字符。它们并没有特定的图形显示,但会依不同的应用程序,而对文本显示有不同的影响。

32~126(共95个)是字符(32是空格),其中48~57为0到9十个阿拉伯数字。

65~90为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。

注:本文适合初学者或者对C不熟练的学习者回顾使用,后续还会继续补充

reference:C语言程序设计案例教程(高国红等主编)

                                     break
                                     break

注:本文适合初学者或者对C不熟练的学习者回顾使用,后续还会继续补充

reference:C语言程序设计案例教程(高国红等主编)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: