非常好的C語言章節(jié)習題集帶答案_第1頁
非常好的C語言章節(jié)習題集帶答案_第2頁
非常好的C語言章節(jié)習題集帶答案_第3頁
非常好的C語言章節(jié)習題集帶答案_第4頁
非常好的C語言章節(jié)習題集帶答案_第5頁
已閱讀5頁,還剩72頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

非常好的C語言章節(jié)習題集帶答案非常好的C語言章節(jié)習題集帶答案非常好的C語言章節(jié)習題集帶答案資料僅供參考文件編號:2022年4月非常好的C語言章節(jié)習題集帶答案版本號:A修改號:1頁次:1.0審核:批準:發(fā)布日期:第1章認識C語言二、習題(一)、是非題1.程序是指揮計算機進行各種信息處理任務的一組指令序列。A.對 B.錯2.機器語言與硬件平臺相關,但匯編語言和硬件平臺無關。A.對 B.錯3.編譯型高級語言明顯優(yōu)于解釋型高級語言。A.對 B.錯語言把高級語言的基本結構和低級語言的實用性緊密結合起來,不僅適合編寫應用軟件,而且適于編寫系統(tǒng)軟件。A.對 B.錯5.面向對象的程序設計方法明顯優(yōu)于面向過程的程序設計方法。A.對 B.錯6.計算機算法要有一個明確的起點和確定的步驟序列。A.對 B.錯函數(shù)是C程序的入口,由計算機系統(tǒng)負責調(diào)用。A.對 B.錯8.在C語言中,同一行上可以寫一條或多條語句,但一條語句不能寫在多行上。A.對 B.錯9.在C語言中,擴展名為.h的文件稱為頭文件,常用于組織C標準函數(shù)庫中的函數(shù)。A.對 B.錯10.注釋語句會增加編譯結果的復雜性,因此要盡量減少注釋語句的數(shù)量。A.對 B.錯(注釋語句在預處理階段被刪除,不影響編譯)11.聲明變量的含義是通知編譯系統(tǒng)為變量分配合適大小的存儲空間。A.對 B.錯語言不允許使用關鍵字作為變量的名稱,但可以使用保留字為變量命名。A.對 B.錯13.符號常量提高了程序的可讀性,但降低了程序維護的方便性。A.對 B.錯14.變量聲明把一個具體的標識符名稱和計算機內(nèi)存中的一個特殊的位置聯(lián)系起來,同時確定了該位置存儲的信息類型。A.對 B.錯15.C語言允許在同一條語句中定義多個相同類型的變量,其間用分號進行分隔。A.對 B.錯16.在ISO/ANSI1999規(guī)定中,允許將變量聲明放在程序中的任何位置。A.對 B.錯17.不同類型的數(shù)據(jù)在內(nèi)存中所占存儲單元的大小不同,內(nèi)部存儲方式不同,取值范圍不同,甚至能夠參與的運算種類也不相同。A.對 B.錯18.有符號和無符號整數(shù)的區(qū)別僅在于對數(shù)據(jù)最高位的解釋不同。若最高位解釋為數(shù)據(jù)位,則為signed類型;若最高位解釋為符號位,則為unsigned類型。A.對 B.錯19.默認形式的實數(shù)常量的數(shù)據(jù)類型為float類型。A.對 B.錯20.實型變量能表示的數(shù)字的有效位數(shù)是有限的。A.對 B.錯()是C語言提供的標準庫函數(shù),用于測試數(shù)據(jù)類型在系統(tǒng)中所占的字節(jié)數(shù)。A.對B.錯22.使用轉義字符可輸出ASCII碼表中的任一字符。A.對 B.錯類型數(shù)據(jù)內(nèi)部采用整數(shù)存儲方式,因此它和int型數(shù)據(jù)可以互為通用。A.對 B.錯24.在C語言中,保存字符串“B”實質(zhì)上是保存字符'B'和'\0'兩個符號。A.對 B.錯25.在C語言中,允許對兩個字符型數(shù)據(jù)進行加法運算。A.對 B.錯(二)、選擇題語言是一種______。A.匯編語言B.“解釋型”語言C.“編譯型”語言D.面向對象語言2.下列說法中,正確的是______。A.機器語言與硬件相關,但匯編語言與硬件無關B.不同的計算機類型,其能理解的機器語言相同C.匯編語言采用助記符提高程序的可讀性,但同樣屬于低級語言D.匯編源程序屬于低級語言程序,計算機可以直接識別并執(zhí)行3.下面有關高級語言的說法中,正確的是______。A.高級語言編寫的程序可讀性好,執(zhí)行效率也最高B.高級語言程序必須翻譯成機器語言程序,計算機才能執(zhí)行C.解釋方式和編譯方式相比,具有占用內(nèi)存少、執(zhí)行速度快的特點語言是一種解釋型高級語言4.下面有關C語言特點的說法中,錯誤的是______。語言編寫的代碼較為緊湊,執(zhí)行速度也較快語言不僅適合編寫各種應用軟件,還適于編寫各種系統(tǒng)軟件語言是一種模塊化和結構化的語言語言編寫的程序通常不具備移植性5.下面有關程序設計技術的說法中,錯誤的是______。A.機器語言和匯編語言編程通常采用面向計算機的程序設計方式B.面向過程的程序設計方法通常采用結構化和模塊化設計方法C.面向對象的程序設計方法采用客觀世界的描述方式語言是一種兼顧面向過程和面向對象的高級程序設計語言6.下面有關C程序操作過程的說法中,錯誤的是______。源程序經(jīng)過編譯,得到的目標文件即為可執(zhí)行文件源程序的鏈接實質(zhì)上是將目標代碼文件和庫函數(shù)等代碼進行連接的過程源程序不能通過編譯,通常是由于語法錯誤引起的D.導致不能得到預期計算結果的主要原因是程序算法考慮不周7.一個C語言程序是由________組成。A.主程序B.子程序C.函數(shù) D.過程源程序中不能表示的數(shù)制是______。A.二進制B.八進制C.十進制D.十六進制9.一個C語言程序總是從__________開始執(zhí)行。A.主程序B.子程序C.主函數(shù)D.函數(shù)10.以下敘述中正確的是_______。A.在C程序中,main函數(shù)必須位于程序的最前面程序的每一行中只能寫一條語句C.在對一個C程序進行編譯的過程中,可發(fā)現(xiàn)注釋中的拼寫錯誤語言本身沒有輸入輸出語句11.以下敘述中正確的是_________。程序的基本組成單位是語句程序中的每一行中只能寫一條語句語句必須以分號結束語句必須在一行內(nèi)寫完12.以下敘述中錯誤的是_________。A.函數(shù)是C程序的基本組成單位B.函數(shù)體一般由一組C語句序列組成是C語言提供的輸出語句D.函數(shù)通常分為庫函數(shù)和用戶自定義函數(shù)兩種13.以下程序的輸出結果是______。#include""voidmain(){inta=2,b=3,c=4;printf("%d,%d,%d\n",c,b,a);}32 ,3,4 ,3,2 3414.C語言中,最基本的數(shù)據(jù)類型是_________。A.整型、實型、邏輯型B.整型、實型、字符型C.整型、字符型、邏輯型D.整型、實型、邏輯型、字符型15.下面有關變量聲明的說法中,正確的是_________。語言中不用先聲明變量,需要時直接使用即可B.每個變量的存儲空間大小由數(shù)據(jù)類型和編譯環(huán)境共同決定C.在VC++環(huán)境下,為int型變量分配的存儲空間大小為2個字節(jié)D.變量聲明時,不能進行賦值操作16.若x和y為整型變量,對于scanf("a=%d,b=%d",&x,&y);語句,可使x和y的值分別為10和20的正確輸入方法是_________。20,20=10b=20=10,b=2017.下列標識符中,不合法的用戶標識符為_________。 &b18.下列標識符中,合法的用戶標識符為_________。 name是C語言提供的合法的數(shù)據(jù)類型關鍵字。 20.不合法的字符常量是_________。A.'\678'B.'\"' C.'' D.'\4'21.不正確的字符串常量是_________。A.'abc' B."12'12" C."0" D.""22.關于下面的程序,正確的說法是_________。#includevoidmain(){floata=b=2,result;result=a/b;printf("result=%f\n",result);}A.程序可正常編譯,結果為result=B.共有1處語法錯誤C.共有2處語法錯誤D.共有3處語法錯誤23.下面變量聲明的語句中,錯誤的是_________。c=B; a=3C.charc=65;area=0;24.關于下面的程序,正確的說法是_________。#include<>voidmain(){intx,y,z;x=y=z=1;printf("x=%d,y=%d,z=%d\n",x,y,z);}A.程序無誤,能正常通過編譯B.#include<>有誤,需改為#include""x,y,z;有誤,需改為intx;y;z;=y=z=1;有誤,需改為x=1;y=1;z=1;25.已知字母A的ASCII碼為十進制數(shù)65,且c2為字符型,則執(zhí)行語句c2='A'+'6'-'2';后,c2中的值為__________。 26.為了計算s=10!,則定義變量s時應該使用的數(shù)據(jù)類型是________。 D.以上三種類型均可27.以下選項中合法的標識符是________。 28.下列關于C語言用戶標識符的敘述中正確的是________。A.用戶標識符中可以出現(xiàn)下畫線和中劃線(減號)B.用戶標識符中不可以出現(xiàn)中劃線,但可以出現(xiàn)下畫線C.用戶標識符中可以出現(xiàn)下畫線,但不可以放在用戶標識符的開頭D.用戶標識符中可以出現(xiàn)下畫線和數(shù)字,它們都可以放在用戶標識符的開頭29.以下選項中,能用作數(shù)據(jù)常量的是________。 30.以下關于short、int和long類型數(shù)據(jù)占用內(nèi)存大小的敘述中正確的是________。A.均占4個字節(jié)B.根據(jù)數(shù)據(jù)的大小決定所占內(nèi)存的字節(jié)數(shù)C.由用戶自己定義D.由C語言編譯系統(tǒng)決定31.若已定義charc='\010',則變量c所占的字節(jié)數(shù)為__________。32.要定義雙精度實型變量a和b,并初始化為數(shù)值7,則正確的語句是__________。a,b;a=b=7;a=b=7;a=b=7;a=7,b=7;33.已知字符a的ASCII碼值為97,則以下程序的輸出結果是__________。#include""voidmain(){charch='c';printf("%c%d\n",ch,ch);}D.編譯出錯34.以下程序運行后的輸出結果是_________。#include“”voidmain(){charc;c='B'+32;printf("%c\n",m);}35.以下程序運行后的輸出結果是_________。#include""voidmain(){charc1,c2;c1='a';c2='b';c1=c1-32;c2=c2-32;printf("%c%c\n",c1,c2);printf("%d%d\n",c1,c2);}BBbb656697986566979836.如果將一個函數(shù)的返回值類型說明為void,則表示_________。A.該函數(shù)可以返回任意類型的值B.該函數(shù)不能返回任何值C.該函數(shù)可以返回基本類型的值D.該函數(shù)是main函數(shù),是程序運行的起點37.對于int型常量,不正確的是__________。38.下列整型常量,錯誤的是__________。(39.以下有關整型變量的定義中,錯誤的是___________。intx;x;x;x;40.下列實型常量,錯誤的是__________。41.在VC++環(huán)境下,sizeof(int)和sizeof(float)的值分別為__________。,2,4,4,842.對于浮點型數(shù)據(jù),下列說法中不正確的是______。A.浮點數(shù)在存儲時存在舍入誤差B.程序設計時,不能直接對兩個浮點型數(shù)據(jù)進行相等比較C.將一個很小的浮點數(shù)和一個很大的浮點數(shù)進行相加,結果可能不正確語言中的浮點型變量有float和double兩種43.若ch為字符型變量,則不能使ch表示字符'B'的語句是__________。=B;=66;='\102';='\x42';44.以下程序運行后的輸出結果是_________。#include""intf(intx,inty){return2*x+y;}voidmain(){inta=3,b=2,t=0;t=f(b,a);printf("%d\n",t);}A.0B.5 C.7 D.845.以下程序運行后的輸出結果是_________。#include""voidmain(){charch='a';intx=5;floats=;printf("%d,%d,%d\n",sizeof(ch),sizeof(x),sizeof(s));},2,4 ,4,4 ,4,8 ,5,(三)、編程題1.已知長方形的長和寬分別為x和y,計算其周長和面積。2.編寫一個程序,其功能為:從鍵盤上輸入兩個整型數(shù)據(jù),分別存放在整型變量a和b中,然后輸出表達式a/b和a%b的值。3.編寫一個程序,其功能為:從鍵盤上輸入一個浮點數(shù),然后分別輸出該數(shù)的整數(shù)部分和小數(shù)部分。4.編寫一個程序,其功能為:從鍵盤上輸入一個小寫字母,顯示這個小寫字母及它所對應的大寫字母以及它們的ASCII碼值。提示:大寫字母A~Z的ASCII碼值為65~90,小寫字母a~z的ASCII碼值為97~122。可見,對應的大小寫字母的ASCII碼值相差32,所以大寫字母轉換成小寫字母就是將其ASCII值加上32,小寫字母轉換成大寫字母就是將其ASCII值減去32。5.輸入一個華氏溫度F,根據(jù)公式c=5(F-32)/9計算輸出對應的攝氏溫度。要求:輸入要有提示,輸出要有說明。四、習題答案(一)、是非題(二)、選擇題

