C程序設計復習題答案_第1頁
C程序設計復習題答案_第2頁
C程序設計復習題答案_第3頁
C程序設計復習題答案_第4頁
C程序設計復習題答案_第5頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

C程序設計復習題答案C程序設計復習題答案C程序設計復習題答案C程序設計復習題答案編制僅供參考審核批準生效日期地址:電話:傳真:郵編:程序設計基礎(chǔ)復習題答案填空題1、C語言所提供的實型變量分為兩種類型,它們是float和double。2、一個C源程序中至少應包含一個主函數(shù)或main函數(shù)。3.已知字母a的ASCII碼為十進制數(shù)97,且設ch為字符型變量,則表達式ch=’a’+’8’-’3’的值為102。4.在標準C語言中,輸入操作是由庫函數(shù)scanf()完成的,輸出操作是由庫函數(shù)printf()完成的。5.對以下說明:intc[10]={116,125,218,312,100,40,13,67,186};c[4]的值為100。6.在C語言中,引用數(shù)組元素時,引用數(shù)組元素時,其數(shù)組下標的數(shù)組類型允許

是整型常量或整型表達式。7.設y為int型變量,請寫出描述“y是偶數(shù)”的表達式(y%2)==0。8.設inti=0,j=1,k=2,a=3,b=4;執(zhí)行表達式(a=i<j)&&(b=j>k)的值為0。9.與表達式a+=b等價的另一書寫形式是a=a+b。10.有以下定義和語句inta[3][2]={1,2,3,4,5,6,},*p[3];p[0]=a[1];則*(p[0]+1)所代表的數(shù)組元素是a[1][1]。11.代表一個反斜杠字符“\”的轉(zhuǎn)義字符是'\\'。12.變量的指針就是變量的地址,存放變量地址的變量就是指針變量,它用來指向另一個變量。13.++i和i++的不同之處在于i++是先使用i的值后,再執(zhí)行i=i+1;而++i是先執(zhí)行i=i+1后,再使用i的值。14.設x、y和z是int型變量,且x=3,y=4,z=5,則表達式!((x<y)&&!z||1)值為0。15.已知函數(shù)intf(intk){return((k<0)1:f(k-2)+2);}

則f(3)的值是5。16.C語言中的標識符只能由字母、數(shù)字和下劃線三種字符組成,且第一個字符必須為字母或下劃線。 17.計算表達式:x=(i=4,j=10,k=24)后,x的值為24。18.若a和b均是int型變量,且a和b的初值均為5,則計算表達式a+=b++后,a的值為10,b的值為6。19.設inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;則表達式*(p+8)的值是9。20.若有以下定義:

chara;intb;

floatc;doubled;

則表達式a*b+d-c值的類型為double。21.*(p++)和*(++p)作用不同,它們的意義分別是*(p++)先取*p的值,后使p加1,*(++p)先使p加1,再取*p

二、程序理解題請給出運行以下程序的輸出結(jié)果:1.#include<>voidmain(){intu=24,v=16,w;while(v){w=u%v;u=v;v=w;}printf("%d\n",u);}輸出結(jié)果為:82.voidmain(){chars[]"Yes\n/No",*ps=s;puts(ps+4);*(ps+4)=0;puts(s);}輸出結(jié)果:/NoYes3.

main(){intp[7]={11,13,14,15,16,17,18};inti=0,j=0;while(i<7&&p[i]%2==1)j+=p[i++];printf("%d\n",j);}輸出結(jié)果:24。4、下列程序的運行結(jié)果是total=144。voidmain(){ intarr_sum(intarr[],intn);inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};int*p,total;p=a[0];total=arr_sum(p,12);printf(“total=%d\n”,total);}intarr_sum(intarr[],intn){ inti,sum=0;for(i=0;i<n;i++)sum=sum+arr[i]; return(sum);}5.給出以下程序的運行結(jié)果:voidmain(){inta,b,c;a=25;b=025;c=0x25;printf("%d,%d,%d\n",a,b,c);}運行結(jié)果:25,21,376.給出有下面一段程序的運行結(jié)果。voidmain(){intp[7]={11,13,14,15,16,17,18};inti=0,,j=0;while(i<7&&p[i]%2==1)j+=p[i++];printf("%d\n",j);}運行結(jié)果:247.給出有下面一段程序的運行結(jié)果。#include<>intfac(intn){ staticintf=1; f=f*n; return(f);}voidmain(){ inti; for(i=1;i<=5;i++) printf("%d!=%d\n",i,fac(i));}答案:1!=12!=23!=64!=245!=1208.給出有下面一段程序的運行結(jié)果。main(){inta[4][4]={{1,2,3,4},{5,6,7,8},{11,12,13,14},{15,16,17,18}};inti=0,j=0,s=0;while(i++<4){if(i==2||i==4)continue;j=0;do{s+=a[j];j++;}while(j<4);}printf("%d\n",s);}運行結(jié)果:92三、程序填空題1.以下程序可判斷輸入的一個整數(shù)是否能被5或13整除,若能整除,輸出“yes”并換行,否則輸出“no”并換行。請?zhí)羁铡?include<>voidmain(){intk;printf(“Enteraintnumber:”);scanf(“%d”,&k);if____(k%5==0||k%13==0)__________printf(“yes\n”);elseprintf(__“no\n”______);}2.下面程序是將鍵盤輸入的英文字符全改為小寫英文字符輸出,用換行符結(jié)束循環(huán)。請?zhí)羁铡?include<>voidmain(){charc;while((c=getchar())!='\n'){if(c>='A'||c<='Z')c=c+32;printf("%c",c);}printf("\n");}3.有一個一維數(shù)組score,內(nèi)放10個學生成績,求平均成績,請?zhí)羁铡?/p>

