c語言大學實用教程答案
『壹』 請大家推薦一本關於C語言的習題和解析的書
C++語言習題與解析 李春葆
這本書還是分級的,可以考慮分開買
或者
C語言程序設計習題集
以上都是清華大學出版社的
另外許多教材書裡面的習題也是不錯的,例如
C程序設計語言
作者:(美)克尼漢等
由c的設計者寫的,很權威的書,同時可以買它的習題解答,不過應該比較貴,看的話最好是英文版,中文版翻譯大多比較難懂。
另外可以考慮譚浩強的《c語言程序設計》,似乎許多人用,
我以前用的是c語言大學實用教程,也還可以,雖然不是很深
『貳』 c how to program (c語言大學教程Deitel 答案 第六版,沒有6的,5的也好,4的也行啊!!!
推薦c (c++ )primer
『叄』 c語言程序設計能力教程答案
1 【C語言】《C語言程序設計教程(第二版)》習題答案
說 明
1. 本文所指的《C語言程序設計教程(第二版)》是李鳳霞主編、北京理
工大學出版社出版的,綠皮。
2 第1章 程序設計基礎知識
一、單項選擇題(第23頁)
1-4.CBBC 5-8.DACA
二、填空題(第24頁)
1.判斷條件 2.面向過程編程 3.結構化 4.程序 5.面向對象的程序設計語言 7.有窮性 8.直到型循環 9.演算法 10.可讀性 11.模塊化 12.對問題的分析和模塊的劃分
三、應用題(第24頁)
2.源程序:
main()
{int i,j,k; /* i:公雞數,j:母雞數,k:小雞數的1/3 */ <br>printf("cock hen chick\n"); <br>for(i=1;i<=20;i++) <br>for(j=1;j<=33;j++) <br>for(k=1;k<=33;k++) <br>if (i+j+k*3==100&&i*5+j*3+k==100) <br>printf(" %d %d %d\n",i,j,k*3);}
執行結果:
cock hen chick
4 18 78
8 11 81
12 4 84
3.現計算斐波那契數列的前20項。
遞推法 源程序:
main()
{long a,b;int i; <br>a=b=1; <br>for(i=1;i<=10;i++) /*要計算前30項,把10改為15。*/ <br>{printf("%8ld%8ld",a,b); <br>a=a+b;b=b+a;}}
遞歸法 源程序:
main()
{int i; <br>for(i=0;i<=19;i++) <br>printf("%8d",fib(i));}
fib(int i)
{return(i<=1?1:fib(i-1)+fib(i-2));}
執行結果:
1 1 2 3 5 8 13 21 34 55
89 144 233 377 610 987 1597 2584 4181 6765
4.源程序:
#include "math.h";
main()
{double x,x0,deltax; <br>x=1.5; <br>do {x0=pow(x+1,1./3); <br>deltax=fabs(x0-x); <br>x=x0; <br>}while(deltax>1e-12);
printf("%.10f\n",x);}
執行結果:
1.3247179572
5.源程序略。(分子、分母均構成斐波那契數列)
結果是32.66026079864
6.源程序:
main()
{int a,b,c,m; <br>printf("Please input a,b and c:"); <br>scanf("%d %d %d",&a,&b,&c); <br>if(a<b){m=a;a=b;b=m;}
if(a<c){m=a;a=c;c=m;}
if(b<c){m=b;b=c;c=m;}
printf("%d %d %d\n",a,b,c);}
執行結果:
Please input a,b and c:123 456 789
789 456 123
7.源程序:
main()
{int a; <br>scanf("%d",&a); <br>printf(a%21==0?"Yes":"No");}
執行結果:
42
Yes
3 第2章 C語言概述
一、單項選擇題(第34頁)
1-4.BDCB 5-8.AABC
二、填空題(第35頁)
1.主 2.C編譯系統 3.函數 函數 4.輸入輸出 5.頭 6. .OBJ 7.庫函數 8.文本
三、應用題(第36頁)
5.sizeof是關鍵字,stru、_aoto、file、m_i_n、hello、ABC、SIN90、x1234、until、cos2x、s_3是標識符。
8.源程序:
main()
{int a,b,c; <br>scanf("%d %d",&a,&b); <br>c=a;a=b;b=c; <br>printf("%d %d",a,b);}
執行結果:
12 34
34 12
4 第3章 數據類型與運算規則
一、單項選擇題(第75頁)
1-5.DBACC 6-10.DBDBC 11-15.ADCCC 16-20.CBCCD 21-25.ADDBC 26-27.AB
二、填空題(第77頁)
1.補碼 2.±(10^-308~10^308) 3.int(整數) 4.單目 自右相左 5.函數調用 6.a或b 7.1 8.65,89
三、應用題(第78頁)
1.10 9
2.執行結果:
11
0
0
12
1
5 第4章 順序結構程序設計
一、單項選擇題(第90頁)
1-5.DCDAD 6-10.BACBB
二、填空題(第91頁)
1.一 ;2. 5.169000 3.(1)-2002500 (2)I=-200,j=2500 (3)i=-200
j=2500 4.a=98,b=765.000000,c=4321.000000 5.略 6.0,0,3 7.3 8.scanf("%lf%lf%lf",&a,&b,&c); 9. 13 13.000000,13.000000 10.a=a^c;c=c^a;a=a^c;(這種演算法不破壞b的值,也不用定義中間變數。)
三、編程題(第92頁)
1.仿照教材第27頁例2-1。
2.源程序:
main()
{int h,m; <br>scanf("%d:%d",&h,&m); <br>printf("%d\n",h*60+m);}
執行結果:
9:23
563
3.源程序:
main()
{int a[]={-10,0,15,34},i;
for(i=0;i<=3;i++)
printf("%d\370C=%g\370F\t",a[i],a[i]*1.8+32);}
執行結果:
-10℃=14°F 0℃=32°F 15℃=59°F 34℃=93.2°F
4.源程序:
main()
{double pi=3.14159265358979,r=5; <br>printf("r=%lg A=%.10lf S=%.10lf\n",r,2*pi*r,pi*pi*r);}
執行結果:
r=5 A=31.4159265359 S=49.3480220054
5.源程序:
#include "math.h";
main()
{double a,b,c; <br>scanf("%lf%lf%lf",&a,&b,&c); <br>if (a+b>c&&a+c>b&&b+c>a) <br>{double s=(a+b+c)/2; <br>printf("SS=%.10lf\n",sqrt(s*(s-a)*(s-b)*(s-c)));}
else printf("Data error!");}
執行結果:
4 5 6
SS=9.9215674165
6.源程序:
main()
{int a=3,b=4,c=5;float d=1.2,e=2.23,f=-43.56; <br>printf("a=%3d,b=%-4d,c=**%d\nd=%g\ne=%6.2f\nf=%-10.4f**\n",a,b,c,d,e,f);}
7.源程序:
main()
{int a,b,c,m; <br>scanf("%d %d %d",&a,&b,&c); <br>m=a;a=b;b=c;c=m; <br>printf("%d %d %d\n",a,b,c);}
執行結果:
5 6 7
6 7 5
8.源程序:
main()
{int a,b,c; <br>scanf("%d %d %d",&a,&b,&c); <br>printf("average of %d,%d and %d is %.2f\n",a,b,c,(a+b+c)/3.); <br>執行結果: <br>6 7 9 <br>average of 6,7 and 9 is 7.33 <br>9.不能。修改後的源程序如下: <br>main() <br>{int a,b,c,x,y; <br>scanf("%d %d %d",&a,&b,&c); <br>x=a*b;y=x*c; <br>printf("a=%d,b=%d,c=%d\n",a,b,c); <br>printf("x=%d,y=%d\n",x,y);}
6 第5章 選擇結構程序設計
一、單項選擇題(第113頁)
1-4.DCBB 5-8.DABD
二、填空題(第115頁)
1.非0 0 2.k==0
3.if (abs(x)>4) printf("%d",x);else printf("error!");
4.if((x>=1&&x<=10||x>=200&&x<=210)&&x&1)printf("%d",x);
5.k=1 (原題最後一行漏了個d,如果認為原題正確,則輸出k=%。)
6. 8! Right!11 7.$$$a=0 8.a=2,b=1
三、編程題(第116頁)
1.有錯。正確的程序如下:
main()
{int a,b,c; <br>scanf("%d,%d,%d",&a,&b,&c); <br>printf("min=%d\n",a>b?b>c?c:b:a>c?c:a);}
2.源程序:
main()
{unsigned long a; <br>scanf("%ld",&a); <br>for(;a;printf("%d",a%10),a/=10);}
執行結果:
12345
54321
3.(1)源程序:
main()
{int x,y; <br>scanf("%d",&x); <br>if (x>-5&&x<0)y=x; <br>if (x>=0&&x<5)y=x-1; <br>if (x>=5&&x<10)y=x+1; <br>printf("%d\n",y);}
(2)源程序:
main()
{int x,y; <br>scanf("%d",&x); <br>if(x<10) if(x>-5) if(x>=0) if(x>=5)y=x+1; <br>else y=x-1; else y=x; <br>printf("%d\n",y);}
(3)源程序:
main()
{int x,y; <br>scanf("%d",&x); <br>if(x<10) if(x>=5)y=x+1; <br>else if(x>=0)y=x-1; <br>else if(x>-5)y=x; <br>printf("%d\n",y);}
(4)源程序:
main()
{int x,y; <br>scanf("%d",&x); <br>switch(x/5) <br>{case -1:if(x!=-5)y=x;break; <br>case 0:y=x-1;break; <br>case 1:y=x+1;}
printf("%d\n",y);}
4.本題為了避免考慮每月的天數及閏年等問題,故採用面向對象的程序設計。
現給出Delphi源程序和C++ Builder源程序。
Delphi源程序:
procere TForm1.Button1Click(Sender: TObject);
begin
edit3.Text:=format('%.0f天',[strtodate(edit2.text) -strtodate(edit1.text)]);
end;
procere TForm1.FormCreate(Sender: TObject);
begin
Edit2.Text:=datetostr(now);
button1click(form1)
end;
C++ Builder源程序:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Edit3->Text=IntToStr(StrToDate(Edit2->Text)-StrToDate(Edit1->Text))+"天";
}
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Edit2->Text=DateToStr(Now());
Button1Click(Form1);
}
執行結果:(運行於Windows下) http://img378.photo.163.com/nxgt/41463572/1219713927.jpg
5.源程序:
main()
{unsigned a,b,c; <br>printf("請輸入三個整數:"); <br>scanf("%d %d %d",&a,&b,&c); <br>if(a&&b&&c&&a==b&&a==c)printf("構成等邊三角形\n"); <br>else if(a+b>c&&a+c>b&&b+c>a) <br>if(a==b||a==c||b==c)printf("構成等腰三角形\n"); <br>else printf("構成一般三角形\n"); <br>else printf("不能構成三角形\n");}
執行結果:
請輸入三個整數:5 6 5
構成等腰三角形
6.源程序:
main()
{int x,y; <br>scanf("%d",&x); <br>if(x<20)y=1; <br>else switch(x/60) <br>{case 0:y=x/10;break; <br>default:y=6;}
printf("x=%d,y=%d\n",x,y);}
7.源程序:
main()
{unsigned m;float n; <br>scanf("%d",&m); <br>if(m<100)n=0; <br>else if(m>600)n=0.06; <br>else n=(m/100+0.5)/100; <br>printf("%d %.2f %.2f\n",m,m*(1-n),m*n);}
執行結果:
450
450 429.75 20.25
8. 2171天(起始日期和終止日期均算在內)
本題可利用第4小題編好的程序進行計算。把起始日期和終止日期分別打入「生日」和「今日」欄內,單擊「實足年齡」按鈕,將所得到的天數再加上1天即可。
9.源程序:
#include "math.h";
main()
{unsigned long i; <br>scanf("%ld",&i); <br>printf("%ld %d\n",i%10,(int)log10(i)+1);}
執行結果:
99887
7 5
10.源程序:
main()
{unsigned long i;unsigned j[10],m=0; <br>scanf("%ld",&i); <br>for(;i;){j[m++]=(i+2)%10;i/=10;}
for(;m;m--)i=i*10+j[m-1];
printf("%ld\n",i);}
執行結果:
6987
8109
(註:要加密的數值不能是0或以0開頭。如果要以0開頭需用字元串而不能是整數。)
7 第6章 循環結構程序設計
一、單項選擇題(第142頁)
1-4.BCCB 5-8.CBCA
二、填空題(第143頁)
1.原題可能有誤。如無誤,是死循環 2.原題有誤。如果把b=1後面的逗號改為分號,則結果是8。 3.20 4.11 5. 2.400000 6.*#*#*#$ 7.8 5 2 8.①d=1.0 ②++k ③k<=n 9.①x>=0 ②x<amin
三、編程題(第145頁)
1. 源程序:
main()
{int i=1,sum=i; <br>while(i<101){sum+=i=-i-2;sum+=i=-i+2;}
printf("%d\n",sum);}
執行結果:
51
2.源程序:
main()
{double p=0,n=0,f;int i; <br>for(i=1;i<=10;i++) <br>{scanf("%lf",&f); <br>if (f>0)p+=f; else n+=f;}
printf("%lf %lf %lf\n",p,n,p+n);}
3.源程序:
main()
{unsigned a; <br>scanf("%ld",&a); <br>for (;a;printf("%d,",a%10),a/=10); <br>printf("\b \n");}
執行結果:
23456
6,5,4,3,2
4.源程序:
main()
{unsigned long a,b,c,i; <br>scanf("%ld%ld",&a,&b); <br>c=a%1000; <br>for(i=1;i<b;i++)c=c*a%1000; <br>if(c<100)printf("0"); <br>if(c<10)printf("0"); <br>printf("%ld\n",c);}
執行結果:
129 57
009
5.略
6.原題提供的計算e的公式有誤(前面漏了一項1)。正確的公式是e= 1 + 1 + 1/2! + 1/3! + … + 1/n! + …
(1)源程序:
main()
{double e=1,f=1;int n; <br>for(n=1;n<=20;n++){f/=n;e+=f;}
printf("e=%.14lf\n",e);}
執行結果:
e=2.71828182845905
(2)源程序:
main()
{double e=1,f=1;int n; <br>for(n=1;f>1e-4;n++){f/=n;e+=f;}
printf("e=%.4f\n",e);}
執行結果:
e=2.7183
7.源程序:
main()
{unsigned long a=0,b=1,c=0;int i,d; <br>scanf("%d",&d); <br>for (i=1;i<=(d+2)/3;i++) <br>printf("%10ld%10ld%10ld",a,b,(a+=b+c,b+=c+a,c+=a+b));}
本題還可以用遞歸演算法(效率很低),源程序如下:
unsigned long fun(int i)
{return i<=3?i:fun(i-1)+fun(i-2)+fun(i-3);}
main()
{int i,d; scanf("%d",&d); <br>for(i=1;i<=d;i++) <br>printf("%10ld",fun(i));}
執行結果:
15
1 2 3 6 11 20 37 68
125 230 423 778 1431 2632 4841
8.源程序:
main()
{int i; <br>for(i=1010;i<=9876;i+=2) <br>if(i/100%11&&i%100%11&&i/10%100%11&&i/1000!=i%10&&i/1000!=i/10%10&&i/100%10!=i%10)printf(" %d",i);}
執行結果:
1024 1026 1028 1032 1034 1036 …… …… 9874 9876
9.源程序:
main()
{int i,j,k; <br>printf("apple watermelon pear\n"); <br>for(i=1;i<=100;i++) <br>for(j=1;j<=10;j++) <br>if((k=100-i-j)*2==400-i*4-j*40) <br>printf("%4d%7d%9d\n",i,j,k);}
執行結果:
apple watermelon pear
5 5 90
24 4 72
43 3 54
62 2 36
81 1 18
10.源程序:
#include "stdio.h";
#define N 4 /* N為階數,可以改為其他正整數 */
main()
{int m=N*2,i,j; <br>for(i=1;i<m;printf("\n"),i++) <br>for(j=1;j<m; <br>putchar(N-abs(i-N)<=abs(j++-N)?' ':'*'));}
如果把N值改為5,則執行結果如下:
*
***
*****
*******
*********
*******
*****
***
*
『肆』 求大神C語言基礎答案
1. DBCBABDA
2. 1、注釋。2、main。3、頭文件,主函數。4、調用系統提供的輸入輸出函數。5、機器語言,匯編語言,高級語言。6、機器語言
第三題課本上網上都有啊。
『伍』 求練習題答案,戴特爾著 c語言大學教程 第六版
哎,我也是跟樓主同求,買了這本書,其他都好,就是沒答案……
『陸』 C語言大學實用教程免費下載的電子版
C語言視頻教程 譚浩強編,曾怡教授講解
C語言程序設計視頻教程(曾怡)
地區:大陸
語言:普通話
簡介:
C程序設計視頻教程(曾怡):本套視頻教程由曾怡副教授講解,使用教材為:《C程序設計》 譚浩強 清華大學出版社出版。是難得的C語言學習視頻教程。全程共30講,每講45分鍾左右,CSF視頻格式。講課內容如下:
第一講 第一章 C語言概述
第二講 第二章 程序的靈魂—演算法
第三講 第三章 數據類型、運算符與表達式
第四講 第三章 數據類型、運算符與表達式
第五講 第三章 數據類型、運算符與表達式
第六講 第三章 數據類型、運算符與表達式
第四章 最簡單的C程序設計—順序程序設計
第七講 第四章 最簡單的C程序設計—順序程序設計
第八講 第四章 最簡單的C程序設計—順序程序設計
第九講 第五章 選擇結構的程序設計
第十講 第五章 選擇結構的程序設計
第十一講 第五章 選擇結構的程序設計
第十二講 第六章 循環結構程序設計
第十三講 第六章 循環結構程序設計
第十四講 第六章 循環結構程序設計
第十五講 第六章 循環結構程序設計
第七章 數組
第十六講 第七章 數組
第十七講 第七章 數組
第十八講 第七章 數組
第十九講 第七章 數組
第二十講 第七章 數組
第八章 函數
第二十一講 第八章 函數
第二十二講 第八章 函數
第二十三講 第八章 函數
第二十四講 第十章 指針
第二十五講 第十章 指針
第二十六講 第十章 指針
第二十七講 第十章 指針
第十一章 結構體
第二十八講 第十一章 結構體
復習總結第一講
復習總結第二講
下載地址(用訊雷下載)
http://www.x723.com/down/soft_1.html
速度還可以
『柒』 人大出版社會計學基礎第五版答案
答案
『捌』 求山東理工大學C語言實驗答案(在線等、求速度)
實驗一 簡單C程序的調試
一、實驗目的
熟悉在VC的運行環境下,編輯調試C語言程序的一般步驟。掌握編寫與調試簡單C語言程序的基本方法。
二、實驗要求
1. 仔細閱讀下列實驗內容,並編寫出相應的C語言源程序。
2. 在VC運行環境下,編輯錄入源程序。
3. 調試運行源程序,並記錄下調試運行過程中出現的所有錯誤及改正方法。
4. 掌握如何根據出錯信息查找語法錯誤。
5. 寫出本次實驗的實驗報告。
三、實驗內容
1.從鍵盤輸入一個以秒為單位的時間值(如10000秒),將其轉化為以時、分、秒錶示的時間值並輸出。
#include <stdio.h>
void main()
{int time,h,min,sec;
printf("請輸入時間,以秒為單位\n");
scanf("%d",&time);
h=time/3600;
min=(time%3600)/60;
sec=(time%3600)%60;
printf(" 時間轉換為:%d h %d min %d s\n",h,min,sec);
}
2.已知如下二元一次方程組的系數值,求該方程組的解。
a1x+b1y=c1
a2x+b2y=c2
#include <stdio.h>
void main()
{float a1,b1,c1,a2,b2,c2,m,n,p;
printf(" 請輸入二元一次方程組的各項參數:");
scanf("%f %f %f %f %f %f",&a1,&b1,&c1,&a2,&b2,&c2);
p=a1*b2-a2*b1;
if(p!=0)
m=(b2*c1-b1*c2)/(a1*b2-a2*b1);
n=(a1*c2-a2*c1)/(a1*b2-a2*b1);
printf("%fx+%fy=%f\n%fx+%fy=%f\n",a1,b1,c1,a2,b2,c2);
printf("解為:\n x=%f\n y=%f\n",m,n);
}
實驗二 順序結構程序設計
一、實驗目的
掌握順序程序設計的基本思想和順序程序設計的基本方法
二、實驗要求
1. 仔細閱讀下列實驗內容,並編寫出相應的C語言源程序。
2. 在VC運行環境下,編輯錄入源程序。
3. 調試運行源程序,並記錄下調試運行過程中出現的所有錯誤及改正方法。
4. 掌握如何根據出錯信息查找語法錯誤。
5. 掌握如何通過動態跟蹤程序運行過程查找邏輯錯誤。
6. 寫出本次實驗的實驗報告。
三、實驗內容
1.編程序實現:輸入一個年份y,求出從公元1年1月1日到y年的1月1日,總共有多少天(提示:400年97閏)。
#include <stdio.h>
void main()
{
int year,days;
printf("please enter a year:");
scanf("%d",&year);
days=365*(year-1)+97*((year-1)/400)+24*(((year-1)%400)/100)+(((year-1)%400)%100)/4+1;
printf("公元1年1月1日到公元%d年1月1日有%d天。\n",year,days);
}
實驗三 選擇結構程序設計
一、 實驗目的
掌握選擇結構程序設計的一般方法及選擇結構程序的調試方法。
二、實驗要求
1. 仔細閱讀下列實驗內容,並編寫出相應的C語言源程序。
2. 在VC運行環境下,編輯錄入源程序。
3. 調試運行源程序,並記錄下調試運行過程中出現的所有錯誤及改正方法。
4. 掌握如何根據出錯信息查找語法錯誤。
5. 掌握如何通過動態跟蹤程序運行過程查找邏輯錯誤。
6. 寫出本次實驗的實驗報告。
三、實驗內容
1.編程序實現:輸入一個年份和月份,求出這個月的天數並輸出。
#include <stdio.h>
void main()
{
int year,month,n;
printf("please enter a date like 2010/4\n");
scanf("%d/%d",&year,&month);
switch (month)
{
case 1: n=31;break;
case 2: n=28;break;
case 3: n=31;break;
case 4: n=30;break;
case 5: n=31;break;
case 6: n=30;break;
case 7: n=31;break;
case 8: n=31;break;
case 9: n=30;break;
case 10: n=31;break;
case 11: n=30;break;
case 12: n=31;break;
default:break;
}
if(year%4==0&&year%100!=0||year%400==0&&month==2)
n=29;
printf("%d年%d月有%d天。、\n",year,month,n);
}
2.編程序實現:輸入一個年份y,求出y年的1月1日是星期幾(提示:公元1年1月1日是星期一)。
#include <stdio.h>
void main()
{
int m,n=0,year,i;
printf("please enter a year");
scanf("%d",&year);
n=365*(year-1)+97*((year-1)/400)+24*(((year-1)%400)/100)+(((year-1)%400)%100)/4+1;
printf("%d年1月1日是",year);
m=n%7;
switch (m)
{
case 0: printf("星期天\n");
case 1:printf("星期一\n");break;
case 2:printf("星期二\n");break;
case 3:printf("星期三\n");break;
case 4:printf("星期四\n");break;
case 5:printf("星期五\n");break;
case 6:printf("星期六\n");break;
default:break;
}
}
3.(拓展題,選做)編程序實現:輸入任意一個日期的年、月、日的值,求出是星期幾並輸出。
#include <stdio.h>
void main()
{
int year,month, day,n,i;
printf("please enter a date like 2010/4/16\n");
scanf("%d/%d/%d",&year,&month,&day);
n=365*(year-1)+97*((year-1)/400)+24*(((year-1)%400)/100)+(((year-1)%400)%100)/4;
switch (month)
{
case 1: n+=day;break;
case 2: n+=day+31;break;
case 3: n+=day+59;break;
case 4: n+=day+90;break;
case 5: n+=day+120;break;
case 6: n+=day+151;break;
case 7: n+=day+181;break;
case 8: n+=day+212;break;
case 9: n+=day+243;break;
case 10: n+=day+274;break;
case 11: n+=day+304;break;
case 12: n+=day+344;break;
default:break;
}
if(year%4==0&&year%100!=0||year%400==0&&month>2)
n+=1;
n=n%7;
switch (n)
{
case 0: printf("星期天\n");
case 1:printf("星期一\n");break;
case 2:printf("星期二\n");break;
case 3:printf("星期三\n");break;
case 4:printf("星期四\n");break;
case 5:printf("星期五\n");break;
case 6:printf("星期六\n");break;
default:break;
}
}
實驗四 循環程序綜合應用
一、實驗目的:
掌握循環結構程序設計的一般方法及循環結構程序的調試方法,能夠綜合運用順序、選擇和循環結構解決一般難度的實際應用問題。
二、實驗要求:
1.仔細閱讀下列實驗內容,並編寫出相應的C語言源程序。
2.在VC運行環境下,編輯錄入源程序。
3.調試運行源程序,並記錄下調試運行過程中出現的所有錯誤及改正方法。
4.掌握如何根據出錯信息查找語法錯誤。
5.掌握如何通過動態跟蹤程序運行過程查找邏輯錯誤。
6.寫出本次實驗的實驗報告。
三、實驗內容:
1.編程序實現如下功能:輸入任意一個年份的值,按以下格式輸出該年份一月份的公歷日歷。
要求用循環控制列印。
2011年日歷
1月
日 一 二 三 四 五 六
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
#include <stdio.h>
void main()
{
int year,days,i,m,k=0,j;
printf("please enter a year:");
scanf("%d",&year);
days=365*(year-1)+97*((year-1)/400)+24*(((year-1)%400)/100)+(((year-1)%400)%
100)/4+1;
m=days%7;
printf("%d年日歷\n一月\n",year);
printf(" 日 一 二 三 四 五 六\n");
for(i=1;i<=m;i++)
{
k++;
printf(" ");}
k=m;
for(j=1;j<=31;j++)
{
k++;
printf("%3d",j);
if(k%7==0)
printf("\n");}
printf("\n");
}
2.(拓展題,選做)編程序實現如下功能:輸入任意一個年份的值,輸出該年份全年的公歷日歷。#include <stdio.h>
void main()
{
int year,days,i,m,n,k=0,j,day,month;
printf("please enter a year:");
scanf("%d",&year);
printf("%d年日歷\n",year);
days=365*(year-1)+97*((year-1)/400)+24*(((year-1)%400)/100)+(((year-1)%400)%100)/4+1;
for(month=1;month<=12;month++)
{
switch (month)
{
case 1: day=31;break;
case 2: day=28;break;
case 3: day=31;break;
case 4: day=30;break;
case 5: day=31;break;
case 6: day=30;break;
case 7: day=31;break;
case 8: day=31;break;
case 9: day=30;break;
case 10: day=31;break;
case 11: day=30;break;
case 12: day=31;break;
default:break;
}
if(year%4==0&&year%100!=0||year%400==0&&month==2)
n=29;
switch (month)
{
case 1: days+=0;break;
case 2: days+=31;break;
case 3: days+=59;break;
case 4: days+=90;break;
case 5: days+=120;break;
case 6: days+=151;break;
case 7: days+=181;break;
case 8: days+=212;break;
case 9: days+=243;break;
case 10: days+=274;break;
case 11: days+=304;break;
case 12: days+=334;break;
default:break;
}
if(year%4==0&&year%100!=0||year%400==0&&month>2)
days+=1;
m=days%7;
printf("%d月\n",month),
printf(" 日 一 二 三 四 五 六\n");
for(i=1;i<=m;i++){k++;
printf(" ");}
k=m;
for(j=1;j<=day;j++)
{
k++;
printf("%3d",j);
if(k%7==0)
printf("\n");}
printf("\n");
}
}
都是同學啊!
最後兩題米看到答案,我的方法不大對,就不給你了。
『玖』 c語言程序設計教程 第四版 課後答案 (李麗娟).pdf
您要c語言程序設計教程
第四版
課答案
(李麗娟).pdf我已發送請按照步驟進行操作採納我前進力記評採納互相幫助c語言程序設計教程
第四版
課後答案
(李麗娟).pdf
『拾』 求《C語言程序設計基礎》的課後習題答案
大學學習資料免費下載網 有類似資料 在 其他公共課程 版塊 標題:陳東方 C語言程序設計基礎實驗與題解(答案)
