锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
紜洏淇濇姢鍗$牬瑙?-灝忓摠鍏電瘒
浣滆?Ym 2002.6.15 23:43:50 email:yaomingmail@sina.com
鐜板湪紜洏淇濇姢鍗℃棩鐩婄洓琛?緗戝惂,瀛︽牎闅忓鍙,鏈漢灝遍亣鍒板嚑縐嶇被鍨嬪拰鍝佺墝鐨?灝忓摠鍏墊槸鍏朵腑鎶鏈瘮杈冨畬鍠勭殑涓縐?鏃╂湡鍦ㄥ鏍℃満鎴塊亣鍒扮殑鐪嬮棬鐙?灝卞瓨鍦ㄤ弗閲嶇殑鎶鏈己闄?鍙淇敼cmos涓殑紜洏鍙傛暟鍗沖彲鐮磋В,鎵浠ヨ繖閲屾垜鎯崇潃閲嶈皥璋堝皬鍝ㄥ叺鐨勮В娉?褰撶劧瀵逛粯鐪嬮棬鐙楃殑鏂規硶鍦ㄨ繖閲屾槸琛屼笉閫氱殑,涓烘鎴戠悽紓ㄤ簡寰堥暱鏃墮棿,鐩村埌鎴戝墠鍑犲ぉ鍦ㄧ綉涓婄湅鍒頒竴綃囩牬瑙g‖鐩樹繚鎶ゅ崱鐨勬枃绔?緇欐垜涓涓喘鏂扮殑鐮磋В鎬濊礬,浣嗕簨瀹炰笂鎸夊師鏂囩殑鏂規硶榪樻槸涓嶅彲鐮磋В灝忓摠鍏?浣嗙鎴愬姛浠呬竴姝ヤ箣閬?榪欑瘒鏂囩珷灝辯畻鏄竴涓ˉ鍏呰鏄?甯屾湜鑳藉澶у鏈夌偣甯姪.
棣栧厛鏈漢閫氳繃闃呰閭g瘒鏂囩珷鍚?寰楃煡淇濇姢鍗℃槸閫氳繃淇敼涓柇鍚戦噺鏉ヨ揪鍒頒繚鎶ょ‖鐩樹笉琚湡姝e啓鍏ョ殑,鍏朵腑int13鏄叧閿?鍚屾椂榪樹慨鏀逛簡鏃墮挓涓柇鏉ヨ揪鍒板弽璺熻釜,鎭㈠涓柇鍚戦噺琛ㄧ殑鐩殑.灝忓摠鍏墊嫤鎴簡int13鐨勫鐞嗙▼搴?灝嗚嚜宸辯殑紼嬪簭鎸傚埌涓婇潰,榪欎篃鏄棤娉曞啓榪涙暟鎹殑鍘熷洜鎵鍦?鐭ラ亾浜嗚繖涓?浣犱竴瀹氫細璇存垜浠彧瑕佹妸bios鐨刬nt13鐨勭▼搴忓湴鍧,鍦╠os涓嬪~鍏ヤ腑鏂悜閲忚〃涓嶅氨澶у姛鍛婃垚浜?鍏跺疄涓嶇劧,灝忓摠鍏墊棭浠ユ兂鍒頒簡榪欎竴鐐?瀹冧細鍒╃敤鏃╀互琚畠淇敼榪囩殑鏃墮挓涓柇瀹氭椂媯鏌ヤ腑鏂悜閲忚〃,瀹冧竴鏃﹀彂鐜?000:4c+3澶勪負f0鍗充細淇敼涓哄埆鐨勫?鍘熸枃绔犵殑寤鴻鏄皢鏃墮挓涓柇涓涓榪樺師,鏈漢瑙夊緱澶繃鐑︾悙,鑰屼笖鍑洪敊鐨勫彲鑳芥уぇ,涓嶅彲鍙?緇忚繃灝濊瘯灝嗗師涓柇澶勭悊紼嬪簭鐨勭涓鏉¤鍙ユ敼涓?255:0148(姝や笉涓瀹? jmp f000:xxxx鍗沖彲.
榪欓噷榪樿璋堣皥xxxx鐨勮幏鍙?榪欎竴姝ヤ篃鏄叧閿?鎴戜竴寮濮嬬敤debug t璺熻釜浜嗗嚑嬈¢兘鍑虹幇浜嗘鏈?閫氳繃瑙傚療姣忔姝繪満鍦板潃閮戒笉鍚?鎬鐤戝皬鍝ㄥ叺鍒╃敤鏃墮挓涓柇鍙嶈窡韙?浣嗘瘡嬈¤窡韙兘緇欎簡涓孌墊椂闂村悗鎵嶆鏈?鎵浠ュ湪榪涘叆int13鍚庝綘瑕佸湪榪欐鏃墮棿鍐?浠ユ渶蹇殑閫熷害,t鍒癴000:xxxx
澶?褰撳睆騫曚笂t鍑虹涓涓猣000涓烘鐨勫湴鏂規椂,鍚庨潰鐨勫亸縐婚噺鍗充負鎴戜滑瑕佹壘鐨剎xxx.璁頒綇瀹?鐩鎬俊榪欐椂浣犲凡緇忔鏈轟簡,閲嶆柊鍚姩,f8榪沝os.
debug
-d 0:4c
0000:004c 48 01 55 02
-a 0255:0148
-0255:0148 jmp f000:xxxx
-q
c:\>cd windows
c:\windows>win
OK,鐜板湪鏀逛釜妗岄潰,鎷蜂釜娓告垙榪涘幓,鍐嶉噸鏂板惎鍔ㄨ瘯涓涓?榪樺湪鍚?娓告垙鍙钘忓ソ鍝?紲濅綘鎰夊揩!
]]>
涓撲笟錛氳綆楁満鍘熺悊涓庡簲鐢?br>濮撳悕錛氬鏄?br>瀛﹀彿錛?4051
鏃ユ湡錛?007.12.3
璇存槑錛欳璇█涓婃満瀹為獙1锝?紼嬪簭璁捐
---------------------------------------------------------------------------------------*/
//------------------------------------------------------------
//
// 瀹為獙2 鍩烘湰鏁版嵁綾誨瀷鍜岃繍綆楃▼搴忚璁?br>//
//------------------------------------------------------------
#include <stdio.h>
#define PI 3.14159;
void main(void)
{
int k,p; /* for task 1*/
int c; /* for task 2*/
int x,y,z,w; /* for task 3*/
float r, s; /* for task 4*/
unsigned short i,m,n,_result; /* for task 5*/
char a; /* for task 6*/
/*task 1*/
/*杈撳叆鏁存暟锝嬨侊綈,灝嗘暣鏁幫綃鐨勯珮瀛楄妭浣滀負緇撴灉鐨勪綆瀛楄妭,
鏁存暟锝愮殑楂樺瓧鑺備綔涓虹粨鏋滅殑楂樺瓧鑺?鎷兼垚涓涓柊鐨勬暣鏁?
鐒跺悗杈撳嚭;*/
printf("input int k,p:");
scanf("%x%x",&k,&p);
int newint = (p&0xff00)|(k&0xff00)>>8;
printf("new int = %x\n\n",newint);
getchar();
/*task 2*/
/*杈撳叆瀛楃锝冦傚鏋滐絻鏄ぇ鍐欏瓧姣?
鍒欏皢锝冭漿鎹㈡垚瀵瑰簲鐨勫皬鍐?鍚﹀垯锝冪殑鍊間笉鍙?
鏈鍚庤緭鍑猴絻;*/
printf("input a character:");
c = getchar();
c >= 'A' && c <= 'Z'? putchar(c + 'a'- 'A'): putchar(c);
putchar('\n');
putchar('\n');
/*task 3*/
/*杈撳叆鏁存暟锝樸侊綑銆侊綒,杈撳嚭鍏朵腑鏈灝忓?*/
printf("input x, y, z:");
scanf("%d%d%d", &x, &y, &z);
w = x < y?x:y;
w = w < z?w:z;
printf("min = %d\n\n",w);
/*task 4*/
/*杈撳叆鍦嗙殑鍗婂緞鍊鹼綊,璁$畻騫惰緭鍑哄渾鐨勯潰縐?br> 锝擄紳∏锝掞紥(∏錛?.14159);*/
printf("input the radius r:");
scanf("%f", &r);
s = r * r * PI;
printf("The acreage is %.2f\n\n",s);
/*task 5*/
/* 杈撳叆鏃犵鍙風煭鏁存暟
锝?锝?锝庯紙0 <= 锝?lt;= 15, 1 <= 锝?lt;= 16-锝嶏級,
鍙栧嚭锝変粠絎綅浣嶅紑濮嬪悜宸︾殑锝庝綅
錛堬綅浠庡彸鑷沖乏緙栧彿涓?锝?5錛?
騫朵嬌鍏跺悜宸︾錛堢15浣嶏級闈犻綈;*/
printf("input i, m, n(0 <= m <= 15, 1 <= n <= 16 - m):");
scanf("%hu%hu%hu", &i, &m, &n);
_result = i << 16 - m - n & ~0xffff >> m + n;
printf("The result is %hu\n\n", _result);
getchar();
/*task 6*/
/*杈撳叆涓涓瓧絎?濡傛灉鏄暟瀛楋紙錛愶綖錛欙級
鍒欒緭鍑鴻鏁板瓧浠h〃鐨勬暣鏁幫紙錛樹綅錛夌殑鍙嶇爜,
鍚﹀垯鍘熸牱杈撳嚭銆傦紙鍙嶇爜鐢ㄥ崄鍏繘鍒舵暟琛ㄧず,
渚嬪,鏁存暟0鐨勫弽鐮佷負0xff,鏁存暟1鐨勫弽鐮佷負0xfe,
鏁存暟9鐨勫弽鐮?xf6銆傦級*/
printf("input a charater:");
a = getchar();
a >= '0' && a <= '9'?printf("%hx",~a - '0'):putchar(a);
printf("\n\n");
getchar();
}
//------------------------------------------------------------
//
// 瀹為獙3 C紼嬪簭嫻佺▼鎺у埗瀹為獙
//
//------------------------------------------------------------
#include <stdio.h>
void main()
{
int c; /* 姣忚鐨勫厓绱犲?寰幆涓敓鎴?, 鍒濆間負1 */
int n; /* 鏄劇ず鐨勮鏁?*/
int i, j; /* 寰幆鎺у埗 */
/* 杈撳叆琛屾暟,鏄劇ず13琛屼互鍐呬負浣?*/
do
{
printf("Input n=");
scanf("%d",&n);
} while(n <= 0 || n > 13);
for(i = 0; i < n; i++)
{
for(j = 0; j < n - i; j++) /* 杈撳叆姣忚鍓嶇殑絀烘牸 */
printf("%3c", ' ');
c=1; /* 姣忚寮濮嬭緭鍑哄墠閮藉皢c閲嶇疆涓? */
for(j = 0; j <= i; j++)
{
printf("%-3d", c);
printf("%-3c", ' ');
c = c * (i - j) / (j + 1); /* 鏍稿績: 閫掓帹鍏紡 */
}
printf("\n");
}
}
榪愯緇撴灉(VC):
=======================================================================
Input n=10鈫?br> 1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
=======================================================================
/* 緙栧啓涓涓▼搴忥紝灝嗙敤鎴瘋緭鍏ョ殑浠繪剰姝f暣鏁伴嗚漿錛屼緥濡傦紝杈撳叆1234錛岃緭鍑?321銆?/
#include <stdio.h>
void main()
{
int num,_result=0;
printf("enter number:");
scanf("%d",&num);
while(num)
{
_result=_result*10;
_result= num%10+_result;
num/=10;
}
printf("%d\n",_result);
}
/* 楠岃瘉姝屽痙宸磋但鐚滄兂錛氫換浣曞厖鍒嗗ぇ錛?gt;=4錛夌殑鍋舵暟閮藉彲浠ョ敤涓や釜绱犳暟涔嬪拰琛ㄧず錛?br>灝?鍒?00涓殑鎵鏈夊伓鏁板垎鍒敤涓や釜绱犳暟涔嬪拰鐨勫艦寮忚〃紺恒傦紙渚嬪錛?=2+2錛?00=3+97錛?/
#include <stdio.h>
int IsPrime(int n);
void main()
{
for(int i=4;i<=100;i+=2)
{
int x=0;
for(x=2;x<i;x++)
{
if(IsPrime(x)&&IsPrime(i-x))
{
printf("%d = %d + %d\n",i,x,i-x);
break;
}
}
}
}
int IsPrime(int n)
{
int i;
if (n == 1 || n == 2 || n == 3 || n == 5)
return 1;
else if (n % 2)
{
for (i = 3; i <= n / 2 + 1; i += 2)
{
if (n % i == 0) return 0;
}
return 1;
}
else
{
return 0;
}
}
/*璁$畻涓や釜鏁扮殑鏈澶у叕綰︽暟*/
#include <stdio.h>
unsigned int gcd(unsigned int,unsigned int);
void main()
{
int x,y;
printf("Enter 2 num:");
scanf("%d%d",&x,&y);
printf("common divisor:%d\n",gcd(x,y));
}
unsigned int gcd(unsigned int x,unsigned int y) // common divisor
{
unsigned int i,j,t;
if(x==0)
return y;
if(y==0)
return x;
for(i=0;0==(x&1);x>>=1,++i);
for(j=0;0==(y&1);y>>=1,++j);
if(j<i)
i=j;
for(;;)
{
if(x<y)
t=y,y=x,x=t;
if(0==(x-=y))
return y<<i;
for(;0==(x&1);x>>=1);
}
}
/* 杈撳嚭鎵杈撳叆鐨勬鏂囥傝緭鍑烘椂灝嗚繛緇殑澶氫釜絀烘牸瀛楃鍜屾í鍚戝埗琛ㄧ緙╁噺涓轟竴涓┖鏍煎瓧絎︼紝
絀鴻鍒犲幓涓嶈緭鍑猴紙絀鴻鏄寚浠呯敱絀烘牸瀛楃銆佹í鍚戝埗琛ㄧ鍜岃緇撴潫絎︾粍鎴愮殑琛岋級*/
#include <stdio.h>
int main()
{
int ch, flag1 =0, flag2 = 0;
while((ch=getchar())!=EOF)
switch(ch){
case '\n':
if(flag2) {
flag1=flag2=0;
putchar(ch);
}
break;
case ' ':
case '\t':
flag1=1;
break;
default:
if(flag1){
putchar(' ');
flag1=0;
}
putchar(ch);
flag2=1;
continue;
}
return 0;
}
//------------------------------------------------------------
//
// 瀹為獙4 C鍑芥暟紼嬪簭璁捐
//
//------------------------------------------------------------
#include <stdio.h>
int factorial(int n); //璁$畻闃朵箻
double reckon(int n); //鍏紡鍑芥暟
void main()
{
int num;
printf("Enter num:");
scanf("%d",&num);
printf("out:%f\n",reckon(num));
}
int factorial(int n)
{
long _result;
if(n>1)
_result=factorial(n-1)*n;
else _result=1;
return(_result);
}
double reckon(int n)
{
double sum=0;
for(int i=1;i<n;i++)
{
double ret = factorial(i);
sum += 1/ret;
}
return sum;
}
//------------------------------------------------------------
//
// 瀹為獙5 鏁扮粍紼嬪簭璁捐
//
//------------------------------------------------------------
/* 鐢╮and鍑芥暟妯℃嫙鎺峰弻楠板瓙錛岃綆楁姇鎺峰嚭鐨勪袱涓肩殑鍜屻傚湪紼嬪簭涓妸榪欎袱涓瀛愬悇鎺?600嬈★紝
鐢ㄤ竴緇存暟緇勮褰曟瘡涓縐嶅彲鑳藉肩殑鍑虹幇嬈℃暟錛屼互琛ㄦ牸鏍煎紡鎵撳嵃鍑虹粨鏋滐紝鍒ゆ柇綆楀嚭鐨勫拰鏄惁鍚堢悊銆?/
#include <stdio.h>
#include <stdlib.h>
#include <memory.h>
#include <time.h>
void main()
{
int rands[13];int num1,num2;int i;
memset(rands,0,sizeof(int)*13);
/* Seed the random-number generator with current time so that
* the numbers will be different every time we run.
*/
srand( (unsigned)time( NULL ) );
for(i = 1; i < 3600; i++ )
{
num1 = rand()%6;
num2 = rand()%6;
num1==0?num1=6:num1;
num2==0?num2=6:num2;
rands[num1+num2]++;
}
printf("-------------------------------------------------------------------------------\n");
printf("number:\t");
for(i=2; i<13; i++)
{
printf("%d\t",i);
}
printf("\ntimes:\t");
for(i=2; i<13; i++)
{
printf("%d\t",rands[i]);
}
printf("\n-------------------------------------------------------------------------------\n");
}
/* 瀹氫箟鍑芥暟stncat(s,t,n),浠庝覆t涓嚦澶氬彇 n涓瓧絎︽坊鍔犲埌 s鐨勫熬閮紝鍦ㄤ富鍑芥暟涓緭鍏ヤ袱涓瓧絎︿覆鍜屼竴涓暣鏁皀錛?br>璋冪敤鍑芥暟stncat鎸夎姹傝繛鎺ユ垚涓涓瓧絎︿覆錛岃緭鍑鴻繛鎺ュ悗鐨勭粨鏋滃瓧絎︿覆銆?/
#include <stdio.h>
char * strncat(char*,const char *,int);
void main()
{
char string[80] = "This is the initial string!";
char suffix[] = " extra text to add to the string...";
/* Combine strings with no more than 19 characters of suffix: */
printf( "Before: %s\n", string );
strncat( string, suffix, 19 );
printf( "After: %s\n", string );
}
char * strncat(char *dest,const char *source,int count)
{
char *p = dest;
while (*p) p++;
while (count-- && (*p++ = *source++));
*p = '\0';
return(dest);
}
/* 鎵懼嚭浜岀淮鏁扮粍b[3][3]鐨?#8220;闉嶇偣”錛堝嵆琛屼笂涓烘渶澶э紝鍒椾笂涓烘渶灝忕殑鍏冪礌錛?br>鍙婂叾浣嶇疆錛堣銆佸垪涓嬫爣錛夛紝濡傛灉涓嶅瓨鍦ㄩ瀺鐐逛篃杈撳嚭鐩稿簲淇℃伅銆?/
#include<stdio.h>
#define N 3
#define M 3
void main()
{
int a[N][M],i,j,k,max=0,xmax,ymax,found=0,flag=1;
printf("Input the array(%d numbers):\n",N*M);
for( i=0;i<N;i++ )
{
for( j=0;j<M;j++ )
{
printf("array[%d][%d]=",i,j);
scanf("%d",&a[i][j]);
}
}
for( i=0;i<N;i++ )
{
for( j=0;j<M;j++ )
{
if( max<a[i][j] )
{
max=a[i][j];
}
}
for( j=0;j<M;j++ )
{
if(max==a[i][j])
{
xmax=j;
for( k=0;k<N;k++ )
{
if( max>a[k][xmax] )
flag=0;
}
if( flag==1 )
{
ymax = i;
printf("%d is the andian.\n",max);
printf("pt: x=%d\ty=%d\n",xmax+1,ymax+1);
found++;
}
}
}
}
if( found==0 )
printf("andian not found!\n");
}
/* 鍏殗鍚庨棶棰橈紝鍦?*8鏂規牸鍥介檯璞℃鐩樹笂鏀劇疆8涓殗鍚庯紝浠繪剰涓や釜鐨囧悗涓嶈兘浣嶄簬鍚屼竴琛屻?br>鍚屼竴鍒楁垨鍚屼竴鏂滅嚎錛堟鏂滅嚎鎴栧弽鏂滅嚎錛変笂錛岃緭鍑烘墍鏈夊彲鑳界殑鏀炬硶銆?/
#include <stdio.h>
#include "math.h"
void paichu(char (*a)[8],int i,int j);
void main()
{
int i,j,k,n;
char a[8][8];
for(k=0;k<8;++k)
{
n=0;
for(i=0;i<8;++i)
for(j=0;j<8;++j)
a[i][j]='*';
for(i=0;i<8;++i)
for(j=0;j<8;++j)
{
if(i==0 && j<k) continue;
else if(a[i][j]=='*' && (fabs(j-k)<i+5))
{
paichu(a,i,j);
a[i][j]='*';
}
}
for(i=0;i<8;++i)
for(j=0;j<8;++j)
if(a[i][j]=='*') ++n;
if(n!=8) continue;
for(i=0;i<8;++i)
{
for(j=0;j<8;++j)
printf("%c",a[i][j]);
printf("\n");
}
printf("\n");
getchar();
}
}
void paichu(char (*a)[8],int i,int j)
{
int k,n,i1,i2,j1,j2;
if(i>j) n=j;
else n=i;
for(k=0;k<8;++k)
{
*(*(a+k)+j)='o';
*(*(a+i)+k)='o';
}
i1=i-n;
j1=j-n;
while(i1<8 && j1<8)
{
*(*(a+i1)+j1)='o';
++i1;
++j1;
}
if(i+j<8) i2=0;
else i2=i-7+j;
j2=j+i-i2;
while(i2<8 && j2>=0)
{
*(*(a+i2)+j2)='o';
++i2;
--j2;
}
}
//------------------------------------------------------------
//
// 瀹為獙6 鎸囬拡紼嬪簭璁捐
//
//------------------------------------------------------------
1錛? 榪愯涓嬮潰鐨勭▼搴忎箣鍓嶏紝鍏堢粰鍑轟綘鑷繁璁や負鐨勭粨鏋滐紝鍐嶇湅鐪嬭繍琛岀粨鏋滄槸鍚﹀拰浣犳兂鐨勪竴鏍鳳紝璇曠潃瑙i噴紼嬪簭杈撳嚭鐨勭粨鏋溿?br>#include <stdio.h>
#include <stdlib.h>
void f(char s[100])
{
printf("s size in function f: %d\n", sizeof(s));
}
int main()
{
char s[] = "hello";
char *p, *mp;
int n;
char str[100];
printf("s size: %d\n", sizeof(s));
p = s;
printf("p size: %d\n", sizeof(p));
printf("n size: %d\n", sizeof(n));
printf("str size: %d\n", sizeof(str));
mp = malloc(100);
printf("mp size: %d\n", sizeof(mp));
f(str);
return 0;
}
sizeof鏄槸闀垮害榪愮畻絎? 鑾峰緱鏁版嵁綾誨瀷鎴栨槸鍙橀噺鐨勯暱搴︼紝濡傛灉鏄暟鎹被鍨嬶紝
鍒欒繑鍥炴暟鎹被鍨嬪ぇ灝忥紝濡傛灉鏄敤鏁扮粍錛屽垯榪斿洖鏁扮粍鎵鍗犵┖闂村ぇ灝?/p>
s size:6 s鏄嚜鍔ㄥ垎閰嶇殑鏁扮粍,鏍規嵁鎵緇欏瓧絎︿覆闀垮害錛岀紪璇戝櫒鑷姩鍒嗛厤絀洪棿錛?h,e, l, l, o, \0)
p size:4 p鏄痗har*,閫氬父錛屾寚閽堥暱搴﹀拰璁$畻鏈篊PU鐨勪綅鏁扮浉絳夛紝姝よ綆楁満涓?2浣嶏紝鍗?瀛楄妭
str size:100 榪斿洖鏁扮粍闀垮害錛宻tr鏄敤鎴瘋嚜瀹氫箟闀垮害鐨勬暟緇?br>mp size:4 鍚屼笂 p size
s size in function f:4 f鍑芥暟灞炰簬浼犲弬鎿嶄綔錛屽嵆鎸囬拡浼犻掞紝娌℃湁寮杈熸柊絀洪棿錛屽嚱鏁板s鍋氭寚閽堝鐞嗐?/p>
2錛庡垽鏂笌鏀歸敊錛?br>#include <stdio.h>
void upper(char *s)
{
while (*s != '\0')
{
if (*s >= 97 && *s <= 122)
*s -= 32;
s++;
}
}
void lower(char *s)
{
while (*s != '\0')
{
if (*s >= 65 && *s <= 90)
*s += 32;
s++;
}
}
int main ()
{
char str[100];
char *p, *q;
printf("Input a string with uppercase, lowercase or digits: \n");
gets(str);
printf("Original: %s\n",str);
p = str;
upper(p);
printf("Uppercase: %s\n",p);
q = str;
lower(q);
printf("Lower: %s\n",q);
return 0;
}
閿欒鍘熷洜:
p,q涓や釜鎸囬拡鎸囧悜浜嗗悓涓涓暟鎹簮str,瀵筽,q鐨勬搷浣滀細鐩存帴鏀瑰彉str鐨勫唴瀹?
printf鍑芥暟蹇呴』鍦ㄦ瘡嬈℃暟鎹敼鍙樻椂錛屽垎鍒墦鍗板埌灞忓箷錛屽惁鍒欏彧鑳借緭鍑?琛屽悓鏍風殑str鏁版嵁銆?/p>
/*緙栧啓涓涓綘鑷繁鐨剆trlen鍑芥暟錛岃緭鍏ヤ竴涓瓧絎︿覆錛岃繑鍥炲畠鐨勯暱搴︼紝
騫跺湪涓涓畬鏁寸殑紼嬪簭涓獙璇佸畠銆傛彁紺猴細瀛楃涓茬殑緇撳熬涓?‘\0’*/
void main ()
{
char buffer[61] = "How long am I?";
int len;
len = strlen( buffer );
printf( "'%s' is %d characters long\n", buffer, len );
}
int strlen(const char * str) {
int length = 0 ;
while (*str++ )
++ length;
return length;
}
/*鎸囬拡鏁扮粍鏈棰戠箒鐨勭敤澶勬槸瀛樻斁鍏鋒湁涓嶅悓闀垮害鐨勫瓧絎︿覆銆?br>璇曠敤鎸囬拡鏁扮粍瀵硅緭鍏ョ殑n涓暱搴︿笉絳夌殑瀛楃涓茶繘琛屾帓搴忥紝
鍗囧簭銆傚瓧絎︿覆鐨勬瘮杈冨彲浠ョ敤鏍囧噯搴撲腑鐨剆trcmp鍑芥暟銆?/
#include <stdio.h>
void BubbleSort(char* pt[1024],int count);
void main()
{
char buffer[1024];
char *pBuffer;
char *pt[1024];
int i, ch;
printf( "Do over please input '0'\n" );
printf( "Before:\n" );
/* Read in single line from "stdin": */
for( i = 0; (i < 1024) && ((ch = getchar()) != EOF)
&& (ch != '0'); i++ )
buffer[i] = (char)ch;
/* Terminate string with null character: */
buffer[i] = '\0';
int pl=0;
pt[pl] = buffer;
pBuffer = buffer;
while (*pBuffer++)
{
if(*pBuffer == '\n')
{
++pl;
*pBuffer = '\0';
pBuffer++;
pt[pl] = pBuffer;
}
}
BubbleSort(pt,pl);
printf( "After:\n" );
for(i=0;i<pl;i++)
{
printf( "%s\n", pt[i]);
}
}
void BubbleSort(char* in[1024],int count)
{
char* temp;
for(int y=0;y<count-1;y++)
{
for(int x=1;x<count-y;x++)
{
if((in[x][0])<(in[x-1][0]))
{
temp=in[x-1];
in[x-1]=in[x];
in[x]=temp;
}
}
}
}
/*緙栧啓涓涓甫鏈夊懡浠よ鍙傛暟鐨勭▼搴弒howletter*/
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[])
{
printf("showletter [start] [end]\nstart\t a~z\nend\t0~99\n");
int start=0,end=0;
if(argc == 1)
{
start = 'a';
end = 'z';
}
else if(argc == 2)
{
start = (int)argv[1][0];
end = 'z';
}
else if(argc == 3)
{
start = (int)argv[1][0];
end = start+atoi(argv[2]);
}
else
{
printf("The command parameter error!\n");
}
for(int i=start; i<end; i++)
{
if(i>'z')
{
printf("\n");
end-=26;
i='a';
}
printf("%c",i);
}
printf("\n");
return 0;
}
澶у瀷浣滀笟絳旇京錛欳/S鑰冭瘯緋葷粺紼嬪簭鍒朵綔璇﹁В 涓嬭澆婧愪唬鐮?/font>
鐢╓in32 API鍑芥暟鏋勯犱富紿椾綋鍜岀晫闈㈠厓绱狅紝濡傚浘涓鎵紺猴細 ![]() 鍥句竴 紼嬪簭緇勭粐緇撴瀯 ![]() 涓銆佸畬鍏ㄧ鍙fā鍨?I/O completion ports)鏄縿浠婁負姝㈡渶涓哄鏉傜殑涓縐岻/O妯″瀷錛屽亣濡備竴涓▼搴忛渶瑕佺鐞嗕負鏁頒紬澶氱殑濂楁帴瀛楋紝閭d箞閲囩敤榪欑妯″瀷寰寰鍙互杈懼埌鏈浣崇殑緋葷粺鎬ц兘錛屼笉騫哥殑鏄妯″瀷鍙傜敤涓嶹IN2000鍜學INNT鎿嶄綔緋葷粺錛屽洜鍏惰璁$殑澶嶆潅鎬э紝鍙湁鍦ㄤ綘鐨勫簲鐢ㄧ▼搴忛渶瑕佸悓鏃剁鐞嗘暟鐧句箖鑷充笂鍗冧釜濂楁帴瀛楃殑鏃跺欙紝鑰屼笖甯屾湜闅忕潃緋葷粺鍐呭畨瑁呯殑CPU鐨勬暟閲忓澶氾紝搴旂敤紼嬪簭鐨勬ц兘涔熷彲浠ョ嚎鎬х殑鎻愬崌錛屾墠鑰冭檻閲囩敤“瀹屾垚绔彛妯″瀷”(WEB鏈嶅姟鍣ㄤ究鏄繖鏂歸潰鐨勫吀鍨嬩緥瀛?銆侷/O completion ports鏄敮涓閫傜敤浜庨珮璐熻澆鏈嶅姟鍣ㄧ殑涓涓妧鏈紝瀹冨埄鐢ㄤ竴浜涚嚎紼嬪府鍔╁鉤琛?#8220;I/O璇鋒眰”鎵寮曡搗鐨勮礋杞斤紝榪欐牱鐨勬瀯鏋剁壒鍒傚悎搴旂敤鍦⊿MP緋葷粺涓駭鐢熸墍璋撶殑“Scalable”鏈嶅姟鍣紝(Scalable鏄寚鑳藉綾嶇潃澧炲姞RAM鎴栫鐩樼┖闂達紝CPU涓暟鑰屾彁鍗囧簲鐢ㄧ▼搴忔晥鑳界殑涓縐嶇郴緇?銆?br> 浜屻佸畬鍏ㄧ鍙fā鍨嬬殑鍏蜂綋瀹炵幇 銆銆涓轟簡浣跨敤“瀹屾垚绔彛妯″瀷”錛屾垜浜х敓浜嗕竴鍫嗙嚎紼嬪湪绔彛涓婄瓑寰咃紝綰跨▼鏁伴噺=CPU涓暟x2+2錛屾垜灝嗘瘡涓鎴風浜х敓鐨勬枃浠跺彞鏌勪笌I/O completion ports绔彛鐩稿叧鑱旓紝寤虹珛浜嗚繖縐嶅叧緋諱箣鍚庯紝浠諱綍瀹㈡埛绔彂鍑烘搷浣滆姹傦紝渚夸細瀵艱嚧I/O completion packet琚佸埌“瀹屾垚绔彛”鍘伙紝榪欎釜姝ラ鏄搷浣滅郴緇熷畬鎴愮殑錛屼負浜嗗洖搴擨/O completion packet錛屾垜璁㊣/O completion閲婃斁涓涓瓑寰呬腑鐨勭嚎紼嬶紝濡傛灉鐩墠娌℃湁綰跨▼姝e湪絳夊緟錛屽畠涓嶄細涓鴻繖涓鎴風N浜х敓鏂扮殑綰跨▼, 褰撲綔鐢ㄤ腑鐨勭嚎紼嬪鐞嗗畬鐩稿簲瀹㈡埛绔殑“overlapped I/O”鍚庯紝灝嗚繑鍥濱/O completion绔彛榪涜絳夊緟錛屽鎴風N榪欐椂鎵嶈兘澶熻澶勭悊錛岃繖鏍峰氨淇濊瘉浜嗘垜鐨刉orkers綰跨▼鎬繪槸淇濇寔涓涓ǔ瀹氱殑鏁伴噺(CPU涓暟x2+2)銆傚鍥句簩鎵紺猴細 ![]() 鍥句簩銆瀹屽叏绔彛綰跨▼妯″瀷紺烘剰鍥?br> 涓夈佹暟鎹簱鐨勬搷浣滃疄鐜?br>銆銆榪欓儴鍒嗗姛鑳戒富瑕佹槸閫氳繃WinSocket32 API鍜孫DBC API緇撳悎浣跨敤鏉ュ疄鐜扮殑,鏈嶅姟绔繘鍏ョ洃鍚姸鎬佸悗,涓烘瘡涓鎴風鎻愪緵鐩稿簲綰跨▼澶勭悊鍙戣繃鏉ョ殑鎸囦護,閫氳繃鍒嗘瀽鎸囦護,浣滃嚭浠ヤ笅鐩稿簲鐨勬搷浣滐細 瀹㈡埛绔彂閫佺殑鎸囦護(鑷畾涔夌殑): login: 鐧婚檰鏍¢獙 鍙傛暟:鐢ㄦ埛鍚?縐戠洰,瀵嗙爜 Srecv:ScanTm: 媯鏌ユ湇鍔″櫒鏃墮棿鏍″璇曞嵎淇敼璇曞嵎鐘舵?鎶涘嚭璁℃暟鍊? Srecv:GetSta: 鑾峰彇璇曞嵎鐘舵? Srecv:GetRlt: 鑾峰彇涓婃鍋氱瓟 Srecv:GetNum: 鑾峰緱璇曞嵎鐩稿叧淇℃伅(鎬婚鏁?寮鑰冩椂闂?緇撴潫鏃墮棿) Srecv:GetQue: 鑾峰彇璇曞嵎棰樼洰鍐呭. Srecv:SaveDt: 淇濆瓨璇曞嵎 Srecv:ChanST: 淇敼璇曞嵎鐘舵?鍥涖佹湇鍔″櫒紼嬪簭鎬葷粨 銆銆鏁版嵁搴撹鍗曠嫭瀛樻斁鍦ㄤ竴涓湇鍔″櫒涓彲浠ヤ繚璇佹暟鎹畨鍏ㄦэ紝紼嬪簭浼氬皢瀹㈡埛绔殑涓鍒囨搷浣滄樉紺哄湪紿楀彛涓紝鐢ㄦ埛鍙互閫氳繃瑙傚療紿楀彛,鐭ラ亾鎵鏈夊鎴風鐨勫姩浣溿傝繖涓▼搴忛噰鐢?#8220;瀹屾垚绔彛”妯″瀷錛屽彲浠ユ弧瓚沖ぇ瑙勬ā鐨勮冭瘯闇姹傘?br> ![]() 涓昏鍖呭惈涓涓嬫爣鍑嗘帶浠訛細 static鎺т歡 Edit鎺т歡 Button鎺т歡 Scroll鎺т歡 紿楀彛鍏冪礌鍏ㄩ儴閲囩敤璁$畻鍚庣殑鐩稿鍧愭爣瀹氫綅,鎵浠?00X600鍜?024X768涓嬪潎鑳芥甯告樉紺猴紝浜屻佽瘯鍗風殑鍒濆鍖?br>銆銆鑰冭檻鍒版瘡寮犺瘯鍗風殑棰樼洰鏁伴噺閮戒笉鍚岋紝涓轟簡鑺傜害鍐呭瓨絀洪棿錛屾墍浠ユ垜鍦ㄥ爢涓姩鎬佺敓鎴愪簡涓涓瘯鍗風粨鏋勪綋錛岄氳繃鍚戞湇鍔″櫒紼嬪簭鍙戦丟etNum:鎸囦護鏉ヨ幏寰楄瘯鍗鋒婚鏁癚uestionNum,鐒跺悗浣跨敤TestPaper=new TestRubric [QuestionNum] /*緇撴瀯浣撳畾涔?/ //璇曞嵎姣忛亾棰樼殑緇撴瀯 struct Questions{ BOOL state; char Text [512]; }; struct SelectObject{ BOOL state; char Text[256]; }; struct TestRubric{ struct Questions Tile; struct SelectObject choose [4]; };鐢變簬TextOut鍑芥暟涓嶆敮鎸佽嚜鍔ㄦ崲琛?鎵浠ユ崲琛屾搷浣滃繀欏葷敱鎴戣嚜宸卞畬鎴?鍥犳鎴戠敤鍚屾牱鐨勬柟娉曞湪鍫嗕腑鍒涘緩浜嗕竴涓猄creen鐢ㄤ綔灞忓箷鏄劇ず鐨勭粨鏋勪綋 Screen=new Lines[LINES] struct Lines{ int earmark; //鐢ㄦ潵瀛樺偍Button鐨処D BOOL color1;//緗鑹叉爣蹇? BOOL color2;//緗鑹叉爣蹇? char Line [512]; };LINES=鎵弿TestPaper涓秴榪囧睆騫曞搴︾殑琛屾暟+ QuestionNum*5+QuestionNum*3 灞忓箷瀹藉害=瀹㈡埛鍖虹殑瀹?姣忎釜鏂囧瓧鐨勫搴?2*2 灞忓箷楂樺害=瀹㈡埛鍖虹殑楂?姣忎釜鏂囧瓧鐨勯珮搴?br>涓烘瘡涓浣撲駭鐢?涓簰鏂ョ殑鎸夐挳 鎸夐挳鎬繪暟= QuestionNum*4 鍦ㄥ爢涓敓鎴恏WndList鏁扮粍淇濆瓨鎸夐挳handle hWndList=new hWnd [QuestionNum*4] 鎸夐挳ID=棰樺彿*10+閫夐」鍙?br>Screen.earmark=鎸夐挳ID ![]() 鍥句笁 銆銆灝員estPaper涓殑鍐呭緇忚繃鎹㈣澶勭悊涔嬪悗Copy鍒癝creen緇撴瀯涓紝騫惰緗ソScreen.earmark錛孲creen.Color1, Screen.Color2銆傚湪涓葷獥鍙f秷鎭驚鐜殑WM_PAINT娑堟伅涓皢Screen.Line鏄劇ず鍦ㄧ獥鍙d腑錛? TextOut(hdc,x,cyhar*i,Screen.Line,strlen(Screen.Line));騫舵鏌creen.earmark涓槸鍚︿負闆?涓嶄負闆跺氨錛? ShowWindow(hWndList[Sreen.earmark/10-1] [Screen.earmark%10-1],1); Screen.Color1, Screen.Color2鏄惁涓?,濡傛灉涓?錛屽垯鏀瑰彉棰滆壊鏄劇ず銆?br>
|