#include<>floataverage(floatarray[10]);voidmain(){floatscore[10],aver;inti;printf("input10scores:\n");for(i=0;i<10;i++)scanf("%f",&score[i]);printf("\n");aver=average(score);printf("averagescoreis%",aver);}floataverage(floatarray[10]){inti;floataver,sum=array[0];for(i=1;i<10;i++)sum=sum+array[i];aver=sum/10;returnaver;}4.以下程序從終端讀入數(shù)據(jù)到數(shù)組中,統(tǒng)計其中正數(shù)的個數(shù),并計算它們之和。請?zhí)羁铡oidmain(){inti,a[20],sum,count;sum=count=0;for(i=0;i<20;i++)scanf("%d",&a[i]);for(i=0;i<20;i++){if(a>0){count++;sum+=a[i];}}printf("sum=%d,count=%d\n",sum,count);}5.下面程序可以逐行輸出由language數(shù)組元素所指向的5個字符串。請?zhí)羁铡?include<>voidmain(){char*language[]={“BASIC”,“FORTRAN”,“PROLOG”,“JAVA”,“C++”};char**q;intk;for(k=0;k<5;k++){q=language+k;printf(“%s\n”,*q);}}6.以下程序的功能是:從鍵盤上輸入一行字符,存入一個字符數(shù)組中,然后輸出該字符串,請?zhí)羁铡?/p>

#include<>

voidmain()

{charstr[81],*sptr;

inti;

for(i=0;i<80;i++)

{str[i]=getchar();

if(str[i]=='\n')break;

}

str[i]='\0';

sptr=str;

while(*sptr)putchar(*sptr++);

}7、程序的功能是用遞歸方法計算第五位學生的年齡,請?zhí)羁铡_f歸公式如下: 10(n=1)age(n)= age(n-1)+2(n>1)程序:intage(intn){ intc;if(n==1) c=10;else c=age(n-1)+2;return(c);}voidmain(){ printf(“age:%d\n”,age(5));}下面程序的功能是在三個字符串中找出最小的,請?zhí)羁眨?include<>#include<>voidmain(){chars[20],str[3][30];inti;for(i=0;i<3;i++)gets(str[i]);strcpy(s,(strcmp(str[0],str[1])<0str[0]:str[1]));if(strcmp(str[2],s)<0)strcpy(s,str[2]);print(“%s\n”,s);}9)以下程序的功能是:通過指針操作,找出三個整數(shù)中的最小值并輸出。請?zhí)羁铡?include<>voidmain(){int*a,*b,*c,num,x,y,z;a=&x;b=&y;c=&z;printf(“輸入3個整數(shù):”);scanf(“%d%d%d”,a,b,c);printf(“%d,%d,%d\n”,*a,*b,*c);num=*a;if(*a>*b)num=*b;if(num>*c)num=*c;printf(“輸出最小整數(shù):%d\n”,num);}10.C語言源程序文件的后綴是,經(jīng)編譯后生成的文件的后綴是,連接后生成的文件的后綴是.exe。11.從鍵盤輸入一個大寫字母,要求改用小寫字母輸出。請?zhí)羁眨?include<>voidmain(){ charc1,c2;c1=getchar();printf(“%c,%d\n”,c1,c1);c2=c1+32;printf(“%c,%d\n”,c2,c2);}12.以下程序的功能是:從鍵盤上輸入一行字符,存入一個字符數(shù)組中,然后輸出該字符串。請?zhí)羁眨?/p>

