版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
《C語言程序設(shè)計》單元總結(jié)與練為題
答案
單元一程序設(shè)計宏觀認(rèn)識
單元總結(jié)提升
本單元中,核心內(nèi)容有C語言程序框架結(jié)構(gòu)、程序的構(gòu)成和程序開發(fā)過程。通過本單元
的學(xué)習(xí),我們應(yīng)該知道:
I.c語言程序最基本的程序框架由兩部分構(gòu)成,分別是:
(1)編譯預(yù)處理
(2)函數(shù)組
2.C程序最大的特點就是所有的程序都是用函數(shù)來裝配的,函數(shù)是構(gòu)成C語言程序的基
本單位,函數(shù)包括主函數(shù)、庫函數(shù)和自定義函數(shù)。函數(shù)的一般結(jié)構(gòu)形式為:
函數(shù)返回值類型函數(shù)名(形式參數(shù))〃函數(shù)首部
(說明語句:〃函數(shù)體
可執(zhí)行語句:
標(biāo)識符是用來標(biāo)識程序中的某個對象名字的字符序列。C語言把標(biāo)識符分為三類,即關(guān)
鍵字、預(yù)定義標(biāo)識符、用戶自定義標(biāo)識符。對于用戶自定義標(biāo)識符的命名C語言規(guī)定:
(1)所有的用戶標(biāo)識符必須先定義后使用;
(2)用戶標(biāo)識符由字母(A~Z,a~z)、數(shù)字(0~9)、下劃線組成,并且首字符不
能是數(shù)字;
(3)區(qū)分大小寫;
(4)不能用關(guān)鍵字作為用戶自定義標(biāo)識符,通常不使用預(yù)定義標(biāo)識符作為用戶自定義
標(biāo)識符。
4.理論上講,程序開發(fā)過程分為四個步驟,分別為:
(1)編輯源程序____________________________________________
(2)編譯源程序,生成目標(biāo)程序
(3)連接目標(biāo)程序及其相關(guān)模塊,生成可執(zhí)行文件
(4)運行可執(zhí)行文件_______________________________________
5.簡單描述使用VC++6.0開發(fā)應(yīng)用程序的步驟:
如圖所示:
總之,通過本單元的學(xué)習(xí),應(yīng)該掌握c語言程序框架結(jié)構(gòu)和程序開發(fā)過程,還要對C語言程
序設(shè)計的知識脈絡(luò)有一定的了解。
單元練習(xí)
一.選擇題
I.構(gòu)成C語言程序的基本單位是(c
A.框架B.預(yù)處理C.函數(shù)D.語句
2.在程序開發(fā)過程中,把文本文件格式源程序轉(zhuǎn)化為二進制格式的目標(biāo)程序的過程稱之為
(b)。
A.編輯B.編譯C.連接D.運行
3.關(guān)于主函數(shù),下列說法不正確的是(c)。
A,一個完整的C語言應(yīng)用程序有啡一的主函數(shù)
B.主函數(shù)的名稱只能是main
C.主函數(shù)可以被其他自定義函數(shù)調(diào)用
D.C語言程序的運行從主函數(shù)開始,以主函數(shù)為核心展開
4.關(guān)于標(biāo)識符,下列說法不正確的是(c)。
A.庫函數(shù)名稱為預(yù)定義標(biāo)識符,不建議用作用戶自定義標(biāo)識符
B.關(guān)鍵字不能作為用戶自定義標(biāo)識符
C.用戶自定義標(biāo)識符中不區(qū)分大小寫字母
D.標(biāo)識符中可以出現(xiàn)下劃線,且可以出現(xiàn)在標(biāo)識符的任意位置
5.以下可用作用戶自定義標(biāo)識符的一組是(c)。
A.void、returnifB.printf、include,fabs
C.Max、_abc>MainD.2abc、pay$、sum-10
二.填空題
1.C語言程序一般由若干個函數(shù)構(gòu)成,程序中應(yīng)至少包含一個其名稱只能為
_______________________O
2.C語言程序中每條語句必須以結(jié)束。
3.C語言程序的注釋是以開頭,以結(jié)束的,在VC++6.0編程環(huán)境中,可使
用作為注釋的起始標(biāo)識,注釋對程序的執(zhí)行不起任何作用。
4.最初編寫的C語言程序稱為,其擴展名為,編譯后生成的文件為
,其擴展名是,連接后生成的文件是其擴展名是
5.C語言規(guī)定,標(biāo)識符只能由、和三種字符組成,而且,首字
符只能是或。
習(xí)題答案:
一.選擇題
1.C2.B3.C4.C5.C
二.填空題
1.主函數(shù)main
2.分號;
3./**///
4.源程序.cpp或.c目標(biāo)文件(或目標(biāo)程序).obj可執(zhí)行文件(或可執(zhí)行程
序).exe
5.字母(A~Z,a~z)、數(shù)字(0-9).下劃線字母或下劃線
*******************************************************************************
單元二程序設(shè)計基礎(chǔ)和識
單元總結(jié)提升
本單元中,核心內(nèi)容有C語言中基本的數(shù)據(jù)類型、常量和變量、運算符和表達式以及算
法的概念。通過本單元的學(xué)習(xí),我們應(yīng)該知道:
1.C語言中最基本的數(shù)據(jù)類型有:整型、字符型、浮點型。
2.C程序中使用的常量按照表現(xiàn)形式可分為直接常量和符號常量。
(1)直接常量
1)整型常量,有十進制、八進制和十六進制三種芍述方式,其中,八進制的前置符號
標(biāo)志為0,十六進制的前置符號標(biāo)志為Ox或OXo
2)浮點型常量,有十進制小數(shù)和指數(shù)兩種描述方式,指數(shù)形式的符號標(biāo)志是e或
E。
3)字符型常量,是用單撇引號括起來的單一字符,對一些特殊字符和控制字符用
的形式表示。
4)字符串常量,是用雙撇引號括起來的一串字符序列.字符串的結(jié)束標(biāo)志為
,\0'O
(2)符號常量
符號常量是使用某個符號代表的常量,符號常量使用編譯預(yù)處理中的宏定義命令
定義。
3.C程序中使用變量,必須先定義,后使用。變骨定義后,系統(tǒng)會根據(jù)變量的類型分
配相應(yīng)的存儲空間。
4.C語言有豐富的運算符,其中算術(shù)運算符包括+、?、*、/、%,運算符中的%僅用于整
數(shù)間的運算:賦值運算符包括和相應(yīng)的復(fù)合賦值運算符+=、-=、*=、/=,賦值
運算的含義是將“『右側(cè)的表達式的計算結(jié)果賦值給“=”左側(cè)的變量,這與數(shù)學(xué)中“=”
的含義不同,需要注意。
5.由運算符和數(shù)據(jù)構(gòu)成表達式,若表達式中各數(shù)據(jù)的類型不同,則存在類型自動轉(zhuǎn)換
問題,必要時也可以使用強制類型轉(zhuǎn)換。
6.對于面向過程的程序設(shè)計來說,程序=數(shù)據(jù)結(jié)構(gòu)+算法。
7.在C語言中,對于每一個程序設(shè)計單元可采用結(jié)構(gòu)化程序設(shè)計方法,有三種基本的程序結(jié)
構(gòu),分別為:順序、選擇和循環(huán)。
通過本單元的學(xué)習(xí),應(yīng)該掌握C語言程序設(shè)計所需要的基本知識,為后續(xù)內(nèi)容的學(xué)習(xí)打下堅
實的基礎(chǔ)。
單元練習(xí)
一.選擇題
1.在C語言中,int、short,char三種類型數(shù)據(jù)所占用的存儲空間是(c)。
A.均為2個字節(jié)B.int和short占2個字節(jié),char占1個字節(jié)
C.與編譯環(huán)境有關(guān)D.由用戶自己定義
2.下面定義字符型變量ch的語句不正確的是(b)o
A.charch='\X2A';B.charch="c";
C.charch=65;D.charch=NULL;
3.已知大寫字母A的ASCII是65,小寫字母a的ASCII是97,以下不能將字符型變量
C中的大寫字母轉(zhuǎn)換成對應(yīng)的小寫字母的語句是(d)0
A.c=(c-'A')%26+'a';B.c2=tolowcr(c);
C.c=c-'A'+'a';D.c=('A,+c)%26-'a';
4.設(shè)有定義:doubled,h;,其中d為三角形的底邊長,h為三角形的高,則以下C語言表達式
與其面積公式dh計算結(jié)果不相符的是(b)O
A.d*h/2B.l/2*d*hC.d*h*l/2D.d/2*h
5.以下選項中,與k=n++;完全等價的語句是(a)。
A.k=n;n=n+l;B.n=n+l;k=n;C.k=++n;D.k+=n+l;
二.填空題
1.寫出整型變量a、無符號長整型變量b、雙精度浮點型變量c和字符型變量d的定義語句:
2.常量言和〃a”分別占用—1_個字節(jié)和_2_個字節(jié)的存儲空間。
H的意義是字符型常量a,而的意義是字符串常量a,默認(rèn)后面還有個'(T作為字符串的結(jié)
束符,此常量占倆個字符空間,兩者的區(qū)別就在于數(shù)據(jù)類型不同,前者是字符常量(char),在
計算機內(nèi)存中占用一個字符空間,后者是字符串常量(string),在計算機內(nèi)存中占用倆個字符
空間。
3.有定義inta=1234;,獲取其百位數(shù)碼的表達式為
4.若有定義:chara=97,c;,則表達式c='a'+8,3'的值為。
5.己知intx=6;,則執(zhí)行x+=x-=x-3;語句后,x的值是6。
X=X+X,X=X-(X-3)
6,將一個浮點型變量n四舍五入精確到小數(shù)點后兩位,其表達式為:
7.C語言中基本的數(shù)據(jù)類型有、、
8,結(jié)構(gòu)化程序設(shè)計中基本的程序結(jié)構(gòu)有、、
**********************************************************************
習(xí)題答案:
一.選擇題
1.C2.B3.D4.B5.A
二.填空題
1.inta;unsignedlongb;doublec;chard;
2.12
3.a/100%10
4.f
5.6
6.((int)(n*100+0.5))/100.0;
7.整型、浮點型、字符型
8.順序、選擇、循環(huán)
*******************************************************************************
單元三傾序結(jié)構(gòu)程序設(shè)計
單元總結(jié)提升
本單元中,核心內(nèi)容是順序程序結(jié)構(gòu)程序設(shè)計中標(biāo)準(zhǔn)輸入輸出庫函數(shù)的使用。通過本單
元的學(xué)習(xí),我們應(yīng)該知道:
I.C語言提供了標(biāo)準(zhǔn)輸入輸出庫函數(shù)用「實現(xiàn)數(shù)據(jù)輸入輸出操作,其對應(yīng)的頭文件為
stdio.ho
2.單字符輸入和輸出函數(shù)分別為getchar()和putchar()。
3.格式化輸入和輸出函數(shù)分別為scanff)和printf()。
4.格式化輸出函數(shù)有兩種調(diào)用格式:
(1)printf("寧符串常星”);
(2)printf(“格式控制字符串”,輸出項列表);
5.格式化輸入/輸出口,格式控制符由%開頭。常用的格式控制符有:整型int格式
符%d、float浮點型格式符%f、double浮點型格式符%lf、字符型格式符%c;
對于浮點型格式可以用m.n形式的附加格式說明小數(shù)的寬度和小數(shù)位數(shù)。
6,格式化輸入中的輸入項為地址列表,對變量取地址的運算符為&。
通過本單元的學(xué)習(xí),應(yīng)對順序結(jié)構(gòu)程序設(shè)計的特點和設(shè)計思路有所了解,同時重點學(xué)會單字
符輸入函數(shù)getchar()>單字符輸出函數(shù)putchar()x格式化輸出函數(shù)printR)和格式化輸入函數(shù)
scanf()的正確使用。
單元練習(xí)
一.選擇題
I.已定義x為float型變量,其值為213.45678,則printf("%-4.2f\n",x);的輸出結(jié)果為
()。
A.213.46B.213.45
C.-213.45D.輸出格式控制說明的域?qū)挷粔?,不能輸?/p>
2.有以下程序,程序運行時輸入:1,2,3〈回車〉,則輸出的結(jié)果為()。
Ainclude<stdio.h>
voidmain()
{inta,b,c;
scanf("%d%d%d",&a,&b,&c);
printf("a+b+c=%d\n",a+b+c);
)
A.6B.a+b+c=6C.123D.不確定的值
3.下面輸入語句中,正確的是()。
A.scanf("a=b=%d",&a,&b);B.scanf("%d,%d",&a,&b);
C.suanf("%c';c);D.suanfC^d%d\n",&fl.f2);
4.在VC++6.0環(huán)境中,下列說法正確的是()。
A.輸入函數(shù)scanf()輸入多個數(shù)據(jù)時,有時數(shù)據(jù)間不必加間隔符。
B.輸入函數(shù)scanf()中單精度或雙精度浮點型數(shù)據(jù)都要用%£作為格式控制符。
C.使用輸出函數(shù)primf()輸出字符或字符串都用格式控制符%s。
D.輸出函數(shù)printf()中單精度或雙精度浮點型數(shù)據(jù)都要用%£作為格式控制符。
5.下面程序的功能是實現(xiàn)兩個字符變量互換值,若為chi輸入a,ch2輸入b,則程序運
行時正確的輸入是()。
ttinclude<stdio.h>
voidmain()
{charchl,ch2,ch;
scanf("%c%c",&chl,&ch2);
ch=chl;chl=ch2;ch2=ch;
printf("chl=%c,ch2=%c\n",chl,ch2);
)
A.a,bB.a<空格>bC.abD.av回車〉b
二.填空題
1.有語句putchar(getchar()),程序運行時輸入:A,則輸出結(jié)果是°
2.printf(”%6.2f%%”,1.03);的輸出結(jié)果是。
3.補充程序:intnl=10,n2=20;printf("",nl,n2);
要求按以下格式輸出nl和n2的侑,每個輸出行從第一列開始。
nl=0010
n2=0020
4.有以下程序,程序運行時輸入:1234<|可車>,執(zhí)行后輸出的結(jié)果是
/include<stdio.h>
voidmain()
{charchi,ch2;
intnl,n2;
chl=getchar();
ch2=getchar();
nl=chl-'O';
n2=nl*10+(ch2-,0/);
printf("nl=%d,n2=%d.\n",nl,n2);
5.輸入多個非字符型的數(shù)值數(shù)據(jù)時,數(shù)據(jù)輸入時可用和作為
間隔符。
習(xí)題答案:
一.選擇題
1.A2.D3.B4.A5.C
二.填空題
1.A
2.0.33%
3.nl=%04d\nn2=%04d
4,nl=l,n2=12
5.空格,TAB鍵,【可車
*******************************************************************************
單元女)選擇結(jié)構(gòu)程序設(shè)計
單元總結(jié)提升
在選擇結(jié)構(gòu)程序設(shè)計中,條件判斷表達式和選擇結(jié)構(gòu)實現(xiàn)語句是兩個核心內(nèi)容。通過本單元
的學(xué)習(xí),我們應(yīng)該知道:
(1)1.條件判斷表達式由關(guān)系運算符及其表達式、邏輯運算符及其表達式構(gòu)成,其
中:
(2)關(guān)系運算符有:>、<、>=、<=、!=、==
邏輯運算符有:&&、||、!
2.選擇結(jié)構(gòu)實現(xiàn)語句有三種方式:
單分支if選擇結(jié)構(gòu):一般格式為:
if(表達式)
{語句;}
雙分支if-else選擇結(jié)構(gòu),一般格式為:
if(表達式)
{語句1;}
else
{語句2:}
多分支switch選擇結(jié)構(gòu),一般格式為:
switch(表達式)
{case常量表達式1:[語句序列1;][break;]
case常景表達式2:[語句序列2;J[break;]
case常量表達式n:[語句序列n;][break;]
default:語句序列n+1;
)
3.在應(yīng)用選擇結(jié)構(gòu)時,應(yīng)注意以下問題:
(1)在if嵌套語句中,要弄清else與if的匹配關(guān)系,書寫if語句嵌套時一般采用縮進
的階梯式寫法,在實際編程中,為了表明編程者的意圖,也常常通過“{}”來強制if和else
的配對關(guān)系。
(2)switch語句中,“表達式”和“常量表達式”的類型只能是整型或字符型數(shù)據(jù),且
“常量表達式”只能由常量構(gòu)成,通過“表達式”與“常量表達式”之間的對等關(guān)系構(gòu)造出
多分支選擇結(jié)構(gòu)。
(3)在某些多分支選擇結(jié)構(gòu)程序設(shè)計中,既可使用if-else語句實現(xiàn),也可以使用switch語句
實現(xiàn)。switch語句與if語勺的不同之處在于:switch語句僅能判斷一種邏輯關(guān)系,即“表達
式”和指定“常量表達式”的值是否相等,而不能進行大于,小于某一個值的判斷,不能表
達區(qū)間數(shù)據(jù)的概念:if語句可以計算和判斷各種表達式。所以switch語句不能完全替代if
語句。
總之,通過本單元的學(xué)習(xí),應(yīng)該掌握C語言選擇結(jié)構(gòu)程序設(shè)計的思路和語句的基本用法。
單元練習(xí)
一.選擇題
1.以下選項中,當(dāng)X為大于I的奇數(shù)時,值為。的表達式()o
A.x%2==lB.x/2C.x%2!=0D.x%2==0
2.在C語言中,if語句后的一對圓括號中有一個用以決定分支走向的表達式,該表達式
()O
A.只能是關(guān)系表達式B.只能是邏輯表達式
C.只能是關(guān)系或邏輯表達式D.可以是任何合法表達式
3.讀下面程序段,當(dāng)x=-3時,輸出y的值為()。
intx,y;
y=o;
scanf("%d”,&x);
if(x>=0)
if(x>0)y=l;
elsey=-l;
printf("y=%d",y);
A.1B.-lC.OD.不確定
4.下列語句將小寫字母轉(zhuǎn)化為大寫字母,正確的語句為()。
A.if('i>=ch>='a*)ch=ch-32;
B.if(ch>=,a*&&ch<=,z')ch=ch-32;
C.ch=(,z>=ch>=,a')?ch-32:ch;
D.ch=(ch>=,a'&&ch<='z')?ch:ch-32;
5.關(guān)于與switch語句配套的case語句中所使用的表達式,說法正確的是()。
A.可以是變量
B.可以是常量或變量
C.只能是常量或常量表達式
D.無論是何種表達式,只要在執(zhí)行時有確定的值就行
二.填空題
1.在算術(shù)運算符、關(guān)系運算符、邏輯運算符和賦值運算符中,運算優(yōu)先級最高的運算符
是,最低的是。
2.正確表示數(shù)學(xué)關(guān)系的C語言表達式為。
3.整型變量n不能被3整除的條件判斷表達式為。
4.以下程序段的功能是:對輸入的大寫字母循環(huán)移動6個位置后輸出,如'N變?yōu)?
G','W'變?yōu)?C'0請將程序段補充完整°
charch;
ch=;
if(ch>='A'&&)
elseif()
putchar(ch);
5.以下程序段功能是根據(jù)學(xué)生考試成績,確定其成績等級,成績與等級對應(yīng)情況與【例
4-7]中表格相同,請將程序段補充完整。
charlevel;〃成績等級
floatscore;〃考試成績
scanf(4<%f\&score);
switch()
{:level=,A';;
case8:level='B';break;
case7:Ievel='C';break;
case6:level='D';break;
default::
prinif(“考試成績等級為:Jevel);
*******************************************************************************
習(xí)題答案:
一.選擇題
1.D2.D3.C4.B5.C
二.填空題
1.!(非)=
2.a>l&&a<4
3.n%3!=0
4.charch;
ch=getcharQ;
if(ch>=/A,&&ch<=,T,)
ch=ch+6;
elseif(ch>=,U'&&ch<='Z,)
ch=ch-2O;
putchar(ch);
5.charlevel;〃成績等級
floatscore;〃考試成績
scanf(t4%f\&score);
switch(int(scorc/10))
{case10:case9:levcl='A';break;
case8:level='B':break;
case7:Ievel=,C,;break;
case6:Ievel='D';break;
default:leveh'E1;
**********************************************本*今******************************
單元五循環(huán)結(jié)構(gòu)程序設(shè)計
單元總結(jié)提升
1.在本單元中,如何理解循環(huán)的本質(zhì)、如何分析循環(huán)的三個要素以及如何描述循環(huán)結(jié)
構(gòu)語句是核心內(nèi)容。通過本單元的學(xué)習(xí),我們應(yīng)該知道:
循環(huán)的木質(zhì)是將程序員從大量重復(fù)編寫相同代碼的工作中解放出來,減少程序源
代碼的存儲空間,提高程序的質(zhì)審,提高程序編寫的工作效率,但計算機執(zhí)行程序
的工作量并沒有減少。
循環(huán)結(jié)構(gòu)的三要素包括:
(1)循環(huán)變量初值
(2)循環(huán)控制條件表達式
(3)循環(huán)體
3.循環(huán)結(jié)構(gòu)描述語句有三種:while、do-while和for。
其中while和do-while的區(qū)別在于不管循環(huán)條件是否成Kdo-while循環(huán)都先執(zhí)行一次
循環(huán)體,所以do-while循環(huán)的循環(huán)體至少執(zhí)行一次,而while循環(huán)的循環(huán)體可能一次都
不執(zhí)行o
4.循環(huán)結(jié)構(gòu)控制語句break的作用是:結(jié)束循環(huán);
循環(huán)結(jié)構(gòu)控制語句continue的作用是:提前結(jié)束本次循環(huán)。
5.在一個循環(huán)結(jié)構(gòu)語句中又包含了一個循環(huán)結(jié)構(gòu)語句稱之為循環(huán)的嵌套。程序執(zhí)行時,
外層循環(huán)每執(zhí)行一次,內(nèi)層循環(huán)就要完整的執(zhí)行完,直至內(nèi)層循環(huán)執(zhí)行結(jié)束,再開始執(zhí)行下
一次外層循環(huán)。
學(xué)習(xí)完本單元,應(yīng)該掌握C語言循環(huán)結(jié)構(gòu)程序設(shè)計的思路和基本語句的用法。至此,我們就
學(xué)完了結(jié)構(gòu)化程序設(shè)計中的三種基本結(jié)構(gòu):順序、選擇和循環(huán)。
單元練習(xí)
一.選擇題
1.下面說法正確的是()。
A.while語句不管條件表達式是否為真,都將執(zhí)行一次循環(huán)體。
B.do-while語句構(gòu)成的循環(huán),一定要有能使while后面表達式的值為。的操作,或在循環(huán)體
中使用break語句。
C.for循環(huán)只能用于循環(huán)次數(shù)確定的情況,且先執(zhí)行循環(huán)體語句,后判斷條件表達式。
D.break語句的作用是從最近的循環(huán)體內(nèi)跳出來,而continue語句的作用是繼續(xù)執(zhí)行循
環(huán)體中尚未執(zhí)行的語句。
2.對for(表達式1;;表達式3),可理解為()。
A.for(表達式1;0;表達式3)
B.for(表達式1;1;表達式3)
C.語法錯誤
D.僅執(zhí)行循環(huán)一次
3.以下程序的功能為()。
^include<stdio.h>
voidmain()
(
inti,k=0;
for(i=l;i<10;i+=2)
k+=i+l;
printt("%d\n",k);
A.計算自然數(shù)1?9的累加和B.計算自然數(shù)170的偶數(shù)之和
C.計算自然數(shù)1?9的奇數(shù)之和D.計算自然數(shù)170的累加和
4.以下能正確計算1*2*3*4*5*6*7*8*9*10的程序段是()。
A.do{i=l;s=l;B.do{i=l;s=0;
i++;i++;
}while(i<=10);)while(i<=10);
C.i=l;s=l;D.i=I;s=0;
do{do{
s=s*i;s=s*i;
i++;i++;
}while(i<=10);}while(i<=10);
5.有以下程序段
intk=0;
while(k=l)k++;
while循環(huán)執(zhí)行的次數(shù)是()。
A.無限次B.1次C.語法錯誤,不能執(zhí)行D.一次也不執(zhí)行
二.填空題
1.若輸入字符串:abede〈回車〉,則以下while循環(huán)體將執(zhí)行次。
while((ch=getchar())==,e,)printf("*");
2.以下程序執(zhí)行后的輸出結(jié)果是。
#include<stdio.h>
voidmain()
(
inti;
for(i=0;i<3;i++)
switch(i)
{case1:printf("%d",i);
case2:printf("%d",i);
default:printt("%cr,i);
}
)
3.卜面程序的功能是:輸出100以內(nèi)能被3整除且個位數(shù)為6的所有整數(shù),請?zhí)羁铡?/p>
#include<stdio.h>
voidmain()
(
inti,j;
for(i=0;_______;i++)
{j=i*10+6;
if(________)continue;
printf("%d\n,,j);
)
)
4.有以下程序
ffinclude<stdio.h>
voidmain()
{intx-23;
do
{printf("%d",x-);
}while(!x);
)
該程序執(zhí)行的結(jié)果為。
5.以下程序的功能是計算1-3+5-7+…-99+101的值,請將程序補充完整。
#include<stdio.h>
voidmain()
(
inti,t=l,s=O;
for(i=l;i<=101;i+=2)
(
s=s+______;
printf("%d\n",s);
*******************************************************************************
習(xí)題答案:
一.選擇題
1.B2.B3.B4.C5.A
二.填空題
1.0
2.011122
3.i<10j%3!=0
4.23
5.i*tt=-t
*******************************************************************************
單元六數(shù)組的使用
單元總結(jié)提升
1.在本單元中,如何定義一維、二維數(shù)組、如何操作數(shù)組以及如何利用字符數(shù)組處理
字符串是核心內(nèi)容。通過本單元的學(xué)習(xí),我們應(yīng)該知道:
2.數(shù)組是一組相同類型的有序數(shù)據(jù)的集合。數(shù)組要先定義后使用,可以在定義時初始
化,每個數(shù)組元素相當(dāng)「同類型的變量,使用數(shù)組名和下標(biāo)來唯一確定數(shù)組中的元
素。
3.一維數(shù)組定義的一般格式為:類型標(biāo)識符數(shù)組名[整型常量表達式,對于已定
義好的?維數(shù)組C編譯系統(tǒng)會分配連續(xù)的存儲空間,數(shù)組名代表數(shù)組在內(nèi)存中存
放的首地址。一維數(shù)組的引用方法為:數(shù)組名[下標(biāo)],其中下標(biāo)從0開始。
二維數(shù)組定義的一般格式為:類型標(biāo)識符數(shù)組名[整型常量表達式1][整型常量表
達式2];,對于已定義好的二維數(shù)組C編譯系統(tǒng)會分配連續(xù)的存儲空間,將二維數(shù)組元素按
行依次存儲。二維數(shù)組元素的訪問涉及第一維和第二維兩個下標(biāo),其引用方法為:數(shù)組
名[下標(biāo)1][下標(biāo)2]。
字符數(shù)組是一組字符型數(shù)據(jù)的有序集合,其中每個數(shù)組元素的值都是字符。C語言用字符數(shù)
組實現(xiàn)字符串變量,字符串以'\0'作為結(jié)束標(biāo)志。字符串的輸入可以通過gets:)、
scanf()函數(shù)實現(xiàn),字符串的輸出可以通過puts。、printf()函數(shù)實現(xiàn)。常見的字符串操
作庫函數(shù)有:求字符串長度函數(shù)strlen()、字符串復(fù)制函數(shù)strcpy(),字符串連接函數(shù)
strcat()字符串比較函數(shù)strcmp(),這些庫函數(shù)的定義都在頭文件string.h中。常見的
字符庫函數(shù)的定義都在頭文件ctype.h中。
數(shù)組的操作通常離不開循環(huán)結(jié)構(gòu),在使用循環(huán)結(jié)構(gòu)操作數(shù)組時應(yīng)注意下標(biāo)的變化規(guī)律。
通過本單元的學(xué)習(xí),應(yīng)該掌握C語言中對于數(shù)組這一構(gòu)造數(shù)據(jù)類型的使用方法和操作方法。
單元練習(xí)
一.選擇題
1.定義一個名為s的字符型數(shù)組,并且賦初值為字符串“123”的錯誤語句是()。
A.chars[]={A,,2,3J\0'};B.chars[]={"123"};
C.chars[]={"123\n"};D.chars[4]={T,2,3};
2.下列數(shù)組定義語句中,正確的是()
A.inta[][]={l,2,3A5,6);B.chara[2][3]='a:
C.inta[][3]={1,23,4,5,6);D.inta[][]={{1,2,3},{4,5,6}};
3.已定義int叫[3]={123,4,5,6,7,8,9};,則a⑴⑵的初值為()。
A.2B.4C.6D.8
4.判斷字符串strl是否大于字符串s(r2,應(yīng)當(dāng)使用()。
A.if(strl>str2)B.if(strcmp(strl,str2)<0)
C.if(strcmp(str2,strl)>0)D.if(strcmp(strl,str2)>0)
5.下列程序段的功能是給數(shù)組所有的元素輸入數(shù)據(jù),然后輸出,請選擇正確答案填空()。
#include<sldio.h>
voidmain()
(
inta[10],i=0;
while(i<10)
scanf("%d”,______________);
for(i=0;i<IO:i++)
printf("%4d",a[i]);
A.a+(i++)B.&ali+ljC.a+iD.&a[++i]
二.填空題
1.定義一個名為a的單精度浮點型一維數(shù)組,數(shù)組的長度為4,所有元素的初值均為0,定義
語句為,引用該數(shù)組元素時,下標(biāo)的范用是,
該數(shù)組占用的存儲空間為字節(jié)。
2.設(shè)有數(shù)據(jù)定義語句inti=3,x[4]={l,2,3};1則數(shù)組元素x[i]的值
是。
3.下列程序的功能是讀取10個實數(shù),然后依次輸出前1個實數(shù)和、前2個實數(shù)和、...、
前9個實數(shù)和、前10個實數(shù)和。請將程序補充完整。
#include<stdio.h>
voidmain()
{floatf[10],x=0;
inti;
for(i=0;i<10;i++)
scanf(M%f,,&f[i]);
for(i=0;i<10;i++)
printfC'suniofNo.%2dis%.2f.\n".i,x);
)
}
4,下列程序的功能是求兩個矩陣的和,請將程序補充完壑。
ttinclude<stdio.h>
voidmain()
{inta⑶⑷,b⑶⑷,c⑶⑷;〃數(shù)組c存放矩陣a與b的和
inti,j;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
for(i=0;i<3;i++)
torg=0;j<4;j++)
{scanf("%d",____________);
)
for(i=0;i<3;i++)
{for(j=0;j<4;j++)
printf("%d",c(i][j));
putchar('\n');
)
)
5.閱讀下列程序,程序運行后的輸出結(jié)果是
#include<stdio.h>
#include<string.h>
voidmain()
{chars[3][20]={"1234","234567”,"6789”};
inti,k;
for(k=0,i=l;i<3;i++)
if(strcmp(s[k],s(i])<0)k-i;
puts(s[k]);
)
************************************************?******************************
習(xí)題答案:
一.選擇題
1.C2.C3.C4.D5.A
二.填空題
1.floata[4]={0}。至316
2.0
3.x+=f[i];或x=x+f[i];
4.&b[i][j]c[i][j]=a[i][j]+b[i][j]
5.6789
*******************************************************************************
單元七盛數(shù)的使用
單元總結(jié)提升
1.在本單元中,如何使用自定義函數(shù)是核心內(nèi)容。通過本單元的學(xué)習(xí),我們應(yīng)該知道:
2.函數(shù)是構(gòu)成C程序的基本單位,函數(shù)的使用為模塊化程序設(shè)計奠定了基礎(chǔ)。從用戶
使用的角度,函數(shù)分為庫函數(shù)、自定義函數(shù)兩種。
3.庫函數(shù)的使用包括頭文件包含和庫函數(shù)調(diào)用兩個環(huán)節(jié):用戶自定義函數(shù)
的使用包括函數(shù)聲明、函數(shù)定義和函數(shù)調(diào)用三個環(huán)節(jié)。
4.從函數(shù)的外觀形式看,函數(shù)分為有參函數(shù)、無參函數(shù)兩種。當(dāng)主調(diào)函數(shù)調(diào)用無
參函數(shù)時,不需要向這些函數(shù)傳遞參數(shù);當(dāng)主調(diào)函數(shù)調(diào)用有參函數(shù)時,需要傳
遞參數(shù)。
用戶自定義函數(shù)的一般形式為:
函數(shù)返回值類型函數(shù)名(形式參數(shù)列表)〃函數(shù)首部
(函數(shù)體:
}
其中第一行稱為函數(shù)首部,大括號“{}”括起來的部分稱為函數(shù)體,對于有返回值
的函數(shù),函數(shù)體中要包括return語句。
5.函數(shù)首部也稱為函數(shù)原型,用函數(shù)原型聲明函數(shù)時,形參名可以省略不寫,而只寫形
參的類型,但形參的類型和數(shù)量必須與函數(shù)首部保持一致。
6.函數(shù)要先聲明,然后才能使用,函數(shù)聲明在程序中的位置有以下幾種情況:(1)函數(shù)
聲明寫在主調(diào)函數(shù)的外部,這時的函數(shù)聲明為全局聲明。(2)函數(shù)聲明寫在主調(diào)函數(shù)的
說明語句中,這時的函數(shù)聲明為局部聲明。(3)函數(shù)的定義出現(xiàn)在主調(diào)函數(shù)之前,則函
數(shù)聲明可以省略。
7.函數(shù)的調(diào)用形式為:函數(shù)名(實際參數(shù)列表)。若調(diào)用無參函數(shù),則實參為空;若調(diào)
用有參函數(shù),則在()內(nèi)寫出與形參類型、數(shù)量一致的實參。對廣有參函數(shù),函數(shù)調(diào)用過
程中存在著參數(shù)傳遞的問題,參數(shù)傳遞有兩種情況,其?為值傳遞,其二為地址傳
遞。
8.函數(shù)在函數(shù)體中出現(xiàn)了對自身調(diào)用的語句,就稱為函數(shù)遞歸調(diào)用。使用遞歸方法解決
問題的關(guān)鍵是如何找出遞歸關(guān)系,以及找出遞歸調(diào)用的終止條件。
9.帶參宏定義的一般形式為:define宏名(形參列表)字符串。通常用帶參數(shù)的
宏定義代替簡單公式型函數(shù)。
10.函數(shù)的存儲類型有static和extern兩種。extern型函數(shù)稱為“外部函數(shù)”,可以
被其他編譯單位中的函數(shù)調(diào)用;static型函數(shù)稱為“內(nèi)部函數(shù)”,只能被本編譯單位的
函數(shù)調(diào)用。
11.程序中變量的使用范圍稱為變量的作用域,每個變量都有自己的作用域。按照作用
域的范圍可分為兩種:局部變量和全局變量.
12.變量的存儲方式可分為“動態(tài)存儲”和“靜態(tài)存儲”兩種。動態(tài)存儲變量包括
auto和regiest兩種類型;靜態(tài)存儲變量包括static和extern兩種類型。靜態(tài)存儲
變量若沒有初始化,則默認(rèn)初始值為0。static類型變量的值具有繼承性,即本次調(diào)用
的初值是上次調(diào)用結(jié)束時變量的值。
單元練習(xí)
一.選擇題
1.關(guān)于使用函數(shù)的目的,以下不正確的說法是()o
A.提高程序的執(zhí)行效率B.提高程序的開發(fā)效率
C.減少程序文件所占內(nèi)存D.提高程序可讀性
2.以下正確的函數(shù)首部是(
A.voidfunfintxjnty)B.voidfun(intx;inty)
C.voidfun(intx,y)D.voidfun(x,y)
3設(shè)函數(shù)fun的定義形式為:
voidfun(charch,floatx){......}
則以下對函數(shù)fun的調(diào)用正確的是()o
A.fun("abc",3.0);B.t=fun('D',12.3);
C.fun('65'z3.7);D.fun(65,65);
4.關(guān)于函數(shù)的實參和形參,以下正確的說法是()。
A.實參和對應(yīng)的形參各占用獨立的存儲單元
B.實參和對應(yīng)的形參共同占用同一存儲單元
C.只有當(dāng)實參與形參重名時才共同占用存儲單元
D.形參是虛擬的,不占用存儲單元
5.當(dāng)調(diào)用函數(shù)時,實參是一個數(shù)組名,則向函數(shù)傳遞的是()o
A.數(shù)組的長度B,數(shù)組的首地址
C.數(shù)組的每一個元素的地址D.數(shù)組的每一個元素的值
6.將一個函數(shù)指定為static存儲類別后,該函數(shù)將?)。
A.既可以被同一源文件中的函數(shù)調(diào)用,也可以被其他源文件中的函數(shù)調(diào)用
B.只能被同一源文件中的函數(shù)調(diào)用,不能被其他源文件中的函數(shù)調(diào)用
C.只能被其他源文件中的函數(shù)調(diào)用,不能被同一源文件中的函數(shù)調(diào)用
D.既不能被同一源文件中的函數(shù)調(diào)用,也不能被其他源文件中的函數(shù)調(diào)用
7.以下敘述正確的是()。
A.全局變量的作用域一定比局部變量的作用域作用范圍大
B.靜態(tài)static類型變量的生存期貫穿于整個程序的運行期間
C.函數(shù)的形參都屬于全局變量
D.未在定義語句中賦初值的auto變量和static變量的初值都是隨機值
二.填空題
1.假設(shè)已有#(知世M(rjr*r,則語句printf("%d”,M(2+3));的執(zhí)行結(jié)果為
2.以下程序輸出結(jié)果為。
ffinclude<stdio.h>
voidfun(intx,inty)
{x=x+y;y=x-y;x=x-y;
printf("%d,%d\n",x,y);
)
voidmain()
{intx=2,y=3;
fun(x,y);
printf("%d,%d\n",x,y);
)
3.以下程序輸出結(jié)果為。
ffinclude<stdio.h>
inta,b;
voidfun()
{a=10;b=20;
)
voidmain()
{inta=3,b=9;
fun();
printf("%d,%d\n”,a,b);
)
4.以下程序輸出結(jié)果為。
#include<stdio.h>
intf()〃定義f函數(shù),a為形參
{intb=0;〃定義b為自動變量
staticintc=3;〃定義C為靜態(tài)局部變量
b=b+1;
c=c+l;
returnb+c;
)
voidmain()
{intal,a2;
al=f();
a2=t();
printf("%d,%d”,al,a2);
}
5.以卜程序輸出結(jié)果為
#include<stdio.h>
intfun(inln)
(if(n==l)return1;
elsereturnfun(n-l)+l;
}
voidmain()
(inti,j=O;
for(i=l;i<3;i++)
j+=fun(i);
printf("%d\n"J);
}
6.以卜程序輸出結(jié)果為
#include<sidio.h>
voidfun(inta[],intn)
(fbr(in(i=0;i<n;i++)
if(a[i]>0)a[i]*=2;
}
voidmain()
(intb[5]=<1.2,3,4,5);
fun(b,5);
fbr(inti=0;i<5;i++)
printf("%d\f;b[ij);
}
************************************************?******************************
習(xí)題答案:
一.選擇題
l.A2.A3.D4.A5.B6.B7.B
二.填空題
1.11
2.3,2
2,3
3.3,9
4.5,6
5.3
6.246810
*******************************************************************************
單元八指針的使用
單元總結(jié)提升
4.在本單元中,對指計的理解,以及利用指針訪問不同形式的數(shù)據(jù)是核心內(nèi)容。通過
本單元的學(xué)習(xí),我們應(yīng)該知道:
內(nèi)存地址就稱為指針,C語言允許用一個變量來存放指針,這種變量稱為指針變量,而
指針變量的值就是某個內(nèi)存單元的地址。
定義指針變量的一般格式為:類型標(biāo)識符*指針變量名,其中:
(1)“指針變量名”前面的“*”,表示該變量是指針變量,不能省略。
(2)“類型標(biāo)識符”表示該指針變量所指向的變量的數(shù)據(jù)類型。
(3)當(dāng)一個指針變量已確定指向某類型的變量時,不能再指向另一種類型的變量。
3.指針變量被賦值后即可引用,引用指針變量的一股方法為:*指針變量名,
4.指針和數(shù)組有著密切的關(guān)系,任何通過控制數(shù)組下標(biāo)實現(xiàn)的對數(shù)組的操作,都可用
指針來實現(xiàn)。要通過指針操作數(shù)組,首先要建立指針變量與數(shù)組之間的關(guān)系,然后才能
通過指針變量訪問數(shù)組元素。若有語句段:inta[10];int*p;p=a;,則對于數(shù)組元素的訪
問方式有a[i]、*(p+i)、p[i],對數(shù)組元素地址的表示方式有a+i、p+i、&a[i]。
5.數(shù)組名代表數(shù)組的首地址,利用函數(shù)處理?維數(shù)組數(shù)據(jù)時,函數(shù)之間的參數(shù)傳遞為
數(shù)組首地址。將數(shù)組的首地址作為實參傳遞給函數(shù)的形參以后,實參數(shù)組和形參數(shù)組
其實是同一段內(nèi)存中的數(shù)據(jù)。
6.字符串是存放在某存儲區(qū)域的一串字符序列,可通過字符數(shù)組和字符指針兩種方式
操作字符串。
7.函數(shù)返回值可以是地址(指針類型),返回值為地址的函數(shù)定義形式為:
〈類型標(biāo)識符〉*<函數(shù)名>(1形參列表1);°
通過本單元的學(xué)習(xí),應(yīng)明確地址和指針的關(guān)系,掌握使用指針訪問內(nèi)存數(shù)據(jù)的基本方法。
單元練習(xí)
一.選擇題
1.假設(shè)整型變量a的值是12,a的地址是2200,若想使整型指針變量p指向a,以下賦值正
確的是()。
A.&a=2200;B.*p=12;C.*p=2200;D.
p=&a;
2.若有定義ini*p,m=5,n;,以下正確的程序段是()。
A.p=&n;scanf"%d",&p);B.p=&n;scanf("%d",*p);
C.scanf(〃%d〃,&n);^p=n;D.p=&n:*p=m;
3.以下合法的定義是()。
A.str[]={"China"};B.char*p="China";
C.char*p;strcpy(p,"China");D.charstr[13];str[]="China";
4.若有定義inta[卜{1,3,5,7,9,11},*p=a;,則能夠正確引月該數(shù)組元素的是)o
A.aB.a[6]C.*(p—)D.*(-p)
5.以下程序運行結(jié)果為()。
#include<stdio.h>
voidmain()
{
chara[]="Language"
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年心理測試變態(tài)考試題庫及答案參考
- 2026年廣東食品藥品職業(yè)學(xué)院單招綜合素質(zhì)考試題庫及答案1套
- 2026年寧德職業(yè)技術(shù)學(xué)院單招職業(yè)傾向性測試題庫及答案1套
- 2026年建筑電工期末試題及答案(名校卷)
- 2026年河南科技職業(yè)大學(xué)單招職業(yè)適應(yīng)性測試模擬測試卷附答案
- 2026年朔州陶瓷職業(yè)技術(shù)學(xué)院單招職業(yè)傾向性考試題庫及答案1套
- 2026云南文山州馬關(guān)縣中醫(yī)醫(yī)院面向社會招聘2名編外中藥學(xué)專業(yè)技術(shù)人員筆試備考題庫及答案解析
- 2026年山東省臨沂市單招職業(yè)適應(yīng)性測試模擬測試卷及答案1套
- 2025年合肥產(chǎn)投康養(yǎng)集團有限公司及子公司社會招聘17名考試備考題庫附答案
- 2025年中國廣電甘肅網(wǎng)絡(luò)股份有限公司臨夏州分公司招聘筆試備考題庫附答案
- T/CCT 007-2024煤化工廢水處理運營能力評價
- GB/T 45554-2025種豬生產(chǎn)性能測定技術(shù)規(guī)范
- 食品居間合同協(xié)議
- 2022學(xué)年上海復(fù)旦附中高一(上)期末信息技術(shù)試題及答案
- 廣東省廣州市白云區(qū)2024-2025學(xué)年六年級(上)期末語文試卷(有答案)
- 心內(nèi)科護理帶教工作總結(jié)
- 知行合一實踐出真知主題班會
- GB/T 45166-2024無損檢測紅外熱成像檢測總則
- 山東省菏澤市東明縣2024-2025學(xué)年七年級上學(xué)期考試生物試題
- 北京市海淀區(qū)2023-2024學(xué)年六年級上學(xué)期語文期末試卷(含答案)
- 2024集裝箱儲能系統(tǒng)測試大綱
評論
0/150
提交評論