`

SBS.C——2、类型、运算符与表达式以及控制流

    博客分类:
  • C
c 
阅读更多
数据类型C语言提供了下列几种基本数据类型:
  • char 字符型,占用一个字节,可以存放本地字符集中的一个字符。
  • int 整型
  • float 单精度浮点型
  • double 双精度浮点型

short和long两个限定符
short类型通常是16位
long类型通常是32位
signed和unsighed限定符可用于限定char类型或任何类型。
unsigned类型的数总是正值或0,并遵守算数模2^n定律,其中n是该类型占用的位数。
/*
 * leap.c
 *
 *  Created on: Mar 17, 2013
 *      Author: seaeast
 */

#include <stdio.h>
void leap(int year);

int main()
{
    int year;
    year = 2008;
    leap(year);
    year = 2013;
    leap(year);
    return 1;
}

void leap(int year)
{
    if((year%4==0&&year%100!=0)||year%400==0)
        printf("%d is a leap year\n",year);
    else
        printf("%d is not a leap year\n",year);
}

自增运算符和自减运算符
++ --它们既可以用作前缀运算符,也可以用作后缀运算符。其效果都是将变量n的值加1.但是它们之间有一点不同。表达式++n先将n的值递增1,然后在使用变量n的值。而表达式n++则是先使用变量n的值,然后再将n的值递增1.

按位运算符
C语言提供了6个位置操作运算符。这些运算符只能作用于整形操作符,即只能作用于带符号或无符号的char、short、int与long类型。
  • & 按位与(AND)
  • | 按位或(OR)
  • ^ 按位异或(XOR)
  • << 左移
  • >> 右移
  • ~ 按位求反

二分查找
int binsearch(int l[],int x, int n)
{
    int low,high,mid;
    low = 0;
    high = n - 1;
    while (low < high)
    {
        mid = (low + high)/2;
        if (x>l[mid])
            low = mid + 1;
        elseif (x < l[mid])
            high = mid -1;
        else
            return mid;
     }
     return -1;
}

希尔排序
void shellsort(int v[], int n)
{
    int gap, i, j, temp;     
    for (gap = n/2; gap > 0; gap /= 2)
        for (i = gap; i < n; i++)
            for (j=i-gap; j >=0 && v[j]>v[j+gap]; j-=gap)
            {
                temp = v[j]; 
                v[j] = v[j+gap];
                v[j+gap] = temp;   
            }
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics