C程序設(shè)計(jì)2022學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年_第1頁(yè)
C程序設(shè)計(jì)2022學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年_第2頁(yè)
C程序設(shè)計(jì)2022學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年_第3頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余4頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

C程序設(shè)計(jì)2022學(xué)習(xí)通超星期末考試章節(jié)答案2024年編寫(xiě)程序,按如下格式輸出整數(shù),小數(shù),字符串。(□表示空格)整數(shù):12輸出格式:12□□□,□□□12小數(shù):3.1415926輸出格式:□□3.142,3.142□□字符串:CHINA輸出格式:□□□CH,CHI□□輸入格式:輸出格式:“%md”

“%m.nf”

“%m.ns”輸入樣例:輸出樣例:12□□□,□□□12□□3.142,3.142□□□□□CH,CHI□□

答案:#includevoidmain(){

inta=12;

floatb=3.1415926;

printf("%-5d,%5d\n",a,a);

printf("%7.3f,%-7.3f\n",b,b);

printf("%5.2s,%-5.3s","CHINA","CHINA");}通過(guò)庫(kù)函數(shù)sizeof()獲得int、short、long、float和double數(shù)據(jù)類(lèi)型所占內(nèi)存的字節(jié)數(shù)。輸入格式:輸出格式:“int占%d個(gè)字節(jié)\n”“short占%d個(gè)字節(jié)\n”“l(fā)ong占%d個(gè)字節(jié)\n”“float占%d個(gè)字節(jié)\n”“double占%d個(gè)字節(jié)\n”輸入樣例:輸出樣例:int占4個(gè)字節(jié)short占2個(gè)字節(jié)long占4個(gè)字節(jié)float占4個(gè)字節(jié)double占8個(gè)字節(jié)

答案:#includevoidmain(){

printf(“int占%d個(gè)字節(jié)\n”,sizeof(int));

printf(“short占%d個(gè)字節(jié)\n”,sizeof(short));

printf(“l(fā)ong占%d個(gè)字節(jié)\n”,sizeof(long));

printf(“float占%d個(gè)字節(jié)\n”,sizeof(float));

printf(“double占%d個(gè)字節(jié)\n”,sizeof(double));}編寫(xiě)程序,利用switch語(yǔ)句實(shí)現(xiàn)從鍵盤(pán)輸入一個(gè)正整數(shù),輸出對(duì)應(yīng)為一周中的星期幾。輸入格式:"%d"輸出格式:"一周中的第%d天為星期一\n""一周中的第%d天為星期二\n""一周中的第%d天為星期三\n""一周中的第%d天為星期四\n""一周中的第%d天為星期五\n""一周中的第%d天為星期六\n""一周中的第%d天為星期日\(chéng)n"輸入樣例:3輸出樣例:一周中的第3天為星期三

答案:#includevoidmain(){

intday=0;

scanf("%d",&day);

switch(day)

{

case1:

printf("一周中的第%d天為星期一\n",day);

break;

case2:

printf("一周中的第%d天為星期二\n",day);

break;

case3:

printf("一周中的第%d天為星期三\n",day);

break;

case4:

printf("一周中的第%d天為星期四\n",day);

break;

case5:

printf("一周中的第%d天為星期五\n",day);

break;

case6:

printf("一周中的第%d天為星期六\n",day);

break;

case7:

printf("一周中的第%d天為星期日\(chéng)n",day);

break;

}}編寫(xiě)程序,利用if-else語(yǔ)句實(shí)現(xiàn)從鍵盤(pán)輸入一個(gè)正整數(shù),判斷其奇偶性,并輸出判斷結(jié)果。輸入格式:"%d"輸出格式:"%d是偶數(shù)\n""%d是奇數(shù)\n"輸入樣例:請(qǐng)輸入一個(gè)正整數(shù):5輸出樣例:5是奇數(shù)

答案:#includevoidmain(){

intn;

printf("請(qǐng)輸入一個(gè)正整數(shù):");

scanf("%d",&n);

if(n%2==0)

printf("%d是偶數(shù)\n",n);

else

