C語言程序設(shè)計實例教程(常中華 慕課版)第2版-單元同步練習答案_第1頁
C語言程序設(shè)計實例教程(常中華 慕課版)第2版-單元同步練習答案_第2頁
C語言程序設(shè)計實例教程(常中華 慕課版)第2版-單元同步練習答案_第3頁
C語言程序設(shè)計實例教程(常中華 慕課版)第2版-單元同步練習答案_第4頁
C語言程序設(shè)計實例教程(常中華 慕課版)第2版-單元同步練習答案_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

《C語言程序設(shè)計實例教程(慕課版)第2版》單元同步練習答案第1單元 2第2單元 3第3單元 5第4單元 7第5單元 9第6單元 11第7單元 13第8單元 15第9單元 18第10單元 20

第1單元一、選擇題1-3CDD二、填空題1.主函數(shù)(main()函數(shù)),main()2.機器語言、匯編語言、高級語言,1972,ANSIC,C99三、問答與編程題1.一個C程序的構(gòu)成:預(yù)處理命令、說明部分、執(zhí)行部分2.#include<stdio.h> intmain(){ inta=4,b=3,s; s=a*b; printf(“areaofrectangleis%d\n”,s); }

第2單元選擇題1.C2.D3.B4.C5.C6.C7.A8.A9.A10.B11.D12.B13.D14.C15.C16.C17.A填空題1.字母、數(shù)字、下劃線、字母、下劃線2.59831593.ASCII碼4.sqrt(s*(s-a)*(s-b)*(s-c))5.16.07.2.58.441069.183310.511.m/100(m/10)%10m%10寫出下列程序的運行結(jié)果1.622.283.54.8,105.ch=x,x=-2,y=4,z=0.0000006.c1=4,c2=3,c3=2,c4=17.1,1,12,2,12,2,1編程題1.#include<stdio.h>intmain(){ floata=2,b=2.3,c=1.5,s,v; s=(a*b+b*c+a*c)*2; v=a*b*c; printf("表面積為%.2f,體積為%.2f\n",s,v); return0;}2.#include<stdio.h>intmain(){ charc; printf("InputaCapital:\n"); scanf("%c",&c); printf("Lowercase:%c\n",c+32); return0;}3.#include<stdio.h>intmain(){ intnum1,num2,temp; printf("請輸入兩個整數(shù):\n"); scanf("%d%d",&num1,&num2); if(num1<num2) { temp=num1;num1=num2;num2=temp; } printf("兩個數(shù)的商是%d,余數(shù)是%d\n",num1/num2,num1%num2); return0;}4.#include<stdio.h>intmain(){ floatc,f; printf("請輸入華氏溫度:\n"); scanf("%f",&f); c=5*(f-32)/9; printf("對應(yīng)的攝氏溫度為%.2f\n",c); return0;}

第3單元一、選擇題

ABAABDCCBB二、填空題

1.整型、字符型

2.putchar()

3.1個4.stdio.h

5.ld6.China

三、閱讀程序,輸出結(jié)果

1.562.10398A3.5,a,6

4.a=6.78四、編程題

1.#include<stdio.h>

intmain()

{

charch1,ch2,ch3,ch4,ch5;

printf("請輸入要加密的單詞:\n");

scanf("%c%c%c%c%c",&ch1,&ch2,&ch3,&ch4,&ch5);

printf("加密后:%c%c%c%c%c\n",ch1+5,ch2+5,ch3+5,ch4+5,ch5+5);

return0;

}

2.#include<stdio.h>#include<math.h>intmain(){floata,b,c,disc,x1,x2,p,q;disc=0;printf(“請輸入a,b,c的值:\n”);scanf("%f%f%f",&a,&b,&c);disc=b*b-4*a*c;p=-b/(2.0*a);q=sqrt(disc)/(2.0*a);x1=p+q;x2=p-q;printf("x1=%7.2f\nx2=%7.2f\n",x1,x2);return0;}3.

#include<stdio.h>

intmain()

{

intn;

doubledeposit,capital,rate;

printf("請輸入存款金額:\n");

scanf("%lf",&capital);

printf("請輸入存款年限:\n");

scanf("%d",&n);

printf("請輸入定期存款年利率:\n");

scanf("%lf",&rate);

deposit=capital+capital*rate*n;

printf("%d年后的本金和利息之和為:%lf\n",n,deposit);

return0;

}

