當前位置:首頁 » 編程語言 » c語言簡單實例

c語言簡單實例

發布時間: 2023-06-17 03:17:16

A. 經典c語言程序例子

題目01:在一個已知的字元串中查找最長單詞,假定字元串中只含字母和空格,空格用來分隔不同的單詞。

(1)c語言簡單實例擴展閱讀:

C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。

盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。

B. C語言實例

#include
<stdio.h>
#define
N
50
//
排隊人數(可任意更改)
#define
CAL
3
//凡報3的人出列(可任意更改)
//下面是排隊編號函數:從h
開始的n個人依次編號1到n
void
stdline(int
*h,int
n)
{
int
i;
for(i=1;i<n+1;i++)
*(h+i-1)=i;
}
/*下面函數表示從指針h處開始的人數為boy個人排隊,從1報數,每報到call的人出列*/
void
outline(int
*h,int
boy,int
call)
{
int
*p,
chu,
callnum;
/*說明:
p
工作指針,表示從頭依次指向每個元素,點名
chu
計數器,記錄出列的人數
callnum
計數器,記錄點名次序
*/
chu=0;
callnum=0;//各計數器清零
p=h;
//開始時,工作指針指向數組首
printf("出列順序是:\n");
while(chu<boy)
{
if(*p!=0)
callnum++;
//每次加報數
if(callnum==call)
//如果某一個人報到出列數call...
{
printf("%5d",*p);
//列印編號,表示出列
chu++;
//出列人數加1
if(chu==boy)//如果全部出列....
{
*h=*p;
//把最後一個出列人的編號記入地址開始處
return;
//結束
}
if(chu%10==0)printf("\n");//每輸出10個換行
callnum=0;
//出列後,重新報數
*p=0;
//出列後,將其編號賦零,以示區別
}
p++;
//工作指針移向下一個人,即下一個數組元素
if(p>h+boy-1)p=h;/*如果移到最後一個元素的後面,則讓指向地址開頭繼續報數*/
}
}
void
main()
{
int
a[N];
//用數組模擬隊列,每個元素代表一個人
stdline(a,N);//編號
outline(a,N,CAL);//計算並列印出列順序
printf("\n最後留下來的是
%d
號\n",*a);/*在函數中,已經把最後一個人的編號寫入了數組首地址處,
這里輸出就可以了*/
}

C. 求C語言編程實例100行以上,要有文字大概解釋一下

下面是一個用C語言顯示一個簡單的WIndows窗口的小程序。用C語言對Windows編程的基礎。

//+---------------------------------------------------------------------------
//
//HELLO_WIN.C-WindowsGUI'HelloWorld!'示例
//
//+---------------------------------------------------------------------------

#include<windows.h>

#defineAPPNAME"HELLO_WIN"

charszAppName[]=APPNAME;//當前有用程序的名稱
charszTitle[]=APPNAME;//標題行顯示的文字
constchar*pWindowText;

voidCenterWindow(HWNDhWnd);

//+---------------------------------------------------------------------------
//
//Function:WndProc
//
//Synopsis:處理Windows消息的函數
//
//Arguments:sameasalways.
//----------------------------------------------------------------------------

LRESULTCALLBACKWndProc(HWNDhwnd,UINTmessage,WPARAMwParam,LPARAMlParam)
{
switch(message){

//-----------------------firstandlast
caseWM_CREATE:
CenterWindow(hwnd);
break;

caseWM_DESTROY:
PostQuitMessage(0);
break;

//-----------------------getoutofit...
caseWM_RBUTTONUP:
DestroyWindow(hwnd);
break;

caseWM_KEYDOWN:
if(VK_ESCAPE==wParam)
DestroyWindow(hwnd);
break;

//-----------------------displayourminimalinfo
caseWM_PAINT:
{
PAINTSTRUCTps;
HDChdc;
RECTrc;
hdc=BeginPaint(hwnd,&ps);

GetClientRect(hwnd,&rc);
SetTextColor(hdc,RGB(240,240,96));
SetBkMode(hdc,TRANSPARENT);
DrawText(hdc,pWindowText,-1,&rc,DT_CENTER|DT_SINGLELINE|DT_VCENTER);

EndPaint(hwnd,&ps);
break;
}

//-----------------------letwindowsdoallotherstuff
default:
returnDefWindowProc(hwnd,message,wParam,lParam);
}
return0;
}

//+---------------------------------------------------------------------------
//
//Function:WinMain
//
//Synopsis:
//
//----------------------------------------------------------------------------
intAPIENTRYWinMain(
HINSTANCEhInstance,
HINSTANCEhPrevInstance,
LPSTRlpCmdLine,
intnCmdShow
)
{
MSGmsg;
WNDCLASSwc;
HWNDhwnd;

pWindowText=lpCmdLine[0]?lpCmdLine:"HelloWindows!";

//
//themainwindow.

ZeroMemory(&wc,sizeofwc);
wc.hInstance=hInstance;
wc.lpszClassName=szAppName;
wc.lpfnWndProc=(WNDPROC)WndProc;
wc.style=CS_DBLCLKS|CS_VREDRAW|CS_HREDRAW;
wc.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
wc.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wc.hCursor=LoadCursor(NULL,IDC_ARROW);

if(FALSE==RegisterClass(&wc))
return0;

//createthebrowser
hwnd=CreateWindow(
szAppName,
szTitle,
WS_OVERLAPPEDWINDOW|WS_VISIBLE,
CW_USEDEFAULT,
CW_USEDEFAULT,
360,//CW_USEDEFAULT,
240,//CW_USEDEFAULT,
0,
0,
hInstance,
0);

if(NULL==hwnd)
return0;

//Mainmessageloop:
while(GetMessage(&msg,NULL,0,0)>0){
TranslateMessage(&msg);
DispatchMessage(&msg);
}

returnmsg.wParam;
}

//+---------------------------------------------------------------------------

//+---------------------------------------------------------------------------

voidCenterWindow(HWNDhwnd_self)
{
HWNDhwnd_parent;
RECTrw_self,rc_parent,rw_parent;
intxpos,ypos;

hwnd_parent=GetParent(hwnd_self);
if(NULL==hwnd_parent)
hwnd_parent=GetDesktopWindow();

GetWindowRect(hwnd_parent,&rw_parent);
GetClientRect(hwnd_parent,&rc_parent);
GetWindowRect(hwnd_self,&rw_self);

xpos=rw_parent.left+(rc_parent.right+rw_self.left-rw_self.right)/2;
ypos=rw_parent.top+(rc_parent.bottom+rw_self.top-rw_self.bottom)/2;

SetWindowPos(
hwnd_self,NULL,
xpos,ypos,0,0,
SWP_NOSIZE|SWP_NOZORDER|SWP_NOACTIVATE
);
}

//+---------------------------------------------------------------------------

D. C語言編程簡單實例

是條件,不可以少的,for
(
表達式1;
表達式2;
表達式3
)
一條語句/復合語句
無論
for
循環到底會循環多少次,表達式1
都只會被運算一次——只有當
for
循環第一次執行時才會運算表達式1。表達式2
用於控制是否繼續進行循環。如果表達式2
為真,則執行「一條語句/復合語句」,反之則退出循環。出於表達上的方便,我們把循環結構中的「一條語句/復合語句」稱為循環體。在表達式2
成立的情況下,並且在循環體執行完畢後,表達式3
才會被運算。表達式3
運算完畢後,再次運算表達式2,若表達式2
為真,則再執行一次循環體,然後再運算表達式3,接著再測試表達式2
的真假性……

E. c語言入門經典里的一個簡潔的例子,求大神指點,100分!!!

函數中的變數pay是開設在堆中的,如果採用(2)調用printf時先入棧的是*pnew_pay,正巧這時堆還未被printf沖掉,可以將已廢棄的pay位置的值返回;而(1)由於先調用了一遍printf堆中的pay位置數據被用作其他而值被改過了,所以不對。
依此,你在(1)中將兩個printf顛倒一下有可能還是能輸出正確的值的。

F. C語言編程實例

首先main中對x進行賦值,是12345678這個無符號長整形數,然後傳到part()函數中,結構體那部分不用考慮,其它地方也沒有對num進行更改,不會對內容有影響,所以輸出結果為12345678;
然後p=&n把n的地址賦給指針p,n.w=num把12345678賦給w,此時結構體n的地址其實就是12345678所在的地址,p指向n,同時結構體*p中的數組part的初始地址也在p上,也就是說p指向的數組part於n.w的首地址是相同的;
看你的輸出結果,你的C中int和long應該都是32位吧,所以輸出part[0]就是輸出part地址上的前32位,即num,part[1]上都是空的,什麼也沒有,所以就是8個C;
PS:我想這個程序的意義是把long型整數進行拆分,分別輸出高低位兩部分,但是你的C中的int和long都是32位,所以沒成功吧
呵呵,也不知道說的對不,C很久沒用了

熱點內容
整個伺服器搭建教程 發布:2025-02-12 11:48:16 瀏覽:579
我的世界伺服器人多的 發布:2025-02-12 11:48:12 瀏覽:347
為實現分頁存儲管理需要哪些硬體支持 發布:2025-02-12 11:46:34 瀏覽:539
編程下載線 發布:2025-02-12 11:41:48 瀏覽:210
json存儲數據 發布:2025-02-12 11:41:39 瀏覽:219
天龍八部腳本免費 發布:2025-02-12 11:30:12 瀏覽:501
卡羅拉的配置一般買哪個好一點 發布:2025-02-12 11:20:03 瀏覽:743
沒有伺服器的IP怎麼連上 發布:2025-02-12 11:19:55 瀏覽:80
編程sqs 發布:2025-02-12 11:09:55 瀏覽:239
electron脫離編譯環境 發布:2025-02-12 11:08:21 瀏覽:69