c语言课后练习题第三章
十進(jìn)制 %d
八進(jìn)制 %#o
十六進(jìn)制 %#x
int 4個(gè)字節(jié)
long 8個(gè)字節(jié)
short 2個(gè)字節(jié)
long long 8個(gè)字節(jié)
char 1個(gè)字節(jié)
double 8個(gè)字節(jié)
float?? 4個(gè)字節(jié)
轉(zhuǎn)義序列??????????? 含義
\a????????????????? 警報(bào)
\b????????????????? 退格
\f????????????????? 換頁(yè)
\n????????????????? 換行
\r????????????????? 回車
\t????????????????? 水平制表符
\v????????????????? 垂直制表符
\'????????????????? 單引號(hào)
\"????????????????? 雙引號(hào)
\?????????????????? 問(wèn)號(hào)
\0oo??????????????? 八進(jìn)制
\xhh??????????????? 十六進(jìn)制
復(fù)習(xí)提
1.指出下面各種數(shù)據(jù)使用的合適數(shù)據(jù)類型(有些可使用多種數(shù)據(jù)類
型):
a.East Simpleton的人口 int
b.DVD影碟的價(jià)格? float
c.本章出現(xiàn)次數(shù)最多的字母 char
d.本章出現(xiàn)次數(shù)最多的字母次數(shù) int
2.在什么情況下要用long類型的變量代替int類型的變量?
答:當(dāng)變量范圍超過(guò)int范圍的時(shí)候。原因二:如果要處理更大的值,要使用一種在所有系統(tǒng)上都保證至少是32位的類型,可提高程序的可以執(zhí)行
3.使用哪些可移植的數(shù)據(jù)類型可以獲得32位有符號(hào)整數(shù)?選擇的理由是
什么?
可以使用int32_t類型 要獲得可村住至少32位證書得到最小類型,
4.指出下列常量的類型和含義(如果有的話):
a.'\b'? char類型常量
b.1066? int類型常量
c.99.44 double類型的常量
d.0XAA? int類型常量十六進(jìn)制的數(shù)組
e.2.0e30 都罷了類型的常量
5.Dottie Cawm編寫了一個(gè)程序,請(qǐng)找出程序中的錯(cuò)誤。
include <stdio.h>
main
(
??? float g; h;
??? float tax,
??? rate;
??? g = e21;
??? tax = rate*g;
)
6.寫出下列常量在聲明中使用的數(shù)據(jù)類型和在printf()中對(duì)應(yīng)的轉(zhuǎn)換說(shuō)
明:
12??????? int? %d
0x3?????? unsigned int %#x
'c'?????? char %c
2.34E07?? fouble? %e
'\040'??? char %c
7.0?????? float %f
6L??????? long %ld
6.0L????? float %lf
0x53b6p12 float %a
7.寫出下列常量在聲明中使用的數(shù)據(jù)類型和在printf()中對(duì)應(yīng)的轉(zhuǎn)換說(shuō)明
? (假設(shè)int為16位):
? 012?? unsigned int 八進(jìn)制 %#o
? 2.9e05L?? float? %lf
? '5'?? char %c
? 100000 int %d
? '\n'?? char %c
? 20.0f? float %d
? 0x44????? unsigned int %#x
? -40?? unsignedint %d
8.假設(shè)程序的開頭有下列聲明:
int imate = 2;
long shot = 53456;
char grade = 'A';
float log = 2.71828;
把下面printf()語(yǔ)句中的轉(zhuǎn)換字符補(bǔ)充完整:
printf("The imate,odds against the %__ were %__ to 1.\n", shot);
printf("A score of %__ is not an %__ grade.\n", log,grade);
a.%d %ld
b.%c %lf
9.假設(shè)ch是char類型的變量。分別使用轉(zhuǎn)義序列、十進(jìn)制值、八進(jìn)制字
符常量和十六進(jìn)制字符常量把回車字符賦給ch(假設(shè)使用ASCII編碼值)。
char ch =‘\r’
char ch = 13
char ch = '015'
char ch ='xd'
10.修正下面的程序(在C中,/表示除以)。
void main(int) / this probgram is perfect /
{
cows, legs integer;
printf("How many cow legs did you count?\n);
scanf("%c", legs);
cows = legs / 4;
printf("That implies there are %f cows.\n",
}
修改完正確的daima
void main(int) /*this problom*/
{
int corw, legs, integer;
printf("How many cow legs did you count?\n);
scanf("%d", &legs);
printf("That implies there are %d cows.\n", cows);
}
11.指出下列轉(zhuǎn)義序列的含義:
a.\n? 換行符合
b.\\? 反斜杠
c.\"??? 雙引號(hào)
d.\t? 指標(biāo)符
編程練習(xí)
1.通過(guò)試驗(yàn)(即編寫帶有此類問(wèn)題的程序)觀察系統(tǒng)如何處理整數(shù)上
溢、浮點(diǎn)數(shù)上溢和浮點(diǎn)數(shù)下溢的情況。
基本整形(int):一般占據(jù)2個(gè)或者4個(gè)字節(jié),這都是由編譯系統(tǒng)決定的。在計(jì)算機(jī)中整型數(shù)據(jù)一般是按補(bǔ)碼的形式存儲(chǔ)的;
短整型(short int):分配2個(gè)字節(jié)。存儲(chǔ)方式與基本整形相同,一個(gè)短整型的數(shù)據(jù)范圍是:-32768-32767,即 -215 ~ (215 - 1);
長(zhǎng)整型數(shù)據(jù)(long int):分配它4個(gè)字節(jié),范圍為 -231 ~ (231 - 1);
無(wú)符號(hào)長(zhǎng)整型數(shù)據(jù)(unsigned long int):分配它4個(gè)字節(jié),范圍為 0 ~ 4294967295,即 0 ~ (232 - 1);
雙長(zhǎng)整型(long long int):在vc中系統(tǒng)給它分配8個(gè)字節(jié),這種數(shù)據(jù)類型一般比較少用。
2.編寫一個(gè)程序,要求提示輸入一個(gè)ASCII碼值(如,66),然后打印
輸入的字符。
#include <stdio.h>
int main (void)
{
?? ?unsigned? int a;
?? ?printf("Pleas input a value \n");
?? ?scanf("%d",&a);
?? ?printf("%c\n",a);
?? ?return 0;
}
3.編寫一個(gè)程序,發(fā)出一聲警報(bào),然后打印下面的文本:
Startled by the "By the sudden sound, Great Pumpkin, Sally shouted, what was hat!"
#include <stdio.h>
int main (void)
{
?? ?printf("\aStartled by the sudden sound, Sally shouted,\n");
?? ?printf("\"By the? Great Pumpkin,what was that!\"\n");
?? ?return 0;
}
4.編寫一個(gè)程序,讀取一個(gè)浮點(diǎn)數(shù),先打印成小數(shù)點(diǎn)形式,再打印成指
數(shù)形式。然后,如果系統(tǒng)支持,再打印成p記數(shù)法(即十六進(jìn)制記數(shù)法)。
按以下格式輸出(實(shí)際顯示的指數(shù)位數(shù)因系統(tǒng)而異):
Enter a floating-point value: 64.25
fixed-point notation: 64.250000
exponential 6.425000e+01
p notation: 0x1.01p+6
#include<stdio.h>
int main(void)
{
?? ?float? i;
?? ?printf("Enter a floating-point value :");
?? ?scanf("%f",&i);
?? ?printf("fixed-point notation:%f\n",i); //小數(shù)點(diǎn)形式
?? ?printf("exponential notation:%e\n",i); //指數(shù)形式
?? ?printf("p notation:%a\n",i);//p計(jì)數(shù)法
?? ?return 0;
}
5.一年大約有3.156×10 7 秒。編寫一個(gè)程序,提示用戶輸入年齡,然后顯
示該年齡對(duì)應(yīng)的秒數(shù)
#include<stdio.h>
int main(void)
{
??????? double seconds = 3.156e7;
??????? unsigned age;
??????? printf("年齡:");
??????? scanf("%d",&age);
??????? printf("秒數(shù)是:%f\n",age * seconds);
??????? return 0;
}
6.1個(gè)水分子的質(zhì)量約為3.0×10 ?23 克。1夸脫水大約是950克。編寫一個(gè)
程序,提示用戶輸入水的夸脫數(shù),并顯示水分子的數(shù)量。
#include <stdio.h>
#define WATER 3.0e-23? //1個(gè)水分子的質(zhì)量
#define DEHYDRATION 950? //1夸脫水的質(zhì)量
int main(ivoid)
{
??????? float i, total; //total表示水分子的數(shù)量
??????? printf("please input:");
??????? scanf("%f", &i);
??????? total = i * DEHYDRATION / WATER;
??????? printf("%e\n", total);
??????? return 0;
}
7.1英寸相當(dāng)于2.54厘米。編寫一個(gè)程序,提示用戶輸入身高(/英
寸),然后以厘米為單位顯示身高
#include<stdio.h>
#define INCH 2.54
int main(void)
{
??? float i,height;
??? printf("請(qǐng)輸入身高(英寸):");
??? scanf("%f",&i);
??? height = i*INCH;
??? printf("height = %f\n",height);
??? return 0;
}
8.在美國(guó)的體積測(cè)量系統(tǒng)中,1品脫等于2杯,1杯等于8盎司,1盎司等
于2大湯勺,1大湯勺等于3茶勺。編寫一個(gè)程序,提示用戶輸入杯數(shù),并以
品脫、盎司、湯勺、茶勺為單位顯示等價(jià)容量。思考對(duì)于該程序,為何使用
浮點(diǎn)類型比整數(shù)類型更合適?
#include <stdio.h>
#include <stdlib.h>
int main()
{
??? float cup, pint, ounce, spoon, teaspoon;
??? printf("請(qǐng)輸入杯數(shù):");
??? scanf("%f", &cup);
??? pint = cup / 2;
??? ounce = 8 * cup;
??? spoon = 8 * cup * 2;
??? teaspoon = 8 * cup * 2 * 3;
??? printf("品脫:%f? 盎司:%f? 湯勺:%f? 茶勺:%f\n", pint, ounce, spoon, teaspoon);
??? return 0;
}
?
printf("height = %f\n",height);return 0; } 8.在美國(guó)的體積測(cè)量系統(tǒng)中,1品脫等于2杯,1杯等于8盎司,1盎司等 于2大湯勺,1大湯勺等于3茶勺。編寫一個(gè)程序,提示用戶輸入杯數(shù),并以 品脫、盎司、湯勺、茶勺為單位顯示等價(jià)容量。思考對(duì)于該程序,為何使用 浮點(diǎn)類型比整數(shù)類型更合適? #include <stdio.h> #include <stdlib.h>int main() {float cup, pint, ounce, spoon, teaspoon;printf("請(qǐng)輸入杯數(shù):");scanf("%f", &cup);pint = cup / 2;ounce = 8 * cup;spoon = 8 * cup * 2;teaspoon = 8 * cup * 2 * 3;printf("品脫:%f 盎司:%f 湯勺:%f 茶勺:%f\n", pint, ounce, spoon, teaspoon);return 0; }總結(jié)
以上是生活随笔為你收集整理的c语言课后练习题第三章的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Gardner定时同步的matlab实现
- 下一篇: 木马技术