第4單元一、選擇題1.A2.A3.D4.A5.A6.C7.A8.C9.A10.C二、填空題02.13.34.(x%3==0)||(x%7==0)5.(p<x)||(p<y)||(p!=z)6.(a+b>c)&&(a+c>b)&&(b+c>a)7.(ch>=’A’&&ch<=‘Z’)ch=ch-32三、寫出下列程序的運行結(jié)果20,02.5858583.34.25.0.5000006.8四、編程題1、#include<stdio.h>intmain(){ inta,b;printf("請輸入兩個數(shù):");scanf("%d%d",&a,&b);if(a>b) printf("最小數(shù)是%d",b);elseprintf("最小數(shù)是%d",a); return0;}2.#include<stdio.h>intmain(){ intx,y; printf("請輸入x的值:\n"); scanf("%d",&x); if(x>0) y=x+3; else if(x==0) y=0; else y=x-1; printf("輸出y的值:%d",y); return0;}3.#include<stdio.h>intmain(){ intsum; intyear,month,day,leap; printf("請輸入年月日:\n"); scanf("%d%d%d",&year,&month,&day); switch(month) { case1:sum=0;break; case2:sum=31;break; case3:sum=59;break; case4:sum=90;break; case5:sum=120;break; case6:sum=151;break; case7:sum=181;break; case8:sum=212;break; case9:sum=243;break; case10:sum=273;break; case11:sum=304;break; case12:sum=334;break; deflaut:printf("日期錯誤!\n");break; } sum=sum+day; if((year%4==0)&&(year%100!=0)||(year%400==0)) leap=1elseleap=0; if(leap&&month>2) { sum++; } printf("這是這年的第%d天\n",sum); return0;}

第5單元一、選擇題1.A2.B3.B4.A5.C6.B7.A8.C9.C10.D二、填空題1.whiledo-whilefor2.x1>0x1/2+2x1-x23.ch=getchar()ch>=’A’&&ch<=’Z’4.s=s+i*tt=t*(-1)5.2三、寫出下列程序的運行結(jié)果1.89212.SUM=24683.5四、編程題1.#include<stdio.h>intmain(){ inti,n,sum=0,data; printf("請輸入求和數(shù)據(jù)的個數(shù):\n"); scanf("%d",&n); printf("請輸入%d個正數(shù):\n",n); for(i=0;i<n;i++) { scanf("%d",&data); sum+=data; } printf("它們的和是%d\n",sum);return0;}2.#include<stdio.h>intmain(){ intm,i,sum=0; for(m=1;m<1000;m++) { sum=0; for(i=1;i<=m/2;i++) if(m%i==0) sum=sum+i; if(sum==m) printf("%d",m); }return0;}3.#include<stdio.h>intmain(){ inttemp,mul,max,min; printf("請輸入兩個整數(shù):\n"); scanf("%d%d",&max,&min); mul=max*min; if(max<min) { temp=max; max=min; min=temp; } while(max%min!=0) { temp=min; min=max%min; max=temp; } printf("最大公約數(shù):%d\n",min); printf("最小公倍數(shù):%d\n",mul/min); return0;}

第6單元一、選擇題

BCBDCADCCD

二、填空題

1.0

2.行,首地址

3.string.h4.05.j=2;j>=0;6.s[j++]=s[i];三、閱讀程序,輸出結(jié)果

1.8,10

2.19

3.AQM

4.9,8

5.you&me四、編程題

1.#include<stdio.h>#defineN10intmain(){inti,j,t,n;inta[N];printf("請輸入%d個元素:\n",N);for(i=0;i<N;i++)scanf("%d",&a[i]);for(i=0;i<N-1;i++)for(j=0;j<N-1-i;j++)if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}printf("最小元素為:%5d\n",a[0]);printf("最大元素為:%5d\n",a[N-1]);return0;}2.

#include<stdio.h>

#defineM10

intmain()

{

inta[M][M],i,j;

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

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

{

if(i==j||j==0)

a[i][j]=1;

else

a[i][j]=a[i-1][j]+a[i-1][j-1];

printf("%5d",a[i][j]);

if(i==j)

printf("\n");

}

return0;

}

3.

#include<stdio.h>

#include<string.h>

intmain()

{

chara[100];

printf("請輸入一個字符串:");

scanf("%s",&a);

inti,k=strlen(a);

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

{

if(a[i]<97)

{

a[i]+=32;

}

}

printf("%s",a);

return0;

}

第7單元一、選擇題1.A2.B3.C4.C5.B6.A7.A8.C9.C10.A二、填空題1.函數(shù)2.main函數(shù)3.void4.地址傳遞值傳遞5.auto三、寫出下列程序的運行結(jié)果1.112.108642135793.24.56345.ABEF6.579四、編程題1..#include<stdio.h>intf(intn);intmain(){ inta; scanf("%d",&a); printf("%d\n",f(a));return0; }intf(intn){ if(n==1||n==2) return1; else return(f(n-1)+f(n-2));}2.#include<stdio.h>voidinput(intscore[3][2]);//輸入學生的課程成績voidsavg(intscore[3][2]);//學生的平均分voidcavg(intscore[3][2]);//課程的平均分intmain(){ intscore[3][2]; input(score); savg(score); cavg(score); return0; }voidinput(intscore[3][2]){ inti,j; for(i=0;i<=2;i++) for(j=0;j<=1;j++) { printf("請輸入第%d個學生的第%d門功課成績:\n",i+1,j+1); scanf("%d",&score[i][j]); }}voidsavg(intscore[3][2]){ intsum1; floatavg1; for(inti=0;i<=2;i++) { intsum1=0; for(intj=0;j<=1;j++) { sum1+=score[i][j]; } avg1=sum1/2.0; printf("第%d個學生的平均分是%f\n",i+1,avg1); }}voidcavg(intscore[3][2]){ intsum2; floatavg2; for(intj=0;j<=1;j++) { intsum2=0; for(inti=0;i<=2;i++) { sum2+=score[i][j]; } avg2=sum2/3.0; printf("第%d門功課的平均分是%f\n",j+1,avg2); }}

