本文目錄一覽:
什麼才是最純的C語言?C語言的精華又是什麼呢?
學習了一段時間的c語言,沒有聽過你說的問題–什麼才是最純的C語言?
你的意思是純純的c語言嗎,c語言很少有不純的呵!
他的精華嗎!下面是書上說的!
C語言是一種計算機程序設計語言。它既有高級語言的特點,又具有彙編語言的特點。它可以作為系統設計語言,編寫工作系統應用程序,也可以作為應用程序設計語言,編寫不依賴計算機硬件的應用程序。因此,它的應用範圍廣泛。
C語言對操作系統和系統使用程序以及需要對硬件進行操作的場合,用C語言明顯優於其它解釋型高級語言,有一些大型應用軟件也是用C語言編寫的。
C語言具有繪圖能力強,可移植性,並具備很強的數據處理能力,因此適於編寫系統軟件,三維,二維圖形和動畫。它是數值計算的高級語言。
“純C”是指什麼樣的C語言?
如果非常較真的說,純C指的是標準C,也就是沒經過擴展的C語言。因為各個編譯器都對C語言進行了擴展,有的擴展是約定俗成的(也就是說各種編譯器都用同一個函數擴展了同一個功能),這種擴展不影響C的移植,並且我們通常學到的都是標準C以及約定俗成的擴展;另外還有些擴展是我有你沒有,或者你有我沒有的,這種通常都是很不常用的功能,這種擴展影響了移植性
但是,我們在平常生活中所說的那種純C編程並非僅僅指標準C,而是連帶着那些約定俗成的擴展的,也就是說不影響移植性的C語言。
那為什麼還要說“純”C呢,因為要強調代碼里不能有C++語言,因為現在多數編譯器C++和C語言都可以編譯並運行(也就是可以無縫的混合編程),前一行寫printf後一行寫cout是沒問題的,但如果要求是純C,那麼就要注意只能用printf
有沒有純c語言版本的 打印任意一年的日曆程序代碼
我剛自己做了一個 你拿去用把,包含文件,可保存!
新建一個richenganpai.txt文件,保存你所記錄的日程安排
#includestdio.h
#includeconio.h
#includestdlib.h
//閏年
//每個月天數
//星期
//輸入查詢
//顯示某個月
//添加文件 記錄日程 有 TRUE 沒有 FALSE
//刪除 添加 修改日程安排
//修改判斷有無記錄
#define TRUE 1
#define FALSE 0
typedef struct richenganpai
{
int year;
char month;
char day;
char t[80];
struct richenganpai *next;
}RCAP;
int runnian(int year); //是否為閏年
void show(int start, int day); //顯示日曆
void showstar(); //輸出*
int dingwei(int year, int month, int day); //定位需要查詢日期與參照日期的時間差
int monthtm(int i, int flag); //某年某月的天數
void searchday(RCAP *p); //查詢某一天
void showmonth(RCAP *p); //顯示某個月
RCAP * open_file(); //打開文件,查詢多少條信息
int save_file(RCAP *p); //保存文件
void showall(RCAP *p); //顯示所有日程安排
void addinfo(RCAP *p);
void delinfo(RCAP *p);
void modifyinfo(RCAP *p);
void addinfo(RCAP *p)
{
int year, month, day;
int f = 0,k = 0;
RCAP *p2 , *p1, *r = p; ;
loop:printf(“需要添加的信息的日期。–年–月–日\n”);
scanf(“%d%d%d”, year, month, day);
for(p1 = p -next ; p1; p1 = p1-next)
{
if((year == p1 – year) (month == p1 -month) (day == p1 – day))
{
printf(“%d年%d月%d有記錄,信息:%s\n”, year, month, day, p2-t);
printf(“是否修改?1為修改,0為否\n”);
scanf(“%d”, f);
if(f == 1)
{
k = 1;
modifyinfo(p);
break;
}
}
r = p1;
}
if(k == 0 )
{
p2 = (RCAP *)malloc(sizeof(RCAP));
r – next = p2;
r = p2;
printf(“需要添加的信息:\n”);
scanf(“%s”, p2-t);
p2-year = year;
p2-month = month;
p2-day = day;
p2 -next =NULL;
printf(“添加完畢,添加的信息為:\n”);
printf(“%d年%d月%d日,信息:%s\n”, p2-year, p2-month, p2-day, p2-t);
}
printf(“\n是否繼續添加?1為繼續,0為否\n”);
scanf(“%d”, f);
if(f == 1)
{
k = 0;
goto loop;
}
getch();
}
void delinfo(RCAP *p)
{
int year, month, day;
int flag = 0, f = 0;
RCAP *r = p, *p1;
loop:printf(“需要刪除的信息的日期。–年–月–日\n”);
scanf(“%d%d%d”, year, month, day);
for(p1 = p -next ; p1; p1 = p1-next)
{
if((year == p1 – year) (month == p1 – month) (day == p1 – day))
{
r-next = p1-next;
flag = 1;
printf(“刪除成功\n”);
break;
}
r = p1;
}
if(flag == 0)
printf(“所要刪除的日期無信息!\n”);
printf(“\n是否繼續刪除?1為繼續,0為否\n”);
scanf(“%d”, f);
if(f == 1)
{
r = p;
goto loop;
}
getch();
}
void modifyinfo(RCAP *p)
{
int flag = 0, c, f = 0;
int year, month, day;
RCAP *p1 = p;
loop: printf(“輸入要修改的日期,–年–月–日\n”);
scanf(“%d%d%d”, year, month, day);
for(p1 = p-next ; p1; p1 = p1-next)
{
if((year == p1 – year) (month == p1 -month) (day == p1 – day))
{
printf(“%d年%d月%d有記錄,信息:%s\n”, year, month, day, p1-t);
printf(“將%s修改為:”, p1 – t);
scanf(“%s”, p1-t);
printf(“修改後的信息為:%d年%d月%d信息:%s\n”, year, month, day, p1 – t);
flag = 1;
break;
}
}
printf(“\n”);
if(flag == 0)
{
printf(“本日無信息,無法修改,是否添加?1為添加,0為不添加!\n”);
scanf(“%d”, c);
if(c == 1)
addinfo(p);
}
printf(“是否繼續查找?1為繼續,0為否\n”);
scanf(“%d”, f);
if(f == 1)
goto loop;
getch();
}
void showall(RCAP *p)
{
int n = 0;
RCAP *p1;
for(p1 = p -next; p1; p1 = p1-next)
{
n++;
printf(“第%d個信息%d年%d月%d日:%s\n”, n, p1 – year, p1 – month, p1 – day, p1-t);
}
printf(“\n”);
if(n == 0)
printf(“無信息!\n”);
printf(“\n”);
getch();
}
int save_file(RCAP *p)
{
FILE *fp;
RCAP *p1;
int n = 0;
if((fp = fopen(“richenganpai.txt”,”wb”)) == NULL)
{
printf(“讀文件錯誤\n”);
exit(0);
}
for(p1 = p -next; p1 != NULL; p1 = p1-next)
{
fwrite(p1,sizeof(RCAP),1,fp);
n++;
}
fclose(fp);
return n;
}
RCAP * open_file()
{
FILE *fp;
int n = 0;
RCAP *p1, *p2, *head, *r ;
if((fp=fopen(“richenganpai.txt”,”rb”)) == NULL)
{
printf(“\n\n*****文件不存在!系統將自動創建,並返回目錄\n”);
exit(0);
}
head = (RCAP *)malloc(sizeof(RCAP));
head -next = NULL;
p1 = head;
while(!feof(fp))
{
p2 = (RCAP *)malloc(sizeof(RCAP));
fread(p2, sizeof(RCAP), 1, fp);
p1 – next = p2;
r = p1;
p1 = p2;
}
r -next = NULL;
free(p2);
fclose(fp);
return head;
}
void showmonth(RCAP *p)
{
int time, year, month;
int t, D_t, flag, CX = 0, f = 0;
RCAP *p1 ;
loop: printf(“輸入查詢日期–年–月,顯示當月日期,並顯示當月是否有日程安排\n\n”); //並顯示是否有日程安排
scanf(“%d%d”, year, month);
if(year32767||year-32768||month12||month1)
{
printf(“輸入有誤!\n”);
exit(0);
}
printf(“你所查的是%d年%d月\n\n”, year, month);
time = dingwei(year, month, 1);
t = time%7;
t = (t + 6)%7;
if(year = 2011)
t = t;
else
{
if(t = 6)
t = 6;
else
t = 5 – t;
}
flag = runnian(year);
D_t = monthtm(month, flag);
show(t, D_t);
for(p1 = p -next ; p1; p1 = p1-next)
{
if((year == p1 – year) (month == p1 -month))
{
CX++;
printf(“本月第%d個信息%d年%d月%d日:%s\n”, CX, year, month, p1 – day, p1-t);
}
}
printf(“\n”);
if(CX == 0)
printf(“本月無信息!\n”);
printf(“\n”);
printf(“是否繼續查找?1為繼續,0為否\n”);
scanf(“%d”, f);
if(f == 1)
goto loop;
getch();
}
void searchday(RCAP *p)
{
int time, year, month, day;
int t, CX = 0, flag = 0;
RCAP *p1;
loop:printf(“輸入查詢日期–年–月–日,顯示星期幾,並顯示是否有日程安排\n”); //並顯示是否有日程安排
scanf(“%d%d%d”, year, month, day);
if(year32767||year-32768||month12||month1||day31||day1)
{
printf(“輸入有誤!\n”);
exit(0);
}
printf(“你所查的是%d年%d月%d日\n”, year, month, day);
time = dingwei(year, month, day);
t = time%7;
t = (t + 6)%7;
if(year = 2011)
{
switch(t)
{
case 0: printf(“你查詢的是星期天\n\n”);break;
case 1: printf(“你查詢的是星期一\n\n”);break;
case 2: printf(“你查詢的是星期二\n\n”);break;
case 3: printf(“你查詢的是星期三\n\n”);break;
case 4: printf(“你查詢的是星期四\n\n”);break;
case 5: printf(“你查詢的是星期五\n\n”);break;
case 6: printf(“你查詢的是星期六\n\n”);break;
}
}
else
{
switch(t)
{
case 0: printf(“你查詢的是星期五\n\n”);break;
case 1: printf(“你查詢的是星期四\n\n”);break;
case 2: printf(“你查詢的是星期三\n\n”);break;
case 3: printf(“你查詢的是星期二\n\n”);break;
case 4: printf(“你查詢的是星期一\n\n”);break;
case 5: printf(“你查詢的是星期天\n\n”);break;
case 6: printf(“你查詢的是星期六n\n”);break;
}
}
printf(“\n”);
for(p1 = p -next ; p1; p1 = p1-next)
{
if((p1 – year == year) (p1 -month == month) (p1 – day == day))
{
CX++;
printf(“%d年%d月%d有記錄,信息:%s\n”, year, month, day, p1-t);
}
}
if(CX == 0)
printf(“本日無信息!\n”);
printf(“\n是否繼續查找?1為繼續,0為否\n”);
scanf(“%d”, flag);
if(flag == 1)
goto loop;
getch();
}
int monthtm(int i, int flag)
{
int t;
switch(i)
{
case 1: t = 31;break;
case 2:
if(flag == FALSE)
t = 28;
else
t = 29;
break;
case 3: t = 31;break;
case 4: t = 30;break;
case 5: t = 31;break;
case 6: t = 30;break;
case 7: t = 31;break;
case 8: t = 31;break;
case 9: t = 30;break;
case 10: t = 31;break;
case 11: t = 30;break;
case 12: t = 31;break;
}
return t;
}
int dingwei(int year, int month, int day)
{
int DC = 0, T_y, T_m, T_year = 2011, T_month = 1, T_day = 1; //2011年01月01日 星期六
int flag = FALSE; //FALSE非閏年 TRUE閏年
int i, j, m, n, k;
if(T_year = year)
i = 1;
else
i = -1;
for(T_y = yearT_year ? T_year : year; T_y (yearT_year ? year : T_year); T_y++)
{
flag = runnian(T_y);
if(flag == TRUE)
DC += 366;
else
DC += 365;
}
if( i 0 )
for(T_m = T_month; T_m month ; T_m++)
{
flag = runnian(T_y);
DC += i*monthtm(T_m,flag);
}
else
{
{
if(runnian(year))
k = TRUE;
else
k = FALSE;
}
for(T_m = T_month; T_m month ; T_m++)
DC += i*monthtm(T_m,k);
}
if(T_year year)
j = -1;
if(T_year = year)
j = 1;
m = day;
n = T_day;
DC = DC + j*(m – n);
return DC;
}
void showstar()
{
int i;
for(i = 0; i 55; i++)
printf(“*”);
printf(“\n”);
}
int runnian(int year)
{
if(year%4 == 0 year%100 != 0 || year%400 == 0)
return TRUE;
else
return FALSE;
}
void show(int start, int day)
{
int i;
showstar();
printf(“Sun\tMon\tTue\tWen\tThu\tFri\tSat\t\n”);
for(i = 1; i = start; i++)
printf(“\t”);
for(i = 1; i = day; i++)
{
printf(“%d\t”, i);
if((start + i)%7 == 0)
printf(“\n”);
}
printf(“\n”);
showstar();
printf(“\n”);
printf(“按任意鍵返回菜單!\n”);
getch();
}
void main(void)
{
int i, n = 0;
RCAP *head;
head = open_file();
do
{
system(“cls”);
printf(“選擇使用功能:\n”);
printf(“1:查詢指定時間為星期幾和相關信息\n”);
printf(“2:顯示指定月份的所有時間信息\n”);
printf(“3:顯示所有日程安排\n”);
printf(“4:添加某天信息\n”);
printf(“5:刪除某天信息\n”);
printf(“6:修改信息\n”);
printf(“0:退出\n”);
printf(“請選擇!\n”);
scanf(“%d”, i);
switch(i)
{
case 0: break;
case 1: searchday(head);break;
case 2: showmonth(head);break;
case 3:showall(head); break;
case 4:addinfo(head); break;
case 5:delinfo(head); break;
case 6:modifyinfo(head); break;
}
}while(i 0 );
n = save_file(head);
printf(“文件功有%d個信息\n”, n);
free(head);
getch();
}
原創文章,作者:QPRZ,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/147688.html