大學(xué)計(jì)算機(jī)二級(jí)C語(yǔ)言考試福建省計(jì)算機(jī)二級(jí)c語(yǔ)言模擬卷試題匯總_第1頁(yè)
大學(xué)計(jì)算機(jī)二級(jí)C語(yǔ)言考試福建省計(jì)算機(jī)二級(jí)c語(yǔ)言模擬卷試題匯總_第2頁(yè)
大學(xué)計(jì)算機(jī)二級(jí)C語(yǔ)言考試福建省計(jì)算機(jī)二級(jí)c語(yǔ)言模擬卷試題匯總_第3頁(yè)
大學(xué)計(jì)算機(jī)二級(jí)C語(yǔ)言考試福建省計(jì)算機(jī)二級(jí)c語(yǔ)言模擬卷試題匯總_第4頁(yè)
大學(xué)計(jì)算機(jī)二級(jí)C語(yǔ)言考試福建省計(jì)算機(jī)二級(jí)c語(yǔ)言模擬卷試題匯總_第5頁(yè)
已閱讀5頁(yè),還剩87頁(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)介

第12章福建省C語(yǔ)言等級(jí)筆試模擬試卷12.1要點(diǎn)導(dǎo)讀C語(yǔ)言二級(jí)等級(jí)考試的筆試時(shí)間為120分鐘,題型有選擇題與填空題兩種。選擇題每題1.5分,共40題,滿分60分;填空題每空2分,共20空,滿分40分。C語(yǔ)言筆試的選擇題每題提供A、B、C、D四個(gè)答案供考生選擇,四個(gè)答案中只有一個(gè)是正確的,考生需用鉛筆在答題卡上對(duì)應(yīng)位置涂黑所選答案的字母。C語(yǔ)言筆試的填空題答案,考生須清楚地寫在答題紙上,每空可能有多種寫法,人工判卷時(shí)會(huì)正確處理??忌谕瓿蛇x擇題時(shí),可采用排除法,先否定干擾性小的答案,對(duì)相似而又把握不定的答案,即干擾性強(qiáng)的答案,務(wù)必仔細(xì)分辨。對(duì)填空題,考生首先要看請(qǐng)題意,在題意的指導(dǎo)下,讀懂程序,聯(lián)系上、下語(yǔ)句,然后再著手填寫。12.2試卷(1)選擇題(本大題共40個(gè)選項(xiàng),[1】?【40】每個(gè)選擇項(xiàng)1.5分,共60分).下列屬于C語(yǔ)言的是[1].[1]A)printf("%d\n",a) B)#include<stdio.h>C)a=b;b=c;c=a; D)/*Thisisaprogram*/.設(shè)有語(yǔ)句intx=2,y=3;,則表達(dá)式x=(y==3)的值是[2】。2] A)0 B)1 C)2 D)3.C語(yǔ)言的下列運(yùn)算符中,優(yōu)先級(jí)最高的運(yùn)算符是【3】。3] A)++ B)+= C)|| D)!=.已知A的ASCII碼的十進(jìn)制值為65,O的ASCII碼的十進(jìn)制值為48,則以下程序運(yùn)行結(jié)果是【4】。main(){charchl,ch2;chl=A'+5?3;

