計(jì)算機(jī)語(yǔ)言C沖刺卷(八套試卷)及答案_第1頁(yè)
計(jì)算機(jī)語(yǔ)言C沖刺卷(八套試卷)及答案_第2頁(yè)
計(jì)算機(jī)語(yǔ)言C沖刺卷(八套試卷)及答案_第3頁(yè)
計(jì)算機(jī)語(yǔ)言C沖刺卷(八套試卷)及答案_第4頁(yè)
計(jì)算機(jī)語(yǔ)言C沖刺卷(八套試卷)及答案_第5頁(yè)
已閱讀5頁(yè),還剩77頁(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)介

計(jì)算機(jī)語(yǔ)言C沖刺卷(一)

(考試時(shí)間90分鐘,總分100分)

準(zhǔn)考證號(hào):姓名:一、單項(xiàng)選擇題(共20題,每題2分,共計(jì)40分)()1、下列屬于C語(yǔ)言合法的字符常數(shù)是O''97'B、"A"'\t,*\0\【答案】C【解析】C語(yǔ)言中字符常數(shù)是單引號(hào)括住的單個(gè)字符或轉(zhuǎn)義字符,轉(zhuǎn)義字符為“\”后跟一個(gè)特定字符或八進(jìn)制或十六進(jìn)制的整數(shù)。八進(jìn)制數(shù)前面可以加0也可以不加0,十六進(jìn)制前面只能加Ox。所以本題中,首先可以排除選項(xiàng)B和選項(xiàng)D,由于選項(xiàng)A中,97不是一個(gè)正確的八進(jìn)制數(shù),也不是正確的十六進(jìn)制數(shù),而選項(xiàng)C是正確的字符常數(shù),它代表的是字符制表符tab。()2、下述共同體變量x所占用內(nèi)存字節(jié)數(shù)為ounionexp(inti;floatj;doublek;)X;A、16個(gè)B、12個(gè)C、8個(gè)D、隨機(jī)而定【答案】C【解析】共用體占內(nèi)存大小是根據(jù)其成員最大占內(nèi)存大小來(lái)決定的。()3、以下選項(xiàng)中非法的表達(dá)式是oA、0<=x<100i=j==0(char)(65+3)D>x+l=x+l【答案】D()4、設(shè)變量a、b、e、d和y都已正確定義并賦值。若有以下if語(yǔ)句:if(a<b)if(c==d)y=0;elsey=l;該語(yǔ)句所表示的含義是。y=0,ay=0,ay=l,a2by—1,a2b且cWdy=0,ay=0,ay=l,aVB且C#D y="1,cWd【答案】C()5、有以下程序:ttinclude<stdio.h>main()(inti,s=0,t[]={1,2,3,4,5,6,7,8,9};for(i=O;i<9;i+=2)s+=*(t+i);printf("%d\n",s);)A、45B、20C、25D、36【答案】C【解析】程序中的*(t+i)相當(dāng)于t[i]。由于for循環(huán)變量的增量為2,因此i分別取值0,2,4,6,8,因?yàn)閠[2]=3,t[4]=5,t[6]=7,t[8]=9,對(duì)其進(jìn)行求和運(yùn)算,結(jié)果為25。()6、若各選項(xiàng)中所有變量已正確定義,函數(shù)fun中通過(guò)return語(yǔ)句返回一個(gè)函數(shù)值,以下選項(xiàng)中錯(cuò)誤的程序是oTOC\o"1-5"\h\zA、mainO { x=fun (2,10); } floatfun(intA,intb){ }B、floatfun(intA,intb){ }main(){ x=fun(i,j); }C、floatfun(intint);mainOx=fun(2,10);}floatfun(intA,intb){x=fun(2,10);D、main()floatfun(inti,intj)floatfun(inti,intj);x=fun(i,j);}floatfun(intA,intb){【答案】A()7、一個(gè)c語(yǔ)言程序在一臺(tái)32位機(jī)器上運(yùn)行。程序中定義了三個(gè)變量x,y,z,其中x和z是int型,v為short型。當(dāng)x=127,y=-9時(shí),執(zhí)行賦值語(yǔ)句z=x+y后,x,y,z的值分別是。A、x=0000007FH,y=FFF9H,z=00000076HBA、x=0000007FH,y=FFF9H,z=00000076HB、x=0000007FH,y=FFF9H,z=FFFF0076HC、x=0000007FH,y=FFF7H,z=FFFF0076HD、x=0000007FH,y=FFF7H,z=00000076H【答案】D【解析】考察符號(hào)位的擴(kuò)展。結(jié)合題干及選項(xiàng)可知,int為32位,short為16位;又c語(yǔ)言的數(shù)據(jù)在內(nèi)存中為補(bǔ)碼形式,故x、y的機(jī)器數(shù)寫為0000007F、FFF7H;執(zhí)行z=x+y時(shí),由于x是int型,y為short型,故需將y的類型強(qiáng)制轉(zhuǎn)換為int,在機(jī)器中通過(guò)符號(hào)位擴(kuò)展實(shí)現(xiàn),由于y的符號(hào)位為1,故在y的前面添加16個(gè)1,即可將y強(qiáng)制轉(zhuǎn)換為int型,其十六進(jìn)制形式為FFFFFFF7H;然后執(zhí)行加法,即0000007FH+FFFFFFF7H=00000076H,其中最高位的進(jìn)位1自然丟棄。()8、下面程序的功能是將從鍵盤輸入的一對(duì)數(shù),由小到大排序輸出。當(dāng)輸入一對(duì)相等數(shù)時(shí)結(jié)束循環(huán),請(qǐng)選擇填空。#include<stdio.h>main()(inta,b,t;scanf("%d%d”,&a,&b);while(){if(a>b)(t=a;a=b;b=t;)printf("%d,%d\n”,a,b);scanf("%d%d”,&a,&b);A、!a=bB、a!=bC^a==bD、a=b【答案】B()9、設(shè)有intx,y;xisequal以下語(yǔ)句判斷x和y是否相等,正確的說(shuō)法是該語(yǔ)句.if(x=y)printf("toy.;xisequalA、語(yǔ)法錯(cuò)B、不能判斷x和y是否相等C、編譯出錯(cuò)D、能判斷x和y是否相等【答案】B()10、在c語(yǔ)言中,以作為字符串結(jié)束標(biāo)志A、'\n'B、,,C、'0'D、''0'【答案】D()11、合法的數(shù)組定義是oA^inta[]="string”;B、inta[5]=0,1,2,3,4,5;C^chara="string”;D、chara=0,1,2,3,4,5;【答案】D()12、以下敘述中錯(cuò)誤的是oA,函數(shù)形參的值也可以傳回給對(duì)應(yīng)的實(shí)參B、函數(shù)調(diào)用可以作為一個(gè)獨(dú)立的語(yǔ)句存在C、若函數(shù)有返回值,必須通過(guò)return語(yǔ)句返回D、C程序必須由一個(gè)或一個(gè)以上的函數(shù)組成【答案】A【解析】函涉參熱傳送星個(gè)不可逆的過(guò)程.形參不會(huì)杷侑傳回室參.所以A冼項(xiàng)錯(cuò)誤。()13、現(xiàn)代計(jì)算機(jī)中采用二進(jìn)制數(shù)制是因?yàn)槎M(jìn)制數(shù)的優(yōu)點(diǎn)是oA、代碼表示簡(jiǎn)短,易讀B、物理上容易實(shí)現(xiàn)且簡(jiǎn)單可靠;運(yùn)算規(guī)則簡(jiǎn)單;適合邏輯運(yùn)算C、容易閱讀,不易出錯(cuò)D、只有0,1兩個(gè)符號(hào),容易書寫【答案】B【解析】二進(jìn)制數(shù)只用“0”和“1”來(lái)存儲(chǔ),因此物理上容易實(shí)現(xiàn)且簡(jiǎn)單可靠,運(yùn)算規(guī)則簡(jiǎn)單,適合邏輯運(yùn)算。但不容易閱讀,易出錯(cuò)。()14、字符串"xyz”在內(nèi)存占用的字節(jié)數(shù)是oA、3B、4C、6D、8【答案】B【解析】字符串中的每個(gè)字符占1個(gè)字節(jié),但C程序在存儲(chǔ)字符串時(shí),要在最后一個(gè)有效字符后面接上1個(gè)字符串結(jié)束的標(biāo)記符'\0'。這樣,存儲(chǔ)字符串常量"XyZ”需要4個(gè)字節(jié)。所以解答是B。()15、有以下程序#defineN5SdefineMN+l#definef(x)(x*M)main(){inti1,i2;il=f(2);i2=f(1+1);printf(*%d%d”,il,i2);)程序的運(yùn)行結(jié)果是oA、1212B、117C、1111D、127【答案】B)16、下萬(wàn)ll程序的鐲山結(jié)里層#include<stdio.h>main()(inti,a=O,b=O;for(i=l;i<10;i++)(if(i%2==0)(a++;continue;)b++;)printf("a=%d,b=%d”,a,b);)a=4,b=4a=4,b=5a=5,b=4a=5,b=5【答案】B【解析】continue語(yǔ)句的作用是跳過(guò)本次循環(huán)體中余下尚未執(zhí)行的語(yǔ)句,接著再一次進(jìn)行循環(huán)條件的判定。當(dāng)能被2整除時(shí),a就會(huì)增1,之后執(zhí)行continue語(yǔ)句,直接執(zhí)行到for循環(huán)體的結(jié)尾,進(jìn)行i++,判斷循環(huán)條件。()17、設(shè)有如下說(shuō)明:typedefstruct(intn;charc;doublex;)std;則以下選項(xiàng):能正確定義結(jié)構(gòu)體數(shù)組并賦初值的語(yǔ)句是oA、STDtt[2]={{l,,A,,62},{2,'B',75}};B、STDtt[2]={l,*A*,62,2,*B*,75};C^struettt[2]={{1,*A*}?{2,'B'}};D、structtt[2]={{1,*A*,62.5},{2,*B*,75.0}};【答案】A【解析】本題定義了一個(gè)結(jié)構(gòu)體類型并白定義類型名為STD,用戶自定義類型后,就可以利用它進(jìn)行變量與數(shù)組的定義。定義的方法,與C語(yǔ)言中其它類型的定義完全一樣,定義結(jié)構(gòu)型數(shù)組并賦初值時(shí),每個(gè)元素用一對(duì)“{”和“廠括起來(lái),字符型元素用…”括起來(lái),選項(xiàng)A、B、C、D中只有選項(xiàng)A符合條件。所以,A選項(xiàng)為所選。()18、有以下程序Sinclude<string.h>main()(charstr[][20]={"hello","beijing"},*p=str;printf("%d\n”,strlen(p+20));)程序運(yùn)行后的輸出結(jié)果是oA、0B、5C、7D、20【答案】C()19、下面說(shuō)法正確的是oA,char*x,y,**str同時(shí)定義了三個(gè)變量,符合語(yǔ)法規(guī)范B、數(shù)組說(shuō)明符的一對(duì)方括號(hào)中只能使用常量數(shù)值C、單精度浮點(diǎn)值也可以作為數(shù)組下標(biāo)D、若有定義floatarr[2]則printf("%2.If",array[0.5])是合法的語(yǔ)句【答案】A【解析】定義數(shù)組時(shí),一對(duì)方括號(hào)內(nèi)為整型數(shù)據(jù)類型,可以是變量也可以是常量,選項(xiàng)B錯(cuò)誤;訪問(wèn)數(shù)組時(shí),數(shù)組下標(biāo)為整型數(shù)據(jù),選項(xiàng)C,D錯(cuò)誤。在選項(xiàng)A中,定義了3個(gè)變量,類型為char的變量x,類型為char的變量y類型為char的變量str本題答案為A選項(xiàng)。()20、下列選項(xiàng)中不屬于c語(yǔ)言的數(shù)據(jù)類型是oA、復(fù)數(shù)型B、邏輯型C、雙精度型D、集合型【答案】A【解析】在C語(yǔ)言中,數(shù)據(jù)類型可分為基本數(shù)據(jù)類型、構(gòu)造數(shù)據(jù)類型、指針類型、空類型4大類,其中基本類型;字符型、整型、實(shí)型(單精度型和雙精度型)、枚舉類型。構(gòu)造類型:數(shù)組、結(jié)構(gòu)體、公用體。選項(xiàng)B中的邏輯型和C中雙精度類型都屬于基本數(shù)據(jù)類型,選項(xiàng)D集合類型屬于構(gòu)造類型;而選項(xiàng)A復(fù)數(shù)型不是C語(yǔ)言的數(shù)據(jù)類型。二、判斷題(共10題,每題2分,共計(jì)20分)()1、C語(yǔ)言程序中,出現(xiàn)非法字符時(shí)會(huì)發(fā)出錯(cuò)誤信息?!敬鸢浮空_()2、c語(yǔ)言中逗號(hào)運(yùn)算符不是所有運(yùn)算符中級(jí)別最低的。【答案】錯(cuò)誤()3、通過(guò)return語(yǔ)句,函數(shù)可以帶回一個(gè)或一個(gè)以上的返回值?!敬鸢浮垮e(cuò)誤()4、for語(yǔ)句只能用于循環(huán)次數(shù)已經(jīng)確定的情況【答案】錯(cuò)誤()5、字符串"that"小于字符串"the"。()【答案】正確()6、可以在一個(gè)函數(shù)中定義另一個(gè)函數(shù)?!敬鸢浮垮e(cuò)誤()7、在定義數(shù)組之后,根據(jù)數(shù)組中元素的類型及個(gè)數(shù),在內(nèi)存中分配一段連續(xù)存儲(chǔ)單元用于存放數(shù)組中的各個(gè)元素?!敬鸢浮空_()8、c語(yǔ)言程序中可以有多個(gè)函數(shù),但只能有一個(gè)主函數(shù)?!敬鸢浮空_()9、c語(yǔ)言允許用字符串的方式對(duì)數(shù)組作初始化賦值。【答案】正確()10、c語(yǔ)言對(duì)文件讀、寫之前必須先打開(kāi)文件,在使用文件之后應(yīng)關(guān)閉該文件?!敬鸢浮空_三、編程題(共3題,每題分值不等,共計(jì)40分)1、編寫程序:計(jì)算sum=lT/3+l/5T/7+…+1/19(本題10分)【答案】#include<stdio.h>main()(inti;floatsum=0,k=-l;for(i=l;i<=19;i=i+2)(sum=sum+l.0/i*k;k=-k;)printfsum);getchO;)2、將一個(gè)正整數(shù)分解質(zhì)因數(shù)。例如:輸入90,打印出90=2*3*3*5。(本題14分)【答案】程序分析:對(duì)n進(jìn)行分解質(zhì)因數(shù),應(yīng)先找到一個(gè)最小的質(zhì)數(shù)k,然后按下述步驟完成:(1)如果這個(gè)質(zhì)數(shù)恰等于n,則說(shuō)明分解質(zhì)因數(shù)的過(guò)程已經(jīng)結(jié)束,打印出即可。(2)如果n〈>k,但n能被k整除,則應(yīng)打印出k的值,并用n除以k的商,作為新的正整數(shù)你n,重復(fù)執(zhí)行第一步。(3)如果n不能被k整除,則用k+1作為k的值,重復(fù)執(zhí)行第一步。程序源代碼:mainO(intn,i;printf("\npleaseinputanumber:\nzz);scanf&n);printf("%d=",n);for(i=2;i<=n;i++)(while(n!=i)(if(n%i==0){printfr%d*w,i);n=n/i;)elsebreak;))printfn);3、題描述輸n(3WnW30)個(gè)學(xué)的數(shù)據(jù)記錄,對(duì)于每個(gè)學(xué),其記錄包含了學(xué)號(hào)、姓名、3門課程(程序設(shè)計(jì)基礎(chǔ)、計(jì)算機(jī)導(dǎo)論、 等數(shù)學(xué))的成績(jī)共5項(xiàng)。要求查找程序設(shè)計(jì)基礎(chǔ)低于平均分的學(xué),并輸出該的所有信息要求使結(jié)構(gòu)體數(shù)組實(shí)現(xiàn),結(jié)構(gòu)體中包括了每個(gè)學(xué)的5項(xiàng)記錄。輸共有5,每包含了個(gè)學(xué)的學(xué)號(hào)(整數(shù))、姓名(長(zhǎng)度不超過(guò)30的空格字符串)和程序設(shè)計(jì)基礎(chǔ)、計(jì)算機(jī)導(dǎo)論、 等數(shù)學(xué)等3門課程的成績(jī)(0100之間的整數(shù)),空格隔開(kāi)。輸出輸出程序設(shè)計(jì)基礎(chǔ)低于平均分的學(xué)的所有信息;每個(gè)輸出占1;如果沒(méi)有找到的話,輸出“No”樣例輸32017010377chensiyuan9991902017010386wangling9493882017010436chenhui858890樣例輸出2017010436chenhui858890(本題16分)【答案】#include<stdio.h>constintN=30+5;typedefstructstudent{intnum;charname[30];intcxsjjc;intjsjdl;intgdsx;)STU;intmain(){intn,m=0;floataver,sum;scanf&n);STUstu[N];for(inti=0;i<n;i++){scanf("%d%s%d%d%d”,&stu[i].num,stu[i].name,&stu[i].cxsjjc,&stu[i].jsjdl,&stu[i].gdsx);)for(intj=0;j<n;j++){sum+=stu[j],cxsjjc*1.0;)aver=sum/(n*1.0);for(intk=0;k<n;k++){if(stu[k].cxsjjc<aver){m+=1;printf(,z%d%s%d%d%d\n”,stu[k].num,stu[k].name,stu[k].cxsjjc,stu[k].jsjdl,stu[k].gdsx);))if(m==0)printf(^No*);returnO;計(jì)算機(jī)語(yǔ)言C沖刺卷(二)

