<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      編程成長之路

      我們都是站在父母的肩上去看他們不曾看到的風景!加油!
        博客園  :: 首頁  :: 新隨筆  :: 聯系 :: 訂閱 訂閱  :: 管理

      王道 C語言督學營--初級階段

      Posted on 2023-06-14 01:17  來顆維C  閱讀(140)  評論(0)    收藏  舉報

      1-數據類型-常量-變量

      1.1符號常量

      #include<stdio.h>
      
      //1-符號常量
      #define PI 3+2  //不用在最后加分號
      int main()
      {
      	int i = PI * 2;  //i就是一個整形變量 變量i是4個字節
      	printf("i=%d\n", i);
      	printf("i size=%d\n", sizeof(i)); //sizeof用來計算變量i的大小
      
      	return 0;
      }
      //最終輸出結果是7,原因是符號常量PI是直接替換的效果,因此不可以寫成PI=8
      

      1.2float-浮點型常量

      	//浮點型常量  
      /* 表示方法:
      	小數形式:0.123
      	指數形式:3e-3(為3*10-3次方 即0.003)
      注意:字母e(或E)之前必須有數字,且e后面的指數必須為整數.
      正確示例:1e3  1.8e-3  -123e-6
      錯誤示例:e3 2.1e3.5 .e3
      
      通過float來定義浮點型變量 f占用4個字節空間大小
      */
      #include<stdio.h>
      
      int main()
      {
      	float f = 3e-3;
      	printf("f=%f\n", f);//字符型使用%f來進行輸出
      
      	return 0;
      }
      

      1.3字符型數據

      使用單引號括起來的一個字符是字符型常量,且只能包含一個字符! 例如:'a' 'A' '1' ' '是正確的字符型常量,而'abc' "a" " "是錯誤的字符型常量

      轉義字符:\n 表示換行 \b 表示退格 \ 表示反斜杠

      1.4字符變量

      /*字符型變量  大寫字符轉換小寫字符*/
      #include<stdio.h>
      
      int main()
      {
      	char c = 'A';
      	char b = 'a';
      	printf("%c\n", c + 32);//大寫轉換成小寫字符 以字符形式輸出
      	printf("%c\n", b - 32);//小寫轉換成大寫字符
      	printf("%d\n", c);//以數值形式輸出
      
      
      	return 0;
      }
      

      1.5字符串型常量

      字符串型常量是由一對雙引號括起來的字符序列.例如'a'是字符型常量,"a"是字符串常量.兩者是不同的 在C語言中規定在每個字符串常量的結尾加一個字符結束標志,以便系統據此判斷字符串是否結束.C語言規定以"\0"作為字符串結束標志.因此在計算字符串占用的內存單元時要加上\0.例如"CHINA"占用的不是5個字符,而是6個字符,大小為6個字節

      2-混合運算-printf講解

      2.1 混合運算-強制類型轉換場景

      整數進行觸發運算時,如果運算結果為小數,那么存儲浮點數時一定要進行強制類型轉換

      #include<stdio.h>
      
      //強制類型轉換
      int main()
      {
      	int i = 5;
      	float f = i / 2;//以整數輸出  這里做的是整型運算,因為左右操作數都是整型
      	float k = (float)i/2;//強制類型轉換 以小數輸出
      
      	printf("%f\n", f);
      	printf("%f\n", k);
      
      	return 0;
      }
      

      2.2 printf函數的介紹

      printf函數可以輸出各種類型的數據,包括整型、浮點型、字符串型等,實際原理是printf函數將這些類型的數據格式化為字符串后,放入標準輸出緩沖區,然后將結果顯示在屏幕上

      語法:

      #include<stdio.h>
      /* %c:輸出字符  %d:輸出帶符號的整數  %s:輸出一串字符  %f:輸出浮點數即小數*/
      
      //語法:int printf(const char* format, ...);
      
      int main()
      {
      	int age = 21;
      	printf("Hello %s,you are %d years old\n", "Bob", age);
      	//%s表示在該位置插入首個參數(一個字符串),%d表示第二個參數(一個整數)應該放在那里.
      	int i = 1001;//第一次定義了i
      
      	float f = 96.3;
      	printf("student number = %3d,score = %5.2f\n", i, f);//3d表示輸出結果占三個空格
      	
      	i = 100;//第二次不用定義i直接使用第一次定義的就可以
      	f = 98.21;
      	printf("student number = %-3d,score = %5.2f", i, f);//.2表示小數點后保留兩位 -3d表示向左對齊三個空格
      
      	return 0;
      }
      

      3-整型進制轉換

      /*在計算機中,1字節(byte)為8位(bbit),1位即二進制的1位,它存儲0和1,int型常量的大小是4字節,即32位   
      
      二進制 0和1  轉八進制(每三個數為一位)   
      
      十進制 0-9  123 轉十六進制 123/16  =7..11(11在十六進制里面就是b)=7b  就是用這個十進制數除16  轉八進制就除八
      
      八進制 0-7   轉二進制 例如:173 =1*8*8+7*8+3=64+56+3=123
      
      十六進制0-9 a-f
      
      1KB = 1024字節(byte)
      1MB = 1024KB
      1GB = 104MB
      
      */
      #include<stdio.h>
      
      int main()
      {
      	int i = 123;//一般賦值都是十進制 八進制 十六進制 沒有二進制一說
      //int i = 0123;//八進制賦值
      	//int i = 0x7b;//十六進制賦值
      	printf("%d\n", i);//以十進制輸出 化為二進制使用短除法(除2)
      	printf("八進制=%o\n", i);//一八進制輸出
      	printf("十六進制=%x\n", i);//一十六進制輸出
      
      
      	return 0;
      }
      //為什么顯示結果為7b 00 00 00 呢? 原因是英特爾的CPU采用了小端方式進行數據存儲,因此低位在前,高位在后
      
      

      4-scanf函數的標準輸入

      scanf函數的原理

      /*scanf函數讀取標準輸入 scanf %d %f 發現里邊有\n 空格,忽略
         scanf %c 不忽略內容
       */
      
      #include<stdio.h>
      #pragma warning(disable:4996)
      
      //scanf用來讀取標準輸入,scanf把標準輸入內的內容,需要放到某個變量空間里,因此變量必須取地址
      int main()
      {
      	int i;
      	char c;
          float f;
      
      	scanf("%d", &i);  //一定要取地址
      	printf("i=%d\n", i);
      	
      	rewind(stdin);//清空標準輸入緩沖區寫在兩個scanf函數之間  如果不寫該函數的話在執行結果時控制臺直接輸出兩個結果 在visualStdio2022環境中將fflush改成rewind
      	//fflush(stdin);  //清除標準輸入緩沖區  在CMakeLists環境中使用,在visaolstdio環境不起作用
      
      	scanf("%c", &c);//如果沒有寫rewind(stdin)函數,這一步就會阻塞
      	printf("c=%c\n", c);
          
          scanf("%f", &f);
      	printf("f=%f", f);
      
      	return 0;
      }
      

      出現如下的執行結果是沒有將上面的rewind(stdin)函數打開,此時scanf("%c",&c)會阻塞,原因是我們向標準輸入緩沖區中放入字符為'20\n',輸入'\n'(回車)后,scanf函數才開始匹配,scanf函數中的%d匹配整數20,然后放入變量i中,接著打印輸出,這是'\n'仍然在標準輸入緩沖區(stdin)內,如果第二個scanf函數為scanf("%d",&i),那么依然會發生阻塞,因為scanf函數在讀取整型數、浮點數、字符串時會忽略\n(回車)、空格等字符(忽略是指scanf函數執行時會首先刪除這些字符,然后在阻塞).scanf函數匹配一個字符時,會在緩沖區刪除對應的字符.因為在執行scanf("%c",&c)語句時,不會忽略任何字符,所以scanf("%c",&c)讀取了還在緩沖區中殘留的'\n'.總的來說就是%d %f輸出是不用寫rewind(stdin)函數會阻塞 而用%c輸入時要加rewind(stdin)函數

      image-20230615135333566

      scanf混合輸入多種數據局類型

      #include<stdio.h>
      #pragma warning(disable:4996)
      //scanf一次讀取多種數據類型
      int main()
      {
      	int i, ret;
      	float f;
      	char c;
      	ret = scanf("%d %c%f", &i, &c, &f); // ret是scanf匹配成功的個數
      	printf("i=%d,c=%c,f=%5.2f\n", i, c,f);
      
      
      	return 0;
      }
      

      5-運算符與表達式

      5-1 算術運算符與關系運算符的使用

      #include<stdio.h>
      
      int main()
      {
      	int a;
      	while(scanf("%d",&a))
      	{
      		if (3 < a && a < 10)//a大于3同時a小于10要這樣寫
      		{
      			printf("a is between 3 and 10\n");
      		}
      		else 
      		{
      			printf("a is not between 3 and 10\n");
      		}
      	}
      	
      
      
      	return 0;
      }
      

      5-2 邏輯運算符與賦值運算符,求字節運算符

      #include<stdio.h>
      #include<stdlib.h>
      #pragma warning(disable:4996)
      
      //判斷閏年
      int main()
      {
      	int year;
      	while(1)
      	{
      		printf("請輸入你要查詢的年份:\n");
      		scanf("%d", &year);
      		if(year%4==0&&year%100!=0 ||year%400==0)
      		{
      			printf("%d is lead year\n",year);
      		}
      		else
      		{
      			printf("%d is not lead year\n",year);
      		}
      	}
      
      
      	return 0; 
      }
      
      
      

      短路運算

      #include<stdio.h>
      #include<stdlib.h>
      
      //邏輯與和邏輯或  短路運算
      int main()
      {
      	int i = 0; // 0 表示假 1表示真
      	i&& printf("you can't see me !\n");//短路運算 :當i為假時,不會執行邏輯與后的表達式,稱為短路運算 
      
      	i = 0;
      	i || printf("you can see me !\n");
      	
      	//相當于if判斷條件的真假
      	/*if(i)
      	{
      		printf("you can't see me !\n");
      	}
      	else 
      	{
      		
      	}*/
      
      
      
      	return 0;
      }
      

      加后賦值與乘后賦值運算符使用

      #include<stdio.h>
      
      
      //加后賦值與乘后賦值用法
      int main()
      {
      	int a = 1, b = 2;
      	a += 3; //a = a + 3;  //正確寫法
      	b *= 5; // b = b*5;
      	//b + 2 = a;// 錯誤寫法
      	printf("a = %d\n", a);
      	printf("b = %d\n", b);
      
      
      	return 0;
      }
      

      求字節運算符

      #include<stdio.h>
      #include<stdlib.h>
      
      //sizeof實際是一個運算法,很多人會將它認為是函數 他不是函數
      int mian()
      {
      	int i;
      	printf("i is %d\n", sizeof(i));
      
      
      	return 0;
      }
      

      6選擇--循環

      if -else語句

      #include<stdio.h>
      #include<stdlib.h>
      
      
      int main()
      {
      	int i;
      
      	while(1)
      	{
      		scanf("%d", &i);
      		if(i>0)//良好的編程習慣,在if下邊使用大括號 讓代碼更加的清晰
      		{
      			printf("i is bigger than 0\n");
      		}
      		else
      		{
      			printf("i is not bigger than 0\n");
      		}
      	}
      
      
      
      	return  0;
      }
      

      while、for循環

      #include<stdio.h>
      
      //while循環,先循環在執行語句
      int main()
      {
      	int i = 1;
      	 int sum = 0;//計算從1-100的和
      	while(i<=100)
      	{
      		sum += i; //或者sum = sum + i;
      		i++; //等價于i = i + 1  沒有這一步就會進入死循環了
      	}
      	printf("sum = %d\n", sum);
      
      
      	return 0;
      }
      
      #include<stdio.h>
      //for循環
      
      int main()
      {
      	int i, sum;
          //初始化
      	for(i = 1;i<=100;i++)//相比while循環for循環在一條語句內完成初始化  for循環的好處是不會讓編程者忘記i++這一步操作從而忘記表達式二i<=100進行假的操作
      	{
      		sum += i;//等價于sum = sum + i
      	}
      	printf("sum = %d\n", sum);
      
      	return 0;
      }
      //使用for循環還是使用while循環根據個人編程喜歡和解決問題的效率來選擇
      
      #include<stdio.h>
      
      
      //continue語句的作用:結束本次循環,即跳過循環體中下面尚未執行的語句,接著是否進行下一次循環的判斷
      
      
      //求1-100的奇數和
      int main()
      {
      	int i, sum = 0;
      		for(i = 0;i<=100;i++)//在for后面加分號不會死循環,會結果不對
      		{
      			if(i%2==0)
      			{
      				continue;//continue下面的語句不會得到執行 直接跳出循環體 直接執行printf函數
      			}
      			sum = sum + i;
      		}
      		printf("sum=%d\n", sum);
      
      
      	return 0;
      }
      

      break語句

      /*break語句的作用是結束整個循環過程,不在判斷執行循環的條件是否成立*/
      
      #include<stdio.h>
      
      int main()
      {
      	int i, sum = 0;
      	for(i=1;i<=100;i++)
      	{
      		if(i>2000)
      		{
      			break;
      		}
      		sum += i;//sum = sum + i
      	}
      
      
      
      	return 0;
      }
      
      主站蜘蛛池模板: 日本一卡二卡不卡视频查询| 中国亚州女人69内射少妇| 久久精品一区二区东京热| 午夜在线不卡| 亚洲欧美人成电影在线观看| 国产91色在线精品三级| 久久综合国产精品一区二区| 草草浮力影院| 激情综合五月| 五月婷之久久综合丝袜美腿| 中国熟女仑乱hd| 亚洲人成网站在线播放2019| 狠狠爱五月丁香亚洲综| 久热re这里精品视频在线6| 亚洲天堂精品一区二区| 亚洲国产精品久久久天堂麻豆宅男 | 亚洲AV无码久久久久网站蜜桃| 成人午夜激情在线观看| 天天摸天天做天天添欧美| 虎白女粉嫩尤物福利视频| 国产三级精品三级在专区| 亚洲人成网站在线在线观看 | 亚洲高清偷拍一区二区三区| 97se综合| 欧美成人精品三级网站| 久久国产成人av蜜臀| 临清市| 亚洲永久一区二区三区在线 | 部精品久久久久久久久| 亚洲无线码中文字幕在线| 开心激情站开心激情网六月婷婷| 亚洲高清国产自产拍av| 国产精品不卡一二三区| 国产白丝无码免费视频| 亚洲欧美一区二区成人片| 亚洲欧美中文日韩V日本| 人妻丝袜AV中文系列先锋影音| 亚洲乱女色熟一区二区三区| 国产又粗又猛又爽又黄| 亚洲国语自产一区第二页| 亚洲成人精品综合在线|