C程序設(shè)計習題集(帶答案)_第1頁
C程序設(shè)計習題集(帶答案)_第2頁
C程序設(shè)計習題集(帶答案)_第3頁
C程序設(shè)計習題集(帶答案)_第4頁
C程序設(shè)計習題集(帶答案)_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

C程序設(shè)計習題集(帶答案)C程序設(shè)計習題集(帶答案)C程序設(shè)計習題集(帶答案)xxx公司C程序設(shè)計習題集(帶答案)文件編號:文件日期:修訂次數(shù):第1.0次更改批準審核制定方案設(shè)計,管理制度選擇題1.結(jié)構(gòu)化程序設(shè)計的3種結(jié)構(gòu)是(D)A)順序結(jié)構(gòu)、選擇結(jié)構(gòu)、轉(zhuǎn)移結(jié)構(gòu)B)分支結(jié)構(gòu)、等價結(jié)構(gòu)、循環(huán)結(jié)構(gòu)C)多分支結(jié)構(gòu)、賦值結(jié)構(gòu)、等價結(jié)構(gòu)D)順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)2.以下敘述中正確的是(C)A)C語言比其他語言高級B)C語言可以不用編譯就能被計算機識別執(zhí)行C)C語言以接近英語國家的自然語言和數(shù)學語言作為語言的表達形式D)C語言出現(xiàn)的最晚,具有其他語言的一切優(yōu)點3.C語言中用于結(jié)構(gòu)化程序設(shè)計的3種基本結(jié)構(gòu)是(A)A)順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)B)if,switch,breakC)for,while,do-whileD)if,for,continue4.C語言中最簡單的數(shù)據(jù)類型包括(B)A)整型、實型、邏輯型B)整型、實型、字符型C)整型、字符型、邏輯型D)字符型、實型、邏輯型5.若變量已正確定義并賦值,以下符合C語言語法的表達式是(B)A)a:=b+1B)a=b=c+2C)int%3D)a=a+7=c+b6.下列可用于C語言用戶標識符的一組是(B)A)void,define,WORDB)a3_b3,_123,CarC)For,-abc,IFCaseD)2a,DO,sizeof7.C語言中運算對象必須是整型的運算符是(A)A)%=B)/C)=D)<=8.若變量a,i已正確定義,且i已正確賦值,合法的語句是(B)A)a==1B)++i;C)a=a++=5;D)a=int(i);9.已知intt=0;while(t=1){...}則以下敘述正確的是(B)A)循環(huán)控制表達式的值為0B)循環(huán)控制表達式的值為1C)循環(huán)控制表達式不合法D)以上說法都不對10.若變量已正確說明為float型,要通過語句scanf("%f%f%f",&a,&b,&c);給a賦予,b賦予,c賦予,下列不正確的輸入形式是(B)A)10<回車>22<回車>33<回車>B),,<回車>C)<回車><空格><回車>D)10<<空格>>22<回車>33<回車>11.有如下程序:main(){ intx=1,a=0,b=0; switch(x) { case0:b++; case1:a++; case2:a++;b++; } printf("a=%d,b=%d\n",a,b);}該程序的輸出結(jié)果是(A)A)a=2,b=1B)a=1,b=1C)a=1,b=0D)a=2,b=212.有以下程序main(){ inti=1,j=1,k=2; if((j++||k++)&&i++) printf("%d,%d,%d\n",i,j,k);}執(zhí)行后輸出結(jié)果是(C)A)1,1,2B)2,2,1C)2,2,2D)2,2,313.有如下程序main(){ floatx=,y; if(x<)y=; elseif(x<)y=x; elsey=; printf("%f\n",y);}該程序的輸出結(jié)果是(C)A)B)C)D)14.有如下程序:main(){ intn=9; while(n>6) { n--; printf("%d",n); }}該程序的輸出結(jié)果是(B)A)987B)876C)8765D)987615.在下列選項中,沒有構(gòu)成死循環(huán)的是(D)A) inti=100; while(1) { i=i0+1; if(i>100)break; }B) for(;;);C) intk=10000; do{ k++; }while(k>10000);D) ints=36; while(s)--s;16.設(shè)intx=1,y=1;表達式(!x||y--)的值是(B)A)0B)1C)2D)-117.若已定義的函數(shù)有返回值,則以下關(guān)于該函數(shù)調(diào)用的敘述中錯誤的是(D)A)函數(shù)調(diào)用可以作為獨立的語句存在B)函數(shù)調(diào)用可以作為一個函數(shù)的實參C)函數(shù)調(diào)用可以出現(xiàn)在表達式中D)函數(shù)調(diào)用可以作為一個函數(shù)的形參18.有以下程序floatfun(intx,inty){return(x+y);}main(){inta=2,b=5,c=8;printf("%3.0f\n",fun((int)fun(a+c,b),a-c));}程序運行后的輸出結(jié)果是(B)A)編譯出錯B)9C)21D)19.若有以下調(diào)用語句,則不正確的fun函數(shù)的首部是(D)main(){ inta[50],n; … fun(n,&a[9]); …}A)voidfun(intm,intx[])B)voidfun(ints,inth[41])C)voidfun(intp,int*s)D)voidfun(intn,inta)20.fseek函數(shù)的正確調(diào)用形式是(B)A)fseek(文件指針,起始點,位移量)B)fseek(文件指針,位移量,起始點)C)fseek(位移量,起始點,文件指針)D)fseek(起始點,位移量,文件指針)21.若fp是指向某文件的指針,且已讀到文件末尾,則函數(shù)feof(fp)的返回值是(C)A)EOFB)-1C)1D)NULL22.若有說明語句:charc='\72';則變量c(A)A)包含1個字符B)包含2個字符C)包含3個字符D)說明不合法,c的值不確定23.若有說明inta[3][4];則a數(shù)組元素的非法引用是(D)A)a[0][2*1]B)a[1][3]C)a[4-2][0]D)a[0][4]24.設(shè)有以下說明語句structstu{ inta; floatb;}stutype;則下面的敘述不正確的是(C)A)struct是結(jié)構(gòu)體類型的關(guān)鍵字B)structstu是用戶定義的結(jié)構(gòu)體類型C)stutype是用戶定義的結(jié)構(gòu)體類型名D)a和b都是結(jié)構(gòu)體成員名25.在C語言中,引用數(shù)組元素時,其數(shù)組下標的數(shù)據(jù)類型允許是(C)A)整型常量B)整型表達式C)整型常量或整型表達式D)任何類型的表達式26.若運行時給變量x輸入12,則以下程序的運行結(jié)果是(A)main(){ intx,y; scanf("%d",&x); y=x>12x+10:x-12; printf("%d\n",y);}A)0B)22C)12D)1027.以下說法正確的是(C)A)C語言程序總是從第一個的函數(shù)開始執(zhí)行B)在C語言程序中,要調(diào)用函數(shù)必須在main()函數(shù)中定義C)C語言程序總是從main()函數(shù)開始執(zhí)行D)C語言程序中的main()函數(shù)必須放在程序的開始部分28.表達式0x13^0x17的值是(A)A)0x04B)0x13C)0xE8D)0x1729.有以下程序main(){ inta=3,b=4; printf("%d\n",(a++)*(b++));}程序運行后的輸出結(jié)果是(A)A)12B)15C)16D)2030.下列程序執(zhí)行后的輸出結(jié)果是(A)voidfunc(int*a,intb[]){ b[0]=*a+6;}main(){ inta,b[5]; a=0;b[0]=3; func(&a,b); printf("%d\n",b[0]);}A)6B)7C)8D)931.若有下面的程序段:chars[]="china";char*p;p=s;則下列敘述正確的是(D)A)s和p完全相同B)數(shù)組s中的內(nèi)容和指針變量p中的內(nèi)容相等C)s數(shù)組長度和p所指向的字符串長度相等D)*p與s[0]相等32.以下程序中函數(shù)sort的功能是對a數(shù)組中的數(shù)據(jù)進行由大到小的排序voidsort(inta[],intn){inti,j,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;sort(&aa[3],5);for(i=0;i<10;i++)printf("%d,",aa[i]);printf("\n");}程序運行后的輸出結(jié)果是(C)A)1,2,3,4,5,6,7,8,9,10,B)10,9,8,7,6,5,4,3,2,1,C)1,2,3,8,7,6,5,4,9,10,D)1,2,10,9,8,7,6,5,4,3,33.以下程序的運行結(jié)果是(A)structdate{intyear,month,day;}today;main(){printf("%d\n",sizeof(structdate));}A)6B)8C)10D)1234.若有語句int*point,a=4;和point=&a;下面均代表地址的一組選項是(D)A)a,point,*&aB)&*a,&a,*pointC)*&point,*point,&aD)&a,&*point,point35.在調(diào)用函數(shù)時,如果實參是簡單的變量,它與對應(yīng)形參之間的數(shù)據(jù)傳遞方式是(B)A)地址傳遞B)單向值傳遞C)由實參傳形參,再由形參傳實參D)傳遞方式由用戶指定36.fun(char*p2,char*p1){ while((*p2=*p1)!='\0'){p1++;p2++;}}函數(shù)的功能是(A)A)將p1所指字符串復制到p2所指內(nèi)存空間B)將p1所指字符串的地址賦給指針p2C)對p1和p2兩個指針所指字符串進行比較D)檢查p1和p2兩個指針所指字符串中是否有'\0'37.若執(zhí)行下述程序時,若從鍵盤輸入6和8時,結(jié)果為(B)main(){ inta,b,s; scanf("%d%d",&a,&b); s=a if(a<b) s=b; s*=s; printf("%d",s);}A)36B)64C)48D)以上都不對38.fscanf函數(shù)的正確調(diào)用形式是(D)A)fscanf(fp,格式字符串,輸出表列);B)fscanf(格式字符串,輸出表列,fp);C)fscanf(格式字符串,文件指針,輸出表列);D)fscanf(文件指針,格式字符串,輸入表列);39.下列關(guān)于C語言數(shù)據(jù)文件的敘述中正確的是(D)A)文件由ASCII碼字符序列組成,C語言只能讀寫文本文件B)文件由二進制數(shù)據(jù)序列組成,C語言只能讀寫二進制文件C)文件由記錄序列組成,可按數(shù)據(jù)的存放形式分為二進制文件和文本文件D)文件由數(shù)據(jù)流形式組成,可按數(shù)據(jù)的存放形式分為二進制文件和文本文件40.有以下程序voidss(char*s,chart){ while(*s) { if(*s==t) *s=t-'a'+'A'; s++; }}main(){ charstr1[100]="abcddfefdbd",c='d'; ss(str1,c);printf("%s\n",str1);}程序運行后的輸出結(jié)果是(B)A)ABCDDEFEDBDB)abcDDfefDbDC)abcAAfefAbAD)Abcddfefdbd41.structlink{ intdata; structlink*next;}a,b,c,*p,*q;且變量a和b之間已有如下圖所示的鏈表結(jié)構(gòu):指針p指向變量a,q指向變量c。則能夠把c插入到a和b之間并形成新的鏈表的語句組是:(D)A)=c;=b;B)=q;=;C)p->next=&c;q->next=p->next;D)(*p).next=q;(*q).next=&b;42.在設(shè)計程序時,應(yīng)采納的原則之一是(D)A)不限制goto語句的使用B)減少或取消注解行C)程序越短越好D)程序結(jié)構(gòu)應(yīng)有助于讀者理解43.程序設(shè)計語言的基本成分是數(shù)據(jù)成分、運算成分、控制成分和(D)A)對象成分B)變量成分C)語句成分D)傳輸成分44.下列不屬于軟件工程的3個要素的是(D)A)工具B)過程C)方法D)環(huán)境45.下列敘述中正確的是(D)A)C語言編譯時不檢查語法B)C語言的子程序有過程和函數(shù)兩種C)C語言的函數(shù)可以嵌套定義D)C語言的函數(shù)可以嵌套調(diào)用46.在C語言中,退格符是(D)A)\nB)\tC)\fD)\b48.以下敘述中正確的是(A)A)構(gòu)成C程序的基本單位是函數(shù)B)可以在一個函數(shù)中定義另一個函數(shù)C)main()函數(shù)必須放在其他函數(shù)之前D)所有被調(diào)用的函數(shù)一定要在調(diào)用之前進行定義49.在C程序中,判邏輯值時,用"非0"表示邏輯值"真",又用"0"表示邏輯值"假"。在求邏輯值時,用(A)分別表示邏輯表達式值為"真"和"假"。A)10B)01C)非0非0D)1150.在C語言中,運算對象必須是整型數(shù)的運算符是(A)A)%B)\C)%和\D)**51.字符型數(shù)據(jù)在機器中是用ASCII碼表示的,字符"5"和"7"在機器中表示為(C)A)和01110111B)01000101和01100011C)00110101和00110111D)01100101和0110011152.若已定義:inta=25,b=14,c=19;以下三目運算符(:)所構(gòu)成語句的執(zhí)行后a<=25&&b--<=2&&cprintf("***a=%d,b=%d,c=%d\n",a,b,c):printf("###a=%d,b=%d,c=%d\n",a,b,c);程序輸出的結(jié)果是(C)A)***a=25,b=13,c=19B)***a=26,b=14,c=19C)###a=25,b=13,c=19D)###a=26,b=14,c=1953.若有定義:inta=7;floatx=,y=;則表達式x+a%3*(int)(x+y)%2/4的值是(A)A)B)C)D)54.下列程序段的輸出結(jié)果是:(C)inta=1234;floatb=;doublec=;printf("-,%2.1f,%2.1f",a,b,c);A)無輸出B)12,,C)1234,,D)1234,,55.若運行以下程序時,從鍵盤輸入ADescriptor(表示回車),則下面程序的運行結(jié)果是(D)#includemain(){ charc; intv0=1,v1=0,v2=0; do{ switch(c=getchar()) { case'a': case'A': case'e': case'E': case'i': case'I': case'o': case'O': case'u': case'U':v1+=1; default:v0+=1;v2+=1; } }while(c!='\n'); printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);}A)v0=7,v1=4,v2=7B)v0=8,v1=4,v2=8C)v0=11,v1=4,v2=11D)v0=13,v1=4,v2=1256.設(shè)有以下程序段intx=0,s=0;while(!x!=0) s+=++x;printf("%d",s);則(B)A)運行程序段后輸出0B)運行程序段后輸出1C)程序段中的控制表達式是非法的D)程序段執(zhí)行無限次57.執(zhí)行下面的程序段后,變量k中的值為(A)intk=3,s[2];s[0]=k;k=s[1]*10;A)不定值B)33C)30D)1058.以下程序段的描述,正確的是(C)x=-1;do{x=x*x;}while(!x);A)是死循環(huán)B)循環(huán)執(zhí)行兩次C)循環(huán)執(zhí)行一次D)有語法錯誤59.以下有錯誤的是(D)A)main(){ intx,y,z; x=0;y=x-1; z=x+y;}B)main(){ intx,y,z; x=0,y=x+1; z=x+y;}C)main(){ intx;int inty; x=0,y=x+1; z=x+y;}D)main(){ intx,y,z; x=0;y=x+1; z=x+y,}60.有如下程序段inta=14,b=15,x;charc='A';x=(a&&b)&&(c<'B');執(zhí)行該程序段后,x的值為(D)A)tureB)falseC)0D)161.下列程序執(zhí)行后的輸出結(jié)果是(C)voidfunc1(inti);voidfunc2(inti);charst[]="hello,friend!";main(){ inti=0; func1(i); printf("\n");}voidfunc1(inti){ printf("%c",st[i]); if(i<3) { i+=2; func2(i); }}voidfunc2(inti){ printf("%c",st[i]); if(i<3) { i+=2; func1(i); }}A)helloB)helC)hloD)hlm62.以下函數(shù)返回數(shù)組a中最大值所在的下標值fun(int*a,intn){ inti,j=0,p; p=j; for(i=j;i<n;i++) if(a[i]>a[p]) ; return(p);}在下劃線處應(yīng)填入的內(nèi)容是(D)A)i=pB)a[p]=a[i]C)p=jD)p=i63.下面說明不正確的是(D)A)chara[10]="china";B)chara[10],*p=a;p="china"C)char*a;a="china";D)chara[10],*p;p=a="china"64.以下程序的輸出結(jié)果是(B)#includevoidprt(int*x,int*y,int*z){ printf("%d,%d,%d\n",++*x,++*y,*(z++));}main(){ inta=10,b=40,c=20; prt(&a,&b,&c); prt(&a,&b,&c);}A)11,42,3112,22,41B)11,41,2012,42,20C)11,21,4011,21,21D)11,41,2112,42,2265.若有函數(shù)內(nèi)部說明:inta[3][4];則數(shù)組a中各元素(C)A)可在程序的運行階段得到初值0B)可在程序的編譯階段得到初值0C)不能得到確定的初值D)可在程序的編譯或運行階段得到初值066.有如下程序main(){chars[]="ABCD",*p;for(p=s+1;p<s+4;p++)printf("%s\n",p);}該程序的輸出結(jié)果是(D)A) ABCD BCD CD DB) A B C DC) B C DD) BCD CD D67.下列程序執(zhí)行后的輸出結(jié)果是(B)main(){ inta[3][3],*p,i; p=&a[0]]0]; for(i=1;i<9;i++)p[i]=i+1; printf("%d\n",a[1][2]);}A)3B)6C)9D)隨機數(shù)68.定義如下變量和數(shù)組:intk;inta[3][3]={9,8,7,6,5,4,3,2,1};則下面語句的輸出結(jié)果是(B)for(k=0;k<3;k++)printf("%d",a[k][k]);A)753B)951C)963D)74169.下列程序執(zhí)行后的輸出結(jié)果是(A)main(){ chararr[2][4]; strcpy(arr,"you");strcpy(arr[1],"me"); arr[0][3]=′&′; printf("%s\n",arr);}A)you&meB)youC)meD)err70.有以下函數(shù)charfun(char*p){returnp;}該函數(shù)的返回值是(B)A)無確切的值B)形參p中存放的地址值C)一個臨時存儲單元的地址D)形參p自身的地址值71.以下正確的說法是(C)A)定義函數(shù)時,形參的類型說明可以放在函數(shù)體內(nèi)B)return后邊的值不能為表達式C)如果函數(shù)值的類型與返回值類型不一致,以函數(shù)值類型為準D)如果形參與實參類型不一致,以實參類型為準72.有以下程序intf(intn){ if(n==1)return1; elsereturnf(n-1)+1;}main(){ inti,j=0; for(i=1;i<3;i++)j+=f(i); printf("%d\n",j);}程序運行后的輸出結(jié)果是(B)A)4B)3C)2D)173.設(shè)有如下定義:structsk{ inta; floatb;}data;int*p;若要使P指向data中的a域,正確的賦值語句是(C)A)p=&a;B)p=;C)p=&;D)*p=;74.以下對結(jié)構(gòu)體類型變量的定義中,不正確的是(C)A)typedefstructaa{ intn; floatm;}AA;AAtdl;B)#defineAAstructaaAA{ intn; floatm;}tdl;C)struct{ intn; floatm;}aa;structaatdl;D)struct{ intn; floatm;}tdl;75.若說明int*p,n;則通過語句scanf能夠正確讀入數(shù)據(jù)的程序段是(D)A)p=&n;scanf("%d",&p);B)p=&n;scanf("%d",*p);C)scanf("%d",n);D)p=&n;scanf("%d",p);76.在下述程序中,判斷i>j共執(zhí)行的次數(shù)是(D)main(){ inti=0,j=10,k=2,s=0; for(;;) { i+=k; if(i>j) { printf("%d",s); break; } s+=i; }}A)4B)7C)5D)677.以下4個選項中,不能看做一條語句的是(D)A);B)a=5,b=,c=;C)if(a<5);D)if(b!=5)x=2;y=6;78.在C語言中,變量的隱含存儲類別是(A)A)autoB)staticC)externD)無存儲類別79.若有以下程序#includevoidf(intn);main(){ voidf(intn); f(5);}voidf(intn){ printf("%d\n",n);}則以下敘述中不正確的是(C)A)若只在主函數(shù)中對函數(shù)f進行說明,則只能在主函數(shù)中正確調(diào)用函數(shù)fB)若在主函數(shù)前對函數(shù)f進行說明,則在主函數(shù)和其后的其他函數(shù)中都可以正確調(diào)用函數(shù)fC)對于以上程序,編譯時系統(tǒng)會提示出錯信息:提示對f函數(shù)重復說明D)函數(shù)f無返回值,所以可用void將其類型定義為無返回值型80.若有下面的說明和定義structtest{ intml; charm2; floatm3; unionuu { charul[5]; intu2[2]; }ua;}myaa;則TurboC中,sizeof(structtest)的值是(A)A)12B)16C)14D)981.以下程序的輸出是(C)#include<>structst{intx;int*y;}*p;intdt[4]={10,20,30,40};structstaa[4]={50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0]};main(){p=aa;printf("%d\n",++(p->x));getch();}A)10B)11C)51D)6082.若有運算符<<,sizeof,^,&=,則它們按優(yōu)先級由高至低的正確排列次序是(B)A)sizeof,&=,<<,^B)sizeof,<<,^,&=C)^,<<,sizeof,&=D)<<,^,&=,sizeof83.函數(shù)fseek(pf,OL,SEEK_END)中的SEEK_END代表的起始點是(B)A)文件開始B)文件末尾C)文件當前位置D)以上都不對84.有以下程序#includemain(){ FILE*fp;inti=20,j=30,k,n; fp=fopen("","w"); fprintf(fp,"%d\n",i); fprintf(fp,"%d\n",j); fclose(fp); fp=fopen("","r"); fscanf(fp,"%d%d",&k,&n); printf("%d%d\n",k,n); fclose(fp);}程序運行后的輸出結(jié)果是(A)A)2030B)2050C)3050D)302085.結(jié)構(gòu)化程序所規(guī)定的三種最基本控制結(jié)構(gòu)是(C)A)輸入、處理、輸出B)樹形、網(wǎng)形、環(huán)形C)順序、選擇、循環(huán)D)主程序、子程序、函數(shù)86.一個C語言程序是由(B)A)一個主程序和若干子程序組成B)函數(shù)組成C)若干過程組成D)若干子程序組成87.請選出可用作C語言用戶標識符的是(B)A)void,define,WORDB)a3_b3,_123,IFC)FOR,--abc,CaseD)2a,Do,Sizeof88.下列各數(shù)據(jù)類型不屬于構(gòu)造類型的是(A)A)枚舉型B)共用型C)結(jié)構(gòu)型D)數(shù)組型89.在16位C編譯系統(tǒng)上,若定義longa;,則能給a賦40000的正確語句是(D)A)a=20000+20000;B)a=4000*10;C)a=30000+10000;D)a=4000L*10L90.以下不正確的敘述是(D)A)在C程序中,逗號運算符的優(yōu)先級最低B)在C程序中,APH和aph是兩個不同的變量C)若a和b類型相同,在計算了賦值表達式a=b后b中的值將放入a中,而b中的值不變D)當從鍵盤輸入數(shù)據(jù)時,對于整型變量只能輸入整型數(shù)值,對于實型變量只能輸入實型數(shù)值91.sizeof(float)是(B)A)一個雙精度型表達式B)一個整型表達式C)一種函數(shù)調(diào)用D)一個不合法的表達式92.若x,i,j和k都是int型變量,則計算表達式x=(i=4,j=16,k=32)后,x的值為(C)A)4B)16C)32D)5293.下面程序的功能是把316表示為兩個加數(shù)的和,使兩個加數(shù)分別能被13和11整除,請選擇填空。#include<>main(){ inti=0,j,k; do { i++; k=316-13*i; }while(B); j=k/11; printf("316=13*%d+11*%d",i,j);}A)k/11B)k%11C)k/11==0D)k%11==094.設(shè)有定義:intn=0,*p=&n,**q=&p,則下列選項中正確的賦值語句是(D)A)p=1;B)*q=2;C)q=p;D)*p=5;95.下面程序的運行結(jié)果是(D)#include<>main(){ inty=10; do{ y--; }while(--y); printf("%d\n",y--);}A)-1B)1C)8D)096.下面程序的輸出結(jié)果是(A)main(){ inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a; printf("%d\n",*(p+2));}A)3B)4C)1D)297.設(shè)有intx=11;則表達式(x++*1/3)的值是(A)A)3B)4C)11D)1298.請選出以下語句的輸出結(jié)果(A)printf("%d\n",strlen("\t\"\065\xff\n"));A)5B)14C)8D)輸出項不合法,無正常輸出99.下列程序的輸出結(jié)果是(C)main(){ doubled=;intx,y; x=;y=(x+)/; printf("%d\n",d*y);}A)3B)C)0D)100.下列程序的輸出結(jié)果是(B)intb=2;intfunc(int*a){ b+=*a; return(b);}main(){ inta=2,res=2; res+=func(&a); printf("%d\n",res);}A)4B)6C)8D)10To3(28)填空題1.設(shè)y是int型,請寫出y為奇數(shù)的關(guān)系表達式(y%2)==1或(y%2)!=0。2.設(shè)inta=5,b=6,表達式(++a==b--)++a:--b的值是7。3.下列程序的輸出結(jié)果是Hello。maim(){ charb[]="Helloyou"; b[5]=0; printf("%s\n",b);}4.當調(diào)用函數(shù)時,實參是一個數(shù)組名,則向函數(shù)傳遞的是數(shù)組的首地址。5.用高級語言編寫的程序稱為源程序,它可以通過解釋程序翻譯一句執(zhí)行一句的方式執(zhí)行,也可以通過編譯程序一次翻譯產(chǎn)生目標程序,然后執(zhí)行。6.以下程序的輸出結(jié)果是16。main(){ inta=0; a+=(a=8); printf("%d\n",a);}7.該程序運行的結(jié)果是M=7。#include<>#defineM100voidfun(intm,int*a,int*n){inti,j=0;for(i=1;i<=m;i++)if(i%7==0||i==0)a[j++]=i;*n=j;}main(){intaa[M],n,k;fun(10,aa,&n);for(k=0;k<n;k++)if((k+1)==0)printf("\n");elseprintf("M=%d",aa[k]);printf("\n");}8.下列函數(shù)的功能是:求出字符串ss中包含字符c的個數(shù),并返回此值。請?zhí)钊牒线m的表達式,使函數(shù)能正常運行intfun(char*ss,charc){inti=0;for(;*ss!='\0';ss++)if(*ss==c)i++;returni;}9.設(shè)有如下宏定義#defineMYSWAP(z,x,y){z=x;x=y;y=z;}以下程序段通過宏調(diào)用實現(xiàn)變量a,b內(nèi)容交換,請?zhí)羁铡loata=5,b=16,c;MYSWAP(c,a,b);10.以下程序的運行結(jié)果是9。#defineMAX(a,b)(a>ba:b)+1main(){ inti=6,j=8,k; printf("%d\n",MAX(i,j));}11.以下程序的功能是從健盤輸入若干學生的成績,并輸出最高成績和最低成績,當輸入負數(shù)時結(jié)束。請?zhí)羁?。main(){ floatx,amax,amin; scanf("%f",&x); amax=x; amin=x; while(x>0) { if(x>amax) amax=x; elseif(x<amin) amin=x; elsescanf("%f",&x); } printf("\namax=%f\namin=%f\n",amax,amin);}12.在對文件操作的過程中,若要求文件的位置指針回到文件的開始處,應(yīng)當調(diào)用的函數(shù)是rewind()或fseek()。13.在計算機中,字符的比較是對它們的ASCII碼進行比較。14.在內(nèi)存中,存儲字符'x′要占用1個字節(jié),存儲字符串"X"要占用2個字節(jié)。15.下列程序的輸出結(jié)果是,請?zhí)羁铡ain(){ inta=9,b=2; floatx=,y=,z; z=a/2+b*x/y+1/2; printf("%5.2f\n",z);}16.設(shè)在主函數(shù)中有以下定義和函數(shù)調(diào)用語句,且fun函數(shù)為void類型;請寫出fun函數(shù)的首部voidfun(doubleb[][22])。要求形參名為b。main(){ doubles[10][22]; intn; ┆ fun(s); ┆}17.下列程序的功能是輸入一個整數(shù),判斷是否是素數(shù),若為素數(shù)輸出1,否則輸出0,請?zhí)羁?。main(){ inti,x,y=1; scanf("%d",&x); for(i=2;i<=x/2;i++) if(x%i==0) { y=0;break; } printf("%d\n",y);}18.下面程序的功能是將一個字符串str的內(nèi)容顛倒過來,請?zhí)羁铡?includemain(){ inti,j,k; charstr[]={"1234567"}; for(i=0,j=strlen(str)-1;i<j;i++,j--) { k=str[i]; str[i]=str[j]; str[j]=k; } printf("%s\n",str);}19.以下程序可把輸入的十進制數(shù)以十六進制數(shù)的形式輸出,請?zhí)羁?。main(){charb[17]={"09ABCDEF"};intc[64],d,i=0,base=16;longn;printf("Enteranumber:\n");scanf("%ld",&n);do{c[i]=n%base;i++;n=n/base;}while(n!=0);printf("Transmitenewbase:\n");for(--i;i>=0;--i){d=c[i];printf("%c",b[d]);}printf("\n");}20.若給fun函數(shù)的形參s傳送字符串:"6354abcc",則函數(shù)的返回值是6354。#includelongfun(chars[]){ longn;intsign; for(;isspace(*s);s++); sign=(*s=='-')-1:1; if(*s=='+'||*s=='-') s++; for(n=0;isdigit(*s);s++) n=10*n+(*s-'0'); returnsign*n;}21.設(shè)有定義"struct{inta;floatb;charc;}abc,*p_abc=&abc;",則對結(jié)構(gòu)體成員a的引用方法可以是和p_abc->a。22.下面程序是指從終端讀入的20個字符放入字符數(shù)組中,然后利用指針變量輸出上述字符串,請?zhí)羁铡?include<>main(){ inti;chars[21],*p; for(i=0;i<20;i++) s[i]=getchar(); s[i]='\0'; p=s while(*p) putchar(*p++);}23.以下程序?qū)?shù)組a的4個元素和數(shù)組b的6個元素寫到名為的二進制文件中,請?zhí)羁铡?include<>main(){ FILE*fp; chara[4]="1234",b[6]="abcedf"; if((fp=fopen("","wb"))==NULL) exit(0); fwrite(a,sizeof(char),4,fp); fwrite(b,6*sizeof(char),1,fp); fclose(fp);}24.在C語言中,一個float型數(shù)據(jù)在內(nèi)存中所占的字節(jié)數(shù)為4;一個double型數(shù)據(jù)在內(nèi)存中所占的字節(jié)數(shù)為8。25.以下程序輸出的結(jié)果是0。main(){ inta=5,b=4,c=3,d; d=(a>b>c); printf("%d\n",d);}26.以下函數(shù)的功能是求出能整除x且不是偶數(shù)的各整數(shù),并按從小到大的順序放在pp所指的數(shù)組中,然后返回這些除數(shù)的個數(shù)。例如,若x中的值為30,則有4個數(shù)符合要求,它們是1,3,5,15。請按題意,完成填空。試題程序:intfun(intx,intpp[]){ inti,j=0;for(i=1;i<x;i+=2) if(x%i==0)pp[j++]=i; returnj;}27.mystrlen函數(shù)的功能是計算str所指字符串的長度,并作為函數(shù)值返回。請?zhí)羁?。intmystrlen(char*str){ inti; for(i=0;*(str+i)或str[i]!=′\0′;i++); return(i);}28.以下程序的輸出結(jié)果為9。#defineJFT(x) x*xmain(){ inta,k=3; a=++JFT(k+1); printf("%d",a);}29.以下定義的結(jié)構(gòu)體類型擬包含兩個成員,其中成員變量info用來存入整形數(shù)據(jù);成員變量link是指向自身結(jié)構(gòu)體的指針,請將定義補充完整。structnode{ intinfo; structnode*link;};30.設(shè)有以下結(jié)構(gòu)體類型:structst{ charname[8]; intnum; floats[4];}student[50];并且結(jié)構(gòu)體數(shù)組student中的元素都已有值,若要將這些元素寫到硬盤文件fp中,請將以下fwrite語句補充完整:fwrite(student,sizeof(structst)*50,1,fp);31.以下程序段的輸出結(jié)果是28。main(){ inta=2,b=3,c=4; a*=16+(b++)-(++c); printf("%d",a);}32.若變量n中的值為24,則print()函數(shù)共輸出5行,最后一行有3個數(shù)。voidprint(intn,intaa[]){ inti; for(i=1;i<n;i++) { printf("%6d",aa[i]); if(!(i%5))printf("\n"); } printf("\n");}33.調(diào)用C語標準庫函數(shù)時要求用#include命令。34.stract函數(shù)的作用是連接兩個字符數(shù)組中的字符。35.C語言程序的注釋可以出現(xiàn)在程序中的任何地方,一個注釋以/*作為開始和*/結(jié)束。36.設(shè)二進制數(shù)A是00101101,若想通過異或運算A^B使A的高4位取反,低4位不變,則二進制數(shù)B應(yīng)是。37.若已知a=10,b=20,則表達式!a<b的值為1。38.設(shè)i,j,k均為int型變量,則執(zhí)行完下面的for語句后,k的值為10。for(i=0,j=10;i<=j;i++,j--)k=i+j;39.下面函數(shù)的功能是:找出一維數(shù)組元素中最大的值和它所在的下標,最大值的和它所在的下標通過形參傳回。數(shù)組元素中的值已在主函數(shù)中賦予。主函數(shù)中x是數(shù)組名,n是x中的數(shù)據(jù)個數(shù),max存放最大值,index存放最大值所在元素的下標。請?zhí)羁铡?include<>#include<>voidfun(inta[],intn,int*max,int*d){ inti; *max=a[0]; *d=0; for(i=0;i<n;i++) if(*max<a[i]) { *max=a[i]; *d=i; }}main(){ inti,x[20],max,index,n=10; randomize(); for(i=0;i<n;i++) { x[i]=rand()%50; printf("%4d",x[i]); } printf("\n"); fun(x,n,&max,&index); printf("Max=%5d,Index=%4d\n",max,index);}40.以下程序的輸出結(jié)果是246。voidfun(){ staticinta=0; a+=2; printf("%d",a);}main(){ intcc; for(cc=1;cc<4;cc++)fun(); printf("\n");}42.以下程序的輸出結(jié)果是7。#defineMAX(x,y)(x)>(y)(x):(y)main(){ inta=5,b=2,c=

溫馨提示

  • 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

提交評論