ch2='A'+'6'?3;printf(n%d,%c\n*',chl,ch2);)[4]A)67,D)[4]A)67,DB)C,DC)C,68D)67,68.在C程序中,設(shè)一表達(dá)式含有ini、long、unsigned和char類型的常數(shù)和變量,則表達(dá)式的最后運(yùn)算結(jié)果是[5],這四種類型的轉(zhuǎn)換規(guī)律是[6L[5][6]A)intB)charC)unsigned[5][6]A)intB)charC)unsignedD)longA)int->unsigned->long->charC)char->int->unsigned->longB)char->int->long->unsignedD)char->unsigned->long->int6,若a、b均為整數(shù)且a#b,bWO,則表達(dá)式a/b*b+a%b的值是[7]oA)aC)a被b除的余數(shù)部分B)bD)a被b除商的整數(shù)部分7.下列語(yǔ)句中,符合C語(yǔ)言語(yǔ)法的賦值語(yǔ)句是A)aC)a被b除的余數(shù)部分B)bD)a被b除商的整數(shù)部分7.下列語(yǔ)句中,符合C語(yǔ)言語(yǔ)法的賦值語(yǔ)句是171。A)a=7+b+c=a+7;C)a=7+b,b++,a+7;B)a=7+b++=a+7;D)a=7=b,c=a+7;8.為表示x2y2z,須用的C語(yǔ)言表達(dá)式為191A)(x>=y)&&(y>=z)

C)x>=y>=zB)(x>=y)AND(y>=x)D)(x>=y)&(y>=z)inta,b;,用語(yǔ)句scanf('%d%d”,&b);輸入a、b值時(shí),不能作為輸入數(shù)據(jù)分隔符的是[101[10]A)空格B)回車D)[Tab]10.以下程序的運(yùn)行結(jié)果是[I1Lmain(){inta=-l,b=4,k;k=((a++<=0)&&(!b—<=0));printf(,,%d%d%d,',k,a,b);}A)003B)012C)103D)11211.以下程序的運(yùn)行結(jié)果是}A)003B)012C)103D)11211.以下程序的運(yùn)行結(jié)果是【12】。main(){intx=023;printf("%d”,x);}A)35 B)1912.sizeof(double)是【13】。A)一種函數(shù)調(diào)用C)B)23D)023一個(gè)雙精度表達(dá)式C)一個(gè)整型表達(dá)式下程序運(yùn)行時(shí),若從鍵盤輸入5,main(){inta;scanf("%d”,&a);if(a++>5)printf(H%d\n",a);elseprintf(n%d\nn,a-);}D)一個(gè)不合法的表達(dá)式則輸出結(jié)果是【14】。A)7B)4C)D)C)一個(gè)整型表達(dá)式下程序運(yùn)行時(shí),若從鍵盤輸入5,main(){inta;scanf("%d”,&a);if(a++>5)printf(H%d\n",a);elseprintf(n%d\nn,a-);}D)一個(gè)不合法的表達(dá)式則輸出結(jié)果是【14】。A)7B)4C)D)14.以下程序運(yùn)行后,a的值是【15】。main(){inta,b;for(a=l,b=2;a<=100;a++)if(b>=20)break;if(b%3==l){b+=3;continue;}b+=5;A)10B)9C)D)15.以下程序段的運(yùn)行結(jié)果是【16】。intx=3;do{printf(n%3d,x-=2);}while(!(-x));A)1B)30C)死循環(huán)D)1-216.下列程序段中,非死循環(huán)的是【17】。A)inti=100;while(1){i=i%100+1;if(i>=100)break;)intk=0;

do{ints=10;while(++s%2+s%2)++k;}while(k>=0);printf(Hd\nn,k);s++;17.設(shè)已定義chars[]="\"Name\\Address\023\n";,則字符串所占的字節(jié)數(shù)是【18】。A)19B)15C)18D)1418.以下程序段的運(yùn)行結(jié)果是【19】。main(){inta[]={2,4.6,8,10},y=l,x;for(x=0;x<3;x++)y+=a[x+l];printf("%d\n",y);A)17 B)18 C)19 D)2019.已定義charc[]="Fujian";inti;,則下列函數(shù)調(diào)用中錯(cuò)誤的是【20】。A)printf("%s",c); B)for(i=0;i<8;i++)printf("%c",c[i]);C)puts(c); D)for(i=0;i<8;i++)puts(c[i]);定義charx[8];inti;,為了給該數(shù)組賦值,下列語(yǔ)句正確的是【21[21]A)x[8]="TurboC"; B)x="TurboC";C)x[]="TurboC"; D)for(i=0;i<7;i++)x[i]=getchar();下程序運(yùn)行結(jié)果是【22】。main(){charaD[5]={"ABCD","1234","abed","5678","EFGH");inti;for(i=0;i<3;i++)printf("%s",a[i]);A)Ala B)ABCD1234abcdC)ABC D)ABCD1234abcd5678EFGH22.設(shè)inta[][4]={0,0};,則下列描述錯(cuò)誤的是:【23】。A)數(shù)組a的每個(gè)元素都可得到初值0B)二維數(shù)組a的第一維大小為1C)數(shù)組a的行數(shù)為1D)只有元素a[0]⑼和可得到初值0,其余元素均得不到初值023.設(shè)有下列語(yǔ)句,則【24】是對(duì)a數(shù)組元素的不正確引用,其中0Wi<10。intall0]={0,1,2,34,5,6,7,8,9},*p=a;A)a[p-a] B)*(&a[i]) C)p[i] D)*(*(a+i))24.若有以下程序:main{charch[]="Iamstudent!",*p;p=ch;printf("%x\n",p);printf("%x\n",p+9);其中有兩個(gè)printf(),如果第一個(gè)printf()運(yùn)行結(jié)果是ffd6,則第二個(gè)printf()運(yùn)行結(jié)果是【25】。A)ffdf B)ffe8 C)ffd6 D)ffcf25.以下程序的運(yùn)行結(jié)果是【26】。main(){inti;charaanPXW/cVdVeVf};char(*p)[3]=aa;for(i=0;i<2;i++)if(i==O)aa[i][i+1]=**(p++);printf(H%c\nH,**p);A)a B)b C)d D)c26.設(shè)有下列語(yǔ)句:charstrl[]=',stringM,str2[8],*str3,*str4=HstringM;則【27】是對(duì)庫(kù)函數(shù)strcpy的不正確調(diào)用。此函數(shù)用來(lái)復(fù)制字符串。A)strcpy(str3,"HELLO3M); B)strcpy(str2,UHELLO2U);C)strcpy(strl,"HELLOT'); D)strcpy(str4,UHELLO4M);27.以下程序是將一個(gè)整數(shù)存放到一個(gè)數(shù)組中,存放時(shí)按逆序存放,例如483存放成384請(qǐng)選擇填空完善程序。voidconvert(char*a,intn){inti;if((i=n/10)!=0)convert([28],i);*a=n%10+,0,;charstr[10]="main(){intnumber;scanf("%d”,&number);convert(str,number);puts(str);A)a++ B)a+1 C)a- D)a-128.以下程序的運(yùn)行結(jié)果是【29】。fun3(intx){staticinta=3;a+=x;returna;main(){intk=2,m=l,n;n=fun3(k);n=fun3(m);printf(,'%d\n'',n);A)3 B)4 C)6 D)929.以下程序的運(yùn)行結(jié)果是【30】。voidast(intx,inty,int*cp,int*dp)*cp=x+y;*dp=x-y;main(){inta=4,b=3,c,d;ast(a,b,&c,&d);printf(u%d,%d\nn,c,d);【30]A)7,1B)1,7C)7,-1D)c、d未賦值,編譯出錯(cuò)30.以下程序的運(yùn)行結(jié)果是【31】。main(){intx=l,y=2,z;z=x>y?4-+x:++y;prinlf("%d,%d,%d\n”,x,y,z);A)1,2,3B)1,3,3C)2,3,3D)2,2,331.若有以下程序段,則z的二進(jìn)制值是【32】。intx=3,y=2,z;z=xAy?2;A)0000000000001011 B)0000000000000100C)0000000011110100 D)000000000000000132.以下程序段的運(yùn)行結(jié)果是【33】。main(){inti=4,j;j=i;pic(i+2*j-2;*');

putchar('\n');for(j-=2;j>=0;j-){pic(3-j/1);pic(i+2*j,putchar('\n');)pic(intlen,charc)intk;for(k=1;k<=len;k++)putchar(c);)B)D)A)*B)D)***********33.指出以下程序所指處的運(yùn)行結(jié)果。voidfl(intx,inty,int*sum){*sum=x+y;;++x;++y;voidf2(inta,inib,int*product){*product=a*b;a+二b;b-=a;main(){inta=10,b=20,c=100,(*f)();f=fl;(*D(a,b,&c);/*運(yùn)行結(jié)果是[34]*///*運(yùn)行結(jié)果是[34]*//?運(yùn)行結(jié)果是[35]*/f=f2;(*f)(a,b,&c);printf(n%d,%d,%d\n,\a,b,c);A)11,21,100 B)11,21,30 C)10,20,30 D)11,21,33A)30,-10,300 B)30,-10,200 C)33,-12,231 D)10,20,20034.以下程序中的循環(huán)執(zhí)行了【36】次。defineN2defineMN+ldefineNUM(M+l)*M/2main(){inti,n=0;fbr(i=0;i<NUM;i++)n++;primf("%d\n”,n);A)5 B)6 C)8 D)935.編譯預(yù)處理命令以[37]結(jié)尾。A); B). C)\0 D)回車鍵36.若定義如下結(jié)構(gòu),則能打印出字母M的語(yǔ)句是【38】。structperson{charname[9];intage;structpersonclass[10]={,'Wujun',,20,"Liudan",23,"MalingH,21,^zhangming0^};A)printf(M%c\nH,class[3].name); B)printf("%c\n”,class⑵.name[0]);C)printf("%c\n”,class⑵.name。]); D)printf(M%c\n\class[3].name[l]);37.以下程序段的運(yùn)行結(jié)果是【39】。enumweekday{aa,bb=2,cc,dd,ee}week=ee;printf(M%d\nH,week);A)ee B)5 C)2 D)438.以下程序的功能是【40】。#include<stdio.h>main(){FILE*fp;longintn;fp=fopen(,'wj.txt,',"rbn);fseek(fp,O,SEEK_END);n=ftell(fp);fclose(fp);printf("%kT,n);A)計(jì)算文件wj.txt的起始地址 B)計(jì)算文件wj.txt的終止地址C)計(jì)算文件wj.txt的長(zhǎng)度 D)將文件指針定位到文件末尾填空題(本大題共20個(gè)空,每個(gè)空2分,共40分。請(qǐng)將答案寫在答題卡對(duì)應(yīng)欄中,答在試卷上不得分).以下程序的運(yùn)行結(jié)果是(1Lmain()floata=365.7189;intb=12,c;c=(int)a+b;printf(Ha=%.2f,b=%d,c=%d\n",a,b,c);.堆棧是一種先進(jìn)后出的數(shù)據(jù)結(jié)構(gòu)。以下程序模擬堆棧。#defineN10main()inta[NJ;inti,*p=a;while(p<[2])scanf(n%d”,p++); /*壓棧*/while(p>a)printf(H%d[3]); /*出棧*/.將指定的字符串用冒泡排序法從大到小排序。main(){char*str='*VisualFoxproM,[4];intn,i;n=[5];while(n—>1)for(i=0;i<n;i++)if(str[i]<str[i+l]){temp=str[i];str[i]=str[i+l];str[i+l]=temp;}printf(n%s\n",str);.以下程序的功能是將用戶運(yùn)行程序時(shí)鍵入的參數(shù)作為字符串連接起來(lái)#include<string.h>main(intargc,char*argv[]){inti;fbr(i=1;i<argc-l;i++)strcat(argv[l],[6]);printf(M%s\nH,argv[1]);.以下程序的運(yùn)行結(jié)果是[71#definePR(ar)printf("%d”,ar)main()intj,a[]={1,3,5,7,9,11,15),*p=a;for(j=3,j;j-)caseLease2:PR(*p++);break;.以下程序?qū)崿F(xiàn)從10個(gè)數(shù)中找出最大值和最小值。intmax,min;find_max_min(int*p,intn)max=min=*p;for(q=p;q<[8];q++)if([9])max=*q;elseif(min>*q)min=*q;main()inti,num[10];printf("Input10numbers:");for(i=0;i<10;i++)scanf(n%dn,&num[i]);find_max_min([10],10);printf(,'max=%d,num=%d\n,',max,min);.以下程序是將1到9這9個(gè)數(shù)字分成三個(gè)3位數(shù),要求第一個(gè)3位數(shù)正好是第二個(gè)3位數(shù)的二倍,是第三個(gè)3位數(shù)的三倍(重復(fù)的數(shù)應(yīng)剔除)。根據(jù)題意,只要確定第一個(gè)3位數(shù)后,再計(jì)算另外兩個(gè)數(shù),而第一個(gè)3位數(shù)可設(shè)置在(111-333)范圍內(nèi)。inta[9];main()intm;for(m=111;mv=333;m++)if(ok(m,a)&&ok(2*m,a+3)&&ok(3*m,[11]))printf(,,%d,%d,%d\n",m,2*m,3*m);ok(intt,int*z)/*分解t,存入z指向的三個(gè)數(shù)組元素,若滿足,要求返回1*/int*pl,*p2;for(p1=z;p1<z+3;p1++)*pl=t%10; /*分解整數(shù)m*/t=[12];for(p2=a;p2<pl;p2++) /*查詢分解出的數(shù)字是否重復(fù)*/if(*pl==0||[13])return0;[14];.以下程序的運(yùn)行結(jié)果是如下矩陣。矩陣中的每個(gè)元素的形成規(guī)律是:正對(duì)角線和其對(duì)角線以上的元素其值為1,其他元素值為:行下標(biāo)-列下標(biāo)+1。1111121111321114321154321main()intij,a[5][5];for(i=0;i<=4;i++)for(j=0;j<5;j++)if([15])a[i]|j]=l;else[16];for(i=0;i<5;i++)for(j=0;j<5;j++)printf(,%2d,,,a[i]|jj);printf(H\nM);.以下程序通過(guò)指針連接兩個(gè)字符串。charscat(char*strl,char*str2)/*函數(shù)返回指向strl指針*/char*p=strl;while(*p!=[17])p++;while(*p++=[18]); /*將str2連接到strl的后面*/returnstrl;main()chara[5O],b[3O];printf(uEnterstring1:");scanf(n%sH,a);printf(nEnterstring2:");scanf(,'%s',,b);printf(,,a+b=%s\nu,scat(a,b);.以下程序用來(lái)統(tǒng)計(jì)已建好的單向鏈表中結(jié)點(diǎn)的個(gè)數(shù)。其中head指向鏈表首結(jié)點(diǎn)count用來(lái)統(tǒng)計(jì)結(jié)點(diǎn)個(gè)數(shù)。structnodechardata;structnode*next;main()structnode*p,*head;intcount=0;p=head;while(p!=[19])count++;p=[20];printf(,'%d\n'',count);參考答案與分析.選擇題:(每題1.5分)C分析:C語(yǔ)言的語(yǔ)句以結(jié)束,所以只有答案C是對(duì)的。B分析:y==3是關(guān)系運(yùn)算符,其值或1或0,此題為1。【3】A分析:參見《C語(yǔ)言程序設(shè)計(jì)與應(yīng)用教程》附錄E。A分析:C語(yǔ)言中的字符是以ASCH碼值存放在內(nèi)存中的。D分析:C語(yǔ)言的規(guī)定,參見《C語(yǔ)言程序設(shè)計(jì)與應(yīng)用教程》圖2.6。C分析:C語(yǔ)言的規(guī)定,同[5]。A分析:設(shè)?=3/1),則a%b為a-c*b,代入原式c*b+a-c*b,結(jié)果為a。C分析:賦值語(yǔ)句的左端應(yīng)為變量,因此答案A、B都是錯(cuò)誤的。答案C、D是逗號(hào)表達(dá)式,其計(jì)算原則是從左至右,而D中是將b賦給常量7,是錯(cuò)誤的。答案C是正確的。A分析:C語(yǔ)言語(yǔ)法規(guī)定。[101B分析:C語(yǔ)言語(yǔ)法規(guī)定,按其輸入格式從鍵盤輸入數(shù)據(jù)時(shí),只能以空格、回車及Tab間隔各數(shù)據(jù)項(xiàng)。C分析:在邏輯“與”表達(dá)式中,a經(jīng)a++運(yùn)算后為0,而a++的值仍為-1,b經(jīng)b-運(yùn)算后為3,致使與邏輯表達(dá)式的兩端均為非零值,所以k為1。B分析:x的初值為八進(jìn)制數(shù),其二進(jìn)制為0000000000010011,計(jì)算各位1對(duì)應(yīng)的十進(jìn)制數(shù),相加即得。C分析:sizeof是一個(gè)運(yùn)算符,它用來(lái)計(jì)算括號(hào)內(nèi)的數(shù)據(jù)類型在內(nèi)存中所占據(jù)的字節(jié)數(shù)。D分析:見第3章參考答案3.2。D分析:本題與第3章的3.11相似,但在本題中,循環(huán)一開始,b+=5語(yǔ)句被執(zhí)行,b的初值從2開始,b值的變化為2、7、10、13、16、19、22,所以a的值為7。D分析:所用的是do-while循環(huán),第一次輸出x的值為1,而-x表達(dá)式值為0,經(jīng)非運(yùn)算后為1;第二次輸出x的值為-2,再經(jīng)-x,其表達(dá)式為非。值,再非運(yùn)算為0,退出循環(huán)。A分析:答案D中無(wú)循環(huán)條件與循環(huán)變量增量,明顯是死循環(huán),答案B、C中循環(huán)變量一直使循環(huán)條件成立,也屬無(wú)限循環(huán)情況。而答案A中雖循環(huán)條件是永真值,但有if語(yǔ)句,當(dāng)i增加到一定值時(shí),退出循環(huán)。B分析:注意轉(zhuǎn)義字符的使用,其中'"、*\\\'\023\、江均為一個(gè)字符。C分析:整型變量y是求a數(shù)組中0元素之后的3個(gè)元素之和再加1,即1+4+6+8的值。D分析:函數(shù)puts是用來(lái)輸出字符串的,而不能用于輸出字符。D分析:數(shù)組名是地址常量,不能再被賦值,而字符數(shù)組元素又不能用來(lái)存放字符串,只能存放字符,所以答案A、B、C都是錯(cuò)的,只有答案D是正確的。B分析:對(duì)于二維數(shù)組,其元素為一維數(shù)組,它表示行地址,根據(jù)行地址可輸出該行的字符串。D分析:根據(jù)二維數(shù)組初始化的含義,若有inta[][4]={0,0};,則表示其元素a[0][0]=0,a[0][l]=0oD分析:對(duì)一維數(shù)組的引用可用下標(biāo)法與指針法,答案A、B、C是下標(biāo)法。a[p-a]在本題表示a[0]元素,*(&a[i])展開后為a[i],*與&運(yùn)算符相互抵消,所以a[i]表示i元素,p[i]是用指針表示的i元素,而答案D就不是表示數(shù)組元素的表達(dá)式了。A分析:第一個(gè)輸出函數(shù)輸出的是字符數(shù)組的首地址,第二個(gè)輸出函數(shù)輸出的是離首地址9個(gè)元素的地址,而每個(gè)字符所占字節(jié)數(shù)為1,所以,輸出的地址應(yīng)為ffd6+9,在十六進(jìn)制中15表示為f,運(yùn)算得ffdf。C分析:本題采用數(shù)組指針p指向二維數(shù)組的首地址,而數(shù)組指針相當(dāng)于二級(jí)指針,利用兩個(gè)“*”運(yùn)算符訪問(wèn)二維數(shù)組元素。本程序中,用for循環(huán)對(duì)aa⑼⑴元素重新賦值,即aa[O][l]='a',此時(shí)p下移一行,指向d元素。A分析:答案A中,str3是指針變量,在使用之前,它并未見賦值,即沒有指向,因此是錯(cuò)誤的引用。B分析:本程序是convert函數(shù)的遞歸調(diào)用,利用n/10去掉右邊的一位數(shù),只要能不斷地去掉右邊的一位數(shù),就不斷調(diào)用函數(shù)本身。例如,483f48f4,每次調(diào)用時(shí),將得到的新數(shù)(48、4)與數(shù)組str的下一個(gè)元素地址作為實(shí)參傳遞(str[l],str[2]的地址),直到n/10為0(即4/10=0),此時(shí)就執(zhí)行*a=n%10+O。由于調(diào)用了convert函數(shù)3次,就對(duì)應(yīng)要執(zhí)行3次,也即等價(jià)于str[2]=4%10+0,str[l]=48%lO+'O',str⑼=483%10+'O',實(shí)際上是str[2]='4',str⑴=8,str[0]='3',【29】C分析:通過(guò)main。函數(shù)對(duì)fun3函數(shù)調(diào)用兩次,第一次調(diào)用傳遞函數(shù)的k參數(shù),在fun3函數(shù)中,a變量定義為靜態(tài)型的,初值為3,經(jīng)計(jì)算得到5,保持到下次使用;第二次調(diào)用fun3函數(shù)時(shí),傳遞的是m參數(shù),a經(jīng)計(jì)算得到6。A分析:調(diào)用函數(shù)ast時(shí),c、d用地址傳遞,所以c、d的值可以在被調(diào)函數(shù)中改變。B分析:在三目運(yùn)算符“?:”中,x>y不成立,取++y的值,而++x不需要計(jì)算,所以x為原值1,y為3,z也為3。A分析:求位運(yùn)算時(shí),要化為二進(jìn)制形式。x(=3)的二進(jìn)制數(shù)為00000011,y(=2)的二進(jìn)制數(shù)為00000010,移位運(yùn)算符“<<”的優(yōu)先級(jí)高于異或運(yùn)算符“八”,所以先進(jìn)行y?2運(yùn)算,得到00001000,再與x按位異或,得到00001011(高8位全為0,略去)。D分析:在main函數(shù)中多次調(diào)用pic函數(shù),pic函數(shù)根據(jù)不同的數(shù)據(jù),輸出不同個(gè)數(shù)的"*【34]C[35]D分析:本題是函數(shù)指針變量f的應(yīng)用。若£=門,則f就指向fl函數(shù)的入口地址,而(*f)(a,b,&c)等價(jià)于fl(a,b,&c)函數(shù)的調(diào)用。若f=f2,則f指向f2函數(shù)的入口地址,此時(shí)(*f)(a,b,&c)又等價(jià)于f2(a,b,&c)函數(shù)的調(diào)用?!?6】C分析:在for循環(huán)中表達(dá)式i<NUM進(jìn)行宏展開為i<(M+l)*M/2f(N+l+l)*N+l/2f(2+l+l)*2+l/2f8。[371D分析:C語(yǔ)言規(guī)定?!?8】B分析:M字母在class結(jié)構(gòu)數(shù)組的class⑵.name[O]中,注意結(jié)構(gòu)成員的表示方法?!?9】B分析:枚舉中,每個(gè)枚舉常量可由系統(tǒng)給定,也可由用戶設(shè)置,但遵守后一枚舉常量為前一枚舉常量加1的原則。bb由用戶設(shè)定為2,cc為3,dd為4,ee為5。C分析:fseek函數(shù)是源文件指針移動(dòng)的函數(shù),fseek(fp,0,SEEK_END)表示源文件指針從文件尾移動(dòng)0個(gè)字節(jié),因而文件指針當(dāng)前是指向文件尾。ftell函數(shù)是用來(lái)測(cè)定該文件指針當(dāng)前的位置,也即文件尾位置,所以它表示了文件wj.txt的文件長(zhǎng)度。2.填空題:(每題2分,所有答案均區(qū)分大小寫)[IJa=365.72,b=12,c=377分析:a是實(shí)型變量,經(jīng)(int)a強(qiáng)制轉(zhuǎn)換為整型與b整型變量相加,賦給c整型變量,a本身仍為實(shí)型變量。a+N分析:用p指針變量指向a數(shù)組,通過(guò)p的移動(dòng),將數(shù)據(jù)依次壓入數(shù)組各元素的地址中,a[0]的數(shù)據(jù)先得到,然后依次得到a[l]、a[2]……元素的值,p指針變量一直下移指向最后一個(gè)元素即a[9]為止。*(-p)分析:p指針指向最后一個(gè)元素,利用while循環(huán)與輸出函數(shù),經(jīng)--p操作,先輸出a[9],然后依次輸出a⑻,…,a[0]。temp分析:在程序中有temp變量在使用,因而必須先定義。strlen(str)分析:本題是排序題,必須對(duì)其所有元素遍歷,因此,就需要知道所給字符串的長(zhǎng)度。argv[i+l]分析:本題考查帶參數(shù)的main函數(shù),其參數(shù)由命令行輸入的字符串決定,argc是輸入字符串的個(gè)數(shù)(其中第一個(gè)字符串必須是該文件名),argv是指針數(shù)組,每個(gè)元素都是一個(gè)輸入的字符串。103分析:for循環(huán)的初值是從3開始的,所以首先執(zhí)行case3,輸出p指針變量指向的首元素I,但隨后該元素值要減1。當(dāng)j為2時(shí),p指向的仍是首元素,只是其值已變?yōu)?;隨后p下移指向a[l]元素。當(dāng)j為1時(shí),輸出a[l]的值3,p指針又要下移指向a⑵,但此時(shí)j已為0,循環(huán)結(jié)束,所以本題的輸出為103。p+n分析:max、min變量為全局變量,初值都具有num數(shù)組的nun[0]值(p指針變量指向Inum數(shù)組),而q指針變量與p都指向num數(shù)組,在for循環(huán)中,p指針指向不變,而q指針變量移動(dòng),直到后一個(gè)數(shù)組元素為止,所以,p+n是q的判斷條件。max<*q分析:此處可以從下面的min>*q得到提示。num分析:因?yàn)樾螀⑹莗指針變量,所對(duì)應(yīng)的實(shí)參必然是數(shù)組名或指針變量,而主函數(shù)中并無(wú)指針變量,所以就一定是數(shù)組名了。a+6分析:根據(jù)題目要求,每一個(gè)數(shù)是由3位組成,在第二個(gè)數(shù)中已看到是a+3,第三個(gè)數(shù)必然是a+6。t/10分析:因?yàn)閜指針變量指向a數(shù)組,需要將整數(shù)m右邊的一位數(shù)存放在a數(shù)組的對(duì)應(yīng)元素中,所以,t在不斷變化,取t/10才能用t%10不斷取出右邊的一位數(shù)。*p2==*pl分析:為排出重復(fù)出現(xiàn)的數(shù)字。return1分析:與【13】相反,當(dāng)不是重復(fù)數(shù)字,則是所需的數(shù),返回值為真。i<=j分析:因?yàn)橐笳龑?duì)角線和對(duì)角線以上的元素為1,則其行數(shù)必定小于等于列數(shù)?!?6]a[i]|j]=i-j+l分析:根據(jù)題目給出的算法可知。分析:先將p指針變量移至字符串的結(jié)尾符。*str2++分析:因p已移至strl所指字符串的結(jié)尾,再將str2所指的字符一個(gè)個(gè)地接到strl的尾上,str2指針變量要不斷移動(dòng)。NULL分析:本題是單向鏈表,p結(jié)構(gòu)指針變量指向頭結(jié)點(diǎn),通過(guò)循環(huán),使p不斷指向下一個(gè)結(jié)點(diǎn),直到鏈表尾。p->next分析:讓p不斷指向下一個(gè)結(jié)點(diǎn),它是本結(jié)點(diǎn)的結(jié)構(gòu)指針變量next,其成員用,next表示。12.3試卷(2)選擇題(本大題共40個(gè)選項(xiàng),[1】?[40]每個(gè)選擇項(xiàng)1.5分,共60分).在C語(yǔ)言中,用戶能使用的合法標(biāo)識(shí)符是[DoA)姓名 B)-xyzC)5i D)For2.執(zhí)行語(yǔ)句printf("%d\n",strlen("abc\x41\n"));的輸出結(jié)果是[2]?[2]A)5C)abcAB)7D)abc\x413.在C語(yǔ)言中,合法的字符常量是[3]o【3】A)字B)“A"C)"ABC"D)\x41'4.C語(yǔ)言中簡(jiǎn)單數(shù)據(jù)類型包括[41[4]A)整型、實(shí)型、字符型B)整型、實(shí)型、邏輯型C)整型、字符型、邏輯型D)整型、實(shí)型、邏輯型、字符型5.在C語(yǔ)言中,不合法的實(shí)型常量是【51[5]A)-0.123B)-.123C)-1.23e-lD)-123e-3.06.以下關(guān)于C語(yǔ)言變量的敘述,錯(cuò)誤的是【6】。A)變量名必須由字母或下劃線開頭B)變量按所定義的類型存放數(shù)據(jù)C)不同基本類型的變量之間不能混合運(yùn)算D)變量的類型確定了變量的取值范圍7.以下整數(shù)值中,不正確的八進(jìn)制或十六進(jìn)制數(shù)是[7LA)0x9a B)012C)-0x3A D)0908.下列i、j、k均為整型變量,選項(xiàng)中不正確的C語(yǔ)言賦值語(yǔ)句是[81A)i+l=k; B)i=j=k=1;C)i=j+=++k; D)j=i+l==i++;9.以下程序的運(yùn)行結(jié)果是[91main(){inta=l,b=2,c;c=a<b?3:a>=b?a:b;printf(',%d\nn,c);}]A)0 B)1C)2 D)3設(shè)E為表達(dá)式,以下與do…while(E);不等價(jià)的語(yǔ)句是【10】。A)do…while(!E==0);C)dowhile(E==0);11.設(shè)以下程序段中的變量都是int類型sum=pad=5;pAd=sum++,pAd++,++pAd;printf(H%d\n*\pad);A)7C)512.以下程序的輸出結(jié)果為【12】。main(){inti=59;printf(H%5o,%-10d,%x\nH,i,i,i);A)73,59 ,3bC)00073, 59,3B13.以下程序的運(yùn)行結(jié)果是【13】。main(){unsigneda=0x3ef,b;b=a?2;printf(',%x,%x\nn,a,b);A)3ef,fbC)fbc,3ef下程序的運(yùn)行結(jié)果是【14】。main(){inta,b,c;B)do…while(E>0||E<0);D)do…while(E!=0);則輸出的結(jié)果是【11】。B)6D)4B)073,59 ,0x3bD)73 , 59,3BB)3ef,fbcD)fbc,fbca=b=c=1;if(a++||++b)C++;printf(n%d,%d,%d\n”,a,b,c);A) 2,1,2 B) 1,2,1C) 2,2,2 D) 2,2,115.以下在定義一維數(shù)組a的同時(shí),給a數(shù)組所有元素賦初值0,正確的語(yǔ)句是【15】。A) inta[8]={0}; B) inta[8]=0,0,0,0,0,0,0,0;C) inta[8]={ }; D) inta[8]=0;.以下對(duì)C語(yǔ)言字符數(shù)組描述:【16],是正確的。A)可以用length函數(shù)計(jì)算字符數(shù)組中字符串的長(zhǎng)度B)使用printf函數(shù)整體輸出字符數(shù)組中的字符串時(shí),遇到字符、(V結(jié)束輸出C)可以在賦值語(yǔ)句中通過(guò)賦值運(yùn)算符“二”對(duì)字符數(shù)組整體賦值D)字符數(shù)組只能存放字符串,不能存放字符.有以下程序:main(){intc;while((c=getchar())!=*\n'){switch?2'){case0::putchar(c+4);:putchar(c+4);break;:putchar(c+3);:putchar(c+2);break;printf(H\nH);當(dāng)輸入:247〈回車〉,程序的輸出結(jié)果是【17】。]A)689 B)6689C)66778 D)66887以下程序的輸出結(jié)果是【18】。#defineSUM(y)1+ymain(){intx=2;printf("%d\n”,SUM⑸*x);A)10 B)11C)12 D)1519.以下程序的輸出結(jié)果是【19】。main(){inti=l,j=3;printf("%d,H,i++);{inti=0;i+=j*2;printf(n%d,%d;;i,j);printf("%d,%dH,i,j);A) 1,631,3 B) 1,6,323C) 1,636,3 D) 173,2,320.以下運(yùn)算符中,優(yōu)先級(jí)最高的運(yùn)算符是【20】。A) <= B) &&C) = D) /21.以下程序的輸出結(jié)果是【21】。main(){inta=10,b=20;swap(&a,&b);printf("%d,%d\nH,a,b);swap(int*p,int*q){intt;t=*p;*p=*q;*q=t;]A)10,10 B)20,20C)10,20 D)20,10以下程序的輸出結(jié)果是【22】。main(){inta,b;for(a=l,b=1;a<=100;a++){if(b>=20)break;if(b%3==l){b+=3;continue;}b-=5;printf(n%d\n'\a);A)7 B)8C)9 D)1023.以下不能對(duì)二維數(shù)組a進(jìn)行正確初始化的語(yǔ)句是:【23】。A)inta[3][2]={0};inta[][2]={l,2,3,4,5);inta[3U2]={{1,2},{3,4},{5,6}};inta[3][2]={{1},{3,4,5});24.若a[U4]={1,2,3,4,5,6,7,8,9};,則a數(shù)組第一維的大小是【24】。A)1 B)2C)3 D)無(wú)確定值25.以下程序的運(yùn)行結(jié)果是:【25】。main(){unionu_type{inti;doublex;floatf;structstr_type{charstr[100];unionu_typeu[2];:m-Wtype));A) 100 B) 116C) 120 D) 200下對(duì)枚舉類型進(jìn)行定義,不正確的是【26】。A) enum b {1,2, 3}; B) enuma {A, B,C};C) enum c {D=3, E,F}; D) enumd {X=0,Y=5,Z=9};27.若有以下定義和語(yǔ)句,且0Wi<4,0Wj<3,則不能訪問(wèn)a數(shù)組中的元素的是【27】。inti,(*p)[3],a[][3]={1,2,3,4,5,6,7,8,9,10,11,12);p=a;A)*(*(a+i)+j) B)p[ij[j]C)(*(p+i))m D)P[i]+j下程序的輸出結(jié)果是【28】。main(){printf("%d\nn,fac(5));fac(intn){ints;if(n==1)return1;elsereturnn*fac(n-l);[28]A)120 B)60C)6 D)1.循環(huán)語(yǔ)句循環(huán)體中執(zhí)行continue語(yǔ)句,其作用是【29】。【29】A)立即終止程序運(yùn)行B)繼續(xù)執(zhí)行continue語(yǔ)句之后的循環(huán)體各語(yǔ)句C)結(jié)束本次循環(huán)D)結(jié)束本次循環(huán),跳出循環(huán).運(yùn)行以下程序,輸出結(jié)果是a=5,b=4,則輸入數(shù)據(jù)的形式應(yīng)該是【30】。main(){inta,b;scanf(H%d,b=%dn,&a,&b);printf(Ha=%d,b=%d\n",a,b);[30]A)54 B)5,4C)5b=4 D)5,b=431.以下程序的輸出結(jié)果是【31】。main(){unionexample{struct{intx;inty;}in;inta[2];}e={0,0);e.a[0]=l;e.a[l]=2;printf(n%d,%d\n",e.in.x,e.in.y);[31]A)2,1 B)0,0C)1,2 D)0,132.以下程序運(yùn)行后,輸出的結(jié)果是【32】。func(inta){staticintm=0;m+=a;return(m);main(){intk=4,p;p=func(k);printf("%d,M,p);p=func(k);printf(',%d\n,\p);[32]A)4,4 B)0,4C)4,8 D)8,833.標(biāo)準(zhǔn)函數(shù)fgets(s,n,f)的功能是【33】。【33】A)從文件f中讀取長(zhǎng)度為n的字符串存入指針s所指的內(nèi)存B)從文件f中讀取長(zhǎng)度不超過(guò)n-1的字符串存入指針s所指的內(nèi)存C)從文件f中讀取n個(gè)字符串存入指針s所指的內(nèi)存D)從文件f中讀取長(zhǎng)度為n-1的字符串存入指針s所指的內(nèi)存34.以下關(guān)于指針概念的敘述中,錯(cuò)誤的是【341【34】A)一個(gè)指針變量只能指向同一類型的變量B)一個(gè)變量的地址稱為該變量的指針C)兩個(gè)同類型的指針變量可以作加減運(yùn)算D)任何指針變量都可以與空指針NULL進(jìn)行比較35.執(zhí)行下列語(yǔ)句組后,*a、*p、**p的值分別為【35】。inti,a[]={0,1,2,3,4},*p[5];fbr(i=0;i<5;i++)p[i]=a+i;A)0、0、0 B)0、數(shù)組a的首地址、0C)0、1、2 D)0、數(shù)組a的首地址、數(shù)組p的首地址36.以下程序的運(yùn)行結(jié)果是【36】。main(){charch[7]=,,12xy89n;inti,s=0;for(i=0;ch[i];i++)if(ch[i]>=O&&ch[i]<=,9,)s=10*s+ch[i]-'O';printf("%d\n';s);A)12 B)xyC)12xy89 D)1289下程序運(yùn)行后,輸出的結(jié)果是【37】。main(){inty=18,i=O,j,a[8J;do{a[i]=y%2;i++;y=y/2;}while(y>=l);for(j=i-l;j>=0;j-)printf("%d",a(j]);printf(',\nn);A)10010 B)01001C)00110 D)1010038.設(shè)有以下程序:main(){charal[80],a2[80],*sl=al,*s2=a2;gets(sl);gets(s2);if(!strcmp(sl,s2))printf(M*H);elseprintff鏟);printf(',%d\n,\strlen(strcat(sl,s2)));如果從鍵盤上輸入:averv回車)averv空格>v回車〉則輸出的結(jié)果是【38】。A)*8 B)#9C)#8 D)*939.以下程序運(yùn)行后,輸出的結(jié)果是【39】。fun(char*w){chart,*sl,*s2;for(sl=w,s2=w+strlen(s1)-1;sl<s2;sl++,s2—){t=*sl;*sl=*s2;

*s2=t;}}main(){char*p="12345";fun(p);puts(p);}【39】A)12345 B)54321C)15115 D)5155140.若已建立以下的鏈表結(jié)構(gòu)(如下圖所示),指針p指向某單向鏈表的第一個(gè)結(jié)點(diǎn)。structnode{intdata;structnode*next;)*p;p- II I I IHI I I56|IH-1 IAI以下循環(huán)語(yǔ)句輸出該鏈表所有結(jié)點(diǎn)的數(shù)據(jù)成員dala,正確的是【40】。B)for(;!pB)for(;!p;p=p->next)printf(M%7d,M,(*p).data);D)while(p!=NULL){printf(',%7d,,\p->data);p++;)C)while(p){printf("%7d,",(*p).data);p=p->next;12.3.2填空題(本大題共20個(gè)空,每個(gè)空2分,共40分。請(qǐng)將答案寫在答題卡對(duì)應(yīng)欄中,答在試卷上不得分).以下程序從讀入的整數(shù)數(shù)據(jù)中統(tǒng)計(jì)大于零和小于零整數(shù)的個(gè)數(shù),用零結(jié)束輸入。main(){intn,i,j;i=j=0;scanf(M%dH,&n);while([1]){if(n>0)i++;else[2];scanf("%dn,&n);printf("正數(shù)的個(gè)數(shù)為:%d,負(fù)數(shù)的個(gè)數(shù)為:%d\n",i,j);.以下程序可以把從鍵盤上輸入的十進(jìn)制數(shù)(long型)以二到十六進(jìn)制的形式輸出,請(qǐng)?zhí)羁?。main(){charb[16]=",T,2,3丁4丁5;6,7,8,9,C,D;E,F};intc[64],i=0,base;longn;printf(uenteranumber:\nH);scanf(”%kT,&n);printf(nenternewbase:\nn);scanf("%d”,&base);do{c[i]=[3】;i++;n=n/base;}while(n!=0);printf("transmitnewbase:\n");for(-i;i>=0;-i)printf(M%cR,b[[4]]);.以下函數(shù)delete(s,i,n)從字符串s中刪除第i個(gè)字符開始的n個(gè)字符。voiddelete(chars[],inti,intn){intj,k,length=0;/*length用于計(jì)算字符串的長(zhǎng)度*/while(s[lengthj)[5];i—;J=i;if(i<length){k=i+n;if(i+n<=length)while(k<length)s[j++]=s[k4-+];s[j]=[6];.以下程序求數(shù)組a中所有素?cái)?shù)的和,函數(shù)isprime用來(lái)判斷自變量是否為素?cái)?shù)。素?cái)?shù)是只能被1和本身整除且大于1的自然數(shù)。main(){inti,a[10],*p=a,sum=O;printf(uEnter10num:M);for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++)if(isprime(*(p+[7]))==1){printf(n%d;\*(a+i));sum+=*(a+i);printf("sum=%d\n",sum);isprime(intx){inti;for(i=2;i<=x/2;i++)if(x%i==0)return0;return[8];.以下程序根據(jù)n的值打印2n-l行#號(hào)。運(yùn)行后當(dāng)輸入4給變量n時(shí),將打印如下圖案###############〃〃〃〃〃###main(){intn,i,j;printf("Entern:H);scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=2*(n-i);j++)putchar(*');for(j=1;j<=[9];j++)putchar('#');【10】;for(i=l;i<=n-l;i++){for(j=l;j<=[11];j++)putchar('#');printf("\n");.輸入正整數(shù)n,輸出對(duì)應(yīng)的中文字符串,其中n<999。對(duì)應(yīng)規(guī)則:①若百位不為零,則在該百位后寫一個(gè)“佰”,如356:叁佰伍拾陸;②若十位不為零,則在該拾位后寫一個(gè)“拾”,如56:伍拾陸;③個(gè)位寫“零”字的情況,百位、十位、個(gè)位均為零,0:零;④拾位寫“零”字的情況,百位、個(gè)位均不為零,且拾位為零,如308:叁佰零捌。例如,0:零1:壹15:壹拾伍100:壹佰308:叁佰零捌main(){char*s[]={"零“「壹貳“,“叁“,”肆伍“,”陸“,“柒捌“,”玖“,“拾丫佰”};charstr[30]=,M,;unsignedintnl,n10,n100,num;/*nl為個(gè)位,nlO為拾位,nlOO為百位*/scanf(n%ciH,&num);nl00=num/100;nlO=num/10-n100*10;nl=num%10;if(nlOO!=O){strcat(str,s[nlOOJ);strcat(str,[12]);if(nlO!=O){strcat(str,s[nlO]);strcat(str,s[10]);elseif((nlOO!=O&&nl!=0)||(n100==0&&nl==0))strcat(str,s[O]);if([13])strcat(str,s[nl]);puts(str);.給定一個(gè)年、月、日,函數(shù)getdays。返回這一年的第幾天。閏年的二月有29天,表達(dá)式”(year%4==0&&year%100!=0)||(year%400)==0”值為真,即為閏年,其中year表示年號(hào)。如以下程序運(yùn)行時(shí)輸入:200125〈回車〉,則輸出:2(X)1年2月5日是該年的第36天。structdatetp{unsignedyear,month,day;unsignedmonths[]={0,31,28,31,30,31,30,31,31,30,31,30,31);main(){structdatetpd;printf("請(qǐng)輸入年月日:");scanf("%u%u%u",&d.year,&d,month,[14]);if((d.year%4==0&&d.year%100!=0)||(d.year%400)==0)months[2]=29;printf(n%d年%(1月%<1日是該年的第%d天。\n",d.year,d.month,d.day,getdays(d));getdays([15]date){unsigneddays=0,i;fbr(i=1;i<date.month;i++)days+=[16];days+=date.day;returndays;.某一文件內(nèi)容為英文,文件名由命令行輸入。以下程序?qū)ζ溥M(jìn)行一項(xiàng)英文語(yǔ)法檢查:把每個(gè)英文句子的第一個(gè)字母改為大寫.假設(shè)每個(gè)英文句子可分別由標(biāo)點(diǎn)符號(hào)或“!”或“?”結(jié)束,并且每行少于1000個(gè)英文字母。將修改后的結(jié)果存入文件C:\DATA\FIEL1.TXT中。main(intargc,[17]){FILE*fpr,*fpw;inti,sentence_end=l;charstr[1000];if(argc<2){printf(uPleaseinputafilename.\nH);exit(l);if((fpr=fopen(argv[1],V))==NULL){printf(HCannotopen%s.\nu,argv[l]);exit(2);if((fpw=fopen(uC:\\DATA\\HLEl.TXT",Hwn))==NULL){printf(HCannotopenC:\DATA\FILE1.TXT.\nH);exit(3);)while(!feof(fpr)){fgets(str,1000,fpr);for(i=0;i<strlen(str);i++){if(sentence_end&&str[i]>=,a'&&strli]<=,z,){str[i]=[18];sentence_end=0;)if(str[i]==7||str[i]==T||str[i]==?)sentence_end=1;)fputs(str,[19]);)[20];fclose(fpw);}12.3.3參考答案1.選擇題:(每題1.5分)[1]D[2]A【3】D[4]A[5]D[6]C[7]D[8]A[9]D[10]C[11]C[12]A[13]B[14]A[15]A[16]B[17]B[18]B[19]B[20]D[21]D[22]B【23】D[24]C[25]B[26]A[27]D[28]A[29]C[30]D[31]C[32]C【33】B[34]C[35]B[36]D[37]A[38]B[39]B[40]C2.填空題:(每題2分,所有答案均區(qū)分大小寫)[1]n!=0或n())++或)打+1或j+=1()n%base【4】c[i][5]length++[6]、0'或0[7]i【8】12*i-lprintf("W")或putcharCW)2*(n-i)-ls[ll]nl!=0或nl&d.daystructdatetpmonths[i]char*argv[]32或'a'-'A'fpwfclose(fpr)12.4試卷(3)選擇題(本大題共40個(gè)選項(xiàng),[1】?【40】每個(gè)選擇項(xiàng)1.5分,共60分).在C語(yǔ)言中,下列變量名合法的是[11[1]A)b.cat B)-pl2 C)typedef D)p_12.設(shè)有說(shuō)明語(yǔ)句inti;charch;doubled;,則表達(dá)式d=3.0,ch='a',i=5;的類型和值分別是[2L]A)char和'a'B)int和5C)double和3.0D)double和5設(shè)有說(shuō)明語(yǔ)句intx;floaty;,且使用以下格式的scanf語(yǔ)句:scanf(,'x=%d,y=%f,,&x,&y);現(xiàn)要將數(shù)據(jù)15和78.9分別賦給x和y,則正確的輸入是【3】。[3】A)x=15,y=78.9(回車〉 B)1578.9〈回車〉C)15V回車>78.9〈回車> D)x=15〈回車>y=78.9〈回車〉一個(gè)C語(yǔ)言程序總是從【4】開始執(zhí)行的。A)任一函數(shù) B)程序的第一行C) main函數(shù) D)程序中的第一個(gè)函數(shù)5.設(shè)有說(shuō)明語(yǔ)句inti,j;,則表達(dá)式i>=j||i<j的值是【5】。A)視i、j的具體值而定 B) FALSEC) TRUE D) 16.設(shè)有說(shuō)明語(yǔ)句intk,i=5,j=10;,則表達(dá)式k=(++i)*(j--)的值是[6].

A)50 B)60 C)45下程序的運(yùn)行結(jié)果是171intx=10;main(){inti;for(i=0;i<2;i++)printf(n%3d",fun(x));fun(inty){staticinta=5;intx=0;++a;x++;retum(a+x+y);]A)1717B)1617C)1718以下程序的運(yùn)行結(jié)果是[81main(){inti=3,j=2,k;k=i+j;intk=8;if(i==3)printf(,,%2d',,k);elseprintf(,,%2d,',j);printf(,,%2d%2d\n,',i,k);A)835 B)838 03839.以下程序的運(yùn)行結(jié)果是【91main(){inta=3,b=4;a=aAb;b=bAa;a=aAb;printf(n%2d%2d\n*',a,b);D)55D)1616D)583D)44A)34 B)43 03D)55D)1616D)583D)4410.以下程序的運(yùn)行結(jié)果是【10】。main(){inti,n,fact,sum;n=4;fact=1;sum=0;for(i=l;i<=n;i++)fact=fact*i;sum+=fact;printf(M%3d%3d\n'\fact,sum);A)1033B)2424C)1010D)2433下程序的運(yùn)行結(jié)果是【11】。main(){inti,s;i=0;s=l;do{s/=s+1;i++;}while(i<=10);printf(M%2d%2d\n,,,i,s);A)102 B)112 C)100 D)11012.在C語(yǔ)言程序中,退出一個(gè)死循環(huán)的有效措施可以是【12】。A)break語(yǔ)句 B)continue 語(yǔ)句C)空語(yǔ)句 D)goto 語(yǔ)句13.以下程序的運(yùn)行結(jié)果是【13】。main(){intj;j=20;for(;j>=0;j-=20)if(j)printf(uGood!”);elseprintf(HNotgood!'*);

A)Good!Good! B)Notgood! C)Good! D)Good! Notgood!14.在C語(yǔ)言中,表達(dá)式strlen("ab\\c\t")的值是【14】。A)7 B)5 C)8 D)615.設(shè)有說(shuō)明語(yǔ)句charstrl[10],str2[10]="books”;,則能將字符串"books”賦給數(shù)組strl的正確語(yǔ)句是【15】。A)strl=',booksn; B)strcpy(strl,str2);C)strcpy(str2,strl); D)strl=str2;16.在C語(yǔ)言程序中,函數(shù)返回值的類型是由【16】決定的。A)return語(yǔ)句中的表達(dá)式類型 B)調(diào)用該函數(shù)的主調(diào)函數(shù)類型C)主調(diào)函數(shù)臨時(shí)C)主調(diào)函數(shù)臨時(shí)D)該函數(shù)定義時(shí)所指定的函數(shù)類型17.設(shè)有說(shuō)明語(yǔ)句inia[][3]=[1,234,5,6);,則a、a⑴、的值分別是【17】。A)地址值、地址值、元素值 B)地址值、元素值、元素值C)元素值、地址值、元素值 D)地址值、地址值、地址值18.設(shè)有說(shuō)明語(yǔ)句char*p,str[5];,則下列正確的語(yǔ)句是【18】。A) scanf(H%sn,*str); B) p=str;C) *p=ngood"; D) str="good";19.設(shè)有說(shuō)明語(yǔ)句int*p,*q,*r,x,y,z;,則下列合法的表達(dá)式是【19】。A)p+q+1B)(p-q)/2C)x+y=zD)x++=yC語(yǔ)言程序中,數(shù)組名作為函數(shù)調(diào)用的實(shí)參時(shí),傳遞給形參的是【20】。A)數(shù)組的首地址C)數(shù)組中全部元素的值21.A)數(shù)組的首地址C)數(shù)組中全部元素的值21.以下程序的運(yùn)行結(jié)果是[211main(){inta,b,c,n=13;printf(MABC\nn);fbr(a=l;a<=n;a++)for(b=l;b<=n;b++)fbr(c=b;c<=n;c+4-)

