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

下載本文檔

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

文檔簡介

單項選擇題1.(A)是構成C語言程序的基本單位。A、函數(shù)B、過程C、子程序D、子例程2.C語言程序從C開始執(zhí)行。A)程序中第一條可執(zhí)行語句???B)程序中第一個函數(shù)???C)程序中的main函數(shù)?????????D)包含文件中的第一個函數(shù)3、以下說法中正確的是(C)。A、C語言程序總是從第一個定義的函數(shù)開始執(zhí)行B、在C語言程序中,要調(diào)用的函數(shù)必須在main()函數(shù)中定義C、C語言程序總是從main()函數(shù)開始執(zhí)行D、C語言程序中的main()函數(shù)必須放在程序的開始部分4.下列關于C語言的說法錯誤的是(B)。A)C程序的工作過程是編輯、編譯、連接、運行B)C語言不區(qū)分大小寫。C)C程序的三種基本結(jié)構是順序、選擇、循環(huán)D)C程序從main函數(shù)開始執(zhí)行5.下列正確的標識符是(C)。A.-a1B.a[i]C.a2_iD.intt6.下列C語言用戶標識符中合法的是(B)。A)3axB)xC)caseD)-e2E)union7.下列四組選項中,正確的C語言標識符是(C)。A)%xB)a+bC)a123D)1238、下列四組字符串中都可以用作C語言程序中的標識符的是(A)。A、print_3ddb8aBcB、I\amone_halfstart$it3paiC、str_1CpppowwhileD、PxqMy->bookline#His.age9.C語言中的簡單數(shù)據(jù)類型包括(D)。A、整型、實型、邏輯型B、整型、實型、邏輯型、字符型C、整型、字符型、邏輯型D、整型、實型、字符型10.在C語言程序中,表達式5%2的結(jié)果是C。A)2.5B)2C)1D)311.如果inta=3,b=4;則條件表達式"a<ba:b"的值是__A__。A)3B)4C)012.若intx=2,y=3,z=4則表達式x<zy:z的結(jié)果是(B).A)4B)3C)2D)0E)113.C語言中,關系表達式和邏輯表達式的值是(B)。 A)0B)0或1C)1D)‘T’14.下面(D)表達式的值為4.??A)11/3??????????B)11.0/3??C)(float)11/3???D)(int)(11.0/3+0.5)15.設整型變量a=2,則執(zhí)行下列語句后,浮點型變量b的值不為0.5的是(B)A.b=1.0/aB.b=(float)(1/a)C.b=1/(float)aD.b=1/(a*1.0)16.若“intn;floatf=13.8;”,則執(zhí)行“n=(int)f%3”后,n的值是(AA.1B.4C.4.333333D.4.617.以下對一維數(shù)組a的正確說明是:Dchara(10); B)inta[];C)intk=5,a[k];D)chara[3]={‘a(chǎn)’,’b’,’c’};18.以下能對一維數(shù)組a進行初始化的語句是:(C)A.inta[5]=(0,1,2,3,4,)B.inta(5)={}C.inta[3]={0,1,2}D.inta{5}={10*1}19.在C語言中對一維整型數(shù)組的正確定義為D。A)inta(10);B)intn=10,a[n];C)intn;a[n];D)#defineN10inta[N];20、已知:inta[10];則對a數(shù)組元素的正確引用是(D)。A、a[10]B、a[3.5]C、a(5)D、a[0]21.若有以下數(shù)組說明,則i=10;a[a[i]]元素數(shù)值是(B)。inta[12]={1,4,7,10,2,5,8,11,3,6,9,12};A.10B.9C.6D.522.若有說明:inta[][3]={{1,2,3},{4,5},{6,7}};則數(shù)組a的第一維的大小為:(B)A.2B.3C.4D.無確定值57D)36923.對二維數(shù)組的正確定義是(C)A.inta[][]={1,2,3,4,5,6};B.inta[2][]={1,2,3,4,5,6};C.inta[][3]={1,2,3,4,5,6};D.inta[2,3]={1,2,3,4,5,6};24.已知inta[3][4];則對數(shù)組元素引用正確的是__C___A)a[2][4]B)a[1,3]C)a[2][0]D)a(2)(1)25.C語言中函數(shù)返回值的類型是由A決定的.A)函數(shù)定義時指定的類型B)return語句中的表達式類型C)調(diào)用該函數(shù)時的實參的數(shù)據(jù)類型D)形參的數(shù)據(jù)類型26.在C語言中,函數(shù)的數(shù)據(jù)類型是指(A)A函數(shù)返回值的數(shù)據(jù)類型B.函數(shù)形參的數(shù)據(jù)類型C調(diào)用該函數(shù)時的實參的數(shù)據(jù)類型D.任意指定的數(shù)據(jù)類型27.在函數(shù)調(diào)用時,以下說法正確的是(B)A.函數(shù)調(diào)用后必須帶回返回值B.實際參數(shù)和形式參數(shù)可以同名C.函數(shù)間的數(shù)據(jù)傳遞不可以使用全局變量D.主調(diào)函數(shù)和被調(diào)函數(shù)總是在同一個文件里28.在C語言中,表示靜態(tài)存儲類別的關鍵字是:(C)A)auto B)register C)static D)extern29.未指定存儲類別的變量,其隱含的存儲類別為(A)。A)autoB)staticC)externD)register30.若有以下說明語句:structstudent{intnum;charname[];floatscore;}stu;則下面的敘述不正確的是:(D)A.struct是結(jié)構體類型的關鍵字B.structstudent是用戶定義的結(jié)構體類型C.num,score都是結(jié)構體成員名D.stu是用戶定義的結(jié)構體類型名31.若有以下說明語句:structdate{intyear;intmonth;intday;}brithday;則下面的敘述不正確的是__C___.A)struct是聲明結(jié)構體類型時用的關鍵字B)structdate是用戶定義的結(jié)構體類型名C)brithday是用戶定義的結(jié)構體類型名D)year,day都是結(jié)構體成員名32.以下對結(jié)構變量stul中成員age的非法引用是Bstructstudent{intage;intnum;}stu1,*p;p=&stu1;A)stu1.ageB)student.ageC)p->ageD)(*p).age33.設有如下定義:strucksk{inta;floatb;}data;int*p;若要使P指向data中的a域,正確的賦值語句是CA)p=&a; B)p=data.a; C)p=&data.a; D)*p=data.a;34.設有以下說明語句:typedefstructstu{inta;floatb;}stutype;則下面敘述中錯誤的是(D)。A、struct是結(jié)構類型的關鍵字B、structstu是用戶定義的結(jié)構類型C、a和b都是結(jié)構成員名D、stutype是用戶定義的結(jié)構體變量名35.語句int*p;說明了C。A)p是指向一維數(shù)組的指針B)p是指向函數(shù)的指針,該函數(shù)返回一int型數(shù)據(jù)C)p是指向int型數(shù)據(jù)的指針D)p是函數(shù)名,該函數(shù)返回一指向int型數(shù)據(jù)的指針36.下列不正確的定義是(A)。int*p=&i,i;B.int*p,i;C.inti,*p=&i;D.inti,*p;37.若有說明:intn=2,*p=&n,*q=p,則以下非法的賦值語句是:(D)A)p=qB)*p=*qC)n=*qD)p=n38.有語句:inta[10],;則B是對指針變量p的正確定義和初始化。A)intp=*a;B)int*p=a;C)intp=&a;D)int*p=&a;39.若有說明語句“inta[5],*p=a;”,則對數(shù)組元素的正確引用是(C)。A.a[p]B.p[a]C.*(p+2)D.p+240.有如下程序inta[10]={1,2,3,4,5,6,7,8,9,10},*P=a;則數(shù)值為9的表達式是BA)*P+9B)*(P+8)C)*P+=9D)P+841.在C語言中,以D作為字符串結(jié)束標志A)’\n’B)’’C)’0’D)’\42.下列數(shù)據(jù)中屬于“字符串常量”的是(A)。A.“a”B.{ABC}C.‘a(chǎn)bc\0’D.‘a(chǎn)43.已知charx[]="hello",y[]={'h','e','a','b','e'};,則關于兩個數(shù)組長度的正確描述是B.A)相同B)x大于yC)x小于yD)以上答案都不對44.下面各函數(shù)中能實現(xiàn)打開文件功能的是AA)fopenB)fgetc C)fputc D)fclose45.下列語句中,把變量fp說明為一個文件型指針的是(A)。A)FILE*fp;B)FILEfp;C)file*fp;D)filefp;46.以讀寫方式打開一個已有的文本文件file1,并且FILE*fp,下面fopen函數(shù)正確的調(diào)用方式是(B)。A.fp=fopen(“file1”,“r”B.fp=fopen(“file1”,“r+”C.fp=fopen(“file1”,“rb”D.fp=fopen(“file1”,“w”讀程序基本輸入輸出及流程控制1.#include<stdio.h>main(){inta=1,b=3,c=5;if(c==a+b)printf("yes\n");elseprintf("no\n");}運行結(jié)果為:no2.#include<stdio.h>main(){inta=12,b=-34,c=56,min=0;min=a;if(min>b)min=b;if(min>c)min=c;printf("min=%d",min);}運行結(jié)果為:min=-343.#include<stdio.h>main(){intx=2,y=-1,z=5;if(x<y)if(y<0)z=0;elsez=z+1;printf(“%d\n”,z);}運行結(jié)果為:54.#include<stdio.h>main(){floata,b,c,t;a=3;b=7;c=1;if(a>b){t=a;a=b;b=t;}if(a>c){t=a;a=c;c=t;}if(b>c){t=b;b=c;c=t;}printf("%5.2f,%5.2f,%5.2f",a,b,c);}運行結(jié)果為:1.00,2.00,7.005.#include<stdio.h>main(){floatc=3.0,d=4.0;if(c>d)c=5.0;elseif(c==d)c=6.0;elsec=7.0;printf(“%.1f\n”,c);}運行結(jié)果為:7.06.#include<stdio.h>main(){ intm; scanf("%d",&m); if(m>=0) { if(m%2==0) printf("%disapositiveeven\n",m); else printf("%disapositiveodd\n",m); } else{ if(m%2==0)printf("%disanegativeeven\n",m); else printf("%disanegativeodd\n",m); }}若鍵入-9,則運行結(jié)果為:-9isanegativeodd7.#include<stdio.h>main(){intnum=0;while(num<=2){num++;printf("%d\n",num);}}運行結(jié)果為:1238.#include<stdio.h>main(){intsum=10,n=1;while(n<3){sum=sum-n;n++;}printf(“%d,%d”,n,sum);}運行結(jié)果為:3,79.#include<stdio.h>main(){intnum,c;scanf("%d",&num);do{c=num%10;printf("%d",c);}while((num/=10)>0);printf("\n");}從鍵盤輸入23,則運行結(jié)果為:3210#include<stdio.h>main(){ints=0,a=5,n;scanf("%d",&n);do{s+=1;a=a-2;}while(a!=n);printf("%d,%d\n",s,a);}若輸入的值1,運行結(jié)果為:2,111.#include"stdio.h"main(){charc;c=getchar();while(c!=''){putchar(c);c=getchar();}}如果從鍵盤輸入abcde?fgh(回車)運行結(jié)果為:abcde12.#include<stdio.h>main(){charc;while((c=getchar())!=’$’){if(‘A’<=c&&c<=‘Z’)putchar(c);elseif(‘a(chǎn)’<=c&&c<=‘z’)putchar(c-32);}}當輸入為ab*AB%cd#CD$時,運行結(jié)果為:ABABCDCD13.#include<stdio.h>main(){intx,y=0;for(x=1;x<=10;x++){if(y>=10)break;y=y+x;}printf(“%d%d”,y,x);}運行結(jié)果為:10514.#include<stdio.h>main(){charch;ch=getchar();switch(ch){case‘A’:printf(“%c”,’A’);case‘B’:printf(“%c”,’B’);break;default:printf(“%s\n”,”other”);}}當從鍵盤輸入字母A時,運行結(jié)果為:AB15.#include<stdio.h>main(){inta=1,b=0;scanf(“%d”,&a);switch(a){case1:b=1;break;case2:b=2;break;default:b=10;}printf("%d",b);}若鍵盤輸入5,運行結(jié)果為:1016.#include<stdio.h>main()_{chargrade=’C’;switch(grade){case‘A’:printf(“90-100\n”);case‘B’:printf(“80-90\n”);case‘C’:printf(“70-80\n”);case‘D’:printf(“60-70\n”);break;case‘E’:printf(“<60\n”);default:printf(“error!\n”);}}運行結(jié)果為:70-8060-7017.#include<stdio.h>main(){inty=9;for(;y>0;y--)if(y%3==0){printf(%d”,--y);continue;}}運行結(jié)果為:85218.#include<stdio.h>main(){inti,sum=0;i=1;do{sum=sum+i;i++;}while(i<=10);printf(“%d”,sum);

}運行結(jié)果為:5519.#include<stdio.h>#defineN4main(){inti;intx1=1,x2=2;printf("\n");for(i=1;i<=N;i++){printf("%4d%4d",x1,x2);if(i%2==0)printf("\n");x1=x1+x2;x2=x2+x1;}}運行結(jié)果為:1235813213420#include<stdio.h>main(){intx,y;for(x=30,y=0;x>=10,y<10;x--,y++)x/=2,y+=2;printf(“x=%d,y=%d\n”,x,y);}運行結(jié)果為:x=0,y=1221.#include<stdio.h>#defineN4main(){inti,j;for(i=1;i<=N;i++){for(j=1;j<i;j++) printf("");printf("*");printf("\n");}}運行結(jié)果為:****數(shù)組1.#include<stdio.h>main(){inti,a[10];for(i=9;i>=0;i--)a[i]=10-i;printf(“%d%d%d”,a[2],a[5],a[8]);}運行結(jié)果為:8522.#include<stdio.h>main(){inti,a[6];for(i=0;i<6;i++)a[i]=i;for(i=5;i>=0;i--)printf("%3d",a[i]);}運行結(jié)果為:5432103.#include<stdio.h>main(){inti,k,a[10],p[3];k=5;for(i=0;i<10;i++)a[i]=i;for(i=0;i<3;i++)p[i]=a[i*(i+1)];for(i=0;i<3;i++)k+=p[i]*2;printf("%d\n",k);}運行結(jié)果為:214.#include<stdio.h>intm[3][3]={{1},{2},{3}};intn[3][3]={1,2,3};main(){printf(“%d,”,m[1][0]+n[0][0]);printf(“%d\n”,m[0][1]+n[1][0]);}運行結(jié)果為:3,05.#include<stdio.h>main(){inti;intx[3][3]={1,2,3,4,5,6,7,8,9};for(i=1;i<3;i++)printf("%d",x[i][3-i]);}運行結(jié)果為:686.#include<stdio.h>main(){intn[3][3],i,j;for(i=0;i<3;i++){for(j=0;j<3;j++){n[i][j]=i+j;printf(“%d”,n[i][j]);}printf(“\n”);}}運行結(jié)果為:0121232347.#include<stdio.h>main(){chardiamond[][5]={{‘_’,’_’,’*’},{‘_‘,’*’,’_’,’*’},{‘*’,’_’,’_‘,’_‘,’*’},{‘_’,’*’,’_’,’*’},{‘_’,’_’,’*’}};inti,j;for(i=0;i<5;i++){for(j=0;j<5;j++)printf(“%c”,diamond[i][j]);printf(“\n”);}}注:“_”代表一個空格。運行結(jié)果為:********8.#include<stdio.h>main(){inti,f[10];f[0]=f[1]=1;for(i=2;i<10;i++)f[i]=f[i-2]+f[i-1];for(i=0;i<10;i++){if(i%4==0)printf(“\n”);printf(“%d”,f[i]);}}運行結(jié)果為:112358132134559.#include“stdio.h”func(intb[]){intj;for(j=0;j<4;j++)b[j]=j;}main(){inta[4],i;func(a);for(i=0;i<4;i++)printf(“%2d”,a[i]);}運行結(jié)果為:012310.#include<stdio.h>main(){floatfun(floatx[]);floatave,a[3]={4.5,2,4};ave=fun(a);printf(“ave=%7.2f}floatfun(floatx[]){intj;floataver=1;for(j=0;j<3;j++)aver=x[j]*aver;return(aver);}運行結(jié)果為:ave=36.0011.#include<stdio.h>main(){inta[2][3]={{1,2,3},{4,5,6}};intb[3][2],i,j;for(i=0;i<=1;i++){for(j=0;j<=2;j++)b[j][i]=a[i][j];}for(i=0;i<=2;i++){for(j=0;j<=1;j++)printf("%5d",b[i][j]);}}運行結(jié)果為:14253612.#include<stdio.h>f(intb[],intn){inti,r;r=1;for(i=0;i<=n;i++)r=r*b[i];return(r);}main(){intx,a[]={1,2,3,4,5,6,7,8,9};x=f(a,3);printf(“%d\n”,x);}運行結(jié)果為:2413.#include"stdio.h"main(){intj,k;staticintx[4][4],y[4][4];for(j=0;j<4;j++)for(k=j;k<4;k++)x[j][k]=j+k;for(j=0;j<4;j++)for(k=j;k<4;k++)y[k][j]=x[j][k];for(j=0;j<4;j++)for(k=0;k<4;k++)printf("%d,",y[j][k]);}運行結(jié)果為:0,0,0,0,1,2,0,0,2,3,4,0,3,4,5,6函數(shù)1.#include<stdio.h>intSub(inta,intb){return(a-b);}main(){intx,y,result=0; scanf("%d,%d",&x,&y);result=Sub(x,y);printf("result=%d\n",result);}當從鍵盤輸入:6,3運行結(jié)果為:result=32.#include<stdio.h>intmin(intx,inty){intm;if(x>y)m=x;else m=y;return(m);}?main(){inta=3,b=5,abmin; abmin=min(a,b); printf(“minis%d”,abmin);}運行結(jié)果為:minis53.#include<stdio.h>func(intx){x=10;printf(“%d,”,x);}main(){intx=20;func(x);printf(“%d”,x);}運行結(jié)果為:10,204.#include<stdio.h>intm=4;intfunc(intx,inty){intm=1;return(x*y-m);}main(){inta=2,b=3;printf("%d\n",m);printf("%d\n",func(a,b)/m);}運行結(jié)果為:415.#include<stdio.h>intfun(inta,intb){if(a>b)return(a);elsereturn(b);}main(){intx=15,y=8,r;r=fun(x,y);printf("r=%d\n",r);}運行結(jié)果為:r=156.#include<stdio.h>intfac(intn){intf=1,i;for(i=1;i<=n;i++)f=f*i;return(f);}main(){intj,s;scanf(“%d”,&j);s=fac(j);printf("%d!=%d\n",j,s);}如果從鍵盤輸入3,運行結(jié)果為:3!=67.#include<stdio.h>unsignedfun6(unsignednum){unsignedk=1;do{k*=num%10;num/=10;}while(num);returnk;}main(){unsignedn=26;printf(“%d\n”,fun6(n));}運行結(jié)果為:128.#include<stdio.h>intmax(intx,inty);main(){inta,b,ca=7;b=8;c=max(a,b);printf("Maxis%d",c);}max(intx,inty){intz;z=x>yx:y;return(z);}運行結(jié)果為:Maxis8指針1.#include<stdio.h>main(){intx[]={10,20,30,40,50};int*p;p=x;printf(“%d”,*(p+2));}運行結(jié)果為:302.#include<stdio.h>main(){chars[]=”abcdefg”;char*p;p=s;printf(“ch=%c\n”,*(p+5));}運行結(jié)果為:ch=f3.#include<stdio.h>main(){inta[]={1,2,3,4,5};intx,y,*p;p=a;x=*(p+2);printf("%d:%d\n",*p,x);}運行結(jié)果為:1:34.#include<stdio.h>main(){intarr[]={30,25,20,15,10,5},*p=arr;p++;printf(“%d\n”,*(p+3));}運行結(jié)果為:105.#include<stdio.h>main(){inta[]={1,2,3,4,5,6};intx,y,*p;p=&a[0];x=*(p+2);y=*(p+4);printf(“*p=%d,x=%d,y=%d\n”,*p,x,y);}運行結(jié)果為:*p=1,x=3,y=56.#include<stdio.h>main(){staticchara[]=”Program”,*ptr;for(ptr=a,ptr<a+7;ptr+=2)putchar(*ptr);}運行結(jié)果為:Prom7.#include<stdio.h>chars[]=”ABCD”;main(){char*p;for(p=s;p<s+4;p++)printf(“%c%s\n”,*p,p);}運行結(jié)果為:AABCDBBCDCCDDD結(jié)構體1.#include<stdio.h>structst{intx;inty;}a[2]={5,7,2,9};main(){printf("%d\n",a[0].y*a[1].x);}運行結(jié)果是:142.#include<stdio.h>main(){structstu{intnum;chara[5];floatscore;}m={1234,”wang”,89.5};printf(“%d,%s,%f”,m.num,m.a,m.score);}運行結(jié)果是:1234,wang,89.53.#include<stdio.h>structcmplx{intx;inty;}cnum[2]={1,3,2,7};main(){printf(“%d\n”,cnum[0].y*cnum[1].x);}運行結(jié)果是:64.#include<stdio.h>structabc{inta,b,c;};main(){structabcs[2]={{1,2,3},{4,5,6}};intt;t=s[0].a+s[1].b;printf("%d\n",t);}運行結(jié)果是:6程序填空1.輸入一個字符,判斷該字符是數(shù)字、字母、空格還是其他字符。main(){charch;ch=getchar();if(ch>=’a’&&ch<=’z’||ch>=’A’&&ch<=’Z’)printf("ItisanEnglishcharacter\n");elseif(ch>=’0’&&ch<=’9printf("Itisadigitcharacter\n");elseif(ch==‘’)printf("Itisaspacecharacter\n");elseprintf("Itisothercharacter\n");}2.下列程序的功能是從輸入的整數(shù)中,統(tǒng)計大于零的整數(shù)個數(shù)和小于零的整數(shù)個數(shù)。用輸入0來結(jié)束輸入,用i,j來放統(tǒng)計數(shù),請?zhí)羁胀瓿沙绦?。voidmain(){intn,i=0,j=0;printf(“inputainteger,0forend\n”);scanf(“%d”,&n);while(n或n!=0){if(n>0)i=i+1;elsej=j+1;}printf(“i=%4d,j=%4d\n”,i,j);}3.編程計算1+3+5+……+101的值#include<stdio.h>voidmain(){ inti,sum=0; for(i=1;i<=101;i++) sum=sum+i; printf("sum=%d\n",sum);}4.編程計算1+3+5…+99的值main(){ inti,sum=0;i=1;while(i<100) { sum=sum+i;i++;} printf("sum=%d\n",sum);}5.從鍵盤輸入一個字符,判斷它是否是英文字母。#include<stdio.h> voidmain(){charc;printf("inputacharacter:");c=getchar();if(c>=‘A’&&c<=‘Z’||c>=‘a(chǎn)’&&c<=‘z’)printf("Yes\n");elseprintf("No");}6.下面程序的功能是在a數(shù)組中查找與x值相同的元素所在位置,請?zhí)羁铡?include<stdio.h>voidmain(){inta[10],i,x;printf(“input10integers:”);for(i=0;i<10;i++)scanf(“%d”,&a[i]);printf(“inputthenumberyouwanttofindx:”);scanf(“%d”,&x);for(i=0;i<10;i++)if(x==a[i])break;if(i<10)printf(“theposofxis:%d\n”,i);elseprintf(“cannotfindx!\n”);}7.程序讀入20個整數(shù),統(tǒng)計非負數(shù)個數(shù),并計算非負數(shù)之和。#include<stdio.h>main(){inti,a[20],s,count;s=count=0;for(i=0;i<20;i++)scanf(“%d”,&a[i]);for(i=0;i<20;i++){if(a[i]<0)continue;s+=a[i];count++;}printf(“s=%d\tcount=%d\n”,s,count”);}8.輸入一個正整數(shù)n(1<n≤10),再輸入n個整數(shù),用選擇法將它們從小到大排序后輸出。#include<stdio.h>intmain(void){inti,index,k,n,temp;/*定義1個數(shù)組a,它有10個整型元素*/printf(“Entern:");printf(“Enter%dintegers:",n);for(i=0;i<n;i++)scanf("%d",&a[i]);for(k=0;k<n-1;k++){/*對n個數(shù)排序*/index=k;for()if()index=i;}printf("Aftersorted:");for(i=0;i<n;i++)/*輸出n個數(shù)組元素的值*/return0;}程序改錯一、下面每個程序的劃線處有語法或邏輯錯誤,請找出并改正,使其得到符合題意的執(zhí)行結(jié)果。1.求1234nmain(){longintsum;intn,i=1;scanf("%d",n);printf(“\n”);while(i<n){sum=sum*i;i++;}printf("sum=%d",sum);}sum應初始化即加入sum=1第四行改為:scanf(“%d”,&n);第六行改為:while(i<=n)第十行改為:printf("sum=%ld",sum);2.求一個數(shù)組中最大值及其下標。main(){intmax,j,m;inta[5];for(j=1;j<=5;j++)scanf(“%d”,a);max=a[0];for(j=1;j<=5;j++)if(max>a[j]){max=a[j];m=j;}printf(“下標:%d\n最大值:%d”,j,max)}第四行改為:for(j=0;j<5;j++)第五行改為:scanf(“%d”,&a[j]);第七行改為:for(j=0;j<5;j++)第八行改為:if(max<a[j])第十三行改為:printf(“下標:%d\n最大值:%d”,m,max)3.用一個函數(shù)求兩個數(shù)之和。sum(x,y){floatz;z=x+y;return;}main(){floata,b;intc;scanf("%f,%f",&a,&b);c=sum(a,b);printf("\nSumis%f",sum);}第一行改為:floatsum(floatx,floaty);第四行改為:return(z);第八行:floatc;第十一行:printf("\nSumis%f",c);4.程序讀入20個整數(shù),統(tǒng)計非負數(shù)個數(shù),并計算非負數(shù)之和.#include“stdio.h”main(){inti,s,count,n=20;inta[n];s=count=1;for(i=1,i<20,i--)scanf(“%d”,a[i]);for(i=0;i<20;i++){if(a[i]<0)break;s+=a[i];count++;}printf(“s=%fcount=%f\n”,s,count);}printf(“s=%dcount=%d\n”,s,count);答案:inta[20]s=count=0;for(i=0;i<20;i--)scanf(“%d”,&a[i]);continue;5.從鍵盤輸入整數(shù)x的值,并輸出y的值.main(){floatx,y;scanf(“%d”,&x);y=3.5+x;printf(“y=%d”);}正確的:intx;floaty;printf(“y=%f”,y);6編程計算下面分段函數(shù),輸入x,輸出ymain(){intx,y;printf(“\nInputx:\n”);scanf(“%d”,x);if(x<0)y=x-1;elseif(x>=0||x<=10)y=2x-1;elsey=3x-1;printf(“y=%d”,&y);}7.求100~300間能被3整除的數(shù)的和。main(){intn;longsum;for(n=100,n<=300,n++){if(n%3=0)sum=sum*n;}printf(“%ld”,sum);}8.求表達式的值#include<stdio.h>#include<math.h>intfun(intx,inty);main(){ inta,b;floatf;scanf(“%d,%d”,a,b);if(ab>0){fun(a,b);printf("Theresultis:%d\n",&f)}elseprintf(“error!”);}fun(x,y){ floatresult; result=sqrt(a+b); return;}9、通過函數(shù)調(diào)用,求兩個數(shù)之差sub(x,y){floatz;z=x-y;return;}main(){floata,b;intc;scanf(“%f,%f”,&a,&b);sub(a,b);printf(“\nSubis%f”,sub);}編程題1.輸入2個整數(shù),求兩數(shù)的平方和并輸出。#include<stdio.h>intmain(void){intta,b,s;printf("pleaseinputa,b:\n");scanf("%d%d”,&a,&b); s=a*a+b*b;printf("theresultis%d\n",s);return0; }2.輸入一個圓半徑r,當r>=0時,計算并輸出圓的面積和周長,否則,輸出提示信息。#include<stdio.h>#definePI3.14intmain(void){doubler,area,girth;printf("pleaseinputr:\n");scanf("%lf",&r); if(r>=0) {area=PI*r*r;girth=2*PI*r; printf("theareais%.2f\n",areaprintf("thegirthis%.2f\n",girthelseprintf("Inputerror!\n");return0;}3、已知函數(shù)y=f(x),編程實現(xiàn)輸入一個x值,輸出y值。2x+1(x<0)y=0(x=0)2x-1(x>0)#include<stdio.h>voidmain(){intx,y;scanf(“%d”,&x);if(x<0)y=2*x+1;elseif(x>0)y=2*x-1;elsey=0;printf(“%d”,y);}4.從鍵盤上輸入一個百分制成績score,按下列原則輸出其等級:score≥90,等級為A;80≤score<90,等級為B;70≤score<80,等級為C;60≤score<70,等級為D;score<60,等級為E。#include<stdio.h>voidmain(){ intdata; chargrade; printf("Pleaseenterthescore:"); scanf("%d”,&data); switch(data/10) {case10:case9:grade=’A’;break; case8:grade=’B’; break; case7:grade=’C’; break;case6:grade=’D’; break; default:grade=’E’; }printf("thegradeis%c”,grade);}5.編一程序每個月根據(jù)每個月上網(wǎng)時間計算上網(wǎng)費用,計算方法如下:要求當輸入每月上網(wǎng)小時數(shù),顯示該月總的上網(wǎng)費用(6分)#include<stdio.h>voidmain(){inthour;floatfee;printf(“pleaseinputhour:\n”);scanf(“%d”,&hour);if(hour<=10)fee=30;elseif(hour>=10&&hour<=50)fee=3*hour;elsefee=hour*2.5;printf(“Thetotalfeeis%f”,fee);}6.從鍵盤輸入10個整數(shù),統(tǒng)計其中正數(shù)、負數(shù)和零的個數(shù),并在屏幕上輸出。#include<stdio.h>voidmain(){inta,i,p=0,n=0,z=0;printf("pleaseinputnumber");for(i=0;i<10;i++){scanf("%d,",&a);if(a>0)p++;elseif(a<0)n++;elsez++;}printf("正數(shù):%5d,負數(shù):%5d,零:%5d\n",p,n,z);}7、編程序?qū)崿F(xiàn)求1-10之間的所有數(shù)的乘積并輸出。#include<stdio.h>voidmain(){inti;longsum=1;for(i=1;i<=10;i=i+1)sum=sum*i;printf(“thesumofoddis:%ld”,sum);}8.從鍵盤上輸入10個數(shù),求其平均值。#include<stdio.h>voidmain(){ inta,i,sum=0; floatave;; for(i=0;i<10;i++){scanf("%d",&a);sum+=a; }ave=(float)sum/10; printf("ave=%f\n",ave);}9、編程序?qū)崿F(xiàn)求1-1000之間的所有奇數(shù)的和并輸出。#include<stdio.h>voidmain(){inti,sum=0;for(i=1;i<1000;i=i+2)sum=sum+i;printf(“thesumofoddis:%d”,sum);}10.有一個分數(shù)序列:2/1,3/2,5/3,8/5,13/8,……編程求這個序列的前20項之和。#include<stdio.h>voidmain(){inti,t,n=20;floata=2,b=1,s=0;for(i=1;i<=n;i++){s=s+a/b;t=a;a=a+b;b=t;}printf("sum=%6.}11.從鍵盤輸入兩個數(shù),求出其最大值(要求使用函數(shù)完成求最大值,并在主函數(shù)中調(diào)用該函數(shù))#include<stdio.h>floatmax(floatx,floaty);voidmain(){floata,b,m;scanf("%f,%f",&a,&b);m=max(a,b);printf("Maxis%f\n",m);}floatmax(floatx,floaty){if(x>=y)returnx;elsereturny;}12.編寫程序,其中自定義一函數(shù),用來判斷一個整數(shù)是否為素數(shù),主函數(shù)輸入一個數(shù),輸出是否為素數(shù)。#include<math.h>#include<stdio.h>intIsPrimeNumber(intnumber){ inti; if(number<=1) return0; for(i=2;i<sqrt(number);i++) { if((number%i)==0) return0; } return1;}voidmain(){intn;printf(“Pleaseinputn:”);scanf(“%d”,&n);if(IsPrimeNumber(n))printf(“\n%disaPrimeNumber”,n);elseprintf(“\n%disnotaPrimeNumber”,n);}13、從鍵盤輸入n個數(shù)存放在數(shù)組中,將最小值與第一個數(shù)交換,輸出交換后的n個數(shù)。

#include<stdio.h>intmain(void){inti,n,iIndex,temp; inta[10];printf("Entern:"); scanf("%d",&n);printf("Enter%dintegers:\n",n);for(i=0;i<n;i++) scanf("%d",&a[i]); iIndex=0;for(i=1;i<10;i++){ if(a[i]<a[iIndex]) iIndex=i; }temp=a[0];a[0]=a[iIndex];a[iIndex]=temp;for(i=0;i<10;i++) printf("%5d",a[i]); printf("\n");return0;}14.用數(shù)組實現(xiàn)以下功能:輸入5個學生成績,而后求出這些成績的平均值并顯示出來。#include<stdio.h>voidmain(){inta[5],s=0;inti;for(i=0;i<5;i++)scanf(“%d”

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論