二級語言選擇題培訓課件示例版講義可_第1頁
二級語言選擇題培訓課件示例版講義可_第2頁
二級語言選擇題培訓課件示例版講義可_第3頁
二級語言選擇題培訓課件示例版講義可_第4頁
二級語言選擇題培訓課件示例版講義可_第5頁
已閱讀5頁,還剩90頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第2章C語言概 考點1C語言概 考點2C語言的構(gòu) 考點3標識 考點4常 考點5變 第2章運算符與表達 考點1C運算符簡 考點2運算符的結(jié)合性和優(yōu)先 考點3逗號運算符和逗號表達 考點4基本的算術(shù)運算 考點6自加、自減運算 考點7賦值運算符與賦值表達 考點8復合的賦值運算 位運 考點10位運算符與位運 第4章基本語 考點1C語句分 考點2字符輸出函數(shù) 考點3字符輸入函數(shù) 考點4格式輸出函數(shù) 考點5格式輸入函數(shù) 第5章選擇結(jié) 考點1關(guān)系運算符與關(guān)系表達 考點2邏輯運算符與邏輯表達 考點3if語句的幾種形 考點6switch語 第6章循環(huán)結(jié) 考點1while語 考點2do…while語 考點3for語 循環(huán)的嵌 考點5break語 考點6continue語 第7章數(shù) 一維數(shù)組的定義與.............................................................................................................考點1一維數(shù)組的定義與元素的.....................................................................................考點2一維數(shù)組的初始 二維數(shù)組的定義與.............................................................................................................考點3二維數(shù)組的定義與元素的.....................................................................................考點4二維數(shù)組的初始 字符數(shù) 考點5字符數(shù)組的定義及其初始化和.............................................................................考點6字符串和字符串結(jié)束標 考點7字符數(shù)組的輸入輸 考點8字符串處理函 第8章函 庫函 考點1庫函 考點2函數(shù)的定 考點3函數(shù)參數(shù)與函數(shù)返回 函數(shù)的調(diào) 考點5函數(shù)的說明及其位 考點6函數(shù)的遞歸調(diào) 標識符的作用域與類 考點7標識符的作用域與類 第9章指 考點1指針變量的定義和.................................................................................................考點2指針變量作為函數(shù)參 數(shù)組與指 考點3移動指 考點5用數(shù)組名作為函數(shù)參 考點6字符串及字符指 考點7用函數(shù)指針變量調(diào)用函 第10章編譯預(yù)處理與動態(tài)分 宏定 考點1不帶參數(shù)的宏定 考點2帶參數(shù)的宏定 文件包 關(guān)于動態(tài)的函 考點4malloc()函 考點5free()函 第11章結(jié)構(gòu) 結(jié)構(gòu)體類型與變量的定義與........................................................................................... 考點3指向結(jié)構(gòu)體變量的指 第12章文 考點1文件的概念和文件指 考點2fopen()函數(shù)與fclose()函 文件的讀 考點3fgetc()函數(shù)與fputc()函 考點4fread()函數(shù)與fwrite()函 考點6fgets()函數(shù)與fputs()函 文件的定 考點7fseek()函數(shù)與隨機讀 1C

