《程序設(shè)計(jì)基礎(chǔ)》作業(yè)集答案_第1頁(yè)
《程序設(shè)計(jì)基礎(chǔ)》作業(yè)集答案_第2頁(yè)
《程序設(shè)計(jì)基礎(chǔ)》作業(yè)集答案_第3頁(yè)
《程序設(shè)計(jì)基礎(chǔ)》作業(yè)集答案_第4頁(yè)
《程序設(shè)計(jì)基礎(chǔ)》作業(yè)集答案_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

參考答案

第一章

一.填空題

1.硬件系統(tǒng)、軟件系統(tǒng)

2.中央處理器、存儲(chǔ)器、輸入設(shè)備、輸出設(shè)備

3.系統(tǒng)軟件、應(yīng)用軟件

4.說明語(yǔ)句、表達(dá)式語(yǔ)句、分支語(yǔ)句、循環(huán)語(yǔ)句、控制流程語(yǔ)句

5.數(shù)據(jù)結(jié)構(gòu)、算法

二.選擇題

1C2B3ABCD4AB5C

三?問答題

1.答:(1)由三種基本控制結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。

(2)有限制的使用goto語(yǔ)句。

(3)籍助于結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言來書寫。

(4)采用自頂向下,逐步求精或自底向上,逐步積累的程序設(shè)計(jì)策略。

2.答:(1)對(duì)于變量,先定義其數(shù)據(jù)類型,再使用。

(2)C程序由函數(shù)構(gòu)成,一個(gè)程序至少要有一個(gè)以上的函數(shù)。

(3)C程序總是從main()函數(shù)開始執(zhí)行。

(4)書寫格式自由,在一行可以有若干語(yǔ)句。

(5)數(shù)據(jù)的輸入與輸出是通過輸入輸出函數(shù)實(shí)現(xiàn),例如:SCanf(),Printf()函數(shù)等。

(6)C程序用/**/進(jìn)行注釋。

3.答:(1)由鍵盤輸入源程序;

(2)經(jīng)過編輯后生成f.c磁盤文件;

(3)經(jīng)過編譯后生成f.obj文件;

(4)經(jīng)過連接后形成f.exe文件;

(5)執(zhí)行。

4.答:用偽代碼描述如下:

開始

for(n=3;n<=100;n++)

for(m=2;m<=;m++)

{n∕m的余數(shù)=>r;

if(r==O)break;

}

if(m>=+l)輸出n;

}結(jié)束

5.答:描述如下:

第二章

一.填空題

1.常量、整型常量、實(shí)型常量、字符型常量

2.變量、先定義

3.單精度、雙精度

4.+、一、*、/、%

5.關(guān)系表達(dá)式、"0”、"1"

-.選擇題

1C2B3B4D5B

三?問答題

1.答:字符常量是一個(gè)字符,在程序中字符是用單引號(hào)括起來的。字符串變量由0個(gè)或若干個(gè)字

符組合而成,在程序中字符串是用雙引號(hào)括起來的,在存儲(chǔ)時(shí)系統(tǒng)自動(dòng)在字符串最后面加一個(gè)結(jié)束

符號(hào)'\0‘。

2.解:⑴2.5

(2)3.5

3.解:運(yùn)行結(jié)果為:

(1)9,11,9,10

(2)(1)b=2

(2)a=3

(3)c=2

(4)b=4

(5)c=9

4.解:(1)0(2)0(3)0(4)1(5)1

5.解:(1)24(2)10(3)60

(4)0(5)0(6)0

第三章

一.填空題

1?順序語(yǔ)句、選擇語(yǔ)句、循環(huán)語(yǔ)句、轉(zhuǎn)移語(yǔ)句

2.#include"stdio.h''

3.break

4.z=(x>y)?x:y;

5.將給定的一個(gè)字符常量或字符變量的內(nèi)容輸出到顯示器屏幕上

二.選擇題

1B2B3B4B5C

三?問答題

1.解:#include<stdio.h>

voidmain()