(考試時(shí)間90分鐘,總分100分)

準(zhǔn)考證號(hào):姓名:一、單項(xiàng)選擇題(共20題,每題2分,共計(jì)40分)()1、一個(gè)字長(zhǎng)為8位的無(wú)符號(hào)二進(jìn)制整數(shù)能表示的十進(jìn)制數(shù)值范圍是oA、0-256B、0-255C、1~256D、1-255【答案】B【解析】無(wú)符號(hào)數(shù),即自然數(shù)。8位無(wú)符號(hào)的二進(jìn)制數(shù)的范圍是00000000?11111111,轉(zhuǎn)換成十進(jìn)制就是0-255o()2、已知:intn=10;在下列定義引用的語(yǔ)句中,正確的是。A、int&x=n;Bnintx=&n;C>int&x;D、int&x二&n;【答案】A【解析】引用是個(gè)別名,建立引用后,引用即作為目標(biāo)的別名而使用,對(duì)引用的改動(dòng)實(shí)際上就是對(duì)目標(biāo)的改動(dòng)。要求引用的聲明語(yǔ)句要同時(shí)包括變量的數(shù)據(jù)類型、引用操作符“&”、引用名、賦值符號(hào)和目標(biāo)名。引用在聲明時(shí)必須進(jìn)行初始化,一旦初始化,便不能作為其他變量的引用而使用。()3、若t已經(jīng)定義為int類型,則表達(dá)式:(t=l,t++,t+5)的值為oA、7B、7.0C、2.0D、1.0【答案】A【解析】t為double類型變量,經(jīng)過(guò)一系列運(yùn)算后其結(jié)果仍為double類型,該題中t先進(jìn)行自增再進(jìn)行t+5第12/85頁(yè)運(yùn)算,結(jié)果為7.0d。()4、在c程序中,判邏輯值時(shí),用”非0〃表示邏輯值“真",又用"0"表示邏輯值“假〃。在求邏輯值時(shí),邏輯真和邏輯假可分別表示為A、10B、01C、非0非0D、11【答案】A【解析】在C程序中,判斷邏輯值時(shí),用非0表示真,用0表示假。邏輯表達(dá)式計(jì)算時(shí),邏輯表達(dá)式值為真是用1表示的,若邏輯表達(dá)式的值為假,則用0表示。()5、以下程序運(yùn)行后的輸出結(jié)果是omain()(inti=0,s=l;for(;;)(if(i==5)break;i++;s+=i;}tprintf(〃%d\n〃,s);A、死循環(huán)B、16C、15D、11【答案】B()6、以下敘述中正確的是oA、每個(gè)數(shù)組包含一組具有同一類型的變量,這些變量在內(nèi)存中占有連續(xù)的存儲(chǔ)單元B、一條語(yǔ)句只能定義一個(gè)數(shù)組C、數(shù)組說(shuō)明符的一對(duì)方括號(hào)中只能使用整型常量,而不能使用表達(dá)式D、在引用數(shù)組元素時(shí),下標(biāo)表達(dá)式可以使用浮點(diǎn)數(shù)【答案】A【解析】數(shù)組的元素是同一類型,占用連續(xù)空間,所以選擇A。()7、下列關(guān)于表達(dá)式的描述中,錯(cuò)誤的是oA、常量和變量都是表達(dá)式B、運(yùn)算符類型對(duì)應(yīng)表達(dá)式的類型C、每一個(gè)表達(dá)式都有自己的值D、表達(dá)式必須以分號(hào)結(jié)尾【答案】D【解析】語(yǔ)句必須以分號(hào)結(jié)尾,表達(dá)式不是必須以分號(hào)結(jié)尾,表達(dá)可以嵌套。()8、以下敘述中正確的是oA、不能用字符串常量對(duì)字符數(shù)組名進(jìn)行整體賦值操作B、字符串常量"Hello”會(huì)被隱含處理成一個(gè)無(wú)名字符型數(shù)組,它有5個(gè)元素C^charstr[7]="string!”;在語(yǔ)法上是合法的,運(yùn)行也是安全的D、char*str;str="Hello";與charstr[];str="Hello”;效果是一樣的【答案】A【解析】字符數(shù)組在定義時(shí)可以用字符串賦初值,其后就不可以再用字符串常量進(jìn)行賦值。答案選擇A。()9、下列()表達(dá)式不滿足;當(dāng)x的值為偶數(shù)時(shí)值為"真",為奇數(shù)時(shí)值為〃假”。x%2==0!x%2!=0x/2*2-x==0!(x%2)【答案】C()10、以下選項(xiàng)中關(guān)于c語(yǔ)言常量的敘述錯(cuò)誤的是oA、經(jīng)常被使用的變量可以定義成常量B、常量分為整型常量、實(shí)型常量、字符常量和字符串常量C、所謂常量,是指在程序運(yùn)行過(guò)程中,其值不能被改變的量D、常量可分為數(shù)值型常量和非數(shù)值型常量【答案】A()11、有以下程序main()chars[]="\nl23\\";printf("%d,%d\n”,strlen(s),sizeof(s));執(zhí)行后輸出結(jié)果是oA、賦初值的字符串有錯(cuò)B、6,7C、5,6D、6,6【答案】c【解析】本題在定義字符數(shù)組時(shí)沒(méi)有定義數(shù)組長(zhǎng)度,但是給數(shù)組賦了初值,這時(shí)初值的個(gè)數(shù)即為數(shù)組的長(zhǎng)度,故數(shù)組長(zhǎng)度為6(包括'\0')。字符串的長(zhǎng)度為有效字符的個(gè)數(shù)5。因此printf語(yǔ)句中輸出的結(jié)果為5,6o()12、下面函數(shù)的功能是char*fun(char*strl,char*str2){while((*strl)&&(*str2++=*strl++));returnstr2;)A、求字符串的長(zhǎng)度B、比較兩個(gè)字符串的大小C、將字符串strl復(fù)制到字符串str2中D、將字符串strl接續(xù)到字符串str2中【答案】C【解析】while語(yǔ)句的一般形式為:while(表達(dá)式)語(yǔ)句;其中表達(dá)式是循環(huán)條件,語(yǔ)句為循環(huán)體,while語(yǔ)句的語(yǔ)義是:計(jì)算表達(dá)式的值,當(dāng)值為真(非0)時(shí),執(zhí)行循環(huán)體語(yǔ)句。本題中邏輯與符號(hào)連接的表達(dá)式值為真,*str2++=*strl++語(yǔ)句是將strl的內(nèi)容逐個(gè)復(fù)制到str2字符串。()13、以下說(shuō)法錯(cuò)誤的是?A、C語(yǔ)言中的常量是指在程序運(yùn)行過(guò)程中經(jīng)常被用到的變量B、C語(yǔ)言中的常量是指在程序運(yùn)行過(guò)程中其值不能被改變的量C、C語(yǔ)言中的常量可以用一個(gè)符號(hào)名來(lái)代表D、C語(yǔ)言中的常量可以用宏來(lái)定義【答案】A【解析】C語(yǔ)言中的常量是指在程序運(yùn)行過(guò)程中其值不能被改變的量,它可以用宏來(lái)定義,用一個(gè)符號(hào)名第15/85頁(yè)代表,選項(xiàng)A錯(cuò)誤,選項(xiàng)BCD正確,本題答案A( )14、表達(dá)式sizeof(double)是。A、函數(shù)調(diào)用B、double型表達(dá)式C、int型表達(dá)式D、非法表達(dá)式【答案】C()15、以下程序的輸出結(jié)果是omain()(floatx=3.6;inti;i=(int)x;printf("x=%f,i=%d\n”,x,i);)A、x=3.600000,i=4x=3,i=3C、x=3.600000,i=3D、x=3i=3.600000【答案】C()16、下面對(duì)do-while結(jié)構(gòu)的描述中,不正確的是。A、循環(huán)體至少執(zhí)行一次B、屬于“直到型”循環(huán)C^與while語(yǔ)句執(zhí)行情況相同D、先執(zhí)行循環(huán)體,再計(jì)算終止條件,若結(jié)果為true,重復(fù)執(zhí)行循環(huán)體,直到布爾表達(dá)式的值為false。【答案】C【解析】while循環(huán)屬于“當(dāng)型”循環(huán),可能一次也不執(zhí)行,是先判斷終止條件,為true則執(zhí)行循環(huán)體,否則退出循環(huán)。()17、遞歸算法的執(zhí)行過(guò)程一般來(lái)說(shuō)可先后分成和兩個(gè)階段。A、試探B、遞推C、枚舉D、分析【答案】B【解析】遞歸是設(shè)計(jì)和描述算法的一種有力的工具。能采用遞歸描述的算法通常有這樣的特征:為求解規(guī)模為N的問(wèn)題,設(shè)法將它分解成一些規(guī)模較小的問(wèn)題,然后從這些小問(wèn)題的解方便地構(gòu)造出大問(wèn)題的解,并且這些規(guī)模較小的問(wèn)題也能采用同樣的分解和綜合方法,分解成規(guī)模更小的問(wèn)題,并從這些更小問(wèn)題的解構(gòu)造出規(guī)模稍大問(wèn)題的解。特別地,當(dāng)規(guī)模N=1時(shí),能直接得到解。遞推算法的執(zhí)行過(guò)程分遞推和回歸兩個(gè)階段。在遞推階段,把較復(fù)雜的問(wèn)題的求解推到比原問(wèn)題簡(jiǎn)單一些的問(wèn)題的求解;在回歸階段,當(dāng)獲得最簡(jiǎn)單情況的解后,逐級(jí)返回,依次獲得稍復(fù)雜問(wèn)題的解。()18、若輸入"abcdef""abdef",下述程序的輸出結(jié)果為。main()(intn;charsi[20],s2[20],*pl,*p2;scanf("%s”,si);scanf("%s”,s2);pl=sl;p2=s2;n=strcmp(pl,p2);printf("vood\n",n);)A、-1B、0“abcdef”"abdef”【答案】D()19、下列定義數(shù)組的語(yǔ)句中,正確的是。intN=10;#defineN10intx[N]; intx[N];C、intx[0..10];D、intx[];【答案】B()20、若有下面的說(shuō)明和定義,則sizeof(structaa)的值是.structaaintrl;doubler2;floatr3;)maya;A、20B、18C、14D、16【答案】D二、判斷題(共10題,每題2分,共計(jì)20分)()1、INT是非法表示符【答案】錯(cuò)誤【解析】C語(yǔ)言關(guān)鍵字(都是小寫)不能為標(biāo)識(shí)符(跟變量要求一致)MAIN可以是標(biāo)識(shí)符,INT也可以是標(biāo)識(shí)符(與小寫不一樣)()2、函數(shù)若無(wú)返回值,則它一定無(wú)形參?!敬鸢浮垮e(cuò)誤()3、宏定義是用宏名來(lái)表示一個(gè)字符串,在宏代換時(shí)以該字符串取代宏名?!敬鸢浮空_()4、continue語(yǔ)句只能用于三個(gè)循環(huán)語(yǔ)句中。()【答案】正確()5、chars=UCLanguage";表示s是一個(gè)指向字符串的指針變量,把字符串的首地址賦予s【答案】正確()6、函數(shù)的實(shí)參和形參可以是相同的名字【答案】正確()7、對(duì)以下定義的二維數(shù)組table,其行下標(biāo)的取值范圍是[0,2],列下標(biāo)的取值范圍是[0,1],數(shù)組元素分別是:table[0][0]、table[0][1],table[1][0]-?table[1][1]>table[2][0]和table[2][1],可以表示一個(gè)3行2列的矩陣。inttable[3][2];【答案】正確)8、調(diào)用輸入輸出庫(kù)函數(shù)時(shí),編譯預(yù)處理命令為ttinclude<stdio.h>?【答案】正確)9、在c語(yǔ)言中,字符數(shù)組可以存放字符串。()【答案】正確)10、全局靜態(tài)變量的作用域限制在定義它的源文件內(nèi),只能為該源文件內(nèi)的函數(shù)公用?!敬鸢浮空_三、編程題(共3題,每題分值不等,共計(jì)40分)1、編程判斷輸入的字符串是否為“回文”。所謂“回文”是指順讀和倒讀都一樣,如abcba。(本題10分)【答案】#includevoidmainO(inti,n;chara[20];printf("請(qǐng)輸入字符串:”);gets(a);n=strlen(a);for(i=0;i=n)printf("是回文.\n");)2、編寫程序:輸出一維數(shù)組a中的最小值及其下標(biāo)(本題14分)【答案】Sinclude<stdio.h>main()(inti,p=0,a[10];for(i=0;i<10;i++)scanf ;for(i=l;i<10;i++)if(a[i]<a[p])p=i;printf("%d,%d\n”,a[p],p);)3、編寫一個(gè)函數(shù)統(tǒng)計(jì)并打印所輸入的正文中的各個(gè)英文單詞出現(xiàn)的次數(shù)并按次數(shù)的遞減順序輸出,使用結(jié)構(gòu)體實(shí)現(xiàn)。(本題16分)【答案】#include<stdio.h>#include<stdlib.h>#include<string.h>structlist{charwords[100];intnum;structlist*next;);typedefstructlistnode;typedefnode*link;voidcount(char*str){linkptr,head,ptrn,headnew;inti=0,j=0,prei=0;chartemp[20];ptr=(link)malloc(sizeof(node));head=ptr;ptr->next=NULL;do{if(*(str+i)=='*(str+i)='\0'){temp[j]=,\0';ptr=head;while(ptr->next!=NULL){if(strcmp(ptr->next->words,temp)==0){ptr->next->num++;break;}else{ptr=ptr->next;})if(ptr->next==NULL){ptr->next=(link)malloc(sizeof(node));strcpy(ptr->next->words,temp);ptr->next->num=l;ptr->next->next=NULL;)if(*(str+l)=='\0')break;j=0;i++;continue;)temp[j++]=str[i++];}while(l);ptrn=(1ink)mal1oc(sizeof(node));headnew=ptrn;ptrn->next=NULL;ptr=head->next;ptrn=headnew;while(head->next!=NULL){while(ptrn->next!=NULL&&ptrn->next->num>=ptr->num)ptrn=ptrn->next;head->next=ptr->next;ptr->next=ptrn->next;ptrn->next=ptr;ptr=head->next;ptrn=headnew;)ptr=headnew->next;while(ptr!=NULL){puts(ptr->words);printf(〃%d\n〃,ptr->num);ptr=ptr->next;))intmain(){charstr[500];gets(str);count(str);)計(jì)算機(jī)語(yǔ)言C沖刺卷(三)(考試時(shí)間90分鐘,總分100分)

