C語言習題全集+答案_第1頁
C語言習題全集+答案_第2頁
C語言習題全集+答案_第3頁
C語言習題全集+答案_第4頁
C語言習題全集+答案_第5頁
已閱讀5頁,還剩128頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

TOC\o"1-1"\h\z\u第一單元程序設(shè)計和C語 第二單元順序程序設(shè) 第三單元分支程序設(shè) 第四單元循環(huán)程序設(shè) 第五單元數(shù) 第六單元函 第七單元指 第八單元結(jié)構(gòu)體和共用 第九單元文 附加 模擬試卷 模擬試卷 模擬試卷 第一單元C語言的基本構(gòu)成單位是 A.函 B.函數(shù)和過 C.超文本過 D.子程一個C語言程序總是從 開始執(zhí)行。A.主過 B.主函 C.子程 D.主程C語言的程序一行寫不下時,可 A.用逗號換 B.用分號換 C.在任意一空格處換 D.用回車符換以下敘述不正確的是 C;aCa=10CC以下不正確的C語言標識符 A. B. C. D.下列字符串是標識符的是 A. B. C. D.LINE以下說法中正確的是 CCmain()Cmain()Cmain()不合法的常量是 A. B. C. D.已知各變量的類型說明如下,則以下不符合C語言語法的表達式是: intk,a,b;unsignedlongw=5;doublex=1.422;A.x%(- B.w+=- C. D.在C語言中,字符型數(shù)據(jù)在內(nèi)存中 形式存放A.原 B.BCD C.反 D.ASCII若有定義:inta=7;floatx=2.5;y=4.7;則表達式x+a%3*(int)(x+y)%2/4的值是: A. B. C. D.設(shè)有說明:charw;intx;floaty;doublez;則表達式w*x+z-y值的數(shù)據(jù)類型為: A.float B.char C.int D.double B. C. D.若x為int型變量,則執(zhí)行以下語句后,x的值為 x=6;x+=x-=x*x;A. B.- C. D.-字符串"\\\"ABC\"\\"的長度 A. B. C. D.一個函數(shù)由兩部分組成,它們 一個C源程序至少包含一 , 設(shè)inta=12;則表達式a/=a+a的值 表達式x=(a=3,6*a)和表達式x=a=3,6*a分別是 兩個表達式執(zhí)行完的結(jié)果分別是 和 ,x值分別是 在C語言中,實數(shù)有兩種表示形式, 在C語言中,運算符的優(yōu)先級最小的 運算符第二單元若m為float型變量,則執(zhí)行以下語句后的輸出為 printf("%-A.B.C.D.-若x,y,z均為int型變量,則執(zhí)行以下語句后的輸出為 A.X=10,Y=15,Z=10 B.X=10,Y=10,Z=10 C.X=10,Y=15,Z=10 D.X=10,Y=10,Z=10 xint,yfloatscanf則為了將數(shù)據(jù)10和66.6分別賦給x和y,正確的輸入應(yīng)是 x=10,y=66.6<回車 B.1066.6<回車C.10<回車>66.6<回車 D.x=10<回車>y=66.6<回車已知有變量定義:inta;charc;用scanf(“%d%c”,&a,&c);語句給a和c輸入數(shù)據(jù),使30存入a,字符‘b’存入c,則正確的輸入是: 30’b’<回車 B.30b<回車C.30<回車>b<回車 D.30b<回車已知有變量定義:doublex;longa;要給a和x輸入數(shù)據(jù),正確的輸入語句 。若要輸出a和x的值,正確的輸出語句 B. C. D. 若有定義doublex=1,y;則以下的語句執(zhí)行的結(jié)果是 y=x+3/2;printf(“%f”,y); 若a為整型變量,則以下語句 a=-2L;printf("%d\n",a);A.賦值不合 B.輸出為不確定的 C.輸出值為- D.輸出值為{intx,y;執(zhí)行時輸入{intx=4,y=0,z;{floatx;inti;x=3.6;i=(int)x;{inta%=4-1;printf("%d,",a);a+=a*=a-=a*=3;printf("%d",a);{int{charc1=’6’,c2=’0’;{intx,y,z;x=y=1;z=++x-1;在C語言中字符型數(shù)據(jù)和整型數(shù)據(jù)之間可以通用一個字符數(shù)據(jù)既能以 "%-ms"表示如果串長小于m,則在m列范圍內(nèi),字符串 靠 補空格printf函數(shù)的“格式控制”包括兩部分,它們 #include<stdio.h>void floatprintf(“pleaseinputlengthandwidthoftherectangle\n”); 編寫程序,輸入一個數(shù)字字符(‘0’~‘9’)c,cn,如:字符‘0’0。請?zhí)羁?。void char printf(“pleaseinputachar:\n”); ,c,n);c=(f- (攝氏溫度 f測試數(shù)據(jù):①f=34②寫一個程序把極坐標(r,θ)(θ之單位為度)轉(zhuǎn)換為直角坐標(X,Y)。轉(zhuǎn)換公式是:測試數(shù)據(jù):①r=10②r=201+2+3=6第三單元若x=0,y=3,z=3,以下表達式值為0的 A. B.x<y? C. D.以下運算符中優(yōu)先級最低的運算符 ,優(yōu)先級最高的 A. B. C. D. E. F.若w=1,x=2,y=3,z=4,則條件表達式w<x?w:y<z?y:z的結(jié)果為 。A. B. C. D.若w,x,z均為int型變量,則執(zhí)行以下語句后的輸出為 A.分析以下程序,下列說法正確的是 {intif(x=a+b)printf("****\n"); printf("####\n");A.有語法錯,不能通過編 B.通過編譯,但不能連C.輸出*** D.輸出###分析以下程序,下列說法正確的是 {intif(x=a+b)printf("****\n"); printf("####\n");A.有語法錯,不能通過編 B.通過編譯,但不能連C.輸出*** D.輸出###分析以下程序,下列說法正確的是 {intif(x=a+b)printf("****\n"); printf("####\n");A.有語法錯,不能通過編 B.通過編譯,但不能連C.輸出*** D.輸出###分析以下程序,下列說法正確的是 {intif(x==a+b)printf("****\n"); printf("####\n");A.有語法錯,不能通過編 B.通過編譯,但不能連C.輸出**** D.輸出####二、讀程序?qū)懡Y(jié)果include{inta=-1,b=4,k;{intx=4,y=0,z;{intx,y,z;x=3;printf("%d",z>=y&&y>=x);{intx=1,y=1,z=10;if(y>0)x=3;elsex=5;if(z=y<0)x=3;elseif(y==0)x=5;elsex=7;{charx=‘B’;{case‘A’:printf(“Itiscase‘B’:printf(“Itiscase‘C’:printf(“ItisC.”);default:printf(“other.”);{intx=1,y=0,a=0,b=0;{case1:{case0:a++;break;case1:case2:case3:

若a=5,b=6,c=7,d=8,則表達式d=a/2&&b==c||!a的值 定義intx=10,y,z;執(zhí)行y=z=x;x=y==z后,變量x的值為 x,yy,其中:x<0y=2x+3#include<stdio.h>intx,y; y=0; y=(x+7)/3;(2)printf("Pleaseenter3reals:\n");if((3){s=(4);printf("\nAreaofthetriangleisprintf("Itisnot有一方程ax2+bx+c=0,a,b,c的值由鍵盤輸入,請編程序,打印出以下情況時方程的a≠0,b2-a≠0,b2-#include"math.h"{float{if((1)printf("onlyonesolutionx=%f\n",-c/b);if((2))printf("nosolution\n");elseprintf("xisanyvalue\n");{d=b*b-4*a*c;if((3)){x1=(-b+sqrt(d))/(4)x2=(-b-sqrt(d))/(5);printf("x1=%6.2f,x2=%6.2f\n",x1,x2);{pr=-b/(2*a);(6)printf("x1=%6.2f+%6.2fi\n",pr,pi);printf("x2=%6.2f-Y、y,N、n,losecharc; casecase‘y’:printf(“agree”); case‘N’:case‘n’: y(xsin(x)cos( (xy sin(x)cos(

(x a、b、c,17:Monday、Tuesdayswitch給出一百分制成績,要求輸出成績等級‘A’,‘B’,‘C’,‘D’,‘E’,90分以上 40x

(0x(15x50y40

(x20(x

(30x(45x6010(x

(75x

yx第四單元 intk=5;k--循環(huán)執(zhí)行5 B.循環(huán)是無限循C.循環(huán)體語句一次也不執(zhí) D.循環(huán)體語句執(zhí)行一設(shè)i和x都是int類型,則for循環(huán)語句 for(i=0,x=0;i<=9&&x!=876;i++)scanf("%d",&x);最多執(zhí)行10 B.最多執(zhí)行9C.是無限循 D.循環(huán)體一次也不執(zhí)下述for循環(huán)語句 inti,k;for(i=0,k=-1;k=1;i++,k++)printf("***判斷循環(huán)結(jié)束的條件非 B.是無限循C.只循環(huán)一 D.一次也不循 intk=-20;while(k=0)while循環(huán)執(zhí)行20 B.循環(huán)是無限循C.循環(huán)體語句一次也不執(zhí) D.循環(huán)體語句執(zhí)行一下列程序段執(zhí)行后k值為 intk=0,i,j;k=k+1A. B. C. D. #include<stdio.h>intk=2,;if(k%2){k=k+3;printf(“k=%d\n”,k);continue;}A.k=k+3;執(zhí)行一 B.k=k+1;執(zhí)行2C.執(zhí)行后k值為7 D.循環(huán)體只執(zhí)行一次二、讀程序?qū)懡Y(jié)果{intnum=0;{num++;{inti=0,s=0;{s+=i*2+1;printf("i=%d,s=%d\n",i,s);i++;} #include<stdio.h>{intfor(i=5;i>=1;i--指出下面三個程序的功能,當輸入為:"quert?"⑴#include<stdio.h>{charc;while(c!='?'){putchar(c);⑵#include<stdio.h>{charwhile((c=getchar())!='?')⑶#include<stdio.h>{while #include<stdio.h>{int{

{inta,b;{if(b>10)break;{b+=3;{inti=1;while(i<=15)if(++i%3!=2)continue;elseprintf("%d",i);#include<stdio.h>voidmain(){inti,j;{for(j=0;j<=i;j++){inti,j,k;charspace='';for{for(j=1;j<=i;j++)printf("%c",space);for(k=0;k<=5;k++)printf("%c",'*'); #include<stdio.h>{intfor{iffor if(!(j%i)) if(i>=j-1){break語句只能用 語句 語句中inti, 求滿足下式的XY+YZ53{intx,y,z,i,result=532;for(x=1; ;x++)for(y=1; ;y++)for( {i=(5)if(i==result)printf("x=%d,y=%d,求Sn=a+aa+aaa+...+aa...aa2+22(n=4),n{inta,n,count=1,Sn=0,Tn=0;printf("an:\n");while Tn= 一球從100米高度自由落下,每次落地后反跳回原來高度的一半,再落下,求它在{floatSn=100.0,hn=Sn/2;intn;for(n=2;n<= {Sn= ;hn= ;}

******************{intfor(i=0;i<= ;i++){for(j=0;j<=2-i;j++)printf("for(k=0;k<= ;k++)printf("*"); for{for(j=0;j<= printf("for(k=0;k<= 10inti,j,station,total=0;for for(j= printf("車票種類=%dn求1100用循環(huán)語句編寫求20212223...263 n!(即求1!+2!+3!+...+20!)235813

,,, ,求出這個數(shù)列的前20項之和12358任意十個數(shù),打印出它們中的最大數(shù)、最小數(shù)。測試數(shù)據(jù):①1,-12,20,30,-5,-23,33,125,200,-100②0,10,3,1,5,6,-10,90,9,-③12,13,14,15,10,-10,-11,-12,-1-1001-100輸入兩個正整數(shù)mn,提示:求m,n的最大公約數(shù):首先將m除以n(m>n)得余數(shù)R,再用余數(shù)R去除原來的除數(shù),得新的余數(shù),重復(fù)此過程直到余數(shù)為0mn的最大公約數(shù)。求m和n的最小公倍數(shù):m和n的積除以m和n的最大公約數(shù)。測試數(shù)據(jù):m=12,m=100,打印出所有的“水仙花數(shù)”,所謂“水仙花數(shù)”是指一個三位數(shù),其各位數(shù)字立方一個數(shù)恰好等于它的平方數(shù)的右端,這個數(shù)稱為同構(gòu)數(shù)。如525,52551~1000方,即(30+25),3025136213*62=31*26。編程序求共有多少對這種性質(zhì)的兩位數(shù)(個位與十位相同的不在11、22,重復(fù)出現(xiàn)的不在此列,如13*6262*13)。一個數(shù)如果恰好等于它的因子之和,這個數(shù)就稱為“完數(shù)”。例如,612、3,6=1+2+3,61000 itsfactorsare4給出一個不多于4位的正整數(shù),要求:①求出它是幾位數(shù)②分別打印出每一 ③按逆序打印出各位數(shù)字。0.1,0.01,0.001,0.0001,0.00001(24)(46)(68)...(

2n2

2n

2n提示:本題中誤差指前n+1項之積與前nsinx

(2n測試數(shù)據(jù):①x=0.3,②x=0.5,驗證歌德巴赫猜想。一個充分大的偶數(shù)(大于或等于6)可以分解為兩個素數(shù)之和。試編程序,將650用牛頓迭代法求方程在1.5(精度為105)2x34x23x6A、B、CX、YZ已知抽簽決定比賽名單。有人向隊員打聽比賽的名單,AXC和X、Z第五單元數(shù)以下關(guān)于數(shù)組的描述正確的 在定義inta[10];之后,對a的引用正確的 A. B. C. D.a[10-以下能正確定義數(shù)組并正確賦初值的語句 int B.intC.int D.int以下不能正確賦值的 char B.charC.chars3[20]= D.chars4[4]={ chars[18]="abook!";A.a a C.a D. chars[12]="Abook";A. B. C. D.在執(zhí)行inta[][3]={1,2,3,4,5,6};語句后,a[1][0]的值 A. B. C. D.#include<stdio.h>voidmain()inta[i]+=a[i-1]+a[i-2];#include<stdio.h>voidmain()floatinti;#include<stdio.h>voidmain() intwhile(i<7&&{k=k+p[i];void intintsum=0,i,j;for(i=0;i<3;i++)for{a[i][j]=i+j;if(i==j)void inta[4][4],i,j,k;for(i=0;i<4;i++)for(j=0;j<4;j++)for{for #include<stdio.h>{intcharprintf("inputstring1:\n");gets(s1);printf("inputstring2:\n");gets(s2);while((s1[i]==s2[i])&&(s1[i]!='\0'))if((s1[i]=='\0')&&(s2[i]=='\0'))s=0;elses=s1[i]-s2[i]; voidcharch[3][5]={#inlcude<stdio.h>#include<string.h>voidmain()charstr[10][80],c[80];inti;構(gòu)成數(shù)組的各個元素必須具有相同 下面的程序是輸出數(shù)組中最大元素的下標(pvoidmain()ints[]={1,-3,0,-9,8,5,-if(s[i]>s[p]) 20#include<stdio.h>voidfloata[20],pjz=0,s,t;inti,k; if(fabs(a[i]-pjz)<s 3{charintfor for ;y++) if 將一個數(shù)組中的元素按逆序重新存放。例如原來的順序為:8,5,7,4,1,要求改為:1,4,7,5,8#defineN7 intfor(k=0;k<N;k++)for {s=a[k];a[k]= ; =s;for 的字符以字符形式輸入(如輸入aa)。#include<stdio.h>voidmain() charstr1[100],str2[100];charch;inti=0,k=0;printf(“pleaseinputansentence:\n”);for if{str2[ ]=str1[i];k++;} 10#include<stdio.h>#include<string.h>#defineN10void{charstr[20],s[N][20];inti;for(i=0;i<N;i++)gets( if( >0)strcpy(str,s[i]);printf("Thelongeststringis:\n%s\n",str);某人有四張35{staticinta[27];inti,j,k,s,n=0;for(i=0;i<=4;i++)for{ forif(s==a[k]) if( {a[k]=s;printf("%dfor #defineN10#defineM10{intintprintf("\nprintf("\nfor(i=0;i<n;i++)forscanf("%d", );for(i=0;i<n;i++){for(j=0;j<m;j++) ;for{max= for(j=1;j<m;j++)if(a[i][j]>max)max=a[i][j];for(j=0;j<m;j++){if{for(k=0,flag1=1;k<n&&flag1;k++)if( )flag1=0;if{printf("第%d行,第%d列的%d是鞍點\n", );ifprintf("\nN有NNN10用篩選法求21002223355K(N),留下的未被篩去的數(shù)就是2N求一個3×3(每個元素只加一次) 10輸出前10行,從0 a0(由小到大排序,用起泡法)。a[i][0]a[i+1][0],ii+1編程序?qū)⒁粋€字符串的前N\0'(strcpy(str1,str2,n)函數(shù)) 將字符數(shù)組A(0,2,4,6,8...)的元素值傳給另一個字符數(shù)組B,然后將B 有N(用起泡排序法) 打印所有不超過n(n<256)的其平方具有對稱性的數(shù)(也稱回文數(shù))N(次大值一定存在) 找出M×N數(shù)組中所有不相鄰元素,并求出它們的和(相鄰的數(shù):前一個是偶數(shù), 1001~1001,2,3,4兩個數(shù)之和都是素數(shù),即→1→2→3→4→,問1~100n1~(≤100)能滿足上述要求的最大的n8135491到N2的自然數(shù)構(gòu)成的魔方陣。⑴將“1”⑵從“2”開始直到n×n為止各數(shù)依次按下列規(guī)則存放:每一個數(shù)存放的行比前一個⑶如果上一個數(shù)的行數(shù)為1,則下一個數(shù)的行數(shù)為n(指最下一行⑷當一個數(shù)的列數(shù)為n,下一個數(shù)的列數(shù)應(yīng)為1,行數(shù)減1n n×n(列上均無重復(fù)數(shù)。如n=55×515242345415352313412該數(shù)組的第一行1,5,2,4,31,5,2,4,3,第一行填寫完畢后,即以第一行作為全方陣索引,即若第一行中的第i列的元素值為j,則j在各行中的列號即為從第一行中元素值為i的那一列開始讀出的n個自然數(shù)(到行末則從行頭接著讀),例如第一行第2列的元素值為5,則從元素值為2的那一列(第3列)開始讀出2,4,3,1,5,這就是元素5在各行中的列標號。測試數(shù)據(jù):① ②第六單元函在C語言中,當函數(shù)調(diào)用 A. B. C. D.如果在一個函數(shù)的復(fù)合語句中定義了一個變量,則該變 C語言允許函數(shù)值類型缺省定義,此時該函數(shù)值隱含的類型 A.float B.int C.long D.doubleC語言規(guī)定,函數(shù)返回值的類型是 return在C語言程序中,以下描述正確的 以下敘述中正確的 靜態(tài)(static)autostaticvoidsub(ints[],int{staticintt=3;{inta[]={1,2,3,4},i,x=0; {intw=5;fun(w);printf("\n");}fun(intk){if(k>O)fun(k-1);printf("%d",k);A)5432 B)01234 C)1234 D)54321以下所列的各函數(shù)首部中,正確的 A)voidplay(vata:Integer,var B)voidplay(intC)voidplay(inta,int D)Subplay(aasinteger,bas當調(diào)用函數(shù)時,實參是一個數(shù)組名,則向函數(shù)傳送的 在調(diào)用函數(shù)時,如果實參是簡單變量,它與對應(yīng)形參之間的數(shù)據(jù)傳遞方式 A)地址傳 B)單向值傳C)由實參傳給形,再由形參傳回實參D) fun(floatx){floaty;return B)不確 fun1(inta,int{inta+=a;b+=b;c=fun2(a,b);returnc*c;fun2(inta,int{intc;returnc;{intprintf("Thefinalresultint{{x=x*x*x;#includelongfun(int{longs;returns;{{inti;{intx=0;staticinty=0;x++;y=y+2;{intp=func(k,m);printf("%d,p=func(k,m);func(inta,int{staticintm=0,i=2;i+=m+1;m=i+a+b;returnm;intt(intx,inty,intcp,int{cp=x*x+y*y;dp=x*x-{inta=4,b=3,c=5,d=6;fun(intx,inty,int{int inta,b;void{a=100;b=200;{inta=5,b=7; intx=3;{intfor(i=1;i<x;i++){staticintx=1;intfunc(int{return(a+b);}{intx=2,y=5,z=8,r;longfib(int{if(n>2)return(fib(n-1)+fib(n-2));elsereturn(2);{intprime(intm){intfor(i=2;(1);i++)if(m%i==0)if(m==1)(2){inta[20],i,sum=0;{scanf("%d",&a[i]);sum=(3)printf("thenumberofprimedatavoidfltj(charstr[],int{intll,i;ll=(1)for{if((2))elseif((3))elseif((4))a[2]++;elsea[3]++;{staticcharstr[60];staticinta[4]={0,0,0,0};printf("%schar:%ddigit:%dspace:%dother:%d", ((2n1)x

(x)(n1)

(x))/

(n(n(n{floatpn();floatx,lyd;intn;lyd=(1)floatpn(floatx,int{floatif(n==0)temp=(2)elseif(n==1)temp=(3)elsetemp=(4)doublefun(doublex,inty){inti;doublez:for(i=1,z=x;i<y;i++)z=z* return31100(判素數(shù)由函數(shù)實現(xiàn))寫一函數(shù),使給定的一個二維數(shù)組(3×3)strcatstrlens1s2strcpy立方和等于該數(shù)本身。例如153153=1353335×6mn55第七單元指1、若有以下定義和語句,且0≤i<10則對數(shù)組元素的錯誤引用是 inta[10]={1,2,3,4,5,6,7,8,9,10},*p,i;A.*(a+i) B.a[p-a] C.p+i D.*(&a[i])2、若有定義:inta[3][4];, 不能表示數(shù)組元素a[1][1]。A. B. C. D.3、對如下定義,以下說法中正確的 char*a[2]={a"abcd"和aa44a’a’、’A’的地址char*s="\t\\Name\\Address\n";指針s所指字符串的長度為: A.說明不合 B. C. D.5、分析下面函數(shù),以下說法正確的是 swap(int*p1,int*p2){int*p=*p1;*p1=*p2;交換*p1和*p2的 B.正確,但無法改變*p1和*p2的C.交換*p1和*p2的地址 D.可能造成系統(tǒng)故障,因為使用了空指針6、設(shè)有說明int(*ptr)[M];其中ptr是 A.MBMCMD.具有M個指針元素的一維指針數(shù)組,每個元素都只能指向整型量7、在說明語句:int*f();中,標識符代表的是: A.一個用于指向整型數(shù)據(jù)的指針變 B.一個用于指向一維數(shù)組的指C.一個用于指向函數(shù)的指針變量 D.一個返回值為指針型的函數(shù)名8、若intx,*pb;,則正確的賦值表達式是 A. B. C.*pb=&x;D.9int*p,a=10,b=1;p=&a;a=*p+b;執(zhí)行該程序段后,a的值 A. B. C. D.10doubler=99,*p=&r*p=r則以下正確的敘述 A.以下兩處的*p含義相同,都說明給指針變量pB.在"doubler=99,*p=&r;"中,把r的地址賦值給了pC.語句"*p=r;"把變量r的值賦給指針變量D.語句"*p=r;"取變量r的值放回r11、要求函數(shù)的功能是交換x和y中的值,且通過正確調(diào)用返回交換結(jié)果.能正確執(zhí)行 A.funa(int*x,int*y){int*p;*p=*x;*x=*y;*y=*p;B.fund(intx,inty){intt;t=x;x=y;y=t;C.func(int*x,int*y){D.fund(int*x,int*y){*x=*x+*y;*y=*x-*y;*x=*x-*y;}12、若有說明:long*p,a;則不能通過scanf語句正確給輸入項讀入數(shù)據(jù)的程序段 A.*p=&a;B.p=(long*)malloc(8);C.D.scanf("%ld",&a); A. B. C. D.14、若已定義:inta[9],*p=a;并在以后的語句中未改變p的值,不能表示a[1]地 A. B. C. D.15inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則數(shù)值為6的表達式是 A. B. C.*p+=5 16、設(shè)P1和P2是指向同一個int型一維數(shù)組的指針變量,k為int確執(zhí)行的語句 A. B. C. D.k=*P1*17inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;則值為3的表式是 A.p+=2, B.p+=2C.p+=3,*p++ D.p+=2,++*pinta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則不能表示a數(shù)組元素的表達式是 A.*p B.a[10] C.*a D.a[p-a]inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則數(shù)值為9的表達式是 A.*p+9 B.*(p+8) C.*p+=9 D.p+820、下面程序輸出數(shù)組中的最大值,由s指針指向該元素.void{inta[10]={6,7,2,9,1,10,5,8,4,3,},*p,*s;for(p=a,s=a;p-a<10;p++) printf("Themax:%d",*s):則在if語句中的判斷表達式應(yīng)該 A.p>s B.*p>*s C.a[p]>a[s] D.p-a>p-sinta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則不能表示a數(shù)組元素的表達式是 A.*p B.a[10] C.*a D.a[p-a]intw[2][3],(*pw)[3];pw=w;則對w數(shù)組元素非法引用是 A.*(w[0]+2) B.*(pw+1)[2]C. D.*(pw[1]+2) 是對c數(shù)組元素的正確引用。intc[4][5],(*cp)[5]cp=cA.cp+1 B.*(cp+3) C.*(cp+1)+3 D.*(*cp+2)charstr[]="Hello";char*ptr;ptr=str執(zhí)行上面的程序段后,*(ptr+5)的值 A.'o' B.'\0' C.不確定的值 D.'o'的地址 sss(char*s,char*t{while((*s)&&(*t)&&(*t++==*s++));return(*s-*t);}A.求字符串的長 B.比較兩個字符串的大C.將字符串s復(fù)制到字符串t中 D.將字符串s接續(xù)到字符串t中 A.char B.charC.char*S;S="ABCDE"; D.char*S;scanf("%S",S); intfun1(char*{char*y=x;while(*y++);A.求字符串的長 B.比較兩個字符串的大C.將字符串X復(fù)制到字符串Y D.將字符串X連接到字符串Y后面#include<stdio.h>#include<string.h>voidmain(){char*S1="ABCDEF",*s2="aB";s1++;s2++;printf("%d\n",strcmp(上面程序的輸出結(jié)果 A.正數(shù) B.負數(shù) C.零 D.不確定的值int(*ptr)(則以下敘述中正確的 A.ptrB.ptr是指向intC.ptr是指向函數(shù)的指針;該函數(shù)返回一個intD.ptr是一個函數(shù)名;該函數(shù)的返回值是指向int型數(shù)據(jù)的指針30、若有函數(shù)max(a,b),并且已使函數(shù)指針變量p指向函數(shù)max,當調(diào)用該函數(shù)時,正確的調(diào)用方法 A.(*p)max(a,b);B.*pmax(a,b);C.(*p)(a,b);D.*p(a A.p=max; B.*p=max; C.p=max(a,b); D.*p=max(a,b);32、已有定義int(*p)();指針p可以 A.代表函數(shù)的返回 B.指向函數(shù)的入口地C.表示函數(shù)的類型 D.表示函數(shù)返回值的類型fun(int*c){}voidmain(){int在必要的賦值之后,對fun函數(shù)的正確調(diào)用語句 A.a=a(w); C.b=*b(w); D.fun(b);char*aa[2]={"abcd","ABCD"}; A.aa數(shù)組成元素的值分別是"abcd"和B.aaC.aa數(shù)組的兩個元素分別存放著含有4D.aa數(shù)組的兩個元素中各自存放了字符'a'和'A'的地址 A.C語言允許mainB.C語言允許main函數(shù)帶形參,形參名只能是argc和C.當mainD.有說明:main(intargc,char*argv),則形參argc的值必須大于136、若有說明:inti,j=2,*p=&i;,則能完成i=j賦值功能的語句是 A.i=*p; B.p*=*&j; C.i=&j; D.i=**p;1#include<stdio.h>voidmain(){int*p1,*p2,*p;inta=5,b=8;p1=&a;p2=&b;if(a<b){p=p1;p1=p2;p2=p;}2voidast(intx,inty,int*cp,int{*cp=x+y;*dp=x-y;}voidmain(){inta,b,c,d;a=4;b=3;3void{intinty=1,x,*p;for(x=0;x<3;x++)y+=*(p+x);4、void{intintm,*ptr;5voidprtv(int*{void{inta=256voidfun(int*a,int*b,int{inttemp=a;a=b;*temp=*b,*b=*c;void{inta,b,c,*p1,*p2,*p3;a=5;b=7;c=3;p1=&a;p2=&b;p3=&c;7#include<stdio.h>voidmain(){staticintint*add[2][3]={*a,*a+1,*a+2,*(a+1),*(a+1)+1,*(a+1)+2};int**p,i;{printf("%d",**p);p++;}8void{char9intfa(int{returnx*x;}intfb(intx){returnx*x*x;intf(int(*f1)(),int(*f2)(),int{returnf2(x)-f1(x);}voidmain(){inti=f(fa,fb,2);10

#include<stdio.h>#include<string.h>voidmain(){charb1[8]="abcdefg",b2[8],*pb=b1+3;while(--pb>=b1)strcpy(b2,pb);11

charcchar(char{ifreturnch;void{chars[]="ABC+abc=defDEF",*p=s;{*p=cchar(*p);12

voidmain({inta[5]={2,4,6,8,10},*p,**k;p=a;k=&p;printf("%d\n",*13

funa(inta,intb){returna+b;}funb(inta,intb){returna-b;}sub(int(*t)(),intx,inty){return((*t)(x,y));}voidmain(){intx,(*p)();14

voidmain({char*s="12134211";intv[4]={0,0,0,0};intk,i;{{casecasecasecasefor(k=0;k<4;k++)15、#include"ctype.h"voidspace(char*str){inti,t;charts[81];for(i=0,t=0;str[i]!='\0'if(!isspace(*(str+i))&&(*(str+i)!='a'))ts[t++]=toupper(str[i]);ts[t]='\0';strcpy(str,ts)voidmain({chars[81]={"abcdefg"}space(s);16

sub1(chara,charb){charc;c=a;a=b;b=c;}sub2(char*a,charb){charc;c=*a;*a=b;b=c;}sub3(char*a,char*b){charc;c=*a;*a=*b;*b=c;}voidmain(){chara,ba='A';b='B';sub3(&a,&b);putchar(a);putchar(b);a='A';b='B';sub2(&a,b);putchar(a);putchar(b);a='A';b='B';sub1(a,b);putchar(a);putchar(b);17

void{charb[char*chp=&b[7];1819

voidprtv(int*{void{inta=25intvoid{inti,*p=&aa[0][0];{if(i==1)aa[i][i+1]=*p+1;else++p;20intf(intb[],int{inti,r=1;for(i=0;i<=n;i++)r=r*b[i];returnr;void{int21#definePR(ar)printf("%d",ar)voidmain(){intj,a[for(j=3;j;j--{{casecase2:PR(*p++);break;case3:PR(*(--p));22voidmain(){inta[]={1,2,3,4},ivoidsub(int*s,inty);intx=0;for(i=0;i<4;{sub(a,x);printf("%d",x)printf("\n")voidsub(int*s,int{staticintt=3;y=s[t];t--;23

#include<stdio.h>voidFUN(int*S){staticintdo{S[J]+=S[J+1];}while(void{intK,A[10]={1,2,3,4,5};for(K=1;K<3;K++)FUN(A);for(K=0;K<5;K++)24

fun(int*s,intn1,int{inti,j,ti=n1;j=n2;{t=*(s+i)*(s+i)=*(s+j)*(s+j)=ti++;j--void{inta[10]={1,2,3,4,5,6,7,8,9,0},ifun(p,0,3)fun(p,4,9)fun(p,0,9)for(i=0;i<10;i++)printf("%d",*(a+i));printf("\n");25

voidas(intx,inty,int*cp,int{*cp=x+y;*dp=x-y;}voidmain(){inta=4,b=3,c,das(a,b,&cprintf("%d26

voidfunc(int*a,intb[{b[0]=*a+6;{intaa=0;printf("%d\n",b[0]);27#include<stdio.h>sub(intx,inty,int*z){*z=y-x;}{inta,b,csub(10,5,&a)sub(7,a,&b)sub(a,b,&c)printf("%d,%d,%d\n",a,b,c)mainmaxmin#includevoidfind(int*a,int*max,int{int elseif(a[i]<a[*min]) ;{intintfind( );strcmpcompare(s1,s2)。s1=s2,0,s1≠s2,ASCⅡ碼差值("BOY"與"BAD",第二個字母不同,"O"與"A"之差為79-65=14)。如果s1>s2,則s1<s2,則輸出負值。compare(char*p1,char{intwhile((1))if(*(p1+i++)=='\0')(2) (3){intcharstr1[20],str2[20],*p1,*p2;printf("pleaseinputstringbyline:\n"); printf("theresult45(1)求第一門課的平均分;(2)2格的學(xué)生,輸出他們的學(xué)號和全部課程成績和平均成績;(3)9085{intfloatscore[4][5],aver[4],*psco,*pave;charcourse[5][10],*pcou;printf("pleaseinputthecoursenamebyline:\n");for(i=0;i<5;i++)printf("pleaseinputstunumandgrade:\n");printf("stunum:\n");{scanf("%d",pnum+i);avsco(float*psco,float{intfloatsum,average;{sum=0;sum=sum+(1); (2)avcour1(char*pcou,float{intfloatsum=0,average1;for(i=0;i<4;i++)sum=sum+(3);average1=(4);printf("thefirstcourse%s,averagefail2(char*pcou,int*pnum,float*psco,float{intprintf("stunum:");{label=0;if((5))label++;if(label>=2){printf("%- printf("%-8.2f",(6)printf("%-8.2f\n",(7)good(char*pcou,int*pnum,float*psco,float{intprintf("=======goodstudents=======\n");printf("stunum");for{for(j=0;j<5;j++) for{label=0;if(*(psco+5*i+j)>85.0)label++;{printf("%-8d",*(pnum+i));printf("%-8.2f",(8)printf("%-a123x456a,123a[0],456a[1],……。統(tǒng)計共有多少個整數(shù),并輸出這些數(shù)。{charinti,j,k,m,e10,digit,ndigit,a[10],*pa;printf("\npleaseinputthestring:\n");gets(str);i=0;while((1){if((*(pstr+i)>='0')&&(*(pstr+i)<='9'))j++;{{digit=*(pstr+i-1)-48;{for(m=1;m<=k;m++)e10=(2);digit=(3);{digit=*(pstr+i-1)-{for(m=1;m<=k;m++)e10=e10*10;(4)printf("thereare%dnumberdigit\n",ndigit);j=0;pa=&a[0];printf("%d",*(pa+j));12101010nn4main53×3610個等長的字符串。用另一函數(shù)對它們排序。然后在主函數(shù)輸出這108s2s1910NNN第八單元1、說明一個結(jié)構(gòu)體變量時系統(tǒng)分配給它的內(nèi)存 ABCD2、C語言結(jié)構(gòu)體類型變量在程序執(zhí)行期 ABCD3、設(shè)有以下說明語句structstu{inta;floatb;}stutype; A.structB.structstuC.stutypeD.ab4、程序中有下面的說明和定義structabc{intx;chary;}structabcs1,s2;則會發(fā)生的情況 A.BCD5、有如下定義structperson{charname[9];intstructpersonclass[10]={"Johu",17,"Paul",19,"Mary",18,"Adam",根據(jù)上述定義,能輸出字母M的語句 A.prinft("B.printf("C.prinft("D.printf("%c\n",class[2].name[0]);6、下面程序的輸出是 A. B. C. D.{structcmplx{intx;inty;}cnum[2]={1,3,2,7};7structsk{inta;floatb;}data,*p若有p=&data;,則對data中的a域的正確引用是 8、當說明一個共用體變量時系統(tǒng)分配給它的內(nèi)存 ABCD9、以下對C語言中共用體類型數(shù)據(jù)的敘述正確的 ABCD.共用體類型定義中不能出現(xiàn)結(jié)構(gòu)體類型的成員10、C語言共用體類型變量在程序運行期 ABCD.沒有成員駐留在內(nèi)存中 A.enuma={one,two,three}B.enuma{one=9,two=-1,three}C.enuma={"one","two","three"}D.enuma{"one","two","three"}enumlanguage{Basic=3,Assembly,Ada=100,COBOL,F(xiàn)ortran};枚舉量Fortran的值為 A. B. C. D.13、下面對的敘述中不正確的 A.用typedefB.用typedefC.用typedefD.使用typedef有利于程序的通用和移植 A.typedefv1 B.typedefC.typedefv1intv3; D.typedefv4:int;typedef{intchar則下面敘述中正確的 A.PER是結(jié)構(gòu)體變量 B.PER是結(jié)構(gòu)體類型C.typedefstruct是結(jié)構(gòu)體類型 D.struct是結(jié)構(gòu)體類型名struck{inta;floatb;}data;int若要使P指向data中的a域,正確的賦值語句 A. B. C. D.#includestructabc{inta,b,c;};{structabcs[2]={{1,2,3},{4,5,6}};intt;printf("%d2#include<stdio.h>structstu{intnum;charname[10];intage;};voidfun(structstu*p){printf("%s\n",(*p).name);}voidmain(){structstustudents[3]={{9801,"Zhang",20},{9802,"Wang",19}{9803,"Zhao",18}3#include<stdio.h>voidmain(){enumteam{my,your=4,his,her=his+10};4#includestructst{intx;int*y;}*p;intdt[4]={10,20,30,40};structstaa[4]={50,&dt[0],60,&dt[1],70,&dt[2],80,&dt[3]};voidmain(){printf("%d,",++p-printf("%d,",(++p)-printf("%d\n",++(*p-5#include<stdio.h>unionmyun{{intx,y,z;}u;intk;}void{a.u.x=4;a.u.y=5;a.u.z=6;6#include<stdio.h>structSTU{charnum[10];floatscore[3];};voidmain(){structSTUinti;floatsum=0;7#include<stdio.h>#include<stdlib.h>structNODE{intnum;structNODE*next;};voidmain(){structNODEp=(structNODE*)malloc(sizeof(structNODE));q=(structNODE*)malloc(sizeof(structNODE));r=(structNODE*)malloc(sizeof(structNODE));p->num=10;q->num=20;r->num=30;8#include<stdio.h>typedefunionstudent{charname[10];longsno;charfloat}void{STU在C語言中,要定義一個結(jié)構(gòu)體類型的變量,可采用三種方法,即 {struct{intre;ints.re=(1);s.im=(2) p.re=(3);n(num),姓名(name[20]),性別(sex),年齡(age),三門課的成績(score[3])mainn個學(xué)生的數(shù)據(jù),然后調(diào)用一個函數(shù)count,在該函數(shù)中計算出每個學(xué)生的總分和平均分,然后打印出所有各項數(shù)struct{intcharname[20];charsex;intfloatscore[3];floattotal;floatave;voidcount( b[],intn){inti,j;{(2)b[i].total=(3);(4)void{inti;flaot(5)structstudenta[3];{scanf("%d%s%c%d%f%f%f",&a[i].num,a[i].name,&a[i].sex,printf("%d%s%c%d%4.1f%4.1f%4.1f\n",a[i].num,a[i].name,printf("NOnamesexagescore[0]score[1]score[2]totalave\n");printf("%d%s%c%d%5.1f%5.1f%5.1f%5.1f%5.1f\n",將上題改為用指針方法處理,即用指針變量逐次指向數(shù)組元素,然后向指針變量所指countcountmainmainstruct{intcharname[20];charsex;intfloatscore[3];floattotal;floatave;voidcount((1),int{intfor((2){(3)b->total=(4);{intfloats0,s1,s2;structstudent*p;{scanf("%d%s%c%d%f%f%f",&p->num,p->name,&p->sex,&p->age,&s0,&s1,&s2);p->score[0]=s0;p->score[1]=s1;p->score[2]=s2;printf("%d%s%c%d%4.1f%4.1f%4.1f\n",p->num,p->name,p->sex,(5)printf("NOnamesexagescore[0]score[1]score[2]totalave\n");for((6))printf("%d%s%c%d%5.1f%5.1f%5.1f%5.1f%5.1f\n",p->num,{struct{intcharname[20];floatscore;structstudentstu[4];structstudent*p;int for((2){scanf("%d%s%f",&p->num,p->name,&s0);for((3);i<4;i++)(4)printf("NO:%d\nname:%s\nscore:%4.1f\n",p->num,p->name,p-(要struct{intcharname[10];floatscore;intn=4;{(1)structstudent*p[4],*pp;inti,j;(2)printf("%4d%-10s%7.1f\n",stu[i].num,stu[i].name,stu[i].score);if((3)){pp=p[i];p[i]=p[j];p[j]=pp;}for((4))printf("%4d%-10s%7.1f\n",p[i]->num,p[i]->name,p[i]->score);天曬網(wǎng)”,問這個人在以后的某一天中是在“打魚”,還是在“曬網(wǎng)”。199011410040055根據(jù)余數(shù)判斷他是在“打魚”還是在“曬網(wǎng)”;若余數(shù)為1、2、3,則他是在打魚,否則struct{intyear;intmonth;intday;{structdatetoday,term;intyearday,year,day;{term.year=year;yearday+=days(term);}yearday+=(1);day=(2)if(day>0&&day<4)printf("hewasfishingatthat printf("hewassleepingatthatdays(structdate{staticintinti,lp; a,b個鏈表合并,按學(xué)號升序排列。#include"stdio.h"#defineNULL0#defineLENsizeof(structstudent)structstudent{longnum;int *next;structstudentlistA,listB;intn,sum=0;{(2)structstudent*insert();voidprint();structstudent*ahead,*bhead,*abh;intgs=0;structstudent{structstudent*p1,*p2,*head;p1=p2=(structstudent*)malloc(LEN);while(p1-{(3)elsep2->next=p1;p1=(structstudent*)malloc(LEN); *insert(structstudent*ah,structstudent*bh){structstudent*pa1,*pa2,*pb1,*pb2;{while((pb1->num>pa1->num)&&(pa1-{pa2=pa1;while(pb1->num<=pa1-{if(ah==pa1)ah=pb1;elsepa2-pb1=pb1->next;pb2->next=pa1;pa2=pb2;pb2=pb1;if(pb1==NULL&&pa1->next!=NULL){pa2=pa1;pa1=pa1-voidprint(structstudent{structstudent*p;doprintf("%ld%d\n",p->num,p->score);a,bab#defineLA#defineLB#defineNULL0struct{charnum[6];charstructstudent{structstudentstructstudentintstructstudent*p,*p1,*p2,*pt,*head1,*head2;{p1-printf("%8s%8s\n",p->num,p- {p=p2;p2->next=b+i; (3){(4)head1=p1-p->next=p1- {printf("%7s%7s\n",p1->num,p1->name);#defineNULL0structline{int(1){intstructline*p1,*p2,*head,*new,*newhead;p1=p2=head=(structline*)malloc(sizeof(structline));while(p1-{p1=(structline*)malloc(sizeof(structline));if(p1->num==0)p2->next=NULL;{(2);p2=p1;(3);do{p1=p1-{while(p1-{p2=p1;p1=p1->next;}if(i==0)newhead=new=p1;elsenew=new->next=p1;p1=(4){printf("%4d",p1->num);p1=p1->next;}型定義一個結(jié)構(gòu)體數(shù)組,從鍵盤輸入每個結(jié)構(gòu)體元素所需的數(shù)據(jù),然后逐個輸出這些有一批圖書,每本書有:書名(name),作者(author)(num),出版日期(date)四個131、2、3“3”者退出圈子。找80設(shè)鏈表中每個結(jié)點包括學(xué)號、成績、和指針三個字段,試編程序打印出鏈表中第1,3,5,7...第九單元文若fp是指某文件的指針,且已讀到文件的末尾,則表達式feof(fp)的返回值 A. B. C.非零 D.C語言可以處理的文件類型 文本文件和數(shù)據(jù)文 B.文本文件和二進制文C.數(shù)據(jù)文件和二進制文 D.數(shù)據(jù)代碼文C語言庫函數(shù)fgets(str,n,fp)的功能 fpnstrfpn-1strfpnstrstrnfp函數(shù)rewind的作用 在執(zhí)行fopen函數(shù)時,若執(zhí)行不成功,則函數(shù)的返回值 A. B. C. D.在C程序中,可把整型數(shù)以二進制形式存放到文件中的函數(shù) A.fprintf函 B.fread函 C.fwrite函 D.fputc函#include<stdio.h>{FILE*fpcharch,fname[10];if {printf("connotopen\n");while((ch=getchar())!='#') ;f1.datf2.dat#include<stdio.h>{FILE*fp1,*fp2;charc;if {printf("connotopen\n");if {printf("connotopen\n");while {fputc(c,fp2); worker2.rec(即第1,3,5,...號職工的數(shù)據(jù))#include<stdio.h>struct{intcharcharsex;intage;int}worker[10];{intFILEif {printf("connotopen\n");for { printf("%5d%-10s%-5c%5d%5d\n",worker[i].num,#includemain(intargc,char{FILE*fp;intk,m;charc;if((fp=fopen(argv[1],"r"))== ){printf("connotopen%s\n",argv[1]);while(fscanf(fp,"%c",&c)!=(2){if( )if(c==46) ;10f3.datf3.dat10worker1.rec出來(用freadfwrite)。將存放在worker1.rec中的職工數(shù)據(jù)按工資高低排序,將排好序的各記錄存放在worker2.recfreadfwrite)。scanf5(包括:學(xué)生名、學(xué)號、三門課程的分數(shù)),然后求出平均分數(shù)。用fprintf函數(shù)輸出所有信息到磁盤文件stud.rec中,再用fscanfstud.rec在文件worker2.rec中插入一個新職工的數(shù)據(jù),并使插入后仍保持原來的順序(按工資高低順序插入到原有文件中),worker3.recworker2.rec(freadfwrite(a1.dat"abort",a2.dat中放"boy")a3.dat編程序求5X+2Y+Z=50的所有非負整數(shù)解。有一長度不大于40的字符串,已知其中包含兩個字符“A”,求處于這兩個字符“A”中間的字符個數(shù),并把這些字符依次打印出來。25A、B、C、···、X、Y按如下要求打印出來:從最中間的字母M開始打印,然后一左一右依次打印出其它字母,即MLNKO,...。要求:初始化時按字母表順序賦值。編一個程序,把一批非零整數(shù)中的偶數(shù)、奇數(shù)的平均值分別計算出來。用零作為終止標記。某單位排隊形,開始排成3路縱隊,末尾多出了2人。后改

溫馨提示

  • 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

提交評論