①运算符:
%取余
&&逻辑与
||逻辑或
位运算符:
unsigned char x=0x17,y;
y=~x;结果x=11101000.
%#X是带格式输出,效果为在输出前加0X;
八进制加0表示,例如076。
^异或运算符,相异为真。
unsigned char a =0xe4,b;
b=a<<3;则b=0x20.
②条件运算符“?:”
<表达式1>?<表达式2>:<表达式3>
int x=82,y=101;
x>=y?x+18:y-100 //运算结果为1
x<(y-11)?x-22:y-1 // 运算结果为60
逗号运算符:
float x=10.5,y=1.8,z=0;
z=(x+=5,y=x+0.2)从左到右
③sizeof 只针对数据类型,而不针对变量。
{int a = 5;
long b = 3;
long long c = 9;
printf ("%d %d %d\n",sizeof(a),sizeof(b),sizeof(c));
printf ("%d %d %d\n",sizeof(int),sizeof(long),sizeof(long long));
} 结果为4 4 8,4 4 8.
④int x=1,y=0,z=0;
x++ && y++ || ++z //结果为1(2 1 1)
!(x+1>0) && y++ || ++z //结果为1(1 0 1):y++不执行
x +=y==z,y=x+2,z=x+y+x>0 // x为2,y为4,z为1
⑤字符输入函数
#include <stdio.h>
int main ()
{
int c;
printf ("Enter a character :");
c = gerchar ();
printf ("%c--%d->hex%x\n",c,c,c);
}
运行结果:
Enter a character :A
A--65->hex41
⑥格式输入函数:
例1
scanf ("%4d%2d%2d",&yy,&mm,&dd);
若输入为19991915
则yy为1999,mm为10,dd为15
例2
scanf ("%2d %*3d %2d",&a,&b);
若输入12 345 67
则a为12,b为67.
清除
getchar()
⑧字符串输入函数
int main ()
{
char string [15];
printf ("Input a string :");
gets (string);
printf ("%s\n",string);
return 0;
}
"x"相当于'x'和空字符\0.
gets()函数不检查目标数组是否能够容纳输入
⑨
int main ()
{
float score;
printf ("请输入成绩:");
scanf ("%f\n",&score);
if(score<0||score>100)
printf("不在范围内");
else if (score>=90&&score<=100)
printf ("youxiu\n");
else if (score>=60&&score<90)
printf ("hege\n");
else
printf ("bujige\n");
return 0;
}
⑩
int main (int argc,char *argv[])
{
int x = -1;
if (x)
printf ("if:x=%d\n",x);
else
printf ("else:x=%d\n",x);
return 0;
} 运行结果为 if……
switch语句
switch(表达式一般是整型)
default
①①while语句
while(表达式)
{
statatments;
}
例子;
{int i =1;
int sum =0;
while(i<=100){
sum+=i;
i++;
}
printf ("1+2+^+%d\n",i,sum);
return 0;
①②do {
statatments;
}while();
①③水仙花数:
{int n =100;
int a,b,c;
while (n<=999)
{
a=n/100;
b=(n/10)%10;
c=n%10;
if(a*a*a+b*b*b+c*c*c==n)
printf("%d\n",n);
n++;
}
return 0;
}
①④九九乘法表:
int i,j;
for (i=1,i<=9;i++)
{
for (j=1;j<=i;j++)
printf("%d*%d=%d\t",j,i,i*j);
puts(**);
}