第二章數(shù)據(jù)類型課后習(xí)題及答案_第1頁
第二章數(shù)據(jù)類型課后習(xí)題及答案_第2頁
第二章數(shù)據(jù)類型課后習(xí)題及答案_第3頁
第二章數(shù)據(jù)類型課后習(xí)題及答案_第4頁
第二章數(shù)據(jù)類型課后習(xí)題及答案_第5頁
已閱讀5頁,還剩131頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第二章數(shù)據(jù)類型課后習(xí)題

1.下列哪些是合法的變量名?如果合法,你認(rèn)為它是一個(gè)好的助記符(能提醒你它的用

途)嗎?

(a)stock_code合法、好的助記符

(b)money$非法,$為非法字符

(c)Jan_Sales合法、好的助記符

(d)X-RAY非法,-為非法字符

(e)int非法,int為關(guān)鍵字

(f)xyz合法、不是好的助記符

(g)1a非法,變■名必須以字母或下劃線打頭

(h)invoice_total合法、好的助記符

(i)john's_exam_mark非法,,為非法字符

(j)default非法,default為關(guān)鍵字

2.請(qǐng)確定下列常量的數(shù)據(jù)類型:

(a)'X'char

⑻-39int

(c)39.99double

(d)-39.0double

3.下列哪些是合法的變量定義?

(a)integeraccount_code;非法,無integer類型

(b)floatbalance;合法

(c)decimaltotal;非法,無decimal類型

(d)intage;合法

(e)doubleint;非法,int為關(guān)鍵字,不能作為變量名

(f)charc;合法

4.寫出下列各小題中的變量定義:

(a)整型變量number_of_transactions和age_in_years

intnumber_oLtransactions,agejn_years;

(b)單精度浮點(diǎn)型變量total_pay,tax_payment,distance和average

floattotal_pay,tax_payment,distance,average;

(c)字符型變量account_type

characcount_type;

(d)雙精度浮點(diǎn)型變量gross_pay

doublegross_pay;

5.為下列各小題寫出最合適的變量定義:

(a)班級(jí)中的學(xué)生人數(shù)intnumber_oCstudents;

(b)平均價(jià)格floataverage_price;

(c)自1900年1月1日以來的天數(shù)intdays_since_1900;

(d)利率百分比floatinterest_rate;

(e)本頁中最常出現(xiàn)的字符charmost_common_char;

(f)中國(guó)的人口總數(shù)(在2010年11月大約為1,339,724,852)intpopulation_of_china;

6.假定有如下定義:

inti;

charc;

下面哪些是合法的C語句?

c='A';合法

i="1";非法,字符串不能賦值給整型

i=1;合法

c="A";非法,"A〃為字符串,存儲(chǔ)為,A,和,。兩個(gè)字符

c='1';合法

7.寫一個(gè)C程序,給第4題中的變量各賦一個(gè)值,然后以每行一個(gè)變量的形式顯示這

些變量的值。

#include<stdio.h>

intmain(void)

(

intnumber_oCtransactions,age_in_years;

floattotal_pay,tax_payment,distance,average;

characcount_type;

doublegross_pay;

number_of_transactions=211;

age_in_years=66;

totaLpay=3128.0f;

taxjjayment=214.5f;

distance=2431.5f;

average=83.5f;

account_type='c';

gross_pay=9313.5;

printf("%d\n%d\n%.1f\n%.1f\n%.1f\n%.1f\n%c\n%.1f',

number_of_transactions,age_in_years,total_pay,tax_payment,distance,

average,account_type,grossjDay);

return0;

)

8.寫一個(gè)C程序顯示如下信息:

***************

*HelloWorld*

***************

#include<stdio.h>

intmain(void)

pnff(****************\n")?

printf("*HelloWorld*\n");

printfC*************

return0;

)

9.寫一個(gè)C程序在不同的行分別顯示你的姓名和家庭住址。

#include<stdio.h>

intmain(void)

(

printf("張三\n");

printf("黑龍江省哈爾濱市南崗區(qū)\n");

return0;

)