if(a*a==b*b+c*c)

printf(',%3d%3d%3d\n,,,a,b,c);)A)ABCB)AB53 4 3 5106 8 610B)數(shù)組的第一個(gè)元素值D)數(shù)組元素的個(gè)數(shù)CC)ABC4 45 38 8106D)ABC5 4 310 8 613512 513121213 51312522.以下程序的運(yùn)行結(jié)果是【22】。main(){intarray[4][4];inti,j;for(i=0;i<4;i++)for(j=0;j<4;j++)array[i][j]=i+j;for(i=0;i<4;i++)for(j=0;j<4;j++)if(i==j||i+j==3)array[i][j]=O;for(j=0;j<4;j++)printf("%2d",array[2][j]);printf("\n");[22]A)2005 B)1004C)0120D)045023.C語(yǔ)言程序中,函數(shù)【23】?!?3】A)可以嵌套定義B)可以嵌套調(diào)用,但不能遞歸調(diào)用C)不可以嵌套定義D)可以遞歸調(diào)用,但不能嵌套調(diào)用24.以下程序的運(yùn)行結(jié)果是【24】。age(n)intn;{intc;if(n==l)c=10;elseif(n%2==0)c=age(n-l)+2;elsec=age(n-l)+3;retum(c);main(){printf("%d\nM,age(5));}[24]A)18 B)20C)10 D)2125.以下程序的運(yùn)行結(jié)果是【25】#defineM5main(){charstr[]=,'ABCDEn;inti;for(i=0;i<M;i++)(if(str[i]=='C')continue;printf(M%3dM,str[i]);]A)6566676869C)65666869以下程序的運(yùn)行結(jié)果是【26】。main(){inta=l,b=0;switch(a)(case1:B)ABCDED)ABDEswitch(b)case0:printf(u0000\n");case1:printf(H111l\nM);break;case2:printf(,,2222\n,,);break;[26]A)0000B)0000C)00001111 1111 2222222227.運(yùn)行以下程序,選擇填空。main(){inta=5,b=25;fl(a,b);printf(na=%d,b=%d\nn,a,b);/*輸出結(jié)果是:【27】*/f2(&a,b);printf(Ha=%d,b=%d\nH,a,b);/*輸出結(jié)果是:【28】*/f3(&a,&b);printf(',a=%d,b=%d\n,',a,b); /*輸出結(jié)果是:[29]*/D)11112222fl(intx,inty){x+=y;y+=x;}f2(int*x,inty){*x+=y;y+=*x;}f3(int*x,int*y){*x+=*y;*y+=*x;}[271A)a=5,b=25C)a=3O,b=3OB)a=30,b=55D)a=5,b=30[281A)a=30,b=55B)a=5,b=25C)a=30,b=25D)a=5,b=30【29】A)a=30,b=55B)a=55,b=80C)a=30,b=25D)a=5,b=3028.以下程序的運(yùn)行結(jié)果是【30】。main(){voidchange_p();int*p,a[]={1,4,7,10);p=&a[l];change_p(p);printf("%d\n",*p);voidchange_p(int*pi){*pi+=2;pi+=2;*pi+=2;[30]A)7 B)8 C)5 D)6.以下程序的運(yùn)行結(jié)果是【31】。voidf(char*p,char*t)inti=0,j=0;while(*(p+i))i++;while(*(t+j))p[i++]=t[j++];p[i]=、0';main(){charsl[]=HxyzH,s2[]=Mabc";C)xyzabc D)abcxyzC)xyzabc D)abcxyz/*輸出結(jié)果是[321*//*輸出結(jié)果是【33]。*/retupmoC->retupmoCD)retupmoC->Computerp[l]='o'D)p[3]=Uf(sl,s2);printf(n\n%s\nH,sl);[31]A)abc B)xyz.運(yùn)行以下程序,選擇填空。main()inti,j;char*p,*q,ch;p="Computern;q二p;for(i=0,j=7;i<j;i++j-)ch=p[i];*(p+i)=*(p+j);p[j]=ch;printf("%s?>%s\n”,q,p);ch=p[j=l,i=j+2];printf("p[%d]=V%cV\nH,i,ch);[32]A)ComputerComputerC)Computer->Computer【33]A)p[3]='p,B)p[l]=e.以下程序的運(yùn)行結(jié)果是【34】。#defineM(x,y)x*ymain(){inta=3,b=2,sl,s2,fl2();sl=M(a+b,a-b);s2=M(a-b,a+b);printf("%d,%d,%d,%d\nn,sl,s2,fl2(a+b,a-b),fl2(a-b,a+b));}fl2(intx,inty){retum(x*y);}【34】A)7,-1,5,5B)5,5,7,-1 C)5,5,5,5 D)7,-1,7,-1.以下程序的可執(zhí)行文件名是file.exe。main(argc,argv)intargc;

