日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言学习2

發(fā)布時間:2025/3/21 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言学习2 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

函數(shù)

// 函數(shù)使用 // 輸入:最大最小值 // 輸出:范圍內所有整數(shù)之和 #include <stdio.h> int main() {int add(int,int);// 函數(shù)聲明// 自定義函數(shù)如果在main后, 在調用前要聲明(只注類型即可),否則會提示找不到該函數(shù)// 如果在main前,可不必聲明int a,b;printf("請輸入要求和的區(qū)域:\n");scanf("%d%d",&a,&b); //分別把變量賦值給了a,b printf("輸出求和后的結果:%d\n",add(a,b)); // 調用函數(shù) return 0; }int add(int a,int b) {int x = a, y = b,sum = 0;for(;x<=y;x++) {sum +=x;}return sum; } // 函數(shù)的遞歸:調用自身 // 輸入一個數(shù) ,求出對應的階乘,求出結果后打印輸出 #include <stdio.h> #include <stdlib.h> int main() {int div(int); // 函數(shù)聲明 int n;long num;printf("請輸入一個整數(shù):\n");scanf("%d",&n);num = div(n);printf("輸出%d的階乘為:%ld\n",n,num); }int div(int n) //定義函數(shù) {// 這里用到exit(0),所以需要導入 <stdlib.h>庫文件if(n<0){printf("輸入數(shù)據有誤\n");exit(0);} if(n==0||n==1) //0和1的階乘是1 return 1;// 遞歸調用函數(shù)自身else return n*div(n-1);}

結構體

// 結構體 #include <stdio.h>struct date // data是結構體名 {int year,month,day; // 結構體成員 };struct person {char name[15];// 在本結構體中引用另外一個結構體struct date born; }p1 = {"Jay",{1888,10,10}};int main() {struct person p2;printf("請輸入p2的信息,依次為姓名,出生年月日:\n");scanf("%s%d%d%d",&p2.name,&p2.born.year,&p2.born.month,&p2.born.day);// 輸出結構體的p1,p2的信息printf("%s出生于%d年%d月%d日\n",p1.name ,p1.born.year,p1.born.month,p1.born.day);printf("%s出生于%d年%d月%d日\n",p2.name ,p2.born.year,p2.born.month,p2.born.day); return 0; } #include <stdio.h> int main(){// 如果只需要 stu1 變量,后面不需要再使用結構體名定義其他變量,// 那么在定義時也可以不給出結構體名 /*struct{ // 在{前沒有寫結構體名 stu char *name; //姓名int num; //學號int age; //年齡char group; //所在小組float score; //成績} stu1;//給結構體成員賦值stu1.name = "Tom";stu1.num = 12;stu1.age = 18;stu1.group = 'A';stu1.score = 136.5;//讀取結構體成員的值printf("%s的學號是%d,年齡是%d,在%c組,今年的成績是%.1f!\n", stu1.name, stu1.num, stu1.age, stu1.group, stu1.score);*/ // 定義結構體時同時賦值 struct{char *name; //姓名int num; //學號int age; //年齡char group; //所在小組float score; //成績 } stu1, stu2 = { "Tom", 12, 18, 'A', 136.5 };//這里只對stu2賦值 printf("%s的學號是%d,年齡是%d,在%c組,今年的成績是%.1f!\n", stu1.name, stu1.num, stu1.age, stu1.group, stu1.score);return 0; } // 結構體數(shù)組 #include <stdio.h> struct{char *name; //姓名int num; //學號int age; //年齡char group; //所在小組float score; //成績 }class[] = {{"Li ping", 5, 18, 'C', 145.0},{"Zhang ping", 4, 19, 'A', 130.5},{"He fang", 1, 18, 'A', 148.5},{"Cheng ling", 2, 17, 'F', 139.0},{"Wang ming", 3, 17, 'B', 144.5} }; int main(){int i, num_140 = 0;float sum = 0;for(i=0; i<5; i++){sum += class[i].score;if(class[i].score < 140) num_140++;}printf("sum=%.2f\naverage=%.2f\nnum_140=%d\n", sum, sum/5, num_140);return 0; } // 求結構體大小// 1. 結構體變量中當前成員的偏移量必須是【當前成員大小】的整數(shù)倍(0被認為是任何數(shù)的整數(shù)倍) // 2.結構體大小必須是【所有成員】大小的整數(shù)倍,也即所有成員大小的公倍數(shù)。 // 第n個成員的偏移量=第n-1個成員的偏移量+第n-1個成員的大小(字節(jié)) // 結構體大小=最后一個成員的偏移量+最后一個成員的大小 // 對于嵌套的結構體,需要將其展開。對結構體求sizeof時,上述兩種原則變?yōu)?#xff1a;// 1. 展開后的結構體的第一個成員的偏移量應當是被展開的結構體中最大的成員的整數(shù)倍。// 2. 結構體大小必須是所有成員大小的整數(shù)倍,這里所有成員計算的是展開后的成員,而不是將嵌套的結構體當做一個整體。 #include <stdio.h> struct stu{char c1; char c2; int i; }; // 嵌套結構體 struct stu5 { short i; struct { char c; // ss.c的偏移量=4,不是2int j; } ss; int k; } ; int main() { printf("%d\n",sizeof(struct stu));// c1的偏移量是0// c2的偏移量=c1的偏移量+c1的大小=0+1=1,1是c2本身char的整數(shù)倍,無須補字符// i的偏移量=c2的偏移量+c2大小=1+1=2,2不是i本身int的整數(shù)倍 ,補2個字符,偏移量為4// 因此結構體大小=4+4=8 printf("%d",sizeof(struct stu5));//16return 0; }

