《C語言程序設(shè)計(jì)》練習(xí)題_第1頁
《C語言程序設(shè)計(jì)》練習(xí)題_第2頁
《C語言程序設(shè)計(jì)》練習(xí)題_第3頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

《C程序設(shè)計(jì)》練習(xí)題一、單項(xiàng)選擇題導(dǎo)讀:單項(xiàng)選擇題要求從給出的四個(gè)備選答案中,選出一個(gè)最符合題意的答案。在完成習(xí)題的過程中,不但要選出正確的答案,而且要清楚不正確的選項(xiàng)錯(cuò)在何處,以加深對(duì)概念的理解。對(duì)于掌握不準(zhǔn)的問題,應(yīng)該通過上機(jī)實(shí)驗(yàn)來檢驗(yàn)(2cTurboC2.0、Win-TC、TurboC++【】以下不正確的C語言標(biāo)識(shí)符。A)int B)a_1_2 C)ab1exe D)_x【】以下是正確的C語言標(biāo)識(shí)符。#define B)_123 C)%d D)\n【1.3】下列四組字符串中都可以用作C語言程序標(biāo)識(shí)符的一組是。print B)iam C)Pxq D)str_l_3d one_half My->book oodbs tart$it line# powaBc 3pai His.age while【1.4】下面各選項(xiàng)組中,均是C語言關(guān)鍵字的組是。A)auto,enum,include B)switch,typedef,continueC)signed,union,scanf D)if,struct,type【】下列不屬于C語言關(guān)鍵字的是。A)default B)register C)enum D)external【】C語言程序從main()函數(shù)開始執(zhí)行,所以這個(gè)函數(shù)要寫。A)程序文件的開始 B)程序文件的最后C)它所調(diào)用的函數(shù)的前面D)程序文件的任何位置【】下列關(guān)于C語言的敘述錯(cuò)誤的 大寫字母和小寫字母的意義相同不同類型的變量可以在一個(gè)表達(dá)式中在賦值表達(dá)式中等號(hào)左邊的變量和右邊的值可以是不同類型同一個(gè)運(yùn)算符號(hào)在不同的場(chǎng)合可以有不同的含義【1.8】在C語言中,錯(cuò)誤的int類型(長度為2字節(jié))的常數(shù)是。A)32768 B)0 C)037 D)0xAF【】執(zhí)行語句printf("%x",-1);(int類型長度為2字節(jié)屏幕顯示 。A)-1 B)1 C)-ffff D)ffff【1.10】已知longi=32768;執(zhí)行語句printf("%d",i);屏幕顯示 。A)-1 B)-32768 C)1 D)32768【1.11】已知longi=65539;執(zhí)行語句printf("%d",i);屏幕顯示 。65539 B)-3 C)3 D)程序不能執(zhí)行【1.12】在C語言中,整數(shù)-8在內(nèi)存中的存儲(chǔ)形式是。A)1111111111111000 B)1000000000001000C)0000000000001000 D)1111111111110111【1.13】C語言中字符型(char)數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式。原碼 B)補(bǔ)碼 C)反碼 D)ASCII碼【1.14】將字符g賦給字符變量c,正確的表達(dá)式是。A)c=\147 B)c="\147" C)c='\147' D)c='0147'【1.15】下列轉(zhuǎn)義字符中錯(cuò)誤的一個(gè)。A)'\000' B)'\0014' C)'\x111' D)'\2'【1.16】將空格符賦給字符變量c,正確的賦值語句A)c='\0' B)c=NULL C)c=0 D)c=32【1.17】已知:chara='\70';aA)包含1個(gè)字符 B)包含2個(gè)字符C)包含3個(gè)字符D)說明非法【1.18】字符串"\"EOF\n=-\61\""的長度是 。A)8 B)9 C)14 D)非法字符串【1.19】字符串""的長度是 。A)0 B)1 C)2 D)非法字符串【1.20】已知:chara;intb;floatc;doubled;執(zhí)行語句"c=a+b+c+d;"后,變量c的數(shù)據(jù)類型是。A)int B)char C)float D)double【1.21溫度華氏和攝氏的關(guān)系是C5(F32C,F;由華氏求攝氏的正確的賦9值表達(dá)式是 。A)C=5/9(F-32) B)C=5*(F-32)/9C)C=5/9*(F-32) D)三個(gè)表達(dá)式都正確【1.22】逗號(hào)表達(dá)式"(a=3*5,a*4),的值是 A)15 B)60 C)30 D)不確定【1.23】如果inta=1,b=2,c=3,d=4;則條件表達(dá)式"a<b?a:c<d?c:d"的值是 。A)1 B)2 C)3 D)4【1.24】為求出s=10!的值,則變量s的類型應(yīng)當(dāng)為。A)int B)unsigned C)long D)以上三種類型均可【1.25】已知inti=10;表達(dá)式"20-0<=i<=9"的值是 。A)0 B)1 C)19 D)20【1.26】已知intx=1,y;執(zhí)行下述語句后變量x的值y=++x>5&&++x<10;A)1 B)2 C)3 D)4【1.27】為判斷字符變量c的值不是數(shù)字也不是字母時(shí),應(yīng)采用下述表達(dá)。A)c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122B)!(c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122)C)c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122D)!(c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122)【1.28】已知inta[3][2]={3,2,1};則表達(dá)式"a[0][0]/a[0][1]/a[0][2]"的值是 。A)0.166667 B)1 C)0 D)錯(cuò)誤的表達(dá)式【1.29】已知intx=1,y=1,z=1;表達(dá)式"x+++y+++z++"的值是 。A)3 B)4 C)5 D)表達(dá)式錯(cuò)誤【1.30】已知intx=5,y=5,z=5;執(zhí)行語句x%=y+z;后,x的值是 。A)0 B)1 C)5 D)6【1.31】使用語句scanf("x=%f,y=%f",&x,&y);輸入變量、y的值(□代表空格,正確的輸入 。A)1.25,2.4 B)1.25□2.4 C)x=1.25,y=2.4 D)x=1.25□y=2.4【1.32】下列循環(huán)語句中有語法錯(cuò)誤的。A)while(x=y)5; B)while(0);C)do2;while(x==b); D)dox++while(x==10);【1.33】已知intx=(1,2,3,4);變量x的值是 。A)1 B)2 C)3 D)4【1.34】表達(dá)式sizeof(double)是。A)函數(shù)調(diào)用B)double型表達(dá)式C)int型表達(dá)式 D)非法表達(dá)式【1.35】已知:intx,y;doublez;則以下語句中錯(cuò)誤的函數(shù)調(diào)用是。A)scanf("%d,%lx,%le",&x,&y,&z);B)scanf("%2d*%d%lf",&x,&y,&z);C)scanf("%x%*d%o",&x,&y);D)scanf("%x%o%6.2f",&x,&y,&z);【1.36】與條件表達(dá)式"(n)?(c++):(c--)"中的表達(dá)式(n)等價(jià)的表達(dá)式。A)(n==0) B)(n==1) C)(n!=0) D)(n!=1)【1.37】已知inti=1,j=0;執(zhí)行下面語句后j的值是 while(i)switch(i){case1:i+=1;j++;break;case2:i+=2;j++;break;case3:i+=3;j++;break;default:i--;j++;break;}A)1 B)2 C)3 D)死循環(huán)【1.38】求取滿足式12+22+32+……+n2≤1000的正確的語句是 。A)for(i=1,s=0;(s=s+i*i)<=1000;n=i++);B)for(i=1,s=0;(s=s+i*i)<=1000;n=++i);C)for(i=1,s=0;(s=s+i*++i)<=1000;n=i);D)for(i=1,s=0;(s=s+i*i++)<=1000;n=i);【1.39】下面的for語句。for(x=0,y=10;(y>0)&&(x<4);x++,y--);A)是無限循環(huán) B)循環(huán)次數(shù)不定C)4次D)3次【1.40】已知inti=1; 執(zhí)行語句while(i++<4);后,變量i的值為 。A)3 B)4 C)5 D)【1.41】已知intx=12,y=3;執(zhí)行下述程序后變量x的值是 。do{x/=y--;}while(x>y);A)1 B)2 C)3 D)程序運(yùn)行有錯(cuò)誤【1.42】已知chara[][20]={"Beijing","shanghai","tianjin","chongqing"};語句printf("%c",a[30]);的輸出是 。A)空格> B)n C)不定 D)數(shù)組定義有誤【1.43】若用數(shù)組名作為函數(shù)調(diào)用時(shí)的實(shí)參,則實(shí)際上傳遞給形參的是。A)數(shù)組首地址 B)數(shù)組的第一個(gè)元素值C)數(shù)組中全部元素的值 D)數(shù)組元素的個(gè)數(shù)【1.44】對(duì)二維數(shù)組的正確說明。A)inta[][]={1,2,3,4,5,6}; B)inta[2][]={1,2,3,4,5,6};C)inta[][3]={1,2,3,4,5,6}; D)inta[2,3]={1,2,3,4,5,6};【1.45】對(duì)字符數(shù)組s賦值,不合法的一個(gè)是 。chars[]="Beijing";chars[20]={"beijing"};chars[20];s="Beijing";D)chars[20]={'B','e','i','j','i','n','g'};【1.46】對(duì)字符數(shù)組str賦初值,str不能作為字符串使用的一個(gè)。charstr[]="shanghai";charstr[]={"shanghai"};C)charstr[9]={'s','h','a','n','g','h','a','i'};D)charstr[8]={'s','h','a','n','g','h','a','i'};【1.47如果一個(gè)變量在整個(gè)程序運(yùn)行期間都存在,但是僅在說明它的函數(shù)內(nèi)是可見的,這個(gè)量的存儲(chǔ)類型應(yīng)該被說明。A)靜態(tài)變量 B)動(dòng)態(tài)變量 C)外部變量 D)內(nèi)部變量【1.48】在一個(gè)C源程序文件, 若要定義一個(gè)只允許在該源文件中所有函數(shù)使用的變量,該變量需要使用的存儲(chǔ)類別是。A)extern B)register C)auto D)static【1.49】在C語言中,函數(shù)的數(shù)據(jù)類型是。A)函數(shù)返回值的數(shù)據(jù)類型 B)函數(shù)形參的數(shù)據(jù)類型C)調(diào)用該函數(shù)時(shí)的實(shí)參的數(shù)據(jù)類型 D)任意指定的數(shù)據(jù)類型【1.50】已知如下定義的函數(shù):fun1(a){printf("\n%d",a);}則該函數(shù)的數(shù)據(jù)類型。A)與參數(shù)a的類型相同 B)void型C)沒有返回值 D)無法確定【1.51】定義一個(gè)函數(shù)實(shí)現(xiàn)交換x和y的值,并將結(jié)果正確返回。能夠?qū)崿F(xiàn)此功能的。A)swapa(intx,inty) B)swapb(int*x,int*y){inttemp; {inttemp;temp=x;x=y;y=temp; temp=x;x=y;y=temp;} }C)swapc(int*x,int*y) D)swapd(int*x,int*y){inttemp; {int*temp;temp=*x;*x=*y;*y=temp; temp=x;x=y;y=temp;} }【1.52】求一個(gè)角的正弦函數(shù)值的平方。能夠?qū)崿F(xiàn)此功能的函數(shù)。sqofsina(float x){return(sin(x)*sin(x));}doublesqofsinb(floatx){return(sin((double)x)*sin((double)x));}doublesqofsinc(x){return(((sin(x)*sin(x));}sqofsind(float x){return(double(sin(x)*sin(x)));【1.53】一個(gè)函數(shù)內(nèi)有數(shù)據(jù)類型說明語句如下:doublex,y,z(10);關(guān)于此語句的解釋,下面說法正確的。z10個(gè)元素。z10是它的實(shí)參的值。z10是它的初值。語句中有錯(cuò)誤?!?.54】已知函數(shù)定義如下:floatfun1(intx,inty){floatz;z=(float)x/y;return(z);}主調(diào)函數(shù)中有inta=1,b=0;可以正確調(diào)用此函數(shù)的語句。A)printf("%f",fun1(a,b)); B)printf("%f",fun1(&a,&b));C)printf("%f",fun1(*a,*b)); D)調(diào)用時(shí)發(fā)生錯(cuò)誤【1.55】下面函數(shù)的功能是 。voida(chars1[],chars2[]){while(*s2++=*s1++);}A)字符串比較B)字符串復(fù)制 C)字符串連接 D)字符串反向【1.56】在下列結(jié)論中,只有一個(gè)是錯(cuò)誤的,它。C語言允許函數(shù)的遞歸調(diào)用continue語句,可以通過改變程序的結(jié)構(gòu)而省略有些遞歸程序是不能用非遞歸算法實(shí)現(xiàn)的C語言中不允許在函數(shù)中再定義函數(shù)【1.57】說明語句"int(*p)();"的含義是。p是一個(gè)指向一維數(shù)組的指針變量p是指針變量,指向一個(gè)整型數(shù)據(jù)p是一個(gè)指向函數(shù)的指針,該函數(shù)的返回值是一個(gè)整型以上都不對(duì)【1.58】設(shè)有說明int(*p)[4];其中的標(biāo)識(shí)符p是。4個(gè)指向整型變量的指針變量4個(gè)整型變量的函數(shù)指針4個(gè)整型元素的一維數(shù)組的指針4個(gè)指向整型變量的指針元素的一維指針數(shù)組【1.59】已知:chars[10], *p=s,則在下列語句中,錯(cuò)誤的語句是。A)p=s+5; B)s=p+s; C)s[2]=p[4]; D)*p=s[0];【1.60】已知:chars[100];inti;A)s[i+10] B)*(s+i) C)*(i+s) D)*((s++)+i)【1.61】已知:chars[6], *ps=s;則正確的賦值語句是。A)s="12345"; B)*s="12345"; C)ps="12345"; D)*ps="12345";【1.62】已知:inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};int(*ptr)[3]=a,*p=a[0];則以下能夠正確表示數(shù)組元素a[1][2]的表達(dá)式是。A)*(*(a+1)+2) B)*(*(p+5)) C)(*ptr+1)+2 D)*((ptr+1)[2])【1.63】已知:inta[]={1,2,3,4,5,6,7,8,9,10,11,12},*p=a;則值為3的表達(dá)式是。A)p+=2,*(p++) B)p+=2,*++p C)p+=2,(*p)++ D)p+=2,++*p【1.64已知:inta[]={1,2,3,4}, y, *p=a;則執(zhí)行語句y=(*++p)--;之后, 數(shù)組a各元素的值變?yōu)?。A)0,1,3,4 B)1,1,3,4 C)1,2,2,4 D)1,2,3,3變量y的值是 。A)1 B)2 C)3 D)4【1.65】已知:inta[]={1,3,5,7}, y,*p=a;為使變量y的值為3,下列語句正確的A)y=++*p++; B)y=++(*p++); C)y=(++*p)++; D)y=(*++p)++;【1.66】已知:intx[]={1,3,5,7,9,11},*ptr=x;則能夠正確引用數(shù)組元素的語句是。A)x B)*(ptr--) C)x[6] D)*(--ptr)【1.67xyA)voidfuna(int*x, int*y) B)void funb(intx, inty){int*p; {intt;p=x;*x=*y;*y=*p; t=x;x=y;y=t;} }C)void func(int*x, int*y) D)voidfunc(int*x, int*y){*x=*y;*y=*x; {*x=*x+*y;*y=*x-*y;*x=*x-*y;} }【1.68】有定義如下:structsk{inta;floatb;}data,*p;如果p=&data;則對(duì)于結(jié)構(gòu)變量data的成員a的正確引用是 。A)(*).data.a B)(*p).a C)p->data.a D)p.data.a【1.69】已知:structst{intn;structst*next;};staticstructsta[3]={1,&a[1],3,&a[2],5,&a[0]},*p;如果下述語句的顯示是2,則對(duì)p的賦值是 。printf("%d",++(p->next->n));A)p=&a[0]; B)p=&a[1]; C)p=&a[2]; D)p=&a[3];【1.70】已知:structperson{charname[10];intage;}class[10]={"LiMing",29,"ZhangHong",21,"WangFang",22};下述表達(dá)式中,值為72的一個(gè)是 。class[0]->age+class[1]->age+class[2]->ageclass[1].name[5]person[1].name[5]clase->name[5]【1.71】已知:struct{inti;charc;float}test;則sizeof(test)的值是。A)4 B)5 C)6 D)7【1.72】已知:union{inti;charc;floata;}test;則sizeof(test)的值是。A)4 B)5 C)6 D)7【1.73】已知:unionu_type{inti;charch;floata;}temp;現(xiàn)在執(zhí)行"temp.i=266;printf("%d",temp.ch)"的結(jié)果是。A)266 B)256 C)10 D)1【1.74】若有以下程序段:structdent{intn;int*m;};inta=1,b=2,c=3;structdents[3]={{101,&a},{102,&b},{103,&c}};structdent*p=s;則以下表達(dá)式中值為2的是。A)(p++)->m B)*(p++)->m C)(*p).m D)*(++p)->m【1.75】若有以下說明語句,則對(duì)結(jié)構(gòu)變量pup中sex域的正確引用是。structpupil{charname[20];intsex;}pup,*p;p=&pup;A)p.pup.sex B)p->pup.sex C)(*p).pup.sex D)(*p).sex【1.76】以下對(duì)結(jié)構(gòu)變量stul中成員age的非法引用是。structstudent{intage;intnum;}stu1,*p;p=&stu1;A)stu1.age B)student.age C)p->age D)(*p).age【1.77】若有以下定義和語句:uniondata{inti;charc;floatf;}a;intn;則以下語句正確的是 。A)a=5; B)a={2,'a',1.2}; C)printf("%d\n",a.i); D)n=a;【1.78】已知enumweek{sun,mon,tue,wed,thu,fri,sat}day;則正確的賦值語句。A)sun=0; B)san=day;C)sun=mon; D)day=sun;【1.79】已知enumcolor{red,yellow=2,blue,white,black}ren;執(zhí)行下述語句的輸出結(jié)果是 。printf("%d",ren=white);A)0 B)1 C)3 D)【1.80】下述關(guān)于枚舉類型名的定義中,正確的。A)enema={one,two,three}; B)enema{one=9,two=-1,three};C)enema={"one","two","three"}; D)enema{"one","two","three"};【1.81】已知宏定義#defineN3#defineY(n) ((N+1)*n)執(zhí)行語句z=2*(N+Y(5+1));后,變量z的值是 A)42 B)48 C)52 D)出錯(cuò)【1.82】已知宏定義#defineSQ(x)x*x,執(zhí)行語句printf("%d",10/SQ(3));后的輸出結(jié)果是 。A)1 B)3 C)9 D)10【1.83】已知宏定義如下:#definePR#defineNL"\n"#defineD"%d"#defineD1DNL若程序中的語句是PR(D1,a);經(jīng)預(yù)處理后展開為 。A)printf(%d\n,a); B)printf("%d\n",a);C)printf("%d""\n",a); D)原語句錯(cuò)誤【單項(xiàng)選擇題參考答案】【1.1】答案:A注釋:int是C語言的關(guān)鍵字【1.2】答案:B【A【】答案:B注釋:include是預(yù)處理命令;scanf是函數(shù)名;type不是C語言的關(guān)鍵字?!尽看鸢福篋【】答案:D【A【A注釋:int型表示整數(shù)的范圍是-32768~32767?!?.9】答案:D-1在計(jì)算機(jī)中表示為補(bǔ)碼1111111111111111不會(huì)被解釋為符號(hào)位,而是與右邊其它位共同轉(zhuǎn)換為十六進(jìn)制數(shù)。【1.10】答案:B327681000000000000000數(shù)恰是-32768的補(bǔ)碼?!?.11】答案:C注釋:長整型數(shù)65539000100000000000016位二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)?!?.12】答案:A注釋:C語言中,int型的負(fù)數(shù)是采用補(bǔ)碼表示的?!綝注釋:變量cB是錯(cuò)誤的;在單引號(hào)或雙引號(hào)內(nèi)的反斜線的;C;單引號(hào)只允許括起一個(gè)字符,D4個(gè)字符,是錯(cuò)誤的?!綝ASCIIASCII?!綛【BC、CC0,0了。注釋:將條件表達(dá)式增加一個(gè)括號(hào),此式變?yōu)閍<b?a:(c<d?c:d)條件運(yùn)算符的結(jié)合性是從右向左,所以括號(hào)可以省略。它的運(yùn)算順序是先算出右邊的條件表達(dá)式"c<d?c:d"的值,然后求條件表達(dá)式a<b?a:3的值?!綛【B注釋:當(dāng)通過一個(gè)運(yùn)算對(duì)象即可決定邏輯運(yùn)算&&的結(jié)果時(shí),則對(duì)另一個(gè)運(yùn)算對(duì)象不做處理?!綝【B注釋:數(shù)組元素在內(nèi)存中按行排列,此數(shù)組的前31332C語言引用數(shù)組元素時(shí)是根據(jù)數(shù)組的首地址和給出的下標(biāo)進(jìn)行運(yùn)算決定元素的地址。題中表達(dá)式引用了數(shù)組前3個(gè)元素?!?.29】答案:A【D【D【D注釋:在C語言中,經(jīng)常用一個(gè)變量來作為邏輯表達(dá)式,其含義就是:當(dāng)變量的值不為0系成立?!?.37】答案:D注釋:break語句僅可跳出switch語句,不會(huì)跳出while循環(huán),這是一個(gè)死循環(huán)?!綝注釋:當(dāng)除數(shù)y為0時(shí),程序發(fā)生溢出錯(cuò)誤。注釋:答案C的賦值號(hào)左側(cè)是數(shù)組s的首地址,是一個(gè)常量,賦值號(hào)右側(cè)是一個(gè)字符串常量,不可能將一個(gè)字符串常量賦給一個(gè)地址常量?!?.46】答案:D注釋:D選項(xiàng)缺少字符串結(jié)束標(biāo)志?!綝注釋:這里首先要明確一些基本概念。在C;一個(gè)文件中又可以包含多個(gè)函數(shù);C的基本單位。autoregister類型的變量的作用域是說明變量的當(dāng)前函數(shù);;內(nèi)部靜態(tài)變量(定義在一個(gè)函數(shù)內(nèi)部的static型的變量)的作用域是當(dāng)前函數(shù),外部靜態(tài)變量(static型的變量)的作用域是當(dāng)前文件,即可以跨越同一文件中的不同函數(shù)。注釋:它和參數(shù)a一樣,數(shù)據(jù)類型說明被省略,按照C語言的規(guī)定,在這種情況下,表示它們是int型?!?.51】答案:Cswapa;swapbtemp所以它不能接受地址量,用指針變量x為它賦值是不對(duì)的;swap中雖然指針變量交換了地址,即它們的指向的目標(biāo)變量進(jìn)行了交換,但是目標(biāo)變量并沒有行值的交換?!綛【D【D注釋:主調(diào)函數(shù)中b=0,在執(zhí)行fun1函數(shù)里的除法時(shí)發(fā)生溢出錯(cuò)誤。【B注釋:要注意與說明語句"int(*p)[];"的區(qū)別。說明語句"int(*p)[];"說明的是一個(gè)指向數(shù)組的指針?!?.58】答案:C注釋:題干中由于pp說明4int型元素的一維數(shù)組;int(*p)(),則是指向函數(shù)的指針。對(duì)int*p[4],p和【1.59】答案:B注釋:選項(xiàng)B有兩處錯(cuò)誤,一是數(shù)組名是常量,不能出現(xiàn)的賦值好的左側(cè),二是指針變量只能和整數(shù)做加,不能和作為地址常量的數(shù)組名相加。【1.60】答案:D注釋:s作為數(shù)組名是地址常量,而s++是s=s+1,C語言不允許對(duì)常量進(jìn)行賦值。注釋:pB中對(duì)它進(jìn)行了兩次運(yùn)算是錯(cuò)誤的。ptr是一個(gè)指向一維數(shù)組的指針,它所指向的數(shù)組有三個(gè)元素,對(duì)于這樣一個(gè)指針,對(duì)它進(jìn)行兩次**運(yùn)算才能取出地址單元中所存的數(shù)據(jù),C*ptr表示(*ptr+1)+24選項(xiàng)D對(duì)ptr(和1根據(jù)后面中2運(yùn)算就是數(shù)10a[3][0]?!?.63】答案:A【1.64】答案:BB【D【B【D注釋:答案D是另一種交換兩個(gè)變量值的算法?!綛Cpp->nextn1?!綛【Dtemp4個(gè)字節(jié)。266100001010,存放在存儲(chǔ)單元的低端兩個(gè)字節(jié),如下圖:高字節(jié)00000001低字節(jié)00001010引用temp.ch進(jìn)行輸出,只取最低的第一個(gè)字節(jié)?!?.74】答案:D0(p++)->m變量a的地址,然后指針p加*(p++)->m的含義是先取出m的內(nèi)容(變量a的值,p。表達(dá)式(*p).ma的地址*(++p)->mp1m的內(nèi)容(b的值?!綝【B【D【D【B【B注釋:語句z=2*(N+Y(5+1)C語言是區(qū)分字母大小的,第二個(gè)宏定義中的35+1nz=2*(3+(3+1)*5+1);48。注意對(duì)于帶參數(shù)的宏亦是直接的文本替換,此例中n5+1去替換,結(jié)果是(N+1)*5+1,而不是(N+1)*(5+1)?!?.82】答案:C注釋:宏替換后的結(jié)果是printf("%d",10/3*3)?!?.83】答案:C二、閱讀程序題導(dǎo)讀:學(xué)會(huì)閱讀程序?qū)τ诔鯇W(xué)者來說很重要,一方面可以鞏固所學(xué)的語法知識(shí),另一方面通過閱讀別人寫好的程序來打開自己的思路,就所謂見多識(shí)廣。讀者通過閱讀理解程序,從給出的四個(gè)備選參考答案中,選擇程序的正確輸出。如果選擇有誤,就要認(rèn)真分析原因,是概念方面的錯(cuò)誤還是對(duì)程序邏輯理解不對(duì),從而加深對(duì)語法規(guī)則的理解,提高程序設(shè)計(jì)能力。程序設(shè)計(jì)語言是開發(fā)程序的一個(gè)工具,學(xué)習(xí)語言的目的是為了編寫程序來解決實(shí)際問題,所以特別提倡通過實(shí)際上機(jī)來檢驗(yàn)備選答案,增強(qiáng)動(dòng)手能力?!尽?include<stdio.h>voidmain(){floata;a=1/100000000;printf("%g",a);}A)0.00000e+00 B)0.0 C)1.00000e-07 D)0【】下面程序的輸出結(jié)果。#include<stdio.h>voidmain(){intx=10;{intx=20;printf("%d,", x);}printf("%d\n", x);}A)10,20 B)20,10 C)10,10 D)20,20【】以下程序的輸出結(jié)果。#include<stdio.h>voidmain(){unsignedintn;inti=-521;n=i;printf("n=%u\n",n);}A)n=-521 B)n=521 C)n=65015 D)n=102170103【】#include<stdio.h>voidmain(){intx=10, y=10; printf("%d%d\n", x――, ――y);}A)1010 B)99 C)910 D)109【】以下程序的輸出結(jié)果。#include<stdio.h>voidmain(){intn=1;printf("%d%d%d\n",n,n++,n--);}A)111 B)101 C)110 D)121【】以下程序的輸出結(jié)果。#include<stdio.h>voidmain(){inta=1;charc='a';floatf=2.0;printf("%d\n",(!(a==0),f!=0&&c=='A'));}A)0 B)1【】下面程序的輸出結(jié)果。#include<stdio.h>voidmain(){chars[12]="abook";printf("%.4s",s);}A)abook! B)abook!<四個(gè)空格》C)abo D)格式描述錯(cuò)誤,輸出不確定【】下面程序的輸出結(jié)果。#include<stdio.h>voidmain(){inta,b;scanf("%2d%3d",&a,printf("a=%db=%d\n",a,b);}A)a=12b=34 B)a=123b=45 C)a=12b=345 D)語句有錯(cuò)誤【】inta=10,b=50,if(a>b)a=b;b=c;c=a;printf("a=%db=%dc=%d\n",a,b,c);A)a=10b=50c=10 B)a=10b=30c=10C)a=50b=30c=10 D)a=50b=30【2.10】以下程序的輸出結(jié)果是。#include<stdio.h>voidmain(){inta=0,b=1,c=0,if(a)d=d-10;elseif(!b)if(!c)d=15;elsed=25;printf("d=%d\n",d);}A)d=10 B)d=15 C)d=20 D)d=25【2.11】下面程序的輸出結(jié)果為。#include<stdio.h>voidmain(){inta=1,b=0;switch(a){case1:switch(b){case0:printf("**0**"); case1:printf("**1**"); break;}case2:printf("**2**"); break;}}A)**0** B)**0****2** C)**0****1****2** D)有語法錯(cuò)誤【2.12】#include<stdio.h>voidmain(){char*s="12134211";intv1=0,v2=0,v3=0,v4=0,for(k=0;s[k];k++)switch(s[k]){case'1':v1++;case'3':v3++;case'2':default:v4++;}printf("v1=%d, v2=%d, v3=%d, v4=%d\n",v1,v2,v3,v4);}A)v1=4,v2=2,v3=1,v4=1 B)v1=4,v2=9,v3=3,v4=1C)v1=5,v2=8,v3=6,v4=1 D)v1=4,v2=7,v3=5,【2.13】下面程序的輸出是。#include<stdio.h>voidmain(){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);}A)a=2,b=1 B)a=1,b=1 C)a=1,b=0 D)a=2,b=2【2.14】下面程序的輸出是 。#include<stdio.h>voidmain(){intnum=0;while(num<=2){num++;printf("%d",num);}}A)1 B)1234 C)123 D)12【2.15】下面程序的輸出結(jié)果是 。#include<stdio.h>voidmain(){inta=1,b=0;do{switch(a){case1:b=1;break;case2:b=2;break;default:b=0;}b=a+b;}while(!b);printf("a=%d,b=%d",a,b);}A)1,2 B)2,1 C)1,1 D)2,2【2.16】從鍵盤上輸入"446755"時(shí),下面程序的輸出。#include<stdio.h>voidmain(){intc;while((c=getchar())!='\n')switch(c-'2'){case0:case1:putchar(c+4);case2:putchar(c+4);break;case3:putchar(c+3);default:putchar(c+2);break;}printf("\n");}A)888988 B)668966 C)88898787 D)66898787【2.17】下面程序的輸出結(jié)果。#include<stdio.h>voidmain(){intk=0;charc='A';do{switch(c++){case'A':k++;break;case'B':k--;case'C':k+=2;break;case'D':k=k%2;contiue;case'E':k=k+10;break;default:k=k/3;}k++;}while(c<'C');printf("k=%d\n",k);}A)k=1 B)k=2 C)k=3 D)k=4【2.18】下面程序的輸出結(jié)果。#include<stdio.h>voidmain(){intx,i;for(i=1;i<=100;i++){x=i;if(++x%2==0)if(++x%3==0)if(++x%7==0)printf("%d",x);}}A)3981 B)4284 C)2668 D)2870【2.19】下面程序的輸出結(jié)果。#include<stdio.h>voidmain(){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);}A)20 B)21 C)22 D)23【2.20】假定從鍵盤上輸"3.6,2.4<回車>",下面程序的輸出。#include#include<stdio.h>voidmain(){floatx,y,z;scanf("%f,%f",&x,z=x/y;while(1){if(fabs(z)>1.0){x=y;y=z;z=x/y;}elsebreak;}printf("%f\n",y);}A)1.500000 B)1.600000 C)2.000000 D)2.400000【2.21】下面程序的輸出結(jié)果。#include<stdio.h>voidmain(){inti,j,x=0;for(i=0;i<2;{x++;for(j=0;j<-3;j++){if(j%2)continue;x++;}x++;}printf("x=%d\n",x);}A)x=4 B)x=8 C)x=6 D)x=12【2.22】下面程序的輸出結(jié)果。#include<stdio.h>voidmain(){inti,j,k=10;for(i=0;i<2;{k++;{intk=0;for(j=0;j<=3;j++){if(j%2)continue;k++;}}k++;}printf("k=%d\n",k);}A)k=4 B)k=8 C)k=14 D)k=18【2.23】下面程序的輸出結(jié)果。#include<stdio.h>voidmain(){intn[3][3], i, for(i=0;i<3;i++)for(j=0;j<3;j++)n[i][j]=i+j;for(i=0;i<2;i++)for(j=0;j<2;j++)n[i+1][j+1]+=n[i][j];printf("%d\n", n[i][j]);}A)14 B)0 C)6 D)不確定【2.24】下面程序的輸出結(jié)果。#include<stdio.h>voidmain(){inta[4][5]={1,2,4,-4,5,-9,3,6,-3,2,7,8,4};inti,j,n;n=9;i=n/5;j=n-i*5-1;printf("a[%d][%d]=%d\n", i,j,a[i][j]);}A)6 B)-3 C)2 D)不確定【2.25】下面程序的輸出結(jié)果。#include<stdio.h>intm[3][3]={{1}, {2}, {3}};intn[3][3]={1, 2, 3};voidmain(){printf("%d\n", m[1][0]+n[0][0]); /*①*/printf("%d\n", m[0][1]+n[1][0]); /*②*/}①A)0 B)1 C)2 D)3②A)0 B)1 C)2 D)3【2.26】下面程序的輸出結(jié)果。#include<stdio.h>voidmain(){chars1[50]={"somestring*"},s2[]={"test"};printf("%s\n", strcat(s1,s2));}A)somestring* B)testC)somestritest D)somestring*test【2.27】下面程序的輸出結(jié)果。#include<stdio.h>intf(char*s){char*p=s;while(*p!='\0')p++;return(p-s);}voidmain(){printf("%d\n",f("ABCDEF"));}A)3 B)6 C)8 D)0【2.28】下面程序的輸出結(jié)果。#include<stdio.h>#include<string.h>voidmain(){charstr[100]="Howdoyoudo";strcpy(str+strlen(str)/2, "esprintf("%s\n", str);}A)Howdoyoudo B)esshe C)Howareyou D)Howdoesshe【2.29】下面程序的輸出結(jié)果。#include<stdio.h>intfunc(inta,int{intc;c=a+b;return(c);}voidmain(){intx=6,y=7,z=8,r;r=func((x--,y++,x+y),z--);printf("%d\n",r);}A)11 B)20 C)21 D)31【2.30】下面程序的輸出結(jié)果。#include<stdio.h>voidfun(int*s){staticintj=0;do{s[j]+=s[j+1];}while(++j<2);}voidmain(){intk,a[10]={1,2,3,4,5};for(k=1;k<3;fun(a);for(k=0;k<5;k++)printf("%d",a[k]);}A)35756 B)23445 C)35745 D)12345【2.31】下面程序的輸出結(jié)果。#include<stdio.h>intk=1;voidmain(){voidfun(int);inti=4;fun(i);printf("\n%d,%d",i,k); /*①*/}void fun(intm){m+=k;k+=m;{chark='B';printf("\n%d",k-'A'); /*②*/}printf("\n%d,%d",m,k); /*③*/}①A)4,1 B)5,6 C)4,6 D)A,B,C參考答案都不對(duì)A)1 B)-59 C)-64 D)A,B,C參考答案都不對(duì)③A)5,66 B)1,66 C)5,6 D)A,B,C參考答案都不對(duì)【2.32】下面程序的輸出結(jié)果。intw=3;#include<stdio.h>voidmain(){intfun(int);intw=10;printf("%d\n",fun(5)*w);}intfun(intk){if(k==0)return(w);return(fun(k-1)*k);}A)360 B)3600 C)1080 D)1200【2.33】下面程序的輸出結(jié)果。#include<stdio.h>intfuna(inta){intb=0;staticintc=3;a=c++,b++;return(a);}voidmain(){inta=2,i,k;for(i=0;i<2;i++)k=funa(a++);printf("%d\n",k);}A)3 B)0 C)5 D)4【2.34】下面程序的輸出結(jié)果。#include<stdio.h>voidnum(){externintx,y;inta=15,b=10;x=a-b;y=a+b;}intx,y;voidmain(){inta=7,b=5;x=a-b;y=a+b;num();printf("%d,%d\n",x,y);}A)12,2 B)5,25 C)1,12 D)輸出不確定【2.35】下面程序的輸出結(jié)果。#include<stdio.h>voidmain(){intf(int);inta=2,i;for(i=0;i<3;i++)printf("%4d",f(a));}intf(inta){intb=0;staticintb++;c++;return(a+b+c);}A)777 B)71013 C)7911 D)789【2.36】下面程序的輸出結(jié)果。#include<stdio.h>inttry(){staticintx=3;x++;return(x);}voidmain(){inti, x;for(i=0; i<=2; i++x=try();printf("%d\n", x);}A)3 B)4 C)5 D)6【2.37】下面程序的輸出結(jié)果。#include<stdio.h>voidmain(){ voidf1(), f2(intintx=1;f1();f2(x);printf("%d\n", x);}voidf1(){intx=3;printf("%d", }voidf2(intx){printf("%d", ++x);}A)111 B)222 C)333 D)321【2.38】下面程序的輸出結(jié)果。#include<stdio.h>#defineSUB(X,Y)(X)*Yvoidmain(){inta=3,b=4;printf("%d\n",SUB(a++,b++));}A)12 B)15 C)16 D)20【2.39】下面程序的輸出結(jié)果。#include<stdio.h>voidmain(){inta[]={1,2,3,4,5,6};int*p;p=a;printf("%d",*p);printf("%d",*(++p));printf("%d",*++p);printf("%d",*(p--));p+=3;printf("%d%d",*p,*(a+3));}A)123354 B)123456 C)122345 D)123445【2.40】下面程序的輸出結(jié)果。#defineFMT"%X\n"#include<stdio.h>voidmain(){staticinta[][4]={1,2,3,4,5,6,7,8,9,10,11,12};printf(FMT, a[2][2]); /*①*/printf(FMT, *(*(a+1)+1)); /*②}①A)9 B)11 C)A D)BA)6 B)7 C)8 D)前面三個(gè)參考答案均是錯(cuò)誤的【2.41】下面程序的輸出結(jié)果。#include<stdio.h>main(){inta[]={1, 2, 3, 4, 5};intx, y, p=&a[0];x=*(p+2);y=*(p+4);printf("%d,%d,%d\n", *p, x, y);}A)1,3,5 B)1,2,3 C)1,2,4 D)1,4,5【2.42】下面程序的輸出結(jié)果。#include<stdio.h>voidive(intx[],n){intt,*p;p=x+n-1;while(x<p){t=*x;*x++=*p;*p--=t;}}voidmain(){inti,a[]={1,2,3,4,5,6,7,8,9,0};ive(a,10);for(i=0;i<10;i++)printf("%d",printf("\n");}A)1234567890 B)0987654321C)1357924680 D)0864297531【2.43】下面程序的輸出結(jié)果。#include<stdio.h>#include"string.h"fun(char*w,intn){chart,*s1,s1=w;s2=w+n-1;while(s1<s2){t=*s1++;*s1=*s2--;*s2=t;}}voidmain(){staticcharfun(p,strlen(p));printf("%s",p);}A)7654321 B)1717171 C)7171717 D)1711717【2.44】下面程序的輸出結(jié)果。#include<stdio.h>char*p="abcdefghijklmnopq";voidmain(){inti=0;while(*p++!='e');printf("%c\n", *p);}A)c B)d C)e D)f【2.45】下面程序的輸出結(jié)果。#include<stdio.h>intf(intx, inty){return(y-x);}voidmain(){inta=5, b=6, c;int (*g)(int, printf("%d\n", (*g)(a,b));}A)1 B)2 C)3 D)前面三個(gè)參考答案均是錯(cuò)誤的【2.46】下面程序的輸出結(jié)果。#include<stdio.h>voidmain(){inta=1,*p,**pp;pp=&p;p=&a;a++;printf("%d,%d,%d\n", a,*p, **pp);}A)2,1,1 B)2,1,2 C)2,2,2 D)程序有錯(cuò)誤【2.47】下面程序的輸出結(jié)果。#include<stdio.h>voidmain(){char*alpha[7]={"ABCD","EFGH","IJKL","MNOP","QRST","UVWX","YZ"};char**p;inti;p=alpha;for(i=0;i<4;i++)printf("%c",*(p[i]));printf("\n");}A)AEIM B)BFJN C)ABCD D)DHLP【2.48】下面程序的輸出結(jié)果。#include<stdio.h>char*pp[2][3]={"abc", "defgh", "ijkl", "mnopqr", "stuvw", main(){printf("%c\n",***(pp+1)); /*①*/printf("%c\n",**pp[0]); /*②*/printf("%c\n",(*(*(pp+1)+1))[4]); /*③printf("%c\n",*(pp[1][2]+2)); /*④printf("%s\n",**(pp+1)); /*⑤*/}①A)aB)dC)iD)m②A)aB)dC)iD)m③A)hB)lC)qD)w④A)kB)oC)uD)z⑤A)ijkl B)mnopqr C)stuvw D)xyz【2.49】下面程序的輸出結(jié)果。#include<stdio.h>structstr1{charchar*s;};voidmain(){structstr1s1[2]={{"ABCD""EFGH"},{"IJK","LMN"}};structstr2{structstr1sr;intd;}s2={"OPQ","RST",32767};structstr1p[0]=&s1[0];p[1]=&s1[1];printf("%s",++p[1]->s); /*①*/printf("%c",s2.sr.c[2]); /*②*/}①A)LMN B)MN C)N D)IJK②A)O B)P C)Q D)R【2.50】以下程序的輸出結(jié)果。#include<stdio.h>structst{intx,*y;}*p;ints[]={10,20,30,40};structsta[]={1,&s[0],2,&s[1],3,&s[2],4,&s[3]};voidmain(){p=a;printf("%d\n",++(*(++p)->y));}A)10 B)11 C)20 D)21【2.1】參考答案:D

