違法信息舉報(bào) 客服熱線:400-118-7898
廣告
?
專接本欄目測試廣告

?C語言程序設(shè)計(jì)復(fù)習(xí)資料及習(xí)題(2)

普通專升本 責(zé)任編輯:管理員 2021-12-17

摘要:本文是C語言程序設(shè)計(jì)復(fù)習(xí)資料及習(xí)題(2),有打算報(bào)考2022年專升本需要考核C語言程序設(shè)計(jì)的同學(xué)可以一起來看看。供大家參考,下面是具體詳細(xì)內(nèi)容。

單元四 選擇結(jié)構(gòu)程序設(shè)計(jì)

單元總結(jié)提升

在選擇結(jié)構(gòu)程序設(shè)計(jì)中,條件判斷表達(dá)式和選擇結(jié)構(gòu)實(shí)現(xiàn)語句是兩個核心內(nèi)容。通過本單元的學(xué)習(xí),我們應(yīng)該知道:

1.條件判斷表達(dá)式由關(guān)系運(yùn)算符及其表達(dá)式、邏輯運(yùn)算符及其表達(dá)式構(gòu)成,其中:

(1) 關(guān)系運(yùn)算符有: > 、 < 、 >= 、 <= 、 !=、 ==

(2) 邏輯運(yùn)算符有: &&、||、 !

2.選擇結(jié)構(gòu)實(shí)現(xiàn)語句有三種方式:

(1) 單分支if選擇結(jié)構(gòu),一般格式為:

if ( 表達(dá)式 )

{ 語句;}

(2) 雙分支if-else選擇結(jié)構(gòu),一般格式為:

if ( 表達(dá)式 )

{ 語句1;}

else

{ 語句2;}

(3) 多分支 switch選擇結(jié)構(gòu),一般格式為:

switch( 表達(dá)式 )

{ case 常量表達(dá)式1: [語句序列1;] [break;]

case 常量表達(dá)式2: [語句序列2;] [break;]

……

case 常量表達(dá)式n: [語句序列n;] [break;]

default: 語句序列n+1;

}

3.在應(yīng)用選擇結(jié)構(gòu)時,應(yīng)注意以下問題:

(1)在if嵌套語句中,要弄清else與if的匹配關(guān)系,書寫if語句嵌套時一般采用縮進(jìn)的階梯式寫法,在實(shí)際編程中,為了表明編程者的意圖,也常常通過“{}”來強(qiáng)制if和else的配對關(guān)系。

(2)switch語句中,“表達(dá)式”和“常量表達(dá)式”的類型只能是整型或字符型數(shù)據(jù),且“常量表達(dá)式”只能由常量構(gòu)成,通過“表達(dá)式”與“常量表達(dá)式”之間的對等關(guān)系構(gòu)造出多分支選擇結(jié)構(gòu)。

(3)在某些多分支選擇結(jié)構(gòu)程序設(shè)計(jì)中,既可使用if-else語句實(shí)現(xiàn),也可以使用switch語句實(shí)現(xiàn)。switch語句與if語句的不同之處在于:switch語句僅能判斷一種邏輯關(guān)系,即“表達(dá)式”和指定“常量表達(dá)式”的值是否相等,而不能進(jìn)行大于,小于某一個值的判斷,不能表達(dá)區(qū)間數(shù)據(jù)的概念;if語句可以計(jì)算和判斷各種表達(dá)式。所以switch語句不能完全替代if語句。

總之,通過本單元的學(xué)習(xí),應(yīng)該掌握C語言選擇結(jié)構(gòu)程序設(shè)計(jì)的思路和語句的基本用法。

單元練習(xí)

一.選擇題

1.以下選項(xiàng)中,當(dāng)x為大于1的奇數(shù)時,值為0的表達(dá)式( )。

A.x%2==1 B.x/2 C.x%2!=0 D.x%2==0

2.在C語言中,if語句后的一對圓括號中有一個用以決定分支走向的表達(dá)式,該表達(dá)式( )。

A.只能是關(guān)系表達(dá)式 B.只能是邏輯表達(dá)式

C.只能是關(guān)系或邏輯表達(dá)式 D.可以是任何合法表達(dá)式

3.讀下面程序段,當(dāng)x=-3時,輸出y的值為( )。

int x,y;

y=0;

scanf(“%d”,&x);

if(x>=0)

if(x>0) y=1;

else y=-1;

printf(“y=%d”,y);

A.1 B.-1 C.0 D.不確定

4.下列語句將小寫字母轉(zhuǎn)化為大寫字母,正確的語句為( )。