printf("%d是奇數(shù)\n",n);}編寫(xiě)程序,利用if語(yǔ)句實(shí)現(xiàn)從鍵盤(pán)輸入三個(gè)實(shí)數(shù),判斷其中的最大值,將結(jié)果輸出。輸入格式:"%f%f%f"輸出格式:"max=%f\n"輸入樣例:1.22.34輸出樣例:max=4.000000

答案:#includeintmain(){

floata,b,c,max;

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

max=a;

if(max設(shè)計(jì)程序,利用while/do…while/for語(yǔ)句(任選一種)求Π值。使用如下公式Π/4=1-1/3+1/5-1/7+…+1/(4n-3)-1/(4n-1)+…

(n=10000).輸入格式:輸出格式:"PI=%f\n"輸入樣例:輸出樣例:PI=3.141384

答案:***********while語(yǔ)句***********#includevoidmain(){

intn=1;

floatm,sum=0;

while(n<=10000)

{

m=1.0/(4*n-3)-1.0/(4*n-1);

sum=sum+m;

n++;

}

printf("PI=%f\n",4*sum);}***********do…while語(yǔ)句***********#includevoidmain(){

intn=1;

floatm,sum=0;

do

{

m=1.0/(4*n-3)-1.0/(4*n-1);

sum=sum+m;

n++;

}while(n<=10000);

printf("PI=%f\n",4*sum);}***********for語(yǔ)句***********#includevoidmain(){

intn=1;

floatm,sum=0;

for(n=1;n<=10000;n++)

{

m=1.0/(4*n-3)-1.0/(4*n-1);

sum=sum+m;

}

printf("PI=%f\n",4*sum);}有一張紙厚0.5mm,假如它足夠大,將它不斷對(duì)折,問(wèn)對(duì)折多少次后厚度可以達(dá)到珠穆朗瑪峰的高度(8848m)。設(shè)計(jì)程序,求解并輸出對(duì)折次數(shù)n。(提示:利用break或continue語(yǔ)句)輸入格式:輸出格式:"n=%d.\n"輸入樣例:輸出樣例:n=25.

答案:***********break語(yǔ)句***********#includeintmain(){

intn=0;

floath=0.5;

while(1)

{

n++;

h=h*2;

if(h>=8848000)

break;

}

printf("n=%d.\n",n);}***********comtinue語(yǔ)句***********#includevoidmain(){

intn=0;

floath=0.5;

while(1)

{

n++;

h=h*2;

if(h<8848000)

continue;

printf("n=%d.\n",n);

break;

}}為使電文保密,往往按照一定規(guī)律將其轉(zhuǎn)換成密碼,設(shè)計(jì)程序,將輸入的字母按照以下規(guī)律轉(zhuǎn)換。(考慮多個(gè)字母的情況)ABCD……WXYZABCD……WXYZABCD……abcd……wxyzabcd……wxyzabcd……例如輸入abwxyz輸出將其轉(zhuǎn)化為efabcd,即每個(gè)字母變成其后的第四個(gè)字母。輸入格式:

getchar輸出格式:"%c"輸入樣例:

China!輸出樣例:Glmre!

答案:#includevoidmain(){

charc;

while((c=getchar())!='\n')

{

if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))

{

c=c+4;

if(c>'Z'&&c<='Z'+4||c>'z')

c=c-26;

}

printf("%c",c);

}

printf("\n");}設(shè)計(jì)程序,先將10個(gè)整數(shù)從大到小排序,然后把一個(gè)整數(shù)按大小插入到已排序的數(shù)組中。a[11]={127,3,6,28,54,68,87,105,162,18}

將29插入數(shù)組中。輸入格式:

“%d”輸出格式:"%4d"輸入樣例:29輸出樣例:

162127105

87

68

54

28

18

6

3

inputnumber:

29

162127105

87

68

54

29

28

18

6

3

答案:#includeintmain(){

inti,j,p,q,s,n,a[11]={127,3,6,28,54,68,87,105,162,18};

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

{

p=i;

q=a[i];

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

if(qa[i])

{

for(s=9;s>=i;s--)

a[s+1]=a[s];

break;

}

a[i]=n;

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

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

printf("\n");}編寫(xiě)程序輸出楊輝三角形。輸入格式:輸出格式:"%5d"輸入樣例:輸出樣例:

1

1

1

1

2

1

1

3

3

1

1

4

6

4

1

1

5

10

10

5

1

1