#include<>

voidmain()

{charstr[81],*sptr;

inti;

for(i=0;i<80;i++)

{str[i]=getchar();

if(str[i]=='\n')break;

}

str[i]='\0';

sptr=str;

while(*sptr)putchar(*sptr++;

}13.輸入三角形的三邊長,求三角形面積。請?zhí)羁眨簐oidmain(){ floata,b,c,s,area; scanf(“%f,%f,%f”,&a,&b,&c); s=2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c));printf(“a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2f\n”,a,b,c,s);printf(“area=%7.2f\n”,area);}14.判斷m是否素數(shù)。請?zhí)羁眨?include<>#include<>voidmain(){intm,i,k;scanf("%d",&m);k=sqrt(m);for(i=2;i<=k;i++)if(m%i==0)break;if(i>k)printf("%disaprimenumber\n",m);elseprintf("%disnotaprimenumber\n",m);}15.以下程序?qū)斎氲囊粋€小寫字母,將字母循環(huán)后移5個位置后輸出。如’a’變成‘f’,’w’變成’b’。請?zhí)羁眨?include<>voidmain(){charc;c=getchar();if(c>=’a’&&c<=’u’)c=c+5;elseif(c>=’v’&&c<=z)c=c-21;putchar(c);}16.輸入三個整數(shù)x,y,z,請把這三個數(shù)由小到大輸出。請?zhí)羁眨?include""#include""main(){intx,y,z,t;scanf("%d%d%d",&x,&y,&z);if(x>y){t=x;x=y;y=t;}/*交換x,y的值*/if(x>z){t=z;z=x;x=t;}/*交換x,z的值*/if(y>z){t=y;y=z;z=t;}/*交換z,y的值*/printf("smalltobig:%d%d%d\n",x,y,z);}17.求1!+2!+3!+4!+…+20!的值。請?zhí)羁眨?include<>voidmain(){floats=0,t=1;intn;for(n=1;n<=20;n++){t=t*n;s=s+t;}printf("1!+2!+...+20!=%c\n",s);}18.輸入一行字符,分別統(tǒng)計出其中英文字母、空格、數(shù)字和其它字符的個數(shù)。請?zhí)羁眨?include""#include""main(){charc;intletters=0,space=0,digit=0,others=0;printf("pleaseinputsomecharacters\n");while((c=getchar())!='\n'){if(c>='a'&&c<='z'||c>='A'&&c<='Z')letters++;elseif(c=='')space++;elseif(c>='0'&&c<='9')digit++;elseothers++;}printf("allinall:char=%dspace=%ddigit=%dothers=%d\n",letters,space,digit,others);}19.以下程序是通過指針操作,找出三個整數(shù)中的最小值并輸出。請?zhí)羁眨?include<>voidmain(){int*a,*b,*c,num,x,y,z;a=&x;b=&y;c=&z;printf(“輸入3個整數(shù):”);scanf(“%d%d%d”,a,b,c);printf(“%d,%d,%d\n”,*a,*b,*c);num=*a;if(*a>*b)num=*b;if(num>*c)num=*c;printf(“輸出最小整數(shù):%d\n”,num);}20.下面程序的功能是打印100以內(nèi)個位數(shù)為6且能被3整除的所有數(shù)。請?zhí)羁铡?include<>voidmain(){inti,j;for(i=0;i<10;i++){j=i*10+6;if(j%3!=0)continue;printf(“%d”,j);}}四、編程題1.給學生成績,要求輸出成績等級‘A’‘B’‘C’‘D’‘E’。90分以上為‘A’,80-89分為‘B’,70-79分為‘C’,60-69分為‘D’,60分以下為‘E’。#include<>voidmain(){ floatscore; chargrade; printf("請輸入學生成績:"); scanf("%f",&score); while(score>100||score<0) { printf("\n輸入有誤,請重輸!"); scanf("%f",&score); } switch((int)(score/10)) { case10:case9:grade='A';break; case8:grade='B';break; case7:grade='C';break; case6:grade='D';break; case5: case4: case3: case2: case1: case0:grade='E'; } printf("成績是%,相應的等級是%c.\n",score,grade);}2.輸入一數(shù)組各元素值,將這個數(shù)組中的值按逆序重新存放(如原來順序為5,4,3,2,1要求改為1,2,3,4,5)。#include<>#defineN5voidmain(){ inta[N],i,temp; printf("Enterarray:\n"); for(i=0;i<N;i++) scanf("%d",&a[i]); printf("arraya:\n"); for(i=0;i<N;i++) printf("%4d",a[i]); for(i=0;i<N/2;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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

提交評論