【C/C++】編程基礎

来源:https://www.cnblogs.com/yyyyfly1/archive/2022/03/27/16065050.html
-Advertisement-
Play Games

博客推行版本更新,成果積累制度,已經寫過的博客還會再次更新,不斷地琢磨,高質量高數量都是要追求的,工匠精神是學習必不可少的精神。因此,大家有何建議歡迎在評論區踴躍發言,你們的支持是我最大的動力,你們敢投,我就敢肝 ...


基本結構

寫一個簡單但完整的C程式。

利用printf 函數在屏幕上顯示輸出。

簡單C程式的結構。

書寫C程式的基本原則。

代碼設計

#include<stdio.h>
void main(void)
{
    printf("This is C!");
}

結果顯示

格式化輸出

格式化輸出

回車

代碼設計

#include<stdio.h>
void main(void)
{
	printf("Welcome to");
	printf("China!");
	printf("\nHow do we\njump\n\ntwo lines?\n");
	printf("\n");
	printf("It will rain\ntomorrow\n");
}

結果顯示

其他轉義字元

顯示轉義字元

代碼展示

#include <stdio.h>
void main(void)
{
	printf("Listen to the beep now.\a");
	printf("\nWhere is the 't' in cat \b?\n\n");
	printf("I earned $50 \rWhere is the money?\n");
	printf("The rabbit jumps \t\t two tabs.\n\n");
	printf("Welcome to\
			New York!\n\n");
	printf("From "			"Russia \
			with "			"Love.\n");
	printf("Print 3 double quotes	-\" \" \" \n");
}

結果顯示

變數:命名、聲明、賦值和列印值

命名變數

聲明數據類型

使用賦值語句

顯示變數的值

基本的賦值語句

代碼設計

#include <stdio.h>
void main(void)
{
	int month;
	float expense,income;
	month=12;
	expense=111.1;
	income=100.;
	printf("Month=%2d,Expense=$%.2f\n",month,expense);
	month=11;
	expense=82.1;
	printf("For the %2dth month of the year\n"
			"the expenses were $%5.2f \n"
			"and the income was $%6.2f\n\n",month ,expense,income);
}

結果顯示

算數運算符和表達式

運算數

算數運算符和他們的特點

算數表達式

代碼設計

#include <stdio.h>
void main(void)
{
	int i,j,k,p,m,n;
	float a,b,c,d,e,f,g,x,y;
	
	i=5; j=5;
	k=11;p=3;
	x=3.0;y=4.0;
	printf("......Initial values ......\n");
	printf("i=%4d,j=%4d\nk=%4d,p=%4d\nx=%4.2f,y=%4.2f\n\n",i,j,k,p,x,y);
	a=x+y;
	b=x-y;
	c=x*y;
	d=x/y;
	e=d+3.0;
	f=d+3;
	i=i+1;
	j=j+1;
	printf(".....Section 1 output ......\n");
	printf("a=%5.2f,v=%5.2f\nc=%5.2f,d=%5.2f\ne=%5.2f f==%5.2f\ni==%5.d,%5d\n\n",a,b,c,d,e,f,i,j); 
	
	m=k%p;
	n=p%k;
	i++;
	++j;
	e--;
	--f;
	
	printf(".....Section 2 output ......\n");
	printf("m=%4d,n=%4d\ni=%4d,j=%4d\ne=%4.2f,f=%4.2f\n",m,n,i,j,e,f);

	
}

結果顯示

從鍵盤輸入數據

使用scanf()函數

從鍵盤輸人數據

地址操作符&

double數據類型

代碼設計

#include <stdio.h>
void main(void)
{
	float income;
	double expense;
	int month,hour,minute;
	
	printf("What month is it?\n");
	scanf("%d",&month);
	printf("You have entered month=%5d\n",month);
	printf("Please enter your income and expenses\n");
	scanf("%f %1f",&income,&expense);
	printf("Entered income=%8.2f,expenses=%8.2lf\n",income,expense);
	printf("Please enter the time, e.g.,12:45\n");
	scanf("%d : %d",&hour,&minute);
	printf("Entered Time = %2d:%2d\n",hour,minute);
}

結果顯示

常量巨集及列印變數值的進一步討論

用define指令來定義常量

更多的轉換限定符及組成

科學計數法

轉換限定符中的標誌

代碼設計

#include <stdio.h>
#define DAYS_IN_YEAR 365
#define PI 3.14159

void main(void)
{	
	float income =1234567890.12;
	
	printf("CONVERSION SPECIFICATIONS FOR INTEGERS \n\n");
	printf("Days in year = \n"
			"[[%1d]] \t(field width less than actual)\n" 
			"[[%9d]] \t(field width greater than actual)\n"
			"[[%d]]  \t(no field width specified)  \n\n\n",
			DAYS_IN_YEAR, DAYS_IN_YEAR,DAYS_IN_YEAR);
	printf("CONVERSION SPECIFICATIONS FOR REAL NUMBERS\n\n");
	printf("Cases for precision being specified correctly \n");
	printf("PI = \n"
		   "[[%1.5f]] \t\t(field width less than actual) \n"
		   "[[%15.5f]] \t(field width greater than acutal) \n"
		   "[[%.5f]] \t\t(no field width specified) \n\n",
		   PI,PI,PI);
	
	printf("Cases for field width being specified correctly \n");
	printf("PI = \n"
		   "[[%7.2f]] \t\t(precision less than actual) \n"
		   "[[%7.8f]] \t\t(precision greater than actual) \n"
		   "[[%7.f]] \t\t(no precision specified) \n\n",
		   PI,PI,PI);
	
	printf("PRINTING SCIENTIFIC NOTATION \n\n");
	printf("income = \n"
		   "[[%18.2e]] \t(field width large,precision small) \n"
		   "[[%8.5e]] \t(field width and precision medium size) \n"
		   "[[%4.1e]] \t\t(field width and precision small) \n"
		   "[[%e]]    \t(no specifications) \n\n",
		   income, income,income,income   
		   );
	
	printf("USING A FLAG IN CONVERSION SPECIFICATIONS \n\n");
	printf("Days in year= \n"
		   "[[%-9d]] \t\t(field width large,flag included)\n",
		   DAYS_IN_YEAR
	);
	
}

