長(zhǎng)江師范學(xué)院計(jì)算機(jī)C語(yǔ)言練習(xí)及答案_第1頁(yè)
長(zhǎng)江師范學(xué)院計(jì)算機(jī)C語(yǔ)言練習(xí)及答案_第2頁(yè)
長(zhǎng)江師范學(xué)院計(jì)算機(jī)C語(yǔ)言練習(xí)及答案_第3頁(yè)
長(zhǎng)江師范學(xué)院計(jì)算機(jī)C語(yǔ)言練習(xí)及答案_第4頁(yè)
長(zhǎng)江師范學(xué)院計(jì)算機(jī)C語(yǔ)言練習(xí)及答案_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

2/2計(jì)算機(jī)C語(yǔ)言練習(xí)一、單項(xiàng)選擇題(每小題2分,共40分)1、關(guān)于字符常量,以下敘述正確的是________。 A、空格不是一個(gè)字符常量 B、字符常量能包含大于一個(gè)的字符 C、單引號(hào)中的大寫(xiě)字母和小寫(xiě)字母代表的是相同的字符常量 D、所有的字符常量都可以作為整型量來(lái)處理2、b等于() A、1000字節(jié) B、1024字節(jié) C、1000×1000字節(jié) D、1024×1024字節(jié)3、有以下程序

main()

{

chark;

inti;

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

{

scanf("%c",&k);

switch(k)

{

case‘0’:printf("another\n");

case‘1’:printf("number\n");

}

}

}

程序運(yùn)行時(shí),從鍵盤(pán)輸入:01<回車(chē)>,程序執(zhí)行后的輸出結(jié)果是________。 A、another

number B、another

number

another C、another

number

number D、number

number4、以下語(yǔ)句中,循環(huán)次數(shù)不為10次的語(yǔ)句是()。 A、for(i=1;i<10;i++); B、i=1;do{i++;}while(i<=10); C、i=10;while(i>0){--i;} D、i=1;m:if(i<=10){i++;gotom;}5、定義如下變量和數(shù)組:intk;inta[3][3]={9,8,7,6,5,4,3,2,1};則下面語(yǔ)句的輸出結(jié)果是________。

for(k=0;k<3;k++)printf("%d",a[k][k]); A、753 B、951 C、963 D、7416、表達(dá)式y(tǒng)=(13>12?15:6>7?8:9)的值為_(kāi)_______。 A、9 B、8 C、15 D、17、關(guān)于數(shù)組的敘述中,下列說(shuō)法不正確的是________。 A、數(shù)組是最簡(jiǎn)單的復(fù)合數(shù)據(jù)類型,是有限元素的有序集合 B、數(shù)組的元素可以是值(基本數(shù)據(jù)類型)、對(duì)象或其他數(shù)組 C、定義數(shù)組時(shí),必須分配內(nèi)存 D、一個(gè)數(shù)組中的元素都必須是相同的類型8、若變量均已正確定義并賦值,以下合法的c語(yǔ)言賦值語(yǔ)句是________。 A、x=y(tǒng)=5; B、x=n%2.5; C、x+n=l; D、x=5=4+19、char*s="\t\\name\\address\n";指針s所指字符串的長(zhǎng)度為:。 A、說(shuō)明不合法 B、19 C、18 D、1510、下面的C程序完成的功能是________。

#defineSIZE5

voidfunc(intdata[SIZE]);

main()

{

inti,buf[SIZE];

printf(""Pleaseinput%dnumbers:"",SIZE);

for(i=0;idata[j+1])

{

d=data[j];

data[j]=data[j+1];

data[j+1]=d;

}

} A、對(duì)一維數(shù)組降序排序 B、對(duì)一維數(shù)組升序排序 C、對(duì)一維數(shù)組逆向排序 D、對(duì)一維數(shù)組順序排序11、在c語(yǔ)言程序中,以下描述正確的是______。 A、函數(shù)的定義可以嵌套,但函數(shù)的調(diào)用不可以嵌套 B、函數(shù)的定義不可以嵌套,但函數(shù)的調(diào)用可以嵌套 C、函數(shù)的定義和函數(shù)的調(diào)用均不可以嵌套 D、函數(shù)的定義和函數(shù)的調(diào)用均可以嵌套12、下面實(shí)現(xiàn)換行功能的格式符為_(kāi)_______? A、\t B、\n C、\a D、\k13、請(qǐng)選出正確的程序段 A、int*p;

scanf("%d",p);

… B、int*s,k;

*s=100;

… C、int*s,k;

char*p,c;

s=&k;

p=&c;

*p='a';

… D、int*s,k;

char*p,e;

s=&k;

p=&c;

s=p;

*s=1;

…14、若有下面的說(shuō)明和定義,則sizeof(structaa)的值是______。

structaa

{

intr1;

doubler2;

floatr3;

}

