【c學習-13】
阿新 • • 發佈:2018-08-28
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】