結構體指針的使用

// 結構體指針的使用 // 結構體指針就是指向結構體變量的指針 #include <stdio.h> int main(){struct{char *name; //姓名int num; //學號int age; //年齡char group; //所在小組float score; //成績} stu1 = { "Tom", 12, 18, 'A', 136.5 }, *pstu = &stu1;// *pstu = &stu1相當于把stu1的地址幅值給pstu,指針指向地址,所以&//讀取結構體成員的值printf("%s的學號是%d,年齡是%d,在%c組,今年的成績是%.1f!\n", (*pstu).name, (*pstu).num, (*pstu).age, (*pstu).group, (*pstu).score);printf("%s的學號是%d,年齡是%d,在%c組,今年的成績是%.1f!\n", pstu->name, pstu->num, pstu->age, pstu->group, pstu->score);return 0; }

結構體數(shù)組指針的使用

// 結構體數(shù)組指針的使用 #include <stdio.h> struct stu{char *name; //姓名 8個字節(jié) int num; //學號 4個字節(jié) int age; //年齡char group; //所在小組 1個字節(jié)float score; //成績 4個字節(jié) }stus[] = {{"Zhou ping", 5, 18, 'C', 145.0},{"Zhang ping", 5, 18, 'C', 145.0},}, *ps; // struct定義了兩個數(shù)據類型,一個是結構體數(shù)組stus,一個是指針*ps int main(){//求數(shù)組長度int len = sizeof(stus) / sizeof(struct stu);printf("%d\n",sizeof(stus));//48,這里有2個這樣stu的類型,2*24=48 printf("%d\n",sizeof(struct stu)) ;//24printf("%d\n",len) ;//2printf("Name\t\tNum\tAge\tGroup\tScore\t\n");// 用指針變量輸出結構數(shù)組// 定義ps為指向stu類型的指針// 指針變量ps指向一個結構數(shù)組stus,這時結構指針變量ps的值是整個結構數(shù)組的首地址// 數(shù)組名字stus便是數(shù)組的首地址for(ps=stus; ps<stus+len; ps++){printf("%s\t%d\t%d\t%c\t%.1f\n", ps->name, ps->num, ps->age, ps->group, ps->score);} return 0; }

結構體指針作為函數(shù)參數(shù)

// 結構體指針作為函數(shù)參數(shù) // 計算全班學生的總成績、平均成績和以及 140 分以下的人數(shù) #include <stdio.h> struct stu{char *name; //姓名int num; //學號int age; //年齡char group; //所在小組float score; //成績 }stus[] = {{"Li ping", 5, 18, 'C', 145.0},{"Zhang ping", 4, 19, 'A', 130.5},};int main(){int len = sizeof(stus) / sizeof(struct stu);average(stus, len);return 0; } void average(struct stu *ps, int len){ //指針作為函數(shù)的參數(shù)int i, num_140 = 0;float average, sum = 0;for(i=0; i<len; i++){sum += (ps + i) -> score;if((ps + i)->score < 140) num_140++;}printf("sum=%.2f\naverage=%.2f\nnum_140=%d\n", sum, sum/len, num_140); }

共用體

#include <stdio.h> union type { int cid; //班級 char title[20]; //職稱 }; struct Person { char name[10]; //姓名 char sex; //性別 int age; //年齡 int flag; //標志是老師還是學生 union type tp; }; int main() { struct Person person[10]; int i; int num; char ch; printf("請輸入要錄入的人數(shù):\n"); scanf("%d",&num); for(i = 0;i<num;i++) { printf("請輸入第%d個人員的信息:\n",i + 1); printf("姓名: ");scanf("%s",&person[i].name);getchar(); printf("性別: ");scanf("%c",&person[i].sex);getchar(); printf("年齡: ");scanf("%d",&person[i].age); printf("職業(yè)標識符: ");scanf("%d",&person[i].flag); if(person[i].flag == 0) { printf("請輸入學生的班級id: "); scanf("%d",&person[i].tp.cid); } else if(person[i].flag == 1) { printf("請輸入老師的職稱: "); scanf("%s",&person[i].tp.title); } else { printf("輸入有誤,請重新輸入!\n"); i -= 1; } } printf("\n輸出所有錄入人員的信息:\n"); for(i = 0;i<num;i++) { printf("輸出第%d個人員的信息:\n",i + 1); printf("姓名: ");puts(person[i].name); printf("性別: ");printf("%c",person[i].sex); printf("\t年齡: ");printf("%d",person[i].age); if(person[i].flag == 0) { printf("\t學生的班級id: "); printf("%d\n",person[i].tp.cid); } else if(person[i].flag == 1) { printf("\t老師的職稱: "); puts(person[i].tp.title); } } return 0; }