maya; A、20 B、18 C、14 D、1615、有以下程序

#include<stdio.h>

intf(intx)

{

inty;

if(x==0||x==1)return(3);

y=x*x-f(x-2);

returny;

}

main()

{

intz;

z=f(3);

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

}

程序的運(yùn)行結(jié)果是________。 A、0 B、9 C、6 D、816、程序設(shè)計(jì)語(yǔ)言中________。 A、while循環(huán)語(yǔ)句的執(zhí)行效率比do-while循環(huán)語(yǔ)句的執(zhí)行效率高 B、while循環(huán)語(yǔ)句的循環(huán)體執(zhí)行次數(shù)比循環(huán)條件的判斷次數(shù)多1,而do-while語(yǔ)句的循環(huán)體執(zhí)行次數(shù)比循環(huán)條件的判斷次數(shù)少1 C、while語(yǔ)句的循環(huán)體執(zhí)行次數(shù)比循環(huán)條件的判斷次數(shù)少1,而do-while語(yǔ)句的循環(huán)體執(zhí)行次數(shù)比循環(huán)條件的判斷次數(shù)多1 D、while語(yǔ)句的循環(huán)體執(zhí)行次數(shù)比循環(huán)條件的判斷次數(shù)少1,而do-while語(yǔ)句的循環(huán)體執(zhí)行次數(shù)等于循環(huán)條件的判斷次數(shù)17、已知函數(shù)的原形如下,其中結(jié)構(gòu)體a為已經(jīng)定義過(guò)的結(jié)構(gòu),且有下列變量定義

structa*f(intt1,int*t2,structat3,structa*t4)structap,*p1;

inti;

則正確的函數(shù)調(diào)用語(yǔ)句為 A、&p=f(10,&i,p,p1); B、p1=f(i++,(int*)p1,p,&p); C、p=f(i+1,&(i+2),*p,p); D、f(i+1,&i,p,p);18、下述程序段的輸出結(jié)果是________。

intx=10;

inty=x++;

