1. 本人急需c語言程序設計論文一篇!!!
談及C語言,我想凡是學過它的朋友都有這樣一種感覺,那就是「讓我歡喜讓我憂。」歡喜的是,C語言功能非常強大、應用廣泛,一旦掌握了後,你就可以理直氣壯地對他人說「我是電腦高手!」,而且以後若是再自學其他語言就顯得輕而易舉了。憂慮的是,C語言猶如「少林武功」一般博大精深,太難學了。其實就筆者認為C語言並非是「difficult(困難)」的,只要你能理清思路,掌握它的精髓,那麼自學C語言是一件非常容易且又其樂無窮的事。今天本人就與大家一起談談如何學習C語言或者說學習C語言應從哪幾方面著手。
了解一些基本知識
一.C語言的背景
就個人感觸,無論學習哪門語言首先應該了解一下自己所學語言的背景,也可以說它的發展史。
C語言屬於高級程序語言的一種,它的前身是「ALGOL」。其創始人是布朗·W·卡尼漢和丹尼斯·M·利奇。C語言問世時是帶有很大的局限性,因為它只能用於UNIX系統上。然而隨著科學技術的進步,計算機工業的發展,C語言逐漸脫離UNIX。1987年美國標准化協會制定了C語言的國際標准,簡稱「ANSI C」,從此以後它便成為一種廣泛使用的程序語言。C語言的優點很多,主要的有如下四點:
1.兼備高級語言與低級語言的優點,屬於一種中間語言。
2.它是一種結構化程序設計語言,非常適合結構化程序設計。
3.有較豐富的數據類型、運算符以及函數供以選用。
4.直接與內存打交道,使修改、編輯其他程序與文檔變得輕松,簡單。
二.二大語系二種不同的學習方法
其實高級程序語言分為兩大語系。例如:C,C++(C語言的擴展),QBASIC,VB(BASIC的可視化),JAVAs cript,Js cript ,VBs cript,JAVA,ASP,FOXPRO,PERL等等。一路是以C為主的程序語言,例如:JAVAs cript,JAVA等,這類語言在函數的調用,程序語句的書寫,循環的控制都極為相似。另一路是以BASIC為首的程序語言,例如:FOXPRO,VBs cript等,此類語言同樣具有相似的函數調用,程序語句書寫以及循環控制,但與C語系是不同的。因此若是您以前是從QBASIC起家的,那麼在學習C語言前最好是先洗洗腦,千萬不要把學習BASIC的方法以及思路用在C身上。
講到這里,我想大家對C語言一定有了感性認識吧!下面讓我們再升華一下,全方位親密接觸它。學習C語言必須從以下四點入手,也就是說,只要你能掌握這四點的內容,那麼基本上就大功告成了。
親密接觸C語言
一.輸入輸出
C語言的輸入輸出是非常嚴格的,或許在其他程序語言中我們可以不關心這個問題,但在C語言中,我們必須要徹底了解它。由於篇幅有限,因此筆者不能詳談,有興趣的朋友可以參考由著名程序語言教授譚浩強先生主編,由清華大學出版社出版的《C程序設計第二版》。不過這里筆者還是有幾點要簡單的談一下。
1.二維浮點數數組的輸入
二維浮點數數組的輸入(即:通過鍵盤給二維浮點數數組賦值)在很多專業書中都沒有詳細講過這個問題。在給二維浮點數數組賦值時一定要先聲明一個變數,接著把數值賦予這個變數,最後把變數數值賦予二維浮點數數組賦值。
2.注意輸出格式中「%」後的字元
C語言的輸出說復雜不復雜,因為常用的都很簡單。可說不復雜也未必,記得曾在一次等級考前輔導我們C語言的教授講道:「如果C語言要考得很難的話,根本不用考什麼指針,只要專考輸出格式,我想百分之九十九的學生都不及格。」當時我們無不認同。從這則事例中可以看出C語言的輸出格式之復雜程度。因此大家在學習它時千萬要學會辨別輸出格式中「%」後的字元,每個字元都有其意義,也都有其作用。
二.優先順序
說道優先順序,有很多朋友都不是很了解或說很模糊。為此筆者想先通過一個例子讓各位有個概念。什麼叫優先順序?比方說,我們在公交車終點站排座隊時總會遇到70歲以上的老人不需要排隊就能上車的情景,這就是優先順序的涵義。C程序在運行時也象排隊坐車一樣,首先照顧那些優先順序高的運算符,若是優先順序相同,那麼就象遇到兩位(或兩位以上)70歲以上的老人那樣,讓他們依次上車。但是C語言中的優先順序的運算並不是千篇一律的,只能說是在大多數情況下,有些運算符的優先順序有其自己的特點,因此這點大家要注意。例如條件表達式:條件?結果1:結果2,這種表達式很多朋友都知道,它的作用與IF…ELSE…條件判斷語句很雷同,它運算時的優先順序就不是按照C語言的規則來完成的。所以說對於優先順序各位編程愛好者一定靈活掌握,不要死記硬背。
三.指針
就個人認為,C語言中的指針是最有特色的,當然也是最難學的。指針說穿了,其實是變數的一種表現形式,只不過這種變數記載的不是數值而是地址。就象一個人可以用姓名來表示自己,也可以用身份證號碼來表示自己一樣。筆者涉足編程已經有三年多了,在這期間曾經收到過很多網友的電子郵件詢問學習指針的方法。就本人感觸,學習指針最好是先學些計算機硬體工作的原理,例如:直接定址,間接定址等,只有了解了這些內容以後,你再學指針就比較容易理會,畢竟C語言是一門介於機器語言與高級語言中間的語言,沒有一些硬體工作知識是很難領悟它的真諦的。然而事事並非絕對,如果你沒有這些知識也不要緊,只要清楚知道以下筆者總結的二點再加上多練習便可:
1.指針是地址變數:它的值有兩種:其一是地址,其二是內容。不同的表達方式可以取不同的值,這有點象一個家庭地址在不同的場合標識的人物也不同。例如:父母親在他們的單位所登記的家庭地址就代表他們自己,而你在學校中登記的同樣的家庭地址就代表你自己。
2.指針是可以運算的,它的運演算法則與變數是一致的。
另外,在編寫一個程序時,除非萬不得已,一般不要使用指針變數。因為指針是比較復雜的,用不好就「當機」。所以筆者建議各位對於指針只要能看懂就行,當然如果你是准備參加考試的就另當別論了。
四.函數
雖說很多程序語言都有函數這一內容,但筆者覺得C語言的函數是最有魅力的。如果你能完全掌握C語言的函數,那麼學習C++就不成問題了(C++是一門建立在C語言上,但又不同於C語言的高級程序語言,它增添了很多函數。)。學習函數的方法是比較簡單的,只有兩個字「牢記」,即:牢記函數的功能,牢記函數的用途以及如何輸入輸出。有些朋友認為,程序語言中的函數沒有多大用處,其實這並不正確,函數從本質上講是一段通用程序,用它可以幫助我們節約很多編程的時間,一個聰明的編程者在編寫程序前往往總是先找自己所編寫的程序中有多少是可以用函數來代替的。筆者曾經作過一個比較字元串的實驗,用C語言中的strcmp()函數只要一句話,而自己編寫的話30句話都擺不平,可想而知函數是多麼實用呀!
2. C語言程序設計 字元串處理
子字元串之間可以用'\n』來分隔,以實現子串的定位,偽代碼可以這樣:
#include
<stdio.h>
#include
<fcntl.h>
#include
<string.h>
#include
<unstdio.h>
int
count(char
str,int
i)
{
if(遇到『\n』)
i++;
return
i;
};
int
chang()
{
};
void()
{
};
main()
{
int
a,b,c;
請輸入要選擇操作的編號1-4;
switch{
case
1:count();break;
2:
change();break;
3:
del();break;
4:
exit();
}
}
3. c語言程序設計,有關字元串的
#include <stdio.h>
#include <string.h>
int main()
{ int i,j;
char s[10][15],t[15];
for(i=0; i<10; i++)
scanf("%s",s[i]);
for(i=0; i<9; i++)
for(j=0; j<9-i; j++)
if(strcmp(s[j],s[j+1])>0)
{ strcpy(t,s[j]);
strcpy(s[j],s[j+1]);
strcpy(s[j+1],t);
}
for(i=0; i<10; i++)
printf("%s ",s[i]);
return 0;
}
4. 課題:字元串處理 c語言程序設計
你是學校做畢設吧??否則你說的這些功能word全部搞定了。
5. C語言程序設計——字元串
void fun(char *str)
{
int i=0,j=0;
char s1[80],s2[80];
char *p=str;
while(*p)
{
if(isdigit(*p))
s1[i++]=*(p++);
else s2[j++]=*(p++);
}
s1[i]=s2[j]='\0';
strcpy(str,s2);
strcat(str,s1);
}
其實,用鏈表是最好的,不過題目既然已經給出了用字元串數組,那就只好多用點內存,提高點速度了。
#include "ctype.h"
#include "string.h"
6. C語言程序設計字元
#include<stdio.h>
#include<string.h>
voidinsert(charstr[])
{
inti;
i=strlen(str);
while(i>0)
{
str[2*i]=str[i];
str[2*i-1]='*';
i--;
}
printf("%s",str);
}
intmain()
{
chars[40];
scanf("%s",&s);
insert(s);
}
跑一遍程序,結果就出來了.心算不出來,就動手.
7. c語言編程!字元串操作!
(1)
#include"stdio.h"
#include"string.h"
intmain(void){
chars[100],i,j,k;
printf("Inputastring... ");
scanf("%100s",s);
for(j=strlen(s)-1,i=0;i<j;i++,j--)
k=s[j],s[j]=s[i],s[i]=k;
puts(s);
return0;
}
(2)
#include"stdio.h"
intmain(void){
chars[100],i,j,t[50];
printf("Inputastring... ");
scanf("%100s",s);
for(j=0,i=1;s[i];i++)
if(i&1)t[j++]=s[i];
t[j]='