C语言程序设计

一、逗号运算符和逗号表达式

        定义:形如3+5,6+8,利用逗号将两个表达式连接起来,称为逗号表达式,又称为“顺序求值运算符”。

        当多个逗号表达式赋一个值时,其输出结果为最后一个表达式,但由于逗号运算符时级别最低的,因此,需要结合其他运算符的优先级进行具体分析。如以下两个表达式:

       1:int t;

             t=1 + 3, 2 * 4, 5 / 2;

             printf("%d\n",t); //其输出结果为4。(因为求和的优先级高于逗号表达式)

        2.t = (1 + 3,2 * 4, 5 / 2);

           printf("%d\n",t);//其输出结果为2。(由于括号的优先级最高,因此先计算括号内的各个表达式且最后一个表达式的结果为2)

二、C程序结构

C语言程序设计_第1张图片

        如图所示,C程序由若干个源程序文件组成,一个源文件可以由若干个函数和预处理命令以及全局变量声明组成,一个函数由数据分明和执行语句组成。

        C语句的分类:(1)控制语句;(2)函数调用语句;(3)表达式语句;(4)空语句;(5)复合语句(又称为“分程序”)。

三、字符数据的输入输出

        输入和输出设备不可能同一个设备 ,如手机:输入设备是LCD显示屏,输出设备是触控膜(类似于按键)。

1.putchar函数(顺序传输)

        作用:向终端输出一个字符。

        表达形式:putchar(c)。

        例如    :

#include
int main(void)
{
    char a,b,c;
    a = 'B';
    b = 'O';
    c = 'Y';
    
    putchar(a);
    putchar(b);
    putchar(c);
    putchar('\n');
    return 0;
}

  其输出结果为:BOY

        值得注意的是,putchar每次只能传输一个字符。它也可以输出其他转义字符。

2.getchar函数

        作用:从终端输入字符或字符串。

        一般形式: getchar()  //无参数

        一次获得一个字符,例如:

#include
int main(void)
{
    char c;
    
    c = getchar();

    putchar(c);
    putchar('\n');//换行
    return 0;
}

            在运行时,如果从键盘上输入字符‘a'并按enter键,就会在屏幕上看到一个输出的字符a。

        运行结果:a (输入'a'后,按enter键,字符才送到内存)

                          a(输出变量c的值'a')

<注意>getchar函数只能接受一个字符,getchar函数得到的字符可以赋给一个字符变量或整型变量,也可以不赋给任何变量,作为表达式的一部分。

四、格式输入或输出

1.printf函数

   一般格式:printf(格式控制,输出表列)//例:printf("%d,%c\n",i,c) 。

 (1)用法:

采用%d进行占位,由下一个参数所替换。

        printf("Hello world!%d\n",1234);输出:Hello word!1234

        printf("Hello %d world!%d\n",1234,4567);输出:Hello 1234 word!4567

当参数个数小于%d的个数,则加上一个随机数 。       

        printf("Hello %d world!%d\n",1234);输出:Hello 1234 word!随机数字   

当参数个数大于%d的个数,则截断多余的后几位参数。

        printf("Hello world!%d\n",1234,4567);输出:Hello word!1234

(2)格式字符

    <1> %d,%i,用来打印有符号十进制整型。

        当参数的字节大于四个字节时,则需将%d换为%ld,%ud。

    <2>%o,%u,%x,用来打印无符号的八,十,十六进制整型。

        若参数为负值,则将打印其无符号的补码整型

        例如:int a = -1;
                 printf("%o",a);

        输出结果为:37777777777

    <3>%e,%E ,打印出小数的科学计数法形式

        int a = 123.4567;
        printf("%e",a);

        输出结果为:1.234567e+02;//若为%E,则输出:1.234567E+02

    <4>%f,%F , 用来输出实数(包括单双精度),以小数形式输出。

    当为%f格式:

        int a = 123.4567;
        printf("%f",a);

        输出结果为:123.456700

    当为%m,nf格式:指输出的数据共占m列,其中小数有n位,如果数值长度小于m,则左端补空格。(保留小数时采用四舍五入原则)

        

    当为% -m,nf格式:指输出的数据共占m列,其中小数有n位,如果数值长度小于m,则右端补空格。(保留小数时采用四舍五入原则)

     <5>%s , 某个字符串首字母的地址。

        printf("Hello %s\n","word!"); //输出结果:Hello word!

     <6>%g,%G, 浮点型转化为%f或%e,二者中的哪个运行结果的宽度短就用哪个。

        printf("%g\n",1.234567); //输出结果为:1.23457

     <7>%c, 整型参数转化为Unsigned char。

        printf("x = %c\n",65); //输出结果为:x = A        .

     <8>%p, 打印指针的地址。

        printf("%p\n",&i); //输出结果为:i的地址

     <9>%,打印出%

        printf("99.99%%"); //输出结果为:99.99%。

     <10>返回值代表实际输出字符长度

        ret = printf("Hello!\n");

        printf("ret = %d\n",ret);  //输出结果为:7

2.scanf函数

(1)格式字符

<1>%d, 读取十进制整数

<2>%c, 读取单个字符,包括空格、回车。

<3>%s, 读取字符串。

<4>%f,%lf, 读取float型,double型浮点数。

<5>%x,%X, 读取十六进制整数。

<6>%nd, 输出截取的n个字符宽度。

        其中,%nd%*nd%nd,表示跨过%*nd对应的n个宽度。

        例:scanf("%3d%*3d%3d",&i,&j);

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

               当运行程序中,输入123456789,则输出结果为:123,789。

(2)注意事项

        输入的数据应为其地址,即&i,&j,否则会导致程序崩溃;

        在输入字符时,在对应位置应输入与这些字符相同的字符;

        输入小数时,当输入的字符个数在2个及其以上,可用空格、Tab键隔开。

        

你可能感兴趣的:(c#)