山西大學(xué)數(shù)學(xué)科學(xué)學(xué)院834程序設(shè)計(jì)考研題庫(kù)_第1頁(yè)
山西大學(xué)數(shù)學(xué)科學(xué)學(xué)院834程序設(shè)計(jì)考研題庫(kù)_第2頁(yè)
山西大學(xué)數(shù)學(xué)科學(xué)學(xué)院834程序設(shè)計(jì)考研題庫(kù)_第3頁(yè)
山西大學(xué)數(shù)學(xué)科學(xué)學(xué)院834程序設(shè)計(jì)考研題庫(kù)_第4頁(yè)
山西大學(xué)數(shù)學(xué)科學(xué)學(xué)院834程序設(shè)計(jì)考研題庫(kù)_第5頁(yè)
已閱讀5頁(yè),還剩43頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2017年山西大學(xué)數(shù)學(xué)科學(xué)學(xué)院834程序設(shè)計(jì)考研題庫(kù)(一)說(shuō)明:①本資料為VIP包過(guò)學(xué)員內(nèi)部使用資料。涵蓋了歷年考研??碱}型和重點(diǎn)題型。一、選擇題I?若有代瞄加+e'!(其中e僅代表自然對(duì)數(shù)的底數(shù),不是變量),則以下能夠正確表示該代數(shù)式的C語(yǔ)言表達(dá)式是( )?A)sqrt(fabs(pow(n,x)+exp(x))) B)sqrt(fabs(pow(n,x)+pow(x,e)))C)gqrt(ab§(iTx+e"x)) D)sqrt(fahs(pow(x,n)+exp(x)))【答案】A[解析]math.h是數(shù)學(xué)運(yùn)算庫(kù)函數(shù)的頭文件名:doublesqn(double) 平方根函數(shù)doublefabs(double) 絕對(duì)值函數(shù)doublepow(doublex.doubley) 返回x>expfdoublex) 返回e*2.有以下程序:律include<stdio.h>main()inia=1.b=0;l<?r(;a<5;a++)iif(a%2==0)break:continue;b+=a;printf("%d\n",b);程序運(yùn)行后的輸出結(jié)果是(TOC\o"1-5"\h\zOl104【答案】A【解析】題for【解析】題for循環(huán)內(nèi)有break和continue語(yǔ)句,且均放在b+=a語(yǔ)句前面,無(wú)論江條件是否滿(mǎn)足,b+二/都不會(huì)被執(zhí)行,因此b值始終為0。3.若有定義語(yǔ)句:ima⑷[10],*P,*q[4]:且兇<4,則錯(cuò)誤的賦值是( )。p=aq[i]=a[i]p=a[i]p=&a[2][I]【答案】A【解析】二維數(shù)組名是指向指針的指針,所以a和q都為指向指針的指針,而p為指向int類(lèi)型的指針,P和a不同類(lèi)型,故A項(xiàng)P=a賦值語(yǔ)句錯(cuò)誤。其余選項(xiàng)可以正確賦值’其中D項(xiàng)是用&返回整數(shù)的地址,然后復(fù)賦值已4.有以下程序:#include<sldio.h>#include<siring,h>char?a="you";char?b="WelcomeyoutoBeijing!";main()Ichar*p;P=b;while(*p!=?a)p++;p+=strlen(a)+1;printf("%s\n”,p);I程序運(yùn)行后的輸出結(jié)果是( \Beijing!youtoBeijing!WelcomeyoutoBeijing!toBeijing!【答案】D【解析】while函數(shù)判斷p指針指向地址的內(nèi)容是否和a指針指向地址的內(nèi)容相等,如果不是,則移動(dòng)指針P+1,當(dāng)P指向%字符串中的y時(shí),和*a首地址元素相等,退出while語(yǔ)句后,p再向右移動(dòng)a字符串長(zhǎng)度+1個(gè)單位地址,此時(shí)p指向?t'?輸岀t及剩余的字符串,D項(xiàng)正確。.有如下定義:structstIinta;floatb;}x[10];FILE*fp;若文件已正確打開(kāi),且數(shù)組x的10個(gè)元素均已賦值,以下將數(shù)組元素寫(xiě)到文件中的語(yǔ)句錯(cuò)誤的是(Xfbr(i=O;i<10;i++)fwrite(x,sizeof(structst).1,fp);(write(x,10?sizeof(structsi).1Jp);fwrite(x,sizeof(structst),10.fp);for(i=0;i<10;i+4)fwrite(&x[i],sizeof(structst),1,fp);【答案】A[解析】A項(xiàng)中,因?yàn)閚=L即每次寫(xiě)入I個(gè)結(jié)構(gòu)體數(shù)據(jù),x是數(shù)組的首地址,因此,每次寫(xiě)入的數(shù)據(jù)都是數(shù)組的首個(gè)結(jié)構(gòu)體元素,沒(méi)有將整個(gè)數(shù)組寫(xiě)入文件中去。.以下可以將任意一個(gè)兩位整數(shù)n的個(gè)位數(shù)與十位數(shù)對(duì)換的表達(dá)式為( )。(n-n/10X10)X](bn/10n-n/10X10+n/10n/10+(n-n/10)(n-n/10)X10+(n/10)【答案】A【解析】A項(xiàng)n/1。得到十位數(shù)字,n-n/10得到個(gè)位數(shù)字,將個(gè)位數(shù)乘以10加上十囈字,(nn-10X10)XIO+n/lO實(shí)現(xiàn)將任意一個(gè)兩位整數(shù)個(gè)位數(shù)與十位數(shù)對(duì)換,A項(xiàng)正確。B項(xiàng)n-n/10X10得到個(gè)位數(shù)字,n/10為十位數(shù)字,n-n/10X10+n/10實(shí)現(xiàn)兩德數(shù)個(gè)隣與十位數(shù)之和,B項(xiàng)錯(cuò)誤。C項(xiàng)n/IB(n-n/10)=n.不能實(shí)現(xiàn)題目中要求,C項(xiàng)錯(cuò)誤。D項(xiàng)n/10是十位數(shù)字,n-n/10為原兩位整數(shù)減去十位數(shù)字,不是個(gè)位數(shù)字,D項(xiàng)錯(cuò)誤。有以下程序:以下聞:#include<stdio.h>#include〈string.h>main()Ichara[10]="abed";printf("%d,%d\n",strlen(a),sizeof(a));TOC\o"1-5"\h\z程序運(yùn)行后的輸出結(jié)果是( \7,44,108,810,10【答案】B【解析】C語(yǔ)言中,strlen()用來(lái)統(tǒng)計(jì)字符串的字符個(gè)數(shù),sizeof()是求為數(shù)組分配的存儲(chǔ)空間大小。該題中字符串P的字符個(gè)數(shù)為4.字符數(shù)組a的大小為10。有以下程序#incJude<stdio.h>voidfun(intn,int*s)Iintf;if(n==l)*s=n+l:elseIfun(n-l.&f);*s二f:I)main()intx=0:fun(4,&x);printf("%TOC\o"1-5"\h\z程序運(yùn)行后的輸出結(jié)果是( X3124【答案】B【解析】函數(shù)9dfun(inmim*s)有兩個(gè)形參,第一個(gè)形參是傳值,第二個(gè)形參是傳引用,在函數(shù)fun內(nèi)部改變、的值,貝IJ在函數(shù)I'un外部也會(huì)發(fā)生相應(yīng)改變。f是函數(shù)內(nèi)部的局部變量,遞歸調(diào)用時(shí),把局部變量f以指針的形式傳入,在下一層函數(shù)中會(huì)對(duì)f進(jìn)行修改,當(dāng)下一層函數(shù)返回后,再把當(dāng)前局部變量I'賦值給形參s。函數(shù)調(diào)用過(guò)程如下表所示。函數(shù)調(diào)用f?sfun(4,&x)22fun(3,&D22fun(2,&f)22funs(1.&f)?2TOC\o"1-5"\h\z.若有定義語(yǔ)句:intx=10:,則表達(dá)式x-=x+x的值為( )。-20-10010【答案】B【解析】因?yàn)?的運(yùn)算優(yōu)先級(jí)高于賦值運(yùn)算符,所以先做x+x結(jié)果為20,再做x-20,結(jié)果為-10賦值給X。.設(shè)有以下定義:charsi(1=“0123”:chars2[]=(*0,,'1','2','3'):則以下敘述正確的是( \數(shù)組si的長(zhǎng)度小于s2的長(zhǎng)度數(shù)組si和s2的長(zhǎng)度相同數(shù)組si的長(zhǎng)度大于s2的長(zhǎng)度數(shù)組si和s2完全等價(jià)【答案】C[解析】為字符數(shù)組si賦值字符串“0123”時(shí),字符串中字符依次放人數(shù)組中后,在最后f字符后要添加一個(gè)結(jié)束字符*\0,?數(shù)組si長(zhǎng)度為5。數(shù)組s2只需要4個(gè)單元即可放下所有初始化值’故數(shù)組長(zhǎng)度為4。所以數(shù)組si的長(zhǎng)度大于S2的長(zhǎng)度,C項(xiàng)正確。兩個(gè)數(shù)組等價(jià)是指兩個(gè)數(shù)組長(zhǎng)度和類(lèi)型以及對(duì)應(yīng)每個(gè)元素值均相同’所以si和82不是完全等價(jià),D項(xiàng)錯(cuò)誤。11.有以下程序:^include<sldio.h>?include〈string.h>inain()Icharxf]="STRING”;k[0]=0;x[I]=:\0';x[2]='0I;printf("%d%d\n",sizeof(x),Mrlen(x))TOC\o"1-5"\h\z程序運(yùn)行后的輸出結(jié)果是( 161706371【答案】B[解析]charx[]="STR]NG”,這時(shí)分配的內(nèi)存就是7個(gè)字節(jié),包括結(jié)束字符,0,無(wú)論之后如何賦值,都不會(huì)改變,sizeof是計(jì)算字符串所占存儲(chǔ)空間的大小,因此sizeof(x)=7,x[0]=0:x[l]='\0':[2]='0'.第一遇到結(jié)束字符’\0'結(jié)束賦值,這時(shí)char刈]為空,strlen(x)求的是字符串的個(gè)數(shù),為0。12.若有定義語(yǔ)句:charstrlO14string*.str2[8].*str3,sir4[10]="string":,庫(kù)函數(shù)strcpy的功能是復(fù)制字符串,以下選項(xiàng)中錯(cuò)誤的函數(shù)調(diào)用是( )。strcpy<str3.strcpy(str2,strcpy<strl.strcpy(str4.“HELLO!”)“HELLO!”)“HELLO!”)“HELLO!M)【答案]A【解析]題目中字符指針str3,沒(méi)有為指針開(kāi)辟內(nèi)存,能作為函數(shù)參數(shù)。13.關(guān)于C語(yǔ)言的變量名,以下敘述正確的是( )。變量名不可以與關(guān)鍵字同名變量名不可以與預(yù)定義標(biāo)識(shí)符同名變量名必須以字母開(kāi)頭變量名是沒(méi)有長(zhǎng)度限制的【答案】A【解析】合法的標(biāo)識(shí)符由字母(大、瀉均可\數(shù)字和下劃線(xiàn)組成,并且必須以字母或下劃線(xiàn)開(kāi)頭。關(guān)鍵字是指被C語(yǔ)言保留的,不能用作其他用途的標(biāo)識(shí)符,它們?cè)诔绦蛑卸即碇潭ǖ暮x,用戶(hù)不可重新定義,A項(xiàng)正確。預(yù)定義標(biāo)識(shí)符是系統(tǒng)已經(jīng)有過(guò)定義的標(biāo)識(shí)符,用戶(hù)可以重新定義,所以可以作為變量名,B項(xiàng)錯(cuò)誤。變量名除了以字母開(kāi)頭以外,還可以以下劃線(xiàn)開(kāi)頭,C項(xiàng)錯(cuò)誤。變量名沒(méi)有長(zhǎng)度限制,但不可超過(guò)編譯器可以辨識(shí)的范圍’D項(xiàng)錯(cuò)誤。.有以下程序:#include<stdio.h>main(),char*mm[4j=t"abed”1234”mnop".”5678”;;char**|)m=mm;inti;for(i=0;i<4;i++)printf("%s",pm[i]+i);printf(”\n”);IITOC\o"1-5"\h\z程序的運(yùn)行結(jié)果是( Xabcdl234mnop5678abcd234op8a2o8alm5【答案】B[解析】程序執(zhí)行過(guò)程為:定義指針數(shù)組,長(zhǎng)度為4,并為其初始化為4個(gè)字符串。定義指向指針的指針變量’并為其初始化為指針數(shù)組首地址。所循環(huán)依次輸岀4個(gè)字符串,第i個(gè)字符串從第i個(gè)下標(biāo)值處開(kāi)始輸出到字符串結(jié)束,即第f字符串輸出abed,第二個(gè)字符串輸出234,第三個(gè)字符串輸出op,第四個(gè)字符串輸出8。程序的運(yùn)行結(jié)果是abcd2340p&故B項(xiàng)正確。.以下敘述中正確的是( )。C程序的基本組成單陳語(yǔ)句C程序中的每一行只能寫(xiě)一條語(yǔ)句簡(jiǎn)單C語(yǔ)句必須以分號(hào)結(jié)束C語(yǔ)言必須在一行內(nèi)寫(xiě)完【答案】C[解析]c程序的基本組成單位是函數(shù),A項(xiàng)錯(cuò)誤:C程序以分號(hào)作為每個(gè)語(yǔ)句結(jié)尾,一行能寫(xiě)多條語(yǔ)句,也可以將f語(yǔ)句分幾行書(shū)寫(xiě),BD兩項(xiàng)錯(cuò)誤:而簡(jiǎn)單C語(yǔ)言語(yǔ)句必須以分號(hào)結(jié)束,所以C項(xiàng)正確。TOC\o"1-5"\h\z.以下選項(xiàng)中?合法的C語(yǔ)言實(shí)數(shù)是( )。3.lc0.4.2c0E137J2E【答案】B【解析】實(shí)型常朦數(shù)形式由十進(jìn)制數(shù)加階碼標(biāo)志飛”或“E”以及階碼(只能為整數(shù),可以帶符號(hào))組成。?2。0為指數(shù)形式實(shí)數(shù),B項(xiàng)正確。3.1e0.4,階數(shù)不是整數(shù),A項(xiàng)錯(cuò)誤。E13階碼標(biāo)志前缺少十進(jìn)制數(shù),C項(xiàng)錯(cuò)誤。7.12E缺少階碼,D項(xiàng)錯(cuò)誤。.以下敘述中正確的是( )。A在C語(yǔ)言程序中,main函數(shù)必須放在其他函數(shù)的最前面每個(gè)后綴為.C的C語(yǔ)言源程序都可以單獨(dú)進(jìn)行編譯C在C語(yǔ)言程序中,只有main函數(shù)才可以單獨(dú)進(jìn)行編譯D.每個(gè)后綴為.C的C語(yǔ)言源程序都應(yīng)該包含一個(gè)main函數(shù)【答案】B[解析】main是主函數(shù)的起始行,每一個(gè)可執(zhí)行的C程序都必須有一個(gè)且只能有一個(gè)主函數(shù)。后綴名為.C的C語(yǔ)言源程^都可以單獨(dú)進(jìn)行編譯。.若變量己正確定義并賦值,則錯(cuò)誤的賦值語(yǔ)句是( )。a=a+1;a=sizeof(double);a=dllc;a+l=a:【答案】D【解析】賦值號(hào)的左邊必須是一代表某個(gè)存儲(chǔ)單元的變量名’賦值號(hào)的右邊必須是C語(yǔ)言中合法的表達(dá)式。賦值運(yùn)算的功能是先求岀右邊表達(dá)式的值,然后把此值賦給賦值號(hào)左邊的變量。.有以下程序:二include<stdio.h>structst: intx.y;)data[2]={1.10.2,20Hmain()structst*p=data;printf(*%d..p->y);printf("%d\n-.(++p)->x);TOC\o"1-5"\h\z新運(yùn)行的結(jié)果是( 110.I20,I10,220,2【答案】c【解析】題目在定義結(jié)構(gòu)體st的同時(shí)便定義了結(jié)構(gòu)體數(shù)組dala0可知. 結(jié)構(gòu)體指針P指向數(shù)組的首地址,指向' 貝脂向dataJ.所以輸出 即輸岀和而「X。.以下敘述中正確的是( )程序設(shè)計(jì)的任務(wù)就是編寫(xiě)程序代碼并上機(jī)調(diào)試程序設(shè)計(jì)的任務(wù)就是確定所用數(shù)據(jù)結(jié)構(gòu)程序設(shè)計(jì)的任務(wù)就是確定所用算法。?心三種說(shuō)法畔完整【答案】D【解析】程序設(shè)計(jì)是指設(shè)計(jì)、編程、調(diào)試程序的方法和過(guò)程。因?yàn)槌绦蚴擒浖闹黧w,軟件的質(zhì)量主要通過(guò)程序的質(zhì)量來(lái)體現(xiàn),在軟件研究中’程序設(shè)計(jì)的工作^常重要,內(nèi)容涉及相關(guān)的基本概念、工具、方法及方法學(xué)。二、設(shè)計(jì)題.請(qǐng)根據(jù)以下各小題的要求設(shè)計(jì)C應(yīng)用程序(包括界面和代碼)。請(qǐng)編寫(xiě)函數(shù)fun( ),它的功能是:將3行4列矩陣x乘以4行3列矩陣y.結(jié)果放在3行3列矩陣xy中。矩陣相乘的基本方法是:矩陣xy中行列下標(biāo)分別為i,j的元素的值,是矩陣'中第i行上4個(gè)元素與矩陣y第j列上4個(gè)元素對(duì)應(yīng)相乘的和。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。試題程序如下:include#includevoidfun(inia[3][4],intb[4][3],intab[3][3])IIvoidmain()IIint43][4]^||.1,|2,l,0,l|,|lt2,0,3ll;inty[4][3]=||l.lj|.10,0,01,|2,1,1|,11,intxy[3][3]=|0;,i.j;clrecr();fun(x.y.xy)printf("axb=ab:(3,3):\n");for(i=0;i<3;i++)Ifor(j=0;j<3;j++)printf("%d-,xy[i][j]);printf("\n");>I【答案】voidfun(inta[3][4],intb[4][3],intah[3][3J)Iintj,k,l;for(k=0;k<3;k++)for(l=0;l<3;l++)

for(j=0;j<4;j++)ab[k][l]+=a[k][j]【解析】本題首先要明確矩陣xy中行列下標(biāo)分別為i,j的元素的值,是矩陣X中第i行上4個(gè)元素與矩陣y第j列上4個(gè)元素對(duì)應(yīng)相乘的和。因此,每個(gè)元素的求解是循環(huán)控制來(lái)實(shí)現(xiàn)的,即ab|k]|l]Mk)[jl*bUI[l]-矩陣ab的每個(gè)元素的表示可用一個(gè)二重循環(huán),整個(gè)函數(shù)是一個(gè)三重循環(huán)的嵌套。22.請(qǐng)編寫(xiě)_個(gè)函數(shù)fun,它的功能是:將一個(gè)表示正整數(shù)的數(shù)字字符串轉(zhuǎn)換為一個(gè)整數(shù)(不得調(diào)用C語(yǔ)言提供的將字符串轉(zhuǎn)換為整數(shù)的函數(shù))。例如,若輸入字符串“1234”,則函數(shù)把它轉(zhuǎn)換為整數(shù)值1234。函數(shù)fun中給出的語(yǔ)句僅供參考。注意部分源程序存在文件PR0G1.C中。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入需要編寫(xiě)的若干語(yǔ)句。給定源程序:#include<stdio.h>include<string.h>longfun(char*p)I/*以下代碼僅供參考*/intijen;/*ten%串長(zhǎng)*/longx=0;len=strlen(p);/*以下完成數(shù)字字符串轉(zhuǎn)換為-個(gè)數(shù)字注意:字符。不是數(shù)字0*/returnx;)mainO/*主函數(shù)*/{chars[6];longn;printf("Enterastring:\n");gets(s);n=fun(s);printf("%l(i\n".n);)【答案】iRW-1iRW-1)Ipx;/?負(fù)數(shù)時(shí)暨flag為-1,/elseif(*p=='+,)/?正數(shù)時(shí)置flag為I?/I件+;iH;G?rt;i<len:i++)I'fUO-叩-療:/,將字符串轉(zhuǎn)成相應(yīng)的整數(shù)WX=X0flng:【解析】if( )語(yǔ)句的作用是判斷該字符串應(yīng)當(dāng)為正數(shù)還是負(fù)數(shù)。注意:*P是f字符(如9、4),并不是一個(gè)數(shù),要將其轉(zhuǎn)成相應(yīng)的數(shù)字需令其減去0(不是AO1).即*P-'O'就得到*P這個(gè)字符的相應(yīng)數(shù)字’如"OF、‘8'-仲8等?!敬鸢浮俊敬鸢浮緼2017年山西大學(xué)數(shù)學(xué)科學(xué)學(xué)院834程序設(shè)計(jì)考研題庫(kù)(二)說(shuō)明:①本資料為VIP包過(guò)學(xué)員內(nèi)部使用資料。涵蓋了歷年考研??碱}型和重點(diǎn)題型。一、選擇題I?有以下程序:#include<stdio.h>main()Iinta=3,b=3;printf("%d\n".a&b);JTOC\o"1-5"\h\z程序運(yùn)行后的輸出結(jié)果是( \6103【答案】D【解析】"&披位與運(yùn)算符。a=3=H8,b=3=118,按位與結(jié)果為11B=3,D項(xiàng)正確。有以下程序:main()#include<stdio.h>Iinta=Itb=1;while(a一)b一;printf("%d,%d\n",a,b);TOC\o"1-5"\h\z新的運(yùn)彳謁果是( \-l,00,0-l,-1l,1【答案】A【解析】本題執(zhí)彳5H程為:極a值為1,執(zhí)行循環(huán),a=0,執(zhí)行b--,b=0,再取a值為0,判斷條件不成立,退出循環(huán),再執(zhí)行卜得到a=-l,最后輸出a=-l,b=0o故A項(xiàng)正確。設(shè)有定義:inta=l.b=2,c=3:以下語(yǔ)句中執(zhí)行效果與其他三個(gè)不同的是( \if(a>b)c=a;a=b:b=c;if<a>b)(c=a,a=b,b=c:}if(a>b)ca.a=b.b=c:if(a〉b)(c=a:a=b:b=c:}【解析】執(zhí)行if語(yǔ)句時(shí),首先計(jì)算緊跟在訂后面一對(duì)圓括號(hào)中的表達(dá)式的值。如果表達(dá)式的值為非零(“真”>則執(zhí)行其后的if子句,然后去執(zhí)行if語(yǔ)句后的下f語(yǔ)句:如果表達(dá)式的值為零("假“、貝螂過(guò)訂子句,直接執(zhí)行訂語(yǔ)句后的下f語(yǔ)句。A項(xiàng)中if子句只有。=4次0。三項(xiàng)中iI'子句包括c=a;a=b;b=c;4.有語(yǔ)句:k=x<y?(y<z?l:0):0:’以下選項(xiàng)中,與此語(yǔ)句功能相同的是( )。if(x<vIv<z)k=l:elsek=0:.if(x<y)k=O:elseif(y<z)k=l;.c.if(x<y)if(y<z)k=l:elsek=0;D.if(x<y&&y<z)k=l:elsek=O:【答案】D【解析】D項(xiàng)正確,題中,先判斷x<y?_如果為假,直接返回0.如果為真’再判斷y<z?如果為真返回為1,否則返回0,綜合所知,只有時(shí)返回1,否則返回0。5.程序中已構(gòu)成如下圖所示的不帶頭結(jié)點(diǎn)的單向鏈表結(jié)構(gòu)’指針變量s、P、q均已正確定義,并用于指向鏈表結(jié)點(diǎn).指針變量s總是作為頭指針指向鏈表的第一個(gè)結(jié)點(diǎn)。若有以下期段q=s;s=s->next;p=s;while(p->next)p=p->nexl;p->next=q:q->next=NULL;該程序段實(shí)現(xiàn)的功能是( \A刪除首結(jié)點(diǎn)尾結(jié)點(diǎn)成為首結(jié)點(diǎn)首結(jié)點(diǎn)成為尾結(jié)點(diǎn)刪除尾結(jié)點(diǎn)【答案】C【解析】進(jìn)過(guò)while循環(huán)后,p指向鏈表的尾結(jié)點(diǎn),P->next=q,是把q置為p的next結(jié)點(diǎn):q->next=NULL.q的next結(jié)點(diǎn)為空,此時(shí)q結(jié)點(diǎn)成為鏈表的尾結(jié)點(diǎn)。6.在源程序的開(kāi)始處加上“#include<stdio.h>”進(jìn)行文件引用的原因以下敘述正確的是( XA.stdio.h文件中包含標(biāo)準(zhǔn)輸入輸出函數(shù)的函數(shù)說(shuō)明’通過(guò)引用此文件以便能正確使用prinff、scanf等函數(shù)B將stdio.h中標(biāo)準(zhǔn)輸入輸出函數(shù)鏈接到編譯生成的可執(zhí)行文件中,以便能正確運(yùn)行C將stdio.h中標(biāo)準(zhǔn)輸入輸出函數(shù)的源程序插入到弓I用處,以便進(jìn)行編譯鏈接D將stdio.h中標(biāo)準(zhǔn)輸入輸出函數(shù)的二進(jìn)制代碼插入到弓I用處,以便進(jìn)行編譯鏈接【解析】Fdio.h-文件中包含標(biāo)準(zhǔn)輸入輸出函數(shù)的函數(shù)說(shuō)明,預(yù)處理指令#include<stdio.h濃指程序可以在該文件中找到printf,scanf等函數(shù),因此答案為A選項(xiàng)。若有定義語(yǔ)句:doublex,y.*px.*py:執(zhí)行px=&x:py=&y;正確的輸入語(yǔ)句是( \A)scanf(”%lf%lf',px.py); B)gcanf(”%f%「&x,&y);C)Hcanf(,,%f%f\x,v); D)scanf(H%If【答案】A【解析】double類(lèi)型,scanf函數(shù)中格式應(yīng)該使用%lf,px中存儲(chǔ)的是x的地址’可以直接在scanf函數(shù)中使用。有以下程序:#includc<stdio.h>main()iints[3][2]=11,2,3,4,5,6:.*ps[3],k;for(k=0;k<3;k++)Ips[k]=8(k];printf(M%dn.*(ps[k]+1));tf1TOC\o"1-5"\h\z程序的運(yùn)行結(jié)果是( 1246I35I23456【答案】A[解析】程序執(zhí)行過(guò)程為:定義二維數(shù)組s與指針數(shù)組ps,for循環(huán)實(shí)現(xiàn)將二維數(shù)組每一行的首地址賦值給對(duì)應(yīng)的指針數(shù)組元素,然后輸岀二維數(shù)組每行的第二個(gè)元素。程序的運(yùn)行結(jié)果是246。.下面選項(xiàng)中關(guān)于位運(yùn)算的敘述正確的是( )。典算符都需要兩個(gè)操作數(shù)位運(yùn)算的對(duì)象只能是整型或字符型數(shù)據(jù)左移運(yùn)算的結(jié)果總是原操作數(shù)據(jù)2倍右移fe算時(shí),尚位總是補(bǔ)0【答案】B【解析】B項(xiàng)正確,C語(yǔ)言中,位運(yùn)算的對(duì)象只能是整型或字符型數(shù)據(jù),不能是其他類(lèi)型的數(shù)據(jù)。A項(xiàng)錯(cuò)誤,位運(yùn)算符中取反操作符只需要f操作符;C項(xiàng)錯(cuò)誤,左移時(shí),若左端移出的部分不包含有效二進(jìn)制數(shù)1,則每左移一位,相當(dāng)于移位對(duì)象乘以2,如果端移出的部分包含有效二進(jìn)制數(shù)1,結(jié)論不成立;D項(xiàng)錯(cuò)誤,右移運(yùn)算時(shí),對(duì)于無(wú)符號(hào)整數(shù)和正整數(shù),高位補(bǔ)0;對(duì)于負(fù)整數(shù),高位補(bǔ)I。.有以下程序#inclade<stdio.h>intf(intn){intt=0.a=5;if(n/2)(inta=6:t+=a++;)else{inta=7:t+=a++;}returnt+a++;Imain()(inis=0.i=0;for(;i<2;i++)s+=f(i);printf("%d\n",s);程序運(yùn)行后的輸出結(jié)果是( 1A.36B.28C.32D.24【答案】D【解析】函數(shù)f可以重寫(xiě)為:Iintf(intn){2intt=0,a=5;3if(n/2!=0){4inta=6;//此時(shí)第2行中定義的a失效5t=t+a;〃t與第4行中定義的a相加6a++;〃第4行定義的a自增7}〃第4行定義的a失效8else(9inta=7;〃此時(shí)第2行中定義的a失效10t=t+a;〃t與第9行中定義的a相加IIa++;〃第9行定義的a自增121〃第9行定義的a失效13inttemp=t+a;與第2行定義的a相加,此時(shí)a=514a++;〃第2行定義的a相加15retunitemp:16}調(diào)用f(0>進(jìn)入第8行的else語(yǔ)句:第10行,t=7;第13行,兩5=12,返回12。調(diào)用f(丨),因?yàn)閍都是函數(shù)f中的局部變量,在f(0)結(jié)束時(shí)都己經(jīng)被銷(xiāo)毀,所以f(1)和f(0)的返回值相同,返回12。s=f(0)+f(l)=24,結(jié)果輸岀240.構(gòu)成C程序的三種基本結(jié)構(gòu)是( )序結(jié)構(gòu)、轉(zhuǎn)移結(jié)構(gòu)、遞歸結(jié)構(gòu)順序結(jié)構(gòu)、嵌套結(jié)構(gòu)、遞歸結(jié)構(gòu)CJ賄鋤勾、選擇結(jié)構(gòu)、循環(huán)鋤勾D蹈結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、鱈結(jié)構(gòu)【答案】C【解析】結(jié)構(gòu)化程序由三種基本結(jié)構(gòu)組成:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。已經(jīng)證明,由三種基本結(jié)構(gòu)組算法可以解決可復(fù)雜的問(wèn)題。.以下選項(xiàng)中不能用作C程序合法常量的是( )o1,234"\123"123"\x7D"【答案】A【解析】常量分為數(shù)值常量和字符串常量,A項(xiàng)錯(cuò)誤。BD兩項(xiàng)為字符常量;C項(xiàng)為數(shù)值常量。.有以下程序:#include<sldio.h>main()Ichara='H';a=(a>='A,&&<=,Z')?(a-'A,+'a'):a;prinlf(c\nM.a);TOC\o"1-5"\h\z程序運(yùn)行后的輸出結(jié)果是( XAaHh【答案】D[解析】首先將H賦給變量a,問(wèn)號(hào)前f表達(dá)式成立,問(wèn)號(hào)后面減去—大寫(xiě)字母A再加上小寫(xiě)字母a實(shí)際是將原來(lái)的大寫(xiě)字母轉(zhuǎn)換成小寫(xiě)字母,即H轉(zhuǎn)換成h,再將結(jié)果賦給a。.以下敘述中錯(cuò)誤的是( )。非零的數(shù)值型常量有正值和負(fù)值的區(qū)分常量是在程序運(yùn)行過(guò)程中值不能被改變的量定義符號(hào)常量必須用類(lèi)型名來(lái)設(shè)定常量的類(lèi)型用符號(hào)名表示的常量叫符號(hào)常量【答案】C【解析】在C語(yǔ)言程序中,可以用一個(gè)符號(hào)名來(lái)代表一個(gè)常量,稱(chēng)為符號(hào)常量,符號(hào)常量在定義是不建’其本身就能表達(dá)其類(lèi)型。15.若函數(shù)中有定義語(yǔ)句intk:.則( )。系統(tǒng)將自動(dòng)給k賦初值。這時(shí)k中的值無(wú)定義系統(tǒng)將自動(dòng)給k賦初值-I這時(shí)k中無(wú)任何值【答案】B[解析]intk;這條語(yǔ)句是定義一個(gè)整型變量k,這是動(dòng)態(tài)定義,編譯程序僅為k開(kāi)辟存儲(chǔ)單元,而沒(méi)有在存儲(chǔ)單元中存放任何初值,此時(shí)變量中的值時(shí)無(wú)意義的。若是靜態(tài)定義,則會(huì)自動(dòng)初始化,其默認(rèn)值為0。.有以下程序:#include<stdio.h>#defineFNA(x)x?x#defineFNB(x)x+xmain()Iinta=2,b=4;printf(”%d,%d\n”,F(xiàn)NA(FNB(a)),FNB(FNA(b)));ITOC\o"1-5"\h\z程序運(yùn)行后的輸出結(jié)果是( 18,1616,328,32I6,16【答案】C【解析】帶參數(shù)的宏定義不是進(jìn)行簡(jiǎn)單的字符串替換,而是要進(jìn)行參數(shù)替換不計(jì)算,只是進(jìn)行簡(jiǎn)單的替換。替換過(guò)程是:用宏調(diào)用提供的實(shí)參字符串,直接置換宏定義命令行中相應(yīng)形參字符串,非形參字符保持不變。FNA(FNB(a))的替換過(guò)程為:FNA(2+2)替換為2+2X2+2,計(jì)算結(jié)果為8。FNB(FNA(b))的替換過(guò)程為:FNB(4*4)替換為4X4+4X4=32。程序運(yùn)行后的輸岀結(jié)果是8,32,故C項(xiàng)正確。.有以下程序#include<stdio.h>main(){inta=3;printf("%(l\n",(a+=a-=a*a));ITOC\o"1-5"\h\z程序運(yùn)行后的輸出結(jié)果是( 1-129OD.3【答案】A【解析】C語(yǔ)言中,表達(dá)式從右向左計(jì)算。a+=a-=a*a;可以寫(xiě)成a-=a*a;a+=a:而心血等價(jià)于a=a-(a*a)=3-(3*3)=-6;a+=a都介于a=a+a=(-6)+(-6)=-12O.以下關(guān)于字符串的敘述中正確的是( )。C語(yǔ)言中有字符串類(lèi)型的常量和變量?jī)蓚€(gè)字符串中的字符個(gè)數(shù)相同時(shí)才能進(jìn)行字符串大小的比較可以用關(guān)系運(yùn)算符對(duì)字符串的大小進(jìn)行比較D左串比空格打頭的字符串小【答案】D【解析】字符串比較的方法是:依次對(duì)si和S2中對(duì)應(yīng)位置上的字符兩兩進(jìn)行比較’當(dāng)出現(xiàn)第一對(duì)不相同的字符時(shí),即由這兩個(gè)字符決定所在串的大小(比較字符大小的依據(jù)是其ASCII碼值\空格是一種字符,所以空串肯定比空格打頭的字符串小。.設(shè)函數(shù)中有整型變量n,為保證其在未賦值的情況下初值為0.應(yīng)選擇的存儲(chǔ)類(lèi)別是( )。autoregisterstaticauto或register【答案】c【解析】靜態(tài)存儲(chǔ)類(lèi)型定義變量在未對(duì)其初始化時(shí)會(huì)對(duì)其初始化為默認(rèn)值’其中而型的默認(rèn)初始化是0,其他選項(xiàng)的存儲(chǔ)類(lèi)型不能保證。.有以下程序:#include<stdio.h>main()Iintx=0,y=6;doIwhile(—y)x++;|while(y―);printf(”%d,%d\n”,x,y);ITOC\o"1-5"\h\z程序的運(yùn)行結(jié)果是( 15.06,05,-16,-I【答案】c【解析】程序執(zhí)行過(guò)程為:執(zhí)行do-while的循環(huán)體:y=5,判斷y為真,x=I;y=4,x=2;y=3,x=3;y=2,x=4;y=l.x=5;y=0,判斷y為假,退出循環(huán)體。判斷do???while條件y=o為假,y—1,退出循環(huán)。輸出x,y為5,-1,故C項(xiàng)正確。二、設(shè)計(jì)題21.請(qǐng)編寫(xiě)一個(gè)函數(shù)曲,它的功能是將SS所指字符串中所有下標(biāo)為奇數(shù)位置的字母轉(zhuǎn)換為大寫(xiě)(若該位置上不是字母,則不轉(zhuǎn)換).例如,若輸入“abc4Efg”,則應(yīng)輸岀“aBc4EFg”。注意部分源程序在文件PROG1.C中。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。鮑麝#include<conio.h>#include<stdio.h>#include<string,h>#include<stdlib.h>voidfiin(char*ss)IIvoidmain()IFILE?wf;chartt[81],s[81]="abc4Efg";system(”CLS");printf("\nPleaseenteranstringwithin80characters:\n"):gets(tt);printf("\n\nAfterchanging,thesiring\n%s".It);fun(tt);printf("\nbecomes\n%s\n",?);/******************************/wf=fopen("out.dat"w");fun(s);fprintf(wf,”%s”,s);fclose(wf);/*****************************/I【答案】voidfun(char?ss)if(ss=NULL)Ireturn;Iinii;for(i=0;8s[ij!='\0';i?+) 所指字符串中所有下標(biāo)為奇數(shù)位置的字號(hào)梏換為大寫(xiě)*/Iif(i%2==l&Mi]>=,a,&&ss[i]<=V)說(shuō)i】=Wi]-32;【解析】題目要求將給定字符串中奇數(shù)位置的字母轉(zhuǎn)換為大寫(xiě),需要先判斷奇數(shù)位置以及此位置的字符是否是/」瀉字母,如果是再通過(guò)其轉(zhuǎn)換方法進(jìn)行轉(zhuǎn)換。c語(yǔ)言中,只要將小寫(xiě)字母減去32即轉(zhuǎn)成大寫(xiě)字母,將大寫(xiě)字母加上32即轉(zhuǎn)成小寫(xiě)字母。程序用if語(yǔ)句實(shí)現(xiàn)轉(zhuǎn)換功能。22.請(qǐng)編寫(xiě)一個(gè)函數(shù),用來(lái)刪除字符串中的所有空格。例如’輸入asdafaaz67,則輸岀為asdafaaz67。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。鮑新:#include<stdio.h>include<ctype.h>#include<conio.h>voidfun(char*slr)I)main()Icharstr(8l];charMsg[]="lnpulastring:";intn;printf(Msg);gets(str);puts(str):fun(str);printfC***str:%s\n'\str):I【答案】voidfun(char*str)(inti=0;char*p=str:while(*p)/*遍歷字符串*/I/*如果當(dāng)前元素不為空格*/if(*p!=*?)I/*將當(dāng)前元素保存到紀(jì)中*/il;Ip++:)岫W字符串最后加上結(jié)束標(biāo)記符?/【解析】題目要求刪除空格’也就是重新保存空格以外的其他字符。通過(guò)循環(huán)刪除字符串中的每f空格,將非空格字符進(jìn)行重新保存。2017年山西大學(xué)數(shù)學(xué)科學(xué)學(xué)院834程序設(shè)計(jì)考研題庫(kù)(三)說(shuō)明:①本資料為VIP包過(guò)學(xué)員內(nèi)部使用資料。涵蓋了歷年考研??碱}型和重點(diǎn)題型。一、選擇題-以下敘述正確的是( )。C程序總是以main( )作為程序執(zhí)行的起始行main( )函數(shù)若不帶參數(shù)’其后面的一對(duì)圓括號(hào)可省略函數(shù)體內(nèi)的定義語(yǔ)句和可執(zhí)行語(yǔ)句允許任意穿插出現(xiàn)C語(yǔ)言中的語(yǔ)句之間必須用分號(hào)作為分隔符【答案】A【解析】main( )函數(shù)后面的括號(hào)告訴編譯器這是f函數(shù),不可以省略,排除B選項(xiàng);在復(fù)合語(yǔ)句中’不僅可以有執(zhí)行語(yǔ)句,還可以有定義語(yǔ)句,定義語(yǔ)句應(yīng)該出現(xiàn)在執(zhí)行語(yǔ)句的前面’故排除C選項(xiàng);C語(yǔ)言中的某些語(yǔ)句可以不用分號(hào)’例如if語(yǔ)句,宏定義,故D選項(xiàng)錯(cuò)誤;答案為A選項(xiàng)。.有以下程序(strcat函數(shù)用以連接兩個(gè)字符串):#include<stdio.h>#include<clype.h>main()chara[20]=”ABCD\0EFG\0”,b[]=”UK”;strcat(a,b);printf("%s\n",a);程序運(yùn)行后的輸出結(jié)果是( \ABCDE\0FG\0IJKABCDIJKUKEFGUK【答案】B[解析]在C語(yǔ)言中,系統(tǒng)在每個(gè)字符串的最后自動(dòng)加入f字符’\0'作為字符串的結(jié)束標(biāo)志。chara[20]="ABCD\0EFG\0"中,當(dāng)遇到就結(jié)束初始化,因此a[]=”ABCD”.b[]=”IJK”.連接這兩個(gè)字符串strcaKa.'\0'b)得到ABCDUK。?若有定義doublea=22:inti=0.k=l8;.則不符合C語(yǔ)言規(guī)定的賦值語(yǔ)句是( )。a=a++.1++-i=(a+k)<=(i+k)i=a%lli=!a【答案】c【解析】C項(xiàng)錯(cuò)誤,在C語(yǔ)言的算術(shù)運(yùn)算符中’取余運(yùn)算符“%”的左右兩側(cè)的兩個(gè)運(yùn)算分量必須題數(shù)。A項(xiàng),賦值運(yùn)算符的優(yōu)先級(jí)高于“,”運(yùn)算法,先進(jìn)行賦值;B項(xiàng),將農(nóng)”右邊的邏輯表達(dá)式的計(jì)算結(jié)果賦給變量i:D項(xiàng),首先對(duì)變量a求邏輯非操作,然后將結(jié)果賦值給變量i4.有如権序:#include<stdio.h>rnain()inta=0,*ptr;ptr=&a;*ptr=3;a=(*ptr)++;printf("%d,%d\n",a,*ptr);TOC\o"1-5"\h\z程序運(yùn)行后的輸岀結(jié)果是( X4,40,1l,40,4【答案】A【解析】程序執(zhí)行過(guò)程為:定義整型變量a=0與指針pt「,使指針指向變量a。對(duì)指針指向的變量進(jìn)行賦值a=3,將指針?biāo)赶蜃兞考?,并賦值給a=4,此時(shí)指針依然指向變量a,輸岀a與指針指向的變量值:4,4,故A項(xiàng)正確。5.下面是有關(guān)C語(yǔ)言字符數(shù)組的描述,其中錯(cuò)誤的是( )。不可以用賦值語(yǔ)句給字符數(shù)組名賦字符串B可以用輸入語(yǔ)句把字符串整體輸入給字符數(shù)組字符數(shù)組中的內(nèi)容不一定是字符串字符數(shù)組只能存放字符串【答案】D[解析】字符數(shù)組可以用來(lái)存放單個(gè)的字符或者字符串。設(shè)a,b,C是整型變量,且已正確賦初值,以下選項(xiàng)中錯(cuò)誤的賦值語(yǔ)句是( )。a=l%(b=c=2):a=(b=3)*c;a=b=c/10:a=2=(b=9)=1;【答案】D[解析]D項(xiàng),"( y具有最高優(yōu)先級(jí),b先賦值9,再根據(jù)賦值運(yùn)算符號(hào)自右向左進(jìn)行賦值,再給b賦值為1,再計(jì)算2=b,賦值運(yùn)算符左邊必須是一個(gè)變量,但數(shù)值2是常量,語(yǔ)法錯(cuò)誤。有以下程序:二incluae<stdio.h-voidfun(intp){intd=2;p=d++;printf(%d.p);}main(){inta=1;fun(a)sprintf(%d\n\a);TOC\o"1-5"\h\z程序運(yùn)行后的輸出結(jié)果是( X32I22122【答案】C[解析】C語(yǔ)言中函數(shù)參數(shù)傳遞滿(mǎn)足“單向傳遞“,實(shí)現(xiàn)傳遞值的功能,實(shí)參能傳給形參,形參卻不能傳回給實(shí)參。fun函數(shù)體內(nèi)輸出p的值為2,并不影響到fun函數(shù)外a的值,a的值在main函數(shù)內(nèi)依然為I。.若有定義語(yǔ)句intkl=10,k2=20;,執(zhí)行表達(dá)式(klkl>k2)&&(k2k2>kl)后,kl和k2的值分別為()。0和10和2010和1I0和20【答案】B【解析】在C語(yǔ)言中,沒(méi)有專(zhuān)門(mén)的“邏輯值”,而是用非。表示“真”,用。表示“假”。根據(jù)優(yōu)先級(jí),先計(jì)算括號(hào)內(nèi)的。括號(hào)內(nèi)先比較心和k2的大小,由于k2〉kl,,故左邊括號(hào)中的kl與k2比較的結(jié)果為假,值為0,再賦值給kl,可得kl的值為0,由于()與任何值相與結(jié)果都是。,故右邊f(xié)括號(hào)不需運(yùn)算,即k2的值不變,仍為20。.以下敘述中正確的是( )OA在scanf函數(shù)的格式串中,必須有與輸入項(xiàng)一對(duì)應(yīng)的格式轉(zhuǎn)換說(shuō)明符只能在printf函數(shù)中指定輸入數(shù)據(jù)的寬度,而不能在scanf函數(shù)中指定輸入數(shù)據(jù)占的寬度C-scanf函數(shù)中的字符串是提示程序員的,輸入數(shù)據(jù)時(shí)不必管它D.復(fù)合語(yǔ)句也被稱(chēng)為語(yǔ)句塊,它至少要包含兩條語(yǔ)句【答案】C【解析】c項(xiàng)正確,scanf函數(shù)中的字符串是為了増加程序的可讀性,并不影響數(shù)據(jù)的輸入。A項(xiàng)錯(cuò)誤,可以在%和格式字符之間加入…號(hào),作用是跳過(guò)對(duì)應(yīng)的輸入數(shù)據(jù):B項(xiàng)錯(cuò)誤,可以在格式字符前加入一正整數(shù)指定輸入數(shù)據(jù)所占的寬度:D項(xiàng)錯(cuò)誤,用一對(duì)花括號(hào)把若干語(yǔ)句括起來(lái)構(gòu)成一條復(fù)合語(yǔ)句。一個(gè)復(fù)合語(yǔ)句在語(yǔ)法上視為一條語(yǔ)句,在一對(duì)花括號(hào)內(nèi)的語(yǔ)句數(shù)量不限。10.以下選項(xiàng)中能表示合法常量的是( )?!癨007”1.5E2.0'\'1,200【答案】A【解析】A項(xiàng),表示的是字符串常量。B項(xiàng),浮點(diǎn)數(shù)的指數(shù)部分應(yīng)該是整型;C項(xiàng),單個(gè)轉(zhuǎn)義符沒(méi)有意義:D項(xiàng),整數(shù)常量中間不能岀現(xiàn)逗號(hào)。11.以下能正確定義字符串的語(yǔ)句是( )Ocharstr[]="\O":charstr=,'kx43";charslr=n;chars(r[]={'\064'!:【答案】A【解析】字符串末尾一定要有結(jié)束標(biāo)記,雙引號(hào)括起來(lái)的字符串系統(tǒng)會(huì)默認(rèn)添加結(jié)束標(biāo)記。A項(xiàng)正確,定義了空字符串str。B項(xiàng)錯(cuò)誤,str是char類(lèi)型變量,不能用字符串為其賦值;C項(xiàng)錯(cuò)誤,字符串應(yīng)該用雙引號(hào)括起來(lái);D項(xiàng)錯(cuò)誤,如果一個(gè)字符數(shù)組用來(lái)作為字符串使用,一定要人為加入'\0',str字符串中str|0]='\064'='4‘,但是str缺少結(jié)束符。12.有以下程序#include<stdio.h>voidswap(char*x,char*y){chart;t=*x;*x=*y;*y=t;Imain()(char*sl=,,abc'\*s2=“123”;swap(sl,s2);printf("%s,%s\n'\sl,s2)I程序執(zhí)行后的輸出結(jié)果是( Xlbc,a23abc,123123,abc321,cba【答案】A【解析】字符串是一個(gè)特殊的數(shù)組,按照數(shù)組的規(guī)則,si應(yīng)該指向的是數(shù)組的首地址,即%bc"的第一個(gè)字符的地址。s2指向的是“123”的第一個(gè)字符的地址。調(diào)用swap函數(shù)之后交換的是兩個(gè)字符串的第—字符W和T的內(nèi)容,因此打印輸岀為A。有以下程序:#include<stdio.h>main()Ichara=4;printf("%d\nM,a=a<<l);tITOC\o"1-5"\h\z聞運(yùn)行的結(jié)果是( 1401684【答案】C【解析】左移T立相當(dāng)于原數(shù)乘以二,右移相當(dāng)于除以二,a?l結(jié)果為4X2=8。沒(méi)有超過(guò)char的類(lèi)型表示范圍,所以輸出8。C語(yǔ)言中字符型變量可以用在任何整型變量可以使用的地方。C語(yǔ)言源程序名的后綴是( )Cexeobjcp【答案】A【解析】C語(yǔ)言源程序名的后綴為.C有以下程序:itincludeVstdio.h>voidfun(mt.intn)inti.t;for(i=0;i<n2;i-??)'t=a[,i':a[i*]=a[n-1-main(34 intk£10]=(1.2.3.4.5.6.7.8.9.10}.!:fun(k.5);for(i=2;i<8;i++)printf(%<f.ki]);printf;程序運(yùn)行的結(jié)果是( X34567878765431098765321678【答案】D【解析】由于數(shù)組名本身是一個(gè)地址,所以在用數(shù)組名作為實(shí)參傳遞時(shí)’對(duì)應(yīng)的形參相當(dāng)于一個(gè)指針變量,在函數(shù)中可以通過(guò)指針變量來(lái)弓I用數(shù)組元素,從而改變?cè)氐闹?。本題中函數(shù)fun的作用是」隨組A的前n個(gè)元素進(jìn)行逆轉(zhuǎn),fun(k,5)的結(jié)果是數(shù)組k的前五個(gè)元素I、2、3、4、5變?yōu)?、4、3、2、1、逆轉(zhuǎn)后,輸出數(shù)組中第3個(gè)至第8個(gè)元素。.有以下程序:#include<stdio.h>#include〈string.h>typedefstructJcharname[9j;charsex;fioatscore[2];:STU;voidf(STUa)ISTUb=\"Zhao",*m?,85.0,90.01;inti;strcpy(a.name.b.name);a.sex=b.sex;for(i=0;i<2;i++)a.score[i]=b.score[i];main()ISTUc=|,,Q>anM,'f',95.0,92.01;f(C);printf("%s,%c,%2.0f,%2.0f\n",c.name.c.sex.c.score[0j,c.scorefI]);I程序的運(yùn)行結(jié)果是( IQian,f,95,92Qian,m,85,90Zhao,f,95.92Zhao,m,85,90【答案】A【解析】結(jié)構(gòu)體作為函數(shù)參數(shù)時(shí)是傳值調(diào)用。本題中,函數(shù)傳遞的是實(shí)參結(jié)構(gòu)體變量中的值。函數(shù)體內(nèi)對(duì)形參結(jié)構(gòu)體變量中任何成員的操作都不會(huì)影響對(duì)應(yīng)實(shí)參中成員的值。因此門(mén))沒(méi)有任何實(shí)際作用。.若有定義語(yǔ)句intx=12,y=8,z;,其后執(zhí)彳福句z=0.9+x/y,則z的值為。TOC\o"1-5"\h\zI.9122.4【答案】B【解析】根據(jù)優(yōu)先級(jí)先計(jì)算x/y,即12/8,由于是整型,故x/y的值為1,接著計(jì)算0.9+1=19由于z定義為整型’故最終結(jié)果為1。18.有以下程序:"include<stdio,h>main()Iinta=1.b=0:for(;a<5;a++)Iif(a%2==0)break;b+=a;printf("%d\n”,b);ITOC\o"1-5"\h\z程序的運(yùn)行結(jié)果是( Xl10O4【答案】A【解析】程序的執(zhí)行過(guò)程為:a=l時(shí),a%2=l條件不成立,執(zhí)彳請(qǐng)句b+=a;得到b=l;a=2時(shí),a%2=0條件成立,執(zhí)行語(yǔ)句break;跳出循環(huán)。輸岀b=l,故A項(xiàng)正確。.有以下程序:^include<sldio.h>intk=5;voidf(int*s)I8=&k;?s=7;I.Imain()Iintin=3;printf("%d,%d\n",m,k);ITOC\o"1-5"\h\z程序運(yùn)行后的輸出結(jié)果是( X3,57,75,73,7【答案】D【解析】函數(shù)f( )的功能是定義一個(gè)整型的指針變量s,指向全局變量k,然后修改S指向地址中的值為7,因此f( )函數(shù)只是修改全局變量k的值為7,與main( )函數(shù)中臨時(shí)變量m無(wú)關(guān),因此最后輸出為3,7。.有以下程序(注:字符a的ASCII碼值為97):^include<stdio.h>main()Ichar?s=I"abc"|doIprintf(H%d°.*s%l0);++a;|while(?s);TOC\o"1-5"\h\z程序運(yùn)行后的輸出結(jié)果是( Xabc7897890979800【答案】B【解析】a、b、c的ASCII值分別為97、98、99。程序中執(zhí)行輸出S中的內(nèi)容與1()進(jìn)行模運(yùn)算后的值,s是一個(gè)指針,首先指向字符a,先執(zhí)行97%10,結(jié)果為7;然后++s,指針指向下一個(gè)字符b,執(zhí)行98%10,結(jié)果為8,直到s所指為空,故最后輸出的結(jié)果為789。二、設(shè)計(jì)題21.請(qǐng)根據(jù)以下各小題的要求設(shè)計(jì)C應(yīng)用程序(包括界面和代碼)。請(qǐng)編寫(xiě)函數(shù)fun( ),該函數(shù)的功能是:計(jì)算并輸岀給定整數(shù)n的所有因子(不包括I和自身)之和。規(guī)定n的值不大于1000。例如,在主函數(shù)中從鍵盤(pán)給n輸入的值為856,則輸出為:sum二763。注意部分源新給出女嚇。請(qǐng)勿改動(dòng)主函數(shù)main( )和其他函數(shù)中的任何內(nèi)容,僅在fun( )函數(shù)的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。試題程序如下:^include<sl(iio.h>ini(un(inin)Ivoidmain()Iintnt?um:printf(nInputn:n);scanf(”%d",&n);sum=fun(n);printf("sum=%d\n",sum);I【答案】intfun(intn)ints=0,i;for(i=2;i<=n-I;i++)if(n%i=0)s+=i;returns;【解析】本題的設(shè)計(jì)思路是:①遍歷從2到M的所有整數(shù);②用條件語(yǔ)句找出能被n整除的整數(shù)i,并累加求和;③用return語(yǔ)句返回因子的和。22.規(guī)定輸入的字符串中只包含字母和*號(hào)。請(qǐng)編寫(xiě)函數(shù)fun,其功能是:使字符串中尾部的李號(hào)不多于n個(gè)若多于n個(gè),則刪除多余的點(diǎn)號(hào);若少于或等于n個(gè),則不做任何操作,字符串中間和前面的*號(hào)不刪除。例如,字符串中的內(nèi)容為“****A+BC*DEF*G*******”,若n的值為4,刪除后,字符串中的內(nèi)容應(yīng);“****A*BC*DEF*G****”;若n的值為7,則字符串中的內(nèi)容仍為“****A*BC*DEF*G*******”n的值在:函數(shù)中輸入。編寫(xiě)函數(shù)時(shí)不得使用C語(yǔ)言提供的字符串函數(shù)。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主畫(huà)數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。試題程序:#include<stdio.h>voidfunfchar*a,intn)main()(chars[81];intn:printf("Entera^tring:\n");printlf"Entern:");sranf(',%(l".&n);fun(s,n);printi'C'Thestringafterdeleted:\n");puLs(s);)【答案】void(im(char*a.intn)Iinti=O.k=0;char*p,*1;p=l=a:while(*t)t++:while(*t=='**)if(k>n)[while(*p&&p<t+n+1)(a[i]=*p;i++:p++:I明迎:【解析】通過(guò)while循環(huán)統(tǒng)計(jì)字符串尾部號(hào)*的個(gè)數(shù),然后通過(guò)if語(yǔ)句比較尾部*號(hào)數(shù)是否多于n個(gè),若大于則保留n個(gè)*號(hào)和其余字符。2017年山西大學(xué)數(shù)學(xué)科學(xué)學(xué)院834程序設(shè)計(jì)考研題庫(kù)(四)說(shuō)明:①本資料為VIP包過(guò)學(xué)員內(nèi)部使用資料。涵蓋了歷年考研??碱}型和重點(diǎn)題型。一、選擇題?有以下程序段:charname[20::intnum:scanf("namc=%snum=%d”.name.&num):當(dāng)執(zhí)行上述程序段,并從鍵盤(pán)輸入:name=Lilinum=1001<回車(chē)〉后,name的值為( \Liliname=LiliLilinum=name=Lilinum=l001【答案】A【解析】在C語(yǔ)言中輸入多個(gè)字符串時(shí),系統(tǒng)會(huì)把空格字符作為輸入的字符串之間的分隔符。本題中,由于輸入兩個(gè)變量,所以中間應(yīng)該以回車(chē)鍵為間隔,當(dāng)從鍵盤(pán)輸入name=Lilinum=IOOl只是輸入第f變量,并且只將Lili賦值給了name。.以下能夠?qū)崿F(xiàn)計(jì)算5!的程序段是( )O(A)intfac=1,k=0; (B)intfac=0,k=l;dolk;fac*=k;lwhile(k<5);do|fack;k++;Iwhile(k<5);(C)intfac=1.k=1; (D)intfac=1.k=0;do|k;fac*=^;|while(k<=5);do|fac*=k;k|while(k<5);【答案】A[解析】do-while循環(huán)語(yǔ)句形式為:do{循環(huán)體}while(表達(dá)式),執(zhí)行過(guò)程為:首先執(zhí)行循環(huán)體,之后判斷表達(dá)式,成立(非0.則再一次執(zhí)行循環(huán)體’不成立(0.則退出循環(huán)。A選項(xiàng):k=l,fac=1*I,判斷kv5,條件成立進(jìn)行下一次循環(huán),直到k=5,fac=l*2*3*4*5,版5不成立退出循環(huán),實(shí)現(xiàn)計(jì)算5!,A選項(xiàng)正確。B選項(xiàng):fae從()開(kāi)始,做乘法一直都是0,無(wú)法實(shí)現(xiàn)5!,錯(cuò)誤。C選項(xiàng):k=2,fac=l*2.循環(huán)條件成立,直到k=6,fac=l*2*3*4*5*6才因循環(huán)條件不成立退出循環(huán),實(shí)現(xiàn)6!,錯(cuò)誤。D選項(xiàng):k=0,fae=l*0=0,之后做乘法一直為0,無(wú)法實(shí)現(xiàn)5!.錯(cuò)誤。故選擇A選項(xiàng)。3.有以下程序:#include<stdio.h>voidf(intx[],intn)Iif(n>1))n-1);printf(rt%d,",x[O]);Ielseprintf("%d,”,x[0]);Imain()I =11,2,3.4.5,6};f(z.6);printf("\ntt);I程序的運(yùn)行結(jié)果是( X6,5,4,3,2,1,l,1l.1,1,1,1.1.l,2,3,4,5,6,【答案】A【解析】本題中遞歸函數(shù)調(diào)用執(zhí)行過(guò)程為:f(z.6)->f 5)>f(&z[2].4)->f(&z[3].3)->f (&z[4],2)->f(&z[5],I),輸岀x[Oh也即z[5〕=6,返回執(zhí)行f(&H4],2)之后的輸出x[0]語(yǔ)句,即5,同理再返回上一f函數(shù).依次輸出4,3,2,1。4.若要實(shí)現(xiàn)total=l+2+3+4+5求和,以下程序段錯(cuò)誤的是( )。inti=1,total=1;while(i<5)Itotal+=i;i+=l;Iinti=1,total=0;while(i<=5)Itotal+=i;i+=l;iinti=0,total=0;while(i<5)ii+=I;total+=i;}inti=0,total=0;while(i<=5)Itotal+=i;i+=l;}【答案】A【解析】A項(xiàng)執(zhí)行過(guò)程為:i=l,total=L判斷while循環(huán)劉牛1<5成立,total=l+l,i=2;判斷循環(huán)條件執(zhí)行函數(shù)體,直到i=4,total=l+l+2+3+4,i=5;i=5循環(huán)條件不成立,退出循環(huán),A項(xiàng)不能實(shí)現(xiàn)題目要求,錯(cuò)誤。B項(xiàng)執(zhí)行過(guò)程:i=l,total=0,1<=5成立,total=0+l=l,i=2;直到i=5,total=I+2+3+4+5,i=6;i=6條件不成立,退出循環(huán),程序正確。C項(xiàng)執(zhí)行過(guò)程:i=0.total=<).(R5成立,i=l,total=1i:直到i=5‘total=1+2+344+5:i=5劉牛不成立’退出循環(huán)’¥^^正確。D項(xiàng)執(zhí)彳5^;程:i=0.t()ial=0,0<=5成立?total=0,i=5,total=l+2+3+4+5.i=6;i=6條件不成立,退出循環(huán),程序正確。.以下敘述錯(cuò)誤的是( )。未經(jīng)賦值的全局變量值不確定未經(jīng)賦值的auto變量值不確定未經(jīng)賦值的register變量值不確定未經(jīng)賦值的靜態(tài)局部變量值為0【答案】A【解析】C語(yǔ)言中,系統(tǒng)將未經(jīng)賦初值的全局變量默認(rèn)為0,答案為A選項(xiàng)。.有以下程序(程序中庫(kù)函數(shù)iMwench)用以判斷ch中的字符是否為小寫(xiě)字母):#include<skiio.h>#includeVctype.h>voidfun(char*p)Iinti=0;while(p[ij)Iif(p[i]=="&&islower(p[i-l]))p[i-1]=p[i-1]-'a'+'A1;i++;IImain()IcharsiI100|="abcdEFG!”fun(si);printf("%s\n",sl);程序運(yùn)行后的輸出結(jié)果是( \abedEFG!AbCdEFg!aBcDEFG!abedEFg!【答案】c【解析】fun函數(shù)實(shí)現(xiàn)的功能是將字符串中空格前面的小寫(xiě)字母轉(zhuǎn)換為對(duì)應(yīng)的大寫(xiě)字母,“abedEFG!中需要改變的是b和d,因此為aBcDEFG!。.有如下程序:#include<stdio.h>structSIintx,y;I;main()structSdata[2]=}4,3,1,9};inti;for(i=0;i<2;i++)printf("%d,%d;",data[i].x,data[i].y?1);printf("\n");I程序運(yùn)行后的輸岀結(jié)果是( X4,1:1,4:4,1:2.4;4.3:1.9:4,3:2,3;【答案】A【解析】“>>”右移運(yùn)算符。程序執(zhí)行過(guò)程為:定義結(jié)構(gòu)體數(shù)組data,并且初始化,則data[O].x=4.data[O]?y=3.data[l].x=l,data[l].y=9.For循環(huán)依次輸出結(jié)構(gòu)體變量的成員與經(jīng)過(guò)位運(yùn)算之后的結(jié)果o3=llB,9=1001B.data[01.y?l=l,data[l],y>>1=4“程序運(yùn)行后輸出結(jié)果為:4,1,1,4。.有以下定義語(yǔ)句,編譯時(shí)會(huì)出現(xiàn)編譯錯(cuò)誤的是( )。chara='a'chara=*\n*;D.chara='\x2d'chara=,aa*;【答案】c【解析】本題中a為f字符型變量,只能為其賦值一個(gè)字符常量。C項(xiàng)中Wa.不是字符常量,所以會(huì)編譯錯(cuò)誤。BD兩項(xiàng)為轉(zhuǎn)義字符’編譯可以通過(guò)。.以下選項(xiàng)中敘述正確的是( )。C語(yǔ)言的標(biāo)識(shí)符可分為關(guān)鍵字、預(yù)定義標(biāo)識(shí)符和用戶(hù)標(biāo)識(shí)符三類(lèi)C語(yǔ)言的標(biāo)識(shí)符可分為語(yǔ)句、變量和關(guān)鍵字三類(lèi)C語(yǔ)言的標(biāo)識(shí)符可分為函數(shù)名、變量和預(yù)定義標(biāo)識(shí)符三類(lèi)C語(yǔ)言的標(biāo)識(shí)符可分為運(yùn)算符、用戶(hù)標(biāo)識(shí)符和關(guān)鍵字三類(lèi)【答案】A[解析]C語(yǔ)言的標(biāo)識(shí)符可分為關(guān)鍵字、預(yù)定義標(biāo)識(shí)符和用戶(hù)標(biāo)識(shí)符三類(lèi),A項(xiàng)正確,B、C、D項(xiàng)鮑.有以下程序:#include<stdio.h>main()IFILE?fp;inti,a[6]={1,2,3,4,5,6」;fp=fopen("d2.dat".Hw+H);for(i=0;i<6;i++)fprintf(fp,"%d\n",a[i]);rewind(fp);£or(i=0;i<6;i++)fscanf(fp,”%d”,&a[5-i]);fclose(fp);for(i=0;i<6;i++)printf("%d,",a[i]);I程序運(yùn)行后的結(jié)果是( 14.5.6.1.2,3.1,2,3,3,2,).1.2,3.4.5.6.6,5.4,3,2.I,【答案】D【解析】main函數(shù)首先將數(shù)組a中的元素值寫(xiě)入文件,再將文件中的元素倒序存放在數(shù)組a中,最后答應(yīng)數(shù)組a的值,最終輸出為6,5,4,3,2,1。11.有以下程序#include<stdio.h>main()(inta=7:while(a;printf("%d\n",a);)TOC\o"1-5"\h\z程序運(yùn)行后的輸出結(jié)果是( X-lOl7【答案】A【解析】當(dāng)a為。時(shí),a-表達(dá)式為0,條件為假,循環(huán)結(jié)束,執(zhí)行判斷條件后a為-1。'2.有以下程序:#include<stdio.h>main()Ichar*pl=0;ini?p2=0;float*p3=0;printf("%d,%d,%d\n",sizeof(pl),sizeof(p2).sizeof(p3));I程序運(yùn)行后的輸出結(jié)果是( 1l,4,84,4,4l,2.4l.1,4【答案】B【解析】sizeof( )函數(shù)表示求該變量所占字節(jié)空間,同時(shí)f指針變量占用4字節(jié)長(zhǎng)度[在Win32系統(tǒng)中],因此輸出為4。.有以下程序#include<stdio.h>main()Iinii.s=O,i[]=fl,2.3.4.5.6.7.8.91;for(i=0;i<9:i+=2)fi+=*(t+i);printf("%d\n",s);)TOC\o"1-5"\h\z程序執(zhí)行后的輸出結(jié)果是( 125204536【答案】A【解析】%司.等價(jià)于臥依次訪(fǎng)問(wèn)數(shù)組t中的偶數(shù)位元素,s=l(O|+t[2|+t|41+U61+t|81=1+3+5+7+9=25。.設(shè)有定義:in(k=0;TOC\o"1-5"\h\z以下選項(xiàng)的四個(gè)表達(dá)式中與其他三個(gè)表達(dá)式的值不相同的是( I++kk+=lk++k+1【答案】c【解析】I表達(dá)式值為k的值,其余為k,l的值。.設(shè)a,b,c是整型變量且均已賦值,則以下選項(xiàng)中錯(cuò)誤的賦值語(yǔ)句是( )0a=<b=3)=1;a=(b=2)+c:a=b=c+10;a=1+(b=c=2):【答案】A【解析】賦值運(yùn)算結(jié)合性為由右向左結(jié)合,賦值運(yùn)算符左值為變量,右值為變量或常量,且左右兩邊數(shù)據(jù)類(lèi)型相同才能實(shí)現(xiàn)賦值。A項(xiàng)中,賦值運(yùn)算(b=3)=1,左值為表達(dá)式,不是變量不能被賦值,A項(xiàng)錯(cuò)誤。B項(xiàng)運(yùn)算過(guò)程為,先賦值陣2,再計(jì)算b+c,將結(jié)果賦給a,是正確的賦值語(yǔ)句。C項(xiàng)運(yùn)算過(guò)程為.先計(jì)算c+IO將結(jié)果賦給b,再將b賦給a,是正確的賦值語(yǔ)句。D項(xiàng)運(yùn)算過(guò)程為,先將2曜c,胡各c賦給b,然后計(jì)算l_b,將結(jié)果睽編証確的賦值語(yǔ)句。.下列敘述中正確的是( )。A每個(gè)C程序文件中都必須要有一個(gè)main函數(shù)B在C程序中main函數(shù)的位置是固定的C.C程序中所有函數(shù)之間都可以相互調(diào)用D在C程序的函數(shù)中不能定義另f函數(shù)【答案】D[解析]D項(xiàng)正確,C語(yǔ)言語(yǔ)法規(guī)定,在函數(shù)中不能定義其他函數(shù)。A項(xiàng)錯(cuò)誤,C程序必須要有一個(gè)main函數(shù),但并不是每個(gè)文件中都要有;B項(xiàng)錯(cuò)誤,main函數(shù)的位置沒(méi)有特殊要求;C項(xiàng)錯(cuò)誤,從其他函數(shù)中不能調(diào)用main函數(shù)。.在以下程序:"include<stdio.h>main()Iinta=I.b=0:iff?a)bi:elseif(a==O)if(a)b+=2;elseb+=3;printf(”%d\iT.b)TOC\o"1-5"\h\z程序運(yùn)行后的輸出結(jié)果是( \0I23【答案】A【解析】if(!a>不滿(mǎn)足跳出,if(a==O)不滿(mǎn)足,跳出if-&循環(huán),并沒(méi)有往下執(zhí)行,因此b值沒(méi)有改變。.以下敘述中正確的是( )。在算法設(shè)計(jì)時(shí),可以把復(fù)雜彳琦分解成一些簡(jiǎn)單的子任務(wù)B在C語(yǔ)言程序設(shè)計(jì)中,所有函數(shù)必須保存在—源文件中只要包含了三種基本結(jié)構(gòu)的算法就是結(jié)構(gòu)礎(chǔ)序結(jié)構(gòu)化程序必須包含所有的三種基本結(jié)構(gòu),缺一不可【答案】A【解析】A項(xiàng)正確,模塊化的程序設(shè)計(jì)方法;B項(xiàng)錯(cuò)誤,C語(yǔ)言中,函數(shù)可以放在不同的源文件中:CD兩項(xiàng)錯(cuò)誤,由三種基本結(jié)構(gòu)所構(gòu)成的程序稱(chēng)為結(jié)構(gòu)化程序,三種基本結(jié)構(gòu)可以任意組合。TOC\o"1-5"\h\z.以下選項(xiàng)中合法的標(biāo)識(shí)符是( )o1_11-1111 【答案】C[解析]C語(yǔ)言中標(biāo)識(shí)符的命名規(guī)則是:標(biāo)識(shí)符由字母、數(shù)字和下畫(huà)線(xiàn)組成,并且第一個(gè)字符必須是字母或下畫(huà)線(xiàn)。C語(yǔ)言的標(biāo)識(shí)符是區(qū)分大/」瀉字母的。.有以下程序:#include<stdio.h>main()inia=1,b=2;while(a<6)ib+=a;a+=2;b%=10;Iprintf("%d.%d\n",a,b):TOC\o"1-5"\h\z程序運(yùn)行后的輸出結(jié)果是( \5,117,17,116,1【答案】B【解析】第—'次循環(huán),a=l,b=b+a=3,a=a+2=3,b=b%10=3;第二次循環(huán),a=3,b=b+a=6,a=a+2=5.b=b%10=6;第二次循環(huán),a=5,b=b+a=lha=a+2=7,b=b%10=1;結(jié)束循環(huán)。二、設(shè)計(jì)題.程序定義了NXN的二維數(shù)組,并在主函數(shù)中自動(dòng)賦值。請(qǐng)編寫(xiě)函數(shù)訕(inla||[N|.ini2,該函數(shù)的功能是使數(shù)組左下半三角元素中的值乘以n。例如’若n的值為3,a數(shù)組中的值為:則返回主程序后a數(shù)組中的值應(yīng)為:(3 9 7'6 9 8J21518,注意:部分源程序給岀如下。請(qǐng)勿改動(dòng)函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。試題程*#include<stdio.h>#include<conio.h>"include<stdlib.h>#defineN5voidfun(inta[][NJ,intn)IImain()Iinta[N][N],n,i,j;printf(*******Thearray*****\nM):for(i=0;i<N;i++)Ifor(j=0;j<N;j++)Ia[j]=rand()%IO;printf("%4d\a[i][j]);Iprintf(”\nH);In=rand()%4;printf("n=%4d\n",n);fun(a.n);printf("*****THERESULT*****\n”);for(i=0;i<N;i++)for(j=O;j<N;j++)printf(”%4d”,a[i][j]);printf("\nM);I【答案】voidfun(inta[][N],intn)Iinti,j;if(a==NULL)return;for(i=0;i<N;i++)fbr(j=O;j<=i;j++)/*矩形的下三角時(shí),積相乘*/a[i][j]=a[i][j]?n;I[解析】首先從數(shù)組中找出要被乘以n的元素,即找出將被挑出的元素在原數(shù)組中的分布規(guī)律。通過(guò)觀察得出’要被處理的元素下標(biāo)值的范圍是每行中從第一元素開(kāi)始,直到列數(shù)等于該行行數(shù)時(shí)為止。找到這個(gè)規(guī)律后,依次從數(shù)組中取得符合要求的元素,然后乘以n。22.請(qǐng)根據(jù)以下各小題的要求設(shè)計(jì)C應(yīng)用程序(包括界面和代碼)0請(qǐng)編寫(xiě)函數(shù)fun( ),它的功能是統(tǒng)計(jì)各年齡段的人數(shù)。N個(gè)年齡通過(guò)調(diào)用隨機(jī)函數(shù)獲得,并放在主函數(shù)的age數(shù)組中;要求函數(shù)把。至9歲年齡段的人數(shù)放在叩WP,把10至19歲年齡段的人數(shù)放在岫中,把20至29歲年齡段的人數(shù)放在d|2]中,其余依次類(lèi)推,把100歲(含100歲)以上年齡的人數(shù)放在叩0]中。結(jié)果在主函數(shù)中輸出。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main( )和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫(xiě)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論