10.ASCII碼用于表示計(jì)算機(jī)內(nèi)存中的字母、數(shù)字和其它符號(hào)。使用附錄C中的ASCII碼

表查找下面每個(gè)字符的ASCII編碼:

'A''B''Y''Z''a''b''y''z''(空格)

字符十進(jìn)制ASCII碼十六進(jìn)制ASCII碼

A6541

B6642

Y8959

Z905a

a9761

b9862

y12179

z1227a

04830

14931

442c

空格3220

11.在程序P2c中,將第14行的%d改為%c,第16行的%c改為%d。編譯并運(yùn)行修改后

的程序。你能解釋運(yùn)行結(jié)果嗎?(提示:請(qǐng)參看附錄C的ASCII碼表)

第三章簡(jiǎn)單算術(shù)運(yùn)算符與表達(dá)式課后習(xí)題

1.將下列數(shù)學(xué)方程轉(zhuǎn)化為合法的C語句:

(a)m=-----

x}—x2

(b)y=mx+c

..bd

⑹。=-----

(d)C=l^

9

(e)s=at

(a)m=(y1-y2)/(x1-x2);

(b)y=m*x+c;

(c)a=b/c-d/e;

(d)C=5*(F-32)/9.0;

(e)s=u*t+a*t*t/2.0;

2.有如下變量定義:

inta=1,b=10,c=5;

intd;

下面每條語句執(zhí)行后d的值為?

(a)d=b/c+1;d=3

(b)d=b%3;d=1

(c)d=b-3*c/5;d=7

(d)d=b*10+c-a*5;d=100

(e)d=(a+b-1)/c;d=2

(f)d=((-a%c)+b)*c;d=45

(g)d=--a;d=0

3.變量定義如第2題,請(qǐng)改正下列C語句中的錯(cuò)誤

(a)d=2(b+c);d=2*(b+c)

(b)d=5b+9c;d=5*b+9*c;

(c)d=b-3X19;d=b-3*19;

(d)d=b.c+10;d=b*c+10;

(e)d=(a+b)/c;無錯(cuò)誤

4.為下列任務(wù)寫出合適的C語句:

(a)將num1力口1,并將結(jié)果放回到num1中num1=num1+1;或num1++;

(b)將num1力口2,并將結(jié)果放回到num2中num2=num1+2;

(c)將num2力口2,并將結(jié)果放回到num2中num2=num2+2;或num2+=2;

(d)將num1減1,并將結(jié)果放回到num1中num1=num1-1;或nurr)1-;

(e)將num2減2,并將結(jié)果放回到num2中num2=num2-2;或num2—2;

5.有如下定義:

inta=12,b=0,c=3;

intd;

下列每條語句執(zhí)行后a、b、c和d的值各是什么?

(a)a++;a=13b=0c=3d=內(nèi)存單元的Bg機(jī)值

(b)b-;a=12b=-1c=3d=內(nèi)存單元的隨機(jī)值

(c)d=++c;a=12b=0c=4d=4

(d)d=c-;a=12b=0c=2d=3

(e)d=a++-2;a=13b=0c=3d=10

(f)d=a+++b++-c-;a=13b=1c=2d=9

6.有如下定義:

inta=1,b=2,c=3;

下列每條語句執(zhí)行后a、b、c的值各是什么?

(a)a+=b;a=3b=2c=3

(b)a/=3;a=0b=2c=3

(c)a*=c;a=3b=2c=3

(d)a%=2;a=1b=2c=3

(e)a+=b+1;a=4b=2c=3

(f)a+=++b;a=4b=3c=3

7.有如下定義:

charch_val;intint_val;shortshort_val;

floatfloat_val;doubledouble_val;

unsignedintunsigned_int_val;

下面哪些可能因?yàn)橘x值類型自動(dòng)轉(zhuǎn)換而損失數(shù)據(jù)?

(a)short_val=int_val;可能損失精度

(b)int_val=ch_val;不能損失精度

(c)double_val=float_val;不能損失精度

(d)int_val=float_val;可能損失精度

(e)int_val=unsigned_int_val;可能損失精度

