c基础部分代码整理

 

预习检查:
---------------------------------------------------------------------------------------------------------------------------
在printf函数中%d打印什么类型的数据,%f呢?double型该用什么打印?
答: %d打印十进制有符号的整型数据;
        %f打印浮点型;
        double型同样用%f。


普通字符串正常输出。
如果真的要打印”%d“,该怎么打印呢?
答:前面加一个转义字符,%或者\

如何打印一个浮点数的整数部分?
答:强制转换

如果把%(求余)运算符用于浮点数,但程序无法通过编译,怎么办?
答:此命题本身就是假命题,C语言规定,%(求余)运算的两边必须为整型数据

---------------------------------------------------------------------------------------------------------------------------

例:#include<stdio.h>
         int main(){
         printf("%d",'2'+'2');
         }

 编译运行后输出的是100

########################################################################################
常量
常量是程序中不可改变的量。
常量的作用是给变量赋初值。
常量有两种形式:一种是程序中直接给出,一种以宏定义的形式给出
宏定义变量
#define  NUM  4    宏定义常量4
----------------------------------------------------------------------------------------
数据类型
   如:  
       5-------------整型
       5.0-----------实型
       'a'-----------字符型
       "abcd"--------字符串型
整型的其他形式
    如:
       10----------十进制  
       0xA---------十六进制 
       012---------八进制
-----------------------------------------------------------------------------------------

变量                         ************************************************************
声明变量:                    **数字字母下划线,不以数字打头,大小写敏感,需避讳,可转义**
  Datatype  variablename;    ************************************************************
  数据类型     变量名
命名规则:
   数字、字母(大小写)、下划线
   不可以以数字开头
   C语言大小写敏感
   要避讳(即关键字,特殊字符如”%d“等不可用,要用必须转义)
整型变量的缺省
int
short int------------ short
long int-------------long
long long int--------long long
signed
unsigned
----------------------------------------------------------------------------------------
查看各种数据类型所占字节数:(以32位机为例)
#include<stdio.h>
int main()
{
        float a =5.;
        printf("%f\n ",a);
        printf("short = %d\n",sizeof(short));
        printf("int = %d\n",sizeof(int));
        printf("long = %d\n",sizeof(long));
        printf("long long = %d\n",sizeof(long long));
        printf("float = %d\n",sizeof(float));
        printf("double = %d\n",sizeof(double));
        printf("long double = %d\n",sizeof(long double));
        printf("0.0 = %d\n",sizeof(0.0));
        printf("0.0f = %d\n",sizeof(0.0f));
        printf("0.0l = %d\n",sizeof(0.0l));
        return 0;
}
运行结果:
5.000000
 short = 2
int = 4
long = 4
long long = 8
float = 4
double = 8
long double = 12
0.0 = 8
0.0f = 4
0.0l = 12

************************************************************************************
补码:
正数的补码    本身
负数的补码    绝对值取反加一(即数值取反加一,反之一样)
数值      补码
0           0000 0000
1           0000 0001
127      0111 1111
-1         1111 1111
-127     1000 0001
-128     1000 0000
注意:已知补码求数值的方法也是:绝对值取反加一(即数值取反加一,反之一样)
例:char a; a在内存中占1个字节,8位,表示的数据范围是-128~127,所用的编码方法就是补码
    int 类型  在内存中占4个字节,32位,表示的数据范围是-2^31~2^31
   总结:X类型(有符号)  在内存中占n个字节,8*n位,表示的数据范围是-2^(8*n-1)~2^(8*n-1)
          无符号: 在内存中占n个字节,8*n位,表示的数据范围是0~2^(8*n)-1