6

15

20

15

6

1

1

7

21

35

35

21

7

1

1

8

28

56

70

56

28

8

1

1

9

36

84

126

126

84

36

9

1

答案:#includeinta[10][10];intmain(){

inti=0,j=0;

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

{

for(j=0;j輸入五個(gè)國(guó)家的名字并按字母順序排出。(國(guó)家的名字不超過(guò)20個(gè)字符)輸入格式:輸出格式:輸入樣例:ChinaJapanCanadaAmericaEngland輸出樣例:AmericaCanadaChinaEnglandJapan

答案:#include

intmain(){

charst[20],cs[5][20];

inti,j,p;

printf("inputcountry'sname:\n");

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

gets(cs[i]);

printf("\n");

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

{

p=i;

strcpy(st,cs[i]);

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

if(strcmp(cs[j],st)<0)

{

p=j;

strcpy(st,cs[j]);

}

if(p!=i)

{

strcpy(st,cs[i]);

strcpy(cs[i],cs[p]);

strcpy(cs[p],st);

}

puts(cs[i]);

}

printf("\n");}輸入一個(gè)字符串,判斷是否為回文串。注:回文是指數(shù)或者字符串具有首尾回環(huán)性質(zhì),從后向前按位顛倒后與原文一樣。首尾回環(huán)的數(shù)字就是回文數(shù),如:121,12321;首尾回環(huán)的字符串就是回文串,如:madam。輸入格式:輸出格式:

printf("Itisapalindrome\n");

printf("Itisnotapalindrome\n");輸入樣例:ILoveevoLI輸出樣例:

Itisapalindrome

答案:#include#include

intmain(){

intcount,i;

charstr[80];

printf("Enterastring:");

i=0;

while((str[i]=getchar())!='\n')

i++;

str[i]='\0';

for(i=0,count=strlen(str)-1;i<count;i++,count--)

if(str[i]!=str[count])

break;

if(i>=count)

printf("Itisapalindrome\n");

else

printf("Itisnotapalindrome\n");

return0;}有兩個(gè)數(shù)組a和b,各有6個(gè)元素,將它們對(duì)應(yīng)逐個(gè)比較(即a[i]與b[i]比較)。如果a[i]大于b[i]的次數(shù)多于a[i]小于b[i]的次數(shù),那么認(rèn)為數(shù)組a大于數(shù)組b,如果a[i]小于b[i]的次數(shù)多于a[i]大于b[i]的次數(shù),認(rèn)為數(shù)組a小于數(shù)組b,否則數(shù)組a與數(shù)組b相等。編寫(xiě)程序,統(tǒng)計(jì)出a[i]大于b[i]、a[i]小于b[i]、a[i]等于b[i]的次數(shù),并判斷哪個(gè)數(shù)組大。(數(shù)組中的元素作為函數(shù)實(shí)參,例如:large(a[i],b[i]))輸入格式:

“%d”輸出格式:"%d"輸入樣例:147258123951輸出樣例:a[i]>b[i]3timesa[i]=b[i]2timesa[i]答案:#includevoidmain(){

intlarge(intx,inty);

inta[6],b[6],i,n=0,m=0,k=0;

printf("enterarraya:\n");

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

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

printf("enterarrayb:\n");

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

scanf("%d",&b[i]);

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

{

if(large(a[i],b[i])==1)

n=n+1;

else

if(large(a[i],b[i])==0)

m=m+1;

else

k=k+1;

}

printf("a[i]>b[i]%dtimes\na[i]=b[i]%dtimes\na[i]k)

printf("arrayaislargerthanarrayb\n");

else

if(ny)

flag=1;

else

if(x有一個(gè)一維數(shù)組,內(nèi)放10個(gè)學(xué)生成績(jī),寫(xiě)一個(gè)函數(shù),求出平均分,最高分和最低分。要求:由于要調(diào)用函數(shù)得到三個(gè)結(jié)果值,除了可以從函數(shù)得到一個(gè)函數(shù)的返回值,可以用全局變量。本題要求使用全局變量的方法。輸入格式:scanf(“%f”,&score[i]);輸出格式:printf(“max=%6.2f\nmin=%6.2f\naverage=%6.2f\n”,Max,Min,ave);輸入樣例:

9945789710067.589926643輸出樣例:Max=100.00Min=43.00Average=77.65

答案:#includefloatMax=0,Min=0;voidmain(){

floataverage(floatarray[],intn);

floatave,score[10];

inti;

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

scanf("%f",&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=1;i<n;i++)

{

if(array[i]>Max)

Max=array[i];

elseif(array[i]<Min)

Min=array[i];

sum=sum+array[i];

}

aver=sum/n;

return(aver);}輸入一個(gè)正整數(shù)n,輸出1!~n!的值。要求:定義并調(diào)用含有靜態(tài)變量的函數(shù)fact(n)計(jì)算n!。輸入格式:

“%d”輸出格式:

“%3d!=%4ld\n”輸入樣例:

Entern:6輸出樣例:

1!=

1

2!=

2

3!=

6

4!=

24

5!=120

6!=720

答案:#includelongfact(intn);intmain(){

intn,i;

printf("Entern:");

scanf("%d",&n);

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

printf("%3d!=%4ld\n",i,fact(i));

return0;}longfact(intn){

staticlongf=1;

f=f*n;

returnf;}計(jì)算s=(2^2)!+(3^2)!要求:該題要求使用函數(shù)的嵌套調(diào)用。編寫(xiě)兩個(gè)函數(shù):函數(shù)fun1用來(lái)計(jì)算平方值,fun2用來(lái)計(jì)算階乘值。主函數(shù)先調(diào)用fun1計(jì)算出平方值,再在fun1中以平方值為實(shí)參,調(diào)用fun2計(jì)算其階乘值,然后返回到fun1,再返回主函數(shù),在循環(huán)程序中計(jì)算累加和。輸入格式:輸出格式:printf(“\ns=%ld\n”,s)輸入樣例:輸出樣例:

s=362904

答案:#include

longfun1(intp){

intk;longr;

longfun2(int);

k=p*p;

r=fun2(k);

returnr;}

longfun2(intq){

longc=1;inti;

for(i=1;i<=q;i++)

c=c*i;

returnc;}

voidmain(){

inti;longs=0;

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

s=s+fun1(i);

printf("\ns=%ld\n",s);}編寫(xiě)一個(gè)子函數(shù),在主函數(shù)中定義的字符串中找到第一個(gè)大寫(xiě)字母,并向主函數(shù)返回這個(gè)字母的地址,然后從這個(gè)被找到的大寫(xiě)字母開(kāi)始輸出這個(gè)字符串。要求:用返回指針的函數(shù)來(lái)解決問(wèn)題。輸入格式:

printf("inputastring:");

gets(str);輸出格式:

puts("NoCapitalLetter");

puts(pos);輸入樣例:inputastring:findCapitalNumber輸出樣例:CapitalNumber

答案:#includechar*findfirstletter(char*s){

for(;*s!='\0';s++)

if(*s>='A'&&*s<='Z')

break;

returns;}intmain(){

charstr[81];

char*pos;

printf("inputastring:");

gets(str);

pos=findfirstletter(str);

if(*pos=='\0')

puts("NoCapitalLetter");

else

puts(pos);

return0;}有一個(gè)班,三個(gè)學(xué)生,各學(xué)四門(mén)課,計(jì)算總平均分?jǐn)?shù)以及第n個(gè)學(xué)生的成績(jī)。要求:用3*4的二維數(shù)組存取三個(gè)學(xué)生四門(mén)課的成績(jī),輸入格式如下所示(成績(jī)情況如輸入樣例所示),并采用指針的辦法解決問(wèn)題。輸入格式:

floatscore[3][4]={{65,67,70,60},{80,87,90,81},{90,99,100,98}};輸出格式:

printf("average=%5.2f\n",aver);

printf("%5.2f",*(*(p+n)+i));輸入樣例:

floatscore[3][4]={{65,67,70,60},{80,87,90,81},{90,99,100,98}};輸出樣例:average=82.25thescoreofNo.2are:90.0099.00100.0098.00

答案:#includevoidmain(){

voidaverage(float*p,intn);

voidsearch(float(*p)[4],intn);

floatscore[3][4]={{65,67,70,60},{80,87,90,81},{90,99,100,98}};

average(*score,12);

search(score,2);}

voidaverage(float*p,intn){

float*p_end;

floatsum=0,aver;

p_end=p+n-1;

for(;p<=p_end;p++)

sum=sum+(*p);

aver=sum/n;

printf("average=%5.2f\n",aver);}

voidsearch(float(*p)[4],intn){

inti;

printf("thescoreofNo.%dare:",n);

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

{

printf("%5.2f",*(*(p+n)+i));

printf("\n");

}}利用指針變量做函數(shù)參數(shù)求字符串中空格與逗號(hào)的個(gè)數(shù)。輸入格式:直接定義或者從鍵盤(pán)輸入都可char*str="thisis,atest";輸出格式:

printf("iSpaceNumber=%d,iCommaNumber=%d",iSpaceNumber,iCommaNumber);輸入樣例:輸出樣例:iSpaceNumber=4,iCommaNumber=1

答案:#includevoidGetNumber(char*str,int*pSpaceNumber,int*pCommaNumber){

inti=0;

*pSpaceNumber=0;

*pCommaNumber=0;

while(str[i])

{

if(str[i]=='')

(*pSpaceNumber)++;

elseif(str[i]==',')

(*pCommaNumber)++;

i++;

}}intmain(intargc,char*argv[]){

char*str="thisis,atest";

intiSpaceNumber,iCommaNumber;

GetNumber(str,&iSpaceNumber,&iCommaNumber);

printf("iSpaceNumber=%d,iCommaNumber=%d",iSpaceNumber,iCommaNumber);

return0;}設(shè)有一個(gè)教師與學(xué)生通用的表格,教師數(shù)據(jù)有姓名、年齡、身份、教研室四項(xiàng)。學(xué)生數(shù)據(jù)有姓名、年齡、身份、班級(jí)四項(xiàng),編程輸入人員數(shù)據(jù),再以表格輸出。要求使用結(jié)構(gòu)體和共用體結(jié)構(gòu)編寫(xiě)。輸入格式:

t表示教師,s表示學(xué)生輸出格式:輸入樣例:inputname,age,jobanddepartmentWANG30tofficeZHAO20s33輸出樣例:name

age

jobClass/officeWANG

30

t

officeZHAO

20

s

33

答案:#includevoidmain(){

struct

{

charname[10];

intage;

charjob;

union

{

intClass;

charoffice[10];

}depa;

}body[2];

inti;

printf("inputname,age,jobanddepartment\n");

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

{

scanf("%s%d%c",body[i].name,&body[i].age,&body[i].job);

if(body[i].job=='s')

scanf("%d",&body[i].depa.Class);

elsescanf("%s",body[i].depa.office);

}

printf("name\tagejobClass/office\n");

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

{

if(body[i].job=='s')

printf("%s\t%3d%3c%5d\n",body[i].name,body[i].age,body[i].job,body[i].depa.Class);

elseprintf("%s\t%3d%3c%10s\n",body[i].name,body[i].age,body[i].job,body[i].depa.office);

}}計(jì)算一組學(xué)生的平均成績(jī)和不及格人數(shù)。要求使用結(jié)構(gòu)體指針變量做函數(shù)參數(shù)編程。輸入格式:輸出格式:printf("average=%f\ncount=%d\n",avers,c);輸入樣例:{{101,"Liping",'M',45},{102,"Zhangping",'M',62.5},{103,"Hefang",'F',92.5},{104,"Chenling",'F',87}}輸出樣例:average=71.750000count=1

答案:#includestructstudent{

intnum;

charname[20];

charsex;

floatscore;}stu[]={{101,"Liping",'M',45},{102,"Zhangping",'M',62.5},{103,"Hefang",'F',92.5},{104,"Chenling",'F',87}};voidmain(){

structstudent*ps;

voidaver(structstudent*ps);

ps=stu;

aver(ps);}voidaver(structstudent*ps){

intc=0,i;

floatavers,total=0;

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

{

total+=ps->score;

if(ps->score<60)

c+=1;

}

avers=total/4;

printf("average=%f\ncount=%d\n",avers,c);}從練習(xí)一創(chuàng)建的文件中讀取學(xué)生信息,統(tǒng)計(jì)文件中的學(xué)生數(shù),計(jì)算學(xué)生的平均成績(jī),

溫馨提示

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