準(zhǔn)考證號(hào):姓名:一、單項(xiàng)選擇題(共20題,每題2分,共計(jì)40分)()1、以下不符合C語(yǔ)言語(yǔ)法的賦值語(yǔ)句是。A、a=l,b=2++j;C>a=b=5;D、y=(a=3,6*5);【答案】A()2、若有說(shuō)明:intn=2,*p=&n,*q=p,則以下非法的賦值語(yǔ)句是:()A、p=qB>*p=*qn二*qD、p=n【答案】D()3、若有inta[][2]={{1,2},{2,3}};則*(a+l),*(*a+l)的含義分別為 。A、非法,2B、&a[l][0],2C、&a[0][l],3D、a[0][0],4【答案】B()4、c語(yǔ)言的switch語(yǔ)句中case后A、只能為常量B、只能為常量或常量表達(dá)式C、可為常量或表達(dá)式或有確定值的變量及表達(dá)式D、可為任何量或表達(dá)式【答案】B()5、下列標(biāo)識(shí)符不是關(guān)鍵字的是uxe<iKB、charC>Swithreturn【答案】C()6、有以下程序main()(charch[]="uvwxyz〃,*pc;pc=ch;printf("%c\n〃,*(pc+5));}程序運(yùn)行后的輸出結(jié)果是OA、zB、0C、元素ch[5]的地址D、字符y的地址【答案】A()7,表示關(guān)系*<=丫<=2的(:語(yǔ)言表達(dá)式為.A、(x<=y)&&(y<=z)B、(x<=y)and(y<=z)C、(x<=y<=z)D、(x<=y)&(y<=z)【答案】A【解析】C語(yǔ)言中沒(méi)有關(guān)鍵詞and,邏輯與運(yùn)算符是&&,不是and,因此,選項(xiàng)B是錯(cuò)誤的;而&是c語(yǔ)言的按位與運(yùn)算,因此選項(xiàng)D是錯(cuò)誤的:選項(xiàng)C是數(shù)學(xué)表達(dá)式,也是不對(duì)的。()8^對(duì)于代碼charcl[8];scanf('%s”,cl);printf("\n%s",cl);在程序運(yùn)行時(shí),輸入了"thisprettyboy”,則對(duì)應(yīng)的運(yùn)行輸出顯示結(jié)果是。thisprethisthisprettyboyD、數(shù)組越界,不能顯示【答案】B()9、下列運(yùn)算符中是c語(yǔ)言關(guān)系運(yùn)算符的是.A、~B、!C、&D、!=【答案】D()10、下面程序段的運(yùn)行結(jié)果是char*s="abcde”;s+=2;printfs);A、cdeB、字符'c'C、字符'c'的地址D、無(wú)確定的輸出結(jié)果【答案】C【解析】對(duì)于字符串指針,其保留的是整個(gè)串的首地址,即第一個(gè)字符的起始地址;當(dāng)該指針做算術(shù)運(yùn)算時(shí),就是該指針根據(jù)其類型向后移動(dòng)相應(yīng)的存儲(chǔ)空間。()11、若有以下說(shuō)明:charsl[]={"tree"},s2[]={"flower"};,則以下對(duì)數(shù)組元素或數(shù)組的輸出語(yǔ)句中,正確的是.A、printf(*%s%s*,si[5],s2[7]);B、printf(*%c%c*,si,s2);puts(si);puts(s2);D、puts(si,s2);【答案】c()12、以下程序:#include<stdio.h>main(){charstr[10];scanf("%s”,&str);printf("%s\n",str);)運(yùn)行上面的程序,輸入字符串howareyou,則程序的執(zhí)行結(jié)果是。A、howhowareyouC、hD、howareyou【答案】A【解析】當(dāng)從鍵盤輸入bowareyou時(shí),由于scanf輸入函數(shù)的特點(diǎn)是遇到空格時(shí)結(jié)束讀入字符,因此,該程序只將how這3個(gè)字符送到了字符數(shù)組str中,并在其后自動(dòng)加上結(jié)束符“\0”。()13、下列形式的常數(shù)中,不符合c語(yǔ)言語(yǔ)法規(guī)范的是oA、.45B、±123C、25.6c-2D、4e3【答案】B【解析】C程序允許出現(xiàn)的常數(shù)為有一確定值的整數(shù)或?qū)崝?shù)(可用小數(shù)形式或指數(shù)形式)等。土123不是確定值,是不可以出現(xiàn)的。()14、以下程序中函數(shù)f的功能是:當(dāng)flag為1時(shí),進(jìn)行由小到大排序;當(dāng)flag為0時(shí),進(jìn)行由大到小排序。voidf(intb[],intn,intflag)(inti,j,t;for(i=0;i<n-l;i++)for(j=i+l;j<n;j++)if(flag?b[i]>b[j]:b[i]<b[j])(t=b[i];b[i]=b[j];b[j]=t;))main()(inta[10]={5,4,3,2,1,6,7,8,9,10},i;f(&a[2],5,0);f(a,5,1);for(i=0;i<10;i++)printf(*%d,*,a[i]);)程序運(yùn)行后的輸出結(jié)果是oA、1,2,3,4,5,6,7,8,9,10,B、3,4,5,6,7,2,1,8,9,10,C、5,4,3,2,1,6,7,8,9,10,D、10,9,8,7,6,5,4,3,2,1,【答案】B()15、有以下程序:main()(intx=10,y;if(x<20)y=100;if(x>4)y=55/x;elsey=10;printf("/d\n",y);)則輸出結(jié)果是OA、100B、5)5C、10D、5【答案】D()16、以下程序的輸出結(jié)果是main()(inti=0,s=0;for(;;)(if(i==6)break;i++;s+=i;)printf("/d\n”,s);)A、10B、15C、21D、死循環(huán)【答案】c()17、有以下程序#include<stdio.h>main()structstucharname[9];charsex;doublescore[2];)structstua={"zhao",'m',85.0,90.0},b={"qian",'f',95.0,92.0};b=a;printf("%s,%c,%2.Of,%2.0f\n”,,b.sex,b.score[0],b.score[1]);)程序的運(yùn)行結(jié)果是OA、Qian,f,95,92B、Qian,m,85,90C、Zhao,f,95,92D、Zhao,m,85,90【答案】D()18、己知x=2.5,a=7,y=4.7,則表達(dá)式x+a%3*(int)(x+y)%2/4的結(jié)果是A、2.4B、2.5C、2.75D、0【答案】B()19、以下對(duì)一維數(shù)組c進(jìn)行正確的定義初始化的語(yǔ)句是oA、intc[10]=0;B、intc[10]={0}*10;C、intc[1]={0,0,0,0,0,0,0}D、intc[10]={0};【答案】D()20、下面定義結(jié)構(gòu)變量的語(yǔ)句中錯(cuò)誤的是—structstudent{intnum;charname[20];}s;struct{intnum;charname[20];C、structstudent{intnum;charname[20];};structstudents;D、structstudent{intnum;charname[20];);students;【答案】D二、判斷題(共10題,每題2分,共計(jì)20分)()1,有符號(hào)整型變量的取值范圍是:0-65536【答案】錯(cuò)誤()2、c語(yǔ)言中,%為求模(求余)雙目運(yùn)算符,它的兩個(gè)運(yùn)算數(shù)(操作數(shù))都必須是整型(如int、short、char等),不能是浮點(diǎn)型(如double、float)?!敬鸢浮空_()3、當(dāng)說(shuō)明一個(gè)共用體變量時(shí)系統(tǒng)分配給它的內(nèi)存是最長(zhǎng)的成員的長(zhǎng)度【答案】正確()4、case語(yǔ)句后如沒(méi)有break,順序向下執(zhí)行。【答案】正確()5、用strcat(字符串1,字符串2)連接兩個(gè)字符串函數(shù)時(shí),字符串1的存儲(chǔ)空間沒(méi)有限制?!敬鸢浮垮e(cuò)誤()6、c語(yǔ)言標(biāo)準(zhǔn)輸入操作中,gets()函數(shù)一次只可讀取一個(gè)字符。【答案】錯(cuò)誤【解析】gets從標(biāo)準(zhǔn)輸入設(shè)備讀字符串函數(shù),可以無(wú)限讀取,不會(huì)判斷上限()7、在標(biāo)準(zhǔn)c語(yǔ)言中,數(shù)組的下標(biāo)必須是常量,不允許是表達(dá)式?!敬鸢浮垮e(cuò)誤()8、用scanf()函數(shù)輸入實(shí)型數(shù)時(shí),既可以指定寬度,又可以規(guī)定精度。st:口

L臺(tái)升/t日歡()9、c語(yǔ)言中簡(jiǎn)單變量作為實(shí)參時(shí),它和對(duì)應(yīng)的形參之間的數(shù)據(jù)傳遞方式是雙向值傳遞?!敬鸢浮垮e(cuò)誤()10、某文件中定義的靜態(tài)全局變量的作用域是本文件。【答案】正確三、編程題(共3題,每題分值不等,共計(jì)40分)1、編寫程序:企業(yè)發(fā)放的獎(jiǎng)金根據(jù)利潤(rùn)提成。利潤(rùn)(D低于或等于io萬(wàn)元時(shí),獎(jiǎng)金可提10%;利潤(rùn)高于10萬(wàn)元,低于20萬(wàn)元時(shí),低于10萬(wàn)元的部分按10%提成,高于10萬(wàn)元的部分,可提成5%;20萬(wàn)到40萬(wàn)之間時(shí),高于20萬(wàn)元的部分,可提成5%;40萬(wàn)到60萬(wàn)之間時(shí)高于40萬(wàn)元的部分,可提成3%;60萬(wàn)到100萬(wàn)之間時(shí),高于60萬(wàn)元的部分,可提成1.5%;高于100萬(wàn)元時(shí),超過(guò)100萬(wàn)元的部分按1%提成。從鍵盤輸入當(dāng)月利潤(rùn)I,求應(yīng)發(fā)放獎(jiǎng)金總數(shù)?(本題10分)【答案】#include<stdio.h>intmain()(doublei;doublebonus1,bonus2,bonus4,bonus6,bonuslO,bonus;printf(〃你的凈利潤(rùn)是:\n〃);scanf&i);bonus1=100000*0.1;bonus2=bonus1+100000*0.075;bonus4=bonus2+200000*0.05;bonus6=bonus4+200000*0.03;bonus10=bonus6+400000*0.015;if(i<=100000){bonus=i*0.1;}elseif(i<=200000){bonus=bonus1+(i-100000)*0.075;}elseif(i<=400000){bonus=bonus2+(i-200000)*0.05;}elseif(i<=600000){bonus=bonus4+(i-400000)*0.03;}elseif(i<=1000000){bonus=bonus6+(i-600000)*0.015;}elseif(i>1000000){

bonus=bonus10+(i-1000000)*0.01;)printf("提成為:bonus=%lf”,bonus);printf("\n");)【解析】請(qǐng)利用數(shù)軸來(lái)分界,定位。注意定義時(shí)需把獎(jiǎng)金定義成長(zhǎng)整型。2、編寫程序:??=800*??+9*??其中??代表的兩位數(shù),809*??為四位數(shù),8*??的結(jié)果為兩位數(shù),9*??的結(jié)果為3位數(shù)。求??代表的兩位數(shù),及809*??后的結(jié)果。打印如下形式,??代表一個(gè)數(shù)字:09*??=800*??+9*??(本題14分)【答案】Sinclude<stdio.h>voidoutput(longintb,longinti){printfC\n%ld=800*%ld+9*%ld\n”,b,i,i);intmain(){voidoutput(longintb,longinti);longinta,b,i;a=809;for(i=10;i<100;i++){b=i*a;if(b>=1000&&b<=10000&&8*i<100&&9*i>=100){output(b,i);))return0;)3、試?yán)弥赶蚪Y(jié)構(gòu)體的指針編制一程序,實(shí)現(xiàn)輸入3個(gè)學(xué)生的學(xué)號(hào)、數(shù)學(xué)期中和期末考試成績(jī)。然后計(jì)算其平均成績(jī)并輸出成績(jī)表,使用結(jié)構(gòu)體實(shí)現(xiàn)。(本題16分)【答案】#include<stdio.h>structstudent(longnumber;intscore[3];};voidinput(structstudent*stu)(inti;for(i=0;i<3;i++)(printf("num:");scanf&((stu+i)->number));printf(/zpleaseinputscore\nz,);scanf(-%d,%d”,&((stu+i)->score[0]),&((stu+i)->score[1]));(stu+i)->score[2]=((stu+i)->score[0]+(stu+i)->score[l])/2;printf('\n");})voidprint(structstudent*stu)(inti,j;printf(,z\nNo.ScolSco2Sco3\n,z);for(i=0;i<3;i++)(printf("%-6d〃,(stu+i)->number);for(j=0;j<3;j++)printf(,z%-8dz,,(stu+i)->score[j]);printf(,z\nzz);))intmain()(structstudentstu[3];input(stu);print(stu);計(jì)算機(jī)語(yǔ)言C沖刺卷(四)(考試時(shí)間90分鐘,總分100分)

準(zhǔn)考證號(hào):姓名:一、單項(xiàng)選擇題(共20題,每題2分,共計(jì)40分)()1,在下面的運(yùn)算符中,不是算術(shù)運(yùn)算符的是?A、++B、==C、%D、+【答案】B【解析】算術(shù)運(yùn)算符包括:+、-、*、/、%,++、-O而選項(xiàng)B中的==屬于關(guān)系運(yùn)算符。()2、有以下程序:floatfun(intx,inty)(return(x+y);}main()(inta=2,b=5,c=8;printf("%3,Of\n”,fun((int)fun(a+c,b),a-c));)程序運(yùn)行后的輸出結(jié)果是OA、編譯出錯(cuò)B、9C、21D、9.0【答案】B()3、對(duì)于數(shù)學(xué)式x/2a,下面正確的c語(yǔ)言表達(dá)式是oA、sqr(x)/2asqr(x)/2*asqrt(x)/(2*a)D>sqrt(x)/2*a【答案】D()4、若有定義:floatx=l.5;inta=l,b=3,c=2;則正確的switch語(yǔ)句是。TOC\o"1-5"\h\zA、switch(x) {case1.0:printf("*\n");case2.0:printf("**\n");)B、switch((int)x); {:printf("*\n");:printf("**\n");}switch(a+b) {case1:printf("*\n");case2+1:printf("**\n");)switch(a+b) {case1:printf('*\n");casec:printf("**\n");)【答案】C【解析】在C語(yǔ)言中,switch。后的一對(duì)圓括號(hào)中可以是整型表達(dá)式或字符表達(dá)式。case語(yǔ)句后面的常量表達(dá)式的類型必須與switch后圓括號(hào)中的表達(dá)式類型相同,備case語(yǔ)句標(biāo)號(hào)的值應(yīng)該互不相同。選項(xiàng)A)中case后面的常量表達(dá)式為實(shí)型,所以不正確;選項(xiàng)D)中case后面出現(xiàn)了變量表達(dá)式,所以選項(xiàng)D)錯(cuò)誤。()5、已知#intt=0;while(t=l)}則以下敘述正確的是。A、循環(huán)控制表達(dá)式的值為0B、循環(huán)控制表達(dá)式的值為1C、循環(huán)控制表達(dá)式不合法D、以上說(shuō)法都不對(duì)【答案】B【解析】t=l是將t賦值為1,所以循環(huán)控制表達(dá)式的值為1。判斷t是否等于1時(shí),應(yīng)用t==l,注意“=”與"==”的用法。()6、有以下程序:#include<stdio.h>intf(intt[],intn);main(){inta[4]=l,2,3,4,s;s=f(a,2);printf("%d'n',s);)intf(intt[],intn){if((n>0)&&(n<5))returnt[n+l]+f(t,n-l);elsereturn0;)程序運(yùn)行后的輸出結(jié)果是OA、4B、7C、10D、6【答案】B【解析】本題主要考查的是函數(shù)的遞歸調(diào)用,子函數(shù)f是一個(gè)遞歸函數(shù),所以主函數(shù)中執(zhí)行f(a,2)時(shí),其執(zhí)行過(guò)程是a[3]+f[a,D=a[3]+a[2[+f(a,0)=7。()7、設(shè)a=8、b=10、c=7、d=8、m=2、n=6,執(zhí)行(m=aVb)|(n=c>d)后n的值為<,A、1B、6C、3D、4【答案】B()8、設(shè)有以下語(yǔ)句,其中不是對(duì)a數(shù)組元素的正確引用的是:(其中0WiV10)inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;a[i]B、*(&a[i])C^p[i]D、&(*(a+i))【答案】D()9、以下敘述中正確的是。A、程序必須包含所有三種基本結(jié)構(gòu)才能成為一種算法B、當(dāng)用我們所寫的每條C語(yǔ)句,經(jīng)過(guò)編譯最終都將轉(zhuǎn)換成二進(jìn)制的機(jī)器指令C、如果算法非常復(fù)雜,則需要使用三種基本結(jié)構(gòu)之外的語(yǔ)句結(jié)構(gòu),才能準(zhǔn)確表達(dá)D、只有簡(jiǎn)單算法才能在有限的操作步驟之后結(jié)束【答案】B()10、null是指oA、0B、空格C、未知的值或無(wú)任何值D、空字符串【答案】C【解析】此題屬于記憶性的題目,NULL是指未知的值或無(wú)任何值。()11、設(shè)有以下語(yǔ)句,對(duì)a數(shù)組元素的引用中(其中0V=iV10)不正確的是inta[10]=(0,1,2,3,4,5,6,7,8,9},*p=a;A、a[p-a]B、*(&C、pD、*(*(a+)【答案】D【解析】本題考核數(shù)組與指針。A選項(xiàng)中,p為指針,數(shù)組名a代表數(shù)組的首地址,所以p-a就是指針到數(shù)組首地址的偏移量。B選項(xiàng)中,&a[i]是取數(shù)組a中第i個(gè)元素的地址,而對(duì)于*(&a[i]),由指針運(yùn)算符*的運(yùn)算規(guī)則可知,語(yǔ)句*(&a[i])就是返回地址&a[i]空間中存放的值,也即a[i]o0選項(xiàng),由于指針p已指向數(shù)組a,所以p[i]就等于a[i]小這是常用的一種數(shù)組元素引用方式。D)選項(xiàng)是以指針?lè)绞綄?duì)數(shù)組元素進(jìn)行引用,由于a只是代表數(shù)組的首地址,并不是指針,所以表達(dá)式*(*(a+i))是錯(cuò)誤的,正確的引用應(yīng)該為:*(*(p+i))o()12、假設(shè)有語(yǔ)句sizeof(double),則它是.A、一個(gè)整型表達(dá)式B、一個(gè)雙精度浮點(diǎn)型表達(dá)式C、一種函數(shù)調(diào)用D、一種函數(shù)定義【答案】A【解析】sizeof(double)是C語(yǔ)言內(nèi)部規(guī)定的一個(gè)計(jì)算參數(shù)(double)在計(jì)算機(jī)的內(nèi)存中所占用的字節(jié)數(shù)量的函數(shù),它返回一個(gè)整數(shù)值。()13、在7位ascii碼中,除了表示數(shù)字、英文大小寫字母外,還有幾個(gè)字符和符號(hào)A、63B、66C、80D、32【答案】B【解析】7位ASCII碼表中有10個(gè)數(shù)字,26個(gè)大寫字母,26個(gè)小寫字母,所以剩下的字符和符號(hào)的數(shù)目是:128-10-26-26=66o()14、若已定義:inta[9],*p=a;并在以后的語(yǔ)句中未改變p的值,不能表示a[l]地址的表達(dá)式為().A、p+1B、a+1C、a++D、++p【答案】C()15、以下程序輸出結(jié)果是main()(intm=5;if(m++>5)printf(*%d\n*?m);elseprintf("%d\n”,m—);)A、7B、6C、5D、4【答案】B()16、下面程序的運(yùn)行結(jié)果是omain()(inti,j,a=0;for(i=0;i<2;i++){for(j=0;j<4;j++)if(j%2)break;a++;)a++;)printf("%d'n”,a);)A,4B、5C、6D、7【答案】A()17、若有下面的說(shuō)明和定義:structtest(intml;charm2;floatm3;unionuu(charul[5];intu2[2];)ua;)myaa;則sizeof(structtest)的值是。A、20B、16C、14D、9【答案】A【解析】共用體uu占8個(gè)字節(jié);因?yàn)榻Y(jié)構(gòu)體在內(nèi)存中占位符的存在,所以結(jié)構(gòu)體test中成員m2占4個(gè)字節(jié);結(jié)構(gòu)體test占用內(nèi)存的大小是sizeof(int)+sizeof(char)+3+sizeof(float)+sizeof(ua)=20。()18、以下程序的輸出結(jié)果是main()inta=5,b=4,c=6,d;printf("%d\n",d=a>b?(a>c?a:c):(b));A,5B、4C、6D、不確定【答案】Cinta[10]={()19、若有以下定義和語(yǔ)句,且0Wi<10則對(duì)數(shù)組元素的錯(cuò)誤引用是—1,2,3,4,5,6,7,8,9,10},*p,i;p=ainta[10]={A、*(a+i)a[p-a]C^p+iD、*(&a[i])【答案】C()20、有以下程序#include<stdio.h>structtt(intx;structtt*y;)*p;structtta[4]={20,a+1,15,a+2,30,a+3,17,a};main()(inti;p=a;for(i=l;i<=2,i++){printf("%d,”,p->x);p=p->y;))程序的運(yùn)行結(jié)果是OA、20,30,B、30,17C、15,30,D、20,15【答案】D二、判斷題(共10題,每題2分,共計(jì)20分)()1、寄存器變量只限于整型、字符型和指針型的局部變量。【答案】正確()2、在c語(yǔ)言中,引用數(shù)組元素時(shí),數(shù)組下標(biāo)的數(shù)據(jù)類型只能是整型常量。()【答案】錯(cuò)誤()3、fseek函數(shù)一般用于二進(jìn)制文件。【答案】正確()4、do-while循環(huán)的while后的分號(hào)可以省略?!敬鸢浮垮e(cuò)誤()5、使用strcpy(字符數(shù)組,字符串)函數(shù)時(shí),連同字符串后面的'\0'一起拷貝到字符數(shù)組中。【答案】正確()6、當(dāng)函數(shù)值類型缺省定義時(shí),函數(shù)值隱含的類型是double型。()【答案】錯(cuò)誤()7、指針數(shù)組的每個(gè)元素都是一個(gè)指針變量【答案】正確()8、c語(yǔ)言中簡(jiǎn)單變量作為實(shí)參時(shí),它和對(duì)應(yīng)的形參之間的數(shù)據(jù)傳遞方式是單向值傳遞?!敬鸢浮空_()9、c語(yǔ)言中函數(shù)返回值的類型是由形參的數(shù)據(jù)類型決定的?!敬鸢浮垮e(cuò)誤()10、在標(biāo)準(zhǔn)c中,使用所有輸入輸出函數(shù)必須包含"stdio.h”文件【答案】錯(cuò)誤三、編程題(共3題,每題分值不等,共計(jì)40分)1、編寫程序:統(tǒng)計(jì)一維數(shù)組a中素?cái)?shù)的個(gè)數(shù)例如:如果數(shù)組a的元素為:2,3,5,7,8,9,10,11,12,13,則程序的輸出應(yīng)為:primenumber(s)is(are)(本題10分)【答案】#include<math.h>Sinclude<conio.h>#include<stdio.h>prinum(inta[])(intcount,i,j,k;count=0;for(i=0;i<10;i++)(k=a[i]T;for(j=2;jV=k;j++)if(a[i]%j==0)break;if(j>=k+1)count++;}return(count);)main()(inta[10]={2,3,5,7,8,9,10,11,12,13},n;n=prinum(a);printf(,zprimenumber(s)is(are):%d〃,n);)2、編寫程序:從鍵盤上輸入a與n的值,計(jì)算sum=a+aa+aaa+aaaa+ (共n項(xiàng))的和。例a=2,n=4,則sum=2+22+222+2222。(本題14分)【答案】#include"stdio.h"main()(inta,ncount=l,sn=0,tn=0;scanf(〃%d &a,&n);while(count<=n)(tn=tn+a;sn=sn+tn;a=a*10;++count;)printf(線d”,sn);)