8.和第7題的變量定義一樣,下列各表達(dá)式的數(shù)據(jù)類型各是什么?

(a)int_val*float_val;double

(b)float_val+int_val/100;double

(c)ch_val+short_val+int_val;int

(d)(double)int_val+double_val+float_val;double

(e)(int)float_val*float_val/int_val;double

(f)int_val+3.0;double

9.有如下變量定義:

inta=5,b=4;

floatc=3.0,d;

下列每小題中的d的值為?

(a)d=a/b;d=1.0

(b)d=(float)a/b;d=1.25

(c)d=c/b;d=0.75

(d)d=(int)c/b;d=0.0

(e)d=a/2;d=2.0

(f)d=a/2.0;d=2.5

(g)d=(float)a/2;d=2.5

(h)d=(int)c%2;d=1.0

10.寫一個(gè)程序計(jì)算長(zhǎng)為11.5厘米,寬為2.5厘米,高為10厘米的盒子的體積和表面積。

#include<stdio.h>

intmain(void)

(

doublelength,width,height;

doublearea,volume;

length=11.5;

width=2.5;

height=10.0;

area=2*(length*width+length*height+width*height);

volume=length*width*height;

printf(Marea=%.2f,volume=%.2f*,area,volume);

return0;

)

11.寫一個(gè)程序完成如下功能:

(a)計(jì)算并顯示1到5的和。

#include<stdio.h>

intmain(void)

(

printf("1+2+3+4+5=%d",1+2+3+4+5);

return0;

)

(b)計(jì)算并顯示單精度浮點(diǎn)數(shù)1,1.1,1.2,…,2.0的平均值。

include<stdio.h>

intmain(void)

printf("average=%.2f',(1.0+1.1+1.2+1.3+1.4+1.5+1.6+1.7+1.8+1.9+2.0)/11);

return0;

)

第四章鍵盤輸入與屏幕輸出課后習(xí)題

1.找出下面程序的錯(cuò)誤。

#include<stdio.h>

intmain()