*************************************************************************************
ASCII码:
全称:ASCII(American Standard Code for Information Interchange,美国信息互换标准代码)
常见的字符及其对应ASCII码
 32-->空格 33-->! 34-->" 35--># 36-->$ 37-->% 38-->& 39-->' 40-->(
 41-->) 42-->* 43-->+ 44-->, 45-->- 46-->. 47-->/ 48-->0
 49-->1 50-->2 51-->3 52-->4 53-->5 54-->6 55-->7 56-->8
 57-->9 58-->: 59-->; 60-->< 61-->= 62-->> 63-->? 64-->@
 65-->A 66-->B 67-->C 68-->D 69-->E 70-->F 71-->G 72-->H
 73-->I 74-->J 75-->K 76-->L 77-->M 78-->N 79-->O 80-->P
 81-->Q 82-->R 83-->S 84-->T 85-->U 86-->V 87-->W 88-->X
 89-->Y 90-->Z 91-->[ 92-->\ 93-->] 94-->^ 95-->_ 96-->`
 97-->a 98-->b 99-->c100-->d101-->e102-->f103-->g104-->h
105-->i106-->j107-->k108-->l109-->m110-->n111-->o112-->p
113-->q114-->r115-->s116-->t117-->u118-->v119-->w120-->x
121-->y122-->z123-->{124-->|125-->}126-->~
选择性记忆:a-->97   A-->65    0-->48   空格-->32
注意:大小写字母的ASCII码相差32

*************************************************************************************
关于赋值(=):=具有右结合性,即将=右边的值赋给左边变量
如:
a=b=c=5
等价于
a=(b=(c=5))

关于赋值表达式

赋值表达式的功能:计算表达式的值再赋予左边的变量

记住一句话:
######################
#任何表达式都是有值的#
######################
如:
x = (a = 5) + (b = 3)
x的值为8,表达式的值即为x的值,也是8

#include<stdio.h>
int main()
{
        float a =5.;
        printf("%f\n ",a);
        printf("short = %d\n",sizeof(short));
        printf("int = %d\n",sizeof(int));
        printf("long = %d\n",sizeof(long));
        printf("long long = %d\n",sizeof(long long));
        printf("float = %d\n",sizeof(float));
        printf("double = %d\n",sizeof(double));
        printf("long double = %d\n",sizeof(long double));
        printf("0.0 = %d\n",sizeof(0.0));
        printf("0.0f = %d\n",sizeof(0.0f));
        printf("0.0l = %d\n",sizeof(0.0l));
        return 0;
}
运行结果:
5.000000
 short = 2
int = 4
long = 4
long long = 8
float = 4
double = 8
long double = 12
0.0 = 8
0.0f = 4
0.0l = 12
#######################################################################
#include<stdio.h>
int main()
{
        int a,b,c;
        a=(b=5)+(c=3);
        printf("%d\n",a);
        return 0;
}
运行结果:
8
#######################################################################
#include<stdio.h>
int main()
{
        char val = 'A'+1;
        printf("%d - %c\n",val,val);
        return 0;
}
运行结果:
66 - B
#######################################################################
#include<stdio.h>
int main()
{
        char val;
        printf("please input a charactor\n");
        scanf("%c",&val);
        if(val>=97&&val<=122)
        {
                printf("is xiaoxie!\n");
                printf("The num is %d\n",val-'a'+1);
                printf("The next is %c\n",val+1);
                printf("The daxie is %c\n",val-32);
        }

}
运行结果:
please input a charactor
f
is xiaoxie!
The num is 6
The next is g
The daxie is F
########################################################################
#include<stdio.h>
int main()
{
        char v;
        for(v=0;v<=126;v++)
        {
                printf("%3d-->%c",v,v);
                if(v%8==0)
                printf("\n");
        }
        return 0;


}
运行结果:
  0-->
  1-->  2-->  3-->  4-->  5-->  6-->  7-->  8-->
  9-->   10-->
 11-->
       12-->
 14--> 15--> 16-->
 17--> 18--> 19--> 20--> 21--> 22--> 23--> 24-->
 25--> 26--> 27--> 28--> 29--> 30--> 31--> 32-->
 33-->! 34-->" 35--># 36-->$ 37-->% 38-->& 39-->' 40-->(
 41-->) 42-->* 43-->+ 44-->, 45-->- 46-->. 47-->/ 48-->0
 49-->1 50-->2 51-->3 52-->4 53-->5 54-->6 55-->7 56-->8
 57-->9 58-->: 59-->; 60-->< 61-->= 62-->> 63-->? 64-->@
 65-->A 66-->B 67-->C 68-->D 69-->E 70-->F 71-->G 72-->H
 73-->I 74-->J 75-->K 76-->L 77-->M 78-->N 79-->O 80-->P
 81-->Q 82-->R 83-->S 84-->T 85-->U 86-->V 87-->W 88-->X
 89-->Y 90-->Z 91-->[ 92-->\ 93-->] 94-->^ 95-->_ 96-->`
 97-->a 98-->b 99-->c100-->d101-->e102-->f103-->g104-->h