3、編寫程序:用結(jié)構(gòu)體和函數(shù)處理學(xué)生成績(jī),學(xué)生信息包括:學(xué)號(hào)姓名3門課成績(jī)平均分1)用input函數(shù)來(lái)輸入數(shù)據(jù)和求各學(xué)生的平均成績(jī)2)用max函數(shù)來(lái)找平均分最高的學(xué)生3)用print函數(shù)輸出成績(jī)最高學(xué)生的信息(本題16分)【答案】#include<stdio.h>#defineN3structStudent{#defineN3structStudent{intnum;charname[20];floatscore[3];floataver;}:〃建立結(jié)構(gòu)體類型〃學(xué)號(hào)〃姓名〃3門課成績(jī)intmain()(voidinput(structStudentstu[]);structStudentmax(structStudentvoidprint(structStudentstud);intmain()(voidinput(structStudentstu[]);structStudentmax(structStudentvoidprint(structStudentstud);structStudentstu[N],*p=stu;input(p);print(max(p));〃函數(shù)聲明stu[]);〃函數(shù)聲明〃函數(shù)聲明〃定義結(jié)構(gòu)體數(shù)組和結(jié)構(gòu)體指針//調(diào)用函數(shù)return0;}voidinput(structStudentstu口)〃定義輸入函數(shù)(inti;printf("請(qǐng)輸入各個(gè)學(xué)生的信息:學(xué)號(hào)、姓名、3門課成績(jī):\n");for(i=0;i<N;i++)(scanf(,z%d%s%f%f%f”,&stu[i].num,stu[i].name,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);stu[i].aver=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3.0;〃根據(jù)輸入成績(jī)求平均分)}structStudentmax(structStudentstu[]){inti,m=0; //用m存放成績(jī)最高的學(xué)生在數(shù)組中的序號(hào)for(i=0;i<N;i++)if(stu[i].aver>stu[m].aver) 〃找出平均分最高的學(xué)生在數(shù)組中的序號(hào)m=i;returnstu[m]; 〃返回包含該生信息的結(jié)構(gòu)體元素)voidprint(structStudentstud) 〃定義輸出函數(shù)(printfC\n成績(jī)最高的學(xué)生是:\n");printf("學(xué)號(hào):%d\n姓名:%s\n三門課成績(jī):%5.lf,%5.lf,%5.lf\n平均成績(jī):%5.lf\n*,stud,num,stud,name,stud,score[0],stud,score[1],stud,score[2],stud,aver);計(jì)算機(jī)語(yǔ)言C沖刺卷(五)

