




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1
上機實驗中出現(xiàn)的問題一.編寫時候注意符號在英文格式下面輸入二.語句結(jié)束后“;”容易遺漏,但是也不能亂加,如while,if后面不能加”;”三.對于函數(shù)來說,基本格式:函數(shù)頭+一對{}四.scanf和printf函數(shù)2
第2章
C程序的基本構(gòu)成32.1C語言源文件
C語言是結(jié)構(gòu)化的程序設(shè)計語言,一個C源程序可以由一個或多個文件組成,C源程序文件的擴展名一般為.c
或.cpp,下面通過實例學(xué)習(xí)多文件系統(tǒng)中的函數(shù)調(diào)用。
說明:文件-是指存放在存儲器上以文件名進行管理的一組信息.
函數(shù)-指具有獨立功能、按一定格式構(gòu)成的代碼段。
一個大型,典型的C語言源程序大致如下所示:4C語言源程序
源程序文件1
源程序文件n
源程序文件2…..
預(yù)處理命令
全局變量
聲明
函數(shù)1…..
函數(shù)n
函數(shù)首部
函數(shù)體
局部變量
聲明
執(zhí)行語句5
文件包含的概念:一個文件可以將另一個源文件的全部內(nèi)容包含進來,這叫文件包含處理。
當(dāng)然文件包含予處理也可在特定的盤,特定的目錄(文件夾)中尋找包含文件.
如:#include“c:\myfolder\myfile.c”
文件包含的一般格式:
#include<文件名>
或者#include“文件名”
6#include“file2.C”file1.cA
在編譯時,將file2.c全部內(nèi)容復(fù)制到#include“file2.c“的位置上,將file1.c作為一個源文件單位進行編譯。file1.c
BA+Bfile2.c包含7例2.1
在VisualC++環(huán)境下新建兩個文件,其文件名分別
為2_1_1.c、2_1_2.c,其中2_1_1.c文件定義一個做乘法的函數(shù)f(),定義另一個主調(diào)函數(shù)main().
在主調(diào)函數(shù)中分別調(diào)用函數(shù)f()以及存放在2_1_2.c中的函數(shù)disp(),在main函數(shù)中輸出f()的返回值。82_1_2.c文件disp()函數(shù)分析:
在文件2_1_1.c中由兩個函數(shù)構(gòu)成,文件2_1_2.c由一個函數(shù)構(gòu)成.
程序的執(zhí)行從main()函數(shù)開始,main函數(shù)調(diào)用f()函數(shù),然后再調(diào)用disp()函數(shù)。2_1_1.c文件f()函數(shù)main()函數(shù)#include“2_1_2.c調(diào)用調(diào)用910總結(jié):
1.C程序是由函數(shù)組成,必須要包含一個主函數(shù)main().
函數(shù)之間可以相互調(diào)用.
因此,函數(shù)是C程序的基本單位。
(1).C用各種各樣的函數(shù)來完成某些特定功能。
(2).
C函數(shù)庫十分豐富,標(biāo)準C提供一百多個函數(shù).
被調(diào)函數(shù)可以是系統(tǒng)提供的庫函數(shù),如:printf(),
scanf();也可以是根據(jù)需要自己編寫的函數(shù),如:disp().112.一個C程序總是從main()函數(shù)開始執(zhí)行,不管這
個main()在整個程序中處于什么位置。
main()函數(shù)可放在整個程序的最上頭,或最后,或
一些函數(shù)的中間.3.C程序書寫格式自由:一行內(nèi)可以寫幾條語句.
一條語句可寫在多行上,行尾使用續(xù)行符:“\”.
*書寫程序時,一律使用英文標(biāo)點符號.
12*C語言程序中區(qū)分大小寫。
*在程序中int、return、include叫保留字,在C語言
中有特定的含義,一般不作它用。*而disp、f、a、b等為用戶自定義標(biāo)識符,通常為
了定義函數(shù)、變量所取的名字,取名要有一定的規(guī)
則。134.每條語句及變量定義的最后要有一個分號(;),
分號(;)是語句的必要組成部分。如:intx,y=7;c=a+b;
注
:變量定義必須放在函數(shù)的開頭部分,執(zhí)行語句之前,
不能插入在語句當(dāng)中.C++可放程序任何位置.5.C語言本身并沒有輸入,輸出語句.輸入,輸出的操
作是由庫函數(shù),像printf(),scanf()函數(shù)來完成。
C語言對輸入、輸出實行“函數(shù)化”管理。142.2C函數(shù)函數(shù)是完成特定任務(wù)的獨立模塊,函數(shù)的使用最主要涉及到函數(shù)的定義與調(diào)用。
C程序是由一個或多個文件構(gòu)成,而文件可由一個或多個函數(shù)組成.
如在前述的文件2_1_1.c中,由兩個函數(shù)main()、F()構(gòu)成.
文件2_1_2.c由一個函數(shù)disp()構(gòu)成。15一.函數(shù)的調(diào)用形式為:
函數(shù)名(
[參數(shù)]);
注:函數(shù)的原型:
函數(shù)返回值類型函數(shù)名(形式參數(shù)表);參數(shù):
執(zhí)行一個函數(shù)所必須提供的數(shù)據(jù)叫參數(shù).16返回值類型函數(shù)名(形式參數(shù)聲明){
數(shù)據(jù)聲明部分語句部分
}二.
C函數(shù)定義的結(jié)構(gòu)示意圖17
intadd(intx,inty)
{
intz;/*變量定義,給變量分配內(nèi)存空間*/z=x+y;/*執(zhí)行語句*/returnz;
}
18注:在C語言中,變量在使用前,一定要先定義:
指定變量的名字及類型,在編譯時給變量分配存儲空間。
例如:
intz;
指定變量的名字為z,及類型為int.(在編譯時給變量分配存儲空間)。19變量的定義
變量定義的一般形式:
類型名變量名表;注:
變量名按C語言的命名規(guī)則命名.
變量名一般用小寫字母,見名知義.例如:intx3,n;定義整型變量floaty2;定義單精度浮點型變量doublearea,length;
定義雙精度浮點型變量
多個變量用逗號(,)分開,最后加一分號(;).20
每一個變量有二個特性:
有一個名字和相應(yīng)的類型,并在編譯時分配相應(yīng)的內(nèi)存單元。
該存儲單元的大小由變量的數(shù)據(jù)類型決定.
1.5x3變量名變量值存儲單元21C語言中的變量和代數(shù)中的變量含義不同.
數(shù)學(xué)中的變量代表未知數(shù).
如在C語言中的式子:x=x+1在代數(shù)中沒有意義.但在C語言中,式子x=x+1表示把變量x中的值加1,然后再保存到x中.
這里的”=“是賦值運算符.
構(gòu)成了一賦值表達式.x=x+1222.3C語句
C文件由函數(shù)構(gòu)成,函數(shù)由語句構(gòu)成,語句的結(jié)束符用“;”表示.
在例2.1中的文件2_1_1.c中的main函數(shù),由5條語句構(gòu)成,每條語句用“;”表示語句的結(jié)束。
intx=3,y=4,z;---變量定義語句.表示定義了x、y、z三個變量,并給x、y分別賦予一個最初的值3與4.intx=3,y=4,z;disp();z=f(x,y);printf("%d*%d=%d\n",x,y,z);disp();disp();---函數(shù)調(diào)用語句.表示調(diào)用函數(shù)disp().輸出:******************23
intx=3,y=4,z;
disp();z=f(x,y);printf("%d*%d=%d\n",x,y,z);disp();z=f(x,y);
表示調(diào)用函數(shù)f(),在調(diào)用函數(shù)f()時把實參x、y的值分別傳給形參a、b.
返回值最后賦給變量z.
printf(“%d*%d=%d\n”,x,y,z);表示調(diào)用系統(tǒng)函數(shù)printf輸出,其輸出形式為:3*4=12intf(inta,intb){intc;c=a*b;
returnc;}在被調(diào)函數(shù)f()中把a、b的乘積賦給變量c,然后函數(shù)f()把返回值c賦給main函數(shù)中的z。242.4保留字與標(biāo)識符語句由保留字、標(biāo)識符、運算符和表達式構(gòu)成。2.4.1保留字保留字是指C語言中有特殊含義的名字,只能用于C語言中特定的場合。
例如:
int:
用于定義整型類型變量
float:
用于定義實型變量
double:
用于定義雙精度變量
char:
用于定義字符變量或字符串變量
25注意:保留字只能用于規(guī)定的場合,不能用作給變量取名或用戶自定義標(biāo)識符。if:
用于判斷for:
用于循環(huán)while:
用于循環(huán)在C語言中其它的保留字見附錄C,其含義在以后的章節(jié)中陸續(xù)學(xué)到。262.4.2標(biāo)識符
標(biāo)識符簡單的理解就是給在程序中涉及的對象取的名字.
標(biāo)識符分為系統(tǒng)命名的標(biāo)識符與用戶自命名標(biāo)識符,系統(tǒng)標(biāo)識符通常用于系統(tǒng)函數(shù)的命名,如:
printf、strlen、scanf、fabs、malloc等。
用戶自命名標(biāo)識符是用戶為命名變量或定義函數(shù)等而取的名字,通常用戶自定義標(biāo)識符以字母、數(shù)字、下劃線組成,并以字母或下劃線開頭。27注意:
a_12、_12、ab12等都是正確命名的標(biāo)識符。
12a、a/b等都是不正確的標(biāo)識符。思考:是否可用:intif=5;
定義一個整型變量?為什么?282.5運算符在C程序中有極為豐富的運算符,例如:
賦值運算符、算術(shù)運算符、關(guān)系運算符、邏輯運算符、位運算符等。
運算符及其優(yōu)先級請參閱附錄292.5.1算術(shù)運算符算術(shù)運算符有:加、減、乘、除、取余數(shù),它們的表達方式及含義如下表所示。運算符含義例備注
+加5+2結(jié)果7-減5-2結(jié)果3*乘5*2結(jié)果10/除5/2結(jié)果2%求余5%2結(jié)果1只適用于整型數(shù)
++
自增
--
自減
30
算術(shù)運算符的優(yōu)先級:運算符
+-*/%
相同相同低高311.關(guān)于除法運算符:/
兩個整數(shù)相除結(jié)果為整數(shù):5/2結(jié)果25/3結(jié)果1
2.關(guān)于求余運算符:
%
%兩邊的操作數(shù)都應(yīng)是整數(shù).
5%2結(jié)果1
7%4結(jié)果3
除法運算符”“/“的運算結(jié)果跟兩個操作數(shù)的類型有關(guān):(1).如果兩邊都是整形,結(jié)果必定為整形.(2).如果兩邊是其它類形,結(jié)果不是整形.323.C語言也規(guī)定了算術(shù)運算符的優(yōu)選級和結(jié)合性。
在表達式求值時:*先按運算符的優(yōu)先級別高低次序執(zhí)行,如a-b*c,
*如果在一個運算對象兩側(cè)的運算符級別一樣,則按
“結(jié)合方向”處理。
算術(shù)運算符的結(jié)合方向是“自左至右”,即先左后右.又稱“左結(jié)合性”——
即運算對象先與左邊的運算符相結(jié)合。33
如:
a-b+c
,因此b先與減號結(jié)合,執(zhí)行a-b的運算,再執(zhí)行加+c的運算.
以后還將遇到“右結(jié)合性”的運算符,其結(jié)合方向為自
右至左。即運算對象與右邊運算符的相結(jié)合.
結(jié)合性是在別的高級語言中沒有的,是C特有的。請參閱附錄:
列出所有運算符的優(yōu)先級和結(jié)合性。343、算術(shù)表達式
:算術(shù)表達式:
用算術(shù)運算符將運算對象連接起來的,符合C語言語法規(guī)則的式子.
什么是表達式?由常量,變量,各種運算符,函數(shù)和括號連接而成的,合符c語言語法規(guī)則的有意義的式子,稱為表達式。如:
a+23,t+sqrt(y),z=x+y,Pi*r*r35從廣義上來講,單個變量,單個常量也可看作表達式。
c具有眾多運算符,可以構(gòu)成多種表達式:
賦值表達式,算術(shù)表達式、字符串表達式、
關(guān)系表達式,邏輯表達式.36算術(shù)表達式的書寫規(guī)則:
在數(shù)學(xué)表達式中省略的內(nèi)容要寫上:
如:2x
要寫成2*x2r要寫成2**r
abca<=b&&b<=cs(s-a)(s-b)(s-c)要寫成
s*(s-a)*(s-b)*(s-c)
(5÷9)(F-32)
要寫成
(5/9)*(F-32)
x1+x2要寫成x1+x237
4.自增、自減運算符:
在算術(shù)運算符中,C語言又增加了兩個很有用的運
算符:
++
……
加1運算符(自增)
--
……
減1運算符(自減)作用:
使變量的值加1或減1。如;
++x;相當(dāng)于x=x+1;
--x;相當(dāng)于x=x-1;
38
增1,減1運算符可放在操作數(shù)之前,也可放在其后。如:
++i,--i變量使用之前,先使i
增1,減1.
i++,i--變量使用之后,再使i加1,減1設(shè):i=3;
j=++i;(j的值為4)j=i++;(j的值為3,i的值為4)注意!39例:
main(){inta=100;printf(“%d\n”,++a);printf(“%d\n”,a++);printf(“%d\n”,a);}結(jié)果:
10110110240(2).結(jié)合方向是“自右至左”,即“右結(jié)合”.
如有:-i++
負號和“++”同一優(yōu)先級,結(jié)合方向同為“自右而左”,即相當(dāng)于-(i++).
注:(1).++,--運算符只能用于變量,不能用于常量與表
達式。
如:5++,(a+b)++都不合法.41思考:表達式y(tǒng)=1+x++
是否等同于x++,y=1+x
還是等同于
y=1+x,x++?42上機練習(xí)21:上機調(diào)試下列程序,總結(jié)余數(shù)的符號與什么相關(guān)。#include<stdio.h>intmain(){
printf("%d%d\n",5%2,-5%2);return0;}432:上機調(diào)試下列程序,分析程序輸出的結(jié)果。#include<stdio.h>intmain(){intx,y,z;
scanf("%d",&x);y=x++;z=++x;printf("y=%dz=%dx=%d\n",y,z,x);}&的含義是“取地址”的意思,函數(shù)的作用是:
從鍵盤輸入的兩個值,分別送到x所占地址的內(nèi)存單元中去,也就是輸入x的值.
%d為輸入格式說明,d為十進制整數(shù)格式說明符。
現(xiàn)設(shè)給x輸入了一個5,問:y,z,x輸出各為多少?輸出:y=5,z=7,x=744
又:#include<stdio.h>intmain(){intx,y,z;
scanf("%d",&x);y=x--;z=--x;printf("y=%dz=%dx=%d\n",y,z,x);}
3:把前程序中的++都改為--,再次調(diào)試程序,觀察程序運行的結(jié)果。
現(xiàn)設(shè)給x輸入了一個5,問:y,z,x輸出各為多少?輸出:y=5,z=3,x=345
5.賦值運算符:=
在C中,把賦值符“=”也列為運算符之列,“=”執(zhí)行賦值操作。如:y=23.3x=45.3+y*4執(zhí)行過程如下:
變量=表達式注:
左邊必須是一個變量.
1.
首先計算表達式的值.
同時把其類型轉(zhuǎn)為左邊變量的類型.
2.把右邊表達式的值賦
給左邊的變量.46說明:1.如果在賦值運算中,賦值符兩側(cè)類型不一致,在賦值時要進行類型轉(zhuǎn)換。規(guī)則:
賦值符右邊的值轉(zhuǎn)變?yōu)橘x值符左邊變量所屬的類型(系統(tǒng)自動轉(zhuǎn)換)。
例如:
a.將實型數(shù)據(jù)賦給整型變量時,小數(shù)部分自動丟失。
inti;i=8.56;(i為整型變量,
i的值就為8)47b.將整型數(shù)據(jù)賦給實型變量時,數(shù)值不變,但以浮點形
式存于內(nèi)存。
如:floatf2;f2=28;
f2將以28.000000存于內(nèi)存。
(單精度以6位有效數(shù)字存入,
雙精度有15位有效數(shù)字)48例:
若x是整型變量,表達式(x=10.0/4.0)的值是____
A.2.5B、2.0C、3D、2496、復(fù)合賦值運算符:(1).如果在賦值符‘=‘之前加上其它運算符,可構(gòu)成
復(fù)合賦值運算符,如:
+=(相加賦值)
*=
(相乘賦值)
例如:
a+=
3相當(dāng)于a=a+3x*=y+8相當(dāng)于x=x*(y+8)x%=3相當(dāng)于x=x%3
C采用這種形式,一是為了簡化程序,二是為了提高編譯效率。
凡是二目(二元)運算符,都可與賦值符組成復(fù)合賦值符.50
為了便于記憶,可以這樣理解:
設(shè)有
:a+=b又設(shè)a為變量,b為表達式
a+=b(“=”左邊部分,插入“=”右邊)
a=a+b(“=”左邊補上變量名)
如果b表達式是包含若干項的表達式,它相當(dāng)于有括號:
x%=y+3x%=(y+3)x=x%(y+3)51(2).賦值表達式:
由賦值運算符將一個變量和一個表達式連接起來的式子稱為“賦值表達式”.
如:
“a=5*b”
就是一個賦值表達式,賦值表達式的值就是
被賦值的變量的值.
527、強制類型轉(zhuǎn)換運算符
如:(double)a2….(將a2變量強制轉(zhuǎn)換成double型)
(int)(x+y)...(將(x+y)的類型強制轉(zhuǎn)換int型)
一般形式為:(類型名)(表達式)說明:進行強制類型轉(zhuǎn)換時,得到一個所需的中間變量,
原來的變量類型不變。例:floatx1;inti;x1=13.6;i=(int)x1
;\*i的值為13*\53
類型轉(zhuǎn)換有二種方法:
a.系統(tǒng)自動進行.
b.強制進行.
強制類型轉(zhuǎn)換在函數(shù)調(diào)用時,當(dāng)要求形參與實參的類型一致時使用。542.5.2關(guān)系運算符一、關(guān)系運算符與關(guān)系表達式:
關(guān)系運算符也就是一種比較大小的運算符。1.關(guān)系運算符及優(yōu)先級:
<
(小于)
<=
(小于等于)
高
>
(大于)
>=
(大于等于)
==
(等于)低
!=
(不等于)
優(yōu)先級相同(低)優(yōu)先級相同(高)55
算術(shù)運算符:*,/,%
+,-
高關(guān)系運算符:<,<=,>,>=,==,!=
賦值運算符:=
低
復(fù)合賦值運算符:+=,%=,*=
運算符的優(yōu)先級請見附錄B562.關(guān)系表達式:
用關(guān)系運算符將兩個表達式連起來的式子——關(guān)系表
達式。關(guān)系表達式由于是一種比較的操作,其結(jié)果是成
立,不成立的關(guān)系。
也即產(chǎn)生一個邏輯值
,“真”或“假”。
C語言中沒有設(shè)邏輯型數(shù)據(jù).
C中用1代表邏輯真,0代表邏輯假。0~157
如:設(shè):a=4,b=3,c=2;
則:(1).a>b的值為“真”,表達式的值為1.
(2).d=b>c/*d的值為1
.*/(3).e=a>b>c/*e的值為0.*/
/*因“>”運算符自左到右結(jié)合,先執(zhí)行a>b,值為1,再執(zhí)行1>c,值為0*/
(4).f=(a>b)+af的值為558思考:表達式y(tǒng)=6<10==1
它等同于
y=(6<10)==1
還是y=6<(10==1)?
高
算術(shù)運算符:*,/,%
+,-
關(guān)系運算符:<,<=,>,>=,
==,!=
賦值運算符:=
低
592.5.3邏輯運算符1.邏輯運算符及優(yōu)先級:邏輯運算符是對邏輯量進行操作.共有三種:
!
……邏輯非(NOT)
(對操作數(shù)取反,如操作數(shù)為真,結(jié)果就為假.)
&&……邏輯與(AND)
(只有兩個操作數(shù)的值同時為真時,結(jié)果為真.)
||……邏輯或(OR)
(只要兩個操作數(shù)中的一個值為真時,結(jié)果就為真.)高
低60
邏輯運算符的功能
邏輯與:
&&
,
邏輯或:||,邏輯非:!真值表:
aba&&ba||b!a假假假假真假真假真真真假假真假真真真真假
&&,||是雙目(二元)運算符,!是單目(一元)運算符.61
優(yōu)先級:
邏輯運算符:!
高
算術(shù)運算符:+,*
關(guān)系運算符:>,=<
邏輯運算符:&&,||
賦值運算符:=低62例:(a>b)&&(x>y)a>b&&x>y
(!a)||a>b!a||a>b2.邏輯表達式:
用邏輯運算符將關(guān)系表達式,或邏輯量連起來的式
子,叫邏輯表達式。邏輯表達式的值應(yīng)該是一個邏輯量:真(1),假(0).63
但在判斷一個量是否為真或為假時,即以非0為真(包括負值),以0值為假.
這種表示方法法最先在C中使用,因為它使得編程顯示特別方便。說明
:
C語言在編譯時,給出邏輯運算結(jié)果時(如關(guān)系表
達式、邏輯表達式),如果是真,用數(shù)值1表示;
是假用0表示。64例:設(shè)a=4,b=5
那么:
!a的值為0(因為a的值為非0,認為是真)
a&&b的值為1.
a||b的值為1.4&&0||2的值為1(自左向右運算).可見:
(1).邏輯運算結(jié)果不是0,就是1.(2).參加邏輯運算的操作數(shù)可以是1,0(真,假),也可是
整數(shù),也可以是任何類型的數(shù)據(jù)。系統(tǒng)最終是以:
0判斷為假,非0判斷為真.65例:求表達式的值:5>3&&2||8<4-!0①4-!0即:3得:5>3&&2||8<3②5>3結(jié)果為1;8<3結(jié)果為
0
得:1&&2||0
③1&&2結(jié)果為1
最后結(jié)果為1
注:
邏輯表達式求解自左向右,且一旦知道結(jié)果的真假
值,求值即停止。例.
若設(shè):a=1,b=1,c=3,d=4,m,n原值為1,那么:(m=a>b)&&(n=c>d)
則m新值為0,n不再賦值。
661.判斷ch是否為小寫英文字母:
(ch>='a')&&(ch<='z')2.判斷ch是否為英文字母:(ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')
熟練掌握關(guān)系運算符和邏輯運算符,可以巧妙地用一個邏輯表達式來表示一個復(fù)雜的條件。
67例:閏年的條件:a.能被4整除,但不能被100整除
b.能被400整除
設(shè)year為某一年份,year為閏年的表達式:((year%4==0&&year%100!=0)||year%400==0)
當(dāng)上述邏輯表達式為1時,year這一年為閏年,當(dāng)為0時,year這一年為非閏年。68例2.3
#include<stdio.h>intmain(){intx=20,y=3,z=0,a;a=x>y;printf("%d>%d=%d\n",x,y,a);
a=x/y;printf("%d/%d=%d\n",x,y,a);
a=x%y;printf("%d%%%d=%d\n",x,y,a);
….ch2_2_3.c輸出符號%時,需寫成:69…..
a=x==y;printf("%d==%d=%d\n",x,y,a);
a=x!=y;printf("%d!=%d=%d\n",x,y,a);
a=x&&y;printf("%d&&%d=%d\n",x,y,a);
a=x||y;printf("%d||%d=%d\n",x,y,a);
a=!x>y;printf("!%d>%d=%d\n",x,y,a);}70注:由于%通常用于格式控制符中,當(dāng)在printf中輸出符號%時,需寫成:
printf(“%d%%%d=%d\n”,x,y,a);,而不是:
printf("%d%%d=%d\n",x,y,a);
說明:
在編譯新程序前要關(guān)閉前一程序的[工作空間]。
注意!71思考:1.寫出判斷x大于0并且小于10的表達式。
(x>0)&&(x<10)2.寫出判斷ch是大寫字母的的表達式。
3.寫出判斷ch是字母的表達式。
4.寫出整型數(shù)a、b、c能構(gòu)成一個三角形的表達式。722.5.4位運算符位運算符的運算對象為二進制數(shù).
運算符含義1.
~
按位取反例:
~1結(jié)果0~1010結(jié)果0101
2.
&
按位與
例:
1&1為1;1&0為01100&1010結(jié)果1000733.
|
按位或
例:
1|1為1;1|0為1;0|0為0.
1100|1010結(jié)果11104.
^
按位異或例:
1^1為0;0^0為0;1^0為1.1100&1010結(jié)果01107475
5.
<<
按位左移例:
0010<<1
左移1位結(jié)果01006.
>>
按位右移例:
0010>>1
右移1位
結(jié)果000176例2.4
從鍵盤輸入一個整型數(shù),判斷此數(shù)轉(zhuǎn)化為二進制數(shù)后第2位是否為1。分析:假定此整數(shù)為12,轉(zhuǎn)化為二進制后為1100(你可以用windows中的計算器轉(zhuǎn)換).
判斷第2位是否為1,即此數(shù)只要與二進制數(shù)0100作“與”運算.
如結(jié)果不為0,即可判斷此數(shù)的二進制數(shù)的第2位不為0.第0位77數(shù)制與編碼二進制與八進制、十六進制之間相互轉(zhuǎn)換準備知識:①二進制與八進制的對應(yīng)關(guān)系
②二進制與十六進制的對應(yīng)關(guān)系不同數(shù)制之間的轉(zhuǎn)換0000010100111001011101110123456700000001001000110100010101100111012345671000100110101011110011011110111189ABCDEF78#include<stdio.h>intmain(){ intx,y; scanf("%d",&x); y=(x&4)!=0; printf("此數(shù)的二進制數(shù)的第2位為:%d\n",y);}
請讀者自行調(diào)試,如程序運行時分別輸入7、8,輸出是什么?為什么?ch2_2_4.c輸入12
(12)
1100
(4)
0100
792.6編輯C程序時應(yīng)注意的問題1.C程序中區(qū)分大小寫字母,書寫格式自由,一行內(nèi)可寫幾個語句。用“;”作為語句的結(jié)束標(biāo)記。3.函數(shù)定義如:main()、#include<stdio.h>、#definePI3.14159不是語句,后面不能用“;”號。注釋用符號“/*”和“*/”來界定,“/”和“*”之間不可以有空格。一個好的程序應(yīng)該有詳細的注釋。80
第2章
C程序的基本構(gòu)成
結(jié)束81例:
執(zhí)行下列程序段后,a值為____: inta,b; a=15;b=-1; a=a+b&&a;
A)15B)0C)1D)16例:寫出下列程序段的輸出結(jié)果:
floatx1,x2;x1=3/2;x2=x1/2;printf("%d,%.1f",(int)x1,x2);C).11,0.53/2的值為182練習(xí)與實踐一、選擇題1.()是構(gòu)成C語言程序的基本單位。(A)函數(shù) (B)過程(C)子程序 (D)文件832.在下述程序段中,()是錯誤的程序注釋方法(注:本例多個選擇)。(A)
#in/*包含*/clude<stdio.h>voidmain(){printf("Howareyou?\n");}(B)#include<stdio.h>voidmain(){inti=3;/*整型數(shù)*/}84(C)#include<stdio.h>voidmain(){intx/*初始化*/=10;/*打印*/printf("%d",x);}(D)#include<stdio.h>voidmain(){intx=10;printf("%d",x);/*打印x/*x=10*/的值*/}853.()是C語言提供的合法的數(shù)據(jù)類型關(guān)鍵字。(A)Float (B)signed(C)integer (D)Char4.以下選項中不合法的用戶標(biāo)識符是(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 供用苗木合同范本
- 加盟教育協(xié)議合同范本
- 與收款合同范本
- 儀器協(xié)議合同范本
- 化驗用品購銷合同范本
- 2024年四川旅游學(xué)院引進考試真題
- 2024年省廈門市梧村小學(xué)招聘考試真題
- 第二單元 遵守社會規(guī)則 大單元教學(xué)設(shè)計-2023-2024學(xué)年統(tǒng)編版道德與法治八年級上冊
- 買賣物品交易合同范本
- 保溫發(fā)泡板合同范本
- 保安列隊培訓(xùn)方案
- 淚道狹窄與阻塞的護理
- 銑床工安全技術(shù)操作規(guī)程培訓(xùn)
- 2024年山東淄博市城市資產(chǎn)運營有限公司招聘筆試參考題庫含答案解析
- 視頻監(jiān)控系統(tǒng)驗收測試報告
- 醫(yī)院骨科專病數(shù)據(jù)庫建設(shè)需求
- 三角函數(shù)的誘導(dǎo)公式(一)完整版
- 三年級下冊混合計算100題及答案
- 中小學(xué)幼兒園安全風(fēng)險防控工作規(guī)范
- ESD技術(shù)要求和測試方法
- 正確認識民族與宗教的關(guān)系堅持教育與宗教相分離
評論
0/150
提交評論