A.if(’z’>=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語句中所使用的表達(dá)式,說法正確的是( )。

A.可以是變量

B.可以是常量或變量

C.只能是常量或常量表達(dá)式

D.無論是何種表達(dá)式,只要在執(zhí)行時有確定的值就行

二.填空題

1.在算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符和賦值運(yùn)算符中,運(yùn)算優(yōu)先級最高的運(yùn)算符是 ,最低的是 。

2.正確表示數(shù)學(xué)關(guān)系“1<a<4”的c語言表達(dá)式為____________________。< p="">

3.整型變量n不能被3整除的條件判斷表達(dá)式為 。

4.以下程序段的功能是:對輸入的大寫字母循環(huán)移動6個位置后輸出,如’A’變?yōu)椤疓’,’W’變?yōu)椤疌’。請將程序段補(bǔ)充完整。

char ch;

ch= ;

if(ch>=’A’&& )

else if( )

putchar(ch);

5.以下程序段功能是根據(jù)學(xué)生考試成績,確定其成績等級,成績與等級對應(yīng)情況與【例4-7】中表格相同,請將程序段補(bǔ)充完整。

char level; //成績等級

float score; //考試成績

scanf(“%f”,&score);

switch( )

{ :level=’A’; ;

case 8: level=’B’;break;

case 7: level=’C’; break;

case 6: level=’D’; break;

default: ;

}

printf(“考試成績等級為: .”,level);

習(xí)題答案:

一.選擇題

1.D 2.D 3.C 4.B 5.C

二.填空題

1.!(非) =

2.a>1&&a<4

3.n%3!=0

4. char ch;

ch= getchar() ;

if(ch>=’A’&& ch<='T' )

ch=ch+6;

else if(ch>='U'&&ch<='Z' )

ch=ch-20;

putchar(ch);

5.char level; //成績等級

float score; //考試成績

scanf(“%f”,&score);

switch(int(score/10) )

{ case 10: case 9 :level=’A’; break ;

case 8: level=’B’;break;

case 7: level=’C’; break;

case 6: level=’D’; break;

default: level='E' ;

}

單元五 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)

單元總結(jié)提升

在本單元中,如何理解循環(huán)的本質(zhì)、如何分析循環(huán)的三個要素以及如何描述循環(huán)結(jié)構(gòu)語句是核心內(nèi)容。通過本單元的學(xué)習(xí),我們應(yīng)該知道:

1. 循環(huán)的本質(zhì)是將程序員從大量重復(fù)編寫相同代碼的工作中解放出來,減少程序源代碼的存儲空間,提高程序的質(zhì)量,提高程序編寫的工作效率,但計(jì)算機(jī)執(zhí)行程序的工作量并沒有減少。

2. 循環(huán)結(jié)構(gòu)的三要素包括:

(1)循環(huán)變量初值

(2)循環(huán)控制條件表達(dá)式

(3)循環(huán)體

3.循環(huán)結(jié)構(gòu)描述語句有三種: while 、 do-while 和 for 。

其中while和do-while的區(qū)別在于 不管循環(huán)條件是否成立,do-while循環(huán)都先執(zhí)行一次循環(huán)體,所以do-while循環(huán)的循環(huán)體至少執(zhí)行一次,而while循環(huán)的循環(huán)體可能一次都不執(zhí)行 。

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è)計(jì)的思路和基本語句的用法。至此,我們就學(xué)完了結(jié)構(gòu)化程序設(shè)計(jì)中的三種基本結(jié)構(gòu):順序、選擇和循環(huán)。

單元練習(xí)

一.選擇題

1.下面說法正確的是( )。

A.while語句不管條件表達(dá)式是否為真,都將執(zhí)行一次循環(huán)體。

B.do-while語句構(gòu)成的循環(huán),一定要有能使while后面表達(dá)式的值為0的操作,或在循環(huán)體中使用break語句。

C.for循環(huán)只能用于循環(huán)次數(shù)確定的情況,且先執(zhí)行循環(huán)體語句,后判斷條件表達(dá)式。

D.break語句的作用是從最近的循環(huán)體內(nèi)跳出來,而continue語句的作用是繼續(xù)執(zhí)行循環(huán)體中尚未執(zhí)行的語句。

2. 對for(表達(dá)式1;;表達(dá)式3),可理解為( )。

A.for(表達(dá)式1;0;表達(dá)式3)

B.for(表達(dá)式1;1;表達(dá)式3)

C.語法錯誤

D.僅執(zhí)行循環(huán)一次

3. 以下程序的功能為( )。

#include

void main()

