




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
C語言程序設計習題集及答案C語言程序設計習題集及答案C語言程序設計習題集及答案xxx公司C語言程序設計習題集及答案文件編號:文件日期:修訂次數:第1.0次更改批準審核制定方案設計,管理制度基礎知識一單項選擇題(每題2分,共44分)1以下敘述正確的是___。AC程序基本組成單位是語句BC程序每一行只能寫一個語句C簡單C語句必須以分號作為結束符D注釋語句可以嵌套2一個C語言程序是從___開始執行的。A程序中第一個函數B名為main的函數C包含文件(頭文件)的第一個函數D程序中的第一個語句3請選出合法的C語言賦值語句___。Aa=b=58Bi++;Ca=58,b=58Dk=int(a+b);4下面標識符中,合法的用戶標識符是___。A1abcBincludeCa-b-c123Dchar5以下所列的C語言整形常量中,正確的是___。A0x10B0976C076LD01ff6C語言中下列運算符的操作數必須為整型的是___。A%B++C/D=7設a和b均為int型變量,則執行以下語句后的輸出為___。inta=20;intb=3;printf("%d\n",a+=(b%=2));A20B21C0D238已知inti;,則執行語句i=;后,i的值為___。A2B3CD不確定9以下合法的字符常量為___。A'ab'B'\482'C'\'D'\xaf'10若y為int型變量,則執行以下語句后,y的值是___。y=8;y+=y-=y*y;A64B–56C–112D–4811以下合法的浮點型常量是___。Ae-3B+C+2LDe+512設int數據占用兩個字節,float數據占用四個字節,double數據占用8個字節,且已知floata=2;intb=3;則執行下列語句輸出為___。printf("%d",sizeof(a*b)+2/5);A4B8C6D713設int型占2個字節,且inti=-2;,則語句printf("%u",i);的輸出結果為___。A0B-2C65534D6553514若x、y、z均為整型常量,且a=100,則執行下列語句后的z值為___。x=a++;y=--a;z=x+y-a--;A100B400C200D30015若有以下定義和語句:intu=010,v=0x10,w=10,printf("%d,%d,%d\n",u,v,w);,則輸出結果是___。A8,16,10B10,10,10C8,8,10D8,10,1016設x、y為int型變量,則執行下列語句后,y的值是___。x=5;y=x++*x++;y=--y*--y;A529B2401C1209D625的表達式是____。17假設在程序中a,b,c均被定義成整型,并且已賦大于1的值,則下列能正確表示代數式的表達式是____。A1/a*b*cB1/(a*b*c)C1/a/b/(float)cDa/b/c18若有定義:inta=8,b=5,c;chard='A';,則執行語句c=a/b+d%a+;后c的值為___。A2BC3D類型不一致,無法計算,編譯出錯19在有以下程序:main(){inti=10,j=1;i=i+j++;printf("%d,%d,%d\n",i++,++j,i);}執行后輸出結果是___。A12,3,11B12,2,11C11,3,11D12,3,1220已知inti=65;,則putchar(i);printf("%d",i);printf("%c",i);的輸出結果為___。AA,65,AB65,65,ACA,A,65DA,A,A21已知inty,a,i=1;,則語句printf("%d,%d",-i++,(y=a=*3));的輸出結果為___。A-1,10B-2,C0,3D1,1822有以下程序:main(){chara,b,c,d;a='\';b='\xbc';c='\0xab';d='\023';printf("%c%c%c%c\n",a,b,c,d);}編譯時出現錯誤,以下敘述中正確的是___。A程序中只有a='\';語句不正確Bb='\xbc';語句不正確Cd='\023';語句不正確Da='\';和c='\0xab';語句都不正確二填空題(第1題2分,其余每題3分,共56分)1設x為int型變量,請寫出描述“x是偶數”的表達式是___。2已知scanf("a=%d,b=%d,c=%d",&a,&b,&c);,若從鍵盤輸入2、3、4三個數分別作為變量a、b、c的值則正確的輸入形式是___。3設有語句inta=3;,則執行了語句a+=a-=a*a后,變量a的值是___。4以下程序的輸出結果是___。main(){inta=-10,b=-3;printf("%d\n",-a++);printf("%d\n",-a+b);}5以下程序的輸出結果是___。main(){charc;c=0362;printf("%d\n",c);}6以下程序段(n所賦的是八進制數)執行后輸出結果是___。intm=32767,n=032767;printf("%d,%o\n",m,n);7字符串"\\name\\\101ddress\b\xaf"的長度為:___。8有以下程序段:intm=0,n=0;charc='a';scanf("%d%c%d",&m,&c,&n);printf("%d,%c,%d\n",m,c,n);若從鍵盤上輸入:10A10<回車>,則輸出結果是___。9以下程序的輸出結果是___。main(){printf("%d,%o,%x\n",10,10,10);printf("%d,%d,%d\n",10,010,0x10);printf("%d,%x\n",012,012);}10設a、b、c為整形變量,且a=2、b=3、c=4,則執行完語句a*=16+(b++)-(++c);之后,變量a的值為___。11以下程序的輸出結果為___。main(){intx=023;printf("%x\n",--x);}12以下程序的結果為___。main(){inta=2,b=3,c,d;c=(a++)+(a++)+(a++);d=(++b)+(++b)+(++b);printf("a=%dc=%d\n",a,c);printf("b=%dd=%d\n",a,d);}13以下程序main(){charch1,ch2,ch3;scanf("%c%c%c",&ch1,&ch2,&ch3);printf("%c%c%c%c%c",ch1,'#',ch2,'#',ch3);}當輸入ABC時運行結果為【1】,當輸入ABC時運行結果為【2】。14若有定義:floatx;,以下程序段的輸出結果是___。x=;printf("%f\n",(int)(x*1000+/(float)1000);15以下程序的功能是:輸入一個小寫字母,輸出對應的大寫字母,將程序補充完整。main(){charch;【1】/*從鍵盤輸入一個小寫字母*/【2】/*將該字母轉換為大寫字母*/【3】/*輸出轉換后的結果*/}16當運行以下程序時,在鍵盤上從第一列開始輸入10↙(此處↙代表回車),則程序的輸出結果是___。main(){inta;floatb,c;scanf("%2d%3f%4f",&a,&b,&c);printf("\na=%d,b=%f,c=%f\n",a,b,c);}17以下程序的運行結果是___。main(){printf("%\n",;printf("%12f\n",;printf("%\n",12345);printf("%\n","abcdefghij");}18運行以下程序時,如從鍵盤上輸入abcdefg↙,則輸出結果是___。main(){charch1,ch2,ch3;ch1=getchar();ch2=getchar();ch3=getchar();putchar(ch1);putchar(ch2);putchar(ch3);putchar('\n');}19運行以下程序時,如從鍵盤上輸入:a=3,b=5↙35,↙abc↙后,結果是___。main(){inta,b;floatx,y;charc1,c2;scanf("a=%d,b=%d",&a,&b);scanf("%f,%e",&x,&y);scanf("%c%c%c",&c1,&c1,&c2);printf("a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\n",a,b,x,y,c1,c2);}順序、選擇結構程序設計一單項選擇題(每題2分,共40分)1以下程序運行后的輸出結果是___。main(){inta=0,b=0;a=10;b=20;printf("a+b=%d\n",a+b);}Aa+b=10Ba+b=30C30D出錯2以下程序運行后的輸出結果是___。main(){doubled=;intx,y;x=;y=(x+/;printf("%d\n",d*y);}A3BC0D3以下程序運行后的輸出結果是___。main(){doubled;floatf;longl;inti;i=f=l=d=20/3;printf("%d%ld%.1f%.1f\n",i,l,f,d);}A66B66C66D664以下程序運行后的輸出結果是___。main(){inta=1,b=2;a=a+b;b=a-b;a=a-b;printf("%d,%d\n",a,b);}A1,2B1,1C2,2D2,15以下程序運行后的輸出結果是___。main(){intx,y,z;x=y=2;z=3;y=x++-1;printf("%d%d",x,y);y=++x-1;printf("%d%d\n",x,y);y=z---1;printf("%d%d",z,x);y=--z-1;printf("%d%d\n",z,x);}A3143B3133C3143D213224142422241213126以下程序運行后的輸出結果是___。main(){intx,y,z;x=y=1;z=x++,y++,++y;printf("%d,%d,%d\n",x,y,z);}A2,3,3B2,3,2C2,3,1D2,2,17以下程序運行后的輸出結果是___。main(){intx=4,y=7;x-=y;y+=x;printf("%d%d\n",x,y);}A47B-3-3C-311D-348以下程序運行后的輸出結果是___。main(){unsignedshorta=65536;intb;printf("%d\n",b=a);}A65536B0C1D-19以下程序:#include<>main(){charc1,c2,c3,c4,c5,c6;scanf("%c%c%c%c",&c1,&c2,&c3,&c4);c5=getchar();c6=getchar();putchar(c1);putchar(c2);printf("%c%c\n",c5,c6);}程序運行后,若從鍵盤輸入(從第1列開始)123<回車>45678<回車>則輸出結果是___。A1267B1256C1278D124510設a、b和c都是int型變量,且a=3,b=0,c=5,則以下值為0的表達式是___。A'a'&&'b'Ba&&b||cCa&&b&&cDa||b&&c11在嵌套使用if語句時,C語言規定else總是___。A和之前與其具有相同縮進位置的if配對B和之前與其最近的if配對C和之前與其最近不帶else的if配對D和之前的第一個if配對12若要求在if后一對圓括號中表示a不等于0的關系,則能正確表示這一關系的表達式為___。Aa<>0B!aCa=0Da13以下程序運行后的輸出結果是___。main(){inta=2,b=-1,c=2;if(a<b)if(b<0)c=0;elsec++;printf("%d\n",c);}A0B1C2D314若k是int型變量,下面的程序段的輸出結果是。k=-3;if(k<=0)printf("####")elseprintf("&&&&");A####B&&&&C####&&&&D有語法錯誤,無輸出15以下程序運行后的輸出結果是___。main(){inta=0,b=0,c=0,d=0;if(a=1)b=1;c=2;elsed=3;printf("%d,%d,%d,%d\n",a,b,c,d);}A0,1,2,0B0,0,0,3C1,1,2,0D編譯有錯16以下程序運行后的輸出結果是___。main(){intx1=1,x2=0,x3=0;if(x1=x2+x3)printf("****");elseprintf("####");}A****B有語法錯誤C####D無輸出結果17當a=1,b=3,c=5,d=4時,執行下面一行程序后,x的值是___。if(a<b)if(c<d)x=1;elseif(a<c)if(b<d)x=2;elsex=3;elsex=6;elsex=7;A1B2C3D618下列敘述中正確的是___。Abreak語句只能用于switch語句B在switch語句中必須使用defaultCbreak語句必須與switch語句中的case配對使用D在switch語句中不一定使用break語句19若有定義:floatx=;inta=1,b=3,c=2;則正確的switch語句是___。Aswitch(x)Bswitch((int)x);{case:printf("*\n");{case1:printf("*\n");case:printf("**\n");}case2:printf("**\n");}Cswitch(a+b)Dswitch(a+b){case1:printf("*\n");{case1:printf("*\n");case2+1:printf("**\n");}casec:printf("**\n");}20以下程序運行后的輸出結果是___。#include<>main(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;}printf("a=%d,b=%d\n",a,b);}Aa=2,b=1Ba=1,b=1Ca=1,b=0Da=2,b=2二填空題(每題3分,共30分)1以下程序運行后的輸出結果是___。#include<>main(){inti=010,j=10;printf("%d,%d\n",++i,j--);}2以下程序運行后的輸出結果是___。#include<>main(){printf("%d%d%d\n",'\0','\0','\0');}3以下程序運行后的輸出結果是___。main(){inti=5,j,k;j=i+++i+++i++;k=(++i)+(++i)+(++i);printf("i=%5dj=%5d\nk=%5d\n",i,j,k);}4下面的程序運行時從鍵盤上輸入10<回車>,程序的輸出結果是___。main(){inta;floatb,c;scanf("%2d%2f%2f",&a,&b,&c);printf("a=%d,b=%.1f,c=%.0f",a,b,c);}5下面程序的輸出結果是___。main(){charch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}6執行下面的語句:printf("%d\n",(a=3*5,a*4,a+5));,輸出是___。7以下程序運行后的輸出結果是___。main(){intx=10;printf("%d,%d\n",--x,--x);}8為表示關系x≥y≥z,應使用C語言表達式___。9下面的程序段的輸出結果是___。intx=3;if((x%2)printf("**%d",x):printf("##%d\n",x));10以下程序運行后的輸出結果是___。main(){intm=5;switch(m/2){case1:m++;case2:m+=3;case5:m+=6;break;default:m-=7;}printf("%d\n",m);}三程序填空(每空5分,共30分)1下列程序的輸出結果是,請填空。main(){inta=9,b=2;floatx=【1】,y=,z;z=a/2+b*x/y+1/2;printf("%\n",z);}2完成以下程序,輸入變量a,b,c的值,判斷a,b,c能否組成三角形,計算三角形面積。(公式為:)。#include<>【2】;main(){inta,b,c;【3】printf("pleaseinputthevalueofa,b,c")scanf("%d%d%d",【4】);
if(【5】){【6】s=sqrt(p*(p-a)*(p-b)*(p-c));printf("Yes,thisisatriangle!\ntheareais%.2f.\n",s);}elseprintf("No,thisisnotatriangle!\n")}循環結構程序設計一單項選擇題(每題2分,共40分)1以下程序中,while循環的循環次數是___。main(){inti=0;while(i<10){if(i<1)continue;if(i==5)break;i++;}……}A1B10C6D死循環2以下程序的執行結果是___。main(){intn=9;while(n>6){n--;printf("%d",n);}}該程序的輸出結果是A987B876C8765D98763以下程序段,while循環執行的次數是___。intk=0;while(k=1)k++;A無限次B有語法錯C一次也不執行D執行1次4以下敘述正確的是___。Ado-while語句構成的循環不能用其它語句構成的循環來代替Bdo-while語句構成的循環只能用break語句退出C用do-while語句構成的循環,在while后的表達式為非零時結束循環D用do-while語句構成的循環,在while后的表達式為零時結束循環5以下程序的執行結果是___。main(){inta,y;a=10;y=0;do{a+=2;y+=a;printf("a=%dy=%d\n",a,y);if(y>20)break;}while(a=14);}Aa=12y=12Ba=12y=12a=14y=16a=16y=28a=16y=20a=18y=24Ca=12y=12Da=12y=12a=14y=26a=14y=446以下程序的執行結果是___。main(){intx=23;do{printf("%d",x--);}while(!x);}A321B23C不輸出任何內容D陷入死循環7有以下程序段,輸出結果是___。intx=3;do{printf("%d",x-=2);}while(!(--x));A1B30C1-2D死循環8以下程序的輸出結果是___。main(){inta=0,i;for(i=1;i<5;i++){switch(i){case0:case3:a+=2;case1:case2:a+=3;default:a+=5;}}printf("%d\n",a);}A31B13C10D209以下程序的輸出結果是___。main(){inti=0,a=0;while(i<20){for(;;)if((i%10)==0)break;elsei--;i+=11;a+=i;}printf("%d\n",a);}A21B32C33D1110以下循環體的執行次數是___。main(){inti,j;for(i=0,j=1;i<=j+1;i+=2,j--)printf("%d\n",i);}A3B2C1D011下列程序的輸出結果是___。main(){inti,j,m=0,n=0;for(i=0;<2;i++)for(j=0;j<2;j++)if(j>=i)m=1;n++;printf("%d\n",n);
}A4B2C1D012下列程序的輸出結果是___。main(){inti,sum;for(i=1;i<=3;sum++)sum+=i;printf("%d\n",sum);}A6B3C死循環D013以下程序執行后sum的值是___。main(){inti,sum;for(i=1;i<6;i++)sum+=i;printf("%d\n",sum);}A15B14C不確定D014以下程序執行后的輸出結果是___。main(){inti,n=0;for(i=2;i<5;i++){do{if(i%3)continue;n++;}while(!i);n++;}printf("n=%d\n",n);}An=5Bn=2Cn=3Dn=415下列語句中,能正確輸出26個英文字母的是___。Afor(a='a';a<='z';printf("%c",++a));Bfor(a='a';a<='z';)printf("%c",a);Cfor(a='a';a<='z';printf("%c",a++));Dfor(a='a';a<='z';printf("%c",a));16以下程序執行后的輸出結果是___。main(){intx=1,y=1;while(y<=5){if(x>=10)break;if(x%2==0){x+=5;continue;}x-=3;y++;}printf("%d,%d",x,y);}A6,6B7,6C10,3D7,317以下程序執行后的輸出結果是___。main(){inta=5;while(!(a-->5)){switch(a){case1:a++;case4:a+=4;case5:a+=5;break;default:a-=5;}}printf("%d\n",a);}A12B7C5D1318對于下面的for循環語句,可以斷定它執行___次循環。for(x=0,y=0;(y!=67)&&(x<5);x++)printf("----");A無限B不定C5次D4次19在執行以下程序時,如果從鍵盤上輸入:ABCdef,則輸出結果為___。#include""main(){charch;while((ch=getchar())!='\n'){if(ch>='A'&&ch<='Z')ch=ch+32;elseif(ch>='a'&&ch<='z')ch=ch-32;printf("%c",ch);}printf("\n");}AABCdefBabcDEFCabcDDEF20當執行以下程序時,___。inta=1;do{a=a*a;}while(!a);A循環體將執行1次B循環體將執行2次C循環體將執行無限次D系統將提示有語法錯誤二填空題(每空3分,共33分)1若輸入字符串:abcde<回車>,則以下while循環體將執行___次。while((ch=getchar())=='e')printf("*");2以下while循環執行的次數是___。k=0;while(k=10)k=k+1;3下列程序的輸出結果是___。main(){intx=0,y=5,z=3;while(z-->0&&++x<5)y=y-1;printf("%d,%d,%d\n",x,y,z);}4下面程序的功能是:計算1到10之間的奇數之和及偶數之和,請填空。main(){inta,b,c,i;a=c=0;for(i=0;i<=10;i+=2){a+=i;_【1】;c+=b;
}
printf("偶數之和=%d\n奇數之和=%d\n",a,【2】);}5下面程序的功能是:輸出100以內能被3整除且個位數為6的所有整數,請填空。main(){inti,j;for(i=0;_【1】;i++){j=i*10+6;if(_【2】)continue;printf("%d\n",j);}}6以下程序的輸出結果是___。main(){ints,i;for(s=0,i=1;i<3;i++,s+=i);printf("%d\n",s);}7要使以下程序段輸出10個整數,請填入一個整數。for(i=0;i<=___;printf("%d\n",i+=2));8程序的功能是根據以下近似公式求π值:請填空完成求π的功能。#include""main(){intn=30000;doubles=;longi;for(i=1;i<=n;i++)s=s+_【1】;
printf("pi=%f\n",_【2】);}三程序填空題(每空3分,共27分)1下列程序是求的值。#include""main(){inti=2;floatsum=1;;while(【1】){sum=sum+i;【2】;}printf("sum=%f\n",【3】);}2以下程序的功能是從鍵盤輸入若干個學生的成績,統計最高成績和最低成績,當輸入為負數時,結束輸入。main(){floatx,max,min;scanf("%f",&x);max=min=【1】;do{if(x>max)max=x;if(x<min)【2】;scanf("%f",&x);}while(【3】);printf("%f,%f",max,min);}3下面的程序用來求出所有的水仙花數。所謂水仙花數是指一個3位數,它的各位數字的立方和恰好等于它本身。main(){intn,i,j,k;for(n=100;【1】)/*判斷3位數n是否是水仙花數*/{i=n/100;/*i是n的百位上的數字*/j=【2】;/*j是n的十位上的數字*/k=n%10;/*k是n的個位上的數字*/if(【3】)printf("%d\n",n);}}數組一單項選擇題(每題2分,共40分)1以下對一維整型數組a的正確定義(說明)的是___。Ainta(10);B)intn=10,a[n];Cintn;D#defineSIZE10scanf("%d",&n);inta[SIZE];inta[n];2若有定義(說明)inta[10];,則對數組a的元素正確引用的是___。Aa[10]Ba[]Ca(5)Da[10-10]3執行下面程序段后,變量k的值是___。intk=3,s[2];s[0]=k;k=s[1]*10;A不定值B33C30D104以下程序的輸出結果是___。main(){inti,k,a[10],p[3];k=5;for(i=0;i<10;i++)a[i]=i;for(i=0;i<3;i++)p[i]=a[i*(i+1)];for(i=0;i<3;i++)k+=p[i]*2;printf("%d\n",k);}A20B21C22D235以下對一維整型數組a初始化的語句中正確的是___。Ainta[10]=(0,0,0,0,0);Binta[10]=();Cintx=2,a[10]={10*x};Dinta[10]={0};6若有以下說明,則數值為4的表達式是___。inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};charc='a',d,g;Aa[g-c]Ba[4]Ca['d'-'c']Da['d'-c]7下列程序運行后的輸出結果是___。#defineMAX10voidmain(){inti,sum,a[]={1,2,3,4,5,6,7,8,9,10};sum=1;for(i=0;i<MAX;i++)sum-=a[i];printf("sum=%d\n",sum);}Asum=55Bsum=-54Csum=-55Dsum=548以下程序的輸出結果是___。main(){inty=18,i=0,j,a[8];do{a[i]=y%2;i++;y=y/2;}while(y>=1);for(j=i-1;j>0;j--)printf("%d",a[j]);}A1000B1001C1010D11009以下對二維數組a的正確定義(說明)的是___。Ainta[3][];Bfloata(3,4);Cdoublea[1][4];Dfloata(3)(4);10若有定義(說明)inta[3][4];,則對數組a的元素的引用非法的是___。Aa[2][2*1]Ba[1][3]Ca[4-2][0]Da[0][4]11以下不能對二維數組a進行正確初始化的語句是___。Ainta[2][3]={0};Binta[][3]={{1,2},{0}};Cinta[2][3]={{1,2},{3,4},{5,6}};Dinta[][3]={1,2,3,4,5,6};12下列數組定義語句中,正確的是___。Achara[][]={'a','b','c','d','e','f'};Bchara[2][3]='a','b';Cchara[][3]={'a','b','c','d','e','f'};Dchara[][]={{'a','b','c','d','e','f'}};13下列程序運行后的輸出結果是___。main(){inta[4][4],i,j,k;for(i=0;i<4;i++)for(j=0;j<4;j++)a[i][j]=i-j;for(i=1;i<4;i++)for(j=i+1;j<4;j++){k=a[i][j];a[i][j]=a[j][i];a[j][i]=k;}for(i=0;i<4;i++){printf("\n");for(j=0;j<4;j++)printf("%4d",a[i][j]);}}A0-1-2-3B012310-1-2-1012210-1-2-1013210-3-2-10C0-1-2-3D01231012-10-1-22-101-210-23-2-10-321014以下程序的輸出結果是___。main(){inti,a[4][4]={{1,3,5},{2,4,6},{3,5,7}};printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0]);}A0650B1470C5430D輸出值不定15有以下程序:main(){intx[3][2]={0},i;for(i=0;i<3;i++)scanf("%d",x[i]);printf("%3d%3d%3d\n",x[0][0],x[0][1],x[1][0]);}若運行時輸入:246<回車>,則輸出結果是___。A200B204C240D24616下列描述不正確的是___。A字符型數組中可以存放字符串B可以對字符型數組進行整體輸入和輸出C可以對整型數組進行整體輸入和輸出D不能在賦值語句中通過賦值運算符“=”對字符型數組進行整體賦值17對于以下定義,敘述正確的是___。charx[]="abcdef";charx[]={'a','b''c','d','e','f'};A數組x和數組y等價B數組x和數組y的長度相等C數組x的長度大于數組y的長度D數組x的長度小于數組y的長度18以下選項中,不能正確賦值的是___。Achars1[10];s1="Ctest";Bchars2[]={'C','t','e','s','t'};Cchars3[20]="Ctest";Dchars4[30];strcpy(s4,"Ctest");19若有定義和語句:chars=[10];s="abcd";printf("%s\n",s);,則輸出結果是___。(以下□表示空格)AabcdBaCabcd□□□□□D編譯不通過20當執行下面程序時,如果輸入ABC,則輸出結果是___。#include<>#include<>main(){charss[10]="12345";gets(ss);strcat(ss,"6789");printf("%s\n",ss);}AABC6789BABC67C12345ABC6DABC45678二填空題(每空3分,共24分)1若int類型變量占兩個字節,定義intx[10]={0,2,4};,則數組x在內存中所占的字節數是___。2若有定義chara[]="\\141\141abc\t";,則數組a在內存中所占的字節數是___。3下列程序的輸出結果是___。main(){inti,a[10];for(i=9;i>=0;i--)a[i]=10-i;printf("%d%d%d\n",a[2],a[5],a[8]);}4下列程序運行的結果是___。main(){charch[7]="65ab21";inti,s=0;for(i=0;ch[i]>='0'&&ch[i]<='9';i+=2)s=10*s+ch[i]-'0';printf("%d\n",s);}5有定義語句:chars[100],d[100];intj=0,i=0;且s中已賦字符串,請填空以實現字符串復制。(注意:不得使用逗號表達式)while(s[i]){d[j]=___;j++;}d[j]=0;6下面程序運行的結果是___。main(){chars[]="abcdef";s[3]='\0';printf("%s\n",s);}7以下程序的輸出結果是___。main(){charch[3][5]={"AAAA","BBB","CC"};printf("\"%s\"\n",ch[1]);}8以下程序的輸出結果是___。main(){charch[]="abc",x[3][4];inti;for(i=0;i<3;i++)strcpy(x[i],ch);for(i=0;i<3;i++)printf("%s",&x[i][i]);printf("\n");}三程序填空題(每空3分,共36分)1以下程序的功能是:從鍵盤上輸入若干個學生的成績(用輸入負數結束輸入),統計出平均成績,并輸出低于平均分的學生成績。請填空。#include""main(){intn=0,i;floatx[1000],sum=,ave,a;printf("Entermark:\n");scanf("%f",&a);while(a>=&&n<1000){sum+=【1】;x[n]=【2】;n++;scanf("%f",&a);}ave=【3】;print("Output:\n");printf("ave=%f\n",ave);for(i=0;i<n;i++)if(【4】)printf("%f\n",x[i]);}2以下程序的功能是求出矩陣x的上三角元素之積。其中矩陣x的行列數和元素的值均由鍵盤輸入。請填空。#defineM10main(){intx[M][M];intn,i,j;longs=1;printf("Enterainteger(<=10):\n");scanf("%d",&n);printf("Enter%ddataoneachlineforthearrayx\n",n);for(【1】)for(j=0;j<n;j++)scanf("%d",&x[i][j]);for(i=0;i<n;i++)for(【2】)【3】;printf("%ld",s);}3以下程序,數組a中存放一個遞增數列。輸入一個整數,并將它插入到數組a中,使之仍為一個遞增數列。請填空。main(){inta[【1】]={1,10,20,30,40,50,60,70,80,90},x,i,p;scanf("%d",&x);for(i=0,p=10;i<10;i++)if(x<a[i]){p=i;【2】;}for(i=9;i>=p;i--)a[i+1]=a[i];【3】;for(i=0;i<=10;i++)printf("%5d\n",a[i]);printf("\n");}4以下程序的功能是:將t數組的內容連接到s數組內容的后面,使s數組保存連接后的新字符串。main(){staticchars[30]="abcdefg",t[]="abcd";inti=0,j=0;while(s[i]!='\0')【1】;while(t[j]!='\0'){s[i+j]=t[j];j++;}【2】;printf("%s\n",s);}函數一單項選擇題(每題2分,共40分)1以下正確的函數定義是___。Adoublefun(intx,inty)Bdoublefun(intx,y){z=x+y;returnz;}{intz;returnz;}Cfun(x,y)Ddoublefun(intx,inty){intx,y;doublez;{doublez;z=x+y;returnz;}returnz;}2以下正確的說法是___。A實參和與其對應的形參各占用獨立的存儲單元B實參和與其對應的形參共占用一個存儲單元C有當實參和與其對應的形參同名時才共占用相同的存儲單元D形參是虛擬的,不占用存儲單元3若調用一個函數,且此函數中沒有return語句,則正確的說法是___。A該函數沒有返回值B該函數返回若干個系統默認值C能返回一個用戶所希望的函數值D返回一個不確定的值4以下正確的描述是___。A函數的定義可以嵌套,但函數的調用不可以嵌套B函數的定義不可以嵌套,但函數的調用可以嵌套C函數的定義和函數的調用均不可以嵌套D函數的定義和函數的調用均可以嵌套5若用數組名作為函數調用的實參,傳遞給形參的是___。A數組的首地址B數組中第一個元素的值C數組中的全部元素的值D數組元素的個數6以下不正確的說法是___。A在不同函數中可以使用相同名字的變量B形式參數是局部變量C在函數內定義的變量只在本函數范圍內有定義D在函數內的復合語句中定義的變量在本函數范圍內有定義7已知一個函數的定義如下:doublefun(intx,doubley){……}則該函數正確的函數原型聲明為___。Adoublefun(intx,doubley)Bfun(intx,doubley)Cdoublefun(int,double);Dfun(x,y);8關于函數聲明,以下不正確的說法是___。A如果函數定義出現在函數調用之前,可以不必加函數原型聲明B如果在所有函數定義之前,在函數外部已做了聲明,則各個主調函數不必再做函數原型聲明C函數在調用之前,一定要聲明函數原型,保證編譯系統進行全面的調用檢查D標準庫不需要函數原型聲明9調用函數的實參與被調用函數的形參應有如下關系___。A只要求實參與形參個數相等B只要求實參與形參順序相同C只要求實參與形參數據類型相同D上述三點均需具備10凡在函數中未指定存儲類別的變量,其隱含的存儲類別是___。A自動B靜態C外部D寄存器11在源程序的一個文件中定義的全局變量的作用域是___。A在本文件的全部范圍B該程序的全部范圍C一個函數的范圍D從定義該變量的位置開始至該文件的結束12下列程序運行后的輸出的數據是___。intsum(intn){intp=1,s=0,i;for(i=1;i<=n;i++)s+=(p*=i);returns;}main(){printf("sum(5)=%d\n",sum(5));}Asum(5)=151Bsum(5)=152Csum(5)=153Dsum(5)=15513下列程序運行后的輸出結果是___。intc=1;main(){staticinta=5;intb=6;printf("a=%d,b=%d,c=%d\n",a,b,c);func();printf("a=%d,b=%d,c=%d\n",a,b,c);func();}func(){staticinta=4;intb=10;a+=2;c+=10;b+=c;printf("a=%d,b=%d,c=%d\n",a,b,c);}Aa=5,b=6,c=1Ba=5,b=6,c=11Ca=5,b=6,c=1Da=5,b=6,c=1a=6,b=21,c=11a=5,b=21,c=11a=5,b=21,c=11a=6,b=21,c=11a=5,b=6,c=11a=5,b=6,c=11a=5,b=6,c=11a=5,b=6,c=11a=8,b=31,c=21a=8,b=31,c=21a=8,b=31,c=21a=5,b=31,c=2114運行下面的程序后,其輸出結果是___。main(){inta=6,b=2,c;c=f(a)/f(b);printf("%d\n",c);}intf(intx){inty;y=x++*x++;returny;}A9B6C36D1815下列程序輸出結果是___。#include<>my(){staticintx=3;x++;return(x);}main(){inti,x;for(i=0;i<=2;i++)x=my();printf("%d\n",x);}A3B4C5D616下列程序的輸出結果是___。#include<>intabc(intu,intv){intw;while(v){w=u%v;u=v;v=w;}returnu;}main(){inta=24,b=16,c;c=abc(a,b);printf("%d\n",c);}A8B6C5D417下列程序運行后的輸出結果是___。main(){staticchars[]="abcdefgca";p(s);printf("s[]=%s\n",s);}p(chars[]){inti,j;for(i=j=0;s[i]!='\0';i++)if(s[i]!='a'+2)s[j++]=s[i];s[j]='\0';}As[]=abcdefgcaBs[]=abdefgaCs[]=bcdefgcD程序有錯18下列程序運行后的輸出結果是___。voidmain(){intm=4,n=2,k;k=fun(m,n);printf("%d\n",k);k=fun(m,n);printf("%d\n",k);}intfun(intx,inty){staticintn=3,i=2;i+=n+1;n=i+x+y;return(n);}A12B12C12D121223251619下列程序運行后的輸出結果是___。intx=1;main(){inti=5;fun(i);printf("%d,%d\n",i,x);}fun(m)intm;{m+=x;x+=m;{charx='A';printf("%d\n",x);}printf("%d,%d\n",m,x);}A65BACAD656,16,16,76,76,16,16,75,720下列程序運行后,若從鍵盤輸入ABC!四個字符后,程序輸出是___。#include<>main(){voidreceiv();receiv();}voidreceiv(){charc;c=getchar();putchar(c);if(c!='!')receiv();putchar(c);}AABC!!BABC!ABC!CABC!!CBADABCABC二填空題(每空3分,共30分)1函數調用語句:fun((a,b),(c,d,e));,實參個數為___。2凡在函數中未指定存儲類別的局部變量,其默認的存儲類別為___。3在一個C程序中,若要定義一個只允許本源程序文件中所有函數使用的全局變量,則該變量需要定義的存儲類別為___。4C語言規定,調用一個函數時,實參變量和形參變量之間的數據傳遞方式是___。5運行下面程序,其輸出結果是___。#include<>intx,y;one(){inta,b;a=25,b=10;x=a-b;y=a+b;}main(){inta,b;a=9,b=5;x=a+b;y=a-b;one();printf("%d,%d\n",x,y):}6運行下面程序,其輸出結果是___。#include<>main(){voidprintd()intn=123;printd(n);}voidprintd(intn){inti;if(n<0){n=-n;putchar('-');}putchar(n%10+'0');if((i=n/10)!=0)printd(i);}7運行下面程序,從鍵盤輸入四個字符xyz#,其輸出是___。#include<>main(){voidrecursion();recursion();}voidrecursion(){charc;c=getchar();putchar(c);if(c!='#')recursion();putchar(c);}8以下程序的輸出結果是___。#include<>voidfun(intx){if(x/2>0)fun(x/2);printf("%d",x);}main(){fun(3);printf("\n");}9以下程序運行結果是___。inta=1;intf(intc){staticinta=2;c=c+1;return(a++)+c;}main(){inti,k=0;for(i=0;i<2;i++){inta=3;k+=f(a);}k+=a;printf("%d\n",k);}10.以下程序的運行結果是___。intk=0;voidfun(intm){m+=k;k+=m;printf("m=%d\nk=%d",m,k++);}main(){inti=4;fun(i++);printf("i=%dk=%d\n",i,k);}三程序填空題(每空3分,共30分)1一個整數稱為完全平方數,是指它的值是另一個整數的平方。例如81是個完全平方數,因為它是9的平方。下列程序是在三位的正整數中尋找符合下列條件的整數:它既是完全平方數,且三位數字中又有兩位數字相同:例如144(12*12)、676(26*26)等,程序找出并輸出所有滿足上述條件的三全數。程序如下:main(){intn,k,a,b,c;for(k=1;;k++){【1】if(n<100)【2】;if(n>999)【3】;a=n/100;b=【4】;c=n%10;if(flag(a,b,c))printf("n=%d=%d*%d\n",n,k,k);}}flag【5】{return(!((x-y)*(x-z)*(y-z)));}2以下程序的功能是應用近似公式計算ex的值。其中,函數f1計算每項分子的值,函數f2計算每項分母的值。共取nmax項之和作為e的近似值。floatf2(intn){if(n==1)return1;elsereturn【6】;}floatf1(floatx,intn){inti;floatj=【7】;for(i=1;【8】;i++)j=j*x;returnj;}#definenmax20main(){floatx,exp=;intn;printf("Inputxvalue:");scanf("%f",&x);for(n=1;n<nmax;n++)exp=【9】;printf("x=%f,exp(x)=%f\n",x,【10】_);}指針一單項選擇題(每題2分,共40分)1以下敘述中錯誤的是___。A在程序中凡是以“#”開始的語句行都是預處理命令行B預處理命令行的最后不能以分號表示結束C#defineMAX是合法的宏定義命令行DC程序對預處理命令行的處理是在程序執行的過程中進行的2若程序中有宏定義行:#defineN100,則以下敘述中正確的是___。A宏定義行中定義了標識符N的值為整數100B在編譯程序對C源程序進行預處理時用100替換標識符NC對C源程序進行編譯時用100替換標識符ND在運行時用100替換標識符3若有如下宏定義:#defineN2#definey(n)((N+1)*n)則執行下列語句:z=4*(N+y(5));后的結果是___。A語句有錯誤Bz值為68Cz值為60Dz值為1804以下程序運行后的輸出結果是___。#defineF(X,Y)(X)*(Y)main(){inta=3,b=4;printf("%d\n",F(a++,b++));}A12B15C16D205以下程序運行后的輸出結果是___。#definef(x)(x*x)main(){inti1,i2;i1=f(8)/f(4);i2=f(4+4)/f(2+2);printf("%d,%d\n",i1,i2);}A64,28B4,4C4,3D64,646若已定義a為int型變量,則___是對指針變量p的正確說明和初始化。Aintp=&a;Bint*p=a;Cint*p=*a;Dint*p=&a;7已知下列說明語句:staticinta[]={2,4,6,8}staticint*p[]={a,a+1,a+2,a+3};int**q;q=p;則表達式**(q+2)的值是___。A6B2C4D88下面是一個初始化指針的語句:int*px=&a;,其中指針變量的名字應該___。A*pxBaCpxD&a9若指針px為空指針,則___。。Apx指向不定Bpx的值為零Cpx的目標為零Dpx的地址為零10對下語句int*px[10];,下面正確的說法是___。Apx是一個指針,指向一個數組,數組的元素是整數型。Bpx是一個數組,其數組的每一個元素是指向整數的指針。CA和B均錯,但它是C語言的正確語句。DC語言不允許這樣的語句。11具有相同基類型的指針變量p和數組y,下列寫法中不合法的是___。Ap=yB*p=y[i]
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 七年級生物下冊 第四單元 生物圈中的人 第八章 人是生殖和發育 第二節 人的生長發育和青春期教學設計(4)(新版)蘇教版
- 七年級道德與法治下冊 第三單元 在集體中成長 第六課“我”和“我們”第2框《集體生活成就我》教學設計 新人教版
- 人教版 (2019)必修 第二冊Unit 3 The internet教案及反思
- 人教版八年級下冊第十一章 功和機械能11.2 功率教案配套
- 剪紙魔法(教學設計)皖教版三年級上冊綜合實踐活動
- 人教版 (新課標)八年級上冊第一節 自然資源的基本特征教學設計
- 七年級地理下冊 9.3 撒哈拉以南的非洲-黑種人的故鄉教學設計 晉教版
- 九年級化學上冊 第六單元 課題3 二氧化碳和一氧化碳教學設計 (新版)新人教版
- 一年級道德與法治上冊 2 老師您好教學設計 新人教版
- 七年級生物下冊 第二單元 第五章 第一節 激素與生長發育教學設計 (新版)冀教版
- 期中(試題)-2024-2025學年人教精通版(2024)英語三年級下冊
- 2025-2030中國煤焦油雜酚油行業市場發展趨勢與前景展望戰略研究報告
- 新版食品安全法培訓課件
- 2025年高考物理專項復習:電磁感應綜合題
- 第13課 亞非拉民族獨立運動 課件(共26張)2024-2025學年統編版高中歷史(必修)中外歷史綱要(下)
- 2020-2025年中國遼寧省風力發電行業發展潛力分析及投資方向研究報告
- 安全車輛測試題及答案
- (二模)咸陽市2025年高考模擬檢測(二)語文試卷(含答案)
- 東湖高新區2023-2024學年下學期期中七年級數學試題(含答案)
- 勞務派遣勞務外包項目方案投標文件(技術方案)
- 定額〔2025〕1號文-關于發布2018版電力建設工程概預算定額2024年度價格水平調整的通知
評論
0/150
提交評論