第8單元選擇題1.D2.B3.D4.A5.B6.C7.B8.B9.C10.C11.A12.B13.D14.C15.A16.A填空題1.取地址、指針2.13.“ab\0”4.60寫出下列程序的輸出結(jié)果1.82.-5,-12,-73.264.55.ABCDCD6.abcDDfefDbD四、編程題1.#include<stdio.h>intmain(){ inta,b,c,x; int*pa,*pb,*pc; pa=&a; pb=&b; pc=&c; printf("請輸入3個整數(shù)\n"); scanf("%d%d%d",pa,pb,pc); if(*pa>*pb){x=*pa;*pa=*pb;*pb=x;} if(*pa>*pc){x=*pa;*pa=*pc;*pc=x;} if(*pb>*pc){x=*pb;*pb=*pc;*pc=x;}printf("這3個數(shù)由小到大的排列順序為%d,%d,%d",*pa,*pb,*pc);}2.#include<stdio.h>intlength(char*p){ intn=0; while(*p) { p++; n++; } return(n);}intmain(){ chars[100]; intlen; printf("請輸入一個字符串:"); gets(s); len=length(s); printf("該字符串長度為:%d",len); return0;}3.#include<stdio.h>#include<string.h>voidmystrcpy(char*str1,char*str2,intm){ intn,t,i; n=strlen(str1);//n是第一個字符串的長度 t=0;//t用來計數(shù) i=m-1;//i是第m個數(shù)據(jù)的下標 str1=str1+i; for(;i<=n;i++) { str2[t++]=*str1; str1++; }}intmain(){ intm; charstr1[100],str2[100]; printf("請輸入第一個字符串:\n"); gets(str1); printf("請輸入復(fù)制字符串的起始位置:\n"); scanf("%d",&m); mystrcpy(str1,str2,m); printf("復(fù)制完后,第二個字符串是:%s\n",str2); return0;}4.#include<stdio.h>#include<string.h>intstrcmp(char*ptr1,char*ptr2){intresult;while(*ptr1!='\0'&&*ptr2!='\0'){if(*ptr1!=*ptr2){result=*ptr1-*ptr2;break;}ptr1++;ptr2++;}if(*ptr1=='\0'||*ptr2=='\0'){result=*ptr1-*ptr2;}returnresult;}intmain(){charstr1[100]={0};charstr2[100]={0};printf("Pleaseentertwostrings:\n");gets(str1);gets(str2);printf("比較結(jié)果:%d\n",strcmp(str1,str2));return0;}

第9單元一、選擇題1.B2.C3.C4.C5.D6.A7.C8.A9.B10.A二、填空題1.structstudentstu2.結(jié)構(gòu)體3.數(shù)據(jù)類型4.(*p).a5.p->next=s;s->next=p->nextp->next=p->next->next三、寫出下列程序的輸出結(jié)果1.Zhaom85952.Zhao,m,290,Zhao,m,2903.Zhao,m,290,Zhao,m,290,Zhao,m,290,Sun,m,3704.05.2,3四、編程題1.#include<stdio.h>#include<stdlib.h>typedefstruct{charname[10];charbookname[20];charchubanshe[20];intyear;intprice;}worker;intmain(){workera[100];inti;printf("限制輸入5本書");printf("請輸入作者,書名,出版社,出版年月,價格");printf("列如:張三未來會更好青職學院201820)");for(i=0;i<5;i++){scanf("%s%s%s%d%d",&a[i].name,&a[i].bookname,&a[i].chubanshe,&a[i].year,&a[i].price);}printf("所有書的信息\n");printf("作者書名出版社出版年月價格\n");for(i=0;i<5;i++){printf("%s%s%s%d%d\n",a[i].name,a[i].bookname,a[i].chubanshe,a[i].year,a[i].price);}printf("20元以上的書有:\n");printf("書名\n");for(i=0;i<5;i++){if(a[i].price>20)printf("%s\n",a[i].bookname);} printf("2000年以后的書有:\n");printf("書名作者\n");for(i=0;i<5;i++){ if(a[i].year>2000) printf("%s

溫馨提示

  • 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

提交評論