105-->i106-->j107-->k108-->l109-->m110-->n111-->o112-->p
113-->q114-->r115-->s116-->t117-->u118-->v119-->w120-->x
121-->y122-->z123-->{124-->|125-->}126-->~

-----------------------------------------------------------------------------------

输出宽度精度:
#include<stdio.h>
int main()
{
        int a=150;
        printf("%d\n",a);
        printf("%10d\n",a);
        printf("%-10d\n",a);
        printf("%-10daaa\n",a);
        return 0;
}
运行结果:
150
       150
150      
150       aaa
************************************************************************************
#include<stdio.h>
int main()
{
        float a=15.58;
        printf("%f\n",a);
        printf("%.2f\n",a);
        printf("%.0f\n",a);
        printf("%10.2f\n",a);
        printf("%-10.2f\n",a);
        printf("%-10.5f\n",a);
        printf("%10.5fasdf\n",a);
        printf("%2.5fasdf\n",a);
        return 0;
}
运行结果:
15.580000
15.58
16
     15.58
15.58    
15.58000 
  15.58000asdf
15.58000asdf
**************************************************************************************
#include<stdio.h>
int main()
{
        int a,b,c;
        printf("Pls input a b c:\n");
        scanf("%d%d%d",&a,&b,&c);
        printf("a=%d,b=%d,c=%d\n",a,b,c);
        return 0;
}
运行结果:
Pls input a b c:
12 34 56
a=12,b=34,c=56
**************************************************************************************
#include<stdio.h>
int main()
{
        int a,b,c;
        printf("Ple input \"a b c\":\n");
        return 0;
}
运行结果:
Ple input "a b c":
**************************************************************************************
#include<stdio.h>
int main()
{
        printf("%d\n",7/3);
        printf("%d\n",-7/3);
        printf("%d\n",7/-3);
        printf("%d\n",7%3);
        printf("%d\n",-7%3);
        printf("%d\n",7%-3);
        return 0;
}
运行结果:
2
-2
-2
1
-1
1
**************************************************************************************
#include<stdio.h>
int main()
{
        int a=5,b=3,c=25,d=12;
        float qu;
        int re,in,de;
        qu = a/b;
        re = a%b;
        in = ++c;
        de = --d;
        printf("商为%f\n",qu);
        printf("qu余数%d\n",re);
        printf("加1后为%d\n",in);
        printf("减1后为%d\n",de);
        return 0;
}
运行结果:
商为1.000000
qu余数2
加1后为26
减1后为11
*************************************************************************************
#include<stdio.h>
int main()
{
        int a=0;           //255,127
        char b=127;
        a = b;
        printf("%d\n",b);
        return 0;
}
运行结果:
127
************************************************************************************
#include<stdio.h>
int main()
{
        int num;
        printf("\n请输入一个整数:");
        scanf("%d",&num);
        if((num%2)==0)
                printf("%d是一个偶数。\n",num);
        else
                printf("%d是一个奇数。\n",num);
                return 0;
}
运行结果:
请输入一个整数:23
23是一个奇数。
***********************************************************************************
#include<stdio.h>
int main()
{
        char ch;
        printf("Please input a charactor:\n");
        ch = getchar(); //不能写成getchar(ch)
        printf("Output is:\n");
        putchar(ch);
        putchar(10);    //10可换为'\n'
        return 0;
}

