2023年C語言試題庫完整版_第1頁
2023年C語言試題庫完整版_第2頁
2023年C語言試題庫完整版_第3頁
2023年C語言試題庫完整版_第4頁
2023年C語言試題庫完整版_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

C語言試題庫單項選擇C語言概述一個C程序的執(zhí)行是從A、本程序的MAIN函數(shù)開始,到MAIN函數(shù)結(jié)束。B、本程序文獻(xiàn)的第一個函數(shù)開始,到本程序文獻(xiàn)的最后一個函數(shù)結(jié)束。C、本程序的MAIN函數(shù)開始,到本程序的最后一個函數(shù)結(jié)束。D、本程序文獻(xiàn)的第一個函數(shù)開始,到本程序的MAIN函數(shù)結(jié)束。以下敘述對的的是在C程序中,MAIN函數(shù)必須位于程序的最前面。C程序的每行中只能寫一條語句。C語言自身沒有輸入輸出語句。在對一個C程序進(jìn)行編譯的過程中,可發(fā)現(xiàn)注釋中的拼寫錯誤。C語言規(guī)定,在一個源程序中,MAIN主函數(shù)的位置是在:必須在最前面。必須在系統(tǒng)調(diào)用的庫函數(shù)的后面可以在任意位置。必須在最后面一個C程序是由:一個主程序和若干子程序組成函數(shù)組成若干過程組成若干子程序組成以下敘述不對的的是:一個C源程序可由一個或多個函數(shù)組成一個C源程序必須包含一個MAIN函數(shù)C程序的基本組成單位是函數(shù)在C程序中,注釋說明只能位于一條語句的后面數(shù)據(jù)類型、運算符與表達(dá)式若x,i,j,k都是int型變量,則計算下面表達(dá)式后,x的值為x=(i=4,j=16,k=32)A、4B、16C、32D、52下列四組選項中,均不是C語言鍵字的選項是A、define,IF,typeB、getc,char,printfC、include,scanf,caseif,struct,type下面四個選項中,均是不合法的用戶標(biāo)記符的選項是A、A,P_0,doB、float,1a0,_AC、b-a,goto,intD、_123,temp,INT若有代數(shù)式3ae/bc,則對的的C語言表達(dá)式是A、a/b/c*e*3B、3*a*e/bcC、3*a*e/b*cD、a*e/c/b*3(5)已知各變量的類型說明如下:intk,a,b;unsingedlongw=5;doublex=1.42;則以下不符合C語言語法的表達(dá)式是A、x%(-3)B、w+=-2;C、k=(a=2,b=3,a+b)D、a+=a-=(b=4)*(a=3)簡樸C程序設(shè)計(1)putchar函數(shù)可以向終端輸出一個A、整型變量表達(dá)式值B、實型變量值C、字符串D、字符或字符型變量值(2)若x,y均定義為int型,z定義為double型,以下合法的scanf函數(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,&z);D、scanf(“%x%o%6.2f”,&x,&y,&z);(3)當(dāng)輸入數(shù)據(jù)的形式為:25,13,10<回車>時,以下程序的輸出結(jié)果為main(){intx,y,z;scanf(“%d%d%d”,&x,&y,&z);printf(“x+y+z=%d\n”,x+y+z);}A、x+y+z=48B、x+y+z=35C、x+z=35D、不擬定值以下能對的的定義整型變量a,b和c,并對它們賦初值為5的語句是A、inta=b=c=5;B、inta,b,c=5;C、a=5,b=5,c=5;D、a=b=c=5;若有以下定義,則對的的賦值語句是inta,b;floatx;A、a=1,b=2;B、b++;C、a=b=5;D、b=int(x);選擇結(jié)構(gòu)程序設(shè)計(1)能對的表達(dá)“當(dāng)x的值在[1,10]和[200,210]的范圍為真,否則為假”的表達(dá)式是A、(x>=1)&&(x<=10)&&(x.>=200)&&(x<=210)B、(x>=1)││(x<=10)││(x.>=200)││(x<=210)C、(x>=1)&&(x<=10)││(x.>=200)&&(x<=210)D、(x>=1)││(x<=10)&&(x.>=200)││(x<=210)(2)以下程序的運營結(jié)果是#include“stdio.h”main(){inta,b,d=241;a=d/100%9;b=(-1)&&(-1);printf(“%d,%d”,a,b);}A、6,1B、2,1C、6,0D、2,0(3)請閱讀以下程序:main(){inta=5,b=0,c=0;if(a+b+c)printf(“***\n”);elseprintf(“$$$\n”);}以上程序。有語法錯誤不能通過編譯可以通過編譯但不能直接通過連接輸出***輸出$$$(4)以下程序的運營結(jié)果是。main(){intm=5;if(m++>5)printf(“%d\n”,m);elseprintf(“%d\n”,m——);}4567為了避免在嵌套的條件語句中if-else中產(chǎn)生二義性,c語言規(guī)定:else子句總是與相配對。A)縮排位置相同的ifB)其之前最近的ifC)其之后最近的ifD)同一行上的if循環(huán)控制(1)設(shè)有程序段intk=10while(k=0)k=k-1則下面描敘對的的是。while(k=0)k=k-1;循環(huán)是無限循環(huán)循環(huán)體語句一次也不執(zhí)行循環(huán)體語句執(zhí)行一次(2)下面程序段的運營結(jié)果是。intn=0;while(n++<=2);printf(“%d”,n);234有語法錯(3)C語言中while和do-while循環(huán)的重要區(qū)別是。do-while的循環(huán)體至少無條件執(zhí)行一次while的循環(huán)控制條件比do-while的循環(huán)控制條件嚴(yán)格do-while允許從外部轉(zhuǎn)到循環(huán)體內(nèi)do-while允許從外部轉(zhuǎn)到循環(huán)體內(nèi)(4)以下能對的計算1*2*3*…*10的程序段是。do{i=1;s=1;s=s*i;i++;}while(I<=10);do{i=1;s=0;s=s*i;i++;}while(I<=10);C)i=1;s=1;do{s=s*i;i++;}while(I<=10);D)i=1;s=0;do{s=s*i;i++;}while(I<=10);數(shù)組(1)在c語言中,引用數(shù)組元素時,其數(shù)組下標(biāo)的數(shù)據(jù)類型允許是___(dá)_。整型常量整型表達(dá)式整型常量或整型表達(dá)式任何類型的表達(dá)式(2)以下能對二維數(shù)組a進(jìn)行對的初始化的語句是___(dá)_。inta[2][]={{1,0,1},{5,2,3,}};inta[][3]={{1,2,3},{4,5,6}};inta[2][4]={1,2,3,},{4,5},{6}};inta[][3]={{1,0,1},{},{1,1}};)(3)若有說明:inta[3][4]={0};則下面對的的敘述是___(dá)_。只有元素a[0][0]可得到初值0此說明語句不對的數(shù)組a中各元素都可得到初值,但其值不一定為0數(shù)組a中每個元素均可得到初值0(4)下面程序___(每行程序前面的數(shù)字表達(dá)行號)。1main()2{3floata[10]={0};4inti5for(i=0;i<3;i++)scanf(“%d”,&a[i];6for(i=1;i<10;i++)a[0]=a[0]+a{i};7printf(“%f\n”,a[0]);8}沒有錯誤第3行有錯誤第5行有錯誤第7行有錯誤(5)若二維數(shù)組a有m列,則計算機一元素a[i][j]在數(shù)組中位置的公式為____(dá)。(假設(shè)a[0][0]位于數(shù)組的第一個位置上。)i*m+jj*m+ii*m+j-1i*m+j+1函數(shù)(1)以下對的的函數(shù)定義形式是。A)doublefun(intx,inty)doublefun(intx;inty)doublefun(intx,inty)doublefun(intx,y);(2)以下對的的函數(shù)形式是。doublefun(intx,inty){z=x+y;returnz;}fun(intx,y){intz;returnz;}fun(x,y){intx,y;doublez;z=x+y;returnz;}doublefun(intx,inty){doublez;z=x+y;returnz;}(3)C語言規(guī)定,簡樸變量做實參時,它和相應(yīng)形參之間的數(shù)據(jù)傳遞方式是A)地址傳遞 B)單向值傳遞C)由實參傳給形參,再由形參傳回給實參D)傳遞方式(4)C語言允許函數(shù)值型缺省定義,此時該函數(shù)值隱含的類型是。A)float型B)int型C)long型D)double型(5)下面函數(shù)調(diào)用語句具有實參的個數(shù)為。func((exp1,exp2),(exp3,exp4,exp5));A)1B)2C)4D)5編譯預(yù)解決命令(1)請讀程序:#defineADD(x)x+xmain(){intm=1,n=2,k=3;intsum=ADD(m+n)*k;printf(“sum=%d”,sum);}上面程序的運營結(jié)果是。sum=9sum=10sum=12sum=18(2)以下程序的運營結(jié)果是。#defineMIN(x,y)(x)<(y)?(x)+(y)main(){intI=10,j=15,k;k=10*MIN(I,j);printf(“%d\n”,k);}A)10B)15C)100D)150(3)在宏定義#definePI3.14159中,用宏名PI代替一個。常量單精度數(shù)雙精度數(shù)字符串(4)若有宏定義如下:#defineX5#defineYX+1#defineZY*x/2則執(zhí)行以下printf語句后,輸出結(jié)果是。inta;a=Y;printf(“%d\n”,Z);printf(“%d\n”,--a);A)7B)12C)12D)76655(5)若有以下宏定義:#defineN2#defineY(n)((N+1)*n)則執(zhí)行語句z=2*(N+Y(5));后的結(jié)果是。語句有錯誤z=34z=70z無定值指針以下程有錯誤,錯誤因素是main(){int*p,I;char*q,ch;p=&I;q=&ch;*p=40;*p=*q;……..}p和q的類型不一致,不能執(zhí)行*P=*Q;語句P中存放的是地址值,因此不能執(zhí)行*P=40;語句Q沒有指向具體的存儲單元,所以*Q沒有實際意義Q雖然指向了具體的存儲單元,但該單元中沒有擬定值,所以不能執(zhí)行*P=*Q;語句(2)已有定義intk=2;int*ptr1,*ptr2;且ptr1和ptr2均已指向變量K,下面不能對的執(zhí)行的賦值語句是.A)k=*ptr1+*ptr2;B)ptr2=K;C)ptr1=ptr2;D)k=*ptr1*(*ptr2);(3)變量的指針,其含義是指該變量的___(dá)_____.A)值B)地址C)名D)一個標(biāo)志(4)若有語句int*point,a=4;和ponit=&a;下面均代表地址的一組選項是___(dá)_____(dá)_.a(chǎn),point,*&aB)&*a,&a,*pointC)*&point,*point,&aD)&a,&*point,point(5)下面能對的進(jìn)行字符串賦值操作的是_____(dá)___.chars[5]={“ABCDE”};chars[5]={‘A’,’B’,’C’,’D’,’E’};char*S;s=”ABCDE”;char*S;scanf(“%s”,s);若有以下定義,則對A數(shù)組元素的對的引用是___(dá)____(dá).A)*&a[5]B)*a+2C)*(P+5)D)*(a+2)若有以下定義,則對a數(shù)組元素地址的對的引用是_______>p+5*a+1&a+1&a[0]若有定義:inta[2][3];則對a數(shù)組的第I行第J列(假設(shè)I,J已對的說明并賦值)元素值的對的引用為_____(dá)__.A)*(*(a+I(xiàn))+J)B)(a+I)[j]C)*(a+I+j)D)*(a+I)+j(9)若有定義:inta[2][3];則對a數(shù)組的第i行第j列(假設(shè)i,j已對的說明并賦值)元素地址的對的引用為________.A)*(a[i]+j)B)(a+i)C)*(a+j)a[i]+j(10)若有以下定義和語句,則對a數(shù)組元素地址的對的引用為__(dá)__(dá)___(dá)__.Inta[2][3],(*p)[3]P=a;A)*(p+2)p[2]p[1]+1(p+1)+2結(jié)構(gòu)體與共用體以下對結(jié)構(gòu)體類型變量的定義中不對的的是____(dá)_____.A)#defineSTUDENTstructstudentSTUDENT{intnum;floatage;}std1;B)structstudent{intnum;floatage;}std1;C)struct{intnum;floatage;}std1;D)struct{intnum;floatage;}student;structstudentstd1;設(shè)有以下語句structstu{inta;floatb;}stutype;則下面敘述對的的是____(dá)__(dá)____.A)struct是結(jié)構(gòu)體類型的關(guān)鍵字B)structstu是用戶定義的結(jié)構(gòu)體類型C)stutype是用戶定義的結(jié)構(gòu)體類型名D)a和b都是結(jié)構(gòu)體成員名設(shè)有以下定義:structsk{intn;floatx;}data,*p;若要使p指向data中的n域,對的的賦值語句是____(dá)___(dá)__(dá)p=&data.n;*p=data.n;p=(structsk*)&data.n;p=(structsk*)data.n;設(shè)有以下語句:structst{intn;structst*next;}staticstructsta[3]={5,&a[1],7,&a[2],9,’\0’},*p;p=&a[0];則以下表達(dá)式的值為6的是__(dá)__(dá)___.p++->np->n++(*p).n++++p->n位運算(1)以下運算符中優(yōu)先級最低的是優(yōu)先級最高的是。A)&&B)&C)||D)|(2)若有運算符<<,sixeof,^,&=則它們按優(yōu)先級按由高到低的對的排列順序是。A)sizeof,&=,<<,^B)sizeof,<<,^,&=C)^,<<,sizeof,&=D)<<,^,&=,sizeof(3)在C語言中,規(guī)定運算數(shù)必須是整型的運算符是。A)^B)%C)!D)>(4)在C語言中,規(guī)定運算數(shù)必須是整型或字符型的運算符是。A)&&B)&C)!D)||(5)sozeof(float)是。A)一種函數(shù)調(diào)用B)一種不合法的表達(dá)形式C)一個整型表達(dá)式D)一個浮點表達(dá)式文獻(xiàn)(!)系統(tǒng)的標(biāo)準(zhǔn)輸入文獻(xiàn)是指。A)鍵盤B)顯示器C)軟盤D)硬盤(2)以下可作為函數(shù)fopen中第一個參數(shù)的對的格式是。c:user\text.txtc:\user\text.txt"c:\user\text.txt""c:\\user\text.txt"(3)若執(zhí)行fopen函數(shù)時發(fā)生錯誤,則函數(shù)的返回值是.A)地址值B)0C)1D)EOF(4)若要用fopen函數(shù)打開一個新的二進(jìn)制文獻(xiàn),該文獻(xiàn)要既能讀又能寫,則文獻(xiàn)方式字符串應(yīng)是。A)"ab+"B)"wb+"C)"rb+"D)"ab"(5)當(dāng)順利執(zhí)行了文獻(xiàn)關(guān)閉操作時,fclose函數(shù)的返回值是。A)-1B)TUREC)0D)1填空C語言概述C源程序的基本單位是()一個C源程序至少應(yīng)涉及一個()在一個C源程序中,注釋部分兩側(cè)的分界符分別為()和()在C語言中,輸入操作是由庫函數(shù)()完畢的,輸出操作是由庫函數(shù)()完畢的。數(shù)據(jù)類型、運算符與表達(dá)式在C語言中(以16位機為例),一個char型數(shù)據(jù)在內(nèi)存中所占的字節(jié)數(shù)為(),一個int型數(shù)據(jù)在內(nèi)存中所占的字節(jié)數(shù)為()。在C語言中,實型變量分為兩種類型,它們是()和()。若a是int型變量,則計算表達(dá)式a=25/3%3后,a的值為()。C語言中的標(biāo)記符只能由三種字符組成,它們是(),()和()表達(dá)式8/4*(int)2.5/(int)(1.25*3.7+2.3)值的數(shù)據(jù)類型為()。簡樸C程序設(shè)計(1)以下程序的輸出結(jié)果是()。main(){intx=1,y=2;printf(“x=%dy=%d*sum*=%d\n”,x,y,x+y);printf(“10squaredis:%d\n”,10*10);}(2)以下程序的輸出結(jié)果是()。#include<studo.h>main(){inta=325;doublex=3.1415926;printf(“a=%+06dx=%+e\n”,a,x,);}(3)假設(shè)變量a和b均為整型,以下語句可以下借助任何變量把a、b中的值進(jìn)行互換。請?zhí)羁?。a+=();b=a-();a-=();(4)設(shè)x,y和z都是int型變量,m為long型變量,則在16位微型機上執(zhí)行下面的賦值語句后,x值為(),y值為(),z值為()。y=(x=32767,x=-1);z=m=0xFFFF(5)若x為int型變量,則執(zhí)行以下語句后x的值是()x=7;x+=x-=x+x;選擇結(jié)構(gòu)程序設(shè)計(1)當(dāng)a=3,b=2,c=1時,表達(dá)式f=a>b>c的值是()。(2)在C語言中表達(dá)邏輯“真”值用()。(3)設(shè)x,y,z均為int型變量,請寫出描述“x或y中有一個小于z”的表達(dá)式().(4)當(dāng)m=2,n=1,a=1,b=2,c=3時,執(zhí)行完d=(m=a!=b)&&(n=b>c)后;n的值為(),m的值為()。(5)有inta=3,b=4,c=5;則表達(dá)式a||b+c&&b==c的值為()。循環(huán)控制(1)執(zhí)行下面程序段后,K值是()。K=1;n=263;Do{k*=n%10;n/=10}while(n);(2)下面程序段中循環(huán)體的執(zhí)行次數(shù)是()。A=10;B=0;Do{b+=2;a-=2+b;}while(a>=0);(3)下面程序段的運營結(jié)果是()。X=2’Do{printf(“*”);x--;}while(!x==0);(4)下面程序段的運營結(jié)果是()。I=1;a=0;s=1;Do{a=a+s*i;s=-s;i++;}while(i<=10)Printf(“a=%d,a”);(5)雞兔共有30只,腳共有90個,下面程序段是計算雞兔各有多少只,請?zhí)羁?。For(x=1;x<=29;x++){y=30-x;if()printf(“%d,%d\n”,x,y);}數(shù)組(1)在C語言中,二維數(shù)組的定義方式為:類型說明符數(shù)組名()();(2)在C語言中,二維數(shù)組元素在內(nèi)存中的存放順序是()。(3)若有定義:doublex[3][5];則x數(shù)組中行下標(biāo)的下限為(),列下標(biāo)的上限為()。(4)若二維數(shù)組a有m列,則計算機任一元素a[i][j]在數(shù)組中位置的公式為:().(假設(shè)a[0][0]位于數(shù)組的第一個位置上。)(5)若有定義:inta[3][4]={{1,2},{0},{4,6,8,10}};則初始化后,a[1][2]得到的初值是(),a[2][1]得到初值是()。函數(shù)(1)C語言規(guī)定,可執(zhí)行程序的開始執(zhí)行點是()。(2)在C語言中,一個函數(shù)一般由兩個部分組成,它們是()和()。(3)下面add函數(shù)的功能是求兩個參數(shù)的和,并將和值返回調(diào)用函數(shù)。函數(shù)中錯誤的部分是();改正后為()。Voidadd(floata,float(yī)b){floatc;c=a+b;returnc’}(4)以下程序的運營結(jié)果是()。main(){increment();increment();increment();}increment();{intx=0;x+=1;printf(“%d”,x);}(5)以下Check函數(shù)的功能是對value中的值進(jìn)行四舍五入計算,若計算后的值與ponse值相等,則顯示“WELLDONE!!”,否則顯示計算后的值。已有函數(shù)調(diào)用語句Check(ponse,value);請?zhí)羁铡#謔idCheck(intponse,value){intval;val=();printf(“計算后的值:%d”,val);if()printf(“\NwellDNOE!!!\n”);elseprintf)”\nSorrythecorrectansweris%d\n”,val);}編譯預(yù)解決命令(1)設(shè)有以下宏定義:#defineWIDTH80#defineLENGTHWIDTH+40則執(zhí)行賦值語句:v=LENGTH*20;(V為int型變量)后,v的值是()。(2)設(shè)有以下宏定義:#defineWIDTH80#defineLENGTH(WIDTH+40)則執(zhí)行賦值語句:k=LENGTH*20;(K為int型變量)后,k的值是()。(3)下面程序的運營結(jié)果是()。#defineDOUBLE(r)r*rmain(){intx=1,y=2,t;t=DOBLE(x+y);printf(“%d\n”,t);}(4)下面程序的運營結(jié)果是()。#defineMUL(z)(z)*(z)main(){printf(“%d\n”,MUL(1+2)+3);}(5)下面程序的運營結(jié)果是()。#definePOWER(x)((x)*(x))main(){intI=1;while(I<=4)printf(“%d\t”,POWER(I++));printf(“\n”);}指針(1)下面程序段的運營結(jié)果是()chars[80],*sp=”HELLO!”;sp=strcpy(s,sp);s[0]=’h’;puts(sp);(2)下面程序段的運營結(jié)果是()char[a]=””,*p;intI=0;p=a;while(*p){if(I%2==0)p=’*’;p++;I++;}puts(a);(3)若有以下語句和定義:inta[4]={0,1,2,3,},*p;p=&a[1];則++(*p)的值是()(4)若有定義:inta[2][3]={2,4,6,8,10,12};則(&a[0][0]+282+1的值是(),*(a[1]+2)的值是()。結(jié)構(gòu)體與共用體(1)以下程序用以輸出結(jié)構(gòu)體變量bt所占內(nèi)存單元的字節(jié)數(shù),請在()內(nèi)填上適當(dāng)?shù)膬?nèi)容。Structps{doubleI;chararr[20];}main(){structpsbt;ptintf(“btsize:%d\n:,());(2)設(shè)有三人的姓名和年齡存在結(jié)構(gòu)數(shù)組中,以下程序輸出三人中年齡居中者的姓名和年齡,請在()內(nèi)填上對的的內(nèi)容。Staticstructman{charname[20]intage;}person[]{“l(fā)i—ming”,18,“wang—hua”,19,“zhang—ping”,20};main(){inti,j,max,min;max=min=person[0].age;for(i=1;i<3;i++)if(person[i].a(chǎn)ge>max)();elseif(person[i].age<min)();for(i=0;i<3;i++)if(person[i].a(chǎn)ge!=max()person[i].age!=min){printf(“%s%d\n”,person[i].name,person[i].a(chǎn)ge);break;}}(3)若以定義:structnum{inta;intb;floatf;}n={1,3,5.0};structnum*pn=&n;則表達(dá)式pn->b/n.a*++pn->b的值是(),表達(dá)式(*pn).a+pn->f的值是()。(4)以下程序的功能是計算并打印復(fù)數(shù)的差。請在()內(nèi)填入對的的內(nèi)容。Structcomp{floatre;float(yī)im;}structcomp*m(x,y)structcomp*x,*y;{();z=(structcomp*)malloc(sizeof(structcomp));z->re=x->re-y->re;z->im=x->im-y->im;return(());}main(){structcomp*t;structxompa,b;a.re=1;a.im=2;b.re=3;b.im=4;t=m(());printf(“z.re=%f,z.im=%f”,t->re,t->im);}(5)以下程序的運營結(jié)果是()structks{inta;int*b;}s[4],*p;main(){intn=1,i;printf(“\n”);for(i=0;i<4;i++){s[i].a=n;s[i].b=&s[i.a;n=n+2;}p=&s[0];p++;printf(“%d,%d\n”,(++p)>a,(p++)->a);}位運算(1)在C語言中,&運算符作為單目運算符時表達(dá)的是()運算;作為雙目運算符時表達(dá)的是()運算。(2)與表達(dá)式a&=b等價的另一書寫形式是()。(3)設(shè)有chara,b;若要通過a&b運算屏蔽掉a中的其它位,只保存第2和第8位(右起為第1位),則b的二進(jìn)制數(shù)是().(4)測試char型變量a第六位是否為1的表達(dá)式是()(設(shè)最右位是第一位)。(5)設(shè)二進(jìn)制數(shù)x的值是11001101,若想通過x&y運算使x中的低4位不變,高4位清零,則y的二進(jìn)制數(shù)為()。文獻(xiàn)(1)在C程序中,文獻(xiàn)可以用()方式存取,也可以用()方式存取。(2)在C程序中,數(shù)據(jù)可以用()和()兩種代碼形式存放。(3)在C程序中,文獻(xiàn)的存取是以()為單位的,這種文獻(xiàn)被稱作()文獻(xiàn)。(4)函數(shù)調(diào)用語句:fgets(buf,n,fp);從fp指向的文獻(xiàn)中讀入()個字符放到buf字符數(shù)組中。函數(shù)值為()。(5)feof(fp)函數(shù)用來判斷文獻(xiàn)是否結(jié)束,假如碰到文獻(xiàn)結(jié)束,函數(shù)值為(),否則為()。判斷C語言概述數(shù)據(jù)類型、運算符與表達(dá)式C語言所提供的基本數(shù)據(jù)類型涉及:整型、實型和字符型。在C程序中,逗號運算符的優(yōu)先級最低。當(dāng)從鍵盤輸入數(shù)據(jù)時,對整型變量只能輸入整型數(shù)據(jù),對實型變量只能輸入實型數(shù)據(jù)。C語言中的標(biāo)記符只能由字母、數(shù)字和下劃線三種字符組成。在C語言中,char型的數(shù)據(jù)在內(nèi)存中的存儲形式是原碼形式。簡樸C程序設(shè)計當(dāng)輸入一個實型數(shù)據(jù)時,格式控制部分應(yīng)規(guī)定小數(shù)點后的位數(shù),如scanf(“%4.2f”,&f)。整型變量的輸出格式控制符只有%d一種。putchar函數(shù)可以向終端輸出一個字符串。pirntf函數(shù)中用到格式符%5s,其中數(shù)字5表達(dá)輸出的字符串占5列,假如字符串長度大于5,則輸出按原字符長度從左向右所有輸出。輸入項可以是一個實型常量,如scanf(“%f”,2.3)。選擇結(jié)構(gòu)程序設(shè)計邏輯運算符兩側(cè)的運算對象可以是任何基本類型的數(shù)據(jù)。C語言中只提供了三種邏輯運算符:&&,||,和!。若a=6,b=4,c=3則表達(dá)式a&&b+c||b-c的值是0。關(guān)系運算式的結(jié)果都是邏輯值。若a=1,b=2,則表達(dá)式a>b?a:b+1的值是3。循環(huán)控制設(shè)有以下程序段:intx=0,s=0;while(!x!=0)s+=++x;printf(“%d”,s);則運營該程序段后輸出為:0for循環(huán)只能應(yīng)用于循環(huán)次數(shù)已經(jīng)擬定的情況。goto語句只能用于退出多層循環(huán)。switch語句中不能出現(xiàn)continue語句。只能用continue語句終止本次循環(huán)。數(shù)組兩個字符串中所包含的字符個數(shù)相同時,才干比較字符串。字符數(shù)組可以存放字符串。不能用關(guān)系運算符對字符數(shù)組中的字符串進(jìn)行比較。假如定義了一個指向數(shù)組的指針,則該指針可以相稱于數(shù)組名使用。假如沒有給一個整型數(shù)組的元素賦初值,則其元素的缺省初值所有為0。函數(shù)C語言中,用戶若需調(diào)用標(biāo)準(zhǔn)庫函數(shù),在調(diào)用前必須重新定義。C語言中不允許用戶重新定義標(biāo)準(zhǔn)庫函數(shù)。在C程序中,函數(shù)的定義和調(diào)用都不允許嵌套。假如用數(shù)組名作為函數(shù)調(diào)用的實際參數(shù),則傳遞給形參的是數(shù)組的首地址。形式能參數(shù)也是一種局部變量。編譯預(yù)解決命令預(yù)解決命令行都必須以#號開始。宏替換不占用運營時間,只占編譯時間。C程序在執(zhí)行過程中對預(yù)解決命令進(jìn)行解決。宏名必須用大寫字母表達(dá)。在文獻(xiàn)包含預(yù)解決命令的使用形式中,當(dāng)#include后的文獻(xiàn)名用<>括起來時,表達(dá)在當(dāng)前目錄搜索被包含文獻(xiàn)。指針若有定義:int(*p)[4],則標(biāo)記符p表達(dá)的是一個指向整型變量的指針。若有定義:int*p[4],則標(biāo)記符p表達(dá)的是一個指針數(shù)組名。指針值就是地址值。若有定義int(*p)(),指針p可以表達(dá)函數(shù)返回值的類型。C語言允許main函數(shù)帶形參,但形參名只能是argv和arvc。結(jié)構(gòu)體與共用體當(dāng)定義一個結(jié)構(gòu)體變量時,系統(tǒng)分派給它的內(nèi)存是各成員所需內(nèi)存量的總和。C語言中,結(jié)構(gòu)體變量在程序執(zhí)行期間只有部提成員駐留在內(nèi)存中。一個共用體類型定義中不能出現(xiàn)結(jié)構(gòu)體類型的成員。用typedef只是將已存在的類型用一個新的標(biāo)記符來代表,而不能增長新類型。用typedef可以定義各種類型名,但不能用來定義變量。位運算文獻(xiàn)運用fseek函數(shù)可以實現(xiàn)文獻(xiàn)的隨機讀寫的操作。函數(shù)rewind的作用是使位置指針重新返回文獻(xiàn)的開頭。在C程序中,文獻(xiàn)可以用隨機讀寫的方式存取,也可以用順序讀寫的方式存取。函數(shù)ftell(fp)的作用是得到流式文獻(xiàn)中的當(dāng)前位置。fgetc函數(shù)的作用是從指定文獻(xiàn)讀入一個字符,該文獻(xiàn)的打開方式必須是只讀的。程序設(shè)計C語言概述數(shù)據(jù)類型、運算符與表達(dá)式簡樸C程序設(shè)計選擇結(jié)構(gòu)程序設(shè)計(1)編程實現(xiàn):輸入一個整數(shù),判斷它能否被子3,5,7整除,并輸出以下信息之一:1)能同時被3,5,7整除;2)能被其中兩數(shù)(要指出哪兩個)整除;3)能被其中一個數(shù)(要指出哪一個)整除;4)不能被3,5,7任一個整除。(2)用switch編程實現(xiàn):-1(x<0)y=0(x=0)1(x.0)循環(huán)控制(1)每個蘋果0.8元,第一天買2個蘋果,第二天開始,天天買前一天的倍,直至購買的蘋果個數(shù)達(dá)成不超過100的最大值。編寫程序求天天平均花多少錢?(2)編寫程序,從鍵盤輸入6名學(xué)生的5門成績,分別記錄出每個學(xué)生的平均成績。數(shù)組(1)從鍵盤輸入若干整數(shù)(數(shù)據(jù)個數(shù)應(yīng)少于50),其值在0至4的范圍內(nèi),用-1作為輸入結(jié)束的標(biāo)志。記錄每個整數(shù)的個數(shù)。試編程。(2)若有說明:inta[2][3]={{1,2,3},{4,5,6}};現(xiàn)要將a的行和列的元素互換后存到另一個二維數(shù)組b中。試編程。函數(shù)(1)已有變量定義和函數(shù)調(diào)用語句inta,b;b=sum(a);函數(shù)sum()用以求k,和數(shù)作為函數(shù)值返回。若a值為10,經(jīng)函數(shù)sum的計算后,b的值是55。請編寫sum函數(shù)。Sum(intn){}(2)a是一個2*4的整型數(shù)組,且各元素均已賦值,函數(shù)max_value可求出其中的最大元素值max,并將此值返回主調(diào)函數(shù)。今有函數(shù)調(diào)用語句max=max_value(a);請編寫max_value函數(shù)。Max_value(intarr[][4]){}編譯預(yù)解決命令(1)輸入兩個整數(shù),求它相除的余數(shù)。用帶參的宏來編程實現(xiàn)。(2)試用義一個帶參的宏swap(x,y),以實現(xiàn)兩個整數(shù)之間的互換,并運用它將一維數(shù)組a和b的值進(jìn)行互換。指針(1)編一程序,將字符串computer賦給一個字符數(shù)組,然后從第一個字母開始間隔地輸出該串。請用指針完畢。(2)設(shè)有一數(shù)列,包含10個數(shù),已按升序排好?,F(xiàn)規(guī)定編一程序,它可以把從指定位置開始的N個數(shù)按逆序重新排列并輸出新的完整數(shù)列。進(jìn)行逆序解決時要赤使用指針方法。試編程。(例如:原數(shù)列為2,4,6,8,10,12,14,16,18,20,若規(guī)定把從第4個數(shù)開始的5個數(shù)按逆序重新排列,則得到新數(shù)列為2,4,6,16,14,12,10,8,18,20。)結(jié)構(gòu)體與共用體(1)試運用指向結(jié)構(gòu)體的指針編制一程序,實現(xiàn)輸入三個學(xué)生的學(xué)號、數(shù)學(xué)期中和期末成績,然后計算其平均成績并輸出成績表。(2)請定義枚舉類型,用枚舉元素代表人民幣的面值。涉及1,2,5分;1,2,5角;1,2,5,10,50,100元。位運算(1)請編程序:從終端讀入16進(jìn)制無符號整數(shù)M,調(diào)用函數(shù)rightrot將M中的原始數(shù)據(jù)循環(huán)右移N位。并輸出移位前后的內(nèi)容。(2)請編寫函數(shù)getbits從一個16位的單元中取出以n1開始至n2結(jié)束的某幾位,起始位和結(jié)束位都從左向右計算。同時編寫主函數(shù)調(diào)用getbits進(jìn)行驗證。文獻(xiàn)(1)請編寫程序:從鍵盤輸入一個字符串,將其中的小寫字母所有轉(zhuǎn)換成大寫字母,輸出到磁盤文獻(xiàn)“upper.txt”中保存。輸入的字符串以“!”結(jié)束。然后再將文獻(xiàn)upper.txt中的內(nèi)容讀出顯示在屏幕上。(2)設(shè)文獻(xiàn)student.dat(yī)中存放著一年級學(xué)生的基本情況,這些情況由以下結(jié)構(gòu)體來描述:strucstudent{longintnum;/*學(xué)號*/charname[10];/*姓名*/intage;/*年齡*/charsex;/*性別*/charspeciality[20];/*專業(yè)*/charaddr[40];/*地址*/};請編寫程序,輸出學(xué)號在970101—971035之間的學(xué)生學(xué)號、姓名、年齡和性別。參考答案一、名詞解釋二、單項選擇題第一章C語言概述(1)A(2)C(3)D(4)C(5)B第二章數(shù)據(jù)類型、運算符與表達(dá)式(1)C(2)A(3)C(4)C(5)A第三章簡樸C程序設(shè)計(1)D(2)D(3)D(4)A(5)B第四章選擇結(jié)構(gòu)程序設(shè)計(1)C(2)B(3)D(4)C(5)B第五章循環(huán)控制CCACC第六章數(shù)組CBDCD第七章函數(shù)ADBBB第八章編譯預(yù)解決BBDDB第九章指針DBBDCDDADC第十章結(jié)構(gòu)體與共用體DCDCD第十一章位運算(1)<1>C<2>B(2)B(3)B(4)B(5)C第十二章文獻(xiàn)ABCDC三、填空題第一章C語言概述函數(shù)主函數(shù)(或:main函數(shù))<1>/*<2>*/<1>scanf<2>printf第二章數(shù)據(jù)類型、運算符與表達(dá)式(1)<1>1<2>2(2)<1>單精度型(或:float型)<2>雙精度型(或double型)(3)<1>10<2>6(4)<1>字母<2>數(shù)字<3>下劃線(5)整型(或:int型)第三章簡樸C程序設(shè)計(1)x=1y=2*sum*=310Squaredis:100(2)a=+00325---x=+3.14159e+00(此處“-“代表空格)(3)<1>b<2>b<3>b(4)<1>32766<2>-1<3>65535(5)-14第四章選擇結(jié)構(gòu)程序設(shè)計0非0的數(shù)字x<z||y<z<1>0<2>11第五章循環(huán)控制363**a=-52*i+4*y==90第六章數(shù)組<1>常量表達(dá)式<2>常量表達(dá)式按行主順序存放<1>0<2>4i*m+j+1<1>0<2>6第七章函數(shù)程序中的main()函數(shù)<1>函數(shù)說明部分<2>函數(shù)體<1>voidadd(floata,floatb)<2>floatadd(floata,floatb)111<1>(int)((value*10+5)/10)<2>ponse==val第八章編譯預(yù)解決8802400512212第九章指針hELLO!*2*4*6*8*2<1>12<2>12第十章結(jié)構(gòu)體與共用體sizeof(structps)<1>max=person[i].age<2>min=person[i].age<3>&&<1>12<2>6.0<1>structcomp*z<2>z<3>&a,&b7,3第十一章位運算(1)<1>取地址<2>按位與(2)a=a&b(3)10000010(4)a&040或a&0x20或a&32(5)00001111第十二章文獻(xiàn)(1)<1>順序(或隨機)<2>隨機(或順序)(2)<1>二進(jìn)制<2>ASCII(3)<1>字符<2>流式(4)<1>n-1<2>buf的首地址(5)50*sizeof(structst)四、判斷數(shù)據(jù)類型、運算符與表達(dá)式錯對錯對錯簡樸C程序設(shè)計錯錯錯對錯對對錯對對錯錯錯錯對數(shù)組錯對對對對函數(shù)錯錯錯對對編譯預(yù)解決命令對對錯錯錯指針錯對對錯錯結(jié)構(gòu)體與共用體對錯錯對錯文獻(xiàn)錯對對對錯五、編程題第一章C語言概述第二章數(shù)據(jù)類型、運算符與表達(dá)式第三章簡樸C程序設(shè)計第四章選擇結(jié)構(gòu)程序設(shè)計(1)main(){intx;scanf(“%d”,&x);if((x%3==0)&&(x%5==0)&&(x%7==0))printf(“%dcanbedividedby3,5,7\n”,x);elseif((x%3==0)&&(x%5==0))printf(“%dcanbedividedby3,5\n”,x);elseif((x%3==0)&&(x%7==0))printf(“%dcanbedividedby3,7\n”,x);elseif((x%5==0)&&(x%7==0))printf(“%dcanbedividedby5,7\n”,x);elseif(x%3==0)printf(:%dcanbedividedby3\n”,x);elseif(x%5==0)printf“%dcanbedividedby5\n”,x);elseif(x%7==0)printf(%dcanbedividedby7\n”,x);elseprintf(“%dcannotbedivided3,5,7\n”,x);}(2)main(){float(yī)x;inty;printf(“\ninputx:”);scanf(“%f”,&x);switch(x<0){case1;y=-1;break;case0;switch(x==0){case1;y=0;break;default:y=1;}}printf(“\ny=%d”,y);}第五章循環(huán)控制(1)#include<stdio.h>main(){intday=0,buy=2;floatsum=0.0,ave;do{sum+=0.8*buy;day++;buy*=2;}while(buy<=100);ave=sum/day;printf({“%f,ave};}(2)#include<stdio.h>main(){inti,j;float(i=1;i<=6;i++){sum=0;for(j=1;j<=5;j++){scanf(%f”,&g);sum+=g;}ave=sum\5;printf(“No.%dave=%5.2f\n”,i,ave);}}第六章數(shù)組(1)#defineM50main(){inta[M],c[5],i,n=0,x;printf(“Enter0or1or2or3or4,toendwith–1\n”);scanf(“%d”,&x);while(x!=-1){if(x>=0&&x<=4){a[n]x;n++;}}for(i=o;i<=5;i++)c[i]=0;for(i=0;i<n;I++)c[a[i]]++;printf(“Theresultis:\n”);for(i=;i<=4;i++)printf(“%d:%d\n”,c[i]);printf(“\n”);}(2)main(){inta[5][4]={3,6,2,1,3,9,0,2,1,5,6,7,4,0,0,0,0};inti,j;for(i=0;I<4;I++)for(j=0;j<4;j++)a[4][j]+=a[i][j];printf(“Theresultis:\n”);for(i=0;i<4;i++)printf(“%3d”,a[4][i]);}第七章函數(shù)(1)sum(intn){inti,k=0;for(i=0;i<=n;i++)k+=i;returnk;}(2)max(intarr[][4]){intI,j,max;max=arr[0][0];for(I=0;I<2;I++)for(j=o;j<4;j++)if(arr[i][j]>max)max=arr[i][j];return(max);}第八章編譯預(yù)解決(1)#defineMOD(a,b)(a%b)main(){inta,b;printf(“inputtwointegera,b:”);scanf(“%d,%d”,&a,&b);printf(“amodbis:%d\n”,MOD(a,b));}(2)#defineswap(x,y){intt;t=x;x=y;y=t;}main(){inti,a[10],b[10];for(i=0;I<10;i++)scanf(“%d”,&a[i]);for(i=0;i<10;i++)scanf(“%d”,&b[i]);for(i=o;i<10;i++)swap(a[i],b[i]);for(i=0;i<10;i++)printf(“%d”,a[i]”);printf(“\n”);for(i=0;i<10;i++)printf(“%d”,b[i]);}第九章指針(1)#include“stdio.h”main(){staticcharx[]=“computer”;char*p;for9p=x;p<x+7;p+=2)putchar(*p);printf(“\n”);}(2)#include<stdio.h>main(){intb[10],position,mun,k,*q1,*q2,temp;printf(“Input10sortedmunbers:\n”);for(k=0;k<10;k++)scanf(“%d”,&b[k]);printf(“\nI(lǐng)nputtheposition:\n”);scanf(‘%d”,&position);printf(“Inputthenumber

溫馨提示

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

評論

0/150

提交評論