《C語言程序設計》課后習題參考答案_第1頁
《C語言程序設計》課后習題參考答案_第2頁
《C語言程序設計》課后習題參考答案_第3頁
《C語言程序設計》課后習題參考答案_第4頁
《C語言程序設計》課后習題參考答案_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

一、單項選擇題

1-4CCAB5~8DADC

二、填空題

L鏈接

2.#

3.main

4.//

5..h

6.窮舉法、遞歸法、回溯法(貪心法、分治法)

三、應用題

1、

#include<stdio.h>

intmain(){

printf("\t\t\n\n");

printf("\t\t\tClanguageprogram\n\n");

prjntf(''\t't******************************'n\n")?

return0;

)

編輯C程序源代碼分編譯C程序,生成目標程序分鏈接目標

程序,生成可執(zhí)行文件分運行,查看結果

l.B

2.C

3.C

4.D

5.A

1.x=l;y=l;z=l;

2.-1

3.2,2

4.12353514

5.12353514

第3章答案:

l.D

2.D

3.B

4.C

5.C

1.答案:0

2.答案:3

3.答案:YES

4.答案:YES

5.41

一、選擇題

1、A2、B3、A4、A5、A

二、填空題

1、while>do...while、for語句

2、循環(huán)體、循環(huán)表達式、循環(huán)變量

3、s=7

4、i=8

5、*

***

****

第5章

一、選擇題

1、B2、B3、C4、B5、D6、C7、A8、B9、A10、

A

二、填空題

1、(l)j=9;(2)i>=0;

2、(1)temp[10]={0};(2)strcpy(temp,str);

3、(1)i<3;a[i][i]

4、(l)&a[i];(2)(i%4)==0;(3)printf("\n");

二、編程題

1、

#include<stdio.h>

voidmain()

{inti,j,a[10],t;

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

scanf(zz%d//,&a[i]);

for(j=l;j<10;j++)

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

if(a[i]>a[i+l])

{t=a[i+l];a[i+l]=a[i];a[i]=t;}

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

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

2、

#include<stdio.h>

#defineN6

voidmain()

{

inti,j,a[N][N]={0};

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

a[i][0]=a[i][i]=l;

for(i=l;i<N;i++)

for(j=l;j<N;j++)

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

printf(zza%0O6ptAOPLEpIA£°\n/z);

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

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

printf(/z%d\t/z,a[i][j]);

printf(〃\n〃);

}

}

3、

#include<stdio.h>

voidmain()

floatscore[3][5],avgl=0,avg[3],sum[3]={0};

inti,j;

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

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

(

printf(“第%d門課,第%d個學生的成績是:”,i,j);

scanf(,fescore[i][j]);

)

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

{for(j=0;j<5;j++)

sum[i]+=score[i][j];

avg[i]=sum[i]/5;

}

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

(

printf("第%d門課的平均成績?yōu)?.2f\n”,i,avg[i]);

avgl+=avg[i];

}

printf("各科總平均成績?yōu)榫?f\n",avgl/3);

}

第6章

一、選擇題

1、A2、C3、D4、A5、C6、A7、D8、D9、C10、B

二、填空題

1、(1)m(2)m%i==0(3)returnm

2、(1)max=x[i][j](2)max

--、

1、

#include<stdio.h>

intset(intm,intn);

intged(intm,intn);

voidmain(){

intm,n,t;

printf(“請輸入正整數(shù)m,n:");

scanf(u%d,%d,&m,&nv;

if(m<n)

{t=m;m=n;n=t;}

printf(%d的最小公倍數(shù)為%d\n”,m,n,set(m,n));〃主函數(shù)調用set()

函數(shù)

)

intset(intm,n)

{inty;

y=m*n/gcd(m,n);

returny;

)

intgcd(intm,n)

{intr=m%n;

while(r)

{m=n;

n=r;

r=m%n;

}

returnn;

)

2、

^include<iostream>

voidmain()

(

intprime(int);

intx;

printf("輸入?個正整數(shù)\n\n");

scanf("%d",&x);

if(prime(x)==O)printf("\n\n此數(shù)為素數(shù)\n\n”);

elseprintf("\n\n此數(shù)不是素數(shù)\n\n“);

}

intprime(intx)

(

inti,flag;

for(i=2;i<x;i++)

(

if(x%i==O)

(

flag=l;

break;

}

elseflag=O;

}

return(flag);

}

3、

#include<stdio.h>

floatMax=0,Min=0;

voidmain()

{

floataverage(floatarray[],intn);

floatave,score[10];

inti;

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

scanf(,&score[i]);

ave=average(score,10)

printf("max=%6?2f\nmin=%6.2f\naverage=%6.2f\n”,Max,Min,ave);

}

floataverage(floatarray[],intn)

{

inti;

floataver,sum=array[0];

Max=Min=array[0];

for(i=l;i<n;i++)

{

if(array[i]>Max)Max=array[i];

elseif(rray[i]<Min)Min=array[i];

sum=sum+array[i];

)

aver=sum/n;

return(aver);

第7章習題參考答案

一、單項選擇題

1-4BDDB5~8BAAB

第5題,補充以下定義:

inta[]={l,2,3,4,5,6};

int*p=a;

第7題,(*A)++;更正為(*a)++;

#include<stdio.h>

voidfun(char*a,char*b){

a=b;

(*a)++;

)

intmain(){

charcl='A,,c2='a',*pl,*p2;

pl=&cl;

p2=&c2;

fun(pl,p2);

printf("%c%c\n",cl,c2);

return0;

}

第8題代碼

#include<stdio.h>

int*f(int*x,int*y){

if(*x<*y)

returnx;

else

returny;

)

intmain(){

inta=7,b=8,*p,*q,r;

P=&a;

q=&b;

r=*f(p,q);

printf("%d,%d,%d\n",a,b,r);

return0;

)

二、填空題

(1)84(2)35(3)0(4)7(5)0

(6)int*(7)-1(8)*sn

三、編程題

1.用指針方法完成:⑴通過鍵盤輸入10個整數(shù),按照由小到大的順序輸出;⑵通過鍵盤輸入3個字符

串,判斷其長度,按照從大到小的順序輸出。

(1)

#include<stdio.h>/*用指針實現(xiàn):由鍵盤輸入10個整數(shù),將他們按由小到大的順序排列*/

intmain()/*主函數(shù)*/

(

inti,m,a[10],*p=a,k,j,t;/*定義變量*/

printf("輸入10個數(shù):");

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

scanf("%d",p+i);/*輸入數(shù)字,直到結束*/

for(i=0;i<9;i++)/*對輸入的十個數(shù)進行排序*/

(

k=i;

for(j=i+1;j<=9;j++)

if(*(P+k)<*(P+j))

k=j;

{t=*(p+k);*(p+k)=*(p+i);*(p+i)=t;}

)

for(i=0;i<=9;i++)/*排序后輸出結果*/

printf("%d",*(p+i));

return0;

}/*TheEnd*/

(2)

include<stdio.h>

include<string.h>

#defineN3

intmain()〃指針實現(xiàn):通過鍵盤輸入3個字符串,判斷其長度,按照從大到小的順序輸出

(

charstr[N][128],*s[N];

char*p=NULL;

inti,k,j;

printf("請輸入3字符串:\n");

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

(

scanf("%s",&str[i]);

s[i]=str[i];

)

for(i=0;i<N-l;i++)

{

k=i;

for(j=i+l;j<N;j++)

if(strcmp(s[k],s[j])<0)k=j;

if(k!=i)

(

P=s[i];s[i]=s[k];s[k]=p;

)

)

printf("排序后:\n");

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

printf("%s\n",s[i]);

2.編寫一個函數(shù):要求使用指針將數(shù)組中n個數(shù)按逆序存放。

voidinv(int*x,intn)

{int*p,m,t,*i,*j;

m=(n-l)/2;

i=x;j=x+n-1;p=x+m;

for(;i<=p;i++,j-)

{t=*i;*i=*j;*j=t;}

return;

voidmain()

{inti,arr[10],*p=arr;

printf("輸入原數(shù)組元素:\n");

for(i=0;i<10;i++,p++)

scanf(n%dn,p);

printf(n\nH);

p=arr;

inv(p,10);

printf("逆序存放后的數(shù)組:\n");

for(p=arr;p<arr+10;p++)

printf(n%dn,*p);

printf(H\nH);

3.用指針法輸入輸出二維數(shù)組各元素。

#include<stdio.h>

voidmain()

(

inta[3][4],*ptr;

intij;

ptr=a[0];

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

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

scanf("%d",ptr++);/*指針的表示方法*/

ptr=a[0];

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

(

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

printf("%4d",*ptr++);

printf("");

)

}

第8章

一、選擇題

1、D2、D3、D4、A5、D6、C7、D

二、填空題

1、(1)structstrut[20];

2、(1)x.x(2)x.y(3)x.z.y(4)x.z.z

三、編程題

1、

#include<stdio.h>

structstudent

(

intnum;

charname[20];

charsex;

intage;

floatscore;

);

structstudentstu[4]={{11301,“ZhangPing",'F',19,496.5},{11302,”Wang

Li",'F',20,483},{11303,“LiuHong",'M',19,503},{11304,"Song

Rui"W,19,471.5}};

voidmain()

{

inti;

floata=0,s=0;

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

(

a=a+stu[i].age;

s=s+stu[i].score;

)

printf("Theaverageageis%6.2f\n”,a/4);

printf("Theaveragescoreis%6.2f\n”,s/4);

2、#include<stdio.h>

#defineN20

structstudent

charname[10];

intmaths,Chinese,english,sum;

);

voidmain()

(

stuctstudentstu[N+l];〃stu[0]存儲全班平均成績,stu[i]存儲第i個學生的成績

inti,m_ave=0,c_ave=0,e_ave=0;

printf(“請輸入各學生的姓名、數(shù)學、語文和英語成績\n");

for(i=l;i<=N;i++)

{

printf("第%d個學生:”,i);

Scanf(,stu[i].name);

Scanf("%d%d%d”,&stu[i].math,&stu[i].Chinese,&stu[i].english);

Stu[i].sum=stu[i].math+stu[i].chinese+stu[i].english;

m_ave+=stu[i].maths;

c_ave+=stu[i].Chinese;

e_ave+=stu[i].englisth;

)

stu[0].maths=m_ave/N;

stu[0].chinese=c_ave/N;

stu[0].englisth=e_ave/N;

for(i=l;i<=N;i++)

printf("%s\t%d\t%d\t%d\t%d\n”,stu[i].name,stu[i].maths,stu[i].Chinese,stu[i.e

nglisth,stu[i].sum]);

printf("平均:\t%d\t%d\t%d\n?,,stu[0].maths,stu[0].Chinese,stu[0].englisth);

)

3、

^include<iostream>

structdate

(

intyear;

intmonth;

intday;

}date;

voidmain()

(

staticintday_table[]={31,28,31,30,31,30,31,31,30,31,30,31};

inti,day_sum;

printf("輸入年,月,日\n\n");

scanf("%d%d%d",&date.year,&date.month,&date.day);

day_sum=0;

for(i=0;i<date.month-l;i++)

day_sum+=day_table[i];

day_sum+=date.day;

if((date.year%4==0)&&(date.year%100!=0)||(date.year%400==0)&&(date.month>2

))

day_sum+=l;

printf("\n\n該日在本年中是第%d天\n\n",day_sum);

第9章習題參考答案

一、單項選擇題

1~4ABBD5~8CCDB

二、填空題

1、一組相關信息的集合數(shù)據(jù)文件,程序文件

2、二進制文件,文本文件

3、FILE*文件指針名

4、是否到達文件的結束EOF1

5、在于控制文件的位置標記

三、編程題

1、

#include<stdio.h>

#include<malloc.h>

voidwrite()

{

char*s[2];

inta;

FILE*fp;

s[0]=/,Turboc〃,s[l]=〃BA

溫馨提示

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

評論

0/150

提交評論