运行结果:
Please input a charactor:
d
Output is:
d
**********************************************************************************
#include<stdio.h>
int main()
{
        int num;
        printf("\n请输入一个数:");
        scanf("%d",&num);
        if((num % 5)==0)
                printf("\n 能被5整除\n",num);
        else
                printf("\n 不能被5整除\n",num);
        return 0;

}
运行结果:
请输入一个数:23

 不能被5整除
**********************************************************************************
#include<stdio.h>
int main()
{
        int a=1,b=13;
        if(a++||b--)
                printf("b=%d\n",b);
                return 0;
}
运行结果:
b=13
**********************************************************************************
闰年判断
#include<stdio.h>
int main()
{
        int a;
        printf("pls input a nianfen\n");
        scanf("%d",&a);
        if(a%100==0)
                if(a%400==0)
                        printf("%d is runnian\n",a);
                else
                        printf("%d is not runnian\n",a);
        else if(a%4==0)
                        printf("%d is runnian\n",a);
                else
                        printf("%d is not runnian\n",a);
        return 0;

}
运行结果:
pls input a nianfen
2012
2012 is runnian
*********************************************************************************
#include<stdio.h>
int main()
{
        int a;
        a=1,2,3,4,5,6;
        printf("%d\n",a);
        return 0;
}
运行结果:
1
*********************************************************************************

#include<stdio.h>
int main()
{
        int x;
        int a,b,c,d,e;
        printf("Please input a 5 wei shu\n");
        scanf("%d",&x);
        a=x/10000;
        b=(x/1000)%10;
        c=(x/100)%10;
        d=(x/10)%10;
        e=x%10;
        if(a==e&&b==d)
                printf("%d is huiwenshu\n",x);
        return 0;
}

运行结果:
Please input a 5 wei shu
12321
12321 is huiwenshu
********************************************************************************
#include<stdio.h>
int main()
{
        int a=4;
        int b=5;
        if(a>b)
        {
                printf("a>b\n");
        }
        else
        {
                printf("a<=b\n");
        }
}
运行结果:
a<=b
********************************************************************************
#include<stdio.h>
int main()
{
        int a=3,b=4;
        if(a<=b)
                if(a==b)                 //注意if与else的配对
                        printf("a=b\n");
                else
                        printf("a<b\n");
        else
                printf("a>b");
        return 0;
}
/*
#include<stdio.h>
int main()
{
        int a=3,b=4;
        if(a>b)
                printf("a>b");
        else
                if(a<b)
                        printf("a<b\n");
                else
                        printf("a=b");
        return 0;

*/
运行结果:
a<b
********************************************************************************
/*
#include<stdio.h>
int main()
{
        int a;
        printf("Please input score:\n");
        scanf("%d",&a);
        if(a>90)
                {
                        printf("优秀\n");
                }
        else
                if(a>80)
                {
                        printf("良好\n");
                }
                else
                        if(a>60)
                        {
                                printf("及格\n");
                        }
                        else
                                printf("不及格\n");
        return 0;
}
*/

#include<stdio.h>
int main()
{
        int a;
        printf("Please input score:\n");
        scanf("%d",&a);
        if(a>=90)
                printf("优秀\n");
        else if(a>=80&&a<90)
                printf("良好\n");
        else if("a>=60&&a<80")
                printf("及格\n");
        else
                printf("不及格\n");
        return 0;
}
运行结果:
Please input score:
87
良好
********************************************************************************
#include<stdio.h>
int main()
{
        char in_char;
        printf("\n 请输入一个小写字母: ");
        scanf("%c", &in_char);
        switch(in_char)
        {
                case 'a':  printf("\n 您输入的是元音字母 a\n");
                break;
                case 'e':  printf("\n 您输入的是元音字母 e\n");
                break;    
                case 'i':   printf("\n 您输入的是元音字母 i\n");
                break;    
                case 'o':  printf("\n 您输入的是元音字母 o\n");
                break;    
                case 'u':  printf("\n 您输入的是元音字母 u\n");
                break;    
                default:  printf("\n 您输入的不是元音字母 \n");
        }
}
运行结果:
 请输入一个小写字母: e

 您输入的是元音字母 e