第2章順序結構二、習題(一)是非題1.表達式1/4+的值是3。A.對 B.錯(表達式的值為)語言中浮點型變量可以進行自增或自減操作。A.對 B.錯3.如果整型變量a、b、c已經(jīng)正確定義,那么c=b=a=012是一個正確的表達式。A.對 B.錯4.算術運算符和賦值運算符的結合方向均由左自右。A.對 B.錯5.在進行賦值轉換時,變量的類型被自動轉換為賦值號右邊的表達式值的類型。A.對 B.錯6.語句charc="A";定義了字符型變量c,并將其初始化為A。A.對 B.錯7.運算符“%”的操作數(shù)不允許為單精度和雙精度浮點型,允許為字符型和整型。A.對 B.錯8.運算符++的優(yōu)先級高于運算符+。A.對 B.錯9.逗號運算符的求值順序是從左到右的,逗號表達式的值為第一個表達式的值。A.對 B.錯10.“=”運算符用于判斷兩個數(shù)是否相等。A.對 B.錯語言本身不提供輸入輸出語句,但可以通過輸入輸出函數(shù)來實現(xiàn)數(shù)據(jù)的輸入輸出。A.對 B.錯12.在使用函數(shù)scanf輸入數(shù)據(jù)時必須與函數(shù)參數(shù)指定的輸入格式一致。A.對 B.錯()函數(shù)用于輸入單個字符,putchar()函數(shù)用于輸出單個字符。A.對 B.錯、029、-0xEFF均是合法的整型常量。A.對 B.錯15.假定已有定義charc;,sizeofc中的sizeof是容量運算符,而sizeof(char)中由于使用了括號形式,稱為容量函數(shù)。A.對 B.錯16.假定已有整型變量x的定義,則(x+1)++是一個合法的表達式。A.對 B.錯17.假定已有整型變量初始化語句intx=2;,那么表達式x++,x*=2+1的值為9。A.對 B.錯18.假定已有變量定義語句:intm=3,n=2;,那么(float)(m/n)表達式的值是。A.對 B.錯語言中,表達式1/2*2的值為0。A.對 B.錯20.若scanf函數(shù)的格式說明中有一個空格,在輸入時也一定要在對應位置輸入一個空格。A.對 B.錯(二)選擇題1.數(shù)字字符0的ASCII值為48,則以下程序運行后的輸出結果是______。#include<>main(){chara='1',b='2';printf("%c,",b++);printf("%d\n",b-a);},2,2 ,2 ,502.以下程序運行后的輸出結果是______。#include<>main(){intm=12,n=34;printf("%d%d",m++,++n);printf("%d%d\n",n++,++m);}A. B. C. D.3.若整型變量a、b、c、d中的值依次為1、2、3、4。則表達式a+b/d*c的值是______。 4.以下程序運行后的輸出結果是______。#include<>main(){inta,b,c;a=10;b=20;c=a%b+a/b;printf("%d%d%d\n",a,b,c);} 2010 2015.以下程序的功能是:給r輸入數(shù)據(jù)后計算半徑為r的圓面積s。程序在編譯時出錯,出錯的原因是______。#include<>main(){intr;floats;scanf("%d",&r);s=*p*r*r;printf("s=%f\n",s);}A.注釋語句書寫位置錯誤B.存放圓半徑的變量r不應該定義為整型=*p*r*r;語句中使用了非法變量D.輸出語句中格式描述符非法6.設有定義:intk=1,m=2;floatf=7;,則以下選項中錯誤的表達式是______。=k+=k ++ %int(f)=k%m7.設有定義:inta=2,b=3,c=4;,則以下選項中值為0的表達式是______。%b%c b/c=b=c ,b,c8.有以下程序段:intk=0,a=1,b=2,c=3;k=a+=b-=c;,執(zhí)行該程序段后,k的值是______。 9.以下程序運行后的輸出結果是______。#include<>main(){charc;intn=100;floatf=10;doublex;x=f*=n/=(c=50);printf("%d%f\n",n,x);}20 10 10.已知字母A的ASCII碼為65,則以下程序運行后的輸出結果是______。#include<>main(){chara,b;a='A'+'5'-'3';b=a+'6'-'2';printf("%d%c\n",a,b);} 11.表達式2++5%2的值是______。 12.若變量x、y已正確定義并賦值,以下符合C語言語法的表達式是________。A.++x,y=x-- +1=y(反了)=x+10=x+y(x+10=x+y賦值報錯) (x)/1013.以下程序運行后的輸出結果是________。#include<>main(){intx,y,z;x=y=1;z=x++,y++,++y;printf("%d,%d,%d\n",x,y,z);},3,3 ,3,2 ,3,1 ,2,114.以下選項中,值為1的表達式是________。'0''\0' C.'1'-0 D.'\0'-'0'15.設有定義:intk=0;,以下選項的________與其他三個表達式的值不相同。++ +=1 C.++k +116.執(zhí)行以下程序后的輸出結果是________。#include<>main(){inta=10;a=(3*5,a+4);printf("a=%d\n",a);}變量均已正確定義并賦值,以下合法的C語言賦值語句是________。=y=5; =n%; +n=i; =5=4+1;18.設變量已經(jīng)正確定義并賦值,以下正確的表達式是________。=y*5=x+z %5)=y+z*5,++y=25%19.以下不能正確表示代數(shù)式2ab/cd的C語言表達式是________。*a*b/c/d *b/c/d*2 c/d*b*2 *a*b/c*d20.設變量a和b已正確定義并賦初值。請寫出與a-=a+b等價的賦值表達式________。=a-a+b =b =a-(a+b) =-a+b21.設有定義:intx=2;,以下表達式中,值不為6的是________。*=x+1 ++,2*x *=(1+x) *x,x+=222.表達式(int)((double)9/2)-(9)%2的值是________。 23.若有定義intx=10;,則表達式x-=x+x的值為________。 24.若有定義doublea=22;inti=0,k=18;,則以下有錯的語句是________。=a++,i++; =(a+k)/(k-i);=a%11; =!a;25.以下程序運行后的結果是________。#include<>main(){inta=2,b=2,c=2;printf("%d\n",a/b%c);} 26.若有定義inta;longb;doublex,y;,則以下選項中正確的表達式是________。%(int)(x-y) =b=x,y; C.(a*y)%b =x+y=x27.表達式a+=a-=a=9的值是________。 28.若有定義inta=3,b=2,c=1;,以下選項中錯誤的賦值表達式是________。=(b=4)=3 =b=c+1; =(b=4)+c;=1+(b=c=4);29.若有定義intx=12,y=8,z;,在其后執(zhí)行語句z=+x/y;,則z的值為________。 (右邊表達式的值為,賦值給z舍棄小數(shù)) 30.以下程序運行后輸出的結果是________。#include<>main(){inta=0,b=0,c=0;c=(a-=a-5);(a=b,b+=4);printf("%d,%d,%d",a,b,c);},4,5 ,4,5 ,4,4 ,0,031.設變量均已正確定義并且賦值,以下與其他三組輸出結果不同的一組語句是________。++;printf("%d\n",x);=++x;printf("%d\n",n);C.++x;printf("%d\n",x);=x++;printf("%d\n",n);32.以下程序運行后輸出的結果是________。#include<>main(){inta=1,b=0;printf("%d,",b=a+b);printf("%d",a=2*b);},0,0 ,2 ,233.以下程序運行后輸出的結果是________。#include<>main(){intk=011;printf("%d\n"k++);} 34.有以下程序:#include<>main(){intm,n,p;scanf("m=%dn=%dp=%d",&m,&n,&p);printf("%d%d%d\n",m,n,p);}若想使變量m中的值為123,n中的值為456,p中的值為789,則正確的輸入是______。=123n=456p=789 ,456,789=123,n=456,p=789 45678935.以下程序運行后輸出的結果是________。#include<>main(){inta,b,d=25;a=d/10%9;b=a+-1;printf("%d,%d\n",a,b);},1,1 ,0 ,036.以下敘述中正確的是______。A.調(diào)用printf函數(shù)時,必須要有輸出項B.使用putchar函數(shù)時,必須在之前包含頭文件C.在C語言中,整數(shù)可以以十二進制、八進制或十六進制的形式輸出D.調(diào)用getchar函數(shù)讀入字符時,可以從鍵盤上輸入字符所對應的ASCII碼37.程序如下,下敘述中正確的是______。#include<>main(){chara1='M',a2='m';printf("%c\n",(a1,a2));}序輸出大寫字母M B.程序輸出小寫字母mC.格式說明符不足,編譯出錯 D.程序運行時產(chǎn)生出錯信息38.以下程序運行時若輸入:a<回車>,則敘述正確的是______。#include<>main(){charc1='1',c2='2';c1=getchar();c2=getchar();putchar(c1);putchar(c2);}A.變量c1被賦予字符a,c2被賦予回車符B.程序將等待用戶輸入第2個字符C.變量c1被賦予字符a,c2中仍是原有字符2D.變量c1被賦予字符a,c2中將無確定值39.設有定義:inta;floatb;,執(zhí)行scanf("%2d%f",&a,&b);語句時,若從鍵盤輸入:876,a和b的值分別是________。和 和和和40.若在定義語句:inta,b,c;之后,接著執(zhí)行以下選項中的語句,則能正確執(zhí)行的語句是________。("%d",a,b,c); ("%d%d%d",&a,&b,&c); ("%d%d%d",&a,b,c); ("%d%d%d",a,b,c);41.已知字符'A'的ASCII碼值是65,字符變量c1的值是'A',c2的值是'D'。執(zhí)行語句printf("%d,%d",c1,c2-2);后,輸出結果是________。,B ,68,66 ,6842.程序段:intx=12;doubley=;printf("%d%",x,y);的輸出結果是________。 , 若要求從鍵盤讀入含有空格字符的字符串,應使用函數(shù)________。() () () ()44.有以下程序,其中%u表示按無符號整數(shù)輸出,程序運行后的輸出結果是______。#include<>main(){unsignedintx=0xFFFF;printf("%u\n",x);}