【閱讀程序題參考答案】注釋:程序中除法運(yùn)算的兩個(gè)操作數(shù)均是整型,運(yùn)算結(jié)果也是整型。【2.2】參考答案:B注釋:C語言允許在程序塊(分程序)中說明變量?!?.3】參考答案:C注釋:變量i中的負(fù)號(hào)傳送給變量n后,因n是無符號(hào)數(shù),已不作為負(fù)號(hào)處理?!?.4】參考答案:Dxx1操作要在執(zhí)行完printfx。【2.5】參考答案:B注釋:C語言在執(zhí)行printf()時(shí),對(duì)函數(shù)中的表達(dá)式表列的處理順序是從后向前,即先處理n--,再處理n++,最后處理n,而且每一個(gè)表達(dá)式作為一個(gè)處理單元,也就是說在不同的表達(dá)式中自增自減運(yùn)算是單獨(dú)考慮的?!?.6】參考答案:Ac=='A'0,?!?.7】參考答案:C注釋:在輸出格式描述"%m.ns"中,m是輸出總長度,n是實(shí)際字符的個(gè)數(shù),這里m沒有給出,則輸出總長度就是實(shí)際輸出字符的個(gè)數(shù)。【2.8】參考答案:C【2.9】參考答案:B【】參考答案:B【D【2.14】參考答案:C【2.15】參考答案:A【2.16】參考答案:C注釋:在switch語句中,case本身僅起到語句標(biāo)號(hào)的作用,不會(huì)改變語句的流程,執(zhí)行break語句才能退出當(dāng)前的switch語句?!?.17】參考答案:D注釋:siwtch語句的表達(dá)式中,變量c是后綴的增一運(yùn)算,第一次執(zhí)行do-while循環(huán)時(shí),執(zhí)行case'A'后面的語句?!?.18】參考答案D【2.19】參考答案B【2.20】參考答案B注釋:fabs()是浮點(diǎn)數(shù)絕對(duì)值函數(shù)?!?.21】參考答案:A【2.22】參考答案:C注釋:C語言允許在程序塊(分程序)內(nèi)說明變量,如果在程序塊內(nèi)說明的變量和程序塊外的變量同名,在塊外說明的變量在塊內(nèi)是不可見的??蓪⒋祟}和【2.11】進(jìn)行比較,加深理解?!?.23】參考答案:C【2.24】參考答案:B【2.25】參考答案:①D②A【2.26】參考答案:D【2.27】參考答案:B注釋:輸出結(jié)果為字符串長度?!?.28】參考答案:D注釋:字符串拷貝函數(shù)strcpy()要求的兩個(gè)參數(shù)都是字符串首地址。本題中第二個(gè)參數(shù)是字符串str26str的首地址加"esshestr變?yōu)?Howdoesshe"?!?.29】參考答案:C注釋:main函數(shù)調(diào)用func函數(shù)時(shí),第一個(gè)實(shí)參使用的是逗號(hào)表達(dá)式的值,也就是x+y的結(jié)果。由于對(duì)變量x、y、z進(jìn)行的是后綴運(yùn)算,所以函數(shù)func的參數(shù)值是13和8?!?.30】參考答案:C【2.31】參考答案:CAC【2.32】參考答案:Bfun5×4×3×2×1×3×10w屏蔽了外部變量w,所以在主函數(shù)中外部變量w是不可見的,在調(diào)用printf表達(dá)式"fun(5)*w"w10?!?.33】參考答案:D注釋:mainfunafunac初始化,再次調(diào)用時(shí)不再對(duì)靜態(tài)變量賦初值?!?.34】參考答案:Bnuma和b,由于它們是內(nèi)部變量,所以它們分別在說xynumnumnum"extern"xy是一個(gè)外部變量,也就是通知計(jì)算機(jī)這兩fun函數(shù)以外被說明,此處不是定義兩個(gè)int型變量?!?.35】參考答案:Dfcf3,fc4,第三次調(diào)用函數(shù)fc。【2.36】參考答案D【2.37】參考答案D"x""x"的操作互不影響。【2.38】參考答案:A【2.39】參考答案:A注釋:*(++p)和*++p1,第一次指向a[1],第二次指向a[2];a+3a[3]地址?!?.40】參考答案:①D②A注釋:如果FMT定義為"%x\n",則輸出的16進(jìn)制數(shù)據(jù)用小寫字母表示?!?.41】參考答案:A"p=&a[0]"aa[0]p,則p就是指向數(shù)組首元素的指針變量,"&a[0]"或a[i]的地址,*(p+i)(或*(a+i))a[i]的值?!?.42】參考答案B【2.43】參考答案D【2.44】參考答案D【2.45】參考答案:A注釋:變量g是指向函數(shù)的指針,(*g)(a,b)是調(diào)用指針g所指向的函數(shù)。【2.46】參考答案:C注釋:p是指針,pp是指向指針的指針。【2.47】參考答案:A注釋:對(duì)于指向數(shù)組的指針變量可以做下標(biāo)運(yùn)算,p[i]和alpha[i]都是指向字符串的首地址,*p[i]取出字符串的第一個(gè)字符?!?.48】參考答案:DADDBpppp+1*(pp+1是第二維第一個(gè)元素的地址,***(pp+1)是第二維第一個(gè)元素的內(nèi)容,所以,①的參考答案應(yīng)選D*(pp+1)+14的元素,即是字符w,故③應(yīng)當(dāng)選D。【2.49】參考答案:①B②C【2.50】參考答案:D三、程序填空題導(dǎo)讀:在程序填空題中,已經(jīng)給出了程序的主干,讀者首先要理解程序的思路,再選擇正確的內(nèi)容填入空白處,使程序完成既定的功能。這類習(xí)題的設(shè)計(jì)就是要引導(dǎo)讀者逐步掌握編程的方法。本節(jié)習(xí)題的難度適中,可能有些典型的程序在課堂上已經(jīng)有所接觸,讀者一定要獨(dú)立完成它,這樣就可以逐步提高自己的編程能力。在程序設(shè)計(jì)語言學(xué)習(xí)的中期,讀者對(duì)程序設(shè)計(jì)已經(jīng)有了初步的了解,而自己編寫程序又不知從何處入手,此時(shí)解答此類題目可以避免盲目性,從而提高學(xué)習(xí)的效率。【3.1】下面程序的功能是根據(jù)近似公式:π2/6≈1/12+1/22+1/32+……+1/n2,求π值。#includedoublepi(longn){doublelongi;for(i=1;i<=n;i++)s=s+①;return(②);}【3.2】下面的程序的功能是求一維數(shù)組中的最小元素。#include<stdio.h>voidfindmin(int*s,intt,int*k){intp;for(p=0,*k=p;p<t;p++)if(s[p]<s[*k])①;}voidmain(){inta[10],i,*k=&i;for(i=0;i<10;i++)scanf("%d",&a[i]);findmin(a,10,k);printf("%d,%d\n",*k,a[*k]);}【】1-3+5-7+-99+101voidmain(){inti,t=1,s=0;for(i=1;i<=101;i+=2){①;s=s+t;②;}printf("%d\n",s);}【3.4】有以下程序段:s=1.0;for(k=1;k<=n;k++)s=s+1.0/(k*(k+1));printf("%f\n",s);填空完成下述程序,使之與上述程序的功能完全相同。s=0.0;①;k=0;do{s=s+d;②;d=1.0/(k*(k+1));}while(③);printf("%f\n",s);【當(dāng)輸入為負(fù)數(shù)時(shí)結(jié)束輸入。#include<stdio.h>voidmain(){floatx,amax,amin;scanf("%f",&x);amax=x;amin=x;while(①{if(x>amax)amax=x;if(②)amin=x;scanf("%f",&x);}printf("\namax=%f\namin=%f\n",amax,amin);}【3.6】下面程序的功能是輸出1到100之間每位數(shù)的乘積大于每位數(shù)的和的數(shù)。例如數(shù)字26,12#include<stdio.h>voidmain(){intn,k=1,s=0,m;for(n=1;n<=100;n++){s=0;①;while(②){k*=m%10;s+=m%10;③;}if(k>s)printf("%d",n);}}【】09#include<stdio.h>voidmain(){inti,j,k,count=0;for(i=1;i<=9;i++)for(j=0;j<=9;j++)if(①)continue;elsefor(k=0;k<=9;k++)if(②)count++;printf("%d",count);}【】10063#include<stdio.h>voidmain(){inti,j;for(i=0; ①;i++){j=i*10+6;if(②)countinue;printf("%d",j);}}【】下面程序的功能是用輾轉(zhuǎn)相除法求兩個(gè)正整數(shù)mninthcf(intm,intn){intr;if(m<n){r=m;①;n=r;}r=m%n;while(②{m=n;n=r;r=m%n;}③;}【3.101010數(shù)分兩行輸出。程序如下:#include<stdio.h>voidmain(){①;inti,j;printf("Input10numbersplease\n");for(i=0; ②;i++)scanf("%f", &a[i]);printf("\n");for(i=2; ③;i++)for(j=0; ④;j++if(⑤){x=a[j];⑥;a[j+1]=x;}printf("Thesorted10numbers;for(i=0; ⑦;i++){if(⑧)printf("\n");printf("%f\t",a[i]);}printf("\n");}【3.11】下面程序的功能是讀入20個(gè)整數(shù),統(tǒng)計(jì)非負(fù)數(shù)個(gè)數(shù),并計(jì)算非負(fù)數(shù)之和。#include<stdio.h>voidmain(){inti,a[20],s,s=count=0;for(i=0;i<20;i++)scanf("%d", ①for(i=0;i<20;i++){if(a[i]<0)②;s+=a[i];count++;}printf("s=%d\tcount=%d\n",s,count);}【3.12】下面程序的功能是刪除字符串s中的空格。#include<stdio.h>voidmain(){char*s="Beijingligongdaxue";inti,j;for(i=j=0;s[i]!='\0';i++)if(s[i]!='')①else②;s[j]='\0';printf("%s",s);}【3.13】下面程序的功能是將字符串s中所有的字符'c'刪除。請(qǐng)選擇填空。#include<stdio.h>voidmain(){charinti,j;gets(s);for(i=j=0;s[i]!='\0';i++)if(s[i]!='c')①;s[j]='\0';puts(s);}【3.14】下面程序的功能是輸出兩個(gè)字符串中對(duì)應(yīng)相等的字符。請(qǐng)選擇填空。#include<stdio.h>charx[]="programming";chary[]="Fortran";voidmain(){inti=0;while(x[i]!='\0'&&y[i]!='\0')if(x[i]==y[i])printf("%c", ①);elsei++;}【3.15相同字符的ASCII"abcdefg"和#include<stdio.h>voidmain(){charstr1[100],str2[100],c;inti,s;printf("Enterstring1:"); gets(str1);printf("Enterstring2:"); i=0;while((str1[i]==str2[i]&&str1[i]!=①))i++;s=②;printf("%d\n", }【3.16】下面程序的功能是顯示具有n個(gè)元素的數(shù)組s中的最大元素。#include<stdio.h>#defineN20voidmain(){inti,a[N];intfmax(ints[],intfor(i=0;i<N;i++)scanf("%d",&a[i]);printf("%d\n", ①);}intfmax(ints[],intn){intk,p;for(p=0,k=p;p<n;p++)if(s[p]>s[k])②;return(k);}【3.17】以下程序是計(jì)

溫馨提示

  • 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. 人人文庫網(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)論