{

int i,k=0;

for(i=1;i<10;i+=2)

k+=i+1;

printf("%d\n",k);

}

A.計(jì)算自然數(shù)1~9的累加和 B.計(jì)算自然數(shù)1~10的偶數(shù)之和

C.計(jì)算自然數(shù)1~9的奇數(shù)之和 D.計(jì)算自然數(shù)1~10的累加和

4.以下能正確計(jì)算1*2*3*4*5*6*7*8*9*10的程序段是( )。

A.do{i=1;s=1; B.do{i=1;s=0;

s=s*i; s=s*i;

i++; i++;

}while(i<=10); }while(i<=10);

C.i=1;s=1; D.i=1;s=0;

do{ do{

s=s*i; s=s*i;

i++; i++;

}while(i<=10); }while(i<=10);

5.有以下程序段

int k=0;

while(k=1) k++;

while循環(huán)執(zhí)行的次數(shù)是( )。

A.無限次 B.1次 C.語法錯誤,不能執(zhí)行 D.一次也不執(zhí)行

二.填空題

1.若輸入字符串:abcde

while((ch=getchar())==’e’) printf("*");

2.以下程序執(zhí)行后的輸出結(jié)果是 。

#include

void main()

{

int i;

for(i=0;i<3;i++)

switch(i)

{ case 1: printf("%d",i);

case 2: printf("%d",i);

default: printf("%d",i);

}

}

3.下面程序的功能是:輸出100以內(nèi)能被3整除且個位數(shù)為6的所有整數(shù),請?zhí)羁铡?/p>

#include

void main()

{

int i,j;

for(i=0; ;i++)

{ j=i*10+6;

if( ) continue;

printf("%d\n",j);

}

}

4.有以下程序

#include

void main()

{ int x=23;

do

{ printf("%d",x--);

}while(!x);

}

該程序執(zhí)行的結(jié)果為 。

5.以下程序的功能是計(jì)算1-3+5-7+…-99+101的值,請將程序補(bǔ)充完整。

#include

void main()

{

int i,t=1,s=0;

for(i=1;i<=101;i+=2)

{

s=s+ ;

;

}

printf("%d\n",s);

}

習(xí)題答案:

一.選擇題

1.B 2.B 3.B 4.C 5.A

二.填空題

1.0

2.011122

3.i<10 j%3!=0

4.23

5.i*t t=-t

單元六 數(shù)組的使用

單元總結(jié)提升

在本單元中,如何定義一維、二維數(shù)組、如何操作數(shù)組以及如何利用字符數(shù)組處理字符串是核心內(nèi)容。通過本單元的學(xué)習(xí),我們應(yīng)該知道:

1. 數(shù)組是一組相同類型的有序數(shù)據(jù)的集合。數(shù)組要先定義后使用,可以在定義時初始化,每個數(shù)組元素相當(dāng)于同類型的變量,使用數(shù)組名和下標(biāo)來唯一確定數(shù)組中的元素。

2. 一維數(shù)組定義的一般格式為: 類型標(biāo)識符 數(shù)組名[整型常量表達(dá)式]; ,對于已定義好的一維數(shù)組C編譯系統(tǒng)會分配連續(xù)的存儲空間, 數(shù)組名 代表數(shù)組在內(nèi)存中存放的首地址。一維數(shù)組的引用方法為: 數(shù)組名[下標(biāo)] ,其中下標(biāo)從 0 開始。

3. 二維數(shù)組定義的一般格式為: 類型標(biāo)識符 數(shù)組名[整型常量表達(dá)式1] [整型常量表達(dá)式2]; ,對于已定義好的二維數(shù)組C編譯系統(tǒng)會分配連續(xù)的存儲空間,將二維數(shù)組元素按 行 依次存儲。二維數(shù)組元素的訪問涉及第一維和第二維兩個下標(biāo),其引用方法為: 數(shù)組名[下標(biāo)1][下標(biāo)2] 。

4. 字符數(shù)組是一組字符型數(shù)據(jù)的有序集合,其中每個數(shù)組元素的值都是字符。C語言用字符數(shù)組實(shí)現(xiàn)字符串變量,字符串以 ‘\0’ 作為結(jié)束標(biāo)志。字符串的輸入可以通過 gets() 、 scanf() 函數(shù)實(shí)現(xiàn),字符串的輸出可以通過 puts() 、 printf() 函數(shù)實(shí)現(xiàn)。常見的字符串操作庫函數(shù)有:求字符串長度函數(shù) strlen() 、字符串復(fù)制函數(shù) strcpy() 、字符串連接函數(shù) strcat() 、字符串比較函數(shù) strcmp(),這些庫函數(shù)的定義都在頭文件 string.h 中。常見的字符庫函數(shù)的定義都在頭文件 ctype.h 中。