{

intunits,tens,hundreds,a,b;

printf(,,Pleaseinputanumber(100~999):");

SCanf(”%d”,&a);

hundreds=a∕100;

tens=(a-hundreds*100)/10;

units=a-hundreds*1OO-tens*10;

b=1OO*units+tens*10+hundreds;

printf(,'afterchange,thenumberis:%d\n'\b);

}

2.解:#include<stdio.h>

voidmain()

{

inta,b,c;

scanf(',%d%d%d,,,a,b,c);

if(a>b)if(b>c)printf("mid=%d?n,,,b);

elseif(a>c)printf(,,mid=%d?n,',c);

elseprintf(',mid=%d?n,',a);

elseif(a>c)printf("mid=%d?n',,a);

elseif(b>c)printf(,,mid=%d?n',,c);

elseprintf(πmid=%d?n",b);

}

3.解:#include<stdio.h>

#include<math.h>

voidmain()

{

doublea,b,c;∕*方程系數(shù)*/

doubledisc;∕*判別式*/

doublere,im;∕*方程實(shí)部虛部*/

printf("Entera,b,c:");

scanf(,'%lf%lf%lf',AaΛbΛc);

if(a==0.0)

if(b==O.O)

printf(',Theequationhasnotsoluble!?nu);

else

printf(,,Singlerootis%f?n',,-c∕b);

elseif(c==0.0)

printf(,'Tworoots:xl=%lf\tx2=%lf?n",-b∕a,0);

else

{

disc=b*b-4*a*c;

re=?b∕(2*a);

im=sqrt(fabs(disc))∕(2*a);

if(disc>=O.O)

printf(',Tworoots:xl=%f\tx2=%f,,re+im,re-im);

else

printf("Twocomplexroots:x1=%f+i*%f?tx2=%f-i*%f?n,,,re,im,re,im);

4.解:#include<stdio.h>

#include<math.h>

voidmain()

{

inti,j,result;

printf(',?nπ);

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

{

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

{

result=i*j;

printf("%d*%d=%-3d",i,j,result);

}

printf("?n,');

}

}

5.答:#include<stdio.h>

voidmain()

{

floata,b;

charoptor;

printf(,'Pleaseinputthevalueofa,b:");

SCanf(”%f%F,&a,&b);

printf("Enteroperator:π);

getchar();

scanf(,,%c,',?optor);

switch(optor)

case'+':Printf("%f+%f=%f?n",a,b,a+b);

break;

case'-':Printf("%f-%f=%f?n",a,b,a-b);

break;

case'*':Printf("%f*%f=%f?n",a,b,a*b);

break;

case7':if(b==0)printf(,,cannotadividedby0!?n");

elseprintf("%f∕%f=%f?n",a,b,a∕b);

break;

default:Printf("Inputerror!");

}

}

第四章

一.填空題

1.[O,N-1]

2.1022

3.a⑷⑸

4?“string.h”

5.0、'?0'

二.選擇題

1D2A3D4B5C

三.問答題

1.解:#include<stdio.h>

voidmain()

{

inta[15];

inti,j;

aLO]=O;

a[l]=l;

printf(n%-4d%-4d,,,a[0],a[1]);

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

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

printf("%-4d,',a[i]);

}

}

2.解:#include<stdio.h>

voidmain()

{

inta[10];

inti,min,k,temp;

printf("Pleaseinput10integernumbersΛn,');

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

scanf("%d,??a[i]);

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

{

min=i;

for(k=i+l;k<10;k++)

{

if(a[k]<=a[min])min=k;

}

temp=a[i];

a[i]=a[min];

a[min]=temp;

}

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

printf(,'%-4d",a[i]);

}

3.解:#include<stdio.h>

voidmain()

inta[10],i,j,temp;

printf("Pleaseinput10integernumbersΛn");

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

scanf(',%dπΛa[i]);

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

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

if(aU]>a[j+l])

{

temp=a[j];

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

a[j+l]=temp;

}

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

printf(,'%-4d,,,a[ij);

}

4.解:#include<stdio.h>

voidmain()

{

inta[3][3],sum=0;

intij;

printf("enterdata:\n");

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

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

scanf(π%d',,Aa∣i][j]);

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

sum=sum+a[i][i];

printf(,'sum=%6d?n",sum);

5.解:#include<stdio.h>

voidmain()

{

charstring[81J;

inti,num=l;

charc;

gets(string);

for(i=0;(C=String[i]!='?0')j++)

{

if(string[i]==1')num++;

)

ρrintf(,'Thereare%dwordsintheline?n,,,num);

}

第五章

-.填空題

1.函數(shù)

2.fun(intx,inty,intz)

3.main()

4.局部靜態(tài)存儲(chǔ)變量、全局靜態(tài)存儲(chǔ)變量

5.內(nèi)部函數(shù)、外部函數(shù)

二.選擇題

1B2B3C4C5B

三.問答題

1?解:語(yǔ)法錯(cuò)誤有:

(1)主函數(shù)中第4行漏寫了分號(hào)。

(2)形參與實(shí)參個(gè)數(shù)不相等,形參沒有定義類型

(3)子函數(shù)中n沒有定義。

語(yǔ)義錯(cuò)誤有:

(1)主函數(shù)中X和n沒有賦值。

(2)函數(shù)調(diào)用時(shí)I既沒有返回值也不是地址調(diào)用;程序中沒有輸出語(yǔ)句,目的

不明確。

正確的程序是:

main()

{

intpower(intX,intn);

intX=2,n=4;

printf(,,?ns=%d,,,power(x,n));

}

intpower(intX,intn)

{

inti,p=1;

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

p=p*x*i;

return(p);

}

2.答:#include"stdio.h"

floatvolume(a,b,c)

floata,b,c;

{

floatv;

v=a*b*c;

return(v);

}

voidmain()

{

floata,b,c,v;

scanf("%f%f%f',&a,&b,&c);

v=volume(a,b,c);

printf(,,v=%f,,v);

3.答:#include"stdio.h"

floatsum(intn)

{

inti;

floats;

s=0;

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

{

s+=l∕(float)i;

returns;

1

voidmain()

{

intn;

floats;

printf("Pleaseinputthevalueofn:”);

scanf(,,%d,,Λn);

if(n<=0)

printf(,,Pleaseinputapositivenumber!");

else

{

s=sum(n);

printf("sum=%f',s);

)

}

4.答:運(yùn)行結(jié)果為:

Thevalueofiinmain()befbrcallingsqr(x)is25

Callingsqr(x):sqr(25)=625

Thevalueofiinmain()aftercallingsqr(x)is25

5.答:#include',stdio.hu

doublexpower(floatx,intn)

{

if(n<=0)

return(l);

else

return(x*xpower(x,n-1));

}

voidmain()

{

floatx;

intn;

doubler;

scanf(',%f%d"ΛxΛn);

r=xpower(x,n);

printf(,'Result=%f,,r);

}

第六章

-.填空題

1?''指針變量”、空指針

2.s所指向的變量?jī)?nèi)容加I、取指針變量S加1后的內(nèi)容、取S的內(nèi)容后,S再加1

3.a[3]

4.指針

5.指針首地址

6.“單級(jí)間址”、“二級(jí)間址”

-.選擇題

1B2D3D4D

三.問答題

I.答:intstrlen(s)

char*s;

char*p=s;

WhiIe(*p!='?0')

ρ++;

return(p-s);

}

2.答:#include<stdio.h>

swap(int*p,int*q)

{

inttemp;

temp=*p;

*p=*q;

*q=temp;

}

voidmain()

{

inta,b,*pa,*pb;

printf(πPleaseinput2integernumbers:0);

scanf("%d%d,'ΛaΛb);

pa=&a;

pb=&b;

swap(pa,pb);

printf("%d%du,a,b);

}

3.答:不行。C語(yǔ)言規(guī)定數(shù)組名稱代表數(shù)組的首地址,也就是說第一個(gè)元素的地址是常量,所以

在程序中a的值是不能改變的。修改程序如下:

#include<stdio.h>

voidmain()

inta[10]={1,2,3,4,5,6,7,8,9,10},i;

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

printf(',%d",*(a+i));

}

}

4答:運(yùn)行結(jié)果:

(1)12

(2)book

(3)

0022FF40-l

0022FF4C-4

0022FF58-7

0022FF40-l0022FF44-20022FF48-3

0022FF4C-40022FF50-50022FF54-6

OO22FF58-70022FF5C-80022FF60-9

5答:#include<stdio.h>

intlen(char*p)

intn=O;

while(*p!-?0,)

n++;

P÷+;

}

return(n);

}

voidmain()

{

intlength;

char*str[20];

printf("Pleaseinputastring:\n");

scanf("%s",str);

Iength=Ien(Str);

printf("thelengthofthestringis%d",length);

}

6.答:雙重指針指的是指向指針型數(shù)據(jù)的指針類型。

程序如下:

?include<stdio.h>

voidmain()

{

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

int*add[2][3]={*a,*a+l,*a+2,*(a+l),*(a+l)+l,*(a+l)+2};

int**p,i;

p=add[0];

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

{

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

p++;

}

getch();

}

運(yùn)行結(jié)果:

135246

第七章

一.填空題

1.結(jié)構(gòu)體

2.pstu—>score

3.地址

4.數(shù)據(jù)、鏈指針、下一個(gè)結(jié)點(diǎn)

5.stdlib.h

6.一個(gè)一個(gè)的輸入各結(jié)點(diǎn)數(shù)據(jù),并建立其前后相鏈的關(guān)系

7.將鏈表中各結(jié)點(diǎn)的數(shù)據(jù)依次輸出

二.選擇題

1D2D3B4D5B

三問答題

1.答:運(yùn)行結(jié)果:

3,a

2.答:#include"stdio.h"

structperson

{

charname[20];

intcount;

}leader[3]={',Liπ,0,,'Zhangu,0,',Wang",0};

main()

{

inti,j;

charleader_name[20J;

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

{

,,

scanf('%s',leader-name);

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

if(strcmp(leader_name,leader[j].name)==0)

leader[j].count++;

}

printf(,,?nn);

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

printf("%sι%d?n",leader[i].name,leader[i].count);

)

3?答:?includeπstdlib.hπ

#include"stdio.hπ

structlist

intdata;

structlist*next;

typedefstructlistnode;

typedefnode*link;

voidmain()

{

linkptr,head;

intnum,i;

ptr=(link)malloc(sizeof(node));

ptr=head;

printf("Pleaseinput5numbers===>?n");

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

{

SCanf(”%d",&num);

ptr->data=num;

ptr->next=(link)malloc(sizeof(node));

if(i==4)ptr->next=NULL;

elseptr=ptr->next;

}

ptr=head;

while(ptr!=NULL)

{

printf("Thevalueis===>%d?n",ptr->data);

ptr=ptr->next;

4.答:#includeustdio.h"

voidmain()

structstudent

{

intnum;

charname[20];

floatscore;

structstudentstu[4];

structstudent*p;

inti,temp=0;

floatmax;

for(p=stu;p<stu+4;p++)

scanf(π%d%s%F',&p->num,p?>name,&p->score);

for(max=stu[0].score,i=l;i<4;i++)

if(stu[i].score>max)

{

max=stu[i].score;

temp=i;

}

p=stu+temp;

printf(,'?nThemaximumscoreΛn");

printf("No.%d\nname:%s\nscore:%4.1f?nπ,p->num,p->name,p->score);

}

模擬試題一

-.選擇題

1C2B3D4D5C6D7A8D9AIOB

二?程序填空題

1.①:stdio.h

②:i=l;i<5;i++

③:i!=k&&i!=j&&j!=k

2.①:n=l;n<=20;n++

②:t*=n;

③:s+=t;

三.程序設(shè)計(jì)題

1.答:#includeustdio.h"

main()

{

inti,j,k,n;

printf(',waterflower,snumberis:\n");

for(n=100;n<1000;n++)

{

i=n∕100;〃分解出百位

j=n/10%10;〃分解出十位

k=n%10;//分解出個(gè)位

if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)

printf(',%-5d',,n);

}

}

printf(,,?nn);

}

2.答:#include,,stdio.hπ

main()

{

inta[5]={9,6,5,4,1},i,temp;

printf("?noriginalarrayΛn");

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

printf(,'%4d,',a[i]);

for(i=0;i<5/2;i++)

temp=a[i];

a[i]=a[5-i-l];

a[5-i-l]=temp;

}

printf("?nsortedarrayΛnκ);

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

printf(,'%4d,',a[i]);

}

3.答:#include"stdio.hu

swap(int*pl,int*p2)

{

inttemp;

temp=*pl;

*pl=*p2;

*p2=temp;

}

voidmain()

{

intnI,n2,n3;

int"pointer1,*pointer2,*pointer3;

printf(,,Pleaseinput3number:nl,n2,n3:n);

scanf(,'%d%d%d"ΛnI,&n2,&n3);

pointeri=&nl;

pointer2=&n2;

pointer3=&n3;

if(n1>n2)swap(pointer1,pointer2);

if(n1>n3)swap(pointerl,pointer3);

if(n2>n3)swap(pointer2,pointer3);

printf(,'thesortednumbersare:%d,%d,%d?n',,nl,n2,n3);

getch();

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論