char*argv[];{inti;fbr(i=2;i<argc;i++)primf("%s%c\argv[i],(ivargc-l)?'T\n');現(xiàn)在DOS命令行輸入:fileMyCLanguageandPrograming〈回車〉,其輸出結(jié)果是【35】。[35]A)CLanguageandPrograming[35]A)CLanguageandProgramingC)MyCLanguageandPrograming33.設(shè)有說(shuō)明語(yǔ)句int*swap[3],(*swap)[3];?[36]A)整型指針C)具有三個(gè)元素的整型數(shù)組[37]A)整型數(shù)組C)整型指針34.以下程序的運(yùn)行結(jié)果是【38】。B)MyCLanguageandProgramingD)fileMyCLanguageandPrograming則它們分另表示swap是[36]和[【37]。B)指向整型數(shù)組的指針D)具有三個(gè)整型指針元素的數(shù)組B)具有三個(gè)元素的整型數(shù)組D)指向具有三個(gè)元素的整型數(shù)組的指針structinfb(intdata;structinfo*next;main(){structinfo*base,*p;intn;base=NULL;for(n=0;n<10;n++)p->data=++n;p->next=base;base=p;printf(',%2d';p->data);D)12345A)13579B)01234C)02468D)12345.在C語(yǔ)言中,共用體(union)變量所占用的內(nèi)存長(zhǎng)度等于【39】?!?9】A)最長(zhǎng)的成員的長(zhǎng)度 B)所有成員的長(zhǎng)度之和C)任一成員的長(zhǎng)度 D)隨機(jī)長(zhǎng)度.以下程序的運(yùn)行結(jié)果是【40】。main(){enumdays{sun,mon=2,tue,wen,thi,fri,sat);intday,a[sat];day=sat;for(;day>sun;day-)a[day]=day;printf(,,%2d,,,a[day]);[40]A)7654321 B)7654320C)6543210 D)123456712.4.2填空題(本大題共20個(gè)空,每個(gè)空2分,共40分。請(qǐng)將答案寫在答題卡對(duì)應(yīng)欄中,答在試卷上不得分)1.以下程序?qū)崿F(xiàn)對(duì)于給定的10個(gè)整數(shù),將其中最小的數(shù)與第一個(gè)數(shù)對(duì)換,最大的數(shù)與最后一個(gè)數(shù)對(duì)換。#defineN10main(){inti,min,mind,max,maxd;inta[]=(l0,40,300,1,5,8,100,35,80,20);mind=maxd=O;min=a[mind];for(i=0;i<N;i++)if(a[i]<min)min=[1];mind=i;a[mind]=a[O];a[0]=min;max=[2];for(i=0;i<N;i++)if(a[i]>[3])max=a[i];maxd=i;=a[N-l];=max;for(i=0;i<N;i++)printfC'%4dH,a[i]);printf(,'\nM);.以下程序?qū)崿F(xiàn)打印出所有的“水仙花數(shù)二所謂“水仙花數(shù)”是指一個(gè)三位數(shù),其各位數(shù)字的立方和等于該數(shù)本身。例如153是一個(gè)水仙花數(shù),因?yàn)?53=?3+5人3+3人3。main(){inti,j,k,n;for(n=100;[6];n++)k=n%10;j=(n%100)/10;i=[7];if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)prinlf("%d\n”,n);.假定文件filel.txt存在,以下程序?qū)崿F(xiàn)把該文件先顯示在屏幕上,然后再全部復(fù)制到文件file2.txt中o#include<stdio.h>main(){FILE*in,*out;in=fopen(,,filel.txt"/,rn);out=[8];while(!feof(in))putchar(fgetc(in));while(!feof(in))fputc

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論