(三)、編程題1.編寫一個程序,從鍵盤輸入圓的半徑,計算并輸出該圓的周長、面積和體積。2.輸入四個季度的銷售額(整型),計算并輸出各季度自年初起的累計銷售額,計算并輸出第一季度外的三個季度的環(huán)比增長率(環(huán)比增長率是本期與相比上一期的增長率,針對本題目,即為本季度對上季度的增長率)。3.從鍵盤輸入四門課程的(整數(shù))分數(shù),輸出成績信息,計算并輸出平均分數(shù)。要求輸入輸出有一定提示,輸出的平均分數(shù)保留二位小數(shù)。四、習題答案(一)是非題(二)選擇題43.C

第3章選擇結構二、習題(一)、是非題1.關系運算符是雙目運算符,其功能是將兩個運算對象進行大小比較。A.對 B.錯2.對于與運算“&&”,只有當兩個運算對象都為真時運算結果才為真。A.對 B.錯3.使用條件表達式可以構成各種各樣的兩路選擇結構。A.對 B.錯4.條件可以是任何類型的表達式,如邏輯型,關系型,數(shù)值型等,單個已賦過值的變量或常量也可以作為表達式的特例。A.對 B.錯子句不能單獨作為語句使用,它是if語句的一部分,必須與if配對使用。A.對 B.錯語言規(guī)定,else總是與它上面最遠的if配對。A.對 B.錯7.在switch語句中,每一個case后的常量表達式的值不能相同,因為選擇結構中只允許一個分支所對應的語句組被執(zhí)行。A.對 B.錯8.在執(zhí)行switch選擇結構時,從匹配表達式的相應case處入口,一直執(zhí)行到break語句或到達switch的末尾為止A.對 B.錯9.在C語言中,運算符“=”與“==”的含義都是等于。A.對 B.錯10.當進行比較的運算對象是字符型數(shù)據(jù)時,則按字符的ASCII碼值從左到右逐個對應比較,先大為大。A.對 B.錯11.判斷字符變量ch的值是否為數(shù)字字符的表達式為(ch>='0')&&(ch<='9')。A.對 B.錯12.條件運算符“:”是C語言中唯一的一個三目運算符,該運算符可以嵌套使用。A.對 B.錯13.在C語言中用0表示邏輯值“真”,用非0表示邏輯值“假”。A.對 B.錯14.在C語言中,所有的邏輯運算符的優(yōu)先級都一樣。A.對 B.錯15.在C語言中,邏輯運算符的優(yōu)先級高于算術運算符和關系運算符。A.對 B.錯16.數(shù)學表達式“|x|>4”對應的C語言表達式是“x<-4||x>4”。A.對 B.錯17.與表達式“!(x>0)”等價的表達式是“x<=0”。A.對 B.錯18.與表達式“!0”等價的表達式是“1”。A.對 B.錯19.當a=1,b=2,c=3時,執(zhí)行語句“if(a>c)b=a;a=c;c=b;”后,變量c中的值為3。A.對 B.錯a=1,b=2,c=3;if(a>c)b=a;a=c;c=b;b=220.當a=1,b=2,c=3時,執(zhí)行語句“if(a>c){b=a;a=c;c=b;}”后,變量c中的值為2。A.對 B.錯a=1,b=2,c=3;if(a>c){b=a;a=c;c=b;}C=3(二)、選擇題1.判斷char型變量ch是否為小寫字母的正確表達式是______。A.'a'<=ch<='z'B.(ch>='a')&(ch<='z')C.(ch>='a')&&(ch<='z')D.('a'<=ch)AND('z'>=ch)2.為表示關系100≥b≥0,應使用C語言表達式______。A.(100>=b)&&(b>=0)B.(100>=b)and(b>=0)>=b>=0D.(100>=B)&&(B>=0)3.以下運算符中優(yōu)先級最高的運算符為______。A.!B.&&C.!=D.%4.設x、y和z是int型變量,且x=3,y=4,z=5,則下面表達式中值為0的是______。A.'x'&&'y'<=y||y+z&&y-zD.!((x<y)&&!z||1)!((3<4)&&!5||1)!(1&&0||1)!(0||1)!15.執(zhí)行以下程序段后,x的值為______。inta=14,b=15,x;charc='A';x=(a&&b)&&(c<'B'); 6.下列表達式中,______不是關系表達式。%2==0B.!(x%2)C.(x/2*2-x)==0%2!=07.執(zhí)行以下程序后,輸出的結果是______。include""main(){inta=2,b=-1,c=2;if(a<b)if(b<0)c=0;elsec+=1;printf("%d\n",c);} 8.執(zhí)行以下程序后,輸出的結果是______。include""main(){intw=4,x=3,y=2,z=1;printf("%d\n",(w<xw:z<yz:x));} 9.執(zhí)行以下程序段后,輸出結果是______。inta=3,b=5,c=7;if(a>b)a=b;c=a;if(c!=a)c=b;printf("%d,%d,%d\n",a,b,c);A.程序段有語法錯誤 ,5,3 ,5,5 ,5,710.下面程序段的輸出結果是______。inta=-1,b=4,k;k=(a++<=0)&&(!b--<=0);printf("%d,%d,%d",k,a,b);,0,3,1,2,0,3,1,211.若有定義:floatx=;inta=1,b=3,c=2;,則正確的switch語句是______。(x)面程序段的輸出結果是______。intn='c';switch(n++)述程序段的輸出結果是_______。inta=2,b=3,c=4,d=5;intm=2,n=2;a=(m=a>b)&&(n=c>d)+5;printf("%d,%d",n,a);,5,5,6,614.若a是數(shù)值類型,則邏輯表達式(a==1)||(a!=1)的值是_______。D.不能確定15.已知intx=10,y=20,z=30;,以下語句執(zhí)行后x,y,z的值是_______。if(x>y)z=x;x=y;y=z;printf("%d,%d,%d",x,y,z);,20,30,30,20,30,10,30,3016.當a=1,b=3,c=5,d=4,x=0時,執(zhí)行完下面一段程序后x的值是_______。if(a>b)if(c<d)x=1;elseif(a>c)if(b<d)x=2;elsex=3;elsex=6;elsex=7;17.設變量a、b、c、d和y都已經(jīng)正確定義并賦值,則以下if語句的所表示的含義是_______。if(a<b)if(c==d)y=0;elsey=1;<b且c=d時y=0,a≥b時y=1<b且c=d時y=0,a≥b且c≠d時y=1<b且c=d時y=0,a<b且c≠d時y=1<b且c=d時y=0,c≠d時y=118.下述程序的輸出結果是_______。#inlude<>main(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;case3:a++;b++;}printf("\na=%d,b=%d",a,b);}=1,b=0=2,b=1=1,b=1=2,b=219.在執(zhí)行下述程序時,若從鍵盤輸入6和8,則輸出結果是_______。#inlude<>main(){inta,b,s;scanf("%d%d",&a,&b);s=a;if(a<b)s=b;s*=s;printf("\n%d",s);}D.以上都不對20.以下程序運行時,輸入的值在_______范圍時才會有輸出結果。#inlude<>main(){intx;scanf("%d",&x);if(x<=3);elseif(x!=10)printf("%d\n",x);}A.不等于10的整數(shù)B.大于3且不等于10的整數(shù)C.大于3或等于10的整數(shù)D.小于3的整數(shù)21.下列程序的輸出結果是_______。#inlude<>main(){inta=0,b=0,c=0;if(++a>0||++b>0)++c;0,1,122.有定義語句:inta=1,b=2,c=3;,則以下_______對應的表達式的值不為真。!='a'+b-c!='0'-48=='C'-'A'<='7'+'0'23.下列程序的輸出結果是_______。#inlude<>main(){inti=1,j=2,k=3;if(i++==1&&(++j==3||k++==3))23324.當變量c的值不為2、4、6時,值也為“真”的表達式是_______。A.(c==2)||(c==4)||(c==6)B.(c>=2&&c<=6)||(c!=3)||(c!=5)C.(c>=2&&c<=6)&&!(c%2)D.(c>=2&&c<=6)&&(c%2!=1)25.下列程序的輸出結果是_______。main(){inta=5,b=4,c=3,d=2;if(a>b>c)printf("%d\n",d);elseif((c-1>=d)==1)printf("%d\n",d+1);elseprintf("%d\n",d+2);}D.編譯時有錯且無結果26.己有定義:intx=3,y=4,z=5;,則表達式!(x+y)+z-1&&y+z/2的值是_______。 ?。?+4)+5-1&&4+5/2!7+4&&4+20+4&&61&&127.以下程序運行后的輸出結果是_______。#inlude<>main(){inta=15,b=21,m=0;switch(a%3)3 28.在執(zhí)行下述程序時,若從鍵盤輸入6和2,則輸出結果是_______。#inlude<>main(){inta,b,k;scanf("%d,%d",&a,&b);k=a;if(a<b)k=a%b;elsek=b%a;printf("\n%d",k);}29.在執(zhí)行下述程序時,若從鍵盤輸入字母H,則輸出結果是_______。#inlude<>main(){charch;ch=getchar();switch(ch){case'H':printf("Hello!\n");case'G':printf("Goodmorning!\n");default:printf("Bye_Bye!\n");}}!!Goodmorning!!!Goodmorning!Bye_Bye!Bye_Bye!30.設變量x和y均已正確定義并賦值,則以下if語句中,在編譯時將產(chǎn)生錯誤信息的是_______。(x++);下程序的運行后的輸出結果是_______。#inlude<>main(){inta=1,b=0;if(--a)b++;elseif(a==0)b+=2;elseb+=3;printf("%d\n",b);}32.下列條件語句中,輸出結果與其他語句不同的是_______。(a)printf("%d\n",x);elseprintf("%d\n",y);(a==0)printf("%d\n",y);elseprintf("%d\n",x);(a!=0)printf("%d\n",x);elseprintf("%d\n",y);(a==0)printf("%d\n",x);elseprintf("%d\n",y);33.以下選項中,能表示邏輯值“假”的是_______。以下程序運行時,若從鍵盤輸入9,則輸出結果是_______。#inlude<>main(){inta=1;scanf("%d",&a);if(a++<9)printf("%d\n",a);elseprintf("%d\n",a);}35.若變量c的值為非0,則能正確地將c的值賦給變量a和b的表達式是_______。A.(a=c)||(b=c)B.(b=a)=cC.(a=c)&&(b=c)=c=b36.設有定義inti;,則表達式(i=1,i=10)i++||++i:++i的值是_______。37.設a=2、b=、c=,則_______中的兩個表達式的邏輯值相等。A.'a'>'c'||'x'<'y'與b-a<=-c/2&&c==B.'a'>'c'&&x'<'y'與a-7<C.'a'>'c'||'x'>'y'與'a'<'c'&&a>bD.'a'>'c'&&'x'>'y'與'a'<'c'||a<c38.當y處于閉區(qū)間[x,z]時,值為真的表達式是_______。A.(y<=z)&&(y>=x)B.(x>=y)and(y>=z)cC.(x>=y>=z)D.(x>=y)&(y>=z)39.以下程序執(zhí)行后的輸出結果是_______。#inlude<>main(){inta=5,b=4,c=3,d=1;d=(a>b>c);printf("%d\n",d);}B. 240.以下程序執(zhí)行后的輸出結果是_______。#inlude<>main(){inta=2,b=7,c=5;switch(a>0){case1:switch(b<10){case1:printf("@");break;case0:printf("!");break;}case0:switch(c==5){case0:printf("*");break;case1:printf("#");break;default:printf("%");break;}default:printf("&");}printf("\n");}A.!*#B.@!#C.@%#D.@#&四、習題答案(一)、是非題(二)、選擇題(三)、編程題(略)

