




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第2章C語言概 考點(diǎn)1C語言概 考點(diǎn)2C語言的構(gòu) 考點(diǎn)3標(biāo)識(shí) 考點(diǎn)4常 考點(diǎn)5變 第2章運(yùn)算符與表達(dá) 考點(diǎn)1C運(yùn)算符簡(jiǎn) 考點(diǎn)2運(yùn)算符的結(jié)合性和優(yōu)先 考點(diǎn)3逗號(hào)運(yùn)算符和逗號(hào)表達(dá) 考點(diǎn)4基本的算術(shù)運(yùn)算 考點(diǎn)6自加、自減運(yùn)算 考點(diǎn)7賦值運(yùn)算符與賦值表達(dá) 考點(diǎn)8復(fù)合的賦值運(yùn)算 位運(yùn) 考點(diǎn)10位運(yùn)算符與位運(yùn) 第4章基本語 考點(diǎn)1C語句分 考點(diǎn)2字符輸出函數(shù) 考點(diǎn)3字符輸入函數(shù) 考點(diǎn)4格式輸出函數(shù) 考點(diǎn)5格式輸入函數(shù) 第5章選擇結(jié) 考點(diǎn)1關(guān)系運(yùn)算符與關(guān)系表達(dá) 考點(diǎn)2邏輯運(yùn)算符與邏輯表達(dá) 考點(diǎn)3if語句的幾種形 考點(diǎn)6switch語 第6章循環(huán)結(jié) 考點(diǎn)1while語 考點(diǎn)2do…while語 考點(diǎn)3for語 循環(huán)的嵌 考點(diǎn)5break語 考點(diǎn)6continue語 第7章數(shù) 一維數(shù)組的定義與.............................................................................................................考點(diǎn)1一維數(shù)組的定義與元素的.....................................................................................考點(diǎn)2一維數(shù)組的初始 二維數(shù)組的定義與.............................................................................................................考點(diǎn)3二維數(shù)組的定義與元素的.....................................................................................考點(diǎn)4二維數(shù)組的初始 字符數(shù) 考點(diǎn)5字符數(shù)組的定義及其初始化和.............................................................................考點(diǎn)6字符串和字符串結(jié)束標(biāo) 考點(diǎn)7字符數(shù)組的輸入輸 考點(diǎn)8字符串處理函 第8章函 庫(kù)函 考點(diǎn)1庫(kù)函 考點(diǎn)2函數(shù)的定 考點(diǎn)3函數(shù)參數(shù)與函數(shù)返回 函數(shù)的調(diào) 考點(diǎn)5函數(shù)的說明及其位 考點(diǎn)6函數(shù)的遞歸調(diào) 標(biāo)識(shí)符的作用域與類 考點(diǎn)7標(biāo)識(shí)符的作用域與類 第9章指 考點(diǎn)1指針變量的定義和.................................................................................................考點(diǎn)2指針變量作為函數(shù)參 數(shù)組與指 考點(diǎn)3移動(dòng)指 考點(diǎn)5用數(shù)組名作為函數(shù)參 考點(diǎn)6字符串及字符指 考點(diǎn)7用函數(shù)指針變量調(diào)用函 第10章編譯預(yù)處理與動(dòng)態(tài)分 宏定 考點(diǎn)1不帶參數(shù)的宏定 考點(diǎn)2帶參數(shù)的宏定 文件包 關(guān)于動(dòng)態(tài)的函 考點(diǎn)4malloc()函 考點(diǎn)5free()函 第11章結(jié)構(gòu) 結(jié)構(gòu)體類型與變量的定義與........................................................................................... 考點(diǎn)3指向結(jié)構(gòu)體變量的指 第12章文 考點(diǎn)1文件的概念和文件指 考點(diǎn)2fopen()函數(shù)與fclose()函 文件的讀 考點(diǎn)3fgetc()函數(shù)與fputc()函 考點(diǎn)4fread()函數(shù)與fwrite()函 考點(diǎn)6fgets()函數(shù)與fputs()函 文件的定 考點(diǎn)7fseek()函數(shù)與隨機(jī)讀 1C
2章CC稱為ASCII碼表。字符在計(jì)算機(jī)內(nèi)部是以它對(duì)應(yīng)的ASCII碼來和運(yùn)算的。對(duì)應(yīng)整數(shù)用c成任意復(fù)雜的C程序,稱為結(jié)構(gòu)化程序設(shè)計(jì)。C語言是一種結(jié)構(gòu)化程序設(shè)計(jì)語言。2C#include#include/*預(yù)處理命令,包含頭文件intMax(intx,int /*Max{return /*x,y中較大值}{a=2;b=3;/*主函數(shù)/*主函數(shù)開始/*a、b、c/*a、b賦值/*Maxcprintf(“max=%d”,c*c}(main,中的位置如何。其他函數(shù)都是為main函數(shù)服務(wù)的。 2-11下列敘述中錯(cuò)誤的是().3-11.以下敘述中錯(cuò)誤的是( {/*/programming {/*programming*/ {/*/*programming*/*/ {/*programming*/ 5-11以下敘述中錯(cuò)誤的是().6-11以下敘述中正確的是(). 3 作為標(biāo)識(shí)符.因?yàn)镃語言中區(qū)分大小寫,所以B)選的"FOR"可以作為標(biāo)識(shí)符來用.A)選含有 3-14.以下 4-12.以下敘述中錯(cuò)誤的是 【解析】C語言規(guī)定標(biāo)識(shí)符只能由字母、數(shù)字和下劃線3種字符組成,且第一個(gè)字符必須為字母或劃線,排除;用戶定義標(biāo)識(shí)符中大小寫字母之間是有區(qū)別的并且應(yīng)盡量做到"見名識(shí)意",排除選項(xiàng)))C言中還定標(biāo)識(shí)不能C語的關(guān)字,選)敘述錯(cuò)正確答是選.-.下四個(gè)選,均是合法的戶標(biāo)識(shí)選項(xiàng)是( c-bgotoAP_0float_123temp6-12下列是用戶自定義標(biāo)識(shí)符的是(). a3_b3,8-12.以下選合法的標(biāo)識(shí)符是(~);,ott;,,,,.).42.1E52.1*105),3.E-23.0*10-2),.5E7等于0.5*107)??谠E:E前E常用的轉(zhuǎn)義字符及其含義9871。增加的一個(gè)字節(jié)中存放字符"\0"(ASCII碼為0)。這是字符串結(jié)束的標(biāo)志。標(biāo)識(shí)符常量 12.0Xa23028.5e-3-.1774e1.50x8A10,000C,C型常量有兩種表示形式:小數(shù)形式,小數(shù)形式表示的實(shí)型常量必須要有小數(shù)點(diǎn);指數(shù)形式,以e"或E"后跟一個(gè)整數(shù)來表示以10為底數(shù)的冪數(shù),且規(guī)定字母e或E之前必須要有數(shù)字,且e或E后面的指數(shù)必須為整數(shù).B)28錯(cuò)誤,八進(jìn)制中沒有數(shù)字8)選e.5中e后面的指數(shù)不是整數(shù))選5小點(diǎn)后面少數(shù).2-12.以下選,能用作數(shù)據(jù)常量的是(制中不能含有數(shù)字8,所以B)錯(cuò)誤.C)選e后面應(yīng)該是整數(shù)不能是小數(shù)1.5,所以C)錯(cuò)誤.D)選3-13C源程序中不能表示的數(shù)制是().6-14.以下選,不能作為合法常量的是 5即-231~(231-4unsigned4short即-215~(215-2Unsignedshort2long 即-231~(231-4unsigned4整型變量的定義形式為:,變量名標(biāo)識(shí)符,…;例如:inta,b,c;(a,b,c為整型變量)10-10-10-long10-例如:floatx,yx,y為單精度實(shí)型量),doublea,b,c(a,b,c為雙精度實(shí)型量變量可以在定義的同時(shí)賦給它初始值。例如:inta=3doublef=-2.7char 【解析】C語言的字符型常量中,允許用一種特殊形式的字符常量,就是以一個(gè)""開頭的字符.其中,"dd"表示用SII碼(八進(jìn)制數(shù))表示一個(gè)字符,本題中的chrc='即表示占一個(gè)字cSI. unsignedlonglongunsignedunsignedshort【解析】C語言中整型變量分為4種,基本型int,短整型shortint,長(zhǎng)整型longint和無符號(hào)型(unsignedint、unsignedshort、unsignedlong).因此B)選項(xiàng)不屬于C語言的類型. charcharcharchar2C1CC語言中逗號(hào)“,”也是一種運(yùn)算符,稱為逗號(hào)運(yùn)算符,其功能是把兩個(gè)表達(dá)式連接起來組成一個(gè)1,,nn的值為7.算術(shù)運(yùn)算符與算術(shù)表達(dá)式加式子。運(yùn)算對(duì)象包括常量、變量和函數(shù),例如:a+b,(a*2)/c,(x+r)*8-(a+b)/7,不同數(shù)據(jù)類型的量混合運(yùn)算時(shí),會(huì)發(fā)生自動(dòng)類型轉(zhuǎn)換,轉(zhuǎn)換規(guī)則是charintdouble,總4-14.現(xiàn)有定義inta;doubleb;floatc;chark;,則表達(dá)式a/b+c-k值的類型為 5-13.以下選值為1的表達(dá)式是(1-’\0’=1,’1’-0=49,’\0’-’0’=-
賦值運(yùn)算符與賦值表達(dá)式 2-16.有以下程序:{intx,y,z;} 【解析】zxy;,所以可以將上式表示成+).然后從左向右先計(jì)算表達(dá)式++,因?yàn)閤+先使用后自增,所以z的值為,x的值為.再計(jì)算逗號(hào)表達(dá)式第二個(gè)表達(dá)式++,此時(shí)y的值為,最后計(jì)算第三個(gè)表達(dá)式7-17.下面程序的運(yùn)行結(jié)果是( {inty=5,x=14;y=((x=3*y,x+6),x-} 3-15.若有定義語句:intx=10;,則表達(dá)式x-=x+x的值為 0--intk,a,b;unsignedlongw=5;doublex=1.42; 實(shí)型賦予整型,舍去小數(shù)部分。intfloatf=2;達(dá)式的運(yùn)算結(jié)果強(qiáng)制轉(zhuǎn)換成類型說明符所表示的類型。例如:(float)a把a(bǔ)轉(zhuǎn)換為實(shí)型,(int)(x+y)把x+y的結(jié)果轉(zhuǎn)換為整型。類型說明符和表達(dá)式都必須加括號(hào)(單個(gè)變量可以不加括號(hào)),如把(int)(x+y) 5-19.設(shè)有定義:intk=1,m=2;floatf=7;,則以下選錯(cuò)誤的表達(dá)式是 - 8-14.下列程序的輸出結(jié)果是( {doubled=3.2;intx,y;x=1.2;y=(x+3.8)/5.0;30【解析】本題考查復(fù)合的賦值表達(dá)式.本題中,x=1.2;,根據(jù)賦值運(yùn)算的類型轉(zhuǎn)換
位運(yùn)&1|1^1~01-39.有以下程序:{unsignedchara=8,c;c=a>>3;printf("%d\n",} 10 ,右移位后為 #include{unsignedchara=2,b=4,c=5,d=a|b;d&=c;printf("%d\n",d); 3456【解析】&按位與,如果兩個(gè)相應(yīng)的二進(jìn)制位都為1,則該位的結(jié)果值為1,否則為0.|按位或,兩個(gè)相應(yīng)的二進(jìn)制位中只要有一個(gè)為1,該位的結(jié)果值為1.2的二進(jìn)制 ,4的二進(jìn)制為 43-39.設(shè)有以下語句:inta=1b=2c;c=a^(b<<2); 7986 4-40.有以下程序:{unsignedchara=8,c;} 10 5-40有以下程序{inta=5,b=1,t;} 61指定移動(dòng)的位數(shù),丟棄,低位補(bǔ)0.將5變換為二進(jìn)制數(shù)為101,左移2位后為10100,1轉(zhuǎn)換為二{unsignedchara=2,b=4,c=5,d;d=a|b;d&=c;printf("%d\n",d);} 34560010,b的值轉(zhuǎn)換成二進(jìn)制為:00000100,將a、b進(jìn)行按位或運(yùn)算(參加計(jì)算的兩個(gè)位只要有一個(gè)7-40.下面程序段的輸出為( #include"stdio.h"{0intr=9; 2481C
4章基本語句C語句C語言中,所有的數(shù)據(jù)輸入/輸出都是由庫(kù)函數(shù)完成的,所以要用預(yù)編譯命令將有關(guān)“頭文件”包括到源文件中,即#include<stdio.h>。putchar函數(shù)的調(diào)用形式為:putchar變量或常量),例如:putchar('A');putchar(ch);putchar('\n');dufcs1-16.有以下程序:#include<stdio.h>{ints,t,A=10;doubleB=6;s=sizeof(A);t=sizeof(B);} 2-17有以下程序#include<stdio.h>{charc1,c2;} 【解析】本題目中字符變量1是字符A'的SI碼加上4,即69所對(duì)應(yīng)的字符字符變量是字符A'的CI碼加上3,即68所對(duì)應(yīng)的字符''.但是打印輸出時(shí),1以c的格式輸出,所以是c以d,8.3-16.有以下程序:#include<stdio.h>{inta=1,b=0;}4-21.有以下程序:{inta=1,b=0; 4-27.設(shè)有如下程序段:unsignedintx=0xFFFF*x的初值為十六進(jìn)制數(shù)*/printf("%u\n",x);} -7-16.以下程序的輸出結(jié)果是( {inta=20;}20,20,20,20,{char} );這個(gè)地址就是a,b變量在內(nèi)存中的位置。1-17有以下程序#include<stdio.h> charscanf("%c%c",&a,&b); } 33-17有以下程序#include<stdio.h>{inta1,a2;charc1,c2;}若想通過鍵盤輸入,使得1的值為22的值為1的值為字符c2的值為字符,程序輸出結(jié)果13b,確的入格式以代表空<>代回)( ).4-31.有以下程序:{charc1,c2,c3,c4,c5,c6;c5=getchar();c6=getchar();} 5-18.設(shè)變量均已正確定義,若要通過scanf("%d%c%d%c",&a1,&c1,&a2,&c2);語句為變量格字符)().6-13.執(zhí)行以下程序時(shí)輸入 {inta=1,b;}空格>854.0<回車>,a和b的值分別是 8-15有以下程序:{chara,b,c,d;} 115章選擇結(jié)構(gòu)關(guān)系運(yùn)算符與關(guān)系表達(dá)式C語言中的關(guān)系運(yùn)算符:<(小于)、<=(小于或等于)、>(大于)、>=(大于或等于)、==(等關(guān)系表達(dá)式即用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式連接起來的式子,形式為:表達(dá)式關(guān)系運(yùn)算符表達(dá)6-21.有以下定義:inta;longb;doublex,y;則以下選正確的表達(dá)式是 邏輯運(yùn)算符與邏輯表達(dá)式!邏輯表達(dá)式即用邏輯運(yùn)算符將兩個(gè)表達(dá)式連接起來的式子,形式為:表達(dá)式邏輯運(yùn)算符表達(dá) (c>=2&&真if3if單分支,if(表達(dá)式語句;——如果表達(dá)式的值為真(或非零,則執(zhí)行其后的語句,否雙分支,if(表達(dá)式1;else語句2;——如果表達(dá)式的值為真(或非零,則執(zhí)行語句1,否則執(zhí)行語句2A或者做B”多分支,if(1語句1;elseif(表達(dá)式2)2;elseif(n)語句n;else語句n+1;——依次判斷表達(dá)式的值,只要真,就執(zhí)行對(duì)應(yīng)的語句,然后結(jié)束整個(gè)if,如果n個(gè)表達(dá)式都為假,執(zhí)行語句n+1,然后結(jié)束整個(gè)if。3-18.若變量已正確定義,在if(W)printf("%d\n",k);中,以下不可替代W的是 ).【解析】選項(xiàng)A)是的表達(dá)式,C語言中沒有<>運(yùn)算符.7-13.以下4個(gè)選,不能看作一條語句的是( ;return1-19.有以下程序:#include<stdio.h>{inta=0,b=0,c=0,d=0;if(a=1)b=1;c=2;elsed=3;} 【解析】本題中if(a=1)b=1;與elsed=3之間多了語句c=2;所以會(huì)出現(xiàn)else語句的位置錯(cuò)誤3-19.有以下程序段:intabc;a=10;b=50;if(a>b)a=b,b=c;c=a;printf("a=%db=%dc=%d\n",a,b,c); a=10b=50a=10b=50a=10b=30a=50b=304-18.在執(zhí)行下述程序時(shí),若從鍵盤輸入6和8,則結(jié)果為( {inta,b,s;printf("%d",s);4-20.有以下程序:{intx;if(x<=3);elseif(x!=10)} 5-16.以下程序運(yùn)行后的輸出結(jié)果是( {intprintf("%d%d%d\n",i,j,k);}12232223分為兩部分i++==1和(++j==3||k++==3它們的關(guān)系是"且"的關(guān)系,所以兩部分都會(huì)被執(zhí)行,其中i++==1是先判斷i是否等于1因?yàn)?+在后面此時(shí)i=1,在執(zhí)行完后i=2.然后執(zhí)行第二部分(++j==3||k++==3),又分為兩部分:++j==3和k++==3兩部分,這兩部分是"或"的關(guān)系,如果第加1然后判斷j是否等于3,這部分的結(jié)果為真,所以后面的部分不執(zhí)行,因此最后的結(jié)果為i=2j=36-17.若執(zhí)行下面的程序時(shí),從鍵盤輸入6和2,則輸出結(jié)果是().{inta,b,k;elsek=b%a;53206-24.有以下程序:{if(a=1)b=1;c=2;elsed=3;} if(x>y&&elsey++;else4if這時(shí)要特別注意if和else的配對(duì)問題?!癳lse總是與它前面最近的if配對(duì)。”2-19有以下程序#include<stdio.h>{intx=1,y=0;if(!x)y++;elseif(x==0)if(x)y+=2;elsey+=3;printf("%d\n",} A)B)C)D)elseif語句中的內(nèi)容,判斷(x==0)是否成立,因?yàn)閤為1所以條件不成立,所以elseif內(nèi)部的8-16.下列程序的運(yùn)行結(jié)果是( #include"stdio.h"{intx=-9,y=5,z=7;elsez+=1;A)B)C)D)fee,,,f,e,i;0跳過f子,執(zhí)le句接著去i語句后一條語C語的語定s子句總是lefflf<y時(shí)0當(dāng)&時(shí)=1.條件表達(dá)式的形式:12表達(dá)式3,其求值規(guī)則為:如果表達(dá)式1的值為真,則以表達(dá)式2的值作為整個(gè)條件表達(dá)式的值,否則以表達(dá)式3的值作為整個(gè)條件表達(dá)式的2-18.若有定義intx,y;并已正確給變量賦值,則以下選與表達(dá)式(x-y)?(x++):中的條件表達(dá)式(x-y等價(jià)的是(). elsek=0;elsek=0;elseelseif(b>c)k=1;elsek=0;8-20有如下嵌套的if語句if(a<b)if(a<c)k=a;elsek=c;elsek=c;以下選與上述if語句等價(jià)的語句是(選項(xiàng)B)中語句"((b<c)?a:b):((b>c)?b:c)"錯(cuò)誤,選項(xiàng)D)中沒有比較b、c大小.switch6switchcase常量表達(dá)式1:語句1;case常量表達(dá)式2:語句…case常量表達(dá)式n:語句n; }在1-20.有以下程序:#include<stdio.h>{intx=1,y=0,a=0,b=0;switch(x){case1:{case0:a++;break;case1:b++;break;}case2:a++;b++;break;case3:a++;b++;}printf("a=%d,b=%d\n",a,} 【解析】cae常量表達(dá)式只是起語句標(biāo)號(hào)作用,并不是該處進(jìn)行條件判斷.在執(zhí)行swth語句時(shí),根據(jù)stch的表達(dá)式,找到與之匹配的cse語句就從此cse子句執(zhí)行下去,不在進(jìn)行判斷,直到碰到bak或函數(shù)結(jié)束為止.所以執(zhí)行內(nèi)層iy)時(shí)只執(zhí)行了+,此時(shí)a的值為1.然后執(zhí)行外層e2;a,b.2-20.若有定義:floatx=1.5;inta=1,b=3,c=2;確的switch語句是({case1: case2+1:printf("**\n");}{case1:case2:printf("**\n");{case1.0:case2.0:printf("**\n");{case1:casec:printf("**\n");【解析】B)選switch((int)x;語句中不應(yīng)該有最后的分號(hào).switch(expr1),中的1不能用浮點(diǎn)類型或g類型,也不能為一個(gè)字符串,所以)錯(cuò)誤e后面常量表達(dá)式的類.3-20下列敘述中正確的是().7-19.請(qǐng)閱讀以下程序:{intx=1,y=0,a=0,b=0;{case{case0:a++;break;}case2:}printf("} 6章循環(huán)結(jié)構(gòu)while1while其中表達(dá)式是循環(huán)條件,語句為循環(huán)while語句重復(fù)下面的動(dòng)作:計(jì)算表達(dá)式的值,當(dāng)值為真(0)時(shí),執(zhí)行循環(huán)體語句,直到表達(dá)式為假,則while語句結(jié)束。4-19有以下程序:{intk=5,n=0;{{default:break;case1:n+=k;case2:case3:}}}程序運(yùn)行后的輸出結(jié)果是 A)B)C)D)參考答案【解析】本題考查的是swch語句.在sch語句中,表達(dá)式的值與某一個(gè)case后面的常量表達(dá)式的值相等時(shí),se后面的語句,若所有的cse匹配的,就執(zhí)行dut后面的語句,各個(gè)cse和flt的出現(xiàn)次序不影響執(zhí)行結(jié)果.所以在本題中,當(dāng)k=5和k4的時(shí)候cse都沒有與其匹配的值,所以執(zhí)行了deut語句;當(dāng)k3時(shí),執(zhí)行ce3:+"n,f;當(dāng)2,ae2:se3:n得5a;=時(shí),"e1:k;ce2:se3:+使得,=
do…whiledo…while語句的形式:do{語句}while(表達(dá)式do…while循環(huán)與while循環(huán)的不同在于:它先執(zhí)行循環(huán)體中的語句,然后再判斷表達(dá)式是否為真如果為真則繼續(xù)循環(huán);如果為假則終止循環(huán)。do…while循環(huán)至少要執(zhí)行一次循環(huán)體8-22.有以下程序段intn,t=1,s=0;{ 8-23.若運(yùn)行以下程序時(shí),從鍵盤輸入ADescriptor<CR>(<CR>表示回車),則下面程序的運(yùn)行 {char{{case'a':casecase'e':casecase'i':casecase'o':casecase'u':case'U':v1+=1;}}switch表達(dá)式{…}①系統(tǒng)在執(zhí)行時(shí)計(jì)算開關(guān)表達(dá)式的值;②根據(jù)所得的值在各個(gè)cse標(biāo)號(hào)表達(dá)式中尋找匹配,直到發(fā)現(xiàn)與表達(dá)式匹配的標(biāo)號(hào)(本例中匹配的是s’:);③找到匹配后執(zhí)行后面相應(yīng)的語句表,順序往下執(zhí)行;④如果無相匹配的標(biāo)號(hào),若存在fl標(biāo)號(hào),則執(zhí)行該語句標(biāo)號(hào)后面的語句表1;當(dāng)du,sc.3for
for則整個(gè)for語句結(jié)束。 do{++n;}whilewhile(1){while(n);{n--for(n=0,i=1;;i++)【解析】選項(xiàng)A)中do后面的語句只執(zhí)行了一次便結(jié)束了循環(huán);B)選條件while(1)成立,所以是死循環(huán);C)選n的值為10,而循環(huán)體為空語句,所以while(n)為真,進(jìn)入死循環(huán);D)2-21.有以下程序:#includestdio.h>{ for(;y>0;y--if(y%3==0)printf("%d",--} 【解析】第一次for循環(huán),y的值為9,y%3的值為0,滿足條件打印--y,即先減一后打印,所以打 3-22.有以下程序:#include<stdio.h>{intswitch(k){default:c+=k;case2:c++;break;case4:}} 7539whe,,遇到bk跳出;如果沒有匹配的語句塊,則執(zhí)行deal語句塊se與ut沒有順序之分.所以第一次循環(huán)k的值為1,執(zhí)行=c的值為1,再執(zhí)行ce2后的語句c的值為2,遇到5-32有以下程序{intc=0,k;{default:c+=k;case2:c++;break;case4:c+=2;break;}} 9753{intn;floats;} for(n=100;n>1;n--s=sprintf("%6.4f\n8-21.在下列選,沒有構(gòu)成死循環(huán)的是( {}intint【解析】選項(xiàng)A)的循環(huán)表達(dá)式的條件永久為1,并且小于的數(shù)與取余不超過,所以在循環(huán)體內(nèi)表達(dá)式i%100的值不大于,break語句不會(huì)執(zhí)行,所以是死循環(huán);選項(xiàng)B)的括號(hào)for(x=3;x<6;x++)上面程序片段的輸出結(jié)果是().循環(huán)的嵌套for(i=0;i<4;i++,i++for(k=1;k<3;k++); *【解析】由于內(nèi)層循環(huán)fork=1k<3k++)后面直接跟了空語句";"所以在循環(huán)內(nèi)部什么操作2-22.有以下程序:#include<stdio.h> inti,j,m=1;{for(j=3;j>0;j--{if(i*j>3)break;}}} 2-27.有以下程序:#includestdio.h>{int{case0:{case0:a[i]++;break;case1:a[i]--;}break;case}for(i=0;i<4;i++)printf("%d",a[i]);} 030205334304的值變成3;第二次循環(huán)i的值為1,i%2為1,執(zhí)行case1:a[i]=0;所以a[1]的值變成0;第三次循環(huán)i的值為2,i%2為0,執(zhí)行switch(a[2]%2)中的case1語句后的內(nèi)容a[2]--,a[2]的值變成4;第四次循環(huán)i的值為3,i%2為1,執(zhí)行case1:a[i]=0;所以a[3]的值變成0.5-20.有以下程序:{inti,j,m=55;} 0123for(i=0;i<4;i++,i++) *break語句與continue5break6continue1-22.有以下程序段:#include<stdio.h>inti,n;for(i=0;i<8;i++ n=rand()%5;switch(n){casecase3:printf("%d\n",n);break;case2:case4:printf("%d\n",n);continue;case0:exit(0);}} 【解析】cae常量表達(dá)式只是起語句標(biāo)號(hào)作用,并不是該處進(jìn)行條件判斷.在執(zhí)行swch語句時(shí),根據(jù)stch的表達(dá)式,找到與之匹配的cse語句就從此cse子句執(zhí)行下去,不再進(jìn)行判斷,直到碰到beak或函數(shù)結(jié)束為止.簡(jiǎn)單的說bak是結(jié)束整個(gè)循環(huán)體,而ciue是結(jié)束單次循環(huán).)選當(dāng)產(chǎn)生的隨機(jī)數(shù)n為4時(shí)要執(zhí)行打印操作.)選當(dāng)產(chǎn)生的隨機(jī)數(shù)為1和2時(shí)分別執(zhí)行ae與e4后面語句的內(nèi)容.由于存在brak語句所以for循環(huán)不是固定執(zhí)行8次,執(zhí)行次數(shù)與.7章數(shù)組數(shù)組的定義方式為:[常量表達(dá)式inta[10];說明整型數(shù)組a,有10個(gè)元素。floatb[20];說明實(shí)型數(shù)組b,有10個(gè)元素charch[30ch30個(gè)元素。 #defineN10intx[N];intintintintx[【解析】數(shù)組說明的一般形式為:類型說明符數(shù)組名[常量表達(dá)式].B)中N是變量,不能用變量定義數(shù)組長(zhǎng)度.C)選數(shù)組長(zhǎng)度是的一串?dāng)?shù)字.定義數(shù)組時(shí)必須為其指明長(zhǎng)度,D)選數(shù)組長(zhǎng)度為空,所以.初始化賦值的一般形式為:[常量表達(dá)式]={值,值,…,值};例如:inta[10]={0,1,2,3,4,5,6,7,8,9};4-25.現(xiàn)有如下程序段:{int{} 8-29.有以下程序:{intfor(i=0;i<12;i++)} 12356791011111【解析】在for(i=0;i<12;i++)c[s[i]]++中,數(shù)組元素s[i]的值作為數(shù)組c的下標(biāo),當(dāng)退出例如:inta[3][4];a,其下標(biāo)變量的類型為整型。該數(shù)組的下標(biāo)變量共有3×4個(gè),從a[0][0]到a[2][3]。 intint for(i=0;i<3;i++)printf("%d",x[2-i][i]);95747596 intintintint5-30.下面的程序段運(yùn)行后,輸出結(jié)果是( inti,j,x=0;staticinta[8][8];90012000023400004560000000000000000002-28.有以下程序:#include<stdio.h>{intfor(i=0;i<3;} 3419 intnum[][3]={{1,2},3,4,5,6intnum[2][4]={{1,2},{3,4},{5,6}intnum[]={1,2,3,4,5,6int4-22.有以下程序:{int }}1236711 i字符數(shù)在C語言允許用字符串的方式對(duì)數(shù)組作初始化賦值。例如:charc[]={"C是由C編譯系統(tǒng)自動(dòng)加上的。6-23有以下程序{inti,n=0;if(s[i]>=‘'0'‘&&} A)B)C)D)可用printf函數(shù)和scanf函數(shù)輸出輸入一個(gè)字符數(shù)組中的字符串,格式控制符用用1-29.設(shè)有定義:chars[81];inti=0;,以下不能將一行(不超過80個(gè)字符)帶有空格的字符 do{scanf("%c",&s[i]);}while(s[i++]!='\n');3-29.有以下程序段:#includeintj;floaty;charname[50];scanf("%2d%f%s",&j,&y,name);當(dāng)執(zhí)行上述程序段,從鍵盤上輸入555667777abc后,y的值為 式命令可以說明最大域?qū)捲诎俜痔?hào)(%)與格式碼之間的整數(shù)用于限制從對(duì)應(yīng)域讀入的最大字符數(shù).7-21.有以下語句:charb[8];intc;,確的輸入語句是 數(shù),根據(jù)語句charb[8];intc;可確定正確的輸入語句是D)選項(xiàng).字符串輸出函數(shù)格式:puts字符數(shù)組名格式 gets(字符數(shù)組名格式:strcpy(字符數(shù)組1,字符數(shù)組功能:把字符數(shù)組21中格式:strcmp(字符數(shù)組名1,字符數(shù)組名功能:按ASCII碼順序比較兩個(gè)數(shù)組中的字符串,并由函數(shù)返回值返回比較結(jié)果。字符1字符2221字符2,測(cè)字符串長(zhǎng)度函數(shù)格式:strlen(字符數(shù)組名功能:測(cè)字符串的實(shí)際長(zhǎng)度(不含字符串結(jié)束標(biāo)志‘\0’)并作為函數(shù)返回值1-32.有以下程序#include<stdio.h>{chars[]="012xy\08s34f4w2";inti,n=0;for(i=0;s[i]!=0;i++if(s[i]>='0'&&s[i]<='9')n++;}程序運(yùn)行后的輸出結(jié)果是 0378參考答案4-29.有以下程序:#include<stdio.h>{chara[10]="abcd";}程序運(yùn)行后的輸出結(jié)果是 參考答案6-16.當(dāng)用戶要求輸入的字符串中含有空格時(shí),應(yīng)使用的輸入函數(shù)是 參考答案.,.6-19.已有定義:charc;,程序前面已在命令行中包含ctype.h文件,不能用于判斷c中的字符 6-22.運(yùn)行下面程序時(shí),從鍵盤輸入字母H,則輸出結(jié)果是( {char{case‘H’:printf("case‘G’:printf("Goodmorning!\n");default:printf("ByeBye!\n");}}GoodByeBye!Bye default后面的語句.本題中ch為字符’H’,所以case‘H’條件中的語句將被執(zhí)行,由于沒有break語句,所以case‘G’后的語句也被執(zhí)行,由于同樣的缺少break語句,所以default后的語{char} 【解析】char*strcat(char*dest,char*src)的功能是:把src所指字符串添加到dest結(jié)7-24.有以下程序:{char} 967.r()rpp0,’’a’de然后通過se)數(shù)組元0地址基礎(chǔ)上移動(dòng)三,然q所指符串的容p所指的空間,從""后全覆,0‘,’b.輸出se), 8章函數(shù)庫(kù)函1庫(kù)函數(shù)由printf、scanf、getchar、putchar、gets、puts、strcat等函數(shù)均nx1-14.若有代數(shù)式 nx2返回類型函數(shù)名(參數(shù)列表){}5-27.有以下程序:voidfun(intp){int{inta=1; intfun1(doublea){returnintfun2(doublex,double{doublea=0,b=0;}{double 56-27有以下程序#include<stdio.h>intfun(inta,intb){if(b==0)return}{} 1234 {intm=4,n=2,k;}fun(intm,int{return(m*m*m-80函數(shù)的調(diào)用如果函數(shù)有返回值,那么函數(shù)調(diào)用表達(dá)式可以出現(xiàn)在其他表達(dá)式中,例如r=sqrt(2),或者作為另一個(gè)函數(shù)調(diào)用的實(shí)際參數(shù),例如pow(sqrt(2),2)。2-23.有以下程序:#includestdio.h>intfun(intx,inty{if(x!=y)return((x+y)/2);Elsereturn(x);}{inta=4,b=5,printf("%d\n",}6383-23.有以下程序:#include<stdio.h>intf(intx,int{return((y-x)*x);}{inta=3,b=4,c=5,d;} 7893-27.有以下程序:#includestdio.h>voidfun(inta,intb{ t=a;a=b;}{ for(i=0;i<10;i+=2)fun(c[i],for(i=0;i<10;i++)printf("%d,",c[i]);} 向地傳送給實(shí)參.因此在函數(shù)調(diào)用過程中,形參的值發(fā)生改變,而實(shí)參中的值不會(huì)變化,所以數(shù)組c4-17.以下程序的運(yùn)行結(jié)果是( intk=0;voidfun(int{m+=k;k+=m;printf("m=%dk=%d",m,k++);}{intprintf("i=%d}m=4k=5i=5m=4k=4i=5m=4k=4i=4m=4k=5i=4【解析】由于在main()函數(shù)中,i=4,所以就調(diào)用fun(4),則輸出"m=4k=4".然后變量k增1等于5,變量i增1等于5,所以main()函數(shù)的"printf("i=%dk=%d\n",i,k);"語句輸出"i=54-37.有以下程序:intfun(intx,inty)elsereturn(x);}{inta=4,b=5,c=6;} 3685-22.下面函數(shù)調(diào)用語句含有實(shí)參的個(gè)數(shù)為( 12455-25有以下程序#include<stdio.h>voidfun(inta,intb){intt=a;a=b;}{intfor(i=0;i<10;i+=2)} C"",fn雖,,,CC,,9.rn,io.1-23.有以下程序:#include<stdio.h>intf(intx);{intn=1,m;}intf(int{returnx*2; A)B)C)D)3-33設(shè)有如下函數(shù)定義#include<stdio.h>intfun(intk){if(k<1)returnelseif(k==1)return1;elsereturnfun(k-1)+1;} A)B)C)D)【解析】首先n=fun(3),3被當(dāng)作參數(shù)傳遞進(jìn)去,這就進(jìn)行了一次調(diào)用,3被當(dāng)做參數(shù)傳進(jìn)去后,程序會(huì)執(zhí)行這句elsereturnfun(k-1)+1這就調(diào)用了第二次,而參數(shù)是3-1也就是2.2被當(dāng)做參數(shù)傳進(jìn)去后,程序會(huì)執(zhí)行這句elsereturnfun(k-1)+1這就調(diào)用了第三次,而參數(shù)是2-1也就是1.1被當(dāng)做參數(shù)傳進(jìn)去后,程序會(huì)執(zhí)行這句elseif(k==1)return1不再遞歸調(diào)用,fun(intx){intreturn}{ A)B)C)D)參考答案【解析】因?yàn)閒un(intx)是一個(gè)遞歸函數(shù),所以主函數(shù)中fun(7)經(jīng)過三次遞歸調(diào)用,其過程可以所以最后的輸出結(jié)果為標(biāo)識(shí)符的作用域與類考點(diǎn)7標(biāo)識(shí)符的作用域與類變量標(biāo)識(shí)符有效的范圍稱變量的作用C語言中的變量,按作用域范圍可分為兩種,即局部變量和全局變量變量值存在的時(shí)間稱變量的生存期靜態(tài)方式:是指在程序運(yùn)行期間分配固定的空間的方式用戶空間可以分為三個(gè)部分:程序區(qū);靜態(tài)區(qū);動(dòng)態(tài)區(qū)靜態(tài)局部變量只賦一次初值1-33.有以下程序#include<stdio.h>fun(intx,inty){staticintm=0, return}{intj=1,m=1, }執(zhí)行后的輸出結(jié)果是 5,5,11,11,參考答案量保留上一次函數(shù)調(diào)用結(jié)束時(shí)的值.本題子函數(shù)fun中的變量i和m均為靜態(tài)局部變量.所以第一次調(diào)用fun函數(shù),返回m的值為5,第二次再調(diào)用fun函數(shù)時(shí),i的值為3,m的值已經(jīng)是5了,所以執(zhí)行 【解析】auo:函數(shù)中的局部變量,動(dòng)態(tài)地分配空間,數(shù)據(jù)在動(dòng)態(tài)區(qū)中,在調(diào)用該函數(shù)時(shí)系統(tǒng)會(huì)給它們分配空間,在函數(shù)調(diào)用結(jié)束時(shí)就自動(dòng)釋放這些空間.ger:為了提高效率,C語言允許將局部變量的值放在PU中的寄存器中,這種變量叫寄存器變量",只有局部自動(dòng)變量和形式參數(shù)可以作為寄存器變量.ern:外部變量(即全局變量)是在函數(shù)的外部定義的,它的作用域?yàn)閺淖兞慷x處開始,到本程序文件的末尾.如果外部變量不在文件的開頭定義,其有效的作用范圍只限于定義處到文件終了tc:靜態(tài)局部變量屬于靜態(tài)類別,在靜態(tài)區(qū)內(nèi)分配單元.在程序整運(yùn)行期都不釋.2-33有以下程序#include<stdio.h>intfun(){staticintx=1;return}{inti,for(i=1;i<=3;i++) printf("%d\n",s);} 0x,在靜態(tài)區(qū)內(nèi)分配單元.在程序整個(gè)運(yùn)行期間都不釋放.所以第一次循環(huán)s的值為,第二次循環(huán)中,返回的x的值為,所以s的值為,第三次循環(huán),返回的x的值為,2-34在一個(gè)C源程序文件中所定義的全局變量,其作用域?yàn)?).3-34.有以下程序:#include<stdio.h>intf(intn);{ints=f(a);s=s+f(a);}intf(int{staticinta=1;return} 987后空間沒有釋放.再執(zhí)行s=s+f(a)時(shí),s的值為4,調(diào)用f(a)函數(shù)時(shí)n的返回值為n=3+2=5,且4-32.以下程序的運(yùn)行結(jié)果是( #include<stdio.h>inta=1;intf(intc){staticinta=2;}main(){inti,k=0;}中語句k+=f(a)的a是其局部變量,所以兩次調(diào)用實(shí)際上都是調(diào)用f(3).第一次調(diào)用時(shí),fun函數(shù)中c=4,表達(dá)式(a++)+c的值為6,a遞增為3,k=6.第二次調(diào)用時(shí),fun函數(shù)中c=4,表達(dá)式5-31.有以下程序:intf(intn);{inta=3,s;}intf(int{staticinta=1;return} 789【解析】s=f(a)表達(dá)式第一次調(diào)用f(n)函數(shù)時(shí),f(n)函數(shù)運(yùn)行結(jié)果為n=4,a=2,即s 【解析】本題的考查點(diǎn)是變量的類型.extern、register、static、auto分別是定義自動(dòng)變量、寄存器變量、靜態(tài)變量、外部變量,其中,自動(dòng)變量和寄存器變量屬于動(dòng)態(tài),調(diào)用時(shí)7-34.閱讀下列程序,則運(yùn)行結(jié)果為( #include"stdio.h"{staticintx=3;{int3456出函數(shù)以后,下次再進(jìn)入該函數(shù)時(shí),靜態(tài)局部變量仍使用原來的單元,靜態(tài)局部變量的初值是在8-37.有以下程序:intfun(){staticintx=1;x*=2;return}{inti,s=1;} 01489章指計(jì)算機(jī)中的數(shù)據(jù)都是存放在器中的器中的一個(gè)字節(jié)稱為一個(gè)內(nèi)存單元,不同的數(shù)據(jù)類型所占用的內(nèi)存單元數(shù)不內(nèi)存單元的編號(hào)也叫做地址某個(gè)內(nèi)存單元的指針和它的C語言中,變量所占據(jù)的連續(xù)的內(nèi)存單元的起始編號(hào),即稱變量的地址,也稱為變量的指C語言中,允許用一個(gè)變量來存放別的變量的地址,這種變量稱為指針變量由于可以間接,我們稱就指針變量“指向”某個(gè)變量。例如,指針變量p中保存了變量的地址,就p指向a1指針變量的定義例如:int*p;表示定義一個(gè)名字為p的指針變量,它用來保存一個(gè)整型變量的地址可以一次定義多個(gè)指針變量,但是每個(gè)前面都要加上‘*’號(hào)。如int取地址表達(dá)式:&變量名,表示取變量的地址,如&a表示變a的地址,要a已經(jīng)定義inta;int也可以在定義的時(shí)候初始化,int間接表達(dá)式:*指針變量名,表示指針變量所指的變量,如*p相當(dāng)于a,因?yàn)閜剛才已經(jīng)指向了a。指針變量p可以指向a,當(dāng)然也可以指向其他的整型變量。4-15.以下定義語句中正確的是( intcharfloatdouble【解析】本題考查變量的定義方法.如果要一次進(jìn)行多個(gè)變量的定義,則在它們之間要用逗號(hào)隔開因此選項(xiàng)A)和D)錯(cuò)誤;在選項(xiàng)C)中,變量c是一個(gè)浮點(diǎn)型指針,它只能指向一個(gè)浮點(diǎn)型數(shù)據(jù),不能指向指針變量;B1-25設(shè)已有定義:floatx;,則以下對(duì)指針變量p進(jìn)行定義且賦初值的語句中正確的是().intfloatfloatfloat【解析】指針是用來存放地址的變量,用(*指針變量名)的形式定義.賦值時(shí)應(yīng)將某個(gè)變量地址即&x賦給指針變量,所以選擇B).2-25.有以下程序:#includestdio.h>{intprintf("Inputn:");printf("outputn:");} int法應(yīng)為printf("%d\n",*p).3-24.若有定義語句:doublea,*p=&a;以下敘述中錯(cuò)誤的是 【解析】在變量定義doublea*p=&a中,*號(hào)是一個(gè)指針運(yùn)算符,而非間址運(yùn)算符,所以A)3-25.若有定義語句:doublex,y,*px,*py;執(zhí)行了px=&x;py=&y;之后,正確的輸入語句 scanf("%lf%le",px,scanf("%f%f"&x,scanf("%f%f",x,scanf("%lf%lf",x,scanf("%lf%lf",xy);應(yīng)為scanf("%lf4-16.若在定義語句inta,b,c,*p=&c;之后,接著執(zhí)行以下選 scanf("%d",scanf("%d",4-33.設(shè)有定義:intn1=0,n2,*p=&n2,*q=&n1;,以下賦值語句中與n2=n1;語句等價(jià)的是 .,p指向了變量n2所在的單元,指針變量q指向了變量n1所在的單元,要使得n1的值賦給n2,可用指針變量q所指向的存儲(chǔ)單元的賦給指變p所指的,p*7-15若有說明:int*p,m=5,n;,以下正確的程序段是().7-28.以下程序運(yùn)行后的輸出結(jié)果是( voidf(intn,int*r){intelsef(--n,&r1);}{intm=7,r;}2130時(shí)調(diào)用函數(shù)f(7,&r);n=7,執(zhí)行else子句,調(diào)用f(6,&r1);后n=6,執(zhí)行語句if(n%3==0)8-25.有以下程序:voidf(int*p,int*q);{int}voidf(int*p,int 【解析】在f(int*p,int*q)函數(shù)中,執(zhí)行p=p+1將p所對(duì)應(yīng)的地址加1,而*q=*q+1是將q所指數(shù)組與指針inta[10];int*p=二維數(shù)組在內(nèi)存中是按行依次存放的。inta代表二維數(shù)組首地址。a+i代表第i行的首地址,a[i]≡*(a+i)。3-28有以下程序#include<stdio.h>{intfor(i=0;i<3;i++) }若運(yùn)行時(shí)輸入:246<回車>,則輸出結(jié)果為 202024244-30.若有定義inta[2][3];,則對(duì)a數(shù)組的第i行第j列(假設(shè)i,j已正確說明并賦值)元素值的 】題了數(shù)素.選項(xiàng)A)中ai指向了數(shù)組a的第i1行a)則是第+1行第0列的地址值++j指向了數(shù)組a第+1行j1列,(+)取到的是數(shù)組a的i].7-22.有以下程序:{inta[--p;} 7-23.若有以下說明和語句,請(qǐng)選出哪個(gè)是對(duì)c數(shù)組元素的正確( intc[4][5],(*cp)[5];*(cp*(cp*(*{int 8-31.若有以下定義: 另法是使用指針數(shù)組元素,如*(pt+i)表示指針pt當(dāng)前所指元素后的第i個(gè)元素.1-27.有以下程序:#include<stdio.h>voidfun(inta[],int{ i,for(i=0;i<n/2;{t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}{intk[10]={for(i=2;i<8;i++)printf("%d",k[i]);} D)1-28有以下程序#include<stdio.h> voidfun(inta[][N],int{intfor(i=0;i<N;i++)b[i]=a[i][i]-a[i][N-1-}{inty[N],i,fun(x,for(i=0;i<N;i++)printf("%d,", } voidsort(intn){intfor(i=0;i<n;i++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}{intsort(aa+2,5);} 數(shù)"sort(aa+25);"中的實(shí)參aa+2是指aa[2]的地址,將其傳給了形參a[],使得形參中a[0]6-31.有以下程序:voidfun(int*s,intn1,int{inti,j,t;}{intfun(a,0,3);fun(a,4,9);} 【解析】函數(shù)fun(int*s,intn1,intn2)的功能是對(duì)數(shù)組s中的元素進(jìn)行首尾互相調(diào)換.所以fun(a,4,9),a[12]={4,3,2,1,0,9,8,7,6,5};再執(zhí)行fun(a,0,9)后,數(shù)組6-33.有以下程序:voidf(int*q){intfor(}{int} 為intfun(intx[],int{staticintsum=0,i;returnsum;}{int} {}}若運(yùn)行時(shí)輸入:123<回車>,則輸出結(jié)果是 201201231a[i][0]的地址,故以上語句讀入兩個(gè)整數(shù),分別存入二維數(shù)組a第1列中,在輸入1237-30.有以下程序:voidfun(char*s){}}{charfun(a);} d7-33.有以下程序(函數(shù)fun只對(duì)下標(biāo)為偶數(shù)的元素進(jìn)行操作)voidfun(int*a,intn){inti,j,k,t;{for(j=i;j<n;j+=2)}}{int} 【解析】由函數(shù)fun(int*a,intn)中語句if(a[j]>a[kk=j;可知當(dāng)前k是記錄數(shù)組中較到小的排序,即對(duì)a[0],a[2],a[4],a[6]中的數(shù)據(jù)1,3,5,7進(jìn)行從大到小的排序,其他位置的7-35.下列程序的輸出結(jié)果是 #include"stdio.h"#defineN3#defineMvoidfun(int{inta[M][N];inti,j;3456【解析】若有以下定義:inta[3][4],i,j;且當(dāng)0<=i<3,0<=j<4,則可以有以下幾種方式來引賦值語句完成后數(shù)組中數(shù)據(jù)如下020202()8-26有以下程序voidf(int*q){intfor(;i<5;i++)}{intfor(i=0;i<5;i++)} a[5]={8-27.有以下程序:intf(intt[],intn);{ints=f(a,4);}intf(intt[],int{if(n>0)returnt[n-1]+f(t,n-1);elsereturn0;} 468-30.以下程序的輸出結(jié)果是( voidchange(intk[]){k[0]=k[5];}{int}charstring[]=”Ilovechar*pstr=”Ilove1-30.設(shè)有定義:charp[]={'1','2','3'},*q=p;,以下不能計(jì)算出一個(gè)char型數(shù)據(jù)所 #include<stdio.h>#include<string.h>{charprintf("%d,",strlen(p));} charss[6][20];ss[1]=charss()[20]={char*ss[6];ss[1]=char*ss[]={【解析】數(shù)組定義后,不可以對(duì)數(shù)組整體賦值s是二維數(shù)組,因ss[1]是一維字符數(shù)組,即字符串,2-30.以下不能將s所指字符串正確到t所指空間的是(2-31.有以下程序:#include<stdio.h>voidswap(char*x,char{chart=*x;*x=*y;}{char*s1="abc",*s2="123";swap(s1,s2);} intfun(char*x,char{intwhile((*x==*y)&&*x!='\0'){x++;y++;n++;}returnn;} charcharcharchar【解析】字符型指針變量可以用選項(xiàng)A)的賦值方法:char*s;s="Olympic",選項(xiàng)C)的寫法:char*s,s={"Olympic是錯(cuò)誤的字符數(shù)組可以在定義的時(shí)候初始化:charintfun(char{char*t=s;} 【解析】首先char*s接受一個(gè)字符型數(shù)組的首地址并將這個(gè)首地址賦給另一個(gè)字符型指針char*twhile(*t++)不斷循環(huán)直到*t為'\0',再將t-1這時(shí)字符指針t指向字符串的最后一個(gè)字符,又因?yàn)閟指向字符數(shù)組的首地址即字符串的首地址所以return(t-s便是返回3-32有以下程序(注:字符a的ASCII碼值為97#includestdio.h>{char*s={"abc"};{printf("%d",*s%10);++s;}while(*s);} 【解析】因?yàn)樾懽址鸻,b,c的ASCII的值分別為97,98,99,而在dowhile循環(huán)語句中,每次對(duì)voidss(char*s,char{}{charss(str1,c); 【解析】在內(nèi)存,字符數(shù)據(jù)以II碼,它的形式與整數(shù)的式類.C語言中,字符型數(shù)據(jù)和整型數(shù)據(jù)之間可以通用,也可以對(duì)字符型數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算,此時(shí)相當(dāng)于對(duì)它們的S,,+=,.4-26.以下程序運(yùn)行后的輸出結(jié)果是( voidf(char*s,char{char}{charstr[10]=" }we4-28.有以下程序:voidfun(char*c,int{*c=*c+1;d=d+1;}{charfun(&b,a);} 5-26.設(shè)有如下程序段: 5-28.以下程序的輸出結(jié)果是( fun(charp[][10]){intn=0,i;return}}12305-37.有以下程序:#include<stdio.h>{char} 5-38.閱讀下列程序,當(dāng)運(yùn)行函數(shù)時(shí),輸入abcdefgz10,則輸出為( #include<stdio.h>#include<ctype.h>intfun(char*str){intstr[j]=‘\0’;}{}
intn;printf("Inputastring:");puts(str);abcdefgz10abcdefg【解析】本題題意要求刪除所有空格,即除了空格以外的其他所有字符都要留下.由于C語言中沒有直接刪除字符的操作,所以我們對(duì)于刪除字符的操作都是采用"留下"字符的算法,以前的題目亦是如此.si],,(()的單引號(hào)之間有一個(gè)空格),則將其保存在srj]中.注意j5-39.下面程序的運(yùn)行結(jié)果是( {staticchara[]="Languagef",b[]="programe";char*p1,*p2;intk;p1=a;p2=b;for(k=0;k<=7;k++)printf("%c",*(p1+k));}ga6-28.有以下程序:{char} 12346-34.有以下程序:voidfun(char*a,char{}{fun(s,t);puts(t);} 【解析】在函數(shù)fun(char*a,char*b)中,while(*a==‘*’)a++的功能是:如果*a的內(nèi)容7-26.以下程序運(yùn)行后的輸出結(jié)果是( {charch[]="uvwxyz",*pc;}z07-27.有以下程序:voidfun(char**p){}{char*a[]={"Morning","Afternoon","Evening","Night"};} 【解析】語句voidfun(char**p中的形參是一個(gè)指向指針的指針,在調(diào)用函數(shù)fun(a)后,指 phrs,,所以)p,)但如果想將,cr(1]r[所以錯(cuò)誤.8-33.以下程序運(yùn)行后的輸出結(jié)果是( voidf(charp[][10],int{chart[10];inti,j;}{}
8-35.下面程序段的運(yùn)行結(jié)果是( char*p="abcdefgh";847在首地址??梢园押瘮?shù)的這個(gè)首地址(或稱地址)賦予一個(gè)指針變量,使該指針變量指向該函函數(shù)指針變量的定義形式:類型說明符(*指針變量名 2-24.有以下程序:#includestdio.h>intadd(inta,intb){return(a+b);}{intk,(*f)(),a=5,b=10;…} k=voidfun(intn,char*s){…… void(*pf)();void*pf();void*pf();intadd(inta,intb){return(a+b);{intk,(*f)(),a=5,b=10;…} 【解析】本題考查的是指向函數(shù)的指針.語句"int(*f)(int);"是對(duì)一個(gè)函數(shù)的,其中f是指向該函數(shù)的指針,該函數(shù)有一個(gè)整型的參數(shù),函數(shù)返回值類型為整型.故答案選B).宏定定義的一般形式為:#define7-32.當(dāng)用"#defineF37.5f"定義后,下列敘述正確的是 【解析】字符替換定義格式為:#define標(biāo)識(shí)符(形參表)形參表達(dá)式.題中F是代表形參表達(dá)式的4-36有以下程序#include<stdio.h>#defineN4voidfun(inta[][N],int{intfor(i=0;i<N;i++)}{int} 2-37.有以下程序:#include<stdio.h> PT3.5; S(x)PT*x*x;{inta=1, printf("%4.1f\n",S(a+b)); 【解析】宏定義不是C語句,末尾不需要有分號(hào).所以語句printf("%4.1f\nS(a+b));展開后為printf("%4.1f\n",3.5;*a+b*a+b;);所以程序會(huì)出現(xiàn)語法錯(cuò)誤. 所以回值),所以D)選項(xiàng)錯(cuò)誤.4-39.有以下程序:#defineN5#defineMN+1#definef(xx*M){inti1,i2;printf("%d} 121111125-29.下面程序由兩個(gè)源程序文件t4.h和t4.c組成,程序編譯運(yùn)行的結(jié)果是( #defineN10#defineM8#definef(x)((x)*M)#include"t4.h"{int}5-34.有以下程序:{inti1=f(8)/f(4);} 64,64,#define命令行中的形參.本題中"i1=f(8)/f(4)"用"#definef(x)(x*x)"代替得6-29.閱讀下列程序段,程序的輸出結(jié)果為( #include"stdio.h"#define{inta=5,b=6,c=8,k;3568之后再進(jìn)行N的宏替換,替換后的表達(dá)式為(a)*(b)/(c).8-38有以下程序#defineS(x)4*(x)*x+1intk=5,j=2;} 【解析】宏定義又稱為宏代換,格式為"#define標(biāo)識(shí)符字符串",其中的標(biāo)識(shí)符就是所謂的符號(hào)文件1-37.以下敘述中正確的是( 關(guān)于動(dòng)態(tài)的函4malloc()5free()1-38.有以下程序:#include<stdio.h>#include<stdlib.h>intfun(intn){intp= return}{ a= } 0 【解析】mosft))的作用是開辟一個(gè)長(zhǎng)度為sfnt)空間,并通過強(qiáng)制類型轉(zhuǎn)換(*)將此空間的址賦給了一個(gè)型的指針變量p.后執(zhí)行語pn,使*p的值為,en,a.+n=00.2-39.有以下程序:#include<stdio.h>#include<stdlib.h>{inta=b=c=(int}程序運(yùn)行后的輸出結(jié)果是 參考答案【解析】c然后把函數(shù)返回的地址用)強(qiáng)制類型轉(zhuǎn)換為整型指針,即讓指針變量c.3的值保留在了該空間內(nèi),因?yàn)槿齻€(gè)指針變量均指向該空間,所以打印該空間11章結(jié)構(gòu)結(jié)構(gòu)是一種復(fù)雜的數(shù)據(jù)類型,是數(shù)目固定,類型不同的若干有序變量的用typedef考點(diǎn)1typedef給類型取別可以類型定義符typedef為已有的數(shù)據(jù)類型取“別typedef定義的一般形式為:typedef原類型 新類型typedef不能增加新的類型2-35.以下敘述中錯(cuò)誤的是 可以通過typedef2結(jié)構(gòu)體類型的變量、數(shù)組和指針結(jié)構(gòu)類型定義的一般形式為:struct結(jié)構(gòu)名{成員表列說明,其形式為:類型說明符成員名;成員名名應(yīng)符合標(biāo)識(shí)符的書寫規(guī)定。struct{intcharsex;floatscore; structord{intx;inty;intz;}structordstructord{intx;inty;intz;};structordstructord{intx;inty;intz;}struct{intx;inty;intz;}【解析】A)選項(xiàng)structordintx;inty;intzstructorda;錯(cuò)誤,不能在#includetypedefstruct{intb,p;}A;voidf(Ac)/*注意:c是結(jié)構(gòu)變量名*/{intc.b+=1;}{intAprintf("%d,%d\n",a.b,} 【解析】結(jié)構(gòu)體變量可以作為函數(shù)的參數(shù)和返回值.作為函數(shù)的實(shí)參時(shí),可以實(shí)現(xiàn)函數(shù)的傳值調(diào)用.當(dāng)使用結(jié)構(gòu)體變量作為函數(shù)的形參時(shí),實(shí)參也應(yīng)該是結(jié)構(gòu)體變量名以實(shí)現(xiàn)傳值調(diào)用,實(shí)參將拷貝副本給形參,.).2-36.有以下程序:#includestdio.h>structS{inta,b;}{structSprintf("%d\n",++(p.a)} 【解析】data是結(jié)構(gòu)S數(shù)組.初始化data[0].a=10;data[0].b=100;data[1].a=20;data[1].b=200.主函數(shù)中p=data[1];即p.a=data[1].a;p.b=data[1].b;執(zhí)行語句printf("%d\n",++(p.a)p.a先增1再打印.p.a=data[1].a=20,先增1等于21.3-35.設(shè)有定義:{in
溫馨提示
- 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. 人人文庫(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO 25178-605:2025 EN Geometrical product specifications (GPS) - Surface texture: Areal - Part 605: Design and characteristics of non-contact (point autofocus probe) instrum
- 2025年鋁合金精密模鍛件合作協(xié)議書
- 2025年度商鋪?zhàn)庥贸兄Z書規(guī)范版4篇
- 行業(yè)趨勢(shì)與發(fā)展目標(biāo)分析計(jì)劃
- 師生互動(dòng)促進(jìn)學(xué)習(xí)效果的研究計(jì)劃
- 新年職場(chǎng)新風(fēng)格與工匠精神計(jì)劃
- 如何利用社群效應(yīng)推動(dòng)品牌計(jì)劃
- 班主任的心理情感輔導(dǎo)計(jì)劃
- 企業(yè)財(cái)務(wù)戰(zhàn)略的執(zhí)行方法計(jì)劃
- 倉(cāng)庫(kù)持續(xù)改進(jìn)的必要性與方法計(jì)劃
- 5000只淮山羊和波爾山羊雜交良種養(yǎng)殖場(chǎng)建設(shè)項(xiàng)目可行性研究報(bào)告
- GB/T 5534-2008動(dòng)植物油脂皂化值的測(cè)定
- GB/T 12771-2019流體輸送用不銹鋼焊接鋼管
- 測(cè)量管理體系內(nèi)審檢查表
- 工程驗(yàn)收及移交管理方案
- 心臟手術(shù)麻醉的一般流程課件
- 圖片編輯概述課件
- 2023年岳陽職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能考試筆試題庫(kù)及答案解析
- 信號(hào)與系統(tǒng)復(fù)習(xí)題及答案
- 北師大版八年級(jí)數(shù)學(xué)上冊(cè)《認(rèn)識(shí)無理數(shù)(第2課時(shí))》參考課件2
- 中級(jí)建構(gòu)筑物消防員理論綜合模擬題01原題
評(píng)論
0/150
提交評(píng)論