C語言程序設(shè)計教程 課后習(xí)題參考答案
《C語言程序設(shè)計教程 課后習(xí)題參考答案》由會員分享,可在線閱讀,更多相關(guān)《C語言程序設(shè)計教程 課后習(xí)題參考答案(38頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、《C語言程序設(shè)計教程》 課后習(xí)題參考答案 習(xí)題1 1. (1)編譯、鏈接 .exe (2)函數(shù) 主函數(shù)(或main函數(shù)) (3)編輯 編譯 鏈接 2. (1)-(5):DDBBC (6)-(10):ABBBC 3. (1)答:C語言簡潔、緊湊,使用方便、靈活;C語言是高級語言,同時具備了低級語言的特征;C語言是結(jié)構(gòu)化程序設(shè)計語言,具有結(jié)構(gòu)化的程序控制語句;C語言有各種各樣的數(shù)據(jù)類型;C語言可移植性好;生成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高。 (2)編輯、編譯、鏈接、執(zhí)行 (3)一個C程序由一或多個函數(shù)組成,一函數(shù)若干條語句構(gòu)成,每條語句的末
2、尾必須以分號結(jié)束。
(4)標(biāo)識符,關(guān)鍵字,運算符,分隔符,常量,注釋符等
4. 從鍵盤輸入一個雙精度小數(shù),打印出它的余弦值。
#include
3、 0 1 0 1 1 0
(5)-9 9 8
(6)1)20 2)8 3)70 4)0 5)0 6)0
4.
(1)
#include
4、
#include
5、 double result = (-2 * a + ( 4*a – b )/( 2*a + b ) )/( (a - 4*b)/(a + b) ); printf(“%lf\n”, result); } 習(xí)題3 1. (1)D(2)AD(3)C(4)B(5)A (6)-(10):BDACB 2. (1)3.141593,3.1416,3.142 (2)c=K (3)| 123.46|,|123 | (4)x= 1.23,y= 50.00 (5)0 3. (1)scanf(%f”, c); 改為:scanf(“%f”, &c);
6、 f = (9/5)*c+32; 改為:f = (9.0/5)*c + 32; printf(“攝氏溫度%f度相當(dāng)于華氏溫度%f度”, &c, &f); 改為: printf(“攝氏溫度%f度相當(dāng)于華氏溫度%f度”, c, f); (2) 補充定義:int h; h = 500/60 改為: h = 500 / 60; m = 500% 60 改為: m = 500%60; printf(“500分鐘是%d小時%d分鐘,”&h, &m); 改為: printf(“500分鐘是%d小時%d分鐘” , h, m); 4. (1) #in
7、clude
8、 tmp;
printf(“After swap: x=%c, y=%c\n”, x, y);
}
(3)
#include 9、 10、= z; z = t; }
printf(“%d %d %d\n”, x, y ,z);
}
(2)
#include 11、等\n”);
else if( score >= 60 )
printf(“及格\n”);
else
printf(“不及格\n”);
}
(3)
#include 12、數(shù)
printf(“%d\n”, g); //各位上的數(shù)值
}
else if ( n < 100 ) //兩位數(shù)
{
printf(“%d\n”, 2);//位數(shù)
printf(“%d %d\n”, g,s);
}
else if ( n < 1000 ) //三位數(shù)
{
printf(“%d\n”, 3);//位數(shù)
printf(“%d %d %d\n”, g, s, b);
}
else if ( n < 10000 ) //四位數(shù)
{
printf(“%d\n”, 4);//位數(shù)
printf(“%d %d 13、%d %d\n”, g, s, b, q);
}
}
(4)
#include 14、printf(“能被5和7整除\n”);
else if( n%3==0 || n%5==0 || n%7==0 )
{
if( n%3==0 )
printf(“能被3整除\n”);
else if( n%5==0 )
printf(“能被5整除\n”);
else
printf(“能被7整除\n”);
}
else
printf(“不能被3、5、7中任一個數(shù)整除\n”);
}
(5)
#include 15、桑塔納
double xiali = 2.1; //每公里價格
double fukang = 2.4;
double sangtana = 2.7;
double distance; //距離
double totalMoney;//總的收費
printf("請輸入您乘坐的車型:1代表夏利;2代表富康;3代表桑塔納:");
scanf("%d", &carType);
printf("請輸入您乘車的總路程:");
scanf("%lf", &distance);
if( carType == 1)//夏利
{
if( distance < 3 16、 )
totalMoney = 7.0;
else
totalMoney = 7 + xiali * (distance – 3);
}
else if( carType == 2 ) //富康
{
if( distance < 3 )
totalMoney = 8.0;
else
totalMoney = 8 + fukang * (distance – 3);
}
else if( carType == 3 ) //富康
{
if( distance < 3 )
totalMoney = 9.0;
17、 else
totalMoney = 9 + sangtana * (distance – 3);
}
printf("(四舍五入)您的車費為:%.0lf\n", totalMoney );
}
(6)
#include 18、= c || c==a )
printf(“等腰三角形\n”);
else
printf(“一般三角形\n”);
}
else
printf(“不能構(gòu)成三角形\n”);
}
第5章
1. (1)C(2)C(3)K=36(4)C(5)B
2.
(1) 3次
(2) x>=1 && x<=10 || x>=200&&x<210
(3) e == 0
(4) 6次
(5) 10
3.
(1) 20,10
(2) 16,0
(3) 7BAB4BAB1BC
(4) ABABABC
(5) ******
***** 19、*
******
******
4.
(1) a != b
(2) n / 10
(3) scanf(“%d”, &a);
5. (3) 行 int fac = 1, sum = 0;
6.
(1)
#include 20、alpha++;
else if( ch>=’0’ && ch<=’9’)
digit++;
else if( ‘ ‘ == ch )
space++;
else
other++;
}
printf(“%d %d %d %d\n”, alpha, digit, space, other );
}
(2)
#include 21、20*m20+10*m10 == 100 )
printf(“%d, %d\n”, m20, m10 );
}
}
(3)
#include 22、
main( )
{
int row, spaceCount,starCount;
int n;
scanf("%d", &n);
for( row = 1; row <= n; ++row)
{
for( spaceCount = 1; spaceCount <= n - row ; ++ spaceCount)
printf(" "); //打印出某行上星號前的空格
for( starCount = 1; starCount <= 2* row - 1; ++starCount )
printf("*"); //打印出某行上 23、的所有星號
printf("\n"); //換行
}
//打印下半部分
for(row=1; row 24、5)
#include 25、
printf("%d%d%d%d\n", q,b,s,g);
}
第6章
1.
(1)無返回值
(2)double 2
(3)無限循環(huán)(死循環(huán))
(4)result = 720
2.
(1)
#include 26、 for(col=1; col<=row; col++)
printf("#");
printf("\n");
}
}
(2)
#include 27、("@");
printf("\n");
}
}
(3)
#include 28、, &nowm, &nowd);
age= yearOld(by,bm,bd,nowy,nowm,nowd);
printf("age=%d\n", age);
}
int yearOld(int byear, int bmonth, int bday, int nyear, int nmonth, int nday)
{
int age;
age = nyear - byear;
if( nmonth 29、;
}
(4)
#include 30、int n;
scanf("%d", &n);
printf("%.0lf\n", sumfac( n ) );
}
double sumfac( int n )
{
double f=1.0, s = 0.0;
int i;
for(i=1;i<=n; i++)
{
f *= i;
s += f;
}
return f;
}
(6)
#include 31、intf("%d\n", gcd(m ,n) );
}
int gcd(int m, int n)
{
int t,r;
if( m < n )
{ t = m; m= n; n = t; }
r = m % n;
while( r )
{
m = n;
n = r;
r = m % n;
}
return n;
}
(7)
#include 32、"%d%d", &m, &n);
printf("%d\n", lcm(m ,n) );
}
int gcd(int m, int n)
{
int t,r;
if( m < n )
{ t = m; m= n; n = t; }
r = m % n;
while( r )
{
m = n;
n = r;
r = m % n;
}
return n;
}
int lcm(int m, int n)
{
return m*n/gcd(m,n);
}
(8)
#include 33、e mypower(double x, int y);
main( )
{
double x;
int y;
scanf("%lf%d", &x, &y);
printf("%lf\n", mypower(x,y) );
}
double mypower(double x, int y)
{
int i;
double f=1.0;
for(i=1; i<=y; i++)
f *= x;
return f;
}
第7章
1.
(1)6 (2)5 (3)不能
(4)int a[3][2]={{1,2}, {3,4}, 34、 {5,6} };
(5)6 9
(6)abc G
2.
(1)
#include 35、的元素為:\n”);
for( i=0; i<10; i++)
printf(“%5d”, array[i]);
printf(“\n”);
return 0;
}
void reverse( int a[ ], int n )
{
int i;
int tmp;
for( i=0; i 36、lude 37、}
(3)
#include 38、s2[ ])
{
int i, j=0;
for(i=0; i 39、ar str2[ ] )
{
int i=0,j=0;
while( str1[i] != '\0' )
{
if( str1[i]>='a'&&str1[i]<='z' )
{
str2[j] = str1[i];
j++;
}
i++;
}
str2[j] = '\0';
return j;
}
(5)
#include 40、 = getchar( );
deleteAll( s, ch );
puts( s );
}
void deleteAll( char str[ ], char ch)
{
int i, j;
i = 0;
j = 0;
while( str[i] )
{
if( str[i] != ch )
{
str[j++] = str[i];
}
i++;
}
str[j] = '\0';
}
(6)
#include 41、1, char ch2);
main( )
{
char s[100], c1, c2;
gets( s );
c1 = getchar( );
c2 = getchar( );
replaceAll( s, c1, c2 );
puts( s );
}
void replaceAll(char str[ ], int ch1, char ch2)
{
int i;
i = 0;
while( str[i] )
{
if( str[i] == ch1 )
str[i] = ch2;
i++;
}
}
(7)
# 42、include 43、個元素下標(biāo),使cc指向最后一個元素
for( ; cc>=0; cc-- ) //輸出轉(zhuǎn)換后的二進(jìn)制數(shù)
printf(“%d”, array[cc]);
printf(“\n”);
return 0;
}
int transformToBin( int dnum, int bin[ ] )
{
int count = 0;
while ( dnum ) //當(dāng)dnum還未轉(zhuǎn)換完畢
{
bin[count++] = dnum % 2; //余數(shù)保留到數(shù)組對應(yīng)元素中
dnum /= 2; //數(shù)本身除2
44、
}
return count;
}
(8)
#include 45、回退一個元素下標(biāo),使cc指向最后一個元素
for( ; cc>=0; cc-- ) //輸出轉(zhuǎn)換后的進(jìn)制數(shù)
printf("%c", array[cc]);
printf("\n");
return 0;
}
int transformToHex( int dnum, char hex[ ] )
{
int count = 0;
int t;
while ( dnum ) //當(dāng)dnum還未轉(zhuǎn)換完畢
{
t = dnum % 16;
if( t < 10 )
hex[count] = t+'0'; //余數(shù)保留到 46、數(shù)組對應(yīng)元素中
else
hex[count] = t-10+'A';
count++;
dnum /= 16; //數(shù)本身除16
}
return count;
}
(9)
#include 47、ol);
void getMaxEveryRow(int a[][N], int row, int col, int y[]);
main( )
{
int arr[M][N], y[M]={0};
int i;
generate(arr, M, N);
display(arr, M, N);
getMaxEveryRow(arr,M,N,y);
//輸出最大值
for(i=0; i 48、int col )
{
int i,j;
srand( time(NULL) );
for(i=0; i 49、nt a[][N], int row, int col,int y[])
{
int i,j;
for(i=0; i 50、 ][N], int row, int col );
void display( int a[][N], int row, int col);
void getMinEveryCol(int a[][N], int row, int col);
main( )
{
int arr[M][N];
int i;
generate(arr, M, N);
display(arr, M, N);
getMinEveryCol(arr,M,N);
//輸出最小值
for(i=0; i 51、ntf("\n");
}
void generate( int a[ ][N], int row, int col )
{
int i,j;
srand( time(NULL) );
for(i=1; i 52、[j]);
printf("\n");
}
}
void getMinEveryCol(int a[][N], int row, int col)
{
int i,j;
for(i=0; i 53、(5)return (6)遞歸
(7)求 1!+2!+3!+4!+5!
(8)注意全局變量和局部變量的區(qū)別
2.
(1)
#include 54、 sqrt( x*x+y*y );
}
(2)
#include 55、ong s;
if( hour < 6 )
{
s = second+minute*60+hour*60*60;
}
else
{
s = 60-second+(60-minute-1)*60+(12-hour-1)*60*60;
}
return s;
}
(3)
#include 56、
}
int fun( int n )
{
int i;
for(i=2; i 57、if( count % 10 == 0 )
printf("\n");
}
printf("\n");
}
int fun( int n )
{
int i;
for(i=2; i 58、nc(n) );
}
int func( int n )
{
if ( 1 == n )
return 3;
return 2*func(n-1)-1;
}
(6)
#include 59、
return m;
return gcd(n, m%n);
}
第9章
1.
(1)xyzNKT
(2)bcdefgh
(3)4,4
(4)qponmzyx
(5)abcCD
(6)0
2.
(1)
#include 60、f("%d ", a[i]);
printf("\n");
}
void reverse( int *p, int n)
{
int *q;
int t;
q = p + n - 1;
while( p < q )
{
t = *p;
*p = *q;
*q = t;
p++;
q--;
}
}
(2)
#include 61、
reverseStr(s);
puts(s);
}
void reverseStr( char *str )
{
char *pEnd,t;
pEnd = str + strlen(str) - 1;
while( str < pEnd )
{
t = *str;
*str = *pEnd;
*pEnd = t;
str++;
pEnd--;
}
}
(3)
#include 62、1,2,3,4,5,6,7,8,9, 10};
int b[10], count,i;
count=copyTo(a,10,b);
for(i=0; i 63、++ = *ps1;
}
}
return ps2 - s2;
}
(4)
#include 64、
{
*str2++=*str1;
}
str1++;
}
*str2 = '\0';
}
(5)
#include 65、
if( *str != ch )
*p++ = *str;
str++;
}
*p = '\0';
}
(6)
#include 66、 c2 = getchar( );
replaceAll(s,c1, c2);
puts(s);
}
void replaceAll( char *str, char ch1, char ch2)
{
while( *str )
{
if( *str == ch1 )
{
*str = ch2;
}
str++;
}
}
(7)
#include
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教部編版教材三年級上冊道德與法治第四單元家是最溫暖的地方教學(xué)ppt課件 (全套)
- 蘇教版小學(xué)科學(xué)三年級下冊《雨下得有多大》課件1
- 花的形態(tài)與結(jié)構(gòu)課件匯總
- 一年級-數(shù)學(xué)下冊十幾減九人教版課件
- 電影膠片動態(tài)課件
- 高電壓技術(shù)課件第六章
- 項目采購管理(6)
- 四川省攀枝花市XX小學(xué)一年級數(shù)學(xué)下冊六100以內(nèi)的加法和減法二練習(xí)十三2課件蘇教版
- 山東省青島市黃島區(qū)海青鎮(zhèn)中心中學(xué)七年級歷史下冊 15 明朝君權(quán)的加強課件 新人教版
- 把握人物的性格特征
- 剪小紙人PPT課件
- 八年級物理探究凸透鏡成像規(guī)律8
- 1[1]22配方法2
- 近代機(jī)械行業(yè)唯物主義管理分析自然觀
- 全國科技創(chuàng)新大賽“科學(xué)幻想畫”獲獎作品ppt課件