第4章循環(huán)結構二、習題(一)、是非題1.C語言中,do-while語句構成的循環(huán)只能用break語句退出。A.對 B.錯2.在循環(huán)外的語句不受循環(huán)的控制,在循環(huán)內(nèi)的語句也不受循環(huán)的控制。A.對 B.錯3.從語法角度看,for(表達式1;表達式2;表達式3)語句中的3個表達式均可省略。A.對 B.錯、while和dowhile循環(huán)結構的循環(huán)體均為緊接其后的第一個語句(含復合語句)。A.對 B.錯5.由i=-1;while(i<10)i+=2;i++;可知,此while循環(huán)的循環(huán)體執(zhí)行次數(shù)為6次。A.對 B.錯6.循環(huán)for(;;)的循環(huán)條件始終為真。A.對 B.錯…while語句的循環(huán)體至少執(zhí)行1次,while和for循環(huán)的循環(huán)體可能一次也不執(zhí)行。A.對 B.錯;語句執(zhí)行時退出本層循環(huán),continue;語句結束本次循環(huán)。A.對 B.錯循環(huán)、while循環(huán)和dowhile循環(huán)結構之間可以相互轉化。A.對 B.錯;語句執(zhí)行時退出到包含該break;語句的所有循環(huán)外。。A.對 B.錯11.二重循環(huán)for(i=0;i<5;i+=2)for(j=0;j<5;j++)的循環(huán)體的執(zhí)行次數(shù)為15。A.對 B.錯外循環(huán)i執(zhí)行3次,內(nèi)循環(huán)j執(zhí)行5次。3*5=15次。12.執(zhí)行i=-1;while(i<10)i+=2;i++;后,i的值為11。A.對 B.錯i=1;while(1)i++;則在任何條件下,該循環(huán)語句都會執(zhí)行無窮多次A.對 B.錯和do…while的功能完全相同。A.對 B.錯后的表達式只能是邏輯或關系表達式。A.對 B.錯16.語句while(E);中的表達式E等價于E!=0。A.對 B.錯17.只能在循環(huán)體內(nèi)和switch語句體內(nèi)使用break語句。A.對 B.錯18.程序段intk=10;while(k=0)k=k-1;中,while循環(huán)執(zhí)行10次。A.對 B.錯19.若i為整型變量,則for(i=2;i==0;)printf("%d",i--);循環(huán)執(zhí)行次數(shù)是0次。A.對 B.錯20.執(zhí)行語句for(i=1;i++<4;);后,變量i的值是4。A.對 B.錯(二)、選擇題1.下列程序的輸出結果是______。#include""voidmain(){inti,a=0,b=0;for(i=1;i<10;i++){if(i%2==0){a++;continue;}b++;}printf("a=%d,b=%d",a,b);}=4,b=4=4,b=5=5,b=4=5,b=52.已知:intt=0;while(t=1){...},則以下敘述正確的是______。A.循環(huán)表達式的值為0B.循環(huán)表達式的值為1C.循環(huán)表達式不合法D.以上說法都不對3.設有以下程序段,則_____。intx=0,s=0;while(!x!=0)s+=++x;printf("%d",s);while(!0!=0)while(1!=0)while(1)執(zhí)行s=s+(++x)s=1A.運行程序段后輸出0B.運行程序段后輸出1C.程序段中的表達式是非法的D.程序段執(zhí)行無限次4.以下程序的運行結果是______。#include<>voidmain(){inty=9;for(;y>0;y--)if(y%3==0)printf("%d",--y);}在循環(huán)中,能被3整除的數(shù)有9,6,3,輸出前自減1,所以得8,5,2。5.以下描述中正確的是______。A.由于do-while的循環(huán)體只能有一條語句,所以循環(huán)體內(nèi)不能使用復合語句由do開始,用while結束,在while(表達式)后面不能寫分號C.在do-while循環(huán)中,是先執(zhí)行一次循環(huán)體,再進行判斷D.在do-while循環(huán)中,根據(jù)情況可以省略while6.以下程序段的運行結果是______。i=0;doprintf("%d,",i);while(i++);printf("%d\n",i);,0,1,1 D.程序進入無限循環(huán)7.若程序執(zhí)行時的輸入數(shù)據(jù)是2473<回車>,則下述程序的輸出結果是______。#include<>voidmain(){intcs;while((cs=getchar())!='\n'){switch(cs-'2'){case0:case1:putchar(cs+4);case2:putchar(cs+4);break;case3:putchar(cs+3); default:putchar(cs+2);}}} 8.以下程序的輸出結果是______。#include""voidmain(){inta,i;a=0;for(i=1;i<5;i++)switch(i){case0:case3:a+=2;case1:case2:a+=3;default:a+=5;}printf("%d\n",a);} 9.以下程序的運行結果是______。#include<>voidmain(){inti,j,m=55;for(i=1;i<=3;i++)for(j=3;j<=i;j++)m=m%j;printf("%d\n",m);} 10.以下程序的運行結果是______。#include<>voidmain(){inti;for(i='a';i<'f';i++,i++)printf("%c",i-'a'+'A');printf("\n");}11.以下程序運行后的輸出結果是______。#include<>voidmain(){intk=5,n=0;do{switch(k){case1:case3:n+=1;k--;break;default:n=0;k--;case2:case4:n+=2;k--;break;}printf("%d",n);}while(k>0&&n<5);} 12.下面程序的輸出結果是______。#include<>voidmain(){intn=9;while(n>6){n--;printf("%d",n);}} 13.下述程序的輸出結果是_______。#include<>voidmain(){intx=0,y=0,i;for(i=1;;++i){if(i%2==0){x++;continue;}if(i%5==0){y++;break;}}printf("%d,%d",x,y);},1 ,2 ,5 ,214.下述程序的輸出結果是_______。#include<>voidmain(){intx=8;for(;x>0;x--){if(x%3){printf("%d,",x--);continue;}printf("%d,",--x);}},4,2,,7,5,2,,7,6,4,,5,4,2,15.以下不會構成無限循環(huán)的語句或語句組是_______。=0;do{++n;}while(n<=0);=0;while(1){n++;}=10;while(n);{n--;}(n=0,i=1;;i++)n+=i;16.以下程序的運行結果是_______。#include""voidmain(){intk=0,m=0,i,j;for(i=0;i<2;i++){for(j=0;j<3;j++)k++;k-=j;}m=i+j;printf("k=%d,m=%d",k,m);}=0,m=3 =0,m=5=1,m=3 =1,m=517.若inti,j;,則for(i=j=0;i<10&&j<8;i++,j+=3)控制的循環(huán)體的執(zhí)行次數(shù)是_______。18.下述程序的輸出結果是_______。#include""voidmain(){inti=6;while(i--)printf("%d",--i);printf("\n");}D.死循環(huán)19.下述程序的輸出結果是_______。#include""voidmain(){inta=0,b=0,c=0,i;for(i=0;i<4;i++)switch(i){case0:a=i++;case1:b=i++;case2:c=i++;case3:i++;}printf("%d,%d,%d,%d\n",a,b,c,i);},1,3,4,2,3,4,1,2,5,2,3,420.下面程序的運行結果是_______。a=1;b=2;c=2;while(a<b<c){t=a;a=b;b=t;c--;}printf("%d,%d,%d",a,b,c);,2,0 ,1,0 ,2,1 ,1,121.以下敘述中正確的是_______。語句只能用于switch語句體中語句的作用是使程序的執(zhí)行流程跳出包含它的所有循環(huán)語句只能用在循環(huán)體內(nèi)和switch語句體內(nèi)D.在循環(huán)體內(nèi)使用break語句和continue語句的作用相同22.以下程序運行后的輸出結果是_______

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論