printf("%d,'%d,(x++,y),y++); A、11,10 B、11,11 C、10,10 D、10,1119、若已定義實(shí)參數(shù)組inta[3][4]={2,4,6,8,10};則在被調(diào)用函數(shù)f的下述定義中,對(duì)形參數(shù)組b定義正確的選項(xiàng)是__________. A、f(intb[][6]) B、f(b)intb[][4]; C、f(intb[3][]); D、f(b)intb[4][5];20、在C語(yǔ)言中,下面那種數(shù)據(jù)類型不屬于構(gòu)造類型____ A、枚舉類型 B、數(shù)組類型 C、結(jié)構(gòu)體類型 D、共用體類型二、填空題(每小題2分,共20分)1、執(zhí)行下面程序段后,k值是________。

k=1;

n=263;

do

{

k*=n%10;

n/=10;

}

while(n);2、預(yù)處理命令以______開(kāi)頭。3、在c語(yǔ)言中,標(biāo)識(shí)符是由英文字母、數(shù)字、________組成的。4、C標(biāo)準(zhǔn)庫(kù)函數(shù)中,字符串的處理函數(shù)包含在______頭文件中,數(shù)學(xué)函數(shù)包含在math.h頭文件中。5、下面程序段的運(yùn)行結(jié)果是________.

inti=1,s=3;

do

{

s+=i++;

if(s%7==0)continue;

else++i;

}

while(s<15);

printf("%d",i);6、已知"floatx=0.5;inty=8;",則算術(shù)表達(dá)式"(int)(x+y/5)"的值是________。7、在函數(shù)中使用______語(yǔ)句返回值。8、ferror函數(shù)用來(lái)檢測(cè)文件讀寫(xiě)時(shí)是否發(fā)生錯(cuò)誤,若未發(fā)生讀寫(xiě)錯(cuò)誤,則返回值是________。9、以下程序的輸出結(jié)果是________。

#include<stdio.h>

voidswap(int*a,int*b)

{

int*t;

t=a;

a=b;

b=t;

}

main()

{

inti=3,j=5,*p=&i,*q=&j;

swap(p,q);

printf("%d%d\n",*p,*q);

}10、執(zhí)行下列程序的輸出結(jié)果是________?

main()

{

floata=1,b;

b=++a*++a;

printf("%f\\n",b);

}三、編程題(每小題分,共40分)1、求出10至1000之內(nèi)能同時(shí)被2、3、7整除的數(shù),并輸出。(本題10分)2、編寫(xiě)程序:字符串排序。如下:

請(qǐng)輸入3個(gè)字符串,每個(gè)字符串以回車(chē)結(jié)束!:

b

a

t

排序后的結(jié)果為:

a

b

t(本題14分)3、有以下學(xué)生信息,使用結(jié)構(gòu)體數(shù)組存儲(chǔ)這些信息

structstudent{

intnum;//學(xué)號(hào)

intcomputer;//計(jì)算機(jī)成績(jī)

}s[5]={{101,75},{103,80},{104,85},{106,90}};

再輸入一條新記錄,插入到結(jié)構(gòu)體數(shù)組中,讓5條記錄按計(jì)算機(jī)成績(jī)升序有序。

【輸入形式】2個(gè)數(shù)據(jù)都使用空格分隔

【輸出形式】分五行輸出數(shù)據(jù),每行數(shù)據(jù)均使用空格分隔

【輸入樣例】10288

【輸出樣例】每行數(shù)據(jù)均使用一個(gè)空格分隔,分五行輸出

10175

10380

10485

10288

10690(本題16分)

參考答案及解析一、單項(xiàng)選擇題1、D【解析】本題考查字符常量的4個(gè)知識(shí)點(diǎn):①空格是一個(gè)字符常量,而且單引號(hào)中的空格不可以省略:②字符常量只能包含一個(gè)字符:⑨單引號(hào)中的大寫(xiě)字母和小寫(xiě)字母代表的是不相同的字符常量:④所有的字符常量部作為整型量來(lái)處理,在計(jì)算機(jī)內(nèi)部,其對(duì)應(yīng)的整數(shù)值就是ASCII碼值。2、D3、C4、A5、B【解析】本題中二維數(shù)組的每個(gè)元素就是一個(gè)由三個(gè)元素構(gòu)成的一維數(shù)組,根據(jù)條件for(k=0;k<3;k++)和要求的a[k][k]可以得出本題的答案應(yīng)該是951。6、C7、C【解析】【命題目的】考查數(shù)組的基本概念?!窘忸}要點(diǎn)】定義數(shù)組時(shí),并不分配內(nèi)存,所以對(duì)數(shù)組的定義并不要求給出其元素的個(gè)數(shù)?!究键c(diǎn)鏈接】數(shù)組分配內(nèi)存是通過(guò)new操作符或靜態(tài)初始化來(lái)實(shí)現(xiàn)的。8、A9、D10、B11、B12、B13、C【解析】本題的選項(xiàng)A)和B)犯了一個(gè)同樣的錯(cuò)誤,即指針變量p定義后并沒(méi)有指向具體的變量。也就是說(shuō),p中沒(méi)有確定的地址值,它的值是不可預(yù)見(jiàn)的,所指向的單元也是不可預(yù)見(jiàn)的,因此不能進(jìn)行賦值操作。另外,在選項(xiàng)D)中,s是int型指針變量,p是char型指針變量,所指向的內(nèi)存單元所占用的字節(jié)數(shù)是不同的,因而不能將字符指針變量p的值賦給整型指針變量s。14、D15、C16、D17、B【解析】本題目中函數(shù)f的返回值為結(jié)構(gòu)類型的指針,函數(shù)的四個(gè)形參分別為:t1為整型,t2為整型的指針,t3為structa類型,t4為structa類型的指針。在進(jìn)行函數(shù)調(diào)用的時(shí)候,函數(shù)的實(shí)參必須要與形參說(shuō)明相對(duì)應(yīng),函數(shù)的返回值也要賦給相應(yīng)類型的變量。選項(xiàng)A)函數(shù)的返回值不能賦給一個(gè)常量;選項(xiàng)C)&(i+2)沒(méi)有什么意義;選項(xiàng)D)返回值沒(méi)有傳遞給任何變量,向函數(shù)傳遞的應(yīng)該是structa類型的指針,可是傳的卻是變量。18、A19、B20、A二、填空題1、362、#3、下劃線4、string.h5、86、17、return8、0#零9、['35']10、['6.000000']三、編程題1、#include"stdio.h"

main()

{inti;

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

if(i%2==0&&i%3==0&&i%7==0)

printf("%8d",i);

printf("\n");

}2、#include<stdio.h>

#include<stdlib.h>

#include<string.h>

voidswap(char*str1,char*str2);

intmain()

{

charstr1[20],str2[20],str3[20];

printf("請(qǐng)輸入3個(gè)字符串,每個(gè)字符串以回車(chē)結(jié)束!:\n");

fgets(str1,(sizeofstr1/sizeofstr1[0]),stdin);

fgets(str2,(sizeofstr2/sizeofstr2[0]),stdin);

fgets(str3,(sizeofstr3/sizeofstr3[0]),stdin);

if(strcmp(str1,str2)>0)swap(str1,str2);

if(strcmp(str2,str3)>0)swap(str2,str3);

if(strcmp(str1,str2)>0)swap(str1,str2);

printf("排序后的結(jié)果為:\n");

printf("%s\n%s\n%s\n",str1,str2,str3);

return0;

}

voidswap(char*str1,char*str2)

{

chartem[20];

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論