********************************************************************************
#include<stdio.h>
int main()
{
        char c;
        printf("\n 请输入一个字符: ");
        c=getchar();
        if(c<32)
                printf("\n 该字符是一个控制字符。\n");
        else if(c>='0'&&c<='9')    //此处可用字符对应的ASCII,如'0'可改为48
                printf("\n 该字符是一个数字。\n");
        else if(c>='A'&&c<='Z')
                printf("\n 该字符是一个大写字母。\n");
        else if(c>='a'&&c<='z')
                printf("\n 该字符是一个小写字母。\n");
        else
                printf("\n 该字符是其他字符。\n");
}
运行结果:

 请输入一个字符: T

 该字符是一个大写字母。
********************************************************************************
#include<stdio.h>
int main()
{
        float a,b;
        char c;
        printf("input num1运算符num2:\n");
        scanf("%f%c%f",&a,&c,&b);
        switch(c)
        {
                case '+':
                        printf("%f\n",a+b);
                        break;
                case '-':
                        printf("%f\n",a-b);
                        break;
                case '*':
                        printf("%f\n",a*b);
                        break;
                case '/':
                        printf("%f\n",a/b);
                        break;
                default:
                        printf("error\n");
                        return 0;

        }
}
运行结果:
input num1运算符num2:
12*3
36.000000
********************************************************************************
int main()
{
        int x,y,z;
        scanf("%d%d",&x,&y);
        if(x>y)
                z=x;
        else
                z=y;
        printf("the larger is %d",z);
        return 0;
}
/*
#include<stdio.h>
int main()
{
        int x,y,z;
        printf("input 2 num:\n",z);
        scanf("%d%d",&x,&y);
        z = x>y ? x : y;
                printf("the larger is %d\n",z);
        return 0;
}
*/
运行结果:
input 2 num:
12 34
the larger is 34
*******************************************************************************
#include<stdio.h>
int main ()
{
        int i,sum=0;
        i=1;
        while(i<=100)
        {
                sum +=i;
                i++;
        }
        printf("the sum of 1-100 is %d\n",sum);
        return 0;
}
运行结果:
the sum of 1-100 is 5050
*******************************************************************************
#include<stdio.h>
int main()
{
        int a;
        do
        {
                printf("please input a num:");
                scanf("%d",&a);
        }
        while(!(a>=1&&a<=10));
        printf("your input is %d\n",a);
        return 0;
}

运行结果:
please input a num:34
please input a num:21
please input a num:8
your input is 8
********************************************************************************
#include<stdio.h>
int main()
{
        int i,sum=0;
        for(i=0;i<=100;i++)
        {
                sum += i;
        }
        printf("%d\n",sum);
        return 0;
}
运行结果:
5050

********************************************************************************
#include<stdio.h>
int main()
{
        int num,c,a=1;
        printf("\n请输入任意一个正整数:");
        scanf("%d",&num);
        for(c=1;c<=num;c++)
                a=a*c;
        printf("\n%d的阶乘=%d\n",num,a);
        return 0;
}
运行结果:
请输入任意一个正整数:10

