2015年計(jì)算機(jī)二級(jí)《C語言》最新章節(jié)練習(xí)題
C.1234,3.141
D.123,3.141
參考答案:A
參考解析:函數(shù)Printf()中,%md指輸出帶符號(hào)的十進(jìn)制整數(shù),給定最小寬度為m位,不足m位左端補(bǔ)空格,超過m位按實(shí)際位數(shù)輸出,%.nf表示以小數(shù)形式輸出實(shí)數(shù),小數(shù)占n位,對(duì)應(yīng)題目,答案為A選項(xiàng)。
2若有定義
則a的定義與下面哪個(gè)語句等價(jià)
A.int(*A.[10];B.int}g[10];C.int*a;D.int a[10];
參考答案:B
參考解析:本題考查typedef的使用方法,typedef對(duì)已存在的類型使用一個(gè)新的名字,其中本題中int*用T來代替,所以定義T a[10];就相當(dāng)于是int*a[10];選項(xiàng)B正確。
3以下敘述中正確的是
A.語句int a[8]={0};是合法的
B.語句inta[]={0};是不合法的,遺漏了數(shù)組的大小
C.語句char a[2]={ "A","BII};是合法的,定義了一個(gè)包含兩個(gè)字符的數(shù)組
D.語句char a[3];a="AB";是合法的,因?yàn)閿?shù)組有三個(gè)字符空間的容量,可以保存兩個(gè)字符
參考答案:A
參考解析:B選項(xiàng)中,如給全部元素賦值,則在數(shù)組說明中,可以不給出數(shù)組元素的個(gè)數(shù);C選項(xiàng)中,char a[2]={ "","B"};不合法,應(yīng)為char a[2]={´A´,´B´};;D選項(xiàng)中,字符數(shù)組只能在定義的時(shí)候可以用字符串常量來初始化,但不能夠先定義字符數(shù)組,然后再用字符串常量進(jìn)行賦值。因此A選項(xiàng)正確。
4有以下程序
程序運(yùn)行后的輸出結(jié)果是
A.隨機(jī)值B.0C.15D.16
參考答案:A
參考解析:本題重點(diǎn)考查for語句,變量沒有初始化的情況下,默認(rèn)值與編譯器有關(guān)系,不同的編譯器有不同的值。因此A選項(xiàng)正確。
5有以下程序
程序的輸出結(jié)果是
A.21.10B.11.10C.12.10D.1.10
參考答案:D
參考解析:本題考查把數(shù)組名作為函數(shù)參數(shù),執(zhí)行fun函數(shù)后,s的值并沒有發(fā)生變化,仍然是指向a,所以輸出結(jié)果為1.10,選項(xiàng)D正確。
6若有以下程序
則程序的輸出結(jié)果是
A.2,2,2,4
B.2,1,2,-1
C.5,1,2,-1
D.1,2,3,4
參考答案:C
參考解析:第一個(gè)if語句的判斷條件中是邏輯與表達(dá)式,只有運(yùn)算對(duì)象均非零結(jié)果才為真,執(zhí)行第一個(gè)if判斷條件,均為賦值表達(dá)式,第一個(gè)運(yùn)算對(duì)象a=2非零,判斷第二個(gè)表達(dá)式b=1也非零,所以條件成立執(zhí)行c=2的賦值操作。執(zhí)行第二個(gè)if判斷條件中的邏輯或表達(dá)式,只要有一個(gè)對(duì)象非零結(jié)果就是真,本條件中c==3運(yùn)算對(duì)象為假,所以需要判斷第二個(gè)運(yùn)算對(duì)象d=-1,結(jié)果為-1非零,所以條件成立,執(zhí)行a=5,的操作,所以a值為5,b值為1,c值為2,d值為-1。
7若有以下程序
則程序的輸出結(jié)果是
A.17,289B.49,2401C.17,37D.49,289
參考答案:C
考解析:本題考查宏定義,宏定義只是做個(gè)簡單的替換,執(zhí)行S(k+j)=k+j*k+j=17,T(k+j)=S(k+j)*S(k+j)=k+j*k+j*k+j$k+j=37,選項(xiàng)C正確。
8設(shè)有定義:
double a,b,C;
若要求通過輸入分別給a,b、c輸入1、2、3,輸入形式如 下(注:此處口代表一個(gè)空格)口口1.0口口2.0口口3.0<回車>則能進(jìn)行正確輸入的語句是
A.scanf("%If%If%If",a,b,C.;
B.scanf("%If%If%If",&a,&b,&C.;
C.scanf(”%f%f%f",&a,&b,&C.;
D.scanf("%5.1If%5.1If%5.1If",&a,&b,&C.;
參考答案:B
參考解析:
本題考查scanf函數(shù)的格式化輸入,scanf函數(shù)的一般形式為scanf(格式控制,變量1地址,變量2地址,…),其中,格式字符串要與數(shù)據(jù)類型保持一致,由于變量double型,所以格式字符串中應(yīng)為%/if,后面應(yīng)該為變量地址,所以需要加上符號(hào)“&”。所以選擇B。
9以下結(jié)構(gòu)體說明和變量定義中,正確的是
參考答案:A
參考解析:本題考查typedef的使用方法,typedef對(duì)已存在的類型使用一個(gè)新的名字,選項(xiàng)A中ABC為新的類型別名,定義正確。
10若有以下程序段
則以下選項(xiàng)中值為6的表達(dá)式是
A.P->nB.(*p).nC.p->n++D.++(P->n)
參考答案:D
參考解析:本題考查結(jié)構(gòu)體變量的引用,其中a為定義的結(jié)構(gòu)體數(shù)組,D選項(xiàng)中P->n為5,++(P->11)為6,所以D選項(xiàng)正確。
11設(shè)有定義:int a=0,b=1;,以下表達(dá)式中,會(huì)產(chǎn)生“短路”現(xiàn)象,致使變量b的值不變的是
A.a++&&b++B.a++||++bC.++a&&b++D.+a ||++b
參考答案:A
參考解析:運(yùn)算符“++”放在變量前面時(shí),表示將變量+1,再參與其他操作,a++&&b++時(shí),由于a值是0直接判定與運(yùn)算結(jié)果為0,忽視b++的值。因此b值不發(fā)生改變,答案為A選項(xiàng)。
12若有以下程序
則程序的輸出結(jié)果是
A.3,3.3,7.7,7
B.3,7,7,7,7,7
C.7.7,7,3,3,3
D.7,7,7,3,7,7
參考答案:D
參考解析:在主函數(shù)中分別給整型變量i.指針型變量P和指向指針的指針變量r賦初值;調(diào)用f函數(shù),并將實(shí)參變量r的值傳遞給形參變量s,在f函數(shù)中,通過prind("%d,%d,%d,",k,*t,**s);語句輸出7,7,7;返回主函數(shù),通過pfinff("%d,%d,%d\n",i,*P,**r);輸出3,7,7。因此D選項(xiàng)正確。
13以下程序調(diào)用fun函數(shù)求數(shù)組中最大值所在元素的下標(biāo)。
在橫線處應(yīng)填入的內(nèi)容是
A.*k=iB.k=iC.*k=i-sD.k=i-s
參考答案:A
參考解析:fun函數(shù)的功能是求數(shù)組中最大值所在元素的下標(biāo)。通過for循環(huán)語句,每次將最大的數(shù)給* k,即*k=i。因此A選項(xiàng)正確。
14以下敘述中錯(cuò)誤的是
A.在函數(shù)外部定義的變量在所有函數(shù)中都有效
B.在函數(shù)內(nèi)部定義的變量只能在本函數(shù)范圍內(nèi)使用
C.函數(shù)中的形參屬于局部變量
D.在不同的函數(shù)中可以使用相同名字的變量
參考答案:A
參考解析:全局變量有效范圍是從定義的位置開始到所在源文件的結(jié)束,在這區(qū)域內(nèi)的函數(shù)才可以調(diào)用,如果在定義函數(shù)之后,定義的變量,該變量不能被之前的函數(shù)訪問所以A選項(xiàng)說法錯(cuò)誤,答案為A選項(xiàng)。
15設(shè)有某函數(shù)的說明為
int*func(int a[10],int n);
則下列敘述中,正確的是
A.形參a對(duì)應(yīng)的實(shí)參只能是數(shù)組名
B.說明中的a[10]寫成a[]或*a效果完全一樣
C.func的函數(shù)體中不能對(duì)a進(jìn)行移動(dòng)指針(如a++)的操作
D.只有指向10個(gè)整數(shù)內(nèi)存單元的指針,才能作為實(shí)參傳給a
參考答案:B
參考解析:本題重點(diǎn)考查返回指針值的函數(shù)相關(guān)知識(shí),返回指針值的函數(shù),一般定義形式為:類型名*函數(shù)名(參數(shù)列表)。func函數(shù)被定義為指針型函數(shù),它的形參int a[10]和int n.分別指一維數(shù)組a[0]和整型變量n。