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

下載本文檔

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

文檔簡(jiǎn)介

【精品文檔】如有侵權(quán),請(qǐng)聯(lián)系網(wǎng)站刪除,僅供學(xué)習(xí)與交流精品文檔C語言習(xí)題全集+答案 目錄 第一單元程序設(shè)計(jì)和C語言 1第二單元順序程序設(shè)計(jì) 3第三單元分支程序設(shè)計(jì) 7第四單元循環(huán)程序設(shè)計(jì) 14第五單元數(shù)組 23第六單元函數(shù) 34第七單元指針 42第八單元結(jié)構(gòu)體和共用體 61第九單元文件 78附加題 82模擬試卷一 102模擬試卷二 108模擬試卷三 114第一單元程序設(shè)計(jì)和C語言選擇題C語言的基本構(gòu)成單位是:A。A.函數(shù) B.函數(shù)和過程 C.超文本過程 D.子程序一個(gè)C語言程序總是從B開始執(zhí)行。A.主過程B.主函數(shù)C.子程序D.主程序C語言的程序一行寫不下時(shí),可以C。A.用逗號(hào)換行 B.用分號(hào)換行 C.在任意一空格處換行 D.用回車符換行以下敘述不正確的是:C。A.在C程序中,語句之間必須要用分號(hào)";"分隔B.若a是實(shí)型變量,C程序中a=10是正確的,因?yàn)閷?shí)型變量中允許存放整型數(shù)C.在C程序中,無論是整數(shù)還是實(shí)數(shù)都能正確無誤地表示D.在C程序中,%是只能用于整數(shù)運(yùn)算的運(yùn)算符以下不正確的C語言標(biāo)識(shí)符是D.A.ABCB.abcC.a_bcD.ab.c下列字符串是標(biāo)識(shí)符的是:A。A._HJ B.9_student C.long D.LINE1以下說法中正確的是:C。A.C語言程序總是從第一個(gè)定義的函數(shù)開始執(zhí)行B.在C語言程序中,要調(diào)用的函數(shù)必須放在main()函數(shù)中定義C.C語言程序總是從main()函數(shù)開始執(zhí)行D.C語言程序中的main()函數(shù)必須放在程序的開始部分不合法的常量是:D。A.‘\2’ B."" C.‘3’ D.‘已知各變量的類型說明如下,則以下不符合C語言語法的表達(dá)式是:A。intk,a,b;unsignedlongw=5;doublex=1.422;A.x%(-3) B.w+=-2 C.k=(a=2,b=3,a+b) D.a+=a=+(b=4)*(a=3)在C語言中,字符型數(shù)據(jù)在內(nèi)存中以D形式存放。A.原碼B.BCD碼C.反碼D.ASCII碼若有定義:inta=7;floatx=2.5;y=4.7;則表達(dá)式x+a%3*(int)(x+y)%2/4的值是:A。A.2.500000 B.2.750000 C.3.500000 D.0.000000設(shè)有說明:charw;intx;floaty;doublez;則表達(dá)式w*x+z-y值的數(shù)據(jù)類型為:D。A.float B.char C.int D.double以下BC是不正確的轉(zhuǎn)義字符。A.'\\' B.'\' C.'081' D.'\0'若x為int型變量,則執(zhí)行以下語句后,x的值為B。 x=6;x+=x-=x*x;A.36 B.-60 C.60 字符串"\\\"ABC\"\\"的長(zhǎng)度是B。A.11B.7C.5D.3二、填空題一個(gè)函數(shù)由兩部分組成,它們是函數(shù)首部和函數(shù)體。一個(gè)C源程序至少包含一個(gè)主函數(shù),即main函數(shù)。設(shè)inta=12;則表達(dá)式a/=a+a的值是0。表達(dá)式x=(a=3,6*a)和表達(dá)式x=a=3,6*a分別是賦值表達(dá)式和逗號(hào)表達(dá)式,兩個(gè)表達(dá)式執(zhí)行完的結(jié)果分別是18和18,x值分別是18和3。在C語言中,實(shí)數(shù)有兩種表示形式,即浮點(diǎn)型和指數(shù)型。在C語言中,運(yùn)算符的優(yōu)先級(jí)最小的是逗號(hào)運(yùn)算符。

