![第二章數(shù)據(jù)類型課后習(xí)題及答案_第1頁](http://file4.renrendoc.com/view/8cd2696a9e2a78a15a2e0ac624045c9a/8cd2696a9e2a78a15a2e0ac624045c9a1.gif)
![第二章數(shù)據(jù)類型課后習(xí)題及答案_第2頁](http://file4.renrendoc.com/view/8cd2696a9e2a78a15a2e0ac624045c9a/8cd2696a9e2a78a15a2e0ac624045c9a2.gif)
![第二章數(shù)據(jù)類型課后習(xí)題及答案_第3頁](http://file4.renrendoc.com/view/8cd2696a9e2a78a15a2e0ac624045c9a/8cd2696a9e2a78a15a2e0ac624045c9a3.gif)
![第二章數(shù)據(jù)類型課后習(xí)題及答案_第4頁](http://file4.renrendoc.com/view/8cd2696a9e2a78a15a2e0ac624045c9a/8cd2696a9e2a78a15a2e0ac624045c9a4.gif)
![第二章數(shù)據(jù)類型課后習(xí)題及答案_第5頁](http://file4.renrendoc.com/view/8cd2696a9e2a78a15a2e0ac624045c9a/8cd2696a9e2a78a15a2e0ac624045c9a5.gif)
版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 生物醫(yī)藥產(chǎn)業(yè)中的綠色生產(chǎn)與環(huán)保理念
- 現(xiàn)代企業(yè)辦公環(huán)境下的培訓(xùn)中心規(guī)劃原則
- 用戶體驗(yàn)設(shè)計(jì)在智能家居產(chǎn)品中的運(yùn)用
- 2025年廣西貨運(yùn)從業(yè)資格證試題庫及答案
- 生物技術(shù)助力企業(yè)轉(zhuǎn)型升級(jí)的路徑
- 電商平臺(tái)客服體系建設(shè)與優(yōu)化
- 現(xiàn)代農(nóng)業(yè)技術(shù)的應(yīng)用及其經(jīng)濟(jì)效益
- 環(huán)保設(shè)計(jì)在電子產(chǎn)品中的價(jià)值體現(xiàn)
- 現(xiàn)代農(nóng)村發(fā)展中的生態(tài)農(nóng)業(yè)實(shí)踐研究
- 電子商務(wù)物流安全管理體系構(gòu)建
- 醫(yī)保基金監(jiān)管培訓(xùn)課件
- 開工第一課安全教育記錄表
- 一氧化碳中毒與搶救知識(shí)考核試題與答案
- 部編版小學(xué)語文四年級(jí)下冊(cè)教師教學(xué)用書(教學(xué)參考)完整版
- 初中生物面團(tuán)發(fā)酵實(shí)驗(yàn)報(bào)告
- 工程項(xiàng)目總投資的構(gòu)成及估算
- 串通招投標(biāo)法律問題研究
- 高原鐵路建設(shè)衛(wèi)生保障
- 顳下頜關(guān)節(jié)盤復(fù)位固定術(shù)后護(hù)理查房
- 新版藥品管理法培訓(xùn)完整版本課件
- 硝苯地平控釋片
評(píng)論
0/150
提交評(píng)論