2章CC稱為ASCII碼表。字符在計算機內(nèi)部是以它對應(yīng)的ASCII碼來和運算的。對應(yīng)整數(shù)用c成任意復雜的C程序,稱為結(jié)構(gòu)化程序設(shè)計。C語言是一種結(jié)構(gòu)化程序設(shè)計語言。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下列敘述中錯誤的是().3-11.以下敘述中錯誤的是( {/*/programming {/*programming*/ {/*/*programming*/*/ {/*programming*/ 5-11以下敘述中錯誤的是().6-11以下敘述中正確的是(). 3 作為標識符.因為C語言中區(qū)分大小寫,所以B)選的"FOR"可以作為標識符來用.A)選含有 3-14.以下 4-12.以下敘述中錯誤的是 【解析】C語言規(guī)定標識符只能由字母、數(shù)字和下劃線3種字符組成,且第一個字符必須為字母或劃線,排除;用戶定義標識符中大小寫字母之間是有區(qū)別的并且應(yīng)盡量做到"見名識意",排除選項))C言中還定標識不能C語的關(guān)字,選)敘述錯正確答是選.-.下四個選,均是合法的戶標識選項是( c-bgotoAP_0float_123temp6-12下列是用戶自定義標識符的是(). a3_b3,8-12.以下選合法的標識符是(~);,ott;,,,,.).42.1E52.1*105),3.E-23.0*10-2),.5E7等于0.5*107)。口訣:E前E常用的轉(zhuǎn)義字符及其含義9871。增加的一個字節(jié)中存放字符"\0"(ASCII碼為0)。這是字符串結(jié)束的標志。標識符常量 12.0Xa23028.5e-3-.1774e1.50x8A10,000C,C型常量有兩種表示形式:小數(shù)形式,小數(shù)形式表示的實型常量必須要有小數(shù)點;指數(shù)形式,以e"或E"后跟一個整數(shù)來表示以10為底數(shù)的冪數(shù),且規(guī)定字母e或E之前必須要有數(shù)字,且e或E后面的指數(shù)必須為整數(shù).B)28錯誤,八進制中沒有數(shù)字8)選e.5中e后面的指數(shù)不是整數(shù))選5小點后面少數(shù).2-12.以下選,能用作數(shù)據(jù)常量的是(制中不能含有數(shù)字8,所以B)錯誤.C)選e后面應(yīng)該是整數(shù)不能是小數(shù)1.5,所以C)錯誤.D)選3-13C源程序中不能表示的數(shù)制是().6-14.以下選,不能作為合法常量的是 5即-231~(231-4unsigned4short即-215~(215-2Unsignedshort2long 即-231~(231-4unsigned4整型變量的定義形式為:,變量名標識符,…;例如:inta,b,c;(a,b,c為整型變量)10-10-10-long10-例如:floatx,yx,y為單精度實型量),doublea,b,c(a,b,c為雙精度實型量變量可以在定義的同時賦給它初始值。例如:inta=3doublef=-2.7char 【解析】C語言的字符型常量中,允許用一種特殊形式的字符常量,就是以一個""開頭的字符.其中,"dd"表示用SII碼(八進制數(shù))表示一個字符,本題中的chrc='即表示占一個字cSI. unsignedlonglongunsignedunsignedshort【解析】C語言中整型變量分為4種,基本型int,短整型shortint,長整型longint和無符號型(unsignedint、unsignedshort、unsignedlong).因此B)選項不屬于C語言的類型. charcharcharchar2C1CC語言中逗號“,”也是一種運算符,稱為逗號運算符,其功能是把兩個表達式連接起來組成一個1,,nn的值為7.算術(shù)運算符與算術(shù)表達式加式子。運算對象包括常量、變量和函數(shù),例如:a+b,(a*2)/c,(x+r)*8-(a+b)/7,不同數(shù)據(jù)類型的量混合運算時,會發(fā)生自動類型轉(zhuǎn)換,轉(zhuǎn)換規(guī)則是charintdouble,總4-14.現(xiàn)有定義inta;doubleb;floatc;chark;,則表達式a/b+c-k值的類型為 5-13.以下選值為1的表達式是(1-’\0’=1,’1’-0=49,’\0’-’0’=-

賦值運算符與賦值表達式 2-16.有以下程序:{intx,y,z;} 【解析】zxy;,所以可以將上式表示成+).然后從左向右先計算表達式++,因為x+先使用后自增,所以z的值為,x的值為.再計算逗號表達式第二個表達式++,此時y的值為,最后計算第三個表達式7-17.下面程序的運行結(jié)果是( {inty=5,x=14;y=((x=3*y,x+6),x-} 3-15.若有定義語句:intx=10;,則表達式x-=x+x的值為 0--intk,a,b;unsignedlongw=5;doublex=1.42; 實型賦予整型,舍去小數(shù)部分。intfloatf=2;達式的運算結(jié)果強制轉(zhuǎn)換成類型說明符所表示的類型。例如:(float)a把a轉(zhuǎn)換為實型,(int)(x+y)把x+y的結(jié)果轉(zhuǎn)換為整型。類型說明符和表達式都必須加括號(單個變量可以不加括號),如把(int)(x+y) 5-19.設(shè)有定義:intk=1,m=2;floatf=7;,則以下選錯誤的表達式是 - 8-14.下列程序的輸出結(jié)果是( {doubled=3.2;intx,y;x=1.2;y=(x+3.8)/5.0;30【解析】本題考查復合的賦值表達式.本題中,x=1.2;,根據(jù)賦值運算的類型轉(zhuǎ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【解析】&按位與,如果兩個相應(yīng)的二進制位都為1,則該位的結(jié)果值為1,否則為0.|按位或,兩個相應(yīng)的二進制位中只要有一個為1,該位的結(jié)果值為1.2的二進制 ,4的二進制為 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指定移動的位數(shù),丟棄,低位補0.將5變換為二進制數(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)換成二進制為:00000100,將a、b進行按位或運算(參加計算的兩個位只要有一個7-40.下面程序段的輸出為( #include"stdio.h"{0intr=9; 2481C

4章基本語句C語句C語言中,所有的數(shù)據(jù)輸入/輸出都是由庫函數(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所對應(yīng)的字符字符變量是字符A'的CI碼加上3,即68所對應(yīng)的字符''.但是打印輸出時,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的初值為十六進制數(shù)*/printf("%u\n",x);} -7-16.以下程序的輸出結(jié)果是( {inta=20;}20,20,20,20,{char} );這個地址就是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í)行以下程序時輸入 {inta=1,b;}空格>854.0<回車>,a和b的值分別是 8-15有以下程序:{chara,b,c,d;} 115章選擇結(jié)構(gòu)關(guān)系運算符與關(guān)系表達式C語言中的關(guān)系運算符:<(小于)、<=(小于或等于)、>(大于)、>=(大于或等于)、==(等關(guān)系表達式即用關(guān)系運算符將兩個表達式連接起來的式子,形式為:表達式關(guān)系運算符表達6-21.有以下定義:inta;longb;doublex,y;則以下選正確的表達式是 邏輯運算符與邏輯表達式!邏輯表達式即用邏輯運算符將兩個表達式連接起來的式子,形式為:表達式邏輯運算符表達 (c>=2&&真if3if單分支,if(表達式語句;——如果表達式的值為真(或非零,則執(zhí)行其后的語句,否雙分支,if(表達式1;else語句2;——如果表達式的值為真(或非零,則執(zhí)行語句1,否則執(zhí)行語句2A或者做B”多分支,if(1語句1;elseif(表達式2)2;elseif(n)語句n;else語句n+1;——依次判斷表達式的值,只要真,就執(zhí)行對應(yīng)的語句,然后結(jié)束整個if,如果n個表達式都為假,執(zhí)行語句n+1,然后結(jié)束整個if。3-18.若變量已正確定義,在if(W)printf("%d\n",k);中,以下不可替代W的是 ).【解析】選項A)是的表達式,C語言中沒有<>運算符.7-13.以下4個選,不能看作一條語句的是( ;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;所以會出現(xiàn)else語句的位置錯誤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í)行下述程序時,若從鍵盤輸入6和8,則結(jié)果為( {inta,b,s;printf("%d",s);4-20.有以下程序:{intx;if(x<=3);elseif(x!=10)} 5-16.以下程序運行后的輸出結(jié)果是( {intprintf("%d%d%d\n",i,j,k);}12232223分為兩部分i++==1和(++j==3||k++==3它們的關(guān)系是"且"的關(guān)系,所以兩部分都會被執(zhí)行,其中i++==1是先判斷i是否等于1因為++在后面此時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í)行下面的程序時,從鍵盤輸入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這時要特別注意if和else的配對問題。“else總是與它前面最近的if配對。”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)是否成立,因為x為1所以條件不成立,所以elseif內(nèi)部的8-16.下列程序的運行結(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時0當&時=1.條件表達式的形式:12表達式3,其求值規(guī)則為:如果表達式1的值為真,則以表達式2的值作為整個條件表達式的值,否則以表達式3的值作為整個條件表達式的2-18.若有定義intx,y;并已正確給變量賦值,則以下選與表達式(x-y)?(x++):中的條件表達式(x-y等價的是(). 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語句等價的語句是(選項B)中語句"((b<c)?a:b):((b>c)?b:c)"錯誤,選項D)中沒有比較b、c大小.switch6switchcase常量表達式1:語句1;case常量表達式2:語句…case常量表達式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常量表達式只是起語句標號作用,并不是該處進行條件判斷.在執(zhí)行swth語句時,根據(jù)stch的表達式,找到與之匹配的cse語句就從此cse子句執(zhí)行下去,不在進行判斷,直到碰到bak或函數(shù)結(jié)束為止.所以執(zhí)行內(nèi)層iy)時只執(zhí)行了+,此時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)該有最后的分號.switch(expr1),中的1不能用浮點類型或g類型,也不能為一個字符串,所以)錯誤e后面常量表達式的類.3-20下列敘述中正確的是().7-19.請閱讀以下程序:{intx=1,y=0,a=0,b=0;{case{case0:a++;break;}case2:}printf("} 6章循環(huán)結(jié)構(gòu)while1while其中表達式是循環(huán)條件,語句為循環(huán)while語句重復下面的動作:計算表達式的值,當值為真(0)時,執(zhí)行循環(huán)體語句,直到表達式為假,則while語句結(jié)束。4-19有以下程序:{intk=5,n=0;{{default:break;case1:n+=k;case2:case3:}}}程序運行后的輸出結(jié)果是 A)B)C)D)參考答案【解析】本題考查的是swch語句.在sch語句中,表達式的值與某一個case后面的常量表達式的值相等時,se后面的語句,若所有的cse匹配的,就執(zhí)行dut后面的語句,各個cse和flt的出現(xiàn)次序不影響執(zhí)行結(jié)果.所以在本題中,當k=5和k4的時候cse都沒有與其匹配的值,所以執(zhí)行了deut語句;當k3時,執(zhí)行ce3:+"n,f;當2,ae2:se3:n得5a;=時,"e1:k;ce2:se3:+使得,=

do…whiledo…while語句的形式:do{語句}while(表達式do…while循環(huán)與while循環(huán)的不同在于:它先執(zhí)行循環(huán)體中的語句,然后再判斷表達式是否為真如果為真則繼續(xù)循環(huán);如果為假則終止循環(huán)。do…while循環(huán)至少要執(zhí)行一次循環(huán)體8-22.有以下程序段intn,t=1,s=0;{ 8-23.若運行以下程序時,從鍵盤輸入ADescriptor<CR>(<CR>表示回車),則下面程序的運行 {char{{case'a':casecase'e':casecase'i':casecase'o':casecase'u':case'U':v1+=1;}}switch表達式{…}①系統(tǒng)在執(zhí)行時計算開關(guān)表達式的值;②根據(jù)所得的值在各個cse標號表達式中尋找匹配,直到發(fā)現(xiàn)與表達式匹配的標號(本例中匹配的是s’:);③找到匹配后執(zhí)行后面相應(yīng)的語句表,順序往下執(zhí)行;④如果無相匹配的標號,若存在fl標號,則執(zhí)行該語句標號后面的語句表1;當du,sc.3for

for則整個for語句結(jié)束。 do{++n;}whilewhile(1){while(n);{n--for(n=0,i=1;;i++)【解析】選項A)中do后面的語句只執(zhí)行了一次便結(jié)束了循環(huán);B)選條件while(1)成立,所以是死循環(huán);C)選n的值為10,而循環(huán)體為空語句,所以while(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【解析】選項A)的循環(huán)表達式的條件永久為1,并且小于的數(shù)與取余不超過,所以在循環(huán)體內(nèi)表達式i%100的值不大于,break語句不會執(zhí)行,所以是死循環(huán);選項B)的括號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常量表達式只是起語句標號作用,并不是該處進行條件判斷.在執(zhí)行swch語句時,根據(jù)stch的表達式,找到與之匹配的cse語句就從此cse子句執(zhí)行下去,不再進行判斷,直到碰到beak或函數(shù)結(jié)束為止.簡單的說bak是結(jié)束整個循環(huán)體,而ciue是結(jié)束單次循環(huán).)選當產(chǎn)生的隨機數(shù)n為4時要執(zhí)行打印操作.)選當產(chǎn)生的隨機數(shù)為1和2時分別執(zhí)行ae與e4后面語句的內(nèi)容.由于存在brak語句所以for循環(huán)不是固定執(zhí)行8次,執(zhí)行次數(shù)與.7章數(shù)組數(shù)組的定義方式為:[常量表達式inta[10];說明整型數(shù)組a,有10個元素。floatb[20];說明實型數(shù)組b,有10個元素charch[30ch30個元素。 #defineN10intx[N];intintintintx[【解析】數(shù)組說明的一般形式為:類型說明符數(shù)組名[常量表達式].B)中N是變量,不能用變量定義數(shù)組長度.C)選數(shù)組長度是的一串數(shù)字.定義數(shù)組時必須為其指明長度,D)選數(shù)組長度為空,所以.初始化賦值的一般形式為:[常量表達式]={值,值,…,值};例如: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的下標,當退出例如:inta[3][4];a,其下標變量的類型為整型。該數(shù)組的下標變量共有3×4個,從a[0][0]到a[2][3]。 intint for(i=0;i<3;i++)printf("%d",x[2-i][i]);95747596 intintintint5-30.下面的程序段運行后,輸出結(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語言允許用字符串的方式對數(shù)組作初始化賦值。例如:charc[]={"C是由C編譯系統(tǒng)自動加上的。6-23有以下程序{inti,n=0;if(s[i]>=‘'0'‘&&} A)B)C)D)可用printf函數(shù)和scanf函數(shù)輸出輸入一個字符數(shù)組中的字符串,格式控制符用用1-29.設(shè)有定義:chars[81];inti=0;,以下不能將一行(不超過80個字符)帶有空格的字符 do{scanf("%c",&s[i]);}while(s[i++]!='\n');3-29.有以下程序段:#includeintj;floaty;charname[50];scanf("%2d%f%s",&j,&y,name);當執(zhí)行上述程序段,從鍵盤上輸入555667777abc后,y的值為 式命令可以說明最大域?qū)捲诎俜痔?%)與格式碼之間的整數(shù)用于限制從對應(yīng)域讀入的最大字符數(shù).7-21.有以下語句:charb[8];intc;,確的輸入語句是 數(shù),根據(jù)語句charb[8];intc;可確定正確的輸入語句是D)選項.字符串輸出函數(shù)格式:puts字符數(shù)組名格式 gets(字符數(shù)組名格式:strcpy(字符數(shù)組1,字符數(shù)組功能:把字符數(shù)組21中格式:strcmp(字符數(shù)組名1,字符數(shù)組名功能:按ASCII碼順序比較兩個數(shù)組中的字符串,并由函數(shù)返回值返回比較結(jié)果。字符1字符2221字符2,測字符串長度函數(shù)格式:strlen(字符數(shù)組名功能:測字符串的實際長度(不含字符串結(jié)束標志‘\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++;}程序運行后的輸出結(jié)果是 0378參考答案4-29.有以下程序:#include<stdio.h>{chara[10]="abcd";}程序運行后的輸出結(jié)果是 參考答案6-16.當用戶要求輸入的字符串中含有空格時,應(yīng)使用的輸入函數(shù)是 參考答案.,.6-19.已有定義:charc;,程序前面已在命令行中包含ctype.h文件,不能用于判斷c中的字符 6-22.運行下面程序時,從鍵盤輸入字母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ǔ)上移動三,然q所指符串的容p所指的空間,從""后全覆,0‘,’b.輸出se), 8章函數(shù)庫函1庫函數(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)用表達式可以出現(xiàn)在其他表達式中,例如r=sqrt(2),或者作為另一個函數(shù)調(diào)用的實際參數(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ù)調(diào)用過程中,形參的值發(fā)生改變,而實參中的值不會變化,所以數(shù)組c4-17.以下程序的運行結(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ù)為( 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被當作參數(shù)傳遞進去,這就進行了一次調(diào)用,3被當做參數(shù)傳進去后,程序會執(zhí)行這句elsereturnfun(k-1)+1這就調(diào)用了第二次,而參數(shù)是3-1也就是2.2被當做參數(shù)傳進去后,程序會執(zhí)行這句elsereturnfun(k-1)+1這就調(diào)用了第三次,而參數(shù)是2-1也就是1.1被當做參數(shù)傳進去后,程序會執(zhí)行這句elseif(k==1)return1不再遞歸調(diào)用,fun(intx){intreturn}{ A)B)C)D)參考答案【解析】因為fun(intx)是一個遞歸函數(shù),所以主函數(shù)中fun(7)經(jīng)過三次遞歸調(diào)用,其過程可以所以最后的輸出結(jié)果為標識符的作用域與類考點7標識符的作用域與類變量標識符有效的范圍稱變量的作用C語言中的變量,按作用域范圍可分為兩種,即局部變量和全局變量變量值存在的時間稱變量的生存期靜態(tài)方式:是指在程序運行期間分配固定的空間的方式用戶空間可以分為三個部分:程序區(qū);靜態(tài)區(qū);動態(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ù)fun中的變量i和m均為靜態(tài)局部變量.所以第一次調(diào)用fun函數(shù),返回m的值為5,第二次再調(diào)用fun函數(shù)時,i的值為3,m的值已經(jīng)是5了,所以執(zhí)行 【解析】auo:函數(shù)中的局部變量,動態(tài)地分配空間,數(shù)據(jù)在動態(tài)區(qū)中,在調(diào)用該函數(shù)時系統(tǒng)會給它們分配空間,在函數(shù)調(diào)用結(jié)束時就自動釋放這些空間.ger:為了提高效率,C語言允許將局部變量的值放在PU中的寄存器中,這種變量叫寄存器變量",只有局部自動變量和形式參數(shù)可以作為寄存器變量.ern:外部變量(即全局變量)是在函數(shù)的外部定義的,它的作用域為從變量定義處開始,到本程序文件的末尾.如果外部變量不在文件的開頭定義,其有效的作用范圍只限于定義處到文件終了tc:靜態(tài)局部變量屬于靜態(tài)類別,在靜態(tài)區(qū)內(nèi)分配單元.在程序整運行期都不釋.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)分配單元.在程序整個運行期間都不釋放.所以第一次循環(huán)s的值為,第二次循環(huán)中,返回的x的值為,所以s的值為,第三次循環(huán),返回的x的值為,2-34在一個C源程序文件中所定義的全局變量,其作用域為().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)時,s的值為4,調(diào)用f(a)函數(shù)時n的返回值為n=3+2=5,且4-32.以下程序的運行結(jié)果是( #include<stdio.h>inta=1;intf(intc){staticinta=2;}main(){inti,k=0;}中語句k+=f(a)的a是其局部變量,所以兩次調(diào)用實際上都是調(diào)用f(3).第一次調(diào)用時,fun函數(shù)中c=4,表達式(a++)+c的值為6,a遞增為3,k=6.第二次調(diào)用時,fun函數(shù)中c=4,表達式5-31.有以下程序:intf(intn);{inta=3,s;}intf(int{staticinta=1;return} 789【解析】s=f(a)表達式第一次調(diào)用f(n)函數(shù)時,f(n)函數(shù)運行結(jié)果為n=4,a=2,即s 【解析】本題的考查點是變量的類型.extern、register、static、auto分別是定義自動變量、寄存器變量、靜態(tài)變量、外部變量,其中,自動變量和寄存器變量屬于動態(tài),調(diào)用時7-34.閱讀下列程序,則運行結(jié)果為( #include"stdio.h"{staticintx=3;{int3456出函數(shù)以后,下次再進入該函數(shù)時,靜態(tài)局部變量仍使用原來的單元,靜態(tài)局部變量的初值是在8-37.有以下程序:intfun(){staticintx=1;x*=2;return}{inti,s=1;} 01489章指計算機中的數(shù)據(jù)都是存放在器中的器中的一個字節(jié)稱為一個內(nèi)存單元,不同的數(shù)據(jù)類型所占用的內(nèi)存單元數(shù)不內(nèi)存單元的編號也叫做地址某個內(nèi)存單元的指針和它的C語言中,變量所占據(jù)的連續(xù)的內(nèi)存單元的起始編號,即稱變量的地址,也稱為變量的指C語言中,允許用一個變量來存放別的變量的地址,這種變量稱為指針變量由于可以間接,我們稱就指針變量“指向”某個變量。例如,指針變量p中保存了變量的地址,就p指向a1指針變量的定義例如:int*p;表示定義一個名字為p的指針變量,它用來保存一個整型變量的地址可以一次定義多個指針變量,但是每個前面都要加上‘*’號。如int取地址表達式:&變量名,表示取變量的地址,如&a表示變a的地址,要a已經(jīng)定義inta;int也可以在定義的時候初始化,int間接表達式:*指針變量名,表示指針變量所指的變量,如*p相當于a,因為p剛才已經(jīng)指向了a。指針變量p可以指向a,當然也可以指向其他的整型變量。4-15.以下定義語句中正確的是( intcharfloatdouble【解析】本題考查變量的定義方法.如果要一次進行多個變量的定義,則在它們之間要用逗號隔開因此選項A)和D)錯誤;在選項C)中,變量c是一個浮點型指針,它只能指向一個浮點型數(shù)據(jù),不能指向指針變量;B1-25設(shè)已有定義:floatx;,則以下對指針變量p進行定義且賦初值的語句中正確的是().intfloatfloatfloat【解析】指針是用來存放地址的變量,用(*指針變量名)的形式定義.賦值時應(yīng)將某個變量地址即&x賦給指針變量,所以選擇B).2-25.有以下程序:#includestdio.h>{intprintf("Inputn:");printf("outputn:");} int法應(yīng)為printf("%d\n",*p).3-24.若有定義語句:doublea,*p=&a;以下敘述中錯誤的是 【解析】在變量定義doublea*p=&a中,*號是一個指針運算符,而非間址運算符,所以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;語句等價的是 .,p指向了變量n2所在的單元,指針變量q指向了變量n1所在的單元,要使得n1的值賦給n2,可用指針變量q所指向的存儲單元的賦給指變p所指的,p*7-15若有說明:int*p,m=5,n;,以下正確的程序段是().7-28.以下程序運行后的輸出結(jié)果是( voidf(intn,int*r){intelsef(--n,&r1);}{intm=7,r;}2130時調(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所對應(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++) }若運行時輸入:246<回車>,則輸出結(jié)果為 202024244-30.若有定義inta[2][3];,則對a數(shù)組的第i行第j列(假設(shè)i,j已正確說明并賦值)元素值的 】題了數(shù)素.選項A)中ai指向了數(shù)組a的第i1行a)則是第+1行第0列的地址值++j指向了數(shù)組a第+1行j1列,(+)取到的是數(shù)組a的i].7-22.有以下程序:{inta[--p;} 7-23.若有以下說明和語句,請選出哪個是對c數(shù)組元素的正確( intc[4][5],(*cp)[5];*(cp*(cp*(*{int 8-31.若有以下定義: 另法是使用指針數(shù)組元素,如*(pt+i)表示指針pt當前所指元素后的第i個元素.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);"中的實參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)的功能是對數(shù)組s中的元素進行首尾互相調(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} {}}若運行時輸入:123<回車>,則輸出結(jié)果是 201201231a[i][0]的地址,故以上語句讀入兩個整數(shù),分別存入二維數(shù)組a第1列中,在輸入1237-30.有以下程序:voidfun(char*s){}}{charfun(a);} d7-33.有以下程序(函數(shù)fun只對下標為偶數(shù)的元素進行操作)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;可知當前k是記錄數(shù)組中較到小的排序,即對a[0],a[2],a[4],a[6]中的數(shù)據(jù)1,3,5,7進行從大到小的排序,其他位置的7-35.下列程序的輸出結(jié)果是 #include"stdio.h"#defineN3#defineMvoidfun(int{inta[M][N];inti,j;3456【解析】若有以下定義:inta[3][4],i,j;且當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;,以下不能計算出一個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ù)組定義后,不可以對數(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【解析】字符型指針變量可以用選項A)的賦值方法:char*s;s="Olympic",選項C)的寫法:char*s,s={"Olympic是錯誤的字符數(shù)組可以在定義的時候初始化:charintfun(char{char*t=s;} 【解析】首先char*s接受一個字符型數(shù)組的首地址并將這個首地址賦給另一個字符型指針char*twhile(*t++)不斷循環(huán)直到*t為'\0',再將t-1這時字符指針t指向字符串的最后一個字符,又因為s指向字符數(shù)組的首地址即字符串的首地址所以return(t-s便是返回3-32有以下程序(注:字符a的ASCII碼值為97#includestdio.h>{char*s={"abc"};{printf("%d",*s%10);++s;}while(*s);} 【解析】因為小寫字符a,b,c的ASCII的值分別為97,98,99,而在dowhile循環(huán)語句中,每次對voidss(char*s,char{}{charss(str1,c); 【解析】在內(nèi)存,字符數(shù)據(jù)以II碼,它的形式與整數(shù)的式類.C語言中,字符型數(shù)據(jù)和整型數(shù)據(jù)之間可以通用,也可以對字符型數(shù)據(jù)進行算術(shù)運算,此時相當于對它們的S,,+=,.4-26.以下程序運行后的輸出結(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.閱讀下列程序,當運行函數(shù)時,輸入abcdefgz10,則輸出為( #include<stdio.h>#include<ctype.h>intfun(char*str){intstr[j]=‘\0’;}{}

intn;printf("Inputastring:");puts(str);abcdefgz10abcdefg【解析】本題題意要求刪除所有空格,即除了空格以外的其他所有字符都要留下.由于C語言中沒有直接刪除字符的操作,所以我們對于刪除字符的操作都是采用"留下"字符的算法,以前的題目亦是如此.si],,(()的單引號之間有一個空格),則將其保存在srj]中.注意j5-39.下面程序的運行結(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.以下程序運行后的輸出結(jié)果是( {charch[]="uvwxyz",*pc;}z07-27.有以下程序:voidfun(char**p){}{char*a[]={"Morning","Afternoon","Evening","Night"};} 【解析】語句voidfun(char**p中的形參是一個指向指針的指針,在調(diào)用函數(shù)fun(a)后,指 phrs,,所以)p,)但如果想將,cr(1]r[所以錯誤.8-33.以下程序運行后的輸出結(jié)果是( voidf(charp[][10],int{chart[10];inti,j;}{}

8-35.下面程序段的運行結(jié)果是( char*p="abcdefgh";847在首地址??梢园押瘮?shù)的這個首地址(或稱地址)賦予一個指針變量,使該指針變量指向該函函數(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);"是對一個函數(shù)的,其中f是指向該函數(shù)的指針,該函數(shù)有一個整型的參數(shù),函數(shù)返回值類型為整型.故答案選B).宏定定義的一般形式為:#define7-32.當用"#defineF37.5f"定義后,下列敘述正確的是 【解析】字符替換定義格式為:#define標識符(形參表)形參表達式.題中F是代表形參表達式的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語句,末尾不需要有分號.所以語句printf("%4.1f\nS(a+b));展開后為printf("%4.1f\n",3.5;*a+b*a+b;);所以程序會出現(xiàn)語法錯誤. 所以回值),所以D)選項錯誤.4-39.有以下程序:#defineN5#defineMN+1#definef(xx*M){inti1,i2;printf("%d} 121111125-29.下面程序由兩個源程序文件t4.h和t4.c組成,程序編譯運行的結(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之后再進行N的宏替換,替換后的表達式為(a)*(b)/(c).8-38有以下程序#defineS(x)4*(x)*x+1intk=5,j=2;} 【解析】宏定義又稱為宏代換,格式為"#define標識符字符串",其中的標識符就是所謂的符號文件1-37.以下敘述中正確的是( 關(guān)于動態(tài)的函4malloc()5free()1-38.有以下程序:#include<stdio.h>#include<stdlib.h>intfun(intn){intp= return}{ a= } 0 【解析】mosft))的作用是開辟一個長度為sfnt)空間,并通過強制類型轉(zhuǎn)換(*)將此空間的址賦給了一個型的指針變量p.后執(zhí)行語pn,使*p的值為,en,a.+n=00.2-39.有以下程序:#include<stdio.h>#include<stdlib.h>{inta=b=c=(int}程序運行后的輸出結(jié)果是 參考答案【解析】c然后把函數(shù)返回的地址用)強制類型轉(zhuǎn)換為整型指針,即讓指針變量c.3的值保留在了該空間內(nèi),因為三個指針變量均指向該空間,所以打印該空間11章結(jié)構(gòu)結(jié)構(gòu)是一種復雜的數(shù)據(jù)類型,是數(shù)目固定,類型不同的若干有序變量的用typedef考點1typedef給類型取別可以類型定義符typedef為已有的數(shù)據(jù)類型取“別typedef定義的一般形式為:typedef原類型 新類型typedef不能增加新的類型2-35.以下敘述中錯誤的是 可以通過typedef2結(jié)構(gòu)體類型的變量、數(shù)組和指針結(jié)構(gòu)類型定義的一般形式為:struct結(jié)構(gòu)名{成員表列說明,其形式為:類型說明符成員名;成員名名應(yīng)符合標識符的書寫規(guī)定。struct{intcharsex;floatscore; structord{intx;inty;intz;}structordstructord{intx;inty;intz;};structordstructord{intx;inty;intz;}struct{intx;inty;intz;}【解析】A)選項structordintx;inty;intzstructorda;錯誤,不能在#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ù)的實參時,可以實現(xiàn)函數(shù)的傳值調(diào)用.當使用結(jié)構(gòu)體變量作為函數(shù)的形參時,實參也應(yīng)該是結(jié)構(gòu)體變量名以實現(xiàn)傳值調(diào)用,實參將拷貝副本給形參,.).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等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論