C語(yǔ)言習(xí)題集改版_第1頁(yè)
C語(yǔ)言習(xí)題集改版_第2頁(yè)
C語(yǔ)言習(xí)題集改版_第3頁(yè)
C語(yǔ)言習(xí)題集改版_第4頁(yè)
已閱讀5頁(yè),還剩113頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

TOC\o"1-5"\h\z\o"CurrentDocument"第一單元程序設(shè)計(jì)和C語(yǔ)言 1第二單元順序程序設(shè)計(jì)第二單元順序程序設(shè)計(jì)\o"CurrentDocument"第三單元分支程序設(shè)計(jì) 7\o"CurrentDocument"第四單元循環(huán)程序設(shè)計(jì) 14\o"CurrentDocument"第五單元數(shù)組 23\o"CurrentDocument"第六單元函數(shù) 34\o"CurrentDocument"第七單元指針 42\o"CurrentDocument"第ハ單元結(jié)構(gòu)體和共用體 61\o"CurrentDocument"第九單元文件 78\o"CurrentDocument"附加題 82\o"CurrentDocument"模擬試卷ー 102\o"CurrentDocument"模擬試卷二 108\o"CurrentDocument"模擬試卷三 114第一單元 程序設(shè)計(jì)和c語(yǔ)言ー、選擇題C語(yǔ)言的基本構(gòu)成單位是:。A.函數(shù) B,函數(shù)和過(guò)程 C,超文本過(guò)程 D.子程序ー個(gè)C語(yǔ)言程序總是從開(kāi)始執(zhí)行。A.主過(guò)程B.主函數(shù)C.子程序D.主程序C語(yǔ)言的程序一行寫(xiě)不下時(shí),可以。A.用逗號(hào)換行B.用分號(hào)換行 C.在任意ー空格處換行 D.用回車(chē)符換行以下敘述不正確的是:0A.在C程序中,語(yǔ)句之間必須要用分號(hào)";"分隔若a是實(shí)型變量,C程序中a=10是正確的,因?yàn)閷?shí)型變量中允許存放整型數(shù)C.在C程序中,無(wú)論是整數(shù)還是實(shí)數(shù)都能正確無(wú)誤地表示D.在C程序中,外是只能用于整數(shù)運(yùn)算的運(yùn)算符.以下不正確的C語(yǔ)言標(biāo)識(shí)符是〇A.ABC B.abc C.a_bc D.ab.c.下列字符串是標(biāo)識(shí)符的是:〇A._HJ B.9_student C.long D.LINE1.以下說(shuō)法中正確的是:〇A.C語(yǔ)言程序總是從第一個(gè)定義的函數(shù)開(kāi)始執(zhí)行.在C語(yǔ)言程序中,要調(diào)用的函數(shù)必須放在main。函數(shù)中定義C語(yǔ)言程序總是從main。函數(shù)開(kāi)始執(zhí)行C語(yǔ)言程序中的main。函數(shù)必須放在程序的開(kāi)始部分.不合法的常量是:。A.'\2' B." "C.'3' D.''483'.已知各變量的類型說(shuō)明如下,則以下不符合C語(yǔ)言語(yǔ)法的表達(dá)式是:ー〇intk,a,b;unsignedlongw=5;doublex=l.422;A.x%(-3)B.w+=-2C.k=(a=2,b=3,a+b)D.a+=a=+(b=4)*(a=3).在C語(yǔ)言中,字符型數(shù)據(jù)在內(nèi)存中以形式存放。A.原碼B.BCD碼C.反碼D.ASCII碼.若有定義:inta=7;floatx=2.5;y=4.7;則表達(dá)式x+a%3*(int)(x+y)%2/4的值是:〇A.2.500000B,2.750000C.3.500000D.0.000000.設(shè)有說(shuō)明:charw;intx;floaty;doublez;則表達(dá)式w*x+z-y值的數(shù)據(jù)類型為:。A.float B.char C.int D.double.以下是不正確的轉(zhuǎn)義字符。A. '\\' B. C,'081' D.'\0'.若x為int型變量,則執(zhí)行以下語(yǔ)句后,x的值為,x=6;x+=x-=x*x;A.36B.-60C.60D.-24.字符串"\ゝヽ"ABC\"\\"的長(zhǎng)度是〇A.11B.7 C.5D.3二、填空題.一個(gè)函數(shù)由兩部分組成,它們是和。.ー個(gè)C源程序至少包含一個(gè),即。.設(shè)inta=12;則表達(dá)式a/=a+a的值是?.表達(dá)式x=(a=3,6*a)和表達(dá)式x=a=3,6*a分別是表達(dá)式和表達(dá)式,兩個(gè)表達(dá)式執(zhí)行完的結(jié)果分別是和,x值分別是和0.在C語(yǔ)言中,實(shí)數(shù)有兩種表示形式,即和。.在C語(yǔ)言中,運(yùn)算符的優(yōu)先級(jí)最小的是運(yùn)算符。第二單元順序程序設(shè)計(jì)ー、選擇題.若m為float型變量,則執(zhí)行以下語(yǔ)句后的輸出為〇m=1234.123;printf("%-8.3f\n",m);printfC%10.3f'n",m);A.1234.123B.1234.123C.1234.123D.-1234.1231234.123 1234.123 1234.123 001234.123.若x,y,z均為int型變量,則執(zhí)行以下語(yǔ)句后的輸出為〇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二〇,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)用語(yǔ)句格式為:scanf(*x=%d,y=%f*,&x,&y);則為了將數(shù)據(jù)10和66.6分別賦給x和y,正確的輸入應(yīng)是:〇A.x=10,y二66.6く回車(chē)〉 B.1066.6く回車(chē))C.10く回車(chē)>66.6く回車(chē)) D.x=10く回車(chē)>y=66.6く回車(chē)〉.已知有變量定義:inta;charc;用scanf("%d%c",&a,&c);語(yǔ)句給a和c輸入數(shù)據(jù),使30存入a,字符‘b'存入c,則正確的輸入是:〇A.30'b,く回車(chē)>B.30bく回車(chē))C.30く回車(chē)油く回車(chē)》D.30bく回車(chē)》5.已知有變量定義:doublex;longa;要給a和x輸入數(shù)據(jù),正確的輸入語(yǔ)句是〇若要輸出a和x的值,正確的輸出語(yǔ)句〇A.scanf(M%d%f",&a,&x);B.scanf("%ld%f",&a,&x);printf(a%d,%f",a,x); printf(a%ld,%f",a,x);C.scanf(<<%ld%lf,,&a,&x);D.scanf(“%ld%lf",&a,&x);printf(u%ld,%lf",a,x); printf(rt%ld,%f",a,x);6,若有定義doublex=l,y;則以下的語(yǔ)句執(zhí)行的結(jié)果是〇y=x+3/2;printf("%f",y);A.2.500000B.2.5C.2.000000D.27.若a為整型變量,則以下語(yǔ)句〇a=-2L;printf("刎、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í)輸入:1234567main()intx=4,y=0,z;x*=3+2;printf("%d",x);x*=y=z=4;printf("%d*,x);ー。floatx;inti;x=3.6;i=(int)x;printf("x=%f,i=%d",x,i);4一)inta=2;a%=4-l;printf("%d,",a);a+=a*=a-=a*=3;printf("%d",a);「ユ。intx=02,y=3;printf(*x=%d,y=%%d*,x,y);main(){charcl=6,c2二’〇';printf(*%c,%c,%d,%d\n*,cl,c2,cl-c2,cl+c2);main(){intx,y,z;x=y=l;z=++x-l;printf(*%d,%d\n*,x,z);z+=y++;printf("%d,%d\n”,y,z);三、填空題.在c語(yǔ)言中,字符型數(shù)據(jù)和整型數(shù)據(jù)之間可以通用,ー個(gè)字符數(shù)據(jù)既能以輸出,也能以輸出。.螺-ms”表示如果串長(zhǎng)小于m,則在m列范圍內(nèi),字符串向靠,補(bǔ)空格。.printf函數(shù)的“格式控制”包括兩部分,它們是和0.編寫(xiě)程序求矩形的面積和周長(zhǎng),矩形的長(zhǎng)和寬由鍵盤(pán)輸入,請(qǐng)?zhí)羁铡?include<stdio.h>voidmain(){float1,w;printf("pleaseinputlengthandwidthoftherectangle\n");scanf("%f%fw ;area-;.編寫(xiě)程序,輸入一個(gè)數(shù)字字符(‘0'?’9')存入變量c,把c轉(zhuǎn)換成它所對(duì)應(yīng)的整數(shù)存入n,如:字符’0’所對(duì)應(yīng)的整數(shù)就是。。請(qǐng)?zhí)羁铡>輈harcprintf("pleaseinputachar:\nw);c二;n=;printf(,c,n);I四、編程.將華氏溫度轉(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.寫(xiě)ー個(gè)程序把極坐標(biāo)(r,0)(9之單位為度)轉(zhuǎn)換為直角坐標(biāo)(X,Y)?轉(zhuǎn)換公式是x=r.cos0y=r.sin0測(cè)試數(shù)據(jù):①r=100=45°②r=200=90°3.寫(xiě)ー個(gè)程序,按如卜.格式輸出數(shù)據(jù)。namenumber math englishcomputerzhanghua9901 80.50 87.0 80lina9902 70.00 80.0 90wanggang9903 87.00 76.0 784.輸入3個(gè)雙精度實(shí)數(shù),分別求出它們的和、平均值、平方和以及平方和的開(kāi)方,并輸出所求出各個(gè)值。5.輸入一個(gè)3位整數(shù),求出該數(shù)每個(gè)位上的數(shù)字之和。如123,每個(gè)位上的數(shù)字和就是1+2+3=6。第三單元分支程序設(shè)計(jì)ー、選擇題.若x=0,y=3,z=3,以下表達(dá)式值為〇的是A.!xB.x<y?1:0C.x%2&&y==zD.y=x||z/3.以下運(yùn)算符中優(yōu)先級(jí)最低的運(yùn)算符為,優(yōu)先級(jí)最高的為A.&& B.! C. != D. | |E.?: F.==.若w=l,x=2,y=3,z=4,則條件表達(dá)式wくx?w:yくz?y:z的結(jié)果為0A.4 B.3 C. 2 D. 1.若w,x,z均為int型變量,則執(zhí)行以下語(yǔ)句后的輸出為w=3;z=7;x=10;printf("%d\n”,x>10?x+100:x-10);printf("%d\n”,w++1|z++);printf("%d\n”,!w>z);printf("%d\n",w&&z);A.0B.1C.0D.01111110 01110.分析以下程序,下列說(shuō)法正確的是main(){intx=5,a=0,b=0;if(x=a+b)printf(/z****\n");elseprintf("####\n");)A,有語(yǔ)法錯(cuò),不能通過(guò)編譯 B,通過(guò)編譯,但不能連接C.輸出?*** D.輸出####.分析以下程序,下列說(shuō)法正確的是〇main(){intx=5,a=0,b=3;if(x=a+b)printf("****\n");elseprintf('####\n");A,有語(yǔ)法錯(cuò),不能通過(guò)編譯 B,通過(guò)編譯,但不能連接C.輸出?*** D.輸出####.分析以下程序,下列說(shuō)法正確的是〇main(){intx=0,a=0,b=0;if(x=a+b)printf(*?***\n");elseprintf(,z####\n");A.有語(yǔ)法錯(cuò),不能通過(guò)編譯 B.通過(guò)編譯,但不能連接C.輸出**** D.輸出####.分析以下程序,下列說(shuō)法正確的是〇main(){intx=0,a=0,b=0;if(x==a+b)printf(,z****\n");elseprintf(zz####\n");A.有語(yǔ)法錯(cuò),不能通過(guò)編譯 B.通過(guò)編譯,但不能連接C.輸出?*** D.輸出####讀程序?qū)懡Y(jié)果1.include<stdio.h>main(){inta=-l,b=4,k;k=(a++<=0)&&(!(b--<=0));printf(zz%d,%d,%d\n”,k,a,b);一{intx=4,y=0,z;x?=3+2;printf(*%d*,x);x*=(y==(z=4));printf('z%d",x);…°{intx,y,z;x=3;y=z=4;printfC%dz;(x>=z>=x)?l:0);printf(袋d”,z>=y&&y>=x);)main(){intx=l,y=l,z=10;if(z<0)if(y>0)x=3;elsex=5;printfx);if(z=y<0)x=3;elseif(y==O)x=5;elsex=7;printfx);printf(線d\t”,z);}main(){charx="B';switch(x)TOC\o"1-5"\h\z{case ,A' : printf( uIt is A.");case 'B' : printf( aIt is B.“);case 'C' : printf( uIt is C.” );default:printf("other.");)}main(){intx二1,y二〇,a二〇,b二〇;switch(x){case1:switch(y){case0:a++;break;

case1:b++;break;a++;b++;break;a++;b++;printf(*a=%d,b二%d\n”,a,b);,、填空題.若a=5,b=6,c=7,d=8,則表達(dá)式d二a/2&&b=c||!a的值為.定義intx=10,y,z;執(zhí)行y二z二x;x二yニニz后,變量x的值為〇3,分段函數(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) (1);⑵ y=0;⑶ y=(x+7)/3;printf("%d",y);1.由鍵盤(pán)輸入二:個(gè)數(shù),計(jì)算以這一個(gè)數(shù)為邊長(zhǎng)的三角形面積。⑴main()(2);printfCPleaseenter3reals:\n");scanf(*%f%f%f*,&a,&b,&c);if((3)){s=(a+b+c)*0.5;sl=s*(s-a)*(s-b)*(s-c);s=(4);printf(*\nAreaofthetriangleis%f\n',s);⑸printf("Itisnottriangle!\n");.有一方程ax2+bx+c=0,a,b,c的值山鍵盤(pán)輸入,請(qǐng)編程序,打印出以下情況時(shí)方程的解。a二〇,bWOa=0,b=0,c=0a二〇,b=0,cWOaW〇,b2"4ac^0aWO,b2-4ac^0^include"math,h"main(){floata,b,c,d,pr,pi,xl,x2;scanf("%f%f%f”,&a,&b,&c);printf("a=%f,b=%f,c=%f\n*,a,b,c);if(a==0){if((1))printf("onlyonesolutionx=%f\n",-c/b);elseif((2))printf("nosolution\n");elseprintflxisanyvalue'n");else{d=b*b-4*a*c;if((3)){xl=(-b+sqrt(d))/(4);x2=(-b-sqrt(d))/⑸;printf("xl=%6.2f,x2=%6.2f\n",xl,x2);else{pr=-b/(2*a);(6);printf(*xl=%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); case'Y':caseR':printf(aagree99);(2) ;case'N':case(n9:printf("disagree");(3)(4):printf("lose");四、編程.寫(xiě)ー程序求y值(x值由鍵盤(pán)輸入)。Isin(x)+cos(x)ヽn.一は知)'sin(x)-cos(x).輸入一個(gè)字符,判斷它如果是小寫(xiě)字母輸出其對(duì)應(yīng)大寫(xiě)字母:如果是大寫(xiě)字母輸出其對(duì)應(yīng)小寫(xiě)字母;如果是數(shù)字輸出數(shù)字本身;如果是空格,輸出“space";如果不是上述情況,輸出“other”。.有三個(gè)數(shù)a、b、c,由鍵盤(pán)輸入,輸出其中最大的數(shù)。.輸入一個(gè)數(shù),判斷它能否被3或者被5整除,如至少能被這兩個(gè)數(shù)中的ー個(gè)整除則將此數(shù)打印出來(lái),否則不打印,編出程序。.讀入1到7之間的某個(gè)數(shù),輸出表示一星期中相應(yīng)的某一天的單詞:Monday、Tuesday等等,用switch語(yǔ)句做。.給出ー百分制成績(jī),要求輸出成績(jī)等級(jí)‘A,,'B','C','D','E',90分以上為,A',8〇?89分為,B‘,70?79分為‘C',6〇?69分為‘D',60分以下為‘E'。7?有一函數(shù)40―x+10 (0<%<15)50 (15<x<30)50-”(x-30)(30<x<45)y=\ 2040+—(x-45)(45<x<75)3060-"(x-75)(75<x<90)無(wú)意義(其它)請(qǐng)編程序計(jì)算y的值(x的值由鍵盤(pán)輸入)。第四單元循環(huán)程序設(shè)計(jì)ー、選擇題1.A.C.程序段如下:1.A.C.程序段如下:則以下說(shuō)法中正確的是intk=5;do{k一;}while(k<=0);循環(huán)執(zhí)行5次循環(huán)體語(yǔ)句ー次也不執(zhí)行B,循環(huán)是無(wú)限循環(huán)D.循環(huán)體語(yǔ)句執(zhí)行ー次2.設(shè)i和x都是int類型,則for循環(huán)語(yǔ)句〇for(i=0,x=0;i<=9&&x!=876;i++)scanf&x);A,最多執(zhí)行10A,最多執(zhí)行10次C.是無(wú)限循環(huán)3.下述for循環(huán)語(yǔ)句〇inti,k;for(i二〇,k=-l;k=l;i++,k++)A,判斷循環(huán)結(jié)束的條件非法C.只循環(huán)一次B.最多執(zhí)行9次D.循環(huán)體ー次也不執(zhí)行printf(〃****");B,是無(wú)限循環(huán)D.一次也不循環(huán).程序段如下:則以下說(shuō)法中正確的是:intkニー20;while(k=0)k=k+l;A.while循環(huán)執(zhí)行20次 B,循環(huán)是無(wú)限循環(huán)C,循環(huán)體語(yǔ)句ー次也不執(zhí)行 D.循環(huán)體語(yǔ)句執(zhí)行ー次.下列程序段執(zhí)行后k值為〇intk=0,i,j;for(i二〇;i<5;i++)for(j=0;j<3;j++)

k=k+1;A.15B.3C.5 D.8.程序段如下:則以下說(shuō)法中不正確的是:Sinclude<stdio.h>main()intk=2,;while(k<7)if(k%2){k=k+3;printf(wk=%d\nw,k);continue;}k=k+l;printf(wk=%d\nw,k);A.knk+3;執(zhí)行一次 B.k=k+1;執(zhí)行2次C.執(zhí)行后k值為7 D.循環(huán)體只執(zhí)行ー次讀程序?qū)懡Y(jié)果1.main(){intnum=0;while(num<=2){num++;printf(〃%d\n”,num);}main(){inti=0,s=0;do{s+=i*2+l;printf("i=%d,s=%d\n”,i,s);i++;}while(s<10);^include<stdio.h>main(){inti,m=l;for(i=5;i>=l;i--)m=(m+l)*2;printf("m二%d\n”,m);指事卜曲::個(gè)程序的功能,當(dāng)輸入為:"qucrt?〃時(shí),它們的執(zhí)行結(jié)果是什么?(1)^include<stdio.h>main(){charc;c=getchar();while(c!=’?’){putchar(c);c=getchar();}⑵#include<stdio.h>main(){charc;while((c=getchar())!='?')putchar(++c)⑶#include<stdio.h>main(){while(putchar(getchar())!=,?*);)^include<stdio.h>main(){inti;for(i=l;i<=5;i++){if(i%2)putchar("く’);elsecontinue;putchar(*>');putchar( ;main(){inta,b;for(a=l,b=l;a<=100;a++){if(b>10)break;if(b%3==l){b+=3;continue;}printf("a二%d\n',a);{inti=l;while(i<=15)if(++i%3!=2)continue;elseprintf(*%d",i);printf("\n");8………voidmain(){inti,j;for(i=0;i<=3;i++){for(j=0;j<=i;j++)printf("(%d,%d),",i,j);printf("\n〃);main(){inti,j,k;charspace='';for(i二。;iく=5;i++){for(j=l;j<=i;j++)printf("祝",space)for(k=0;k<=5;k++)printf("%c",;printf("\n");^include<stdio.h>main(){inti,j,k=0;for(j=ll;j<=30;j++){if(k%10==0)printf("\n");for(i=2;i<j;i++){if(!(j%i))break;if(i>=j-D{printfj)*++;}}))三、填空題.break語(yǔ)句只能用于語(yǔ)句和語(yǔ)句中〇.計(jì)算2+4+6+8+.?.+98+100main()(inti,⑴;for(i=2;i〈=100; ⑵ )s+=i;}.求滿足下式的x,y,zXYZ+YZZmain(){intx,y,z,i,result=532;for(x=l; ⑴ ;x++)for(y=l; (2) ;y++)for( (3) ; (4) ;z++){i= ⑸ +(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由鍵盤(pán)輸入。main(){inta,n,count=l,Sn=O,Tn=O;printf(〃請(qǐng)輸入a和n的值:'n");scanf("%d,%d”,&a,&n);TOC\o"1-5"\h\zwhile(count<=(1) ){Tn= ⑵ ;Sn= (3) ;a=a*10;(4) ;printf(,za+aa+aaa+...=%d\n”,Sn);.ー球從100米高度自由落下,每次落地后反跳回原來(lái)高度的一半,再落下,求它在第十次落地時(shí),共經(jīng)過(guò)多少米?第十次反彈多高?main(){floatSn=100.0,hn=Sn/2;intn;for(n=2;n<= (1) ;n++){Sn=(2) ;hn=(3) ;}printf("第10次落地時(shí)共經(jīng)過(guò)%f米'n”,Sn);printf("第10次反彈%f米'n”,hn);.打印出以ド圖形******main(){inti,j,k;for(i=0;i<= (1) ;i++){for(j=0;j<=2-i;j++)printfC、、for(k=O;k<= ⑵ ;k++)printfC***)(3)for(i=0;i<=2;i++){for(j=0;j<= (4) ;j++)printf("");for(k=O;k<= (5) ル++)printf("?〃);printf('\n");7.準(zhǔn)備客票。某鐵路線上共10個(gè)車(chē)站,問(wèn)需要準(zhǔn)備幾種車(chē)票?main(){inti,j,station,total=0;printf("輸入車(chē)站數(shù):");scanf("%d",&station);for(i=l;i<(1) ;i++)for(j= (2) ;j<=station;j++)total- (3);printf("車(chē)票種類二%d\n",total);四、編程1.計(jì)算n的階乘2,求1到100之間的奇數(shù)之和、偶數(shù)之積。.輸入一行字符,統(tǒng)計(jì)其中的英文字母、數(shù)字、空格和其他字符個(gè)數(shù)。.用循環(huán)語(yǔ)句編寫(xiě)求2°+2]+2?+23+...+263的程序。.求(即求1!+即求!+...+20!)〇_23581321 亠.有一分?jǐn)?shù)序列;,不ス,テ寸,ヵ,……,求出這個(gè)數(shù)列的前20項(xiàng)之和12330!j.任意十個(gè)數(shù),打印出它們中的最大數(shù)、最小數(shù)。

測(cè)試數(shù)據(jù):①1,-12,20,30,-5,-23,33,125,200,-1000,10,3,1,5,6,-10,90,9,-412,13,14,15,10,-10,-11,-12,-9,98,判斷ー個(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去除原來(lái)的除數(shù),得新的余數(shù),重復(fù)此過(guò)程直到余數(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=ド+53+33(要求分別用ー重循環(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ù),并按下面格式輸出其因子:itsfactorsareitsfactorsare1,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í),下式的值:,2 4ゝ 4 6ゝ 6 8ゝ ,2〃 2〃+2ヽ(—X-)X(—X—)X(—X-)X...X( X )3 3 5 5 7 7 2〃+12麗+1提示:本題中誤差指前n+1項(xiàng)之積與前n項(xiàng)積之差。20.用泰勒展開(kāi)式求sinx的近似值sinx=——1!X320.用泰勒展開(kāi)式求sinx的近似值sinx=——1!X3X5X1 F F...3!5!7!x(2n-l)(2n-l)!測(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附近的根(精度為10")。2x3-4x2+3x-6=0.兩個(gè)乒乓球隊(duì)進(jìn)行比賽,各出三人,甲隊(duì)為A、B、C三人,乙隊(duì)為X、YヽZ三人,已知抽簽決定比賽名單。有人向隊(duì)員打聽(tīng)比賽的名單,A說(shuō)他不和X比,C說(shuō)他不和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ù)組并正確賦初值的語(yǔ)句是。A.intn-5,b[n][n]: B.inta[l][2]={{1},{3}};C.intc⑵ロ={{1,2},{3,4}}D.inta⑶⑵={{1,2},{3,4}}.以下不能正確賦值的是。A.charsl[10];sl=*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.格式描述不正確,沒(méi)有確定輸出.下面程序段運(yùn)行時(shí)輸出結(jié)果是。chars[12]="Abook";printf("%d\n",strlen(s));A.12 B. 8 C.7 D. 6.在執(zhí)行inta[][3]={l,2,3,4,5,6};語(yǔ)句后,a[l][0]的值是。A.4 B. 1 C.2 D. 5二、讀程序?qū)懡Y(jié)果ttinclude<stdio.h>voidmain()inta[8]={l,0,1,0,1,0,1,0},i;for(i=2;i〈8;i++)a[i]+=a[i-l]+a[i-2]for(i=0;i<8;i++)printf(a%5dw,a[i]);ttinclude<stdio.h>voidmain()floatb[6]={1.1,2.2,3.3,4.4,5.5,6.6},t;inti;t=b[〇];for(i=0;i<5;i++)b[i]=b[i+l];b[5]=t;for(i=0;i<6;i++)printf(a%6.2fw,b[i]);^include<stdio.h>voidmain(){intp[7]={ll,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く3;j++){a[i][j]=i+j;if(i==j)

sum=sum+a[i][j];printflsum=%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=O;j<=i;j++)printf(*%4d*,a[i][j]);printf("\n");^include<stdio.h>main(){inti,s;charsi[100],s2[100];printf(*inputstringl:\n");gets(si)printf(z,inputstring2:\n");gets(s2)i=0;while((si[i]=s2[i])&&(sl[i]!=‘、〇‘))i++;if((si[i]=='\0')&&(s2[i]=='\0'))s=0elses=sl[i]-s2[i];printf("刎、n",s);輸入數(shù)據(jù)aidandvoidmain()charch[3][5]={"AAAA","BBB","CC"}:printf("ヽ"%s\"\n〃,ch[l]);#inlcude<stdio.h>ttinclude<string.h>voidmain()(charstr[10][80],c[80];inti;for(i=0;i<10;i++)gets(str[i]);strcpy(c,str[0]);for(i=l;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=l;i<20;i++)if(fabs(a[i]-pjz)<s)t=a[i]).輸出行、列號(hào)之和為3的數(shù)組元素。main(){charss[4][3]={'A','a','f','ゼ,'B','d','e','b','C','g','f','D'};intx,y,z;for(x=0; (1) ;x++)for(y=0; ⑵ ;y++){z=x+y;if( (3) ) printf("%c\n",ss[x][y]);}').將一個(gè)數(shù)組中的元素按逆序重新存放。例如原來(lái)的順序?yàn)?8,5,7,4,1I要求改為1,4,7,5,8〇#defineN7voidmain(){inta[N]={12,9,16,5,7,2,l},k,s;printf("\n初始數(shù)組:\n");for(k=O;k<N;k++)printf("%4d",a[k]);TOC\o"1-5"\h\zfor(k=0;k<(1) ;k++){s=a[k];a[k]= ⑵ ; ⑶ =s;}printf("\n交換后的數(shù)組:\n");for(k=0; (4) ;k++)printf("%4d",a[k]);.有一行文字,要求刪去某ー個(gè)字符。此行文字和要?jiǎng)h去的字符均山鍵盤(pán)輸入,要?jiǎng)h去的字符以字符形式輸入(如輸入a表示要?jiǎng)h去所有的a字符)。#include<stdio.h>voidmain(){ /*strl表示原來(lái)的一行文字,str2表示刪除指定字符后的文字?/charstr1[100],str2[100];charch;inti=0,k=0;printf(apleaseinputansentence:\nv);gets(strl);scanf(々%c",&ch);for(i=0; (2) ;i++)if(strl[i]!=ch){str2[ (3)]=strl[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(⑴ );strcpy(str,s[0]);for(i=l;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++)TOC\o"1-5"\h\z{s=(1) ;for(k=0;a[k];k++)if(s==a[k]) (2) ;if( (3) ){a[k]=s;n++;}printfC%dkind:",n);for(k=0; (4) ;k++)printf("%3d",a[k]);.求矩陣的馬鞍點(diǎn)。馬鞍點(diǎn)即它的值在行中最大,在它所在的列中最小。ttdefineN10#defineM10main(){inti,j,k,m,n,flagl,flag2;inta[N][M],max;printf("\n輸入行數(shù)n:");scanf("%d",&n);printf("\n輸入列數(shù)m:");scanf(*%d*,&m);for(i二〇;iくn;i++)for(j=0;j<m;j++)scanf(1) );for(i=0;i<n;i++){for(j=0;j<m;j++)printf(,z%5d,z,a[i][j]);⑵;flag2=0;for(i=0;i<n;i++){max=(3);for(j=l;j<m;j++)if(a[i][j]>max)max=a[i][j];for(j=0;j<m;j++){flagl=0;if(a[i][j]==max){for(k=0,flagl=l;k<n&&flagl;k++)if( (4) )flagl=0;if(flagl){printf("第%d行,第刎列的%d是鞍點(diǎn)、n〃, ⑸ )flag2=l;if(!flag2)printf("\n矩陣中無(wú)鞍點(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以后沒(méi)有被篩去的第一個(gè)數(shù)是3,然后把3的倍數(shù)都從數(shù)表中篩去,3以后沒(méi)被篩去的第一個(gè)數(shù)是5,然后把5的倍數(shù)都從數(shù)表中篩去。如此下去,直到遇到某數(shù)K(WN),其后沒(méi)有數(shù)可篩選為止,這時(shí)保留下的未被篩去的數(shù)就是2到N的素?cái)?shù)。.求一個(gè)3X3矩陣兩條對(duì)角線上元素之和(每個(gè)元素只加一次)。.打印如下形式的楊輝三角形;ヽTOC\o"1-5"\h\z13 3 11 4 6 4 11 5 10 10 5 1輸出前10行,從〇行開(kāi)始,分別用ー維數(shù)組和二維數(shù)組實(shí)現(xiàn)。.有一個(gè)二維數(shù)組整型數(shù)組中,每一行都有一個(gè)最大值,編程求出這些最大值以及它們的和。11,把一個(gè)二維實(shí)型數(shù)組a按照第〇列的元素進(jìn)行排序(由小到大排序,用起泡法)。例如:如果a[i][〇]大于a[i+l][〇],則i行與i+1行中所有元素都要進(jìn)行對(duì)換。.編程序?qū)⒁粋€(gè)字符串的前N個(gè)子字符送到ー個(gè)字符型數(shù)組中去,然后再加上一個(gè)‘\0'(不允許使用strcpy(strl,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è)字母改為大寫(xiě)。.有N個(gè)國(guó)家名,要求按字母先后順序排列(用起泡排序法)后輸出。.有17個(gè)人圍成一圈(編號(hào)為〇?16),從第〇號(hào)的人開(kāi)始從1報(bào)數(shù),凡報(bào)到3的倍數(shù)的人離開(kāi)圈子,然后再數(shù)下去,直到最后只剩下ー個(gè)人為止。問(wèn)此人原來(lái)的位置是多少號(hào)?.編程產(chǎn)生如下形式的方陣。TOC\o"1-5"\h\z1 2 22 22 13 1 22 21 43 3 12 14 43 3 31 44 43 3 15 14 43 1 55 51 41 5 55 55 1要求:不允許使用鍵盤(pán)輸入語(yǔ)句和靜態(tài)賦值語(yǔ)句,盡量少用循環(huán)。.打印所有不超過(guò)n(n<256)的其平方具有對(duì)稱性的數(shù)(也稱回文數(shù))。.求N個(gè)數(shù)中的最大值,最大值出現(xiàn)的次數(shù),然后求出次大值(次大值一定存在)。.找出MXN數(shù)組中所有不相鄰元素,并求出它們的和(相鄰的數(shù):前ー個(gè)是偶數(shù),后ー個(gè)是素?cái)?shù))?.圓盤(pán)上有如下圖所示的二十個(gè)數(shù),請(qǐng)找出哪四個(gè)相鄰數(shù)之和為最大,并指出它們的起始位置及最大和的值。20.已知100個(gè)自然數(shù)1~100,我們?nèi)?,2,3,4時(shí),我們可將其排成一圈使每?jī)蓚€(gè)數(shù)之和都是素?cái)?shù),即fIf2f3f4f,問(wèn)1?100內(nèi)連續(xù)取n個(gè)數(shù),即1?n(く100)能滿足上述要求的最大的n是多少?.打印魔方陣。所謂魔方陣是指這樣的方陣,它的每一行、每一列和對(duì)角線之和均相32等。例如:三階魔方陣為8165792要求打印由1到Nユ的自然數(shù)構(gòu)成的魔方陣。提示:魔方陣中各數(shù)的排列規(guī)律如下:⑴將“1”放在第一行中間一列;⑵從“2”開(kāi)始直到nXn為止各數(shù)依次按下列規(guī)則存放:每ー個(gè)數(shù)存放的行比前ー個(gè)數(shù)的行數(shù)減1,列數(shù)加1;⑶如果上一個(gè)數(shù)的行數(shù)為1,則下ー個(gè)數(shù)的行數(shù)為n(指最下一行);(4)當(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è)年齡找出來(lái)(可能有幾個(gè)這樣的年齡),并統(tǒng)計(jì)出現(xiàn)的次數(shù)。.nXn的拉丁方陣的每行、每列均為自然數(shù)的一個(gè)全排列,每行(列)上均無(wú)重復(fù)數(shù)。如n=5時(shí),5X5的ー種拉丁方陣可以為:TOC\o"1-5"\h\z5 2 4 33 4 5 115 3 22 3 1 43 4 12 5該數(shù)組的第一行1,5,2,4,3用程序自動(dòng)生成,但產(chǎn)生的第一行不一定非得是1,5,2,4,3,第一行填寫(xiě)完畢后,即以第一行作為全方陣索引,即若第一行中的第i列的元素值為j,則j在各行中的列號(hào)即為從第一行中元素值為i的那一列開(kāi)始讀出的n個(gè)自然數(shù)(到行末則從行頭接著讀),例如第一行第2列的元素值為5,則從元素值為2的那一列(第3列)開(kāi)始讀出2,4,3,1,5,這就是元素5在各行中的列標(biāo)號(hào)。測(cè)試數(shù)據(jù):①n=5 ②n=8第六單元函數(shù)ー、選擇題1?在C語(yǔ)言中,當(dāng)函數(shù)調(diào)用時(shí)0A.實(shí)參和形參各占一個(gè)獨(dú)立的存儲(chǔ)單元B.實(shí)參和形參共用存儲(chǔ)單元C.可以由用戶指定實(shí)參和形參是否共用存儲(chǔ)單元D.由系統(tǒng)自動(dòng)確定實(shí)參和形參是否共用存儲(chǔ)単元.以下函數(shù)調(diào)用語(yǔ)句中實(shí)參的個(gè)數(shù)為0exce((vl,v2),(v3,v4,v5),v6);A.3 B.4 C.5 D.6.如果在一個(gè)函數(shù)的復(fù)合語(yǔ)句中定義了一個(gè)變量,則該變量 0A.只在該符合語(yǔ)句中有效,在該符合語(yǔ)句外無(wú)效B,在該函數(shù)中任何位置都有效C.在本程序的原文件范圍內(nèi)均有效D.此定義方法錯(cuò)誤,其變量為非法變量.C語(yǔ)言允許函數(shù)值類型缺省定義,此時(shí)該函數(shù)值隱含的類型是。A.float型B.int型C.long型D.double型.C語(yǔ)言規(guī)定,函數(shù)返回值的類型是由0A.return語(yǔ)句中的表達(dá)式類型所決定B,調(diào)用該函數(shù)時(shí)的主調(diào)函數(shù)類型所決定C.調(diào)用該函數(shù)時(shí)系統(tǒng)臨時(shí)決定D,在定義該函數(shù)時(shí)所指定的函數(shù)類型決定.在C語(yǔ)言程序中,以下描述正確的是。A.函數(shù)的定義可以嵌套,但函數(shù)的調(diào)用不可以嵌套B.函數(shù)的定義不可以嵌套,但函數(shù)的調(diào)用可以嵌套C.函數(shù)的定義和函數(shù)的調(diào)用均不可以嵌套D.函數(shù)的定義和函數(shù)的調(diào)用均可以嵌套.以下敘述中正確的是0A.全局變量的作用域一定比局部變量的作用域范圍大B,靜態(tài)(static)類別變量的生存期貫穿于整個(gè)程序的運(yùn)行期間C.函數(shù)的形參都屬于全局變量D.未在定義語(yǔ)句中賦初值的auto變量和static變量的初值都是隨機(jī)值.以下程序的運(yùn)行結(jié)果是:#include<stdio_h>voidsub(ints[]?inty){staticintt=3;y=s[t];t—;main(){inta[]={l,2,3,4},i,x=0;for(i=0;i<4:i++){sub(a,x);printf(H%dH,x);}printf(w\nH);A)1234 B)4321 00000 D)4444.以下程序的運(yùn)行結(jié)果是:main(){intw=5;fun(w);printf(H\nM);}fun(intk){if(k>0)fun(k-l);printf(*'%d0,k);A)54321 B)012345 012345 D)543210.以下所列的各函數(shù)首部中,正確的是〇A)voidplay(vata:Integer,varb:Integer) B)voidplay(inta,b)Ovoidplay(inta,intb) D)Subplay(aasinteger,basinteger).當(dāng)調(diào)用函數(shù)時(shí),實(shí)參是?個(gè)數(shù)組名,則向函數(shù)傳送的是〇A)數(shù)組的長(zhǎng)度 B)數(shù)組的首地址〇數(shù)組每ー個(gè)元素的地址 D)數(shù)組每個(gè)元素中的值12,在調(diào)用函數(shù)時(shí),如果實(shí)參是簡(jiǎn)單變量,它與對(duì)應(yīng)形參之間的數(shù)據(jù)傳遞方式是—A)地址傳遞 B)單向值傳遞〇由實(shí)參傳給形,再由形參傳回實(shí)參D)傳遞方式由用戶指定13.以下函數(shù)值的類型是0fun(floatx){floaty;y=3*x-4;returny;A)intB)不確定 〇voidD)float二、讀程序?qū)懡Y(jié)果funl(inta,intb)intc;a+=a;b+=b;c=fun2(a,b);returnc*c;……intc;c=a*b%3;returnc;)main()intx=ll,y=19;printf(,zThefinalresultis:%d\n〃,funl(x,y))いmain()x=5;cude();printf("%d\n〃,x);cude()x=x*x*x;}^include<stdio.h>longfun(intn){longs;if(n==lIIn==2)s=2;elses=n+fun(n-l);returns;main(){printf(*%ld\n*,fun(4));…。){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=l,p;p=func(k,m);printf(〃%d,”,p)p=func(k,m);printf("%d\n",p)func(inta,intb){staticintm二〇,i=2;i+=m+l;m=i+a+b;returnm;{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);fun(intx,inty,intz){z=x*x+y*y;}main(){inta=31;fun(5,2,a);printf("%d",a);inta,b;voidfun(){a=100;b=200;}main(){inta=5,b=7;fun();printf("%d%d\n",a,b);intx=3;main(){inti;for(i=l;i<x;i++)incre();increO{staticintx=l;x*=x+l;printf(0%d",x);intfunc(inta,intb){return(a+b);}main(){intx=2,y=5,z=8,r;r=func(func(x,y),z);printf("%d\n",r);longfib(intn){if(n>2)return(fib(n-l)+fib(n-2));elsereturn(2);main(){printf(M%ld\nM,fib(3)};}三、填空題.編寫(xiě)ー個(gè)驗(yàn)證正整數(shù)M是否為素?cái)?shù)的函數(shù),若M是素?cái)?shù)則把1送到T中,否則寄送到T中。在主函數(shù)中讀入N個(gè)正整數(shù),每讀入ー個(gè)則調(diào)用函數(shù)判斷它是否為素?cái)?shù),在主函數(shù)中將T的值累加到另ー個(gè)變量中。用此方法可求出N個(gè)數(shù)中素?cái)?shù)的個(gè)數(shù)。請(qǐng)?zhí)羁胀瓿缮鲜龉δ艿某绦颉?include<stdio.h>#includeくmath.h>intprime(intm){inti,pp=l;for(i=2;(1);i++)if(m%i==0)pp=0;if(m==l) (2)return(pp);)main(){inta[20],i,sumニ〇;for(i=0;i<10;i++){scanfC/%d*,&a[i]);sum=(3))printf(*thenumberofprimedatais:%d”,sum);.編寫(xiě)ー函數(shù),由實(shí)參傳來(lái)ー個(gè)字符串,統(tǒng)計(jì)此字符串中字母、數(shù)字、空格和其它字符的個(gè)數(shù),在主函數(shù)中輸入字符串以及輸出上述的結(jié)果。請(qǐng)?zhí)羁胀瓿缮鲜龉δ艿某绦颉?include<stdio.h>#include<ctype.h>voidfitj(charstr[],inta[]){int11,1;11二⑴for(i=0;i<ll;i++){if(⑵)a[0]++;elseif((3) )a[l]++;elseif((4) )a[2]++;elsea[3]++;s1{staticcharstr[60];staticinta[4]={0,0,0,0};gets(str);fltj(str,a);printf(*%schar:%ddigit:%dspace:%dother:%d*,str,a[0],a[l],a[2],a[3]);.用遞歸方法求N階勒讓德多項(xiàng)式的值,遞歸公式為1 5=0)Pn=" x (〃=1)((2〃-l)x-pn_x(x)-(九-1)?P吋2(x))/〃 5>1)#include<stdio.h>main(){floatpn();floatx,1yd;intn;scanf("%d%f”,&n,&x);lyd=(1)printf(〃pn=%f",lyd);{floattemp;if(n==0)temp=(2)elseif(n==l)temp=(3)elsetemp=(4)return(temp);.以下函數(shù)的功能是:求x的y次方,請(qǐng)?zhí)羁?。doublefun(doublex,inty){inti;doublez:for(i=Lz=x;i<y;i++)z=z*(1) ;returnz:四、編程.編寫(xiě)ー函數(shù)判斷某數(shù)是否索數(shù)。.編寫(xiě)ー函數(shù)求三個(gè)整數(shù)的最大值。.打印出3到1100之間的全部素?cái)?shù)(判素?cái)?shù)由函數(shù)實(shí)現(xiàn))。.寫(xiě)ー函數(shù),使給定的一個(gè)二維數(shù)組(3X3)轉(zhuǎn)置,即行列互換。.寫(xiě)ー函數(shù),將兩個(gè)字符串連接,即編寫(xiě)ーstrcat函數(shù)。.寫(xiě)ー函數(shù),求一字符串長(zhǎng)度,即編寫(xiě)ーstrlen函數(shù)。.寫(xiě)ー函數(shù)將字符數(shù)組s!中的全部字符復(fù)制到字符數(shù)組s2中,不用strcpy函數(shù)。.寫(xiě)ー函數(shù)判斷某數(shù)是否“水仙花數(shù)”,所謂“水仙花數(shù)”是指一個(gè)三位數(shù),其各位數(shù)字立方和等于該數(shù)本身。例如153是ー個(gè)水仙花數(shù),因?yàn)?53=ド+53+33。9,在主函數(shù)內(nèi)任意輸入ー個(gè)5X6矩陣,編寫(xiě)ー函數(shù)求出每一行的和放到ー個(gè)ー維數(shù)組中,輸出此矩陣及其每一行的和。10.寫(xiě)ー主函數(shù)輸入ー數(shù)組,寫(xiě)一子函數(shù)實(shí)現(xiàn)對(duì)該數(shù)組的冒泡排序并輸出。1L任意輸入20個(gè)正整數(shù),找出其中的素?cái)?shù),并將這些素?cái)?shù)按由小到大排序。要求:判斷ー個(gè)數(shù)是否為素?cái)?shù)用函數(shù)實(shí)現(xiàn);排序用函數(shù)實(shí)現(xiàn)。.編寫(xiě)計(jì)算m的n次方的遞歸函數(shù)。.編ー個(gè)程序,讀入具有5個(gè)元素的整型數(shù)組,然后調(diào)用ー個(gè)函數(shù),遞歸計(jì)算這些元素的積。.編ー個(gè)程序,讀入具有5個(gè)元素的實(shí)型數(shù)組,然后調(diào)用ー個(gè)函數(shù),遞歸地找出其中的最大元素,并指出它位置。第七單元指針ー、選擇題1、若有以卜定義和語(yǔ)句,且0Wi<10則對(duì)數(shù)組元素的錯(cuò)誤引用是。inta[10]={l,2,3,4,5,6,7,8,9,10),*p,i;P=a;*(a+i) B.a[p-a] C.p+i D.*(&a[i])2、若有定義:inta[3][4];,不能表示數(shù)組元素a[l][1]。A.*(a[l]+l)B. [1])C.(*(a+l)[1])D.*(a+5)3、對(duì)如下定義,以下說(shuō)法中正確的是。char*a[2]={"abed","ABCD"};A.數(shù)組a的元素值分別為“abed"和"ABCD"a是指針變量,它指向含有兩個(gè)數(shù)組元素的字符型數(shù)組C.數(shù)組a的兩個(gè)元素分別存放的是含有4個(gè)字符的一維數(shù)組的首地址D.數(shù)組a的兩個(gè)元素中各自存放了字符’a’、‘A’的地址4、char*s="\t\\Name\\Address\n";指針s所指字符串的長(zhǎng)度為:。A.說(shuō)明不合法B.19 C.18 D.155、分析下面函數(shù),以下說(shuō)法正確的是〇swap(int*pl,int*p2){int*p;*p=*pl;*pl=*p2;*p2=*p;}A.交換?pl和?p2的值 B1正確,但無(wú)法改變?pl和?p2的值C.交換?pl和?p2的地址 D.可能造成系統(tǒng)故障,因?yàn)槭褂昧丝罩羔?、設(shè)有說(shuō)明int(*ptr)[M];其中ptr是。A.M個(gè)指向整型變量的指針B.指向M個(gè)整型變量的函數(shù)指針C,ー個(gè)指向具有M個(gè)整型元素的ー維數(shù)組的指針D,具有M個(gè)指針元素的ー維指針數(shù)組,每個(gè)元素都只能指向整型量7、在說(shuō)明語(yǔ)句:int*f"0;中,標(biāo)識(shí)符代表的是:〇A.ー個(gè)用于指向整型數(shù)據(jù)的指針變量 B,ー個(gè)用于指向ー維數(shù)組的指針C.ー個(gè)用于指向函數(shù)的指針變量D.一個(gè)返回值為指針型的函數(shù)名8、若intx,*pb;,則正確的賦值表達(dá)式是ー 。A.pb二&x B.pb=x;C.*pb二&x;D.*pb=?x9、有如下程序段int*p,a=10,b=l;p=&a;a二?p+b;執(zhí)行該程序段后,a的值為。A.12B.11C.10 D.編譯出錯(cuò)10、若有以下定義和語(yǔ)句:doubler=99,*p=&r;*p=r;則以下正確的敘述是。A,以上兩處的?p含義相同,都說(shuō)明給指針變量p賦值B,在“doubler=99,*p=&r;"中,把r的地址賦值給了p所指的存儲(chǔ)單元C.語(yǔ)句"*p二r;〃把變量r的值賦給指針變量pD.語(yǔ)句"*p=r;"取變量r的值放回r中11、要求函數(shù)的功能是交換x和y中的值,且通過(guò)正確調(diào)用返回交換結(jié)果.能正確執(zhí)行此功能的函數(shù)是〇funa (int *x, int *y) { int*p;*p二*x;*x二*y; *y二?p;}fund (int x,inty){ intt;t二x;x二y; y二t;}func (int *x, int *y) { *x二?y;*y二*x;}fund (int *x, int *y) { *x=?x+*y;*y二*x-*y;*x二?x-*y;}12、若有說(shuō)明:long*p,a;則不能通過(guò)scanf語(yǔ)句正確給輸入項(xiàng)讀入數(shù)據(jù)的程序段是〇*p=&a;scanf("%ld",p);p二(long*)malloc(8);scanf("%ld",p);scanf("%ld",p=&a);scanf("%ld",&a);13、對(duì)于類型相同的兩個(gè)指針變量之間,不能進(jìn)行的運(yùn)算是〇A.< B,= C.+ D.-14、若已定義:inta[9],*p=a;并在以后的語(yǔ)句中未改變p的值,不能表示a[l]地址的表達(dá)式是。A.p+1 B.a+1 C.a++ D.++p15、若有以下說(shuō)明:inta[10]={l,2,3,4,5,6,7,8,9,10),*p=a;則數(shù)值為6的表達(dá)式是〇A.*p+6B.*(p+6) C.?p+=5D.p+516、設(shè)Pl和P2是指向同一個(gè)int型ー維數(shù)組的指針變量,k為int型變量,則不能正確執(zhí)行的語(yǔ)句是。A.k=*Pl+*P2;B.p2=k;C.P1=P2;D.k=*Pl*(*P2);17、若有以下的定義:inta[]={1,2,3?4,5?6,7,8,9.10}>*p=a;則值為3的表式是..A.p+-2,*(p++) B.p+-2,*++pC.p+=3,*p++ D.p+=2,++*p18、若有以下定義和語(yǔ)句:inta[10]={l,2,3,4,5,6,7,8,9,10},*p=a;則不能表示a數(shù)組元素的表達(dá)式是。A.*p B.a[10] C.*a D.a[p-a]19、有如下說(shuō)明inta[10]={l,2,3,4,5,6,7,8,9,10},*p=a;則數(shù)值為9的表達(dá)式是。A.*p+9 B.*(p+8) C.*p+=9 D.p+820、下面程序輸出數(shù)組中的最大值,由s指針指向該元素.voidmain(){inta[10]={6,7,2,9,1,10,5,8,4,3,},*p,*s;for(p=a,s=a;p-a<10;p++)if([])s=p;printf("Themax:%d”,*s):)則在if語(yǔ)句中的判斷表達(dá)式應(yīng)該是〇A.p>sB.*p〉?sC.a[p]>a[s]D.p-a>p-s21、若有以下定義和語(yǔ)句:inta[10]={l,2,3,4,5,6,7,8,9,10},*p=a;則不能表示a數(shù)組元素的表達(dá)式是?A.*p B.a[10] C.*a D.a[p-a]22、若有以下定義和語(yǔ)句:intw[2][3],(*pw)[3];pw-w;則對(duì)w數(shù)組元素非法引用是〇A.*(w[0]+2)B.*(pw+1)⑵C.pw[0][0]D.*(pw[l]+2)23、有以下說(shuō)明和語(yǔ)句,則 ー是對(duì)c數(shù)組元素的正確引用。intc[4][5], (*cp)[5];cp=c:A.cp+1B.*(cp+3)C.*(cp+1)+3D.*(*cp+2)24、設(shè)有如下的程序段:charstr[ ;char*ptr;ptr=str;執(zhí)行上面的程序段后,*(ptr+5)的值為〇A.'o'B.'\0'C.不確定的值D.’〇'的地址25、下面函數(shù)的功能是0sss(char*s,char*t){while((*s)&&(*t)&&(*t++ニニ?s++));return(*s-*t);}A,求字符串的長(zhǎng)度 B,比較兩個(gè)字符串的大小C.將字符串s復(fù)制到字符串t中D,將字符串s接續(xù)到字符串t中26、下面各語(yǔ)句行中,能正確進(jìn)行字符串賦值操作的語(yǔ)句是〇A.charST[5]={〃ABCDE〃}; B.charS[5]={'A','B','C','D','E'};C.char*S;S=〃ABCDE": D.char*S;scanfS);27、下列函數(shù)的功能是〇intfunl(char*x){char*y=x;while(*y++);return(y-x-1);}A.求字符串的長(zhǎng)度 B,比較兩個(gè)字符串的大小C.將字符串X復(fù)制到字符串Y D.將字符串X連接到字符串Y后面28、請(qǐng)讀程序:#include<stdio.h>#include<string.h>voidmain(){char*S1="ABCDEF",*s2=〃aB";sl++;s2++;printf(級(jí)d\n”,strcmp(si,s2));)上面程序的輸出結(jié)果是〇A,正數(shù) B.負(fù)數(shù) C.零 D,不確定的值29、設(shè)有如下定義:in

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論