预习检查:
---------------------------------------------------------------------------------------------------------------------------
在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 = #
printf("p = %p\n",p);
printf("*p = %x\n",*p);
char *q;
q = (char *)#
printf("q = %p\n",q);
printf("*q = %x\n",*q);
short *k;
k = (short *)#
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 = #
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