c語言復(fù)習(xí)資料例題答案_第1頁
c語言復(fù)習(xí)資料例題答案_第2頁
c語言復(fù)習(xí)資料例題答案_第3頁
c語言復(fù)習(xí)資料例題答案_第4頁
c語言復(fù)習(xí)資料例題答案_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

二、類型及表達式一)合法的標志符:例題:是合法的用戶自定義標識符的(D)A)ah-spksB)doubleC)<ctrl>D)_myapple以下正確的C語言標識符是(C)A)%xB)a+bC)a123D)test!以下不能定義為用戶標識符的是(C)A)VoidB)b_2C)intD)name二)合法的整型常量例題:以下選項中可作為C語言合法整數(shù)的是(D)A)11010BB)0583C)x2b2D)0xafb三)合法的實型常量例題:以下選項中可作為C語言合法常量的是(A)A)-80.B)-080C)-8e1.0D)-80.0e四)合法的字符型常量例題:設(shè)有說明語句:chara=’\123’;則變量a(A)A)包含1個字符B)包含2個字符C)3個字符D)說明不合法C語言中,“\x5d”在內(nèi)存中占用的字節(jié)數(shù)是(A)A)2B)5C)4D)1字符串“\t\x42\\bcd\n”的長度是(A)。A)7B)10C)12D)13五)各種基本類型變量所占的字節(jié)數(shù)例題:下列式中,值不為4的表達式是(C)A)sizeof(unsignedlong)B)sizeof(long)C)sizeof(unsignedint)D)sizeof(float)六)合法的表達式例題:設(shè)變量a、b、c已定義并賦值,則下列表達式中符合C語言語法規(guī)則的是(BC)A)a=5++B)a=b=c++C)a%=2D)b=a+1=2七)表達式的值例題:設(shè)整型變量a的值為2,下列表達式值為1的是(C)A)a%3B)a/3C)--aD)a++下列表達式的值為0的是(A)A)7/8B)7%8C)7/8.0D)7<8設(shè)floatm=4.0,n=4.0;使m為10.0的表達式是(D)A)m-=n*2.5B)m/=n+9C)m*=n-6D)m+=n+2逗號表達式(a=4*5,a*2),a+15的值是(A)A)35B)40C)55D)20八)++、--運算例題:當(dāng)i=4,j=5時,表達式3-(i++)*4+(--j)的值如何,i,j的值多少?表達式值為-9,i=5,j=4九)表達式的類型例題:下列式中,最終運算結(jié)果的數(shù)據(jù)類型不是雙精度的表達式的是(A)A)(int)(3+3.0)B)1e-3C)(double)(3)D)(int)3.0+3.0二、順序結(jié)構(gòu)例題:putchar函數(shù)可以向終端輸出一個(D)A)整數(shù)B)實數(shù)C)字符串D)字符二)printf和scanf語句的使用方法:例題:設(shè)有語句scanf(%d,%d”,&m,&n);要使m、n的值依次是2、3,正確是輸入是(B)A)23B)2,3C)2;3D)2設(shè)變量定義為inta,b;執(zhí)行下列語句時,輸入(B),則a和b的值都是10scanf(“%d,%d”,&a,&b);A)1010B)10,10C)a=10b=10D)a=10,b=10有以下程序main(){intm,n,p;scanf("m=%dn=%dp=%d",&m,&n,&p);printf("%d%d%d\n",m,n,p);}若想從鍵盤上輸入數(shù)據(jù),使變量m中的值為123,n中的值為456,p中的值為789,則正確的輸入是(A)A)m=123n=456p=789B)m=123n=456p=789C)m=123,n=456,p=789D)123456789例題:有如下程序段:inta=3,b=15;floatf=7.5;printf(“%.1f”,(float)a+b/2+(int)f%3);執(zhí)行該程序段后,運算結(jié)果為:(B)A)11.5B)11.0C)11D)12.0三、選擇結(jié)構(gòu)一)關(guān)系表達式、邏輯表達式和條件表達式例題:在C程序中,用(B)表示邏輯”真”。A)1B)非0的數(shù)C)非1的數(shù)D)大于0的數(shù)若有定義:intx=2,y=3,z=4;則表達式!(x+y)+z-1&&y+z%2的值為(C)A)4B)0C)1D)2設(shè)inta=0,b=0,c=0;c=++a||b++;則a、b、c值分別為(d)A)010B)111C)110D)101執(zhí)行語句:inta=1,b=0,c;c=a>0||++b;后,b的值為(a)A)0B)1C)2D)不確定設(shè)intx,y,z=4;x=y=++z;x=(y>z)?x+2:x++;則x的值是(C)A)4B)5C)6D)7為表示關(guān)系x>y>=z,則正確的c語言表達方式為(C)。A)(x>y>=z)B)(x>y)and(y>=z)C)(y<x)&&(y>=z)D)(x>y)&(y>=z)若變量ch為char類型,能正確判斷出ch為大寫字母的表達式是(D)A)’A’<=CH<=‘Z’B)(ch>=’A’)||(ch<=’Z’)C)(‘A’<=ch)and(‘Z’>=ch)D)(ch>=’A’)&&(ch<=’Z’)二)if語句例題:1.有以下程序

