創客學院9天C語言二
阿新 • • 發佈:2018-11-23
①運算子:
%取餘
&&邏輯與
||邏輯或
位運算子:
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(**);
}