日期:2014-05-16  浏览次数:20800 次

linux下程序开发-复合语句及输入输出.笔记

linux下程序开发-复合语句及输入输出.笔记
2010年04月24日
  小术..
  ..坚强..勇敢..专注..快乐..幸福.. 复合语句
  一对大括号{}包围若干条语句组成。
  格式:
  {[数据说明部分;]
  执行语句部分;
  }
  注意:
  (1)在复合语句中的“内部数据描述语句”中定义的变量,是局部变量,仅在复合语句中有效。
  (2)复合语句结束的“}”之后,不需要分号,括号是用来结构化(界定范围)的,不是执行语句,所以不需要分号。
  (3)复合语句可以出现在任何数据操作语句可以出现的地方。
  例:
  #include 
  void main()
  {
  int a=11,b=21,c=31;
  printf("a=%d\tb=%d\tc=%d\n",a,b,c);
  {
  int b=22;
  float c=3.3;
  printf("a=%d\tb=%d\tc=%f\n",a,b,c);
  a=b;    
  }
  printf("a=%d\tb=%d\tc=%d\n",a,b,c);
  }
  执行结果:
  a=11    b=21    c=31
  a=11    b=22    c=3.300000
  a=22    b=21    c=31
  在复合语句中重新声明的全局变量,只对复合语句作用,复合语句外的参数不受影响
  如果在复合语句中直接对参数进行操作,不作声明,则复合语句外的参数受影响
  另 用表示标准头文件"stdio.h"表示在当前目录寻找(视为自定义头文件)
  程序结构
  C语言提供三种结构化语句来控制程序的执行流程:
  顺序结构:按照语句书写顺序执行的程序结构
  选择结构:又称分支结构,是指有条件地选择要执行的程序段(流程图)
  循环结构:重复执行某一程序段
  循环结构
  1.当循环结构:当条件成立时,反复执行程序段,否则不执行.
  2.直到型循环结构:先执行程序段,再判断条件是否成立(至少执行一次程序段)
  3.选择型循环结构:根据不同的条件执行不同的程序段
  输入输出语句
  c语言本身不提供输入输出语句
  c语言的输入输出功能由c语言的标准I/O库函数提供
  c语言的输入输出库函数名称不是保留字(或关键字).如printf,scanf
  字符输入与输出函数
  1.字符输入函数
  (1)函数原型
  int getchar(void)
  int是函数的返回值类型,getchar是函数名称,void表明无参数
  (2)函数功能
  从标准输入设备(一般为键盘)读入一个字符,返回该字符的ASCII码值,并且将高入的字符"回显"到屏幕
  例:
  #include 
  void main()
  {
  int a;
  char b;
  a=getchar();
  b=getchar();
  printf("a=%c\ta=%d\tb=%c\tb=%d\n",a,a,b,b);
  }
  注:
  %c是输出一个字符
  %d是输出一个整型值
  调用函数getchar时,程序执行被中断,等待用户从键盘输入数据,当用户键入字符并回车以后,程序继续运行,当用户输入字符后未回车,则输入的内容一直保留在键盘缓冲区中,只有用户键入回车键后字符输入函数getchar才进行处理,回车键也作为一个字符读入,所以,如果程序中有两个以上函数应该一次性输入所需要字符地最后再读取回车键
  无论输入的是英文字母或标点符号还是数字,都是作为字符输入.
  字符输出函数
  (1)函数原型
  int putchar(int);
  int:函数返回值类型 putchar函数名
  例:
  #include 
  main()
  {
  int a=65;
  char b='B';    
  putchar(a);
  putchar(65+1);
  putchar(b);
  putchar('B'+1);
  }
  运行结果:ABBC
  函数调用的一般形式:
  printf("格式控制字符串",输出项列表);
  格式控制字符:
  (1)组成:普通字符\转义字符\格式说明
  普通字符:按原样输出,主要用于输出提示信息
  转义字符:指明特定的操作 例:\t\n
  格式说明:由"%"和"格式字符串"组成
  例:
  #include 
  void main()
  {
  int a=97,b=98;
  printf("1:%d %d\n",a,b);    /*普通字符,原样输出*/
  printf("2:%d,%d\n",a,b);    /*a,b以十进制整数形式输出*/
  printf("3:%c,%c\n",a,b);    /*a,b以字符形式输出*/
  printf("4:a=%d,b=%d",a,b);
  }
  运行结果:
  1:97 98
  2:97,98
  3:a,b
  4:a=97,b=98
  格式说明的形式::
  %[flags][width][.prcc][F|N|h|L][typc]
  flags:可选的标志字符
  -:左对齐输出,缺省为右对齐输出
  +:正数输出为加号,负数输出为减号
  空格:正数输出空格代替加号,负数输出减号
  例:%+d,%-d,% d
  width:十进制整数,指定输出的宽度
  指定宽度>实际宽度, 被空格
  指定宽度c    输出一个字符
  s    输出字符串
  f    以小数形式输出单、双精度数,隐含输出6位小数
  e(E)    以指数形式输出单、双精度数,小数位为6位
  g(G)    由给定的值和精度自动选用%f或%c或%E格式
  %    输出百分号
  例1:
  printf(“%d\n",100);
  printf("%5d\n",100);
  printf("%8d\n%8d",100,100*100);
  printf("%4c,%c\n",'A','A');
  printf("%-8s,%8.2s","Name","Name")
  例2:
  #include 
  void main()
  {
  int i=8;
  printf("%d\t%d\t%d\n",++i,--i,i--); /*计算方向:
  void main()
  {
  int a=3,b=4;
  printf("%d\n",(a=b,b,a+3));
  printf("%d\n",a=b,b,a+3);
  }
  输出结果:
  7