(考試時(shí)間90分鐘,總分100分)

準(zhǔn)考證號(hào):姓名:一、單項(xiàng)選擇題(共20題,每題2分,共計(jì)40分)()1、若采用雙符號(hào)位判斷溢出,當(dāng)結(jié)果的符號(hào)位為11時(shí),表示(13)oA、結(jié)果為正溢出B、結(jié)果正,無(wú)溢出C、結(jié)果負(fù)溢出D、結(jié)果為負(fù),無(wú)溢出【答案】D【解析】本題考查定點(diǎn)數(shù)加、減法溢出問(wèn)題。定點(diǎn)數(shù)加、減時(shí),若采用雙符號(hào)位法,即采用兩個(gè)符號(hào)位,如果兩個(gè)符號(hào)位相同,則沒(méi)有溢出;若不同,則表示出現(xiàn)溢出,而第一符號(hào)位才是真正的符號(hào)。即兩個(gè)符號(hào)位的高位為1表示負(fù)溢出,而高位為0、低位為1則表示正溢出。題目中給出的結(jié)果的符號(hào)位為11,根據(jù)上面的分析,第一個(gè)符號(hào)位才是真正的符號(hào),那么此數(shù)是負(fù)數(shù),但兩個(gè)符號(hào)位相同,表示沒(méi)有溢出。()2、設(shè)有定義:floata=2,b=4,h=3;,以下c語(yǔ)言表達(dá)式與代數(shù)式計(jì)算結(jié)果不相符的是(a+b)*h/2(l/2)*(a+b)*h(a+b)*h*l/2h/2*(a+b)【答案】B()3、以下不正確的定義語(yǔ)句是ounsignedinta=-100u;longb=OL;shortc2=0123;intd=0x0;【答案】A()4、以下敘述中正確的是oA、對(duì)于邏輯表達(dá)式:a++||b++,設(shè)a的值為1,則求解表達(dá)式的值后,b的值會(huì)發(fā)生改變第43/85頁(yè)B、對(duì)于邏輯表達(dá)式:a++&&b++,設(shè)a的值為0,則求解表達(dá)式的值后,b的值會(huì)發(fā)生改變C^else不是一條獨(dú)立的語(yǔ)句,它只是if語(yǔ)句的一部分D、關(guān)系運(yùn)算符的結(jié)果有三種:0,1,-1【答案】C【解析】B選項(xiàng)和A選項(xiàng)中,對(duì)于邏輯表達(dá)式,其中b的值不會(huì)因?yàn)楸磉_(dá)式的結(jié)果發(fā)生改變;D選項(xiàng)中,關(guān)系運(yùn)算符的結(jié)果有真和假兩種。因此C選項(xiàng)正確()5、有以下程序:#include<stdio.h>main()(inti,j,m=l;for(i=l;i<3;i++){for(j=3;j>0;j—)(if(i*j>3)break;))printf("m=%d\n”,m);)程序運(yùn)行后的輸出結(jié)果是oA,m=4B、m=2C、m=6D>m=5【答案】C【解析】第一次外循環(huán)i的值為1,第一次內(nèi)循環(huán)j的值為3,不滿足條件執(zhí)行m*=i*j,即m的值為3;第二次i的值為2,不滿足條件執(zhí)行m*=i*j,即m的值為6;第三次j的值為1,不滿足條件執(zhí)行m*=i*j,即m的值仍為6。第二次外循環(huán)i的值為2,j的值為3,滿足條件,執(zhí)行break語(yǔ)句,跳出循環(huán)。()6、下列敘述中正確的是oA、C語(yǔ)言編譯時(shí)不檢查語(yǔ)法B、C語(yǔ)言的子程序有過(guò)程和函數(shù)兩種C、C語(yǔ)言的函數(shù)可以嵌套定義D、C語(yǔ)言的函數(shù)可以嵌套調(diào)用【答案】D()7、設(shè)有如下定義:strucksk(inta;floatb;}data;int*p;若要使P指向data中的a域,正確的賦值語(yǔ)句是□A、p=&a;B、p=data,a;C、p=&data.a;D、*p=data.a;【答案】c()8、下列說(shuō)法正確的是oA、在c語(yǔ)言中,可以使用動(dòng)態(tài)內(nèi)存分配技術(shù)定義元素個(gè)數(shù)可變的數(shù)組B、在C語(yǔ)言中,數(shù)組元素的個(gè)數(shù)可以不確定,允許隨機(jī)變動(dòng)C、在C語(yǔ)言中,數(shù)組元素的數(shù)據(jù)類型可以不一致D、在C語(yǔ)言中,定義一個(gè)數(shù)組后,就確定了它所容納的元素的個(gè)數(shù)【答案】D()9、下面程序段的功能是#include<stdio.h>main()(charsi;sl=putc(getc(stdin),stdout);)A、從鍵盤輸入一個(gè)字符給字符變量siB、從鍵盤輸入一個(gè)字符,然后再輸出到屏幕C、從鍵盤輸入一個(gè)字符,然后在輸出到屏幕的同時(shí)賦給變量siD、在屏幕上輸出stdout的值【答案】C()10、以下不能將s所指字符串正確復(fù)制到t所指存儲(chǔ)空間的是.A、while(*t=*s){t++;s++;)B、for(i=0;t[i]=s[i];i++);do{*t++=*s++:)while(*s);for(i=0,j=o;t[i++]=s[j++];);【答案】C()11、以下能對(duì)一維數(shù)組a進(jìn)行初始化的語(yǔ)句是:()A、inta[5]=(0,1,2,3,4,)B、inta(5)={}C、inta[3]={0,1,2}D、inta{5}={10*l}【答案】C()12、若函數(shù)調(diào)用時(shí)參數(shù)為基本數(shù)據(jù)類型的變量(俗稱簡(jiǎn)單變量),以下敘述正確的是A、實(shí)參與其對(duì)應(yīng)的形參共占存儲(chǔ)單元B、只有當(dāng)實(shí)參與對(duì)應(yīng)的形參同名時(shí)才共占存儲(chǔ)單元C、實(shí)參與其對(duì)應(yīng)的形參分別占用不同的存儲(chǔ)單元D、實(shí)參將數(shù)據(jù)傳遞給形參后,立即釋放原先占用的存儲(chǔ)單元【答案】C()13、c語(yǔ)言用表示邏輯”真〃值。A、trueB、t或yC、非零整型值D、整型值0【答案】C()14、若二維數(shù)組a有m歹lj,則計(jì)算任一元素在數(shù)組中位輅的公式為(假設(shè)a[0][0]位于數(shù)組的第一個(gè)位路上)Oi*m+jj*m+ii*m+j-li*m+j+l【答案】D()15、以下程序的運(yùn)行結(jié)果是.voidsub(intx,inty,int*z)*z=y-x;main()(inta,b,c;sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);printf("%4d,%4d,%4d”,a,b,c);)A、5,2,3-5,-12,-7-5,-12,-17D、5,-2,-7【答案】A()16、下列程序段的輸出結(jié)果為ointy=l;while(y—);printf("y=%d\n",y);A、y=-lB、y=0C、死循環(huán)D、y=9【答案】A【解析】當(dāng)y一返回0時(shí),while語(yǔ)句停止循環(huán),此時(shí)y=T。()17、有以下結(jié)構(gòu)體說(shuō)明和變量的定義,且指針p指向變量a,指針q指向變量b。則不能把結(jié)點(diǎn)b連接到結(jié)點(diǎn)a之后的語(yǔ)句是structnodechardata;structnode*next;a,b,*p=&a,*q=&b;next=q;next=&b;C、p—>next=&b;(*p).next=q;【答案】B【解析】要把結(jié)點(diǎn)b連接到結(jié)點(diǎn)a之后,必須把b的地址給a的next指針,選項(xiàng)A中,指針變量q保存的就是第47/85頁(yè)變量b的地址,選項(xiàng)B中的p是指針變量,應(yīng)該是p->next=&b;在選項(xiàng)D中,用*運(yùn)算符取出結(jié)構(gòu)體變量,并且保存的就是b的地址,所以正確。()18、下列程序的運(yùn)行結(jié)果是.main()(staticinta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};inti,j,sum=0;for(i=0;i<3;i++)for(j=0;j<4;j++)if(j>i)sum+=a[i][j];printfC'sum=%d\n,',sum);)A、40B、36C、24D、30【答案】B()19、下列數(shù)組說(shuō)明中,正確的是.intarray[4];intarrayL][];intarray[][][5];intarray[3][];【答案】A()20、設(shè)有以下語(yǔ)句typedefstructs(intg;charh;)t;則下面敘述中正確的是OA、可用S定義結(jié)構(gòu)體變量B、可以用T定義結(jié)構(gòu)體變量C^S是struct類型的變量D、T是structS類型的變量【答案】A二、判斷題(共10題,每題2分,共計(jì)20分)()1、C語(yǔ)言在函數(shù)調(diào)用時(shí),若形參實(shí)參都是普通變量,實(shí)參和形參可以共用存儲(chǔ)單元?!敬鸢浮垮e(cuò)誤()2,語(yǔ)句printf("%.2f”,1.0/3);輸出為0.33o【答案】正確()3、內(nèi)存單元的地址與內(nèi)存單元中的數(shù)據(jù)是兩個(gè)完全相同的概念【答案】錯(cuò)誤()4、使用不帶參數(shù)的for(;;)語(yǔ)句可以正??刂蒲h(huán)。【答案】錯(cuò)誤()5、宏定義用宏名代替一個(gè)字符串,在替換時(shí),只是作簡(jiǎn)單的替換,不作語(yǔ)法檢查。【答案】正確()6、對(duì)于一個(gè)具體的函數(shù)來(lái)說(shuō),實(shí)參與形參不必一一對(duì)應(yīng)?!敬鸢浮垮e(cuò)誤()7、字符數(shù)組定義后,不能用賦值語(yǔ)句將一字符串常量或字符數(shù)組直接賦給一個(gè)字符數(shù)組。【答案】正確()8、函數(shù)的實(shí)參和形參都可以是變量、常量和表達(dá)式。【答案】錯(cuò)誤()9、以"a”方式打開(kāi)一個(gè)文件時(shí),文件指針指向文件首。【答案】錯(cuò)誤()10、要使用標(biāo)準(zhǔn)輸入、輸出函數(shù),正常情況下應(yīng)該在文件的開(kāi)頭加上以下內(nèi)容:#include<stdio.h>或#include"stdio.h"。【答案】正確三、編程題(共3題,每題分值不等,共計(jì)40分)I、輸入一行字符,將所有的小寫字母轉(zhuǎn)換成大寫字母,(本題10分)【答案】大寫字母轉(zhuǎn)換成小寫字母,其余字符不變。輸出轉(zhuǎn)變后的這行字符。#include"stdio.h"voidmain()(chara[n];inti;scanfa);printf("大寫為:”);for(i=0;i<=n;i++)(if(a<="z'&&a>='a')a=a-32;printf("%c”,a);)printf("\n小寫為:”);for(i=0;i<=3;i++)(a=a+32;printf("%c”,a);))2、試編程判斷輸入的正整數(shù)是否既是5又是7的整倍數(shù)。若是,則輸出yes;否則輸出no。(本題14分)【答案】mainO{inti;scanf("%d",&i);if(i%5==0&&i%7==0)(printf("yes");)else{printf("no");))3、給定n本書的名稱和定價(jià),本題要求編寫程序,查找并輸出其中定價(jià)最高和最低的書的名稱和定價(jià)。輸入格式:輸入第一行給出正整數(shù)n?10),隨后給出n本書的信息。每本書在一行中給出書名,即長(zhǎng)度不超過(guò)30的字符串,隨后一行中給出正實(shí)數(shù)價(jià)格。題目保證沒(méi)有同樣價(jià)格的書。輸出格式:在一行中按照“價(jià)格,書名”的格式先后輸出價(jià)格最高和最低的書。價(jià)格保留2位小數(shù)。輸入樣例:3ProgramminginC21.5ProgramminginVB18.5ProgramminginDelphi25.0輸出樣例:25.00,ProgramminginDelphi18.50,ProgramminginVB(本題16分)【答案】#include<stdio.h>structmessage{charnamel[30];charname2[30];charname3[30];doubleprice;);structmessaged[10];intmain()(intN;scanf("%d",&N);inti,j;for(i=0;i<N;i++)(scanf(

溫馨提示

  • 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)論