(

intnum;

printf(''PleasetypeanumberfollowedbyEnter");

scanf("%r,num);改為:scanf(w%dH,&num);

printf("Thenumberyoutypedwas:%d",num);

return0;

)

2.為下面的每小題寫一個(gè)簡(jiǎn)單的scanf語句以接收對(duì)應(yīng)的鍵盤輸入:

(a)intfirst;

scanf(M%dH,&first);

(b)intsecond,third,fourth;

n,

scanf(%d%d%d'J&second,&third,&fourth);

(c)floatprincipal,rate,time;

scanf(n%f%f%f,,&principal,&rate,&time);

(d)charkeyvall,keyval2;

scanf(w%c%cH,&keyval1,&keyval2);

(e)charc;

inti;

floatf;

doubled;

scanf("%c%d%f%lf,&c,&i,&f,&d);

3.寫一個(gè)程序,輸入四個(gè)整數(shù)數(shù)字,然后以輸入時(shí)相反的順序輸出它們。

#include<stdio.h>

intmain(void)

(

intnum1,num2,num3,num4;

printf(MPleaseinputfournumbers:");

scanf("%dH,&num1);

scanf("%dM,&num2);

scanf("%d",&num3);

scanf("%dM,&num4);

printf("Thenumbersinreverseare:");

printf("%d",num4);

printf("%d",num3);

printf(H%d",num2);

printf("%d",num1);

return0;

)

4.假設(shè)v1,v2和v3是其值分別為5.0,45和11.25的單精度浮點(diǎn)型變量,寫一個(gè)printf

語句顯示如下的消息:

v1=5v2=-4.5v3=11.25

printf("v1=%.0fv2=%.1fv3=%.2f,v1,v2,v3);

5.假設(shè)人的心率為每分鐘75下,寫一個(gè)程序,詢問用戶的年齡(以年為單位),然后計(jì)

算并輸出該用戶到目前為止的生命中已有的心跳總數(shù)。

#include<stdio.h>

intmain(void)

intage,heart_beats;

printff'Pleaseinputyourage:");

scanf("%dM,&age);

heart_beats=age*365*24*60*75;

printf(MTheheartbeatsinyourlife:%dH,heartbeats);

return0;

)

6.寫一個(gè)程序,將接收的華氏溫度轉(zhuǎn)換為對(duì)應(yīng)的攝氏溫度。程序應(yīng)顯示如下的提示信息:

請(qǐng)輸入華氏溫度(度):

然后輸入一個(gè)十進(jìn)制數(shù)并回車,然后程序以合適的消息形式輸出轉(zhuǎn)換后的攝氏溫度。

程序使用如下的公式完成轉(zhuǎn)換:攝氏溫度=5.0*(華氏溫度-32.0)/9.0

#include<stdio.h>

intmain(void)

(

doublefahr,cels;

printf(HPleaseinputfahr:");

scanf(H%lf,&fahr);

cels=5.0*(fahr-32.0)/9.0;

printf(HThecelsis:%.2f,cels);

return0;

}

7.更改第6題中的程序,將輸入的攝氏溫度轉(zhuǎn)換為對(duì)應(yīng)的華氏溫度。

#include<stdio.h>

intmain(void)

(

doublefahr,cels;

printf(MPleaseinputcels:");

scanf("%lf',&cels);

fahr=9.0*cels/5.0+32.0;

printf(HThefahris:%.2f,fahr);

return0;

)

8.寫一個(gè)程序從鍵盤輸入三個(gè)單精度浮點(diǎn)數(shù),然后計(jì)算:

(a)它們的和。

(b)它們的平均值。

顯示結(jié)果保留到小數(shù)點(diǎn)后三位。

#include<stdio.h>

intmain(void)

(

floatf1,f2,f3,sum,average;

printf(”請(qǐng)輸入三個(gè)單精度數(shù):”);

scanf(M%f%f%f',&f1,&f2,&f3);

sum=f1+f2+f3;

average=sum/3;

printf("三個(gè)數(shù)的和為%.3f,均值為sum,average);

return0;

)

9.寫一個(gè)程序從鍵盤輸入兩個(gè)整數(shù),然后顯示第1個(gè)整數(shù)占第二個(gè)整數(shù)的百分比,保留到小

數(shù)點(diǎn)后1位。例如輸入5和40,程序輸出結(jié)果如下:

5is12.5percentof40

#include<stdio.h>

intmain(void)

(

intnum1,num2;

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

scanf("%d%d",&num1,&num2);

printf("%dis%.1fpercentof%d",num1,

(num1*100.0/num2),num2);

return0;

}

10.寫一個(gè)程序從鍵盤輸入兩個(gè)整數(shù),然后顯示輸出第1個(gè)數(shù)除以第2個(gè)數(shù)的結(jié)果。例如,

輸入123和12,程序的輸出結(jié)果格式如下:

10余數(shù)=3

12)123

提示:使用求余運(yùn)算符獲得余數(shù),使用整數(shù)除法獲得商。

#include<stdio.h>

intmain(void)

(

intnum1,num2,remainder,quotient;

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

scanf("%d%d",&num1,&num2);

remainder=num1%num2;

quotient=num1/num2;

printf("%13dRemainder=%d\n",quotient,remainder);

printf("―\n");

printf("%5d)%5d",num2,num1);

return0;

)

第五章控制語句:If和Switch課后習(xí)題

1.使用switch語句重寫下面的if-else語句:

if(marriage_status==S)

printf("single");

elseif(marriage_status==,M')

printf("married");

elseif(marriage_status==*W)

printf("widowed");

elseif(marriage_status==*E*)

printf("separated");

elseif(marriage_status==*D')

printf("divorced");

else

printf("errorinvalidcode");

switch(marriage_status)

(

case'S':

printf("single");

break;

case'M':

printf("married");

break;

caseW:

printf("widowed");

break;

case'E':

printf("separated");

break;

case'D':

printf("divorced");

break;

d麗ult:

printf("errorinvalidcode");

)

2.下面的代碼片段根據(jù)三個(gè)整數(shù)n1,n2和n3的值顯示適當(dāng)?shù)南ⅲ?/p>

if(n1==n2)

if(n1==n3)

printf(nn1,n2andn3havethesamevalue\nn);

}

else

(

printf(Mn1andn2havethesamevalue\nM);

)

)

elseif(n1==n3)

(

printf("n1andn3havethesamevalue\n");

)

elseif(n2==n3)

(

printf("n2andn3havethesamevalue");

}

else

(

printf("n1,n2andn3havedifferentvalues**);

)

為了測(cè)試代碼中的不同分支,你需要構(gòu)造五個(gè)測(cè)試數(shù)據(jù)集,每個(gè)分支一個(gè)測(cè)試數(shù)據(jù)集。

請(qǐng)給出n1,n2和n3的五個(gè)測(cè)試數(shù)據(jù)集。

n1=1n2=1n3=1

n1=1n2=1n3=2

n1=1n2=2n3=1

n1=1n2=2n3=2

n1=1n2=2n3=3

3.寫一個(gè)程序,讀入兩個(gè)整數(shù),判斷第一個(gè)數(shù)是否能被第二個(gè)數(shù)整除。(提示:使用求余

運(yùn)算符%)

#include<stdio.h>

intmain(void)

(

intnum1,num2;

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

scanf("%d%d",&num1,&num2);

if(num1%num2==0)

(

printf(*'%d能被%d整除。”,num1,num2);

)

else

printf(H%d不能被%d整除。",num1,num2);

)

return0;

}

4.輸入兩個(gè)整數(shù),并用條件運(yùn)算符?:來找出較小的一個(gè)。

#include<stdio.h>

intmain(void)

(

intnum1,num2;

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

scanf("%d%dn,&num1,&num2);

printf(M%d和%01中較小的數(shù)為%d”,num1,num2,

(num1<num2?num1:num2));

return0;

}

5.在三角形中,任意兩邊之和一定要大于第三邊。寫一個(gè)程序判斷輸入的三個(gè)數(shù)是否能

構(gòu)成三角形。

#include<stdio.h>

intmain(void)

(

doublea,b,c;

printf("輸入三角形的三條邊a,b,c:");

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

if((a+b>c)&&(a+c>b)&&(b+c>a))

(

printf("能構(gòu)成三角形\n");

)

else

printf("不能構(gòu)成三角形\n");

return0;

)

6.寫一個(gè)程序從鍵盤輸入單個(gè)十進(jìn)制數(shù)字,然后將它的值顯示為英文單詞。例如輸入5,

輸出為“five':

#include<stdio.h>

intmain(void)

(

intnum;

printf("Pleaseinputasinglenumeral:");

scanf("%d",&num);

switch(num)

(

case0:

printf("zero\n");

break;

case1:

printf("one\n");

break;

case2:

printf("two\n");

break;

case3:

printf("three\nH);

break;

case4:

printf("four\nM);

break;

case5:

printf("five\n");

break;

case6:

printf("six\nH);

break;

case7:

printf("seven\nw);

break;

case8:

printf("eight\nM);

break;

case9:

printff'nineNn");

break;

default:

printf("lnvalid-pleaseinputasinglenumeralAn*');

)

return0;

)

7.寫一個(gè)程序從鍵盤輸入1到7中的某個(gè)數(shù)字,其中1代表星期天,2代表星期一,3代

表星期二等。根據(jù)用戶輸入的數(shù)字顯示相應(yīng)的星期幾。如果用戶輸入的數(shù)字超出了1到7

的范圍,顯示輸出一個(gè)錯(cuò)誤提示信息。

#include<stdio.h>

intmain(void)

(

intnum;

printf(MPleaseinputasinglenumeral(1-7):");

scanf(H%d",&num);

switch(num)

(

case1:

printf(HSunday\nM);

break;

case2:

printf(HMonday\nM);

break;

case3:

printffTuesday\nH);

break;

case4:

printf("Wednesday\nN);

break;

case5:

printf(‘1Thursday'n");

break;

case6:

printf("Friday\n");

break;

case7:

printf("Saturday\nM);

break;

default:

printf("lnvalid-pleaseinputasinglenumeral(1-7).\n");

)

return0;

)

8.增加自加運(yùn)算符(I或i)和自減運(yùn)算符(D或d)到P5F中的簡(jiǎn)單計(jì)算器程序中。

9.寫一個(gè)程序輸入愛爾蘭的當(dāng)前時(shí)間,并顯示其對(duì)應(yīng)的華盛頓時(shí)間(減5個(gè)小時(shí)),莫斯

科時(shí)間(加3個(gè)小時(shí)),北京時(shí)間(加7個(gè)小時(shí)\輸入的時(shí)間采用24小時(shí)制,如22:35

(晚上10:35卜

#include<stdio.h>

intmain(void)

(

inthour,minute;

printf("請(qǐng)輸入愛爾蘭當(dāng)?shù)貢r(shí)間(24小時(shí)制,如22:35):");

scanf("%d:%d",&hour,&minute);

printf("對(duì)應(yīng)的華盛頓時(shí)間為%d:%d\n",(hour-5+24)%24,minute);

printf("對(duì)應(yīng)的莫斯科時(shí)間為%d:%d\n",(hour+3)%24,minute);

printf("對(duì)應(yīng)的北京時(shí)間為%d:%d\n",(hour+7)%24,minute);

return0;

)

10.寫一個(gè)程序根據(jù)從鍵盤輸入的里氏強(qiáng)度顯示地震的后果。根據(jù)里氏強(qiáng)度地震的后果如

下:

里氏強(qiáng)度后果

小于4很小

4.0到4.9窗戶晃動(dòng)

5.0到5.9墻倒塌;不結(jié)實(shí)的建筑物被破壞

6.0到6.9煙囪倒塌;普通建筑物被破壞

7.0到7.9地下管線破裂;結(jié)實(shí)的建筑物也被破壞

超過7.9地面波浪狀起伏;大多數(shù)建筑物損毀

#include<stdio.h>

intmain(void)

(

doublemagnitude;

printf("請(qǐng)輸入地震的里氏強(qiáng)度:”);

scanf("%lf,&magnitude);

if(magnitude<4.0){

printf("本次地震后果:很小!”);

}elseif(magnitude<5.0){

printf(“本次地震后果:窗戶晃動(dòng)!”);

}elseif(magnitude<6.0){

printf("本次地震后果:墻倒塌;不結(jié)實(shí)的建筑物被破壞!”);

}elseif(magnitude<7.0){

prints本次地震后果:煙囪倒塌;普通建筑物被破壞!”);

}elseif(magnitude<8.0){

printf("本次地震后果:地下管線破裂;結(jié)實(shí)的建筑物也被破壞!”);

}else{

printf(“本次地震后果:地面波浪狀起伏;大多數(shù)建筑物損毀!");

)

return0;

)

第六章循環(huán)控制語句:while、do-while和for課后習(xí)題

1.下面程序的輸出為?

intmain()

(

inti,j=1;

for(i=10;i>0;i/=2,j++)

printf(H%d%d\n",i,j);

return0;

)

101

52

23

14

2.修改程序P6A,計(jì)算輸入的所有的數(shù)的平均值。

3.用for循環(huán)重寫如下代碼:

inttotal=0;

inti=0;

while(i<10)

{

scanf("%d",&n);

total+=n;

i++;

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

scanf("%d”,&n);

total+=n;

)

4.下面的程序當(dāng)輸入為1234時(shí)其輸出為?

include<stdio.h>

intmain()

{

intnum;

printf("Pleaseenteranumber");

scanf("%dH,&num);

do

{

printf("%d",num%10);

num/=10;

)

while(num!=0);

return0;

)

4321

5.寫一個(gè)程序,計(jì)算并顯示班級(jí)的平均成績(jī)。教師依次輸入班級(jí)每個(gè)學(xué)生的百分制成績(jī),

輸入負(fù)數(shù)表示輸入結(jié)束。

#include<stdio.h>

intmain(void)

(

doublesum,score;

intnstudents;

sum=0.0;

nstudents=0;

while(1)

(

printf("謂輸入學(xué)生成績(jī)(輸入負(fù)值則表示結(jié)束輸入):");

scanf(H%lf',&score);

if(score>=0.0)

(

sum=sum+score;

nstudents++;

)

else

break;

)

)

if(nstudents>0)

printf("班級(jí)平均成績(jī)?yōu)椋?.2f\n",sum/nstudents);

)

return0;

)

6.寫一個(gè)程序計(jì)算1到99范圍內(nèi)所有奇數(shù)的和。

#include<stdio.h>

intmain(void)

intsum,i;

for(i=1,sum=0;i<=99;i+=2)

sum=sum+i;

)

printf(H1到99范圍內(nèi)所有奇數(shù)之和為%小\優(yōu)sum);

return0;

}

7.寫一個(gè)程序顯示24小時(shí)制下所有的小時(shí)和分鐘值,即:0:010:02...12:590:00。

如果每間隔15分鐘呢?

#include<stdio.h>

intmain(void)

(

inthour,minute,interval;

interval=1;//interval=15;

for(hour=0;hour<=12;hour++)

for(minute=0;minute<60;minute+=interval)

printf("%d:\hour);

if(minute<10)

printf(MO%d\tH,minute);

)

else

printf(H%d\tM,minute);

}

return0;

8.寫一個(gè)程序顯示如下的金字塔樹:

*****

***

*****

*******

I

樹有一系列逐漸增加的層構(gòu)成。上面顯示的樹有3層。程序從鍵盤輸入層數(shù)。

#include<stdio.h>

intmain(void)

(

intlevel,i,j,k;

printf("請(qǐng)輸入樹的層數(shù):”);

scanf(n%dM,&level);

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

(

//處理第i層

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

for(k=1;k<=level-j;k++)

printf("");

)

for(k=1;k<=2*j+1;k++)

(

printf("*");

)

printf("\n");

)

)

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

(

printf("");

)

printfC|\n");

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

(

printf("=");

}

printf("V");

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

printf("=");

printf("\n");

return0;

}

第七章數(shù)組課后習(xí)題

1.下列數(shù)組的下標(biāo)范圍分別是?

(a)intarrayl[6];[0,5]

(b)floatarray2[]={1.3,2.9,11.8,0};[0,3]

(c)intarray3[6][3];第一維:[0,5],第二維:[0,2]

(d)intarray40[4]={{6,2,1.3},{7,3,8,1});

第一維:[0,1],第二維:[0,3]

2.寫出完成如下定義的語句:

(a)有十個(gè)元素的單精度浮點(diǎn)數(shù)數(shù)組floatf[10];

(b)有五個(gè)元素的字符數(shù)組charch[5];

(c)有7行8列的二維整型數(shù)組inta[7]⑻;

(d)有10行5列的雙精度浮點(diǎn)數(shù)的二維數(shù)組doubled[10][5];

(e)10x8x15的三維整型數(shù)組。inta[10][8][15];

3.下面的程序代碼片段的輸出為?

inti,c1=0,c2=0;

intaO={6,7,3,13,11,5,1,15,9,4);

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

(

if(i%2==0)

c1++;

if(a[i]%2==0)

c2++;

)

printf("c1=%dc2=%d\n",c1,c2);

c1=5c2=2

4.寫一個(gè)程序,讀入15個(gè)整數(shù),然后按如下顯示:

(a)每行一個(gè)數(shù)。

(b)一行顯示,每個(gè)數(shù)之間用一個(gè)空格分隔。

(c)和(b)一樣,只不過顯示順序和輸入的相反。

include<stdio.h>

intmain(void)

intnum[15],i;

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

(

printfC請(qǐng)輸入第%d個(gè)數(shù):”,i+1);

scanf("%d",&num[i]):

)

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

(

printf("%d\n",nump]);〃(a)答案

//printf("%d",num[i]);//(b)答案

//printf("%d",num[15-i-1]);〃⑹答案

)

return0;

)

5.寫一個(gè)程序輸入兩個(gè)一維數(shù)組,每個(gè)數(shù)組有5個(gè)整型元素,然后顯示兩個(gè)數(shù)組對(duì)應(yīng)元素的

乘積。

include<stdio.h>

intmain(void)

intn1[5],n2[5],i;

printfC'請(qǐng)輸入第一個(gè)數(shù)組:\n");

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

(

printf("請(qǐng)輸入第%d個(gè)數(shù):”,i+1);

scanf("%d",&n1[Q);

}

p而tf("請(qǐng)輸入第二個(gè)數(shù)組:\n");

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

(

printf("請(qǐng)輸入第%d個(gè)數(shù):”,i+1);

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

)

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

printf("n1[%d]*n2[%d]:%d*%d=%d\n",i,i,n1[i],n2[i],n1[i]*n2[i]);

)

return0;

)

6.從鍵盤輸入每小時(shí)登錄網(wǎng)絡(luò)的用戶數(shù)到一個(gè)有24個(gè)整型元素的數(shù)組中。寫一個(gè)程序以

如下格式顯示一個(gè)報(bào)告:

時(shí)間登錄人數(shù)所占比例

0:00-1:0010.3

1:00-2:0020.7

10:00-11:00279.0

11:00-12:00289.3

23:00-0:0082.7

最大登錄人數(shù)28發(fā)生在11:00到12:00之間

最小登錄人數(shù)1發(fā)生在0:00到1:00之間

#include<stdio.h>

#defineN24

intmain(void)

inttime_entered,total_num_customers=0;

intnum_customers[N];

intmax_customers,min_customers,max,min;

//Enternumberofcustomersforeachhour.

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

(

printf("請(qǐng)輸入在%出00和%400之間登錄的用戶數(shù):*

time_entered,time_entered+1);

,,

scanf('%d'J&num_customers[time_entered]);

total_num_customers+=num_customers[time_entered];

)

//Displayreportheadings.

printf(H時(shí)間登錄人數(shù)所占比例\n“);

//Displayreportlines.

max_customers=min-customers=num_customers[0];

max=min=0;〃記錄最大最小的下標(biāo)

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

printf(H%2d:00-%2d:00%15d%25.1f\nM,time_entered,time_entered+1,

num_customers[time_entered],(num_customers[time_entered]*100.0)

/totaLnum_customers);

if(num_customers[time_entered]>max_customers)

(

max_customers=num_customers[time_entered];

max=time_entered;

)

if(num_customers[time_entered]<min_customers)

(

min_customers=num_customers[time_entered];

min=time_entered;

)

)

printf("最大登錄人數(shù)%d發(fā)生在%2d。0到%2d之間\n",max_customers,max,

max+1);

printf("最小登錄人數(shù)%d發(fā)生在%2d:00到%2d:00之間\n”,min_customers,min,

min+1);

return0;

)

7.下面的兩個(gè)數(shù)組代表生產(chǎn)8個(gè)產(chǎn)品時(shí)固定和可變的成本:

floatfixedD={11.31,12,12,13,67,11,91,12.30,

11.8,11.00,12.00);

floatvariable[]={1.12,1.13,3.14,1.35,2.20,1.28,

1.00,2.10};

寫一個(gè)程序輸入編號(hào)為1到8的產(chǎn)品號(hào)以及生產(chǎn)的數(shù)量,輸出生產(chǎn)這種產(chǎn)品的總成本。

#include<stdio.h>

intmain(void)

(

floatfixedQ={11.31,12.12,13.67,11.91,12.30,11.8,11.00,12.00);

floatvariableQ={1.12,1.13,3.14,1.35,2.20,1.28,1.00,2.10);

inti,n;

printf("請(qǐng)輸入產(chǎn)品號(hào)(1-8):");

scanf("%d",&i);

printf("請(qǐng)輸入該種產(chǎn)品的生產(chǎn)數(shù)量:");

scanf("%d",&n);

printf("生產(chǎn)編號(hào)為%d,數(shù)量為%d的產(chǎn)品的總成本為%i,n,fixedp-1]+n*

variable。-1]);

return0;

)

8.使用雙重foi?循環(huán)設(shè)置9乘9的二維整型數(shù)組的對(duì)角線元素為1,非對(duì)角線元素為全0。

#include

溫馨提示

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