結果顯示

混合類型的運算、複合賦值、運算符優先順序和類型轉換

算術運算符的優先順序

初始化變數

算術運算中的陷阱

在算術表達式中混合使用整型數和實型數

類型轉換

副作用

代碼顯示

#include<stdio.h>
void main(void)
{
	int i=1,j=1,
		k1=10,k2=20,k3=30,k4=40,k5=50,
		k,h,m,n;
	float a=7,b=6,c=5,d=4,
		  e,p,q,x,y,z;
	printf("Before increment, i=%2d,j=%2d\n",i,j);
	
	k=i++;
	h=++j;
	
	printf("After increment, i=%2d,j=%2d\n"
		   "				 k=%2d,h=%2d\n\n",i,j,k,h);
	m=6/4;
	p=6/4;
	n=6/4.0;
	q=6/4.0;
	
	printf("m=%2d,p=%3.1f\nn=%2d,q=%3.f\n\n",m,p,n,q);
	printf("Original k1=%2d, k2=%2d, k3=%2d, k4=%2d,k5=%2d\n",k1,k2,k3,k4,k5);
	
	k1 += 2;
	k2 -= i;
	k3 *= (8/4);
	k4 /= 2.0;
	k5 %= 2;
	
	printf("New k1=%2d, k2=%2d,k3=%2d,k4=%2d,k5=%2d\n\n",
		  k1,k2,k3,k4,k5);
	e=3;
	x=a+b-c/d*e;
	y=a+(b-c)/d*e;
	z=((a+b)-c/d)*e;
	
	printf("a=%3.0f,b=%3.0f,c=%3.0f\nd=%3.1f,e=%3.1f\n\n",
		   a,b,c,d,e);
	
	printf("x= a + b -c  /d *e = %10.3f \n"
		   "y= a +(b -c) /d *e = %10.3f \n"
		   "z=((a + b)-c /d)*e = %10.3f\n", x,y,z); 
}

結果顯示

在黑夜裡夢想著光,心中覆蓋悲傷,在悲傷里忍受孤獨,空守一絲溫暖。 我的淚水是無底深海,對你的愛已無言,相信無盡的力量,那是真愛永在。 我的信仰是無底深海,澎湃著心中火焰,燃燒無盡的力量,那是忠誠永在
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、前言 在上一篇文章中,介紹了Flutter的開發環境搭建流程,創建並運行成功一個flutter項目,用戶界面呈現也通過Android虛擬機實現線上查看效果。 但是對於一個前端來說,用 VS Code 編輯器的同學肯定很多,第一次接觸Flutter開發對於Android Studio 編輯器可能不 ...
  • 起因 由於項目App迭代,一個佈局發生了改變。因此產生了一個奇怪的問題,按道理,滑動NestedScrollView的時候,AppBarLayout會上移。這是appbar_scrolling_view_behavior和scroll|enterAlwaysCollapsed使用的常規操作嘛。但是拖 ...
  • 學習Flutter,首先需要搭建好Flutter的開發環境,下麵我將一步步帶領大家搭建開發環境並且成功運行flutter項目。 Flutter環境配置主要有這幾點: 系統配置要求 Java環境 Flutter SDK Android 開發環境 ***以下是基於在Window操作系統上安裝和配置Flu ...
  • 一、變數與屬性的區別; 1. 概念 什麼是變數? 變數:變數是一個存儲數據的容器,本質:變數是記憶體裡面的一個空間,通過變數名來獲取數據;聲明(var)一個變數就是在記憶體裡面獲取一個存儲空間。 什麼是屬性? 為元素提供各種附加信息的就是屬性,存在對象裡面表示對象有什麼樣的特征,常用名詞來表示,它總是以 ...
  • Array.find((item,indexArr,arr)=>{}) 掌握 找出第一個符合條件的數組成員。 它的參數是一個回調函數,對所有數組成員依次執行該回調函數。 直到找出第一個返回值為true的成員,然後返回該成員。 如果沒有符合條件的成員,則返回undefined。 -- 找出第一個大於1 ...
  • 客戶端通過虛擬ip(192.168.0.45)進行訪問haproxy,通過keepalived會將其發放到MASTER節點上的haproxy,若MASTER節點上的Haproxy宕機,則會發放到SLAVE節點上,通過Haproxy會訪問到RabbitMQ集群,通過集群訪問各個RabbitMQ ...
  • 不知大家可曾想過這樣一些問題:“在基於XML或基於Java的顯示配置中,假如需要配置的Bean很多,這時把所有Bean的配置信息全都填在一個配置文件里,難道不會導致配置文件非常臃腫,非常難以維護嗎?還有,假如因為某些原因不得不把一些Bean的配置信息填在XML配置文件里,把一些Bean的配置信息填在 ...
  • HashMap:是基於哈希表的Map介面實現。 * 哈希表的作用是用來保證鍵的唯一性的。 * * HashMap<String,String> * 鍵:String * 值:String */ package Day18; import java.util.HashMap; import java. ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...