枚舉

// 枚舉 //Mon、Tues、Wed 這些名字都被替換成了對應的數(shù)字。這意味著, //Mon、Tues、Wed 等都不是變量,它們不占用數(shù)據區(qū)(常量區(qū)、全局數(shù)據區(qū)、棧區(qū)和堆區(qū))的內存, //而是直接被編譯到命令里面,放到代碼區(qū),所以不能用&取得它們的地址。這就是枚舉的本質。 #include <stdio.h> int main(){enum week{ Mon = 1, Tues, Wed, Thurs, Fri, Sat, Sun } day;//枚舉值從 1 開始遞增 scanf("%d", &day);switch(day){case Mon: puts("Monday"); break;case Tues: puts("Tuesday"); break;case Wed: puts("Wednesday"); break;case Thurs: puts("Thursday"); break;case Fri: puts("Friday"); break;case Sat: puts("Saturday"); break;case Sun: puts("Sunday"); break;default: puts("Error!");}return 0; }

類型定義符

// 類型定義符 #include <stdio.h> struct Point {double x;double y;double z; }; struct Point oPoint1={100,100,0};// 等價于以下 typedef struct tagPoint {double x;double y;double z; } Point; Point oPoint1={100,100,0};

總結

以上是生活随笔為你收集整理的c语言学习2的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 91精品视频一区二区三区 | 精品免费久久 | 国产女人18毛片水真多1 | 娇妻被老王脔到高潮失禁视频 | 男女做网站 | 久热国产在线 | 天堂网亚洲 | 一级黄色电影片 | 好色婷婷 | 国产污污视频在线观看 | 日韩视频中文字幕在线观看 | 亚洲性欧美色 | 免费av免费观看 | 欧美成人免费网站 | 熟女肥臀白浆大屁股一区二区 | 97caoporn| 精品免费国产 | 男生桶女生肌肌 | 偷拍女澡堂一区二区三区 | 国产精品入口麻豆九色 | 男女视频一区二区 | 国产污视频在线 | 999久久 | 美女福利片 | 亚洲免费看片 | 中国一级免费毛片 | 天堂在线中文字幕 | 日韩福利视频一区 | 亚洲一区欧美 | 成人精品综合 | 五月天婷婷久久 | 日韩电影一区二区三区 | 日本在线看片 | 亚洲性图av | 少妇精品导航 | 日韩欧美在线免费观看 | 在线观看网页视频 | 国精产品一区一区三区免费视频 | 色老太hd老太色hd | 三年中文免费观看大全动漫 | 久久久久性色av无码一区二区 | 欧美精品激情视频 | 中文字幕最新 | 日韩女优一区二区 | 国久久久 | 亚洲国产视频在线观看 | 欧美性猛交乱大交xxxx | eeuss国产一区二区三区 | 蜜臀99久久精品久久久久久软件 | 成人观看 | 亚洲女优视频 | 野花视频免费在线观看 | 日韩成人在线免费视频 | 中文字幕在线免费观看 | 99视频网站 | 色婷婷综合网 | 国产做爰xxxⅹ高潮视频12p | 红桃视频黄色 | 中文字幕精品视频 | 日本a区 | 精品小视频在线观看 | 激情av中文字幕 | 午夜剧场免费观看 | 三极片黄色 | 欧美激情16p| 六月婷婷av| 日韩欧美精品久久 | 成 人 黄 色 片 在线播放 | 欧美一区二区最爽乱淫视频免费看 | 99re视频精品| 看黄网站在线 | 欧美人妻精品一区二区三区 | 黄色a级片在线观看 | 欧美国产日本在线 | 人人狠狠| 性视频黄色 | 欧美日韩人妻精品一区在线 | 久久久免费高清视频 | 啪啪官网 | 韩国三色电费2024免费吗怎么看 | 亚洲热在线观看 | 国产黄色一级网站 | 欧美视频1区 | 国产精品jizz在线观看老狼 | www 在线观看视频 | 国产盗摄精品 | 在线观看亚洲av每日更新 | 国产免费看黄 | 日韩黄色短视频 | 美女搞黄视频网站 | 毛片视频网站在线观看 | 国产午夜电影在线观看 | 国产美女极度色诱视频www | 国产91精品一区二区绿帽 | 中文字幕69 | 国产日韩欧美在线播放 | 国内精品久久久久久久久久久 | 鲁鲁在线| 99re这里只有 |