第二單元順序程序設(shè)計(jì)選擇題若m為float型變量,則執(zhí)行以下語句后的輸出為C。 m=1234.123; printf("%-8.3f\n",m); printf("%10.3f\n",m);A.1234.123B.1234.123C.1234.123D.-1234.1231234.1231234.1231234.123001234.123若x,y,z均為int型變量,則執(zhí)行以下語句后的輸出為A。 x=(y=(z=10)+5)-5; printf("x=%d,y=%d,z=%d\n",x,y,z); y=(z=x=0,x+10); printf("x=%d,y=%d,z=%d\n",x,y,z);A.X=10,Y=15,Z=10 B.X=10,Y=10,Z=10X=0,Y=10,Z=0 X=0,Y=10,Z=10C.X=10,Y=15,Z=10 D.X=10,Y=10,Z=10X=10,Y=10,Z=0 X=0,Y=10,Z=0若x是int型變量,y是float型變量,所用的scanf調(diào)用語句格式為:scanf("x=%d,y=%f",&x,&y);則為了將數(shù)據(jù)10和66.6分別賦給x和y,正確的輸入應(yīng)是:A。A.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,則正確的輸入是:D。A.30’b’<回車>B.30b<回車C.30<回車>b<回車>D.30b<回車>已知有變量定義:doublex;longa;要給a和x輸入數(shù)據(jù),正確的輸入語句是C。若要輸出a和x的值,正確的輸出語句C。 A.scanf(“%d%f”,&a,&x);B.scanf(“%ld%f”,&a,&x); printf(“%d,%f”,a,x);printf(“%ld,%f”,a,x); C.scanf(“%ld%lf”,&a,&x);D.scanf(“%ld%lf”,&a,&x);printf(“%ld,%lf”,a,x);printf(“%ld,%f”,a,x);若有定義doublex=1,y;則以下的語句執(zhí)行的結(jié)果是C。y=x+3/2;printf(“%f”,y);A.2.500000B.2.5C.2.000000D.2若a為整型變量,則以下語句C。a=-2L;printf("%d\n",a);A.賦值不合法 B.輸出為不確定的值 C.輸出值為-2 D.輸出值為2讀程序?qū)懡Y(jié)果main() {intx,y; scanf("%2d%*2d%ld",&x,&y); printf("%d\n",x+y);執(zhí)行時(shí)輸入:123456717main(){intx=4,y=0,z;x*=3+2;printf("%d",x);x*=y=z=4;printf("%d",x);2080main(){floatx;inti;x=3.6;i=(int)x;printf("x=%f,i=%d",x,i);X=3.600000,i=3main(){inta=2;a%=4-1;printf("%d,",a);a+=a*=a-=a*=3;printf("%d",a);2,0main(){intx=02,y=3;printf("x=%d,y=%%d",x,y);X=2,y=%dmain(){charc1=’6’,c2=’0printf("%c,%c,%d,%d\n",c1,c2,c1-c2,c1+c2);6,0,6,102main(){intx,y,z;x=y=1;z=++x-1;printf("%d,%d\n",x,z);z+=y++;printf("%d,%d\n",y,z); 2,1 2,2填空題在C語言中,字符型數(shù)據(jù)和整型數(shù)據(jù)之間可以通用,一個(gè)字符數(shù)據(jù)既能以字符輸出,也能以整數(shù)輸出。"%-ms"表示如果串長(zhǎng)小于m,則在m列范圍內(nèi),字符串向左靠,右補(bǔ)空格。printf函數(shù)的“格式控制”包括兩部分,它們是格式說明和普通字符。編寫程序求矩形的面積和周長(zhǎng),矩形的長(zhǎng)和寬由鍵盤輸入,請(qǐng)?zhí)羁铡?include<stdio.h>voidmain(){floatl,w;floatarea,girth;printf(“pleaseinputlengthandwidthoftherectangle\n”);scanf(“%f%f”,&l,&w);area=l*w;girth=2*(l+w);printf(“area=%f,girth=%f\n”,area,girth);編寫程序,輸入一個(gè)數(shù)字字符(‘0’~‘9’)存入變量c,把c轉(zhuǎn)換成它所對(duì)應(yīng)的整數(shù)存入n,如:字符‘0’所對(duì)應(yīng)的整數(shù)就是0。請(qǐng)?zhí)羁铡?include“stdio.h”voidmain(){charc; intn; printf(“pleaseinputachar:\n”); c=getchar(); n=c-‘0’或者c-48 printf(“%c,%d\n”,c,n);編程將華氏溫度轉(zhuǎn)換為攝氏溫度和絕對(duì)溫度的公式分別為:c=(f-32)(攝氏溫度)k=273.16+c(絕對(duì)溫度)請(qǐng)編程序:當(dāng)給出f時(shí),求其相應(yīng)攝氏溫度和絕對(duì)溫度。測(cè)試數(shù)據(jù):①f=34②f=100寫一個(gè)程序把極坐標(biāo)(r,θ)(θ之單位為度)轉(zhuǎn)換為直角坐標(biāo)(X,Y)。轉(zhuǎn)換公式是:x=r.cosθy=r.sinθ測(cè)試數(shù)據(jù):①r=10θ=45°②r=20θ=90°寫一個(gè)程序,按如下格式輸出數(shù)據(jù)。namenumbermathenglishcomputerzhanghua990180.5087.080lina990270.0080.090wanggang990387.0076.078輸入3個(gè)雙精度實(shí)數(shù),分別求出它們的和、平均值、平方和以及平方和的開方,并輸出所求出各個(gè)值。輸入一個(gè)3位整數(shù),求出該數(shù)每個(gè)位上的數(shù)字之和。如123,每個(gè)位上的數(shù)字和就是1+2+3=6。

第三單元分支程序設(shè)計(jì)選擇題若x=0,y=3,z=3,以下表達(dá)式值為0的是CA.!xB.x<y?1:0C.x%2&&y==zD.以下運(yùn)算符中優(yōu)先級(jí)最低的運(yùn)算符為E,優(yōu)先級(jí)最高的為B。A.&&B.!C.!=D.||E.?:F.==若w=1,x=2,y=3,z=4,則條件表達(dá)式w<x?w:y<z?y:z的結(jié)果為D。A.4B.3C.2D.1若w,x,z均為int型變量,則執(zhí)行以下語句后的輸出為C。 w=3;z=7;x=10; printf("%d\n",x>10?x+100:x-10); printf("%d\n",w++||z++); printf("%d\n",!w>z); printf("%d\n",w&&z);A.0B.1C.0D.0111111001110分析以下程序,下列說法正確的是D。main(){intx=5,a=0,b=0;if(x=a+b)printf("****\n");elseprintf("####\n"); A.有語法錯(cuò),不能通過編譯B.通過編譯,但不能連接 C.輸出****D.輸出####分析以下程序,下列說法正確的是C。main(){intx=5,a=0,b=3;if(x=a+b)printf("****\n");elseprintf("####\n"); A.有語法錯(cuò),不能通過編譯B.通過編譯,但不能連接 C.輸出****D.輸出####分析以下程序,下列說法正確的是D。main(){intx=0,a=0,b=0;if(x=a+b)printf("****\n");elseprintf("####\n"); A.有語法錯(cuò),不能通過編譯B.通過編譯,但不能連接 C.輸出****D.輸出####分析以下程序,下列說法正確的是C。main(){intx=0,a=0,b=0;if(x==a+b)printf("****\n");elseprintf("####\n"); A.有語法錯(cuò),不能通過編譯B.通過編譯,但不能連接 C.輸出****D.輸出####讀程序?qū)懡Y(jié)果include<stdio.h>main(){inta=-1,b=4,k;k=(a++<=0)&&(!(b--<=0));printf("%d,%d,%d\n",k,a,b);1,0,3main(){intx=4,y=0,z;x*=3+2;printf("%d",x);x*=(y==(z=4));printf("%d",x);200main(){intx,y,z;x=3;y=z=4;printf("%d",(x>=z>=x)?1:0);printf("%d",z>=y&&y>=x);01main(){intx=1,y=1,z=10;if(z<0)if(y>0)x=3;elsex=5;printf("%d\t",x);if(z=y<0)x=3;elseif(y==0)x=5;elsex=7;printf("%d\t",x);printf("%d\t",z);170main(){charx=‘B’;switch(x){case‘A’:printf(“ItisA.”);case‘B’:printf(“ItisB.”);case‘C’:printf(“ItisC.”);default:printf(“other.”);ItisB.ItisC.other.main(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;case2:a++;b++;break;case3:a++;b++;printf("a=%d,b=%d\n",a,b); a=2,b=1填空題若a=5,b=6,c=7,d=8,則表達(dá)式d=a/2&&b==c||!a的值為0定義intx=10,y,z;執(zhí)行y=z=x;x=y==z后,變量x的值為1。分段函數(shù):輸入x,計(jì)算y值,輸出y,其中:x<0y=2x+3x=0,y=0x>0,y=(x+7)/3#include<stdio.h>main()intx,y;scanf("%d",&x);if(x<0)y=2*x+3;elseif(x==0)y=0;elsey=(x+7)/3;printf(“%d”,y);由鍵盤輸入三個(gè)數(shù),計(jì)算以這三個(gè)數(shù)為邊長(zhǎng)的三角形面積。#include“math.h”main()floata,b,c,s,s1;printf("Pleaseenter3reals:\n");scanf("%f%f%f",&a,&b,&c);if((a+b>c)&&(b+c>a)&&(c+a>b)){s=(a+b+c)*0.5;s1=s*(s-a)*(s-b)*(s-c);s=sqrt(s1);printf("\nAreaofthetriangleis%f\n",s);elseprintf("Itisnottriangle!\n");有一方程a+bx+c=0,a,b,c的值由鍵盤輸入,請(qǐng)編程序,打印出以下情況時(shí)方程的解。 (1)a=0,b≠0 (2)a=0,b=0,c=0 (3)a=0,b=0,c≠0 (4)a≠0,-4ac≥0 (5)a≠0,-4ac≤0#include"math.h"main(){floata,b,c,d,pr,pi,x1,x2;scanf("%f%f%f",&a,&b,&c);printf("a=%f,b=%f,c=%f\n",a,b,c);if(a==0){if(b!=0)printf("onlyonesolutionx=%f\n",-c/b);elseif(c!=0)printf("nosolution\n");elseprintf("xisanyvalue\n");else{d=b*b-4*a*c;if(d>=0){x1=(-b+sqrt(d))/(2*a);x2=(-b-sqrt(d))/(2*a);printf("x1=%6.2f,x2=%6.2f\n",x1,x2);else{pr=-b/(2*a);pi=sqrt(-d)/(2*a);printf("x1=%6.2f+%6.2fi\n",pr,pi);printf("x2=%6.2f-%6.2fi\n",pr,pi);投票表決器:輸入Y、y,打印agree輸入N、n,打印disagree輸入其他,打印losemain()charc;scanf("%c",&c);switch(c) case‘Y’: case‘y’:printf(“agree”);break; case‘N’: case‘n’:printf(“disagree”);break; default:printf(“l(fā)ose”);編程寫一程序求y值(x值由鍵盤輸入)。輸入一個(gè)字符,判斷它如果是小寫字母輸出其對(duì)應(yīng)大寫字母;如果是大寫字母輸出其對(duì)應(yīng)小寫字母;如果是數(shù)字輸出數(shù)字本身;如果是空格,輸出“space”;如果不是上述情況,輸出“other”。有三個(gè)數(shù)a、b、c,由鍵盤輸入,輸出其中最大的數(shù)。輸入一個(gè)數(shù),判斷它能否被3或者被5整除,如至少能被這兩個(gè)數(shù)中的一個(gè)整除則將此數(shù)打印出來,否則不打印,編出程序。讀入1到7之間的某個(gè)數(shù),輸出表示一星期中相應(yīng)的某一天的單詞:Monday、Tuesday等等,用switch語句做。給出一百分制成績(jī),要求輸出成績(jī)等級(jí)‘A’,‘B’,‘C’,‘D’,‘E’,90分以上為‘A’,80~89分為‘B’,70~79分為‘C’,60~69分為‘D’,60分以下為‘E’。有一函數(shù)請(qǐng)編程序計(jì)算y的值(x的值由鍵盤輸入)。

第四單元循環(huán)程序設(shè)計(jì)選擇題程序段如下:則以下說法中正確的是:A。intk=5;do{k--;}while(k<=0); A.循環(huán)執(zhí)行5次B.循環(huán)是無限循環(huán) C.循環(huán)體語句一次也不執(zhí)行D.循環(huán)體語句執(zhí)行一次設(shè)i和x都是int類型,則for循環(huán)語句B。for(i=0,x=0;i<=9&&x!=876;i++)scanf("%d",&x); A.最多執(zhí)行10次B.最多執(zhí)行9次 C.是無限循環(huán)D.循環(huán)體一次也不執(zhí)行下述for循環(huán)語句B。inti,k;for(i=0,k=-1;k=1;i++,k++)printf("****"); A.判斷循環(huán)結(jié)束的條件非法B.是無限循環(huán) C.只循環(huán)一次D.一次也不循環(huán)程序段如下:則以下說法中正確的是:C。intk=-20;while(k=0)k=k+1; A.while循環(huán)執(zhí)行20次B.循環(huán)是無限循環(huán) C.循環(huán)體語句一次也不執(zhí)行D.循環(huán)體語句執(zhí)行一次下列程序段執(zhí)行后k值為A。intk=0,i,j;for(i=0;i<5;i++)for(j=0;j<3;j++)k=k+1; A.15B.3C.5程序段如下:則以下說法中不正確的是:D。#include<stdio.h>main()intk=2,;while(k<7)if(k%2){k=k+3;printf(“k=%d\n”,k);continue;}k=k+1;printf(“k=%d\n”,k); A.k=k+3;執(zhí)行一次B.k=k+1;執(zhí)行2次 C.執(zhí)行后k值為7D.循環(huán)體只執(zhí)行一次讀程序?qū)懡Y(jié)果main(){intnum=0;while(num<=2){num++;printf("%d\n",num);}113main(){inti=0,s=0;do{s+=i*2+1;printf("i=%d,s=%d\n",i,s);i++;}while(s<10);i=0,s=1i=1,s=4i=2,s=9i=3,s=16#include<stdio.h>main(){inti,m=1;for(i=5;i>=1;i--)m=(m+1)*2;printf("m=%d\n",m);m=4m=10m=22m=46m=94指出下面三個(gè)程序的功能,當(dāng)輸入為:"quert?"時(shí),它們的執(zhí)行結(jié)果是什么?⑴#include<stdio.h>main(){charc;c=getchar();while(c!='?'){putchar(c);c=getchar();}quert⑵#include<stdio.h>main(){charc;while((c=getchar())!='?')putchar(++c);rvsfu ⑶#include<stdio.h>main(){while(putchar(getchar())!='?');quert?#include<stdio.h>main(){inti;for(i=1;i<=5;i++){if(i%2)putchar(‘<’);elsecontinue;putchar(‘>’);putchar(‘#’);main(){inta,b;for(a=1,b=1;a<=100;a++){if(b>10)break;if(b%3==1){b+=3;continue;}printf("a=%d\n",a);a=5main() {inti=1; while(i<=15) if(++i%3!=2)continue; elseprintf("%d",i); printf("\n");258114#include<stdio.h>voidmain(){inti,j;for(i=0;i<=3;i++){for(j=0;j<=i;j++)printf("(%d,%d),",i,j);printf("\n");(0,0),(1,0),(1,1),(2,0),(2,1),(2,2),(3,0),(3,1),(3,2),(3,3),main() {inti,j,k; charspace=''; for(i=0;i<=5;i++) {for(j=1;j<=i;j++)printf("%c",space);for(k=0;k<=5;k++)printf("%c",'*');printf("\n");#include<stdio.h> main() {inti,j,k=0; for(j=11;j<=30;j++) {if(k%10==0)printf("\n"); for(i=2;i<j;i++) {if(!(j%i))break; if(i>=j-1) {printf("%d\t",j);k++;}11 13 17 19 23 29填空題switch、循環(huán)(1)s=0(2)i=i+2(1)x<=9(2)y<=9(3)z=0(4)z<=9(5)x*100+y*10+z(1)n(2)Tn+a(3)Sn+Tn(4)count++(1)10(2)Sn+hn*2(3)hn/2(1)3(2)2*i(3)printf(“\n”);(4)i(5)4-2*i(1)station(2)i+1(3)total+2break語句只能用于switch語句和循環(huán)語句中。計(jì)算2+4+6+8+...+98+100main()inti,s=0;for(i=2;i<=100;i=i+2)s+=i;求滿足下式的x,y,zXYZ+YZZ─x<=9─532main(){intx,y,z,i,result=532;for(x=1;y<=9;x++)for(y=1;z=0;y++)for(z=0;z<=9;z++){i=x*100+y*10+z+(100*y+10*z+z);if(i==result)printf("x=%d,y=%d,z=%d\n",x,y,z);求Sn=a+aa+aaa+...+aa...a之值,其中a是一個(gè)數(shù)字。例如2+22+222+2222(此時(shí)n=4),n由鍵盤輸入。main(){inta,n,count=1,Sn=0,Tn=0;printf("請(qǐng)輸入a和n的值:\n");scanf("%d,%d",&a,&n);while(count<=n){Tn=Tn+a;Sn=Sn+Tn;a=a*10;count++;printf("a+aa+aaa+...=%d\n",Sn);一球從100米main(){floatSn=100.0,hn=Sn/2;intn;for(n=2;n<=10;n++){Sn=Sn+hn*2;hn=hn/2;}printf("第10次落地時(shí)共經(jīng)過%f米\n",Sn);printf("第10次反彈%f米\n",hn);打印出以下圖形main(){inti,j,k;for(i=0;i<=3;i++){for(j=0;j<=2-i;j++)printf("");for(k=0;k<=2*i;k++)printf("*");printf(“\n”);for(i=0;i<=2;i++){for(j=0;j<=i;j++) printf("");for(k=0;k<=4-2*i;k++) printf("*");printf("\n");準(zhǔn)備客票。某鐵路線上共10個(gè)車站,問需要準(zhǔn)備幾種車票?main(){inti,j,station,total=0;printf("輸入車站數(shù):");scanf("%d",&station);for(i=1;i<station;i++)for(j=i+1;j<=station;j++) total=total+2;printf("車票種類=%d\n",total);編程計(jì)算n的階乘求1到100之間的奇數(shù)之和、偶數(shù)之積。輸入一行字符,統(tǒng)計(jì)其中的英文字母、數(shù)字、空格和其他字符個(gè)數(shù)。用循環(huán)語句編寫求的程序。求(即求1!+2!+3!+...+20!)。有一分?jǐn)?shù)序列,求出這個(gè)數(shù)列的前20項(xiàng)之和。任意十個(gè)數(shù),打印出它們中的最大數(shù)、最小數(shù)。測(cè)試數(shù)據(jù):①1,-12,20,30,-5,-23,33,125,200,-100②0,10,3,1,5,6,-10,90,9,-4③12,13,14,15,10,-10,-11,-12,-9,9判斷一個(gè)數(shù)是否是素?cái)?shù)打印1-100之間所有素?cái)?shù)求1-100之間所有非素?cái)?shù)的和輸入兩個(gè)正整數(shù)m和n,求其最大公約數(shù)和最小公倍數(shù)。提示:求m,n的最大公約數(shù):首先將m除以n(m>n)得余數(shù)R,再用余數(shù)R去除原來的除數(shù),得新的余數(shù),重復(fù)此過程直到余數(shù)為0時(shí)停止,此時(shí)的除數(shù)就是m和n的最大公約數(shù)。求m和n的最小公倍數(shù):m和n的積除以m和n的最大公約數(shù)。測(cè)試數(shù)據(jù):m=12,n=24m=100,n=300打印出所有的“水仙花數(shù)”,所謂“水仙花數(shù)”是指一個(gè)三位數(shù),其各位數(shù)字立方和等于該數(shù)本身。例如153是一個(gè)水仙花數(shù),因?yàn)?53=(要求分別用一重循環(huán)和三重循環(huán)實(shí)現(xiàn))。一個(gè)數(shù)恰好等于它的平方數(shù)的右端,這個(gè)數(shù)稱為同構(gòu)數(shù)。如5的平方是25,5是25中的右端的數(shù),5就是同構(gòu)數(shù)。找出1~1000之間的全部同構(gòu)數(shù)。3025這個(gè)數(shù)具有一種獨(dú)特的性質(zhì):將它平分為兩段,即30和25,使之相加后求平方,即(30+25),恰好等于3025本身。請(qǐng)求出具有這樣性質(zhì)的全部四位數(shù)。兩位數(shù)13和62具有很有趣的性質(zhì):把它們個(gè)位數(shù)字和十位數(shù)字對(duì)調(diào),其乘積不變,即13*62=31*26。編程序求共有多少對(duì)這種性質(zhì)的兩位數(shù)(個(gè)位與十位相同的不在此列,如11、22,重復(fù)出現(xiàn)的不在此列,如13*62與62*13)。一個(gè)數(shù)如果恰好等于它的因子之和,這個(gè)數(shù)就稱為“完數(shù)”。例如,6的因子為1、2、3,而6=1+2+3,因此6是“完數(shù)”。編程序找出1000之內(nèi)的所有完數(shù),并按下面格式輸出其因子:6itsfactorsare1,2,3有一個(gè)四位正整數(shù),組成這個(gè)四位數(shù)的四個(gè)數(shù)字各不相同,如果把它們的首尾互換,第二位與第三位互換,組成一個(gè)新的四位數(shù)。原四位數(shù)為新四位數(shù)的4倍,請(qǐng)找出一個(gè)這樣的四位數(shù)。給出一個(gè)不多于4位的正整數(shù),要求:①求出它是幾位數(shù)②分別打印出每一位數(shù)字③按逆序打印出各位數(shù)字。在一個(gè)程序中計(jì)算出給定誤差小于0.1,0.01,0.001,0.0001,0.00001時(shí),下式的值:提示:本題中誤差指前n+1項(xiàng)之積與前n項(xiàng)積之差。用泰勒展開式求sinx的近似值sinx=測(cè)試數(shù)據(jù):①x=0.3,n=8②x=0.5,n=20驗(yàn)證歌德巴赫猜想。一個(gè)充分大的偶數(shù)(大于或等于6)可以分解為兩個(gè)素?cái)?shù)之和。試編程序,將6至50之間全部偶數(shù)表示為兩個(gè)素?cái)?shù)之和。用牛頓迭代法求方程在1.5附近的根(精度為)。兩個(gè)乒乓球隊(duì)進(jìn)行比賽,各出三人,甲隊(duì)為A、B、C三人,乙隊(duì)為X、Y、Z三人,已知抽簽決定比賽名單。有人向隊(duì)員打聽比賽的名單,A說他不和X比,C說他不和X、Z比,請(qǐng)編程序找出三對(duì)賽手的名單。

第五單元數(shù)組選擇題以下關(guān)于數(shù)組的描述正確的是。A.數(shù)組的大小是固定的,但可以有不同的類型的數(shù)組元素。B.數(shù)組的大小是可變的,但所有數(shù)組元素的類型必須相同。C.數(shù)組的大小是固定的,但所有數(shù)組元素的類型必須相同。D.數(shù)組的大小是可變的,但可以有不同的類型的數(shù)組元素。在定義inta[10];之后,對(duì)a的引用正確的是。A.a[10]B.a[6.3]C.a(6)D.a[10-10]以下能正確定義數(shù)組并正確賦初值的語句是。A.intn=5,b[n][n];B.inta[1][2]={{1},{3}};C.intc[2][]={{1,2},{3,4}}D.inta[3][2]={{1,2},{3,4}}以下不能正確賦值的是。A.chars1[10];s1="test";B.chars2[]={’t’,’e’,’s’,’t’}C.chars3[20]="test";D.chars4[4]={’t’,’e’,’s’,’t’}下面程序段運(yùn)行時(shí)輸出結(jié)果是。chars[18]="abook!";printf("%.4s",s); A.abook!B.abook!C.aboD.格式描述不正確,沒有確定輸出下面程序段運(yùn)行時(shí)輸出結(jié)果是。chars[12]="Abook";printf("%d\n",strlen(s)); A.12B.8C.7D.6在執(zhí)行inta[][3]={1,2,3,4,5,6};語句后,a[1][0]的值是。A.4B.1C.2D.5讀程序?qū)懡Y(jié)果#include<stdio.h>voidmain() inta[8]={1,0,1,0,1,0,1,0},i; for(i=2;i<8;i++) a[i]+=a[i-1]+a[i-2]; for(i=0;i<8;i++) printf(“%5d”,a[i]);#include<stdio.h>voidmain()floatb[6]={1.1,2.2,3.3,4.4,5.5,6.6},t;inti;t=b[0];for(i=0;i<5;i++)b[i]=b[i+1];b[5]=t;for(i=0;i<6;i++) printf(“%6.2f”,b[i]);#include<stdio.h>voidmain(){intp[7]={11,13,14,15,16,17,18},i=0,k=0;while(i<7&&p[i]%2){k=k+p[i];i++;}printf("k=%d\n",k);voidmain(){inta[3][3]={1,3,5,7,9,11,13,15,17};intsum=0,i,j;for(i=0;i<3;i++)for(j=0;j<3;j++){a[i][j]=i+j;if(i==j)sum=sum+a[i][j];printf("sum=%d",sum);voidmain(){inta[4][4],i,j,k;for(i=0;i<4;i++)for(j=0;j<4;j++)a[i][j]=i-j;for(i=0;i<4;i++){for(j=0;j<=i;j++)printf("%4d",a[i][j]);printf("\n");#include<stdio.h>main(){inti,s;chars1[100],s2[100];printf("inputstring1:\n");gets(s1);printf("inputstring2:\n");gets(s2);i=0;while((s1[i]==s2[i])&&(s1[i]!='\0'))i++;if((s1[i]=='\0')&&(s2[i]=='\0'))s=0;elses=s1[i]-s2[i];printf("%d\n",s);輸入數(shù)據(jù)aidandvoidmain() charch[3][5]={"AAAA","BBB","CC"};printf("\"%s\"\n",ch[1]);#inlcude<stdio.h>#include<string.h>voidmain() charstr[10][80],c[80]; inti; for(i=0;i<10;i++) gets(str[i]); strcpy(c,str[0]); for(i=1;i<10;i++) if(strlen(c)<strlen(str[i])) strcpy(c,str[i]); puts(c);填空題構(gòu)成數(shù)組的各個(gè)元素必須具有相同的。下面的程序是輸出數(shù)組中最大元素的下標(biāo)(p表示最大元素的下標(biāo))。voidmain() ints[]={1,-3,0,-9,8,5,-20,3}; for(i=0,p=0;i<8;i++) if(s[i]>s[p]);輸入20個(gè)數(shù),輸出他們的平均值,輸出與平均值之差的絕對(duì)值最小的數(shù)組元素。#include<stdio.h>voidmain() floata[20],pjz=0,s,t; inti,k; for(i=0;i<20;i++)scanf(“%f”,&a[i]);pjz+=; s=fabs(a[0]-pjz); t=a[0]; for(i=1;i<20;i++) if(fabs(a[i]-pjz)<s)t=a[i];輸出行、列號(hào)之和為3的數(shù)組元素。main(){ charss[4][3]={'A','a','f','c','B','d','e','b','C','g','f','D'};intx,y,z; for(x=0;(1);x++) for(y=0;(2);y++){z=x+y; if((3))printf("%c\n",ss[x][y]);將一個(gè)數(shù)組中的元素按逆序重新存放。例如原來的順序?yàn)椋?,5,7,4,1,要求改為:1,4,7,5,8。#defineN7voidmain(){inta[N]={12,9,16,5,7,2,1},k,s;printf("\n初始數(shù)組:\n");for(k=0;k<N;k++)printf("%4d",a[k]);for(k=0;k<(1);k++){s=a[k];a[k]=(2);(3)=s;}printf("\n交換后的數(shù)組:\n");for(k=0;(4);k++)printf("%4d",a[k]);有一行文字,要求刪去某一個(gè)字符。此行文字和要?jiǎng)h去的字符均由鍵盤輸入,要?jiǎng)h去的字符以字符形式輸入(如輸入a表示要?jiǎng)h去所有的a字符)。 #include<stdio.h> voidmain(){/*str1表示原來的一行文字,str2表示刪除指定字符后的文字*/charstr1[100],str2[100];charch;inti=0,k=0;printf(“pleaseinputansentence:\n”);gets(str1);scanf("%c",&ch);for(i=0;(2);i++)if(str1[i]!=ch){str2[(3)]=str1[i];k++;}str2[(4)]='\0';printf("\n%s\n",str2);找出10個(gè)字符串中的最大者。#include<stdio.h>#include<string.h>#defineN10voidmain(){charstr[20],s[N][20];inti;for(i=0;i<N;i++)gets((1)); strcpy(str,s[0]); for(i=1;i<N;i++)if((2)>0)strcpy(str,s[i]);printf("Thelongeststringis:\n%s\n",str);某人有四張3分的郵票和三張5分的郵票,用這些郵票中的一張或若干張可以得到多少種不同的郵資?main(){staticinta[27];inti,j,k,s,n=0;for(i=0;i<=4;i++)for(j=0;j<=3;j++){s=(1);for(k=0;a[k];k++)if(s==a[k])(2);if((3)){a[k]=s;n++;}printf("%dkind:",n);for(k=0;(4);k++)printf("%3d",a[k]);求矩陣的馬鞍點(diǎn)。馬鞍點(diǎn)即它的值在行中最大,在它所在的列中最小。#defineN10#defineM10main(){inti,j,k,m,n,flag1,flag2;inta[N][M],max;printf("\n輸入行數(shù)n:");scanf("%d",&n);printf("\n輸入列數(shù)m:");scanf("%d",&m);for(i=0;i<n;i++)for(j=0;j<m;j++) scanf("%d",(1));for(i=0;i<n;i++){for(j=0;j<m;j++) printf("%5d",a[i][j]); (2);flag2=0;for(i=0;i<n;i++){max=(3);for(j=1;j<m;j++) if(a[i][j]>max)max=a[i][j]; for(j=0;j<m;j++) {flag1=0; if(a[i][j]==max) {for(k=0,flag1=1;k<n&&flag1;k++) if((4))flag1=0; if(flag1) {printf("第%d行,第%d列的%d是鞍點(diǎn)\n",(5)); flag2=1;if(!flag2)printf("\n矩陣中無鞍點(diǎn)!\n");編程有一個(gè)正整數(shù)數(shù)組,包含N個(gè)元素,要求編程求出其中的素?cái)?shù)之和以及所有素?cái)?shù)的平均值。有一個(gè)數(shù)組,內(nèi)放10個(gè)整數(shù)。要求找出最小的數(shù)和它的下標(biāo),然后把它和數(shù)組中最前面的元素對(duì)換位置。有N個(gè)數(shù)已按由小到大的順序排好,要求輸入一個(gè)數(shù),把它插入到原有序列中,而且仍然保持有序。輸入N個(gè)數(shù)到數(shù)組中,輸出所有大于N個(gè)數(shù)平均值的數(shù)。輸入N個(gè)數(shù)到數(shù)組中,選出其中最大的數(shù)和最小的數(shù),并分別將它們與最前面和最后面的數(shù)互換。用選擇法對(duì)10個(gè)整數(shù)由大到小排序。用篩選法求2到100之間的素?cái)?shù)。方法如下:首先2是素?cái)?shù),凡2的倍數(shù)都不是素?cái)?shù),于是把這些數(shù)從數(shù)表中篩去,2以后沒有被篩去的第一個(gè)數(shù)是3,然后把3的倍數(shù)都從數(shù)表中篩去,3以后沒被篩去的第一個(gè)數(shù)是5,然后把5的倍數(shù)都從數(shù)表中篩去。如此下去,直到遇到某數(shù)K(≤N),其后沒有數(shù)可篩選為止,這時(shí)保留下的未被篩去的數(shù)就是2到N的素?cái)?shù)。求一個(gè)3×3矩陣兩條對(duì)角線上元素之和(每個(gè)元素只加一次)。打印如下形式的楊輝三角形11112113311464115101051輸出前10行,從0行開始,分別用一維數(shù)組和二維數(shù)組實(shí)現(xiàn)。有一個(gè)二維數(shù)組整型數(shù)組中,每一行都有一個(gè)最大值,編程求出這些最大值以及它們的和。把一個(gè)二維實(shí)型數(shù)組a按照第0列的元素進(jìn)行排序(由小到大排序,用起泡法)。例如:如果a[i][0]大于a[i+1][0],則i行與i+1行中所有元素都要進(jìn)行對(duì)換。編程序?qū)⒁粋€(gè)字符串的前N個(gè)子字符送到一個(gè)字符型數(shù)組中去,然后再加上一個(gè)'\0'(不允許使用strcpy(str1,str2,n)函數(shù))。將字符數(shù)組A中下標(biāo)為雙號(hào)(0,2,4,6,8...)的元素值傳給另一個(gè)字符數(shù)組B,然后將B數(shù)組的元素按逆序輸出。有一行字符,統(tǒng)計(jì)其中的單詞個(gè)數(shù)(單詞之間以空格分隔),并將每一個(gè)單詞的第一個(gè)字母改為大寫。有N個(gè)國家名,要求按字母先后順序排列(用起泡排序法)后輸出。有17個(gè)人圍成一圈(編號(hào)為0~16),從第0號(hào)的人開始從1報(bào)數(shù),凡報(bào)到3的倍數(shù)的人離開圈子,然后再數(shù)下去,直到最后只剩下一個(gè)人為止。問此人原來的位置是多少號(hào)?編程產(chǎn)生如下形式的方陣。1222221312221433121443331444331514431555141555551要求:不允許使用鍵盤輸入語句和靜態(tài)賦值語句,盡量少用循環(huán)。打印所有不超過n(n<256)的其平方具有對(duì)稱性的數(shù)(也稱回文數(shù))。求N個(gè)數(shù)中的最大值,最大值出現(xiàn)的次數(shù),然后求出次大值(次大值一定存在)。找出M×N數(shù)組中所有不相鄰元素,并求出它們的和(相鄰的數(shù):前一個(gè)是偶數(shù),后一個(gè)是素?cái)?shù))。圓盤上有如下圖所示的二十個(gè)數(shù),請(qǐng)找出哪四個(gè)相鄰數(shù)之和為最大,并指出它們的起始位置及最大和的值。已知100個(gè)自然數(shù)1~100,我們?nèi)?,2,3,4時(shí),我們可將其排成一圈使每?jī)蓚€(gè)數(shù)之和都是素?cái)?shù),即→1→2→3→4→,問1~100內(nèi)連續(xù)取n個(gè)數(shù),即1~n(≤100)能滿足上述要求的最大的n是多少?打印魔方陣。所謂魔方陣是指這樣的方陣,它的每一行、每一列和對(duì)角線之和均相等。例如:三階魔方陣為816357492要求打印由1到的自然數(shù)構(gòu)成的魔方陣。提示:魔方陣中各數(shù)的排列規(guī)律如下:⑴將“1”⑵從“2”開始直到n×n為止各數(shù)依次按下列規(guī)則存放:每一個(gè)數(shù)存放的行比前一個(gè)數(shù)的行數(shù)減1,列數(shù)加1⑶如果上一個(gè)數(shù)的行數(shù)為1,則下一個(gè)數(shù)的行數(shù)為n(指最下一行);⑷當(dāng)一個(gè)數(shù)的列數(shù)為n,下一個(gè)數(shù)的列數(shù)應(yīng)為1,行數(shù)減1;⑸如果按上面規(guī)則確定的位置已有數(shù),或上一個(gè)數(shù)是第1行第n列時(shí),則把下一個(gè)數(shù)放在上一個(gè)數(shù)的下面。統(tǒng)計(jì)一個(gè)單位職工的年齡,要求把相同年齡最多的那個(gè)年齡找出來(可能有幾個(gè)這樣的年齡),并統(tǒng)計(jì)出現(xiàn)的次數(shù)。n×n的拉丁方陣的每行、每列均為自然數(shù)的一個(gè)全排列,每行(列)上均無重復(fù)數(shù)。如n=5時(shí),5×5的一種拉丁方陣可以為:1524323451415325231434125該數(shù)組的第一行1,5,2,4,3用程序自動(dòng)生成,但產(chǎn)生的第一行不一定非得是1,5,2,4,3,第一行填寫完畢后,即以第一行作為全方陣索引,即若第一行中的第i列的元素值為j,則j在各行中的列號(hào)即為從第一行中元素值為i的那一列開始讀出的n個(gè)自然數(shù)(到行末則從行頭接著讀),例如第一行第2列的元素值為5,則從元素值為2的那一列(第3列)開始讀出2,4,3,1,5,這就是元素5在各行中的列標(biāo)號(hào)。測(cè)試數(shù)據(jù):①n=5②n=8

第六單元函數(shù)選擇題在C語言中,當(dāng)函數(shù)調(diào)用時(shí)。A.實(shí)參和形參各占一個(gè)獨(dú)立的存儲(chǔ)單元B.實(shí)參和形參共用存儲(chǔ)單元C.可以由用戶指定實(shí)參和形參是否共用存儲(chǔ)單元D.由系統(tǒng)自動(dòng)確定實(shí)參和形參是否共用存儲(chǔ)單元以下函數(shù)調(diào)用語句中實(shí)參的個(gè)數(shù)為。exce((v1,v2),(v3,v4,v5),v6); A.3 B.4 C.5 D.6如果在一個(gè)函數(shù)的復(fù)合語句中定義了一個(gè)變量,則該變量。A.只在該符合語句中有效,在該符合語句外無效 B.在該函數(shù)中任何位置都有效 C.在本程序的原文件范圍內(nèi)均有效 D.此定義方法錯(cuò)誤,其變量為非法變量C語言允許函數(shù)值類型缺省定義,此時(shí)該函數(shù)值隱含的類型是。A.float型B.int型C.long型D.double型C語言規(guī)定,函數(shù)返回值的類型是由。A.return語句中的表達(dá)式類型所決定B.調(diào)用該函數(shù)時(shí)的主調(diào)函數(shù)類型所決定C.調(diào)用該函數(shù)時(shí)系統(tǒng)臨時(shí)決定D.在定義該函數(shù)時(shí)所指定的函數(shù)類型決定在C語言程序中,以下描述正確的是。A.函數(shù)的定義可以嵌套,但函數(shù)的調(diào)用不可以嵌套B.函數(shù)的定義不可以嵌套,但函數(shù)的調(diào)用可以嵌套C.函數(shù)的定義和函數(shù)的調(diào)用均不可以嵌套D.函數(shù)的定義和函數(shù)的調(diào)用均可以嵌套以下敘述中正確的是。A.全局變量的作用域一定比局部變量的作用域范圍大B.靜態(tài)(static)類別變量的生存期貫穿于整個(gè)程序的運(yùn)行期間C.函數(shù)的形參都屬于全局變量D.未在定義語句中賦初值的auto變量和static變量的初值都是隨機(jī)值8.以下程序的運(yùn)行結(jié)果是:#include<stdio_h>voidsub(ints[],inty){staticintt=3;y=s[t];t--;main(){inta[]={1,2,3,4},i,x=0;for(i=0;i<4;i++){sub(a,x);printf("%d",x);}printf("\n");A)1234 B)432l C)0000 D)44449.以下程序的運(yùn)行結(jié)果是:main(){intw=5;fun(w);printf("\n");}fun(intk){if(k>O)fun(k-1);printf("%d",k);A)5432l B)012345 C)12345 10.以下所列的各函數(shù)首部中,正確的是_______。A)voidplay(vata:Integer,varb:Integer) B)voidplay(inta,b)C)voidplay(inta,intb) D)Subplay(aasinteger,basinteger)11.當(dāng)調(diào)用函數(shù)時(shí),實(shí)參是一個(gè)數(shù)組名,則向函數(shù)傳送的是_______。A)數(shù)組的長(zhǎng)度 B)數(shù)組的首地址C)數(shù)組每一個(gè)元素的地址 D)數(shù)組每個(gè)元素中的值12.在調(diào)用函數(shù)時(shí),如果實(shí)參是簡(jiǎn)單變量,它與對(duì)應(yīng)形參之間的數(shù)據(jù)傳遞方式是_______。A)地址傳遞 B)單向值傳遞C)由實(shí)參傳給形,再由形參傳回實(shí)參 D)傳遞方式由用戶指定13.以下函數(shù)值的類型是_______。fun(floatx){floaty;y=3*x-4;returny;A)int B)不確定 C)void D)float讀程序?qū)懡Y(jié)果fun1(inta,intb){intc;a+=a;b+=b;c=fun2(a,b);returnc*c;fun2(inta,intb){intc;c=a*b%3;returnc;main(){intx=11,y=19;printf("Thefinalresultis:%d\n",fun1(x,y));intx;main(){x=5;cude();printf("%d\n",x);cude(){x=x*x*x;}#include<stdio.h> longfun(intn){longs;if(n==1||n==2)s=2;elses=n+fun(n-1);returns; main(){printf("%ld\n",fun(4));main(){inti;for(i=0;i<2;i++)add();add(){intx=0;staticinty=0;printf("%d,%d\n",x,y);x++;y=y+2;main(){intk=4,m=1,p;p=func(k,m);printf("%d,",p);p=func(k,m);printf("%d\n",p);func(inta,intb){staticintm=0,i=2;i+=m+1;m=i+a+b;returnm;6.intt(intx,inty,intcp,intdp){cp=x*x+y*y;dp=x*x-y*y;main(){inta=4,b=3,c=5,d=6;t(a,b,c,d);printf("%d%d\n",c,d);7.fun(intx,inty,intz){z=x*x+y*y;}main(){inta=31;fun(5,2,a);printf("%d",a);8.inta,b;voidfun(){a=100;b=200;}main(){inta=5,b=7;fun();printf("%d%d\n",a,b);9.intx=3;main(){inti;for(i=1;i<x;i++)incre();incre(){staticintx=1;x*=x+l;printf("%d",x);10.intfunc(int

溫馨提示

  • 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)論