5. 數(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.char s[]={‘1','2','3','\0 '}; B.char s[]={"123"};

C.char s[]={"123\n"}; D.char s[4]={'1','2','3'};

2.下列數(shù)組定義語句中,正確的是()

A.int a[][]={1,2,3,4,5,6}; B.char a[2][3]=‘a(chǎn)',‘b';

C.int a[][3]={1,2,3,4,5,6}; D.int a[][]={{1,2,3},{4,5,6}};

3.已定義 int a[][3]={1,2,3,4,5,6,7,8,9};,則a[1][2]的初值為( )。

A.2 B.4 C.6 D.8

4.判斷字符串str1是否大于字符串str2,應(yīng)當(dāng)使用( )。

A.if(str1>str2) B.if(strcmp(str1,str2)<0)

C.if(strcmp(str2,str1)>0) D.if(strcmp(str1,str2)>0)

5.下列程序段的功能是給數(shù)組所有的元素輸入數(shù)據(jù),然后輸出,請選擇正確答案填空( )。

#include

void main()

{

int a[10],i=0;

while(i<10)

scanf("%d", );

for(i=0;i<10;i++)

printf("%4d",a[i]);

}

A. a+(i++) B.&a[i+1] C.a+i D.&a[++i]

二.填空題

1.定義一個名為a的單精度浮點(diǎn)型一維數(shù)組,數(shù)組的長度為4,所有元素的初值均為0,定義語句為 ,引用該數(shù)組元素時,下標(biāo)的范圍是 ,該數(shù)組占用的存儲空間為 字節(jié)。

2.設(shè)有數(shù)據(jù)定義語句int i=3,x[4]={1,2,3};,則數(shù)組元素x[i] 的值是 。

3.下列程序的功能是讀取10個實(shí)數(shù),然后依次輸出前1個實(shí)數(shù)和、前2個實(shí)數(shù)和、...、前9個實(shí)數(shù)和、前10個實(shí)數(shù)和。請將程序補(bǔ)充完整。

#include

void main()

{ float f[10],x=0;

int i;

for(i=0;i<10;i++)

scanf("%f",&f[i]);

for(i=0;i<10;i++)

{ ;

printf("sum of No.%2d is %.2f.\n",i,x);

}

}

4.下列程序的功能是求兩個矩陣的和,請將程序補(bǔ)充完整。

#include

void main()

{ int a[3][4],b[3][4],c[3][4]; //數(shù)組c存放矩陣a與b的和

int i,j;

for(i=0;i<3;i++)

for(j=0;j<4;j++)

scanf("%d",&a[i][j]);

for(i=0;i<3;i++)

for(j=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.閱讀下列程序,程序運(yùn)行后的輸出結(jié)果是 。

#include

#include

void main()

{ char s[3][20]={“1234”,”234567”,”6789”};

int i,k;

for(k=0,i=1;i<3;i++)

if(strcmp(s[k],s[i])<0) k=i;

puts(s[k]);

}

習(xí)題答案:

一.選擇題

1.C 2.C 3.C 4.D 5.A

二.填空題

1.float a[4]={0} 0至3 16

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

更多資料

廣東省專升本《大學(xué)語文》真題

云南專升本《高等數(shù)學(xué)》真題(2019年)

統(tǒng)招專升本《高等數(shù)學(xué)》真題回憶版(2021年)

更多課程

《市場營銷學(xué)》公開課—業(yè)務(wù)成長戰(zhàn)略

1節(jié)課

《基礎(chǔ)會計(jì)》公開課—會計(jì)要素-反映財(cái)務(wù)狀況的會計(jì)要素

1節(jié)課

《管理學(xué)》公開課——馬斯洛需要層次理論

1節(jié)課

溫馨提示:因考試政策、內(nèi)容不斷變化與調(diào)整,本網(wǎng)站提供的以上信息僅供參考,如有異議,請考生以權(quán)威部門公布的內(nèi)容為準(zhǔn)!

專升本備考資料免費(fèi)領(lǐng)取

去領(lǐng)取

資料下載
  • 統(tǒng)招專升本《大學(xué)語文》真題資料

    下載
  • 統(tǒng)招專升本《大學(xué)語文》真題回憶版(2021年)

    下載
  • 統(tǒng)招專升本《大學(xué)語文》備考資料一

    下載
  • 全國版專接本《大學(xué)語文》真題匯編

    下載