1. 程式人生 > >【c學習-13】

【c學習-13】

pow(x 字符數 print 判斷 ssa python 常量 ++ 叠代

/*庫函數 1:數學函數庫:math.h abs():絕對值; acos(),asin(),atan():cos,sin,tan的倒數 exp():指數的次冪 pow(x,y):x的y次冪 log():對數 rand():隨機數 sqrt():平方根 sin(),cos(),tan():正弦,余弦,正切 floor:求整 fmod:取余 2:字符庫函數:ctype.h 布爾判斷:true=>1,false=>0 isalnum():判斷字符是不是字符或數字 isalpha():判斷字符是不是數字 isdgit():判斷字符是不是在1-9之間 3:字符串函數:string.h strcat(x,y):連接字符串 strcmp(x,y):比較字符串 strlen():字符串的長度 tolower():將字符串轉換為大寫 toupper():將字符串轉換為小寫 */ #include #include #define MAX(a,b)((a)>(b)?(a):(b)) //定義參數宏 #include //定義字符變量 void testFunction(){ int ch=11; printf("isalnum:%d\nisalpha:%d\nisdgit%d\n\a",isalnum(ch),isalpha(ch), isdigit(ch)); /* if(isalnum(ch)){ printf("True:\n\a"); }else{ printf("False:\n\a"); } */ //定義指針變量 /* int *p1,*p2; printf("請輸入a和b的值:\n"); scanf("%d%d",p1,p2); //調用定義的參數宏 printf("MAX:%d\n",MAX(p1,p2)); float a=7; float b=45; printf("%lf\nrand:%d\nsqrt:%lf\nfloor:%lf\n",log10(b),rand(),sqrt(b),floor(b)); printf("pow:%lf\nfmod:%d\n",pow(a,b),fmod(b,a)); printf("exp:%lf\n",exp(a)); printf("acos:%d\n",acos(45)); printf("abs:%d\na:%d\n",abs(a),a); */ } int main(){ testFunction(); } /* #include #define tag(n) printf("cpy"#n"=%d",cpy##n) //"##"標記粘貼符號 int main(void){ int cpy18=19; tag(18); } */ /* #include #define MAX(a,b)((a)>(b)?(a):(b)) //定義參數宏 void testFunction(){ //定義指針變量 int *p1,*p2; printf("請輸入a和b的值:\n"); scanf("%d%d",p1,p2); //調用定義的參數宏 printf("MAX:%d\n",MAX(p1,p2)); } int main(){ testFunction(); } */ /*文件輸入輸出練習*/ #include #include #define SIZE 10 //定義宏常量 //定義結構體 struct struct_type{ char name[10]; int age; int id; char addr[10]; }stu[SIZE]; //初始化結構體成員數組長度 //定義保存結構體輸出數據的函數 int main(){ //void save(){ //定義指針 FILE *fp; //計數器 int i=0; //判斷文件是否存在 if(fp=fopen("test.txt","wb")==NULL){ printf("文件不存在:\n"); exit(0); } for(i=0;i #include #define tag(n) printf("cpy=n,"%d",##n) /* #define message_for(a,b)\ // "\"宏延續符 printf("name is" #a "and age is"#b ); // "#"字符常量化運算符 */ //void testFunction(){ //de /* int testFunction(void){ //int x,y; message_for("liupeng",18); */ /* FILE *fp; char buff[255] fp=fopen("C:\cfree5\include\1.txt","w+"); fscanf(fp,"%s",buff); //讀字符數組首地址 printf("%s\n",buff); fgets(buff,255,(FILE*)fp); //讀取字符數組全部地址 printf("%s\n",buff); */ /* /* FILE *fp; fp=fopen("1.txt","w+"); */ /* fputc("這是一個文件",fp); fprintf(fp,"這是一個文件hello world"); fclose(fp); /* struct struct_3{ int a:3; //允許調用1次 // int b:1; //int c:1; }str2; str2.a=2; printf("str2:%d\n",str2.a); str2.a=3; //第二次調用 printf("str2:%d\n",str2.a); //printf("str1:%d\n",sizeof(str1)); */ /* struct struct_2{ int a; int b; int c; }str1; struct struct_3{ int a:1; int b:1; int c:1; }str2; printf("str1:%d\n",sizeof(str1)); printf("str2:%d\n",sizeof(str2)); */ /* struct struct_1 { int a:1; //位域 :數據類型必須相同 int b:2; int c:5; /* data */ /* }x,*p; x.a=2; //構體成員表示1:無指針表示 "." p=&x; // 2:有指針表示 "->" p->b=3; printf("a:%d\nb:%lf\n",x.a,p->b); */ //初始化野指針 //定義一個字符串變量 /* char x="hello world"; printf("%p\n",strstr(x,"lo")); printf("%p\n",strchr(x,‘o‘)); int *p=NULL; //執行判斷 if(p){ puts("指針為野指針:\n"); }else{ puts("指針不為野指針\n"); } //對一些數據類型初始化 */ /* char x; int y; int *p; //打印出其默認值 printf("x:%c\ny:%d\n%p\n",x,y,p); /* for(;;){ //無限循環的另類表現方法 putchar(‘a‘); } } */ //} int main(void){ int cpy18=19; tag(18); /* // testFunction(); } /* void forFunction(){ int i; for(i=0;i<10;i++){ for(i=0;i<5;i++){ puts("*"); } } } */ /* function shellFunction{ echo "hello world"; } shellFunction $1; */ /* #line 100 #include #include #include #include #include #include #define X 10 #define Y 9 int main(){ //定義操作文件指針 FILE *fp; int i,j,k,n=3, char str[3][10],temp[3]; //定義指針和二維字符型數組 printf("請輸入你向文件傳遞的內容:\n"); for(i=0;i0) k=j; if(k!=i) strcpy(temp,str[i]); strcpy(str[i],str[k]); strcpy(str[],temp); } //判斷文件是不是可以打開 if(fp=fopen("2.txt","w")==NULL){ printf("文件不存在"); exit(0); } //向文件輸入內容 for(i=0;iY); printf("%d\n%d\n",CHAR_MAX,b); //lineFx(); } */ /*void*/ /* inline lineFx(){ int *i,*j; volatile i=j; // j=i; j=int(*)i; scanf("%d%d",i,j); //int *p; //p=&i scanf("%d",i) puts("hello world"); printf("%d\n%d\n",__LINE__,i,j); } */ #line 100 #include #include #include #include void lineFx(); int main(){ _complex x=1+3i; //lineFx(); } /*void*/inline lineFx(){ int *i,*j; volatile i=j; // j=i; j=int(*)i; scanf("%d%d",i,j); //int *p; //p=&i scanf("%d",i) puts("hello world"); printf("%d\n%d\n",__LINE__,i,j); } /*文件*/ /* #include #include void fileFunction(){ FILE *in,*out; //定義文件指針及字符型變量 char filename_1[10],filename_2[10],ch; //分別輸入文件名 printf("請輸入filename_1:\n"); scanf("%s",filename_1); printf("請輸fielname_2:\n"); scanf("%s",filename_2); //判讀這連個文件是不是存在 if(in=fopen(filename_1,"r")==NULL){ printf("filename_1不存在"); //輸入文件 exit(0); } //判讀這連個文件是不是存在 if(out=fopen(filename_2,"w")==NULL){ //輸出文件 printf("filename_2不存在"); exit(0); } while(!feof(in)){ //文件打開錯誤 ch=fgetc(in); fputc(ch,out); putchar(ch); } putchar(10); //換行 fclose(in); //關閉輸入和輸出文件 fclose(out); } int main(){ fileFunction(); } */ /* #include #include int fileFunction(){ //定義文件指針 FILE *fp; //定義字符變量和字符數組 char ch,filename[10]; //getchar(ch); //輸入字符 printf("請輸入你的文件名:\n"); scanf("%s",&filename); //判斷文件是不是存在 if(fp=fopen(filename,"w")==NULL){ printf("文件不存在:\n"); exit(0); } ch=getchar(); printf("請在輸入一個字符#\n"); ch=getchar(); while(ch!=‘#‘){ fputc(ch,fp); //寫入文件 putchar(ch); ch=getchar(); } fclose(fp); putchar(10); return 0; } int main(){ fileFunction(); } */ //#include /*void fileFunction(){ FILE *fp; //判斷文件是否存在 if(fp=fopen("index5.c","r")==NULL){ //打開文件 puts("文件不存在:\n"); exit(0); fclose("index5.c"); //關閉文件 } } int main(){ fileFunction(); } */ //#include /* void enumFunction(){ ); }*/ //enum enum_var{a=1,b=2,c=3,d=4}; /* enum{A=1,B=2,C=3,D=4}enum_var_2; int main(){ //enumFunction(); printf(enum_var_2); } */ /*鏈表*/ /*#include struct st{ struct st *next; int name[10]; int age; };; int main(){ //建立三個節點,向內存申請指針 struct st a,b,c,*head,*p; //初始化這三個節點 a.name=1;a.age=18; b.name=2;b.age=19; c.name=3;c.age=20; //將頭指針指向起始a節點 head=&a; //同理,逐個將前一個節點指向下一個節點 a.next=&b; b.next=&c; c.next=NULL; p=head; //對a,b,c這三個節點輸出 do{ printf("a:%s\nb:%d\n",p->name,p->age); p=p->next; }while(p!=NULL); } */ /*結構體練習*/ /*#include void structFunction(){ //定義一個結構體 struct lannuage{ char name; int id; char content[10]; }; //初始化一個二維結構體成員 struct lannuage la[4]={ {"c",1,"include"}, {"python",2,"import"}, {"javascript",3,"alert"}, {"php",4,"echo"} }; //向內存申請一個指針 struct lannuage *p; //遍歷這個二維結構體成員 for(p=la;pname,p->id,p->content); } } int main(){ structFunction(); } //#define X "結構體成員1和結構體成員2相等" //定義一個結構體存放學生信息 //void structFunction(){ /*typedef*/ /*struct stu{ char name[10]; float score; int id; }; int main(){ //初始化學生1-2的結構體變量 struct stu student1;struct stu student2; printf("請輸入第一個學生的姓名和成績:\n"); scanf("%s,%lf",&student1.name,&student1.score); printf("請輸入第二個學生的成績和姓名:\n"); scanf("%s,%lf",&student2.name,&student2.score); //對兩個結構體進行大小判斷 if(student1.score>student2.score){ //輸出結構體成員大的值 printf("stu1name:%s\n,stu1score:%lf\n", student1.name,student1.score); }else if(student1.score #include //聲明1: /* typedef struct { char name[10]; int age; float money; }structtest1; structtest1 st1; st1.age=18; */ //聲明2 struct structtest2{ char name[10]; int age; float money; }st2={"liupeng",18,20.0}; //聲明3 /* struct structtest3{ char name[10]; int age; float money; }st3; st3.money=20.0; */ int main() { printf("st2:%d\n",/*st1.name*/st2.age/*st3.money*/); } /* void check(*); //聲明檢查函數 int i,*p1; //定義指針和計數器 p1=(int *)malloc(5 *sizeof(int));//為指針開辟一塊空間 for(i=0;i<5;i++) //循環遍歷指定要輸入的值 { scanf("%d",&p+i); } check(p1); //引用檢查函數 return 0; } //定義檢查函數 void check(*p){ int i; //計數器 for(i=0;i<5;i++){ //循環篩選出值<60的 if(p[i]<60){ printf("%d",p[i]); } } */ #include #include #include //定義字符變量 char ch=‘a‘; if(isalnum(ch)){ printf("True:\n\a"); }else{ printf("False:\n\a"); } #define MAX(a,b)((a)>(b)?(a):(b)) //定義參數宏 void testFunction(){ //定義指針變量 int *p1,*p2; printf("請輸入a和b的值:\n"); scanf("%d%d",p1,p2); //調用定義的參數宏 printf("MAX:%d\n",MAX(p1,p2)); int a=-1; printf("a:%d\na:%d\n",abs(a),a); } int main(){ testFunction(); } /* #define tag(n) printf("cpy"=#n"%d",cpy##n) int main(void){ int cpy18=19; tag(18); }*/ /*練習*/ #include #define tag(n) printf("cpy=n"%d",cpy=##n) void testFunction(){ int cpy18=19; tag(18); } // printf("name is" #a "and age is" #b ); //結構體和含有位域的結構體大小比較 //位域的執行次數 /* FILE *fp; char buff[255]; fp=fopen("C:\cfree5\include\1.txt","w+"); fscanf(fp,"%s",buff) //讀字符數組首地址 printf("%s\n",buff); fgetc(fp,255,FILE(*fp)); //讀取字符數組全部地址 printf("%s\n",buff); */ /* fputc(fp,"這是一個文件"); fprintf("這是一個文件",fp); fclose(fp); */ /* struct struct_2{ int a; int b; int c; }str1; struct struct_3{ int a:1; //允許調用1次 // int b:1; //int c:1; }str2; str2.a=2; printf("str2:%d\n",sizeof(str2.a)); str2.a=3; //第二次調用 printf("str2:%d\n",sizeof(str2.a)); //printf("str1:%d\n",sizeof(str1)); */ /*結構體的兩種表示及位域*/ /* struct struct_1 { int a:1; //位域 float b:2; double c:5; /* data */ /* }x,*p; x.a=2; p=&x; p->b=3; printf("a:%d\nb:%lf\n",x.a,p->b); */ /* //初始化野指針 int *p=NULL; //執行判斷 if(p){ puts("指針為野指針:\n"); }esle{ puts("指針不為野指針\n"); } /* for(;;){ putchar(‘a‘); } register int a; scanf("%d",&a); printf("format\a"); void *malloc(int); puts("a"); */ } int main(){ testFunction(); } //定義叠代器 /* int iterInval; char string[10]; for(iterInval=0;iterInval<10;iterInval++){ scanf("%s",string); printf("%s",string); } //清除多余的文件輸入 fflush(stdin); gets(string); */ /* #pragma message("hello world") void testFunction(){ */ }

【c學習-13】