main(){inta=0,b=0,c=0,d=0;if(a=1)b=1;c=2;elsed=3;printf(%d,%d,%d,%d\n,a,b,c,d);}程序輸出(D)A)0,1,2,0B)0,0,0,3C)1,1,2,0D)編譯有錯2.以下程序運行后的輸出結(jié)果是4599main(){inta=3,b=4,c=5,t=99;if(b<a&&a<c)t=a;a=c;c=t;if(a<c&&b<c)t=b;b=a;a=t;printf("%d%d%d\n",a,b,c);}三)switch語句(1)switch的執(zhí)行過程(2)break的用法例題:1.#include<stdio.h>main(){intx=1,y=1,a=0,b=0;switch(x){case1:switch(y){case0:a++;case1:b++;case2:b++;break;}case2:a++;b++;break;case3:a++;b++;}printf(“a=%d,b=%d\n”,a,b);}輸出結(jié)果:a=1,b=32.#include<stdio.h>輸入:3210main(){charc;while((c=getchar())!=’\n’){switch(c-‘1’){case0:case1:putchar(c+2);case2:putchar(c+3);break;case3:putchar(c+4);default:putchar(c+1);break;}printf(“\n”);}}輸出結(jié)果:645341四)算法輸入出租車里程S,輸出應(yīng)付車費F。S和F的關(guān)系如下:#include<stdio.h>voidmain(){floatS,F;scanf(“%f”,&S);if(S<=3)F=8;elseF=8+(S-3)*2;printf(“F=%f\n”,F);}四、循環(huán)結(jié)構(gòu)一)循環(huán)條件均以條件為真(非0)進行循環(huán),以條件為假(0)結(jié)束循環(huán))例題:以下敘述正確的是(D)do-while語句構(gòu)成的循環(huán)不能用其它語句構(gòu)成的循環(huán)來代替do-while語句構(gòu)成的循環(huán)只能用break語句退出do-while語句構(gòu)成的循環(huán),在while后的表達式為非零時結(jié)束循環(huán)do-while語句構(gòu)成的循環(huán),在while后的表達式為零時結(jié)束循環(huán)設(shè)有程序段:intk=10;while(k=0)k=k-1;則循環(huán)體執(zhí)行的次數(shù)為(C)A)10次B)9次C)0次D)1次下列(D)循環(huán)不是無限循環(huán)A)for(y=0;x=1;++y);B)for(;;x=0);C)while(x=1){x=1;}D)for(y=0,x=1;x>++y;x++)二)三種循環(huán)的執(zhí)行流程例題:設(shè)變量y值為3,執(zhí)行下列循環(huán)語句后,變量y的值的是(C)doy++;while(y++<4);A)3B)4C)5D)6執(zhí)行語句for(I=1;I++<4;);后變量I的值是(C)A)3B)4C)5D)0三)循環(huán)嵌套的執(zhí)行次數(shù)例題:1.#include“stdio.h”voidmain(){intI,j;for(I=0;I<=3;I++){for(j=0;j<I;j++)printf(”%d”,I);printf(“*\n”);}}輸出結(jié)果:*1*22*333*四)break和continue的用法例題:1.有以下程序voidmain(){inta=1,b;for(b=1;b<=10;b++){if(a>=8)break;if(a%2==1){a+=5;continue;}a-=3;}printf("%d\n",b);}輸出結(jié)果:42.#include<stdio.h>voidmain(){intI,m=0,n=0,k=0;for(I=5;I<=7;I++)switch(i/6){case0:m++;n++;case6:n++;break;default:k++;n++;}printf(“%d,%d,%d\n”,m,n,k);}輸出結(jié)果:1,4,2算法略五、數(shù)組一)數(shù)組語法數(shù)組定義為inta[10][10];,則數(shù)組a有(A)個數(shù)組元素。A)100B)81C)20D)121以下一維數(shù)組a的正確定義是(D)A)inta(10);B)intn=10,a[n];C)intn;D)#defineN10Scanf(“%d”,&n);inta[N];Inta[n];設(shè)有語句”inta[]={3,4,5,9,8,7};”則表達式a[1]-a[4]的值是(C)A)-6B)6C)-4D)2以下不能正確定義二維數(shù)組的是(D)A)inta[2][2]={{4},{5}};B)inta[][2]={4,5,6,7};C)inta[2][2]={{4},5,6};D)inta[2][]={{4,5},.{6,7}};二)字符串例題:以下程序的輸出結(jié)果是(B)#include<stdio.h>#include<string.h>main(){charst[20]=”2000\0\t\\”;printf(“%d,%d\n”,strlen(st),sizeof(st));}A)7,7B)4,20C)10,20D)20,20要將字符串a(chǎn)連接到字符串b后面,使用下面(D)語句A)strcpy(a,b);B)strcat(a,b);C)strcpy(b,a);D)strcat(b,a)三)算法例題:已知字符串chars[50]=”Iamstudent.”,請編寫程序?qū)⒆址鸻插入到student之前,結(jié)果為“Iamastudent”。程序如下:#include<stdio.h>#include<string.h>voidmain(){cars[50]=”Iamstudent.”;intj,len;len=strlen(s);s[len+1]=’\0’for(j=len-1;j>=3;j--)s[j+1]=s[j];s[3]=’\0’puts(s);}有一個3×4的矩陣,要求編程以求出其中值最大的那個元素,以及它所在的行號和列號。程序如下:#include<stdio.h>voidmain(){inti,j,row,col,max;staticinta[3][4]={{3,5,1,8},{6,4,11,7},{9,3,10,2}};max=a[0][0];for(i=0;i<_3_;i++)/*$BLANK1$*/for(j=0;j<4;j++)if(a[i][j]>max)/*$BLANK2$*/{max=_a[i][j]__;/*$BLANK3$*/row=i;col=j;}printf("max=%d,row=%d,col=%d\n",max,row,col);}六、函數(shù)一)函數(shù)語法例題:在C程序中,若對函數(shù)類型未加說明,則函數(shù)的隱含類型為(A)A)intB)doubleC)voidD)charC語言中的函數(shù)(D)A)可以嵌套定義B)不可以嵌套調(diào)用C)可以嵌套定義,但不能遞歸調(diào)用D)嵌套調(diào)用和遞歸調(diào)用都可以。有以下函數(shù)定義:voidfun(intn,doublex){…………}下面函數(shù)調(diào)用正確的是(A)A)fun(x,n)B)k=fun(10,12.5)C)fun(intx,doubley)D)voidfun(n,x)有以下程序#defineN20fun(inta[],intn,intm){inti,j;for(i=m;i>=n;i--)a[i+1]=a[i];}main(){inti,a[N]={1,2,3,4,5,6,7,8,9,10};fun(a,2,9);for(i=0;i<5;i++)printf("%d",a[i]);}程序運行后的輸出結(jié)果是(C)A)10234B)12344C)12334D)12234有以下程序voidsum(inta[]){a[0]=a[-1]+a[1];}main(){inta[10]={1,2,3,4,5,6,7,8,9,10};sum(&a[2]);printf("%d\n",a[2]);}程序運行后的輸出結(jié)果是(A)A)6B)7C)5D)8以下程序運行后的輸出結(jié)果是:43344343二)遞歸函數(shù)例題:【程序1】#include”stdio.h”intfun(intn){if(n<10)returnn;elsereturn(n%10)*fun(n/10);}main(){printf(“%d”,fun(218));}運行結(jié)果:16【程序2】#include<stdio.h>longfun(intn){longs;if(n==1||n==2)s=2;elses=n+fun(n-1);returns;}voidmain(){printf(“\n%ld”,fun(5));}運行結(jié)果:14三)變量的作用域和存儲類型(見課件)例題:C語言auto型變量是(A)A)存儲在動態(tài)存儲區(qū)中B)存儲在靜態(tài)存儲區(qū)中C)存儲在外存儲器中D)存儲在計算機CPU的寄存器中【程序1】intw=2;intf(intx){inty=1;staticintz=3;y++;z++;return(x+y+z);}main(){intk;for(k=0;k<3;k++)printf(“%4d”,f(w++));}運行結(jié)果:81012【程序2】以下程序運行后的輸出結(jié)果是:fun(inta){intb=0;staticintc=3;b++;c++;return(a+b+c);}main(){inti,a=5;for(i=0;i<3;i++)printf("%d%d",i,fun(a));printf("\n");}運行結(jié)果:010111212七、指針例題:設(shè)有定義:ints[]={1,3,5,7,9},*p=&s[0];則值為7的表達式是(C)A)*p+3B)*p+4C)*(p+3)D)*(p+4)若有以下定義,則值為4的表達式是(A)inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;A)p+=3,*(p++)B)p+=3,*++pC)p+=4,*p++D)p+=4,++*p若有定義及賦值:inta[10]={0,1,2,3,4,5,6,7,8,9},*p;p=a;則引用a中的值是5的元素的表達式為(C)A)a[4]B)*(p+4)C)*(a+5)D)*p[5]設(shè)intx[]={1,2,3,4,5,6},*p=x;則值為3的表達式是(A)A)p+=2,*p++B)p+=2,*++pC)p+=3D)p+=2,++*p若有定義及賦值:inta[5][5],(*p)[5];p=a;則下列各式中表示地址的表達式為(C)A)a[3][3]B)*(*(p+1))C)a[2]+2D)*(*(a+3)+1)設(shè)有一下語句inta[4][2]={1,2,3,4,5,6,7,8};則*(*(a+2)+1)(D)A)3B)4C)5D)6四)字符串及字符串?dāng)?shù)組涵義例題:不正確的賦值或賦初值方式是(B)A)charstr[]=”Hell02006”B)charstr[20];str=”Hell02006”;C)char*p=”Hell02006”D)char*p;p=”Hell02006”下列語句中合法的數(shù)組定義是(D)A)chara[3][]={‘a(chǎn)bc’,’12’,”fox”}B)chara[][3]={‘a(chǎn)bc’,’12’,”cd”}C)chara[3][]={‘a(chǎn)’,”12”,”fox”}D)chara[][3]={“a”,”12”,”cd”}以下語句或語句組中,能正確進行字符串賦值的是(D)A)char*sp;*sp="right!";B)chars[10];s="right!";C)chars[10];*s="right!";D)char*sp="right!";八、宏定義、結(jié)構(gòu)體與共用體一)宏定義例題:運行程序:#defineTap(X)2*X+1main(){inta=6,k=2,m=1;a+=Tap(k+m);printf(“%d\n”,a);}則輸出結(jié)果是(A)A)12B)13C)7D)6對于以下宏定義#defineM(x)x*x#defineN(x,y)M(x)+M(y)宏調(diào)用N(2,2+5)執(zhí)行后,值為(A)A)21B)16C)9D)19二)結(jié)構(gòu)體例題:設(shè)有結(jié)構(gòu)體及其數(shù)組和指針變量的定義語句struct{intx;}y[2],*p=y;則下列表達式中不正確的表示結(jié)構(gòu)體成員的是(B)A)(*p).xB)(p+1).xC)y[0].xD)(&y[1])->x設(shè)有定義structst{intx;floaty;}time,*t;t=&time;則對于time中成員x的正確引用是(C)A)w.time.xB)t.xC)(*t).xD)time->x三)共用體例題:若定義unionex{intI;floatf;chara[10];}x;則sizeof(x)的值是(C)A)4B)6C)10D)16設(shè)有下列結(jié)構(gòu)型變量w的定義,則表達式”sizeof(w)”的值是(C)struct{longnum;charname[15];union{floaty;shortz;}yz;}w;A)19B)20C)23D)25四)typedef例題:以下語句中,指針p的data域正確的引用方式為(B)typedefstructnode{intdata;structnodelchile,rchild;}Btree;Btree*p;A)p.dataB)p->dataC)(*p)->dataD)p[data]設(shè)有如下說明typedefstructST{longa;intb;charc[2];}NEW;則下面敘述中正確的是(C)A)以上的說明形式非法B)ST是一個結(jié)構(gòu)體類型C)NEW是一個結(jié)構(gòu)體類型D)NEW是一個結(jié)構(gòu)

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論