版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
國(guó)家二級(jí)(C語言)機(jī)試模擬試卷32(共9套)(共300題)國(guó)家二級(jí)(C語言)機(jī)試模擬試卷第1套一、選擇題(本題共39題,每題1.0分,共39分。)1、以下敘述中正確的是()。A、C程序中注釋部分可以出現(xiàn)在程序中任意合適的地方B、C程序的書寫格式是固定的,每行只能寫一條語句C、構(gòu)成C程序的基本單位是函數(shù),所有函數(shù)名都可以由用戶命名D、在對(duì)C語言程序進(jìn)行編譯時(shí),可以發(fā)現(xiàn)注釋行中的拼寫錯(cuò)誤標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查的是C語言程序設(shè)計(jì)的初步知識(shí)。選項(xiàng)A),程序中/*…*/表示注釋部分,注釋只是給人看的,對(duì)程序的編譯和運(yùn)行不起作用,可以在程序中的任何位置;選項(xiàng)B),C語言的書寫格式自由,一行可以寫多條語句,一條語句也可以寫在不同行上;選項(xiàng)C),一個(gè)C程序中必須有且只能有一個(gè)由“main”命名的主函數(shù),其他函數(shù)由用戶自行命名:選項(xiàng)D),程序的注釋僅僅是提供閱讀之用,并不參與程序的編譯,所以編譯也就不會(huì)發(fā)現(xiàn)注釋行中的錯(cuò)誤。2、有下列程序,其中%u表示按無符號(hào)整數(shù)輸出。main(){unsignedintx=0xFFFF;/*x的初值為十六進(jìn)制數(shù)*/printf(’’%u\n’’,x);}程序運(yùn)行后的輸出結(jié)果是()。A、-1B、65535C、32767D、0xFFFF標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:“%u”格式符表示以十進(jìn)制形式輸出無符號(hào)整形變量。本題中無符號(hào)整形變量x=0xFFFF表示的是十六進(jìn)制無符號(hào)整型變量的最大值65535,所以最后輸出的結(jié)果為65535。3、以下選項(xiàng)中正確的語句組是()。A、chars[];s="HELLO!";B、char*s;s={"HELLO!"};C、chars[10];s="HELLO!";D、char*s;s="HELLO!";標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查數(shù)組和字符串的賦值。選項(xiàng)A)中數(shù)組s沒有明確其大小就賦值是錯(cuò)誤的。選項(xiàng)B)中不能有大括號(hào),選項(xiàng)C)中的寫法應(yīng)該為{’H’’E’’L’’L’’O’’!’}。4、if語句的基本形式為:if(表達(dá)式)語句,其中“表達(dá)式”()。A、可以是任意合法的表達(dá)式B、必須是邏輯表達(dá)式C、必須是邏輯表達(dá)式或關(guān)系表達(dá)式D、必須是關(guān)系表達(dá)式標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查if表達(dá)式。if(表達(dá)式)中的表達(dá)式可以為任何合法的表達(dá)式,一般情況下為邏輯、條件表達(dá)式,需要注意的是,當(dāng)?shù)忍?hào)(==)誤寫為賦值號(hào)(=)時(shí)不會(huì)報(bào)錯(cuò)的,但是其值恒為1。5、有以下程序:#include<stdio.h>main(){FILE*fp;inta[10]={1,2,3,0,0},i;fp=fopen("d2.dat","wb");fwrite(a,sizeof(int),5,fp);fwrite(a,sizeof(int),5,fp);fclose(fp);fp=fopen("d2.dat","rb");fread(a,sizeof(int),10,fp);fclose(fp);for(i=0;i<10;i++)printf("%d,",a[i]);}程序的運(yùn)行結(jié)果是()。A、1,2,3,0,0,0,0,0,0,0,B、1,2,3,1,2,3,0,0,0,0,C、123,0,0,0,0,123,0,0,0,0,D、1,2,3,0,0,1,2,3,0,0,標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:首先用函數(shù)fopen()以“wb”的方式打開文件“d2.dat”,然后調(diào)用兩次fwrite函數(shù)將數(shù)組a的5個(gè)元素,依次輸出到文件fp中(共10個(gè)字節(jié)),然后關(guān)閉文件。再次打開文件,使用文件指針指向文件的開頭,調(diào)用fread函數(shù)從文件fb中讀取這10個(gè)字節(jié)的數(shù)據(jù)到數(shù)組a中,此時(shí)數(shù)組a的內(nèi)容就變?yōu)閧1,2,3,0,0,1,2,3,0,0},因此最后的輸出結(jié)果為“1,2,3,0,0,1,2,3,0,0”。6、下列程序的運(yùn)行結(jié)果是()。#include<stdio.h>voidmain()voidfun(int*s,int*p){inta[]={2,3,4,5},k,x;{staticintt=3;for(k=0:k<4:k++)*p=s[t]:{fun(a,&x);t--;}printf("%d,",x);}}A、5,4,3,2,B、2,3,4,5,C、2,2,2,2,D、5,5,5,5,標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:分析fun函數(shù)程序段,可知fun函數(shù)要實(shí)現(xiàn)的功能是將s中第(t+1)個(gè)元素前面(含該元素)的元素逆置賦給數(shù)組p。由于fun函數(shù)定義了靜態(tài)變量t=3,因此,在主函數(shù)中調(diào)用函數(shù)劬(a,&x)時(shí),就是將數(shù)組a中前4個(gè)元素逆置賦給數(shù)組x,最后輸出x數(shù)組。7、算法的空間復(fù)雜度是指()。A、算法在執(zhí)行過程中所需要的計(jì)算機(jī)存儲(chǔ)空間B、算法所處理的數(shù)據(jù)量C、算法程序中的語句或指令條數(shù)D、算法在執(zhí)行過程中所需要的臨時(shí)工作單元數(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:算法的空間復(fù)雜度是指算法在執(zhí)行過程中所需要的內(nèi)存空間。所以選擇A。8、下列不屬于軟件工程3個(gè)要素的是()。A、工具B、過程C、方法D、環(huán)境標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:軟件工程包括3個(gè)要素,即方法、工具和過程。方法是完成軟件工程項(xiàng)目的技術(shù)手段;工具支持軟件的開發(fā)、管理、文檔生成;過程支持軟件開發(fā)的各個(gè)環(huán)節(jié)的控制、管理。9、C語言主要是借助以下哪種手段來實(shí)現(xiàn)程序模塊化()。A、定義函數(shù)B、定義常量和外部變量C、使用豐富的數(shù)據(jù)類型D、使用三種基本結(jié)構(gòu)語句標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:該段程序的作用是將最后一個(gè)空格后面的字符串覆蓋數(shù)組a中的數(shù)據(jù),所以for循環(huán)執(zhí)行完畢后,a[]="you!",所以答案選A)。10、下面程序的輸出結(jié)果是()。typedefunion{longx[1];inty[4];charz[10];}M;Mt;main(){printf("%d\n",sizeof(t));}A、32B、26C、10D、4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:“聯(lián)合體”所占用的內(nèi)存空間為最長(zhǎng)的成員所占用的空間。題中聯(lián)合體的z[10]成員是聯(lián)合體中占空間最長(zhǎng)的成員。11、對(duì)序線性表(23,29,34,55,60,70,78)用二分法查找值為60的元素時(shí),需要比較次數(shù)為()。A、1B、2C、3D、4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:根據(jù)二分法查找法需要兩次:①首先將60與表中間的元素55進(jìn)行比較,由于60大于55,所以在線性表的后半部分查找。②第二次比較的元素是后半部分的中間元素,將60與表中間的元素70進(jìn)行比較,由于60小于70,所以在線性表的前半部分查找。③第三次比較的元素是前半部分的中間元素,即60,這時(shí)兩者相等,即查找成功。12、若有定義:inta=7;floatx=2.5,y=4.7;則表達(dá)式“x+a%3*(int)(x+y)%2/4”的值是()。A、2.500000B、2.750000C、3.500000D、0.000000標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是變量的類型轉(zhuǎn)換。表達(dá)式中“(int)(x+y)把x+y=(7.2)”的值強(qiáng)制轉(zhuǎn)化成整型即得到7,那么“a%3*(int)(x+y)%2”的值為整型常量1,所以“a%3*(int)(x+y)%2/4”的值為0;因?yàn)樽兞縳是浮點(diǎn)型變量,所以表達(dá)式“x+a%3*(int)(x+y)%2/4”的結(jié)果也是浮點(diǎn)型,得到2.500000。13、若有定義語句:intx=12,y=8,z;在其后執(zhí)行語句:z=0.9+x/y:則z的值為()。A、1B、1.9C、2D、2.4標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:x、y為整數(shù),x/y值為1,加上0.9為1.9,賦值給整型變量z,接收后為1。14、有以下程序#includeintfun(intas*intb){if(b==0)returna;elsereturn(fun(--a,--b));}main(){pfintf("%d\n",fun(4,2));}程序的運(yùn)行結(jié)果是()。A、1B、2C、3D、4標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:由程序可知,函數(shù)fun(inta,intb)是一個(gè)遞歸函數(shù)。所以當(dāng)主函數(shù)中調(diào)用fun(4,2)時(shí),其執(zhí)行過程如下:fun(4,2)->fun(3,1)->fun(2,0),其返回值為2。所以正確答案為選項(xiàng)B)。15、有以下程序:#inc1ude#inc1ude"string.h"voidfun(char*s[],intn){char*t,inti,j,for(i=0;istrlen(s[j]){t=s[i];s[i]=s[j];s[j]=t;}}main(){char*ss[]={"bcc","bbcc","xy","aaaacc","aabcc"};fun(ss,5);printf("%s,%s\n",ss[0],ss[4]);}程序的運(yùn)行結(jié)果是()。A、xy,aaaaccB、aaaacc,xyC、bcc,aabccD、aabcc,bcc標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:從main函數(shù)入手,定義了一個(gè)一維數(shù)組并賦初值,接著調(diào)用函數(shù)fun(),函數(shù)的功能是:比較數(shù)組中各元素的長(zhǎng)度,按元素長(zhǎng)度從小到大的順序排列元素,所以執(zhí)行“fun(ss,5)”函數(shù)后,“*ss[]={"xy","bcc","bbcc","aabcc","aaaacc"}”,所以調(diào)用printf函數(shù)輸出ss[0],ss[4]的值分別為xy,aaaacc。16、有以下程序:#include<stdio.h>voidf(int*q){inti=0;for(;i<5;i++)(*q)++;}main(){inta[5]={1,2,3,4,5},i;f(a);for(i=0;i<5;i++)printf("%d,",13.[i]);}程序運(yùn)行后的輸出結(jié)果是()。A、6,2,3,4,5,B、2,2,3,4,5,C、1,2,3,4,5,D、2,3,4,5,6,標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查的是函數(shù)的地址調(diào)用,將數(shù)組名作為數(shù)組首地址進(jìn)行傳遞,然后取首個(gè)數(shù)組元素值進(jìn)行加1運(yùn)算,循環(huán)5次。因此A選項(xiàng)正確。17、有如下程序#include<stdio.h>main(){inti,data;scanf("%d",&data);for(i=0;i<5;i++){if((i<data&&i%2)||(i>data&&i%3==0))continue;printf("%d,",i);程序運(yùn)行時(shí),從鍵盤輸入:13<回車>后,程序輸出結(jié)果為()。A、0,2.4,B、1,3,5,C、0,1,2.3,4,5,D、0,1,2,3,標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:程序通過scanf()函數(shù),輸入data的值13,for循環(huán)中,i的值遍歷0~4,對(duì)每個(gè)i的值執(zhí)行if語句判斷,其中:i>data始終為假;所以表達(dá)式i>data&&i%3==0始終為假;所以if語句的判斷條件需要看i<data&&i%2的值,由于i<data始終為真,所以i<data&&i%2的值又取決于i%2的值,也就是說整個(gè)if語句的判斷條件取決于i%2的值,如果i%2為真,那么if語句成立,執(zhí)行continue,否則執(zhí)行printf()函數(shù),所以當(dāng)i取值l、3時(shí),i%2的為1,if條件成立,執(zhí)行continue;當(dāng)i取值0、2、4時(shí),i%2的值為0,if條件不成立,執(zhí)行printf()函數(shù),輸出0,2,4,本題答案為A。18、軟件需求規(guī)格說明書的作用不包括()。A、軟件設(shè)計(jì)的依據(jù)B、軟件可行性研究的依據(jù)C、軟件驗(yàn)收的依據(jù)D、用戶與開發(fā)人員對(duì)軟件要做什么的共同理解標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:《軟件可行性分析報(bào)告》是軟件可行性研究的依據(jù)。19、以下程序的輸出結(jié)果是()。#includemain(){inta=1,b=3;if((++a<0)&&!(b--<=0))printf(“%d,%d\n”,a,b);elseprintf(“%d,%d\n”,b,a);}A、2.2B、1,3C、3,2D、3.1標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:解答本題的關(guān)鍵在于if語句條件中的表達(dá)式。初始時(shí)a=1,b=3,所以++a=2>0,因此++a<0為假:因?yàn)槭沁M(jìn)行邏輯與(&&)運(yùn)算,在&&的一個(gè)運(yùn)算對(duì)象為假的前提下不用判斷第二個(gè)運(yùn)算對(duì)象的真假,就可以直接得出整個(gè)表達(dá)式的值為邏輯0,所以執(zhí)行else語句。20、下列敘述中正確的是()。A、在switch語句中,不一定使用break語句B、在switch語句中必須使用defaultC、break語句必須與switch語句中的case配對(duì)使用D、break語句只能用于switch語句標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:defauh語句在switch語句中可以省略,所以B錯(cuò)誤;switch語句中并非每個(gè)case后都需要使用break語句,所以C錯(cuò)誤;break語句還可以用于for等循環(huán)結(jié)構(gòu)中,所以D錯(cuò)誤。21、以下程序段中的變量已正確定義for(i=0;i<4;i++,i++)for(k=1;k<3;k++);printf("*");該程序段的輸出結(jié)果是()。A、*B、****C、**D、********標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:暫無解析22、下述程序的輸出結(jié)果是()。#includevoidmain(){inta[5]={1,2,3,4,5};int*p=a,**q=&p;printf("%d",*(p++));printf("%d",**q);}A、22B、11C、34D、12標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:程序首先定義了一個(gè)指向一維數(shù)組a的指針p,一個(gè)指向指針變量p的指針變量q,輸出*(p++)是先輸出*p即a[0]的值,再將指針p指向數(shù)組的下一個(gè)元素a[1],輸出**q是輸出指針p所指向單元的內(nèi)容,即a[1]的值。23、有以下程序#include<stdio.h>main(){inta=1,b=3,c=5;int*p1=&a,*p2=&b,*p=&c;*p=*p1*(*p2);printf("%d\n",c);}執(zhí)行后的輸出結(jié)果是A、1B、2C、3D、4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:該程序中int*p1=&a,*p2=&b,*p=&c;指定義三個(gè)指針變量,并賦值,即使p1指向a;p2指向b;p指向c。*p=*p1*(*p2);該條語句是給p所指的存儲(chǔ)單元c賦值,就是p1所指的存儲(chǔ)單元的值,即a的值,與p2所指的存儲(chǔ)單元b的值相乘,也就是c=a*b,等價(jià)于c=1*3=3;因此C選項(xiàng)正確。24、在數(shù)據(jù)庫的三級(jí)模式結(jié)構(gòu)中,描述數(shù)據(jù)庫中全體數(shù)據(jù)的全局邏輯結(jié)構(gòu)和特征的是()。A、內(nèi)模式B、用戶模式C、外模式D、概念模式標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:數(shù)據(jù)庫系統(tǒng)在其內(nèi)部分為三級(jí)模式,即概念模式、內(nèi)模式和外模式??钅J绞菙?shù)據(jù)庫系統(tǒng)中全局?jǐn)?shù)據(jù)邏輯結(jié)構(gòu)的描述,全體用戶的公共數(shù)據(jù)視圖。外模式也稱子模式或者用戶模式,是用戶的數(shù)據(jù)視圖,也就是用戶所能夠看見和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示。內(nèi)模式又稱物理模式,是數(shù)據(jù)物理結(jié)構(gòu)和存儲(chǔ)方式的捕述,是數(shù)據(jù)在數(shù)據(jù)庫內(nèi)部的表示方式。描述數(shù)據(jù)庫中全體數(shù)據(jù)的全局邏輯結(jié)構(gòu)和特征的是概念模式,故D選項(xiàng)正確。25、有以下程序:#iinclude<stdio.h>main(){inta=7,b=0;do{b+=a;a-=1;}while(a--);printf("%d,%d\n",b,a);}執(zhí)行后的輸出結(jié)果是()。A、28,0B、28,1C、16,0D、16,-1標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:分析程序可知,do語句1…while(語句2),每次循環(huán)在語句1中a的值減1,在語句2中判斷a的值后,a的值又減1,所以在每次循環(huán)體執(zhí)行完后,b累加的a的值分別為7,5,3,1,a的值分別為6,4,2,0,最后當(dāng)a為0時(shí),while判斷條件為false,此時(shí)a的值再減1,為-1,到此循環(huán)結(jié)束,所以b的值為16,a的值為-1,故答案選D。26、有以下程序:#inelude<stdio.h>intfun(inta[],intn,intx){int*p=a;while(p<a+n&&*p!=x)p++;if(p<a+n)returnp-a;elsereturn-1;}main(){inta[10]={1,2,3,4,5,6,7,8,9,10};printf("%d\\n",fun(a,10,10));}程序運(yùn)行后的輸出結(jié)果是()。A、9B、-1C、10D、0標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:while(p<a+n&&*p!=x)p++;當(dāng)p=a;n=10,x=10;時(shí)while循環(huán)條件成立,直到p=a+9,結(jié)束循環(huán),執(zhí)行下一條語句,if條件成立,返回p-a,此時(shí)執(zhí)行p-a=a+9-a=9;因此,輸出9。故答案為A選項(xiàng)。27、某二叉樹共有730個(gè)結(jié)點(diǎn),其中度為1的結(jié)點(diǎn)有30個(gè),則葉子結(jié)點(diǎn)個(gè)數(shù)為()。A、不存在這樣的二叉樹B、351C、1D、350標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在樹結(jié)構(gòu)中,一個(gè)結(jié)點(diǎn)所擁有的后件個(gè)數(shù)稱為該結(jié)點(diǎn)的度,所有結(jié)點(diǎn)中最大的度稱為樹的度。對(duì)任何一棵二叉樹,度為0的結(jié)點(diǎn)總是比度為2的結(jié)點(diǎn)多一個(gè)。如果有一棵二叉樹,結(jié)點(diǎn)總數(shù)為730,假設(shè)度為0的結(jié)點(diǎn)個(gè)數(shù)為n。則有n+30+n-1=730,n=350.5,由于結(jié)點(diǎn)個(gè)數(shù)必須是整數(shù),所以不可能存在題目中這樣的二叉樹。故選A選項(xiàng)。28、數(shù)據(jù)庫系統(tǒng)的三級(jí)模式不包括()。A、數(shù)據(jù)模式B、內(nèi)模式C、外模式D、概念模式標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)據(jù)庫系統(tǒng)的三級(jí)模式是概念模式、內(nèi)模式和外模式。29、關(guān)系數(shù)據(jù)庫管理系統(tǒng)能實(shí)現(xiàn)的專門關(guān)系運(yùn)算包括()。A、排序、索引、統(tǒng)計(jì)B、選擇、投影、連接C、關(guān)聯(lián)、更新、排序D、顯示、打印、制表標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:關(guān)系數(shù)據(jù)庫管理系統(tǒng)的專門關(guān)系運(yùn)算包括選擇運(yùn)算、投影運(yùn)算和連接運(yùn)算。30、若有以下定義,則對(duì)a數(shù)組元素地址的正確引用是()。inta[5],*p=a;A、p+5B、*a+lC、&a+lD、&a[0]標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查如何引用數(shù)組元素的地址。選項(xiàng)A中,p+5引用的是a[5]的地址,而數(shù)組a只有5個(gè)元素,即a[0]、a[1]、a[2]、a[3]、a[4],所以引用錯(cuò)誤;選項(xiàng)B中,*a+1指的是將數(shù)組a的第一個(gè)元素加1;選項(xiàng)C中,這種引用方式錯(cuò)誤;選項(xiàng)D中,&a[0]引用的是數(shù)組的首地址。31、以下敘述中正確的是A、循環(huán)發(fā)生嵌套時(shí),最多只能兩層B、三種循環(huán)for,while,do-while可以互相嵌套C、循環(huán)嵌套時(shí),如果不進(jìn)行縮進(jìn)形式書寫代碼,則會(huì)有編譯錯(cuò)誤D、for語句的圓括號(hào)中的表達(dá)式不能都省略掉標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:A選項(xiàng)中,循環(huán)發(fā)生嵌套時(shí),沒有規(guī)定層數(shù);C選項(xiàng)中,循環(huán)嵌套時(shí),書寫代碼時(shí)沒有要求必須縮進(jìn);D選項(xiàng)中,for語句的圓括號(hào)中的表達(dá)式都可以省略掉。因此B選項(xiàng)正確。32、有以下程序:#include#includestmctSTU{inta;charb[10];floatc;};voidfun(structSTUt);main(){structSTUa={1001,’’Tim’’,635.0};fun(a);printf(’’%d,%s,%5.1f\n’’,a.a(chǎn),a.b,a.c);}voidfun(structSTUt){t.a(chǎn)=1002:strcpy(t.b,’’Dom’’);t.c=701.0;}程序運(yùn)行后的輸出結(jié)果是()。A、1001,Tim,635.0B、1002,Dom,701.0C、1002,Dom,701.0D、1001,Tim,701.0標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題主要是考查結(jié)構(gòu)體作為子函數(shù)參數(shù)的值傳遞還是地址傳遞的問題,子函數(shù)的功能是將形參的值用一個(gè)固定的值覆蓋,但因?yàn)槭侵祩鬟f,所以實(shí)參的值不會(huì)變化,所以在主函數(shù)中的結(jié)構(gòu)體a的值沒有發(fā)生變化。33、在以下選項(xiàng)中,按照C語言規(guī)定,不能出現(xiàn)在標(biāo)識(shí)符中的是()。A、大寫字母B、下劃線C、數(shù)字字符D、連接符標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:按照C語言規(guī)定,標(biāo)識(shí)符由字母、數(shù)字和下劃線組成,且開頭必須是字母或下劃線,所以選項(xiàng)D不合法。34、下列說法不正確的是A、int*fun();----fun是一個(gè)返回int指針的函數(shù)B、int(*fun)();---fun是一個(gè)返回int指針的函數(shù)C、int(*array[5])0;----array是一個(gè)有5個(gè)元素的數(shù)組,每一個(gè)元素都是一個(gè)函數(shù)指針,指向一個(gè)返回int的函數(shù)。D、int(*fun(int))(int);----fun是帶有一個(gè)int參數(shù)的函數(shù),返回值是一個(gè)函數(shù)指針,這個(gè)指針指向帶有一個(gè)int參數(shù)并返回int的函數(shù)。標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:該函數(shù)中fun是一個(gè)函數(shù)指針。指向一個(gè)返回int的函數(shù)。35、有以下程序#include<stdio.h>main(){intx=0x13;if(x=0x12)printf("True");printf("False\n");}程序運(yùn)行后的輸出結(jié)果是A、TrueB、TrueFalseC、FalseD、TrueFalseTrue標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:if(x=0x12)表示x=0x12!=0即x=0x12為假時(shí),執(zhí)行printf("True"),再執(zhí)行printf("False\n"),因此答案為B選項(xiàng),注意賦值操作符"="與相等操作符"=="的區(qū)別。36、設(shè)有以下程序段floata[8]={1.0,2.0};intb[1]={0};charc[]={"A","B"};chard=="1";以下敘述正確的是A、只有變量c的定義是合法的B、只有變量a,b,c的定義是完全合法的C、所有變量的定義都是完全合法的D、只有變量a,b的定義是完全合法的標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:floata[8]={1.0,2.0};定義了一個(gè)包含8個(gè)float型元素的數(shù)組,并初始化了數(shù)組的前2項(xiàng),其他項(xiàng)是隨機(jī)數(shù)。intb[1]={0},定義了只有一個(gè)int型元素的數(shù)組,并初始化為0。charc[]={"A","B"};定義一個(gè)char型數(shù)組,大小有初始化元素決定,但初始化值是字符串,類型不兼容,編譯出錯(cuò)。chard="1";定義一個(gè)char型變量,但是初始化賦值字符串,類型不兼容,編譯出錯(cuò)。因此只有a,b定義和初始化正確。故答案為D選項(xiàng)37、有以下程序段:#include<stdio.h>inti,n;for(i=0;i<8;i++){n=rand()%5;switch(n){case1:case3:printf("%d\n",n);break;case2:case4:printf("%d\n",n);continue;case0:exit(0);}printf("%d\n",n);}以下關(guān)于程序段執(zhí)行情況的敘述,正確的是()。A、for循環(huán)語句固定執(zhí)行8次B、當(dāng)產(chǎn)生的隨機(jī)數(shù)n為4時(shí)結(jié)束循環(huán)操作C、當(dāng)產(chǎn)生的隨機(jī)數(shù)n為1和2時(shí)不做任何操作D、當(dāng)產(chǎn)生的隨機(jī)數(shù)n為0時(shí)結(jié)束程序運(yùn)行標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:case常量表達(dá)式只是起語句標(biāo)號(hào)作用,并不是該處進(jìn)行條件判斷。在執(zhí)行switch語句時(shí),根據(jù)switch的表達(dá)式,找到與之匹配的case語句,就從此case子句執(zhí)行下去,不再進(jìn)行判斷,直到碰到break或函數(shù)結(jié)束為止。簡(jiǎn)單的說break是結(jié)束整個(gè)循環(huán)體,而continue是結(jié)束單次循環(huán)。B)選項(xiàng)中當(dāng)產(chǎn)生的隨機(jī)數(shù)n為4時(shí)要執(zhí)行打印操作。C)選項(xiàng)中當(dāng)產(chǎn)生的隨機(jī)數(shù)為1和2時(shí)分別執(zhí)行case3與case4后面語句的內(nèi)容。由于存在break語句所以for循環(huán)不是固定執(zhí)行8次,執(zhí)行次數(shù)與產(chǎn)生的隨機(jī)數(shù)n有關(guān)系。38、若有以下定義,則對(duì)數(shù)組元素的正確引用是()。inta[5],*p=a;A、*&a[5]B、(*a)+2C、*p+4D、*(a+2)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查通過指針引用數(shù)組元素。選項(xiàng)A)、C)沒有這種引用形式:選項(xiàng)B),(*a)+2與*a+2相同,表示第一個(gè)元素的值加2;選項(xiàng)D),*(a+2)引用數(shù)組的第3個(gè)元素。39、若定義函數(shù)“int*func()”,則函數(shù)func的返回值為()。A、一個(gè)實(shí)數(shù)B、一個(gè)指向整型變量的指針C、一個(gè)指向整型函數(shù)的指針D、一個(gè)整型函數(shù)的入口地址標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查函數(shù)返回值。fun函數(shù)的返回值類型為int*類型,即函數(shù)返回一個(gè)指向整型變量的指針。二、程序填空題(本題共1題,每題1.0分,共1分。)40、程序通過定義學(xué)生結(jié)構(gòu)體變量,存儲(chǔ)了學(xué)生的學(xué)號(hào)、姓名和三門課的成績(jī)。所有學(xué)生數(shù)據(jù)均以二進(jìn)制方式輸出到文件中。函數(shù)fun的功能是從形參filename所指的文件中讀入學(xué)生數(shù)據(jù),并按照學(xué)號(hào)從小到大排序后,再用二進(jìn)制方式把排序后的學(xué)生數(shù)據(jù)輸出到filename所指的文件中,覆蓋原來的文件內(nèi)容。請(qǐng)?jiān)诔绦虻南庐嬀€處填入正確的內(nèi)容并把下畫線刪除,使程序得出正確的結(jié)果。注意:部分源程序在文件BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:1#include<stdio.h>2#defineN53typedefstructstudent{4longsno;5charname[10];6floatscore[3];7}STU;8voidfun(char*filename)9{FILE*fp;inti,j;10STUs[N],t;11/*********found*********/12fp=fopen(filename,【1】);13fread(s,sizeof(STU),N,fp);14fclose(fp);15for(i=0;i<N-1;i++)16for(j=i+1;j<N;j++)17/*********found*********/18if(s[i].sno【2】s[j].sno)19{t=s[i];s[i]=s[j];20s[j]=t;}21fp=fopen(filename,’’wb’’);22/*********found*********/23【3】(s,sizeof(STU),N,fp);24fclose(fp);25}26main()27{STUt[N]={{10005,’’ZhangSan’’,95,80,88},{10003,’’LiSi’’,85,70,78},{10002,’’CaoKai’’,75,60,88},{10004,’’FangFang’’,90,82,87},{10001,’’MaChao’’,91,92,77}},ss[N];28inti,j;FILE*fp;29fp=fopen(’’student.dat’’,’’wb’’);30fwrite(t,sizeof(STU),5,fp);31fclose(fp);32printf(’’\n\nTheoriginaldata:\n\n’’);33for(j=0;j<N;j++)34{printf(’’\nNo:%idName:%-8sscores.’’,t[j].sno,t[j].name);35for(i=0;i<3;i++)36printf(’’%6.2f’’,t[j].score[i]);37printf(’’\n’’);38}39fun(’’student.dat’’);40printf(’’n\nThedataaftersorting:\n\n’’);41fp=fopen(’’student.dat’’,’’rb’’);42fread(ss,sizeof(STU),5,fp);43fclose(fp);44for(j=0;j<N;j++)45{printf(’’\nNo:%1dName:%-8sScores.’’,ss[j].sno,ss[j].name);46for(i=0;i<3;i++)47printf(’’%6.2f’’,ss[j].score[i]);48printf(’’\n’’);49}50}標(biāo)準(zhǔn)答案:(1)’’rb’’(2)>(3)fwrite知識(shí)點(diǎn)解析:填空l:題目中要求從形參filename所指的文件中讀入學(xué)生的數(shù)據(jù),以此可以看出本空應(yīng)該填寫’’rb’’。填空2:此處的if語句是比較學(xué)號(hào)的大小,如果學(xué)號(hào)大就和學(xué)號(hào)小的換位,以此本空填寫>。填空3:題目要求所有的學(xué)生數(shù)據(jù)均以二進(jìn)制方式輸出到文件中,因此本空填寫fwrite。三、程序修改題(本題共1題,每題1.0分,共1分。)41、下列給定程序中函數(shù)fun的功能是:將s所指字符串的正序和反序進(jìn)行連接,形成的新串放在t所指的數(shù)組中。例如,當(dāng)s所指字符串為“ABCD”時(shí),t所指字符串中的內(nèi)容應(yīng)為“ABCDDCBA”。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行.也不得更改程序的結(jié)構(gòu)!試題程序:#include<conio.h>#include<stdio.h>#include<string.h>/*********found*********/voidfun(chars,chart){inti,d;d=strlen(s);for(i=0;i<d;i++)t[i]=s[i];for(i=0;i<d;i++)t[d+i]=s[d-1-i];/*********found*********/t[2*d-1]=’\0’;}main(){chars[100],t[100];printf("\nPleaseenterstrings:");scanf("%s",s);fun(s,t);printf("\nTheresultis:%skn",t);}標(biāo)準(zhǔn)答案:(1)voidfun(char*s,char*t)(2)t[2*d]=’\0’;或t[d+i]=’\0’;或t[2*d]=0;或t[d+i]=0;知識(shí)點(diǎn)解析:(1)從調(diào)用函數(shù)來看,函數(shù)傳遞的是數(shù)組,所以函數(shù)的形參應(yīng)為指針。(2)循環(huán)結(jié)束后回文字符的個(gè)數(shù)為2*d個(gè),因?yàn)閿?shù)組下標(biāo)是從0開始的,所以最后一個(gè)字符的下標(biāo)為2*d一1,在最后一個(gè)字符的后面加上結(jié)束符’\0,因此為t[2*d]=’\0’;。四、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)42、編寫函數(shù)fun,其功能是:將s所指字符串中除了下標(biāo)為奇數(shù)同時(shí)ASCII碼值也為奇數(shù)的字符之外,其余的所有字符全部刪除,串中剩余字符所形成的一個(gè)新串放在t所指的數(shù)組中。例如,若s所指字符串的內(nèi)容為“ABCDEFG12345”,其中字符A的ASCII碼值為奇數(shù),但所在元素的下標(biāo)為偶數(shù),因此需要?jiǎng)h除;而字符1的ASCII碼值為奇數(shù),所在數(shù)組中的下標(biāo)也為奇數(shù),因此不應(yīng)當(dāng)刪除,其他依此類推。最后t所指數(shù)組中的內(nèi)容應(yīng)為“135”。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語句。試題程序:#include<conio.h>#include<stdio.h>#include<string.h>voidfun(char*s,chart[]){}main(){chars[100],t[100];printf("knPleaseenterstrings:");scanf("%s",s);fun(s,t);printf("knTheresultis:%s\n",t);}標(biāo)準(zhǔn)答案:voidfun(char*s,chart[]){inti,j=0,n;n=strlen(s);for(i=0;i<n;i++)if((i%2)&&(s[i]%2)){t[j++]=s[i];/*將下標(biāo)為奇數(shù)同時(shí)ASCII碼值為奇數(shù)的字符放入數(shù)組t中*/}t[j]=’\0’;/*最后加上結(jié)束標(biāo)識(shí)符*/}知識(shí)點(diǎn)解析:本題要求除了下標(biāo)為奇數(shù)同時(shí)ASCII碼值也為奇數(shù)的字符,其余的所有字符都刪除,即要留下下標(biāo)為奇數(shù)同時(shí)ASCII碼值也為奇數(shù)的字符。所以if的條件語句應(yīng)為:if(i%2!=0&&s[i]%2!=0)。國(guó)家二級(jí)(C語言)機(jī)試模擬試卷第2套一、程序填空題(本題共1題,每題1.0分,共1分。)1、使用VC++2010打開考生文件夾下blank1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件blank1.c。在此程序中,函數(shù)fun的功能是:將形參s所指字符串中下標(biāo)為奇數(shù)的字符按ASCII碼大小遞增排序,并將排序后下標(biāo)為奇數(shù)的字符取出,存入形參P所指字符數(shù)組中,形成一個(gè)新串。例如,形參s所指的字符為“baawrskjghzlicda”,執(zhí)行后p所指字符數(shù)組中的字符串應(yīng)為“aachjlsw”。請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并將下劃線刪除,使程序得出正確的結(jié)果。注意:部分源程序給出如下。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>voidfun(char*s,char*p)(inti,j,n,x,t;n=0;for(i=0;s[i]!=’\0’;i++)n++;for(i=1;i<n-2;i=i+2){/*********found*********/【1】;/*********found*********/for(j=【2】+2;j<n;j=j+2)if(s[t]>s[j])t=j;if(t!=i){x=s[i];s[i]=s[t];s[t]=x;}}for(i=1,j=0;i<n;i=i+2,j++)p[j]=s[i];/*********found*********/p[j]=【3】;}main(){chars[80]="baawrskjghzlicda",p[50];printf("\nTheoriginalstringis:%s\n",s);fun(s,p);printf("\nTheresultis:%s\n",p);}標(biāo)準(zhǔn)答案:(1)t=i(2)i或t(3)’\0’或0知識(shí)點(diǎn)解析:本題中第1個(gè)for循環(huán)的作用是得到字符串的長(zhǎng)度,第2個(gè)for循環(huán)的作用是對(duì)下標(biāo)為奇數(shù)的字符按ASCII碼大小排序,最后將排好序的字符取出。填空1:取出字符串中下標(biāo)為奇數(shù)的字符,所以將下標(biāo)i賦值給中間變量t。填空2:此處for循環(huán)語句的作用是實(shí)現(xiàn)對(duì)下標(biāo)為奇數(shù)的元素進(jìn)行排序操作,所以循環(huán)變量初值應(yīng)填入i或t;。填空3:將下標(biāo)為奇數(shù)的字符取出后,存入p所指的數(shù)組中,最后不要忘記在數(shù)組最后加入字符串結(jié)束標(biāo)識(shí)’\0’。二、程序修改題(本題共1題,每題1.0分,共1分。)2、使用VC++2010打開考生文件夾下modi1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件modi1.c。在此程序中,函數(shù)fun的功能是:用下面的公式求π的近似值,直到最后一項(xiàng)的絕對(duì)值小于指定的數(shù)(參數(shù)num)為止。π/4≈1-1/3+1/5-1/7+…例如,程序運(yùn)行后,輸入0.0001,則程序輸出3.1414。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdlib.h>#include<math.h>#include<stdio.h>floatfun(floatnum){ints;floatn,t,pi;t=1;pi=0;n=1;s=1;/*********found*********/while(t>=num){pi=pi+t;n=n+2;s=-s;/*********found*********/t=s%n;}pi=pi*4,returnpi;}voidmain(){floatn1,n2;system("CLS");printf("Enterafloatnumber:");scanf("%f",&n1),n2=fun(n1);printf("%6.4f\n",n2);}標(biāo)準(zhǔn)答案:(1)while(fabs(t)>=num)(2)t=s/n;知識(shí)點(diǎn)解析:(1)函數(shù)fun中while語句的作用是,當(dāng)新的一項(xiàng)大于給定參數(shù)時(shí),循環(huán)累計(jì)計(jì)算s的值。題目要求最后一項(xiàng)的絕對(duì)值小于給定參數(shù),因此循環(huán)條件應(yīng)當(dāng)是while(fabs(t)>=num)。(2)變量t用來存放最后一項(xiàng)的值,因?yàn)槊恳豁?xiàng)均為1或-1除以一個(gè)數(shù),所以此處應(yīng)使用除法運(yùn)算符“/”。三、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)3、使用VC++加10打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,編寫函數(shù)fun,其功能是:刪除一個(gè)字符串中指定下標(biāo)的字符。其中,a指向原字符串,刪除指定字符后的字符串存放在b所指的數(shù)組中,n中存放指定的下標(biāo)。例如,輸入一個(gè)字符串“World”,然后輸入3,則調(diào)用該函數(shù)后的結(jié)果為“Word”。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語句。試題程序:#include<stdlib.h>#include<stdio.h>#include<conio.h>#defineLEN20voidfun(chara[],charb[],intn){}voidmain(){charstr1[LEN],str2[LEN];intn;system("CLS");printf("Enterthestring:\n");gets(str1);printf("Enterthepositionofthestringdeleted:");scanf("%d",&n);fun(str1,sir2,n);printf("Thenewstringis:%s\n",sir2);}標(biāo)準(zhǔn)答案:voidfun(chara[],chaxb[],intn){inti,k=0;for(i=0;a[i]!=’\0’;i++)if(i!=n)/*將不是指定下標(biāo)的字符存入數(shù)組b中*/b[k++]=a[i];b[k]=’\0’;/*在字符串最后加上結(jié)束標(biāo)識(shí)*/}知識(shí)點(diǎn)解析:本題要求刪除字符串中指定下標(biāo)的字符,即把非指定下標(biāo)的字符保留,所以if語句條件表達(dá)式的內(nèi)容是if(i!=n)。字符串最后不要忘記加上字符串結(jié)束標(biāo)識(shí)’\0’。國(guó)家二級(jí)(C語言)機(jī)試模擬試卷第3套一、選擇題(本題共39題,每題1.0分,共39分。)1、下列敘述中正確的是()。A、循環(huán)隊(duì)列中的元素個(gè)數(shù)隨隊(duì)頭指針與隊(duì)尾指針的變化而動(dòng)態(tài)變化B、循環(huán)隊(duì)列中的元素個(gè)數(shù)隨隊(duì)頭指針的變化而動(dòng)態(tài)變化C、循環(huán)隊(duì)列中的元素個(gè)數(shù)隨隊(duì)尾指針的變化而動(dòng)態(tài)變化D、以上說法都不對(duì)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在循環(huán)隊(duì)列中,用隊(duì)尾指針rear指向隊(duì)列中的隊(duì)尾元素,用隊(duì)頭指針front指向隊(duì)頭元素的前一個(gè)位置。因此,從隊(duì)頭指針front指向的后一個(gè)位置直到隊(duì)尾指針rear指向的位置之間,所有的元素均為隊(duì)列中的元素。因此,循環(huán)隊(duì)列中的元素個(gè)數(shù)隨隊(duì)頭指針和隊(duì)尾指針的變化而變化,故A選項(xiàng)正確。2、下列關(guān)于棧的敘述中,正確的是()。A、棧底元素一定是最后入棧的元素B、棧頂元素一定是最先入棧的元素C、棧操作遵循“先進(jìn)后出”的原則D、以上說法均錯(cuò)誤標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:棧頂元素總是后被插入的元素,也是最先被刪除的元素;棧底元素總是最先被插入的元素,也是最后才被刪除的元素;棧的修改是按“后進(jìn)先出”的原則進(jìn)行的。因此,棧稱為“先進(jìn)后出”表或“后進(jìn)先出”表,故C選項(xiàng)正確。3、設(shè)某二叉樹的后序序列為CBA,中序序列為ABC,則該二叉樹的前序序列為()。A、BCAB、CBAC、ABCD、CAB標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:后序序列為CBA,中序序列為ABC,則說明A為根結(jié)點(diǎn),并且B和C均在A的右子樹上;結(jié)點(diǎn)B和C中,后序序列為CB,中序序列為Bc,則說明結(jié)點(diǎn)C在結(jié)點(diǎn)B的右子樹上,根據(jù)分析可得,該二叉樹的前序序列為ABC。4、結(jié)構(gòu)化程序設(shè)計(jì)主要強(qiáng)調(diào)的是()。A、程序的規(guī)模B、程序的效率C、程序設(shè)計(jì)語言的先進(jìn)性D、程序易讀性標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:結(jié)構(gòu)化程序設(shè)計(jì)強(qiáng)調(diào)的是程序的易讀性。5、為了使模塊盡可能獨(dú)立,要求()。A、模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量強(qiáng)B、模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量弱C、模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量弱D、模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量強(qiáng)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:系統(tǒng)設(shè)計(jì)的質(zhì)量主要反映在模塊的獨(dú)立性上。評(píng)價(jià)模塊獨(dú)立性的主要標(biāo)準(zhǔn)有兩個(gè):一是模塊之間的耦合,它表明兩個(gè)模塊之間互相獨(dú)立的程度;二是模塊內(nèi)部之間的關(guān)系是否緊密,稱為內(nèi)聚。一般來說,要求模塊之間的耦合盡可能地弱,即模塊盡可能獨(dú)立,而要求模塊的內(nèi)聚程度盡量地高。6、在結(jié)構(gòu)化方法中,軟件功能屬于軟件開發(fā)中的()階段。A、詳細(xì)設(shè)計(jì)B、需求分析C、總體設(shè)計(jì)D、編程調(diào)試標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:總體設(shè)計(jì)過程通常由兩個(gè)主要階段組成:系統(tǒng)設(shè)計(jì),確定系統(tǒng)的具體實(shí)現(xiàn)方案;結(jié)構(gòu)設(shè)計(jì),確定軟件結(jié)構(gòu)。為確定軟件結(jié)構(gòu),首先需要從實(shí)現(xiàn)角度把復(fù)雜的功能進(jìn)一步分解。分析員結(jié)合算法描述仔細(xì)分析數(shù)據(jù)流圖中的每個(gè)處理,如果一個(gè)處理的功能過分復(fù)雜,必須把它的功能適當(dāng)?shù)胤纸獬梢幌盗斜容^簡(jiǎn)單的功能。7、一個(gè)算法應(yīng)當(dāng)具有五個(gè)特性,以下敘述中正確的是()。A、有窮性、確定性、復(fù)雜性、有零個(gè)或多個(gè)輸入、有一個(gè)或多個(gè)輸出B、有窮性、確定性、可行性、有零個(gè)或多個(gè)輸入、有一個(gè)或多個(gè)輸出C、有窮性、確定性、可行性、必須要有一個(gè)以上的輸入、有一個(gè)或多個(gè)輸出D、有窮性、確定性、復(fù)雜性、有零個(gè)或多個(gè)輸入、必須要多個(gè)輸出標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:算法是指為解決某個(gè)特定問題而采取的確定且有限的步驟,一個(gè)算法應(yīng)當(dāng)具有五個(gè)特征:有窮性、確定性、可行性、有零個(gè)或多個(gè)輸入、有一個(gè)或多個(gè)輸出。8、關(guān)系數(shù)據(jù)庫管理系統(tǒng)所管理的關(guān)系是()。A、若干個(gè)二維表B、一個(gè)DBF文件C、一個(gè)DBC文件D、若干個(gè)DBC文件標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在關(guān)系數(shù)據(jù)庫中,一個(gè)袁就是一個(gè)關(guān)系,關(guān)系數(shù)據(jù)庫管理系統(tǒng)管理的關(guān)系就是多個(gè)二維表。9、結(jié)構(gòu)化程序設(shè)計(jì)中,下面對(duì)goto語句使用描述正確的是()。A、禁止使用goto語句B、使用goto語句程序效率高C、應(yīng)避免濫用goto語句D、以上說法均錯(cuò)誤標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:結(jié)構(gòu)化程序設(shè)計(jì)中,要注意盡量避免goto語句的使用,故C選項(xiàng)正確。10、設(shè)有如下三個(gè)關(guān)系表:下列操作中正確的是()。A、T=RnSB、T=RUSC、T=R×SD、T=R/S標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:兩個(gè)相同結(jié)構(gòu)關(guān)系的“并”是由屬于這兩個(gè)關(guān)系的元組組成的集合。11、不列選項(xiàng)中,不屬于數(shù)據(jù)庫管理的是()。A、數(shù)據(jù)庫的建立B、數(shù)據(jù)庫的調(diào)整C、數(shù)據(jù)庫的監(jiān)控D、數(shù)據(jù)庫的校對(duì)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:數(shù)據(jù)庫管理一般包括:數(shù)據(jù)庫的建立、數(shù)據(jù)庫的調(diào)整、數(shù)據(jù)庫的重組、數(shù)據(jù)庫的安全性控制與完整性控制、數(shù)據(jù)庫的故障恢復(fù)和數(shù)據(jù)庫的監(jiān)控。12、以下敘述中錯(cuò)誤的是()。A、C程序經(jīng)過編譯、鏈接步驟之后才能形成一個(gè)真正可執(zhí)行的二進(jìn)制機(jī)器指令文件B、C語言中的每條可執(zhí)行語句和非執(zhí)行語句最終都將被轉(zhuǎn)換成二進(jìn)制的機(jī)器指令C、用C語言編寫的程序稱為源程序,它以ASCII代碼形式存放在一個(gè)文本文件中D、C語言源程序經(jīng)編譯后生成后綴為.obi的目標(biāo)程序標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:C語言程序編譯時(shí)將每條可執(zhí)行語句轉(zhuǎn)換為二進(jìn)制的機(jī)器指令,但非執(zhí)行語句(如注釋語句)不被編譯,故B選項(xiàng)錯(cuò)誤。13、若有定義:ima=0,b=0,c=0,d=0;,有C語言表達(dá)式(a++&&b++)?c++:d++,以下關(guān)于其執(zhí)行順序的敘述中正確是()。A、先執(zhí)行a++,表達(dá)式a++的值為0,由此即可確定(a++&&b++)值為0,因此執(zhí)行d++B、先執(zhí)行a++,表達(dá)式a++的值為0;再執(zhí)行b++,表達(dá)式b++的值為0,由此可確定(a++&&b++)值為0,因此執(zhí)行d++C、先執(zhí)行a++,表達(dá)式a++的值為1;再執(zhí)行b++,表達(dá)式b++的值為1,由此可確定(a++&&b++)值為1,因此執(zhí)行c++D、先執(zhí)行b++,表達(dá)式b++的值為1;再執(zhí)行a++,表達(dá)式a++的值為1,由此可確定(a++&&b++)值為1,因此執(zhí)行c++標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:把握前置運(yùn)算和后置運(yùn)算的基本運(yùn)算規(guī)則。14、表達(dá)式:(int)((double)9/2)-(9)%2的值是()。A、0B、3C、4D、5標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:運(yùn)算符“/”和“%6”的優(yōu)先級(jí)高于“-”,所以先進(jìn)行除法和求余運(yùn)算,再進(jìn)行減法運(yùn)算。強(qiáng)制類型轉(zhuǎn)換表達(dá)式的形式:(類型名)(表達(dá)式)?!埃ァ苯Y(jié)果為4,轉(zhuǎn)換成double類型再轉(zhuǎn)換成int類型結(jié)果依然為4,(9)%2的結(jié)果為1,4-1的最后結(jié)果為3。15、在銀行業(yè)務(wù)中,實(shí)體客戶和實(shí)體銀行之間的聯(lián)系是()。A、一對(duì)一B、一對(duì)多C、多對(duì)一D、多對(duì)多標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:一個(gè)客戶可以在多家銀行辦理業(yè)務(wù),一家銀行也有多個(gè)客戶辦理業(yè)務(wù),所以實(shí)體客戶和實(shí)體銀行之間的聯(lián)系是多對(duì)多。16、若有以下程序段:intr=8;print{("%d\n",r>>1);輸出結(jié)果是()。A、16B、8C、4D、2標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C語言中“>>”是對(duì)二進(jìn)制的右移運(yùn)算符,右移相當(dāng)于將原數(shù)做除二操作,它將原數(shù)右移相應(yīng)位數(shù),并將移出的位舍去,在高位補(bǔ)0,將所得的結(jié)果再賦值給變量。本題中8的二進(jìn)制為00001000,右移一位得到00000100,所以是4。17、以下能對(duì)一維數(shù)組a進(jìn)行初始化的語句是()。A、inta[5]=(0,1,2,3,4);B、inta(5)={};C、inta[3]={0,1,2);D、inta{5)={10*1};標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:A選項(xiàng),數(shù)組可以看作是若干個(gè)相同數(shù)據(jù)類型元素的有序集合,所以以集合的形式對(duì)其初始化,使用{}對(duì)其初始化;BD選項(xiàng),常量表達(dá)式只能放在中括號(hào)[]中。18、若有定義:inta;floatb;doublec;,程序運(yùn)行時(shí)輸入:123<回車>,能把1輸入給變量a、把2輸入給變量b、把3輸入給變量c的輸入語句是()。A、scanf("%d%f%lf",&a,&b,&c);B、scanf("%d%f%lf",&a,&b,&c);C、scanf("%d%lf%lf",&a,&b,&c);D、scanf("%d%f%f",&a,&b,&c);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在seal3f()函數(shù)中,a變量為整數(shù)用%d格式字符串,b變量為單精度數(shù)用%f格式字符串,c變量為雙精度數(shù)用%1f格式字符串,只有A選項(xiàng)正確。19、下列數(shù)據(jù)中屬于“字符串常量”的是()。A、"a"B、{ABC}C、abe\0'D、a'標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在C語言中,若干個(gè)字符構(gòu)成字符串,用單引號(hào)標(biāo)識(shí)字符,用雙引號(hào)標(biāo)識(shí)字符串。A選項(xiàng),用雙引號(hào)標(biāo)識(shí)字符串,正確;BC選項(xiàng),分別用花括號(hào)和單引號(hào)標(biāo)識(shí)字符串,錯(cuò)誤;D選項(xiàng),標(biāo)識(shí)字符。20、當(dāng)變量c的值不為2、4、6時(shí),值為“真”的表達(dá)式是()。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)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題主要考查的是邏輯表達(dá)式。邏輯與運(yùn)算中只有兩邊的表達(dá)式同時(shí)為真,最后結(jié)果才為真;參與邏輯或運(yùn)算的表達(dá)式只要有一個(gè)為真,最后結(jié)果就為真。A選項(xiàng)中表達(dá)式的意思是當(dāng)c等于2或4或6時(shí),表達(dá)式的值為真,否則為假,所以不滿足題意。C選項(xiàng)中表達(dá)式的意思是當(dāng)c大于等于2且小于等于6,并且c不是奇數(shù)時(shí),表達(dá)式的值為真,否則為假。此時(shí)滿足該表達(dá)式的c只能取值為2、4、6,所以也不滿足題意。D選項(xiàng)中后面一個(gè)子表達(dá)式(c%2!=1)和C選項(xiàng)中的!(c%2)是等價(jià)的,都是判斷c不是奇數(shù),故也不滿足題意。21、有以下程序:#include<stdio.h>main(){floata,b,e,t:a=3;b=7;c=1;if(a>b){t=a;a=b.b=t;}if(a>c){t=a;a=c;c=t;}if(b>c){t=b;b=c;c=t;)printf("%5.2f,%5.2f,%5.2f",a,b,c);}程序運(yùn)行后的輸出結(jié)果是(其中□代表空格)()。A、□□3.00,□□1.00,□□7.00B、□□3.00,□□7.00,□□1.00C、□□1.00,□□3.00,□□7.00D、□□7.00,□□3.00,□□1.00標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查if語句。該題包含了3個(gè)if語句,每個(gè)if語句后的{}都不可省略,因?yàn)槊總€(gè){}中都包含了多條語句。首先判斷條件a>b,由于3小于7,表達(dá)式a>b不成立,因此不執(zhí)行{t=a;a=b;b=t;};然后判斷條件a>c,由于3大于1,因此表達(dá)式a>c成立,則執(zhí)行{t=a;a=c;c=t;},該表達(dá)式語句是用來交換a和c的值,執(zhí)行完后a為1,c為3;然后判斷條件b>c,由于7大于c中的3,因此b>c成立,則執(zhí)行{t=b,b=c;c=t;},過程同上,執(zhí)行后b為3,c為7。printf語句用來輸出a,b,c中的值,并且要求輸出的每個(gè)數(shù)據(jù)寬度為5,小數(shù)部分保留2位,數(shù)據(jù)右對(duì)齊。最后輸出為C選項(xiàng)中所示結(jié)果。22、有以下程序:#include<stdio.h>main(){intsum=10,n=1:while(n<3){sum=sum-n;n++;}printf("%d,%d",n,sum):}程序運(yùn)行后的輸出結(jié)果是()。A、2,8B、3,7C、3,8D、2,7標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:考查while循環(huán)。當(dāng)循環(huán)條件n<3成立的時(shí)候,執(zhí)行循環(huán)體{sum=sum-n;n++;)中的語句。循環(huán)初值sum為10,n為1。首先判斷循環(huán)條件n<3成立,開始第1次循環(huán),執(zhí)行sum=sum-n=10-1=9,執(zhí)行n++,即將n中的值加1,執(zhí)行后n為2;此時(shí)n中的值為2,sum中的值為9,循環(huán)條件n<3成立,繼續(xù)執(zhí)行第2次循環(huán),執(zhí)行sum=sum-n=9-2=7,執(zhí)行n++,即將n中的值加1,執(zhí)行后n為3;n為3時(shí),循環(huán)條件不成立,結(jié)束循環(huán),輸出結(jié)果為3,7。23、下列敘述正確的是()。A、只能在循環(huán)體內(nèi)和switch語句體內(nèi)使用break語句B、continue語句的作用是結(jié)束整個(gè)循環(huán)的執(zhí)行C、在循環(huán)體內(nèi)使用break語句或continue語句的作用相同D、從多層循環(huán)嵌套中退出時(shí),只能使用goto語句標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:break語句可以出現(xiàn)在循環(huán)體內(nèi)及switch語句體內(nèi),不能用于其他的語句。continue語句的作用是結(jié)束本次循環(huán),即跳過循環(huán)體中下面尚未執(zhí)行的語句,而接著轉(zhuǎn)去判定循環(huán)條件是否成立,從而確定下一次循環(huán)是否繼續(xù)執(zhí)行,也就是說執(zhí)行continue語句不會(huì)使整個(gè)循環(huán)終止。在循環(huán)體內(nèi)使用break語句會(huì)使循環(huán)提前終止,從多層循環(huán)嵌套中退出時(shí),可以使用goto語句或者break語句。24、以下敘述中正確的是()。A、charc1,c2,*c3,c4[40];是合法的變量定義語句B、數(shù)組下標(biāo)的下限由數(shù)組中第一個(gè)非零元素的位置決定C、數(shù)組下標(biāo)的下限由數(shù)組中第一個(gè)被賦值元素的位置決定D、數(shù)組下標(biāo)的下限是1標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:選項(xiàng)A正確。charc1,c2,*c3,c4[40]表示定義了兩個(gè)字符變量c1、c2,一個(gè)字符指針c3,一個(gè)字符數(shù)組c4。數(shù)組的下限永遠(yuǎn)為0,BCD選項(xiàng)錯(cuò)誤。25、設(shè)有定義:charp[]={'1','2','3'},*q=P;以下不能計(jì)算出一個(gè)char型數(shù)據(jù)所占字節(jié)數(shù)的表達(dá)式是()。A、sizeof(*q)B、sizeof(char)C、sizeof(p)D、sizeof(p[0])標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:數(shù)組名表示該數(shù)組的首地址,是一個(gè)地址常量,所以sizeof(p)求得的是一個(gè)地址占用的字節(jié)數(shù),即4個(gè)字節(jié),故答案為C選項(xiàng)。26、以下敘述中正確的是()。A、語句chara[Z]={"a","b");是合法的,定義了一個(gè)包含兩個(gè)字符的數(shù)組B、語句inta[]={0);是不合法的,遺漏了數(shù)組的大小C、語句inta[8]={0};是合法的D、語句chara[3];a="ab";是合法的,因?yàn)閿?shù)組有三個(gè)字符空間的容量,可以保存兩個(gè)字符標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:考查一維數(shù)組以及字符數(shù)組的初始化。初始化的時(shí)候可以只給數(shù)組的前面一部分元素設(shè)定初值,故C選項(xiàng)正確;字符數(shù)組中的每個(gè)元素為一個(gè)字符,需要用單引號(hào),故A選項(xiàng)錯(cuò)誤。若對(duì)數(shù)組全部元素賦初值時(shí),可以不指定數(shù)組元素的個(gè)數(shù),故B選項(xiàng)錯(cuò)誤;定義字符數(shù)組時(shí)可以將字符串直接賦給該字符數(shù)組,其他情況則不可以,故D選項(xiàng)錯(cuò)誤。27、有以下程序:#include<stdio.h>intk=5;voidf(int*s){s=&k;}main(){intm=3,*p=&m;f(p);printf("%d%d\n",m,*p);}程序的運(yùn)行結(jié)果是()。A、33B、55C、35D、53標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:考查函數(shù)傳參。C語言中,數(shù)據(jù)只能從實(shí)參單向傳遞給形參,指針作為函數(shù)參數(shù)時(shí),形參仍然作為實(shí)參的副本被賦值,形參指針變量的指向改變不能影響實(shí)參指針變量的指向,結(jié)果不變,答案為A選項(xiàng)。28、有以下程序:#include<stdio.h>main(){intx[3][3]={1,2,3,4,5,6,7,8,9),i;for(i:1;i<3;i++)printf("%d",x[i][3-i]);}程序運(yùn)行后的輸出結(jié)果是()。A、2,4B、6,8C、3,7D、2,6標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:二維數(shù)組的起始行標(biāo)和列標(biāo)均為0,即x[0][0]=1。當(dāng)i=1時(shí),for循環(huán)判斷條件成立,輸出x[1][2]=6;此時(shí)i自增為2,開始第二次for循環(huán),條件成立,輸出X[2][1]=8,故B選項(xiàng)正確。29、下列錯(cuò)誤的定義是()。A、int*p=&i,i;B、int*p,i;C、inti,*p=&i;D、inti,*P;標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:A選項(xiàng),先定義一個(gè)整型指針變量p,然后將變量i的地址賦給p。然而此時(shí)還未定義變量i,因此編譯器無法獲得變量i的地址,故A選項(xiàng)錯(cuò)誤。C選項(xiàng),先定義變量i,則在內(nèi)存中為i分配空間,因此i在內(nèi)存空間的地址就可以確定了,然后再定義p,此時(shí)可以為p賦i的地址,故C選項(xiàng)正確。30、有以下程序:#include<stdio.h>main(){inta[2]E3]={{1,2,3},(4,5,6));intb[3][2],i,j;for(i=0;i<=1;i++){for(j=0;j<=2;j++)b[j][i]=a[i][j];}for(i=0;i<=2;i++){for(j=0;j<=1;j++)printf("%d",b[i][j]);}}程序的運(yùn)行結(jié)果是()。A、123456B、135246C、142536D、132546標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查for循環(huán)的嵌套以及二雛數(shù)組的賦值和輸出。第一個(gè)for循環(huán)嵌套用來給二維數(shù)組b中的各元素賦值,執(zhí)行完后得到b[3][2]={{1,4},{2,5),{3,6})。第二個(gè)for循環(huán)嵌套用來輸出二雛數(shù)組b中的各元素。依次輸出為b[0][0],b[0][1],b[1][0],b[1][1].b[2][0],b[2][1],故輸出結(jié)果為142536。31、若有定義語句:char*sl="GOOD",*s2="good":以下選項(xiàng)中,能夠輸出“GOOD”語句的是()。A、if(strcmp(s1,s2)!=0)puts(s2):B、if(strcmp(s1,s2)!=0)puts(s1):C、if(strcmp(s1,s2)==1)puts(s1):D、if(strcmp(s1,s2)==0)puts(s1);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:strcrop(s1,s2)是字符串比較函數(shù),比較方式是兩個(gè)字符串從左至右逐個(gè)字符進(jìn)行比價(jià)(按照ASCII碼值大小),以第一個(gè)不相同字符的大小作為比較結(jié)果。由于大寫字母的ASCII碼值小于小寫字母的AsCII碼值,所以比較后的結(jié)果為負(fù)值,故只有B選項(xiàng)符合題意。32、有以下程序:#include<stdio.h>unsignedfun(unsignednum){unsignedk=1:do{k*=num%10;num/=10;}while(num);returnk;}main(){unsignedn=26:printf("%d\n",fun(n));)程序運(yùn)行后的輸出結(jié)果是()。A、12B、10C、16D、8標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:程序首先執(zhí)行main函數(shù),執(zhí)行printf("%d\n",fun(n));即輸出表達(dá)式fun(26)的值,為了計(jì)算該表達(dá)式,需要調(diào)用函數(shù)fun。此時(shí)inain將n中的26作為實(shí)參傳遞給fun的num,即num值為26,接著執(zhí)行do…while語句。第1次循環(huán),執(zhí)行k*=num%10,即k=k*(num%10)=1*(26%10)=6;執(zhí)行nam/=10,即num=nurn/10=26/10=2;while后面循環(huán)條件為num,此時(shí)nam為2,是非0值,即表示循環(huán)條件成立,繼續(xù)執(zhí)行循環(huán)體。此時(shí)k為6,num為2,執(zhí)行do…while中的語句后,k為12,num為0。由于while后面循環(huán)條件為num,此時(shí)num為0,表示循環(huán)條件不成立,結(jié)束循環(huán),執(zhí)行returnk,即返回至main函數(shù)中的被調(diào)用處,執(zhí)行main函數(shù),執(zhí)行printf語句,輸出結(jié)果為12。33、在C語言中,只有在使用時(shí)才占用內(nèi)存單元的變量的是()。A、auto和registerB、extern和registerC、auto和staticD、static和register標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語言中,動(dòng)態(tài)存儲(chǔ)區(qū)域中存放的變量在使用時(shí)才分配內(nèi)存空間。auto變量的存儲(chǔ)單元是分配在內(nèi)存的動(dòng)態(tài)存儲(chǔ)區(qū)中,每當(dāng)進(jìn)入函數(shù)體時(shí)自動(dòng)分配存儲(chǔ)單元。register變量也是自動(dòng)類變量。static說明的變量為靜態(tài)變量,靜態(tài)變量在內(nèi)存的靜態(tài)存儲(chǔ)中占據(jù)著永久的存儲(chǔ)單元,直至程序運(yùn)行結(jié)束。extern說明的變量為外部變量,屬于全局變量,全局變量在整個(gè)程序運(yùn)行期間都占用內(nèi)存空間。34、若有如下定義:charps[]={"aa","bb","cc","dd"};,則以下敘述中正確的是()。A、*ps[0]是字符'A'B、*ps[0]是字符串"aa"C、ps[0]是字符'A'D、ps是字符串'aa'標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:對(duì)于指針數(shù)組,ps[0]代表的就是第一個(gè)字符串的地址。35、以下敘述中正確的是()。A、在C語言中,預(yù)處理命令行都以#開頭B、預(yù)處理命令行必須位于C源程序的起始位置C、#include<stdio.h>必須放在C程序的開頭D、C語言的預(yù)處理不能實(shí)現(xiàn)宏定義和條件編譯的功能標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語言中,凡是以#開頭的都被稱為編譯預(yù)處理行,故A選項(xiàng)正確;預(yù)處理行可以放在C源程序的任何位置,習(xí)慣放在起始位置,故B選項(xiàng)錯(cuò)誤;語句#include<stdio.h>必須放在使用文件stdio.h中相關(guān)方法的語句之前,但是不一定非要放在C程序開頭,故C選項(xiàng)錯(cuò)誤;預(yù)處理包括宏定義、文件包含和條件編譯等,故D選項(xiàng)錯(cuò)誤。36、有以下程序:#include<stdio.h>main(){staticchara[]="Program",*ptr;for(ptr=a;ptr<a+7;ptr+=2)putchar(*ptr);}程序運(yùn)行后的結(jié)果為()。A、ProgB、PortoC、rgaD、Por標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:首先定義一個(gè)字符型數(shù)組a,并對(duì)a進(jìn)行初始化,然后定義字符型指針變量ptr。執(zhí)行for語句,ptr=a表示將數(shù)組a的首地址賦給ptr,ptr<a+7代表循環(huán)條件,ptr+=2即ptr=ptr+2。執(zhí)行putchar(*ptr);即輸出*pt所對(duì)應(yīng)的字符。此時(shí)ptr指向數(shù)組中的第1個(gè)元素,即a[0],所以*ptr表示a[0]中的值,即P,此時(shí)輸出P;然后執(zhí)行ptr+=2,此時(shí)ptr指向數(shù)組中的第3個(gè)元素,即a[2],輸出0;然后執(zhí)行ptr+=2,此時(shí)ptr指向數(shù)組中的第5個(gè)元素,即a[4],輸出r;然后執(zhí)行ptr+=2,此時(shí)ptr指向數(shù)組中的第6個(gè)元素,即a[5],輸出m;然后執(zhí)行ptr+=2,得到ptr=a+8<a+7,即循環(huán)條件不成立,循環(huán)結(jié)束,最終輸出結(jié)果為Porm。37、有以下程序:#include<stdio.h>main(){inti;FILE*fp;for(i=0;i<3;i++){fp=fopen("res.txt","w");fputc('K'+i,fp);fclose(fp);}}程序運(yùn)行后,在當(dāng)前目錄下會(huì)生成一個(gè)res.txt文件,其內(nèi)容是()。A、MB、EOFC、KLMD、L標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:通過三次循環(huán),最后i的值定格在2,最后儲(chǔ)存值'K'+2='M',所以最后保存的數(shù)值為M。注意fclose函數(shù),每次都關(guān)閉文件,并且重新回到文件首地址。38、有以下程序:#include<stdio.h>structst{intx;inty;}a[2]={5,7,2,9};main(){printf("%d\n",aE03.y*a[1].x);}程序運(yùn)行后的輸出結(jié)果是()。A、10B、18C、14D、63標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:首先是定義結(jié)構(gòu)體st,st中共有兩個(gè)整型成員x,y。然后定義一個(gè)st類型的數(shù)組a,a的長(zhǎng)度為2,即數(shù)組中含有兩個(gè)st類型的元素,分別是a[0]和a[1]。對(duì)a進(jìn)行初始化,此題是按照存儲(chǔ)順序進(jìn)行初始化,即將5賦給a[0]中的x(即a[0].x=5),將7賦給a[0]中的y(即a[0].y=7),將2賦給a[1]中的x(即a[1].x=2),將9賦給a[1]中的y(即a[1].y=9)。執(zhí)行main函數(shù),輸出表達(dá)式a[0].y*a[1].x的值,即7*2的值14。39、下列關(guān)于C語言文件的敘述中正確的是()。A、文件由一系列數(shù)據(jù)依次排列組成,只能構(gòu)成二進(jìn)制文件B、文件由結(jié)構(gòu)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件C、文件由數(shù)據(jù)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件D、文件由字符序列組成,其類型只能是文本文件標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C語言將文件看作是一個(gè)字符(字節(jié))的序列,即由一個(gè)一個(gè)字符(字節(jié))數(shù)據(jù)順序組成。根據(jù)數(shù)據(jù)的組成形式,可將文件分為兩種:①ASCII文件,又稱文本(text)文件,它的每一個(gè)字節(jié)可放一個(gè)ASCII碼,代表一個(gè)字符;②二進(jìn)制文件,是把內(nèi)存中的數(shù)據(jù)按其在內(nèi)存中的存儲(chǔ)形式原樣輸出到磁盤上存放。因此,C文件就是一個(gè)字節(jié)流或一個(gè)二進(jìn)制流。二、程序填空題(本題共1題,每題1.0分,共1分。)40、下列給定程序中,已建立了一個(gè)帶頭結(jié)點(diǎn)的單向鏈表,鏈表中的各結(jié)點(diǎn)按數(shù)據(jù)域遞增有序鏈接。函數(shù)fun的功能是:刪除鏈表中數(shù)據(jù)域值相同的結(jié)點(diǎn),使之只保留一個(gè)。請(qǐng)?jiān)谙聞澗€處填入正確的內(nèi)容并將下劃線刪除,使程序得出正確的結(jié)果。注意:不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>#include<stdlib.h>#defineN8typedefstructlist{intdata;structlist*next:}SLIST;voidfun(SLIST*h){SLIST*p,*q;p=h->next;if(P!=NULL){q=p->next;while(q!=NULL){if(p->data==q->data){p->next=q->next;/******found******/free(1);/******foun
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 分公司副總經(jīng)理崗位職責(zé)說明
- 第19課《大雁歸來》-統(tǒng)編版七年級(jí)語文上冊(cè)新教材閱讀綜合實(shí)踐+新增課文
- 江蘇省句容市二圣中學(xué)八年級(jí)生物下冊(cè) 第22章 第2節(jié) 生物的變異教案 (新版)蘇科版
- 八年級(jí)生物上冊(cè) 6.15.1《人體內(nèi)物質(zhì)的運(yùn)輸》第1課時(shí)教案 (新版)蘇科版
- 2024-2025學(xué)年高中語文 第三單元 第10課 菱角的喜劇教案 粵教版必修2
- 2024秋二年級(jí)語文上冊(cè) 課文3 9黃山奇石教案 新人教版
- 九年級(jí)化學(xué)上冊(cè) 第14章 第4節(jié)《歐姆定律的應(yīng)用》說課稿 蘇科版
- 福建省福清市??阪?zhèn)高中數(shù)學(xué) 第二章 平面向量 2.1 平面幾何中的向量方法教案 新人教A版必修4
- 兒童入園體檢表
- 讀懂食物標(biāo)簽正確選擇食物(未修)
- 幼兒園中班語言課件:《秋媽媽和果娃娃》
- GB/T 18488-2024電動(dòng)汽車用驅(qū)動(dòng)電機(jī)系統(tǒng)
- DZ∕T 0130-2006 地質(zhì)礦產(chǎn)實(shí)驗(yàn)室測(cè)試質(zhì)量管理規(guī)范(正式版)
- 電梯改造工程施工方案
- 數(shù)字人文建設(shè)方案
- 老年人營(yíng)養(yǎng)食譜編制(老年人膳食營(yíng)養(yǎng)課件)
- 非手術(shù)患者VTE風(fēng)險(xiǎn)和出血評(píng)估表
- 不定積分專題試題
- 教科版小學(xué)科學(xué)六年級(jí)上冊(cè)《3.4改變運(yùn)輸?shù)能囕啞氛n件
- MH-T 5064-2023飛機(jī)地錨設(shè)計(jì)與維護(hù)技術(shù)指南
- 電力工程項(xiàng)目技術(shù)標(biāo)書
評(píng)論
0/150
提交評(píng)論