10的阶乘=3628800
*******************************************************************************
#include<stdio.h>
int main()
{
        int i,a,b,c;
        for(i=100;i<=200;i++)
                {
                        a=i/100;
                        b=(i/10)%10;
                        c=i%10;
                        if(a*a*a+b*b*b+c*c*c==i)
                                printf("%d is shuixianhuashu!\n",i);
                        else
                                printf("");
                }
                return 0;

}
运行结果:
153 is shuixianhuashu!
*******************************************************************************
#include<stdio.h>
int main()
{
        int i,sum=0;
        for(i=1;i<=100;i++)
        {
                if(i%3==0)
                {
                        printf("xx\n");
                        continue;
                }
                printf("%d\n",i);
        }
        return 0;
}
运行结果:
1
2
xx
4
5
xx
7
8
xx
10
11
xx
13
14
xx
16
17
xx
19
20
xx
22
23
xx
25
26
xx
28
29
xx
31
32
xx
34
35
xx
37
38
xx
40
41
xx
43
44
xx
46
47
xx
49
50
xx
52
53
xx
55
56
xx
58
59
xx
61
62
xx
64
65
xx
67
68
xx
70
71
xx
73
74
xx
76
77
xx
79
80
xx
82
83
xx
85
86
xx
88
89
xx
91
92
xx
94
95
xx
97
98
xx
100
*******************************************************************************
#include<stdio.h>
int main()
{
        int i,num;
        char answer;
        do
        {
                printf("Please input a num:");
                scanf("%d",&num);
                getchar();
                printf("\n");
                for(i=1;i<=10;i++)
                {
                        printf("=");
                }
                printf("\n该数是%d",num);
                printf("\n\n是否继续输入(y/n)?",num);
                answer = getchar();
        }while(answer != 'n');
        return 0;
}
运行结果:
Please input a num:6

==========
该数是6

是否继续输入(y/n)?y
Please input a num:8

==========
该数是8

是否继续输入(y/n)?n
********************************************************************************
#include<stdio.h>
void foo(void)
{
        unsigned int a=6;
        int b = -20;
        (a+b>6)?puts(">6"):puts("<=6");
}
int main()
{
        foo();
        return 0;
}
运行结果:
>6

********************************************************************************
#include<stdio.h>
int main()
{
        int i,j;
        for(i=0;i<5;i++)
        {
                for(j=0;j<abs(2-i);j++)
                {
                        printf(" ");
                }
                for(j=0;j<(3-abs(2-i))*2-1;j++)
                {
                        printf("*");
                }
                printf("\n");
        }
        return 0;
}
运行结果:
  *
 ***
*****
 ***
  *

--------------------------------------------------------------

#include<stdio.h>
int main()
{
        int a[3][3]={1,2,3,4,5,6,7,8,9};
        int i,j,x;
        for(i=0;i<3;i++)
        {
                for(j=0;j<3;j++)
                {
                        printf("%d",a[i][j]);
                }
                printf("\n");
        }

        for(i=1;i<3;i++)
        {
                for(j=0;j<i;j++)
                {
                        x=a[i][j];
                        a[i][j]=a[j][i];
                        a[j][i]=x;
                }
        }
        puts(" ");
        for(i=0;i<3;i++)
        {
                for(j=0;j<3;j++)
                {
                        printf("%d",a[i][j]);
                }
                printf("\n");
        }
        return 0;
}

运行结果:
123
456
789
 
147
258
369
********************************************************************************
#include<stdio.h>
int main()
{
        int a[10]={23,4,5,7,34,54,21,43,86,35};
        int i,j,max,min;
        max=a[0];
        min=a[1];
        for(i=0;i<10;i++)
        {
                if(a[i]>=max)
                {
                        max=a[i];
                }
        }
        for(i=0;i<10;i++)
        {
                if(a[i]<=min)
                {
                        min=a[i];
                }
        }
        printf("the maximum is %d\n",max);
        printf("the minimum is %d\n",min);
        return 0;
}

