A. c語言的書寫規則主要有哪些呢
從書寫清晰,便於閱讀,理解,維護的角度出發,在書寫程序時
應遵循以下規則:
1.一個說明或一個語句佔一行。
2.用{}
括起來的部分,通常表示了程序的某一層次結構。{}一般與該結構語句的第一個字母對齊,並單獨佔一行。
3.低一層次的語句或說明可比高一層次的語句或說明縮進若干格後書寫。以便看起來更加清晰,增加程序的可讀性。在編程時應力求遵循這些規則,以養成良好的編程風格。
有空格的地方就可以換行!
if(
a
==
b
&&
e
==
c
){}
和
if(
a
==
b
&&
e
==
c
)
{
}
是完全一樣的
B. C語言中的「偽碼」到底是啥
要耐心看啊!別看字多,容易讀的!!!要分成3段讀,不要一口氣看完!
1.scanf就是輸入一個數然後回車結束。聽不懂不好意思、
別理
他
------
---------------------------------------------------------------------
舉個例子:
int
i;
//定義i
然後我們提示用戶輸入,
printf("請輸入一個數:");
接著,我們使用scanf("%d",&i);
輸入
完數
後,我們跟用戶說聲你剛才輸的數
printf("您剛才輸入的數是%d",i);
----------------------------------------------------------------------------
分析:
首先定義int
i是沒有問題要問的。
之後用printf也是沒有問題要問的,要問的是在printf之後。
電腦執行到printf看到後面的
scanf函數
,便停了下了,等待用戶輸入。所以在一個
c語言程序
里,
有scanf函數就要停下來等待用戶輸入。但是用戶輸入完後要怎麼跟電腦說:」我輸入完了「?
就是用scanf函數本身要
按回車鍵
的功能。
scanf函數意思」總結「:電腦碰到scanf要停下,等待用戶輸入,用戶輸入後按回車告訴
電腦輸入
ok,電腦
繼續執行
下面的代碼。
樓主你說的沒有設置,是不可能設置的。
2.這個問題簡單。
scanf("%d",&i);
首先我們輸入88,這之後一個空格,很好,你沒有用回車鍵告訴電腦,而是用空格鍵。
88之後空格,然後不管你輸入多少,比如88
544還是88
9990,或者在一個空格88
878
897
這些數字里,
翻譯器
只取88,為什麼呢?其實空格和回車差不多,講講區別吧!
空格:我們輸入空格之後,可以繼續輸入數字,不管是多少,都可以。
回車:而我們輸入回車後,電腦就立即把回車鍵之前你所寫的看做數,就如,88然後回車,電腦把回車之前的88看做用戶所輸入的數。但是,如果包含空格鍵,直接把後面的數省略!就如:
88
99,88後面有空格,空格和99將被忽略。
講了這么多,總而言之,輸入88,然後按空格的時候,電腦已經把88看做一個數了,所以後面的99是另一個數,所以不寫入&i。
擴展知識:如果要輸入倆個數甚至n個數,代碼如下:
#include
"stdio.h"
main()
{
int
i;
int
a;
pirntf("請輸入倆個數(輸入第二個數用空格鍵隔開!)");
scanf("%d
%d",&i,&a);
printf("這倆個數分別是:%d和%d",i,a);
}
3.上面已經說了,空格和回車差不多個功能,按空格時電腦把前面所輸入的看作是數,
例如輸入88然後空格,然後99,空格前的88已經賦給i了,99不能賦值,直接忽略。
不過,樓主是空格空格,但是空格之前沒有用戶所輸入的,等於沒有。所以給88.
----------------------------------------------------------------------------------------------------------------------
如果是新手,可以看擴展知識,裡面有一個錯誤,大家去找找;如果是高手,就可以忽略這個錯誤。
C. c語言的偽碼怎麼寫 有什麼規則嗎
其實要判斷閏年很容易,就是一個語句if(((year%4==0)&&(year%100!=0))||(year%400==0))如果成立就是閏年了,如果你要更詳細的,或是其他的內容,請追問
D. c語言偽碼書寫的規范是什麼
偽碼書寫可以參考C代碼規范。
1.
1.1符號命名規則
1.1.1符號名包括模塊名、常量名、標號名、子程序名等。這些名字應該能反映它所代表的實際東西,具有一定的意義,使其能夠見名知義,有助於對程序功能的理解。命名採用匈牙利命名法。規則如下:
(1)所有宏定義、枚舉常數和const變數,用大寫字母命名。在復合詞里用下劃線隔開每個詞。
(2)復合詞中每個單詞的第一個字母大寫。除了規則5.1.1.1以外,避免使用下劃線。
(3)類、類型定義和枚舉型名的第一個字母大寫。
(4)函數名是復合詞的,第一個詞採用全部小寫,隨後每個單詞採用第一個字母大寫,其它字母小寫方式;如果是單個詞的,採用全部小寫方式。
(5)循環變數可採用i,
j,
k等,不受上述規則限制。
(6)
類的成員變數應採用m_開頭。
(7)
全局變數詞頭為g_
。
(8)
臨時變數詞頭為tmp_
。
(9)
對結構體內的變數命名,
遵循變數的具體含義命名原則
(10)用小寫字母的前綴表示變數的類型,前綴的下一個字母用大寫。
表
1
詞頭
類型
詞頭
類型
ch
char
l
long
i
integer
u
unsigned
b
boolean
p
pointer
f
float
lp
long
pointer
d
double
s
string
st
structure
sz
ASCII
string
by
byte
n
short
int
H
handle
x,y
分別為x,y坐標
dw
DWORD
fn
function
表
2
詞頭
變數名
詞頭
變數名
task
task
sig
signal
sb
binary
semaphores
wd
watchdog
sm
mutual
exclusion
tm
timer
sc
counting
semaphores
msg
message
pipe
pipe
例:
#define
ARRAY_SIZE
24
/*規則5.1.1.1*/
int
g_iFlag;
class
MyClass
/*規則5.1.1.3*/
{
};
void
someFunc(
)
/*規則5.1.1.2和5.1.1.4*/
{
int
nArray[ARRAY_SIZE];
unsigned
char
uchByte;
char
szName[
];
char
*pszName
=
szName;
}
(11)有些詞頭(如p和u)可以和其它詞頭組合。
例:WDOG_ID
wdId;
WDOG_ID
g_wdId;
/*全局watchdog
Id,故以g_開頭*/
1.1.2名字的長度一般不要過長或過短。過長的名字會增加工作量,使程序邏輯流程變得模糊;過短的名字無法表達符號的實際意義。約定長度范圍:3-31;
1.2數據和函數說明
1.2.1數據說明次序應當規范化,使數據屬性容易查找,也有利於測試、排錯和維護。說明的先後次序應固定,應按邏輯功能排序,邏輯功能塊內建議採用下列順序:整型說明、實型說明、字元說明、邏輯量說明。
1.2.2如果設計了一個復雜的數據結構,應當通過注釋對其變數的含義、用途進行說明。
1.2.3在函數的聲明中使用異常聲明。
如:void
f()
throw(toobig,
toosmall,
divzero);
在聲明一個函數時,將它所拋出的異常列出,便於函數的使用者了解可能會發生哪些異常。
1.3
程序注釋
1.3.1程序注釋是程序員與日後的程序讀者之間通信的重要手段之一,注釋分為文件注釋、函數注釋和功能注釋。
1.3.2正規程序的注釋應注意:
——注釋行的數量佔到整個源程序的1/3到1/2。
1.3.3文件注釋位於整個源程序的最開始部分,注釋後空兩行開始程序正文。它包括:
——程序標題。
——目的、功能說明。
——文件作者、最後修改日期等說明。
例:
./********************************************************************
(空一行)
標題:
Demo.c
功能:
測試VxWorks的各種系統調用.
說明:
該程序測試各種VxWorks的系統調用函數。包括任務(taks)的創建、掛起及任務間通過信號燈實現同步,通過消息隊列
進行通訊。
程序創建了兩個任務:一個高優先順序的任務和一個低優先順序的任務。兩個任務間通過一個二進制的信號燈進行同步,通過消息隊列進行通訊。
當前版本:
x.x
修改信息:
2000.06.05
John,
Initial
Version
2000.07.05
Tom,
Bug
xxxx
fixed
**************************************************************/
(空2行,開始程序正文)
1.3.4
函數注釋通常置於每函數或過程的開頭部分,它應當給出函數或過程的整體說明對於理解程序本身具有引導作用。一般包括如下條目:
——模塊標題。
——有關本模塊功能和目的的說明。
——調用格式
——介面說明:包括輸入、輸出、返回值、異常。
——演算法。如果模塊中採用了一些復雜的演算法。
例:
file://(/注釋開頭應和上一函數空兩行)
(注釋開頭與上一函數最後一行間隔兩行)
/********************************************************************
標題:assignmentComplete
功能:BSC=>MSC消息生成函數,生成assignment_complete指配完成消息(BSMAP消息)
.
格式:
int
assignmentComplete(int
iCellId,
int
iServiceChannnelNum,
char
*pszMSGData)
throw(exception1,
exception2)
輸入:
int
iCellId:
MS所在的小區識別
iCellId取值:0x00-——0xff
int
iServiceChannnelNum:MS所佔的業務信道號碼
輸出:
char
*
pszMSGData:指配完成消息數據
返回值:
0x00正常
異常:exception1異常情況1,
exception2異常情況2
********************************************************************/
(
注釋後直接開始程序正文,不空行。)
1.3.5功能性注釋嵌在源程序體中,用於描述其後的語句或程序段做什麼工作,也就是解釋下面要做什麼,或是執行了下面的語句會怎麼樣。而不要解釋下面怎麼做,因為解釋怎麼做常常與程序本身是重復的。
例:
/*把
amount
加到
total中*/
total
=
amount
+
total;
這樣的注釋僅僅是重復了下面的程序,對於理解它的工作並沒有什麼作用。而下面的注釋,有助於讀者理解。
/*將每月的銷售額amount加到年銷售額total中*/
total
=
amount
+
total;
1.4
函數編寫應盡可能短小精悍,一般不超過兩屏,以便於調試和理解。
1.5語句結構
為保證語句結構的清晰和程序的可讀性,在編寫軟體程序時應注意以下幾個方面的問題:
——在一行內只寫一條語句,並採用空格、空行和移行保證清楚的視覺效果。
——每一個嵌套的函數塊,使用一個TAB縮進(可以設定為4個空格),大括弧必須放在條件語句的下一行,單獨成一行,便於匹對:
如,有一段程序如下:
for(i=1;i<n-1;i++){
t=1;
for(j=i+1;j<n;j++){
if(a[j]<a[t]
)
t=j;
if(t!=i
){work=a[t];a[t]=a[I];a[I]=work;}}}
應寫為
for(
i=1;
i<n-1;
i++)
{
t=1;
for(j
=
i+1;
j<n;
j++)
{
if(a[i]<a[j])
t=j;
if(t!=1)
{
.5.
Q/ECC/BJ
010—2001
work=a[t];
a[t]=a[i];
a[i]=work;
}
}
}
——文件之中不得存在無規則的空行,比如說連續十個空行。
一般來講函數與函數之間的空行為2-3行;
在函數體內部,在邏輯上獨立的兩個函數塊可適當空行,一般為1-2行。
——程序編寫首先應考慮清晰性,不要刻意追求技巧性而使得程序難以理解。
——每行長度盡量避免超過屏幕寬度,應不超過80個字元。
——除非對效率有特殊要求,編寫程序要作到清晰第一,效率第二。
——盡可能使用函數庫。
——盡量用公共過程或子程序去代替重復的功能代碼段。要注意,這個代碼應具有一個獨立的功能,不要只因代碼形式一樣便將其抽出組成一個公共過程或子程序。
——使用括弧清晰地表達算術表達式和邏輯表達式的運算順序。如將
x=a*b/c*d
寫成
x=(a*b/c)*d可避免閱讀者誤解為x=(a*b)/(c*d)。
——避免不必要的轉移。
——避免採用過於復雜的條件測試。
——避免過多的循環嵌套和條件嵌套。
——建議不要使用
*=,^=,
/=等運算符。
——一個函數不要超過200行。一個文件應避免超過2000行。
——盡量避免使用go
to語句。
——避免採用多賦值語句,如x
=
y
=
z
;
——不鼓勵採用?:操作符,如z
=
(a>b)?a:b;
——不要使用空的if
else
語句。如
if(cMychar
>=
『A』)
if(cMychar
<=
『Z』)
printf(「This
is
a
letter
\n」);
else
printf(「This
is
not
a
letter
\n」);
else到底是否定哪個if容易引起誤解。可通過加{}避免誤解。
——盡量減少使用「否定」條件的條件語句。如:
把
if(
!(
(cMychar<』0』)
||
(cMychar>』9』)
)
)
改為if(
(cMychar>=』0』)
&&
(cMychar<=』9』)
)
E. 用C語言描述的偽代碼怎麼看,怎麼寫
偽代碼主要是為了方便各種語言來實現,像你這里的用C實現就是:
structNode{
intnumber;
structNode*Next;
};
ElementType :元素類型
Element:元素名
Position :位置,定義Next指針
QQ已私信給你~
F. 偽代碼怎麼寫
偽代碼(Pseudocode)是一種演算法描述語言。使用偽代碼的目的是為了使被描述的演算法可以容易地以任何一種編程語言(Pascal,C,Java,etc)實現。因此,偽代碼必須結構清晰、代碼簡單、可讀性好,並且類似自然語言。 介於自然語言與編程語言之間。 它以編程語言的書寫形式指明演算法的職能。相比於程序語言(例如Java, C++,C, Dephi 等等)它更類似自然語言。它是半形式化、不標準的語言。我們可以將整個演算法運行過程的結構用接近自然語言的形式(這里,你可以使用任何一種你熟悉的文字,中文,英文 等等,關鍵是你把你程序的意思表達出來)描述出來. 使用偽代碼, 可以幫助我們更好的表述演算法, 不用拘泥於具體的實現. 人們在用不同的編程語言實現同一個演算法時意識到,他們的實現(注意:這里是實現,不是功能)很不同。尤其是對於那些熟練於不同編程語言的程序員要理解一個(用其他編程語言編寫的程序的)功能時可能很難,因為程序語言的形式限制了程序員對程序關鍵部分的理解。這樣偽代碼就應運而生了。 當考慮演算法功能(而不是其語言實現)時,偽代碼常常得到應用。計算機科學在教學中通常使用虛擬碼,以使得所有的程序員都能理解。 綜上,簡單的說,讓人便於理解的代碼。不依賴於語言的,用來表示程序執行過程,而不一定能編譯運行的代碼。在數據結構講演算法的時候用的很多。
G. 什麼是c語言偽代碼
所謂偽代碼,就是那些用來表示演算法的文欄位落。
你想寫一個程序,不可能就直接寫代碼,你得先寫思路,用來暫時記錄你思路的文字元號一般用簡單的詞語來。
比如:
初始化 字元串 A;
輸入字元串 A;
如果 檢測字元串 A 成功 就
打開文件(A);
否則 回到輸入字元串;
偽代碼根據個人習慣而不同,主要的是用來表達你想好了的思路。
H. C語言中偽代碼是什麼意思
偽代碼(Pseudocode)是一種演算法描述語言。使用偽代碼的目的是為了使被描述的演算法可以容易地以任何一種編程語言(Pascal,C,Java,etc)實現。因此,偽代碼必須結構清晰、代碼簡單、可讀性好,並且類似自然語言。 介於自然語言與編程語言之間。以編程語言的書寫形式指明演算法職能。使用偽代碼, 不用拘泥於具體實現。相比程序語言(例如Java, C++,C, Dephi 等等)它更類似自然語言。它是半形式化、不標準的語言。可以將整個演算法運行過程的結構用接近自然語言的形式(可以使用任何一種你熟悉的文字,關鍵是把程序的意思表達出來)描述出來。
我是從「上海全鼎軟體學院」畢業的————————
I. C語言的問題(書寫代碼的基本規則)
書寫C語言程序時應遵循的規則 !
從書寫清晰,便於閱讀,理解,維護的角度出發,在書寫程序時 應遵循以下規則:
1.一個說明或一個語句佔一行。
2.用{} 括起來的部分,通常表示了程序的某一層次結構。{}一般與該結構語句的第一個字母對齊,並單獨佔一行。
3.低一層次的語句或說明可比高一層次的語句或說明縮進若干格後書寫。以便看起來更加清晰,增加程序的可讀性。在編程時應力求遵循這些規則,以養成良好的編程風格。
C語言是一門功能強大的編程語言,它也是C++語言的基礎。C語言屬於中級語言。這里所說的中級是相對於計算機的底層硬體而言的。匯編語言是最低級的語言,它可以直接與硬體打交道。高級語言有Pascal、Basic、Fortran等等。高級語言的一條語句對應低級語言的很多條語句,任何高級語言編寫的程序都要經過編譯程序的編譯、連接才能成為可以運行的程序。編譯連接的過程也就是把高級語言翻譯成機器語言(二進制機器碼)的過程,而匯編語言是基本上與機器語言一 一對應的一種語言。這個翻譯過程是由編譯程序自動完成的。把C語言定為中級語言是有它的道理的,因為C語言既有匯編語言的存取底層硬體的能力,又具有高級語言的許多特點。熟練掌握了C語言,學習其它的各種編程語言應該是很輕松的了。
C語言的書寫格式:
1) 一個C語言編寫的源程序,必定有一個主程序(稱為main()函數,在C語言中子程序稱為「函數」(當然,不要理解成為數學裡面的「函數」)。但是決不能有一個以上的main函數(即只能有一個)。
2) 函數語句塊用『{』括弧開始, 以『}』反括弧結束。這樣的花括弧必須成對出現。
3) 表達式寫在小括弧裡面,以『(』括弧開始,以『)』反括弧結束。
4) 函數不能嵌套,即函數裡面不能再套函數。(每一個函數是完成一個特定功能的函數模塊)
C語言的組成:
C語言是由許多函數組成的。其中只有一個主函數(main()函數)。C程序執行時總是從main函數的『{』處開始,至main函數的反大括弧'}'處結束。當然還有其它一些規則,這將在以後的學習中去熟悉它。
C語言的書寫規則:
C語言在書寫時有它自身的特點:書寫格式比較自由,在一行里可以寫多條語句,一個語句也可以分寫在多行上。雖然如此,在書寫源程序時還是要注意哪些可以自由書寫,而哪些必須要按照書寫規則來書寫。
幾條規則寫在下面:
1) 一行內可以寫幾個語句,建議一行不超過兩條語句;
2) 一條語句可以寫在多行上;
3) C語句不需要寫行標號;
4) 每條語句及數據定義的後面要寫上分號以表示該語句結束;
5) C語言中注釋用 /* */來表示;
6) 建議書寫時採用縮進格式;
7) 花括弧、小括弧都是成對出現的。
一個最簡單的C程序的編寫:
/* 程序代碼*/ /* 注釋部分*/
main() /*main是主函數名。緊跟在main後面的括弧是放參數的。
括弧裡面為空說明main函數不需要參數*/
{ /*正寫的大花括弧表示main函數從這里開始*/
} /*反寫的大花括弧表示main函數到這里結束*/
說明:由於是一個演示程序,在函數體內並沒有任何可以執行的語句,也就是這個程序什麼事也不做。
這個程序就是這么簡單: 寫在一行上就是 main() { }
你在TC的編輯環境下把這段代碼輸入進去,按F9鍵編譯連接,按CTRL_F5運行,一定很正常。但是什麼結果也不會有,因為在main函數裡面什麼代碼也沒有。
下面再舉一個可以向屏幕上輸出一條信息的例子:
main()
{
printf("這就是C語言編寫的程序!"); /*這一條語句的作用是向屏幕輸出一條信息
」這就是C語言編寫的程序!"*/
}
在這個程序中,main函數只有一條語句:printf("這就是C語言編寫的程序!");這個語句的作用是向屏幕輸出一個字元串。有關這個語句的知識以後再講。現在要注意的是一個C語言程序的框架是怎樣組成的。
C語言程序的幾種文件格式:
1、 源程序---在TC集成環境中輸入的程序文本稱為源程序。源程序是一種文本文件。它是我們看得見並認識的一種文件。其擴展名為.C。例如你把文件保存為TEST,那麼在磁碟上應看得到TEST.C這個文件。這樣的文件可以用記事本打開。
2、二進制文件---寫完了源程序後接著要做的是編譯這個文件。在TC集成環境里是按ALT_F9鍵,編譯後生成了一個二進制文件,這個二進制文件名為TEST.OBJ,也就是擴展名為OBJ的目標文件。
3、運行文件---最後一步是make(或Link),在TC集成環境里是按F9鍵Make之後生成了一個可以在DOS下運行的文件,其擴展名為EXE。如TEST.EXE。這個EXE文件是由第2步中的OBJ文件生成的。OBJ文件雖然是二進制文件,而電腦又是可以運行二進制文件的,為什麼還要把OBJ文件Link為EXE文件才能運行?這里的知識就比較多了,這里不能多講。但是要明白一點,在DOS下僅僅有了一個二進制文件還不能運行,因為操作系統要把這些二進制文件加以規劃,把相應的數據、程序代碼放到應該放的內存位置,這樣的經過嚴密規劃和組織好了的二進制文件才能運行。而這些只有在生成的EXE文件裡面才做完了這些工作。