运行结果:
the maximum is 86
the minimum is 4
####################################################################
#include<stdio.h>
int main()
{
        int i,j,student[3][2];
        for(i=0;i<3;i++)
        {
                printf("\nPlease input num is %d tow terms scores:",i+1);
                for(j=0;j<2;j++)
                scanf("%d",&student[i][j]);
        }
        printf("num and scoer is:\n");
        printf("\n\tnum\tterm1\tterm2");
        for(i=0;i<3;i++)
        {
                printf("\n\t");
                printf("%d\t",i+1);
                for(j=0;j<2;j++)
                printf("%d\t",student[i][j]);
                printf("\n");
        }
        return 0;
}
运行结果:
Please input num is 1 tow terms scores:76 95

Please input num is 2 tow terms scores:67 80

Please input num is 3 tow terms scores:79 88
num and scoer is:

        num     term1   term2
        1       76      95

        2       67      80

        3       79      88
#########################################################################
#include<stdio.h>
#define N 5
int main()
{
        int a[N]={5,14,23,2,100};
        int i,j,tmp;
        printf("paixu qian:\n");
        for(i=0;i<N;i++)
        {
                printf("%d ",a[i]);
        }
        puts(" ");
        for(i=0;i<N-1;i++)
        {
                for(j=i+1;j<N;j++)
                {
                        if(a[i]>a[j])
                        {
                                tmp=a[i];
                                a[i]=a[j];
                                a[j]=tmp;
                        }
                }
        }
        printf("paixu hou:\n");
        for(i=0;i<N;i++)
        {
                printf("%d ",a[i]);
        }
        puts(" ");
        return 0;
}
运行结果:
paixu qian:
5 14 23 2 100 
paixu hou:
2 5 14 23 100
###########################################################################
#include<stdio.h>
int main()
{
        int a=5;
        double b=5.5;
        double *q = &b;
        int *p = &a;
        printf("a=%p\n",&a);
        printf("b=%p\n",&b);
        printf("p = %d\n",sizeof(p));
        printf("q = %d\n",sizeof(q));
        printf("char * = %d\n",sizeof(char *));
        return 0;
}
运行结果:
a=0xbf94bd94
b=0xbf94bd88
p = 4
q = 4
char * = 4
############################################################################
#include<stdio.h>
int main()
{
        printf("char *        =%d\n",sizeof(char *));
        printf("short *       =%d\n",sizeof(short *));
        printf("int *         =%d\n",sizeof(int *));
        printf("long long *   =%d\n",sizeof(long long *));
        printf("float *       =%d\n",sizeof(float *));
        printf("double *      =%d\n",sizeof(double *));
        int num = 0x12345678;
        printf("num = %x\n",num);
        int *p;
        p = &num;
        printf("p = %p\n",p);
        printf("*p = %x\n",*p);
        char *q;
        q = (char *)&num;
        printf("q = %p\n",q);
        printf("*q = %x\n",*q);
        short *k;
        k = (short *)&num;
        printf("k = %p\n",k);
        printf("*k = %x\n",*k);
        return 0;
}
运行结果:
char *        =4
short *       =4
int *         =4
long long *   =4
float *       =4
double *      =4
num = 12345678
p = 0xbf91ed74
*p = 12345678
q = 0xbf91ed74
*q = 78
k = 0xbf91ed74
*k = 5678
###########################################################################
#include<stdio.h>
int main()
{
        int num = 100;
        int *p;              //定义
        p = &num;
        printf("%d\n",num);
        printf("%d\n",*p);   //取内容
        return 0;
}
运行结果:
100
100
############################################################################
#include<stdio.h>
int main()
{
        int var = 10;
        int *ptr_var;
        ptr_var = &var;
        printf(" var is: %d",var);
        printf("\n var`s address is: %x",&var);
        printf("\n ptr_var`s address is: %x",&ptr_var);
        printf("\n var is: %d",*ptr_var);
        printf("\n var`s address is: %x\n",ptr_var);
        return 0;
}
运行结果:
 var is: 10
 var`s address is: bff64430
 ptr_var`s address is: bff6442c
 var is: 10
 var`s address is: bff64430
############################################################################
#include<stdio.h>
int main()
{
        int num1 = 50,num2=100;
        int *ptr1,*ptr2;
        ptr1=&num1;
        printf(" num1 的值为:%d",*ptr1);
        printf("\n num1 的地址为:%x\n",ptr1);
        ptr2=&num2;
        printf("\n num2 的值为:%d",*ptr2);
        printf("\n num1 的地址为:%x\n",ptr2);
        *ptr2=*ptr1;
        printf("\n new num2 的值为:%d",*ptr2);
        printf("\n new num2 的地址为:%x\n",ptr2);
        return 0;

}
运行结果:
 num1 的值为:50
 num1 的地址为:bfd31bb8

 num2 的值为:100
 num1 的地址为:bfd31bb4

 new num2 的值为:50
 new num2 的地址为:bfd31bb4
#######################################################################
#include<stdio.h>
int main()
{
        char *p,q;
        printf("%d %d\n",sizeof(p),sizeof(q));
        return ;
}
运行结果:
4 1
########################################################################
#include<stdio.h>
int main()
{
        int a[5],*pa=a;
        printf("pa   =%p\n",pa);
        printf("pa+1 =%p\n",pa+1);
        return 0;

}
运行结果:
pa   =0xbfd21d3c
pa+1 =0xbfd21d40
#########################################################################
#include<stdio.h>
int main()
{
        int *p1,*p2;
        int v=1;
        p1=&v;
        v+=10;
        p2=&v;
        if(p1==p2)
        {
                printf("\np1 and p2 are the same address!\n");
        }
        else
        {
                printf("\n not the same address!\n");
        }
        return 0;
}
运行结果:
p1 and p2 are the same address!
############################################################################
#include<stdio.h>
int main()
{
        int a[5] ={3,6,1,8,5};
        int i;
        int *p=a;
        for(i=0;i<5;i++)
        {
                printf("%d ",(*p)++);
        }
        printf("\n");
        for(i=0;i<5;i++)
        {
                printf("%d ",*p++);//先做++,但是为后++,先用p,再++,故先取内容再++
        }
        printf("\n");
        return 0;
}
运行结果:
3 4 5 6 7
8 6 1 8 5
#############################################################################
#include<stdio.h>
int main()
{
        int a[10]={1,3,5,7,9,11,13,14,15};
        int i,N;
        printf("插入前:");
        for(i=0;i<10;i++)
        {
                printf("%d ",a[i]);
        }
        puts(" ");
        printf("请输入一个要插入的数字:");
        scanf("%d",&N);
        for(i=8;i>=0;i--)
        {
                if(a[i]>N)
                {
                        a[i+1]=a[i];
                }
                else
                {
                        a[i+1]=N;
                        break;
                }
        }
        printf("插入后:");
        for(i=0;i<10;i++)
        {
                printf("%d ",a[i]);
        }
        printf("\n");
        return 0;
}

运行结果:
插入前:1 3 5 7 9 11 13 14 15 0 
请输入一个要插入的数字:14
插入后:1 3 5 7 9 11 13 14 14 15
#########################################################################
#include<stdio.h>
int main()
{
        int a[10][10]={1};
        int i,j;
        for(i=0;i<10;i++)
        {
                for(j=0;j<10;j++)
                {
                        if(j==0||i==j)
                        {
                                a[i][j]=a[0][0];
                        }
                        else
                        {
                                a[i][j]=a[i-1][j]+a[i-1][j-1];
                        }
                }
        }
        for(i=0;i<10;i++)
        {
                for(j=0;j<=i;j++)
                {
                        printf("%-3d ",a[i][j]);
                }
                printf("\n");
        }
        return 0;
}
运行结果:
1  
1   1  
1   2   1  
1   3   3   1  
1   4   6   4   1  
1   5   10  10  5   1  
1   6   15  20  15  6   1  
1   7   21  35  35  21  7   1  
1   8   28  56  70  56  28  8   1  
1   9   36  84  126 126 84  36  9   1 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值