当前位置: 代码迷 >> C语言 >> C区置顶[各期题目][好网站链接][精华资料]等07.8.10更新
  详细解决方案

C区置顶[各期题目][好网站链接][精华资料]等07.8.10更新

热度:701   发布时间:2007-08-10 10:29:34.0
C区置顶[各期题目][好网站链接][精华资料]等07.8.10更新

由于原帖较为零乱,本置顶帖代替nuciewth斑竹原帖,受nuciewth委托,我对原帖进行了重新整理编排,大部分为nuciewth原创,这里代表大家向nuciewth表示感谢

目录:

二楼:各期题目
三楼:好文章,精华资料
四楼:好的网站链接
五楼:C语言编程技巧汇萃

日后本帖的维护还靠大家,希望大家提供相应的资料,使本帖更加充实

[此贴子已经被作者于2007-8-18 17:54:44编辑过]

搜索更多相关的解决方案: 精华资料  网站链接  置顶帖  题目  nuciewth  

----------------解决方案--------------------------------------------------------

第一期:

http://bbs.bc-cn.net/dispbbs.asp?boardid=5&replyid=391191&id=102423&page=1&skin=0&Star=1

第二期:

http://bbs.bc-cn.net/dispbbs.asp?boardid=5&replyid=391206&id=104014&page=1&skin=0&Star=1

第三期:

http://bbs.bc-cn.net/dispbbs.asp?boardid=5&replyid=393254&id=105515&page=1&skin=0&Star=1
第四期.

http://bbs.bc-cn.net/viewthread.php?tid=107029
第五期.

http://bbs.bc-cn.net/viewthread.php?tid=108628
第六期.

http://bbs.bc-cn.net/viewthread.php?tid=110142
第七期.

http://bbs.bc-cn.net/viewthread.php?tid=123521&extra=&page=1#43629
第八期.
http://bbs.bc-cn.net/viewthread.php?tid=125025&extra=&page=1#54044
第九期.
http://bbs.bc-cn.net/viewthread.php?tid=126858
第十期.

http://bbs.bc-cn.net/viewthread.php?tid=129612&star=at#
第十一期.
http://bbs.bc-cn.net/viewthread.php?tid=131422

第十二期.
http://bbs.bc-cn.net/viewthread.php?tid=133362&star=at#

第十三期.
http://bbs.bc-cn.net/viewthread.php?tid=135417&star=at#

第十四期.
http://bbs.bc-cn.net/viewthread.php?tid=138445

第十五期.
http://bbs.bc-cn.net/dispbbs.asp?boardid=5&replyid=150510&id=140486&page=1&skin=0&star=1


第十六期.
http://bbs.bc-cn.net/viewthread.php?tid=141457

第十七期:
http://bbs.bc-cn.net/viewthread.php?tid=143368&extra=&page=1#164326

[此贴子已经被作者于2007-8-10 10:34:46编辑过]


----------------解决方案--------------------------------------------------------

编程中国C区全部精华电子书+编程六大资料(07.2.10更新)
http://bbs.bc-cn.net/viewthread.php?tid=120509&star=at#
C语言编程易犯毛病集合
http://bbs.bc-cn.net/viewthread.php?tid=114028&star=at#
C语言之指针、数组和函数
http://bbs.bc-cn.net/viewthread.php?tid=106411&star=at#
常见错误
http://bbs.bc-cn.net/viewthread.php?tid=94688&star=at#
指针
http://bbs.bc-cn.net/viewthread.php?tid=94684&star=at#
C语言程序设计入门学习六步曲
http://bbs.bc-cn.net/viewthread.php?tid=132947&extra=&page=1#116680
链表基本操作的程序实现.
http://bbs.bc-cn.net/viewthread.php?tid=130712&star=at#
论坛朋友下载的一些课程经验.
http://bbs.bc-cn.net/viewthread.php?tid=135710&extra=&page=1#123620
二叉树的.
http://bbs.bc-cn.net/viewthread.php?tid=137061
C区精华链接:
http://bbs.bc-cn.net/Query.asp?stype=6&boardid=5&nSearch=0&pSearch=0

[此贴子已经被作者于2007-8-10 10:56:01编辑过]


----------------解决方案--------------------------------------------------------

* 一些网站

NetYi 电子书库 - 提供各种各样的电子图书,不过有积分制度
http://www.netyi.net
多种文件格式的介绍 - 较详细介绍了各种文件的结构
http://www.moon-soft.com/program/FORMAT/
唯 C 世界 - C 语言界很好的网站
http://www.vcok.com/
源代码库 - 各种方面的 C 源代码,非常全面
http://zhwm.diy.myrice.com/pcbook/daima/vc/
http://www.vckbase.com/sourcecode/algorithms/
AoGo 汇编小站 - 关于汇编和底层 C 的一些东西
http://www.aogosoft.com/
C 语言编程宝典 - 可以算是 C 的教程
http://paul.rutgers.edu/~junl/learning/TC/
其它好的编程网站
http://www.pcvz.com/Program/Programs/Clanguage/Index
http://www.czvc.com/
http://www.turinger.com/article_list.asp?c_id=1
http://www.chinaitlab.com/

* Online Judge - ACM 众多的在线裁判系统

浙江大学的 Online Judge -http://acm.zju.edu.cn
北京大学的 Online Judge -http://acm.pku.edu.cn
吉林大学的 Online Judge -http://acm.jlu.edu.cn
四川大学的 Online Judge -http://cs.scu.edu.cn/acm
汕头大学的 Online Judge -http://acm.stu.edu.cn/
中科大的 Online Judge -http://acm.ustc.edu.cn/index.php
西班牙的 Universidad de Valladolid -http://acm.uva.es/
俄罗斯乌拉尔大学 -http://acm.timus.ru/
杭州电子科技大学-http://acm.hdu.edu.cn/
杭州电子科技大学(HDU):http://acm.hziee.edu.cn/
同济大学(TJU):http://acm.tongji.edu.cn/
哈尔滨工业大学(HIT):http://acm.hit.edu.cn/
湖南大学(HNU):http://acm.hnu.cn:8080/online/
天津大学(TJU):http://cs.tju.edu.cn/acm/
福州大学(FZU):http://acm.fzu.edu.cn/
厦门大学(XMU):http://acm.xmu.edu.cn/JudgeOnline/
福建师范大学(FJNU):http://acm.fjnu.edu.cn/
华中科技大学(HUST):http://acm.hust.edu.cn/JudgeOnline/
华东师范大学(ECNU):http://acm.cs.ecnu.edu.cn/
浙江工业大学(ZJUT):http://acm.zjut.edu.cn/
浙江师范大学(ZJNU):http://acm.zjnu.cn/
高效信息学在线判题系统(VIJOS):http://www.vijos.cn/
俄罗斯:
乌拉尔大学(URAL):http://acm.timus.ru/
萨拉托夫大学(SGU):http://acm.sgu.ru/
EL Judge(MIPT):http://acm.mipt.ru/judge/problems.pl
西班牙:
瓦拉杜利德大学(UVA):http://acm.uva.es/
美国:
USACO:http://train.usaco.org/usacogate
波兰:
SPOJ:http://www.spoj.pl/
吉尔吉斯斯坦:
KRSU:http://www.olymp.krsu.edu.kg/GeneralProblemset.aspx

[此贴子已经被作者于2007-8-10 10:43:28编辑过]


----------------解决方案--------------------------------------------------------

C语言编程技巧汇萃
/*从键盘中读取字符 功能:按下普通键时,返回其ASCII码 扫描码CODE=0*/
int INKEY(int *code)
{
int m;
while(!bioskey(1))/*可加入无按键时代码*/;
*code=bioskey(0);
m=*code*255;
if(!m) m=*code>>8;
*code=*code&255;
return m;
}

/*获取机器日期*/
int DATE(char *s,char type)
{
char dat[30];
int num;
struct tm *tblock;
time_t t;
t=time(NULL);
tblock=localtime(&t);
strcpy(dt,asctime(tblock));
strcpy(s,"");
switch(type)
{
case 'N':
num=(*tblock).tm_year+1900;
itoa(num,s,10);
break;
case 'Y':
num=(*tblock).tm_mon+1;
itoa(num,s,10);
break;
case 'R':
num=(*tblock).tm_mday;
itoa(num,s,10);
break;
case 'S':
strcpy(dt,asctime(tblock));
MID(s,dt,12,8);
break;
}
}
return num;
}

/*将浮点数转化为字符串*/
/* 参数说明 data:需转换的浮点数;s:输出字符串;len:转换后的长度*/
void f_to_s(double data,char *s,int len)
{
int dec,sign,i;
char *s1,s2[100],s3[100];
s1=0;
s2[0]=0;
s3[0]=0;
s1=fcvt(data,len,&dec,&sign);
if (!sign&&data>=1)
{
MID(s2,s1,dec+1,-1);
MID(s3,s1,1,dec);
strcpy(s,"+");
strcat(s,s3);
strcat(s,".");
strcat(s,s2);
}
if (sign&&fabs(data)>=1)
{
MID(s2,s1,dec+1,-1);
strcpy(s,"-");
MID(s3,s1,1,dec);
strcat(s,s3);
strcat(s,".");
strcat(s,s2);
}
if (!sign&&dec==0)
{
strcpy(s,"+0.");
strcat(s,s1);
}
if (sign&&dec==0)
{
strcpy(s,"-0.");
strcat(s,s1);
}
if (!sign&&dec<0)
{
strcpy(s,"+0.");
for(i=1;i<=fabs(dec);i++)
strcat(s,"0");
strcat(s,s1);
}
if (sign&&dec<0)
{
strcpy(s,"-0.");
for(i=1;i<=fabs(dec);i++)
strcat(s,"0");
strcat(s,s1);
}
if (strlen(s)>len) s[len]=0;
}

/*清除屏幕*/
void CLSXY(int color,int x,int y,int xl,int yl)
{
int x1,y1;
union REGS r;
if(x<1||y<1) return;
y--;
x--;
y1=y+yl-1;
x1=x+xl-1;
if (y1>25||x1>80)
return;
r.h.ah=6; /*子功能号*/
r.h.al=0; /*滚动行数*/
r.h.ch=y;
r.h.cl=x;
r.h.dh=y1;
r.h.dl=x1;
r.h.bh=color*16;
int86(16,&r,&r);
}


/*显示时间*/
void display_time(int color,int back_color,int y,int x)
{
static char oldtime[9]="";
char newtime[9];
if(y<1||x<1) return;
settextstyle(1,0,1);
DATA(newtime,'S');
back_color=7;
if(strcmp(newtime,oldtime))
{
setfillstyle(1,back_color);
setcolor(color);
bar(535,458,635,475);
outtextxy(x,y,newtime);
strcpy(oldtime,newtime);
}
}


/*打印一个矩形*/
void PRINT_KJ(int x,int y,int wide,int high)
{
int i;
for(i=x;i {
gotoxy(i,y);
cprintf("?");
}
gotoxy(x,y+high);
cprintf("?");
gotoxy(x+wide,y+high);
cprintf("?");
gotoxy(x,y);
cprintf("?");
gotoxy(x+wide,y);
cprintf("?");
for(i=x+2;i {
gotoxy(i,y+high);
cprintf("?");
}
for(i=y+1;i {
gotoxy(x,i);
cprintf("?");
}
for(i=y+1;i {
gotoxy(x+wide,i);
cprintf("?");
}
}

/*砍掉字符串中所有空格*/
void CUT_ALL_SPC(char *s)
{
int i,n;
char d[10000];
n=0;
for(i=0;i if(s[i]!=32)
{
d[n]=s[i];
n++;
}
d[n]=0;
strcpy(s,d);
}


/*取子字符串*/
void MID(char *s,char *t,int n,int m)
{
int i,j,p;
if(n<1) n=1;
i=strlen(s);
if(i if(m<0) m=i;
else m=n+m-1;
if(m>i) m=i;
p=m-n+1;
if(p<0) p=0;
for(i=n-1,j=0;i t[j]=s[i];
t[p]=0;
}


/*从文件中读取字符*/
int READ_STR(char *s,FILE *fp)
{
int i=0;
if(!fp) return 0;
if(fgets(s,10000,fp)) i=1;
s[strlen(s)-1]=0;
return i;
}

/*字符串左靠齐*/
void MOVE_LEFT(char *d,char *s,int n)
{
int i,l;
l=strlen(s);
if(n>l) n=l;
for(i=0;i *d++=*s++;
*d=0;
}

/*取左字符串*/
void LEFT(char *d,char *s,int n)
{
int i,l;
i=0;
l=strlen(s);
if(n>l) n=l;
for(i=0;i d[i]=s[i];
d[n]=0;
}


/*向文件写数据*/
void WRITE_STR(char *s,FILE *fp)
{
char c=10;
if(!fp) return;
fputs(s,fp);
fputc(c,fp);
}

/*取右字符串*/
void RIGHT(char *dest,char *source,int num)
{
int i,j;
if (num<1) num=0;
num=strlen(source)-num;
if (num<0) num=0;
for(i=0,j=num;j<=strlen(source);i++,j++) dest[i]=source[j];
}


/*打开或关闭光标*/
void CURSOR(int on2off)
{
union REGS r;
if (on2off!=OFF) on2off=10;
r.h.ah=1;
r.h.ch=3;
r.h.cl=on2off;
int86(16,&r,&r);
}

/*喇叭发声*/
void SOUND(int frequency,int time)
{
int i;
i=time*50;
if (i>30000) i=30000;
if (i<50) i=50;
sound(frequency);
MYDELAY(i);
nosound();
}

/*时间延迟*/
void MYDELAY(long t)
{
time_t OldTime;
long t0;
t0=t/55;
if (t0<1) t0=1;
OldTime=clock();
while(clock()-OldTime }


/*正点报时*/
void REPORT_CLOCK(void)
{
int i;
for(i=0;i<5;i++);
{
SOUND(500,10);
MYDELAY(1000);
}
SOUND(800,10);
}


/*写整数于文件中*/
void WRITE_INT(int num,FILE *p)
{
char s[20],a=10;
if (!p) return;
itoa(num,s,10);
fputs(s,p);
fputc(a,p);
}


/*从文件中读取整数*/
int READ_INT(int *num,FILE *p)
{
int i;
char s[30]="";
if (!p) return 0;
if (fgets(s,10000,p))
{
i=-1;
s[strlen(s)-1]=0;
*num=atoi(s);
}
else i=0;
return i;
}


/*报警 */
void WARN(void)
{
SOUND(300,1);
SOUND(100,1);
}


/*字符串右靠齐*/
void MOVE_RIGHT(char *s,int wide)
{
int i,l,n;
l=strlen(s);
n=wide-l;
if (n>0)
{
for(i=l;i>-1;i--) s[i+n]=s[i];
for(i=0;i }
}


/*字符串居中*/
void MOVE_MIDDLE(char *s,int wide)
{
int i,l,n;
l=strlen(s);
if (wide>l)
{
wide=wide-1;
n=wide/2;
wide=wide-n;
for(i=l;i>-1;i--) s[i+n]=s[i];
for(i=0;i for(i=0;i s[l+n+i]=0;
}
}

/*删除子字符串*/
void Delete_SubString(char *source,int start,int num)
{
int i,l;
l=strlen(source);
if (num>l-start+1||num==-1) num=l-start+1;
if (start<1||start>1) return;
for(i=start;i source[i-1]=source[i+num-1];
}

/*查找指定字符串*/
int INSTR(int n,char *source,char *dest)
{
int i,j,k1,k2,p;
int start=0;
if (n==0) n=1;
k1=strlen(source);
k2=strlen(dest);
if (n<0)
{
char s[100];
n=-n;
MID(s,source,n,k2);
if (strcmp(s,dest)) return 0;
return n;
}
if (k1-n+1 for(i=n-1;i {
p=0;
for(j=0;j if (source[i+j]!=dest[j]) break;
else p++;
if (p==k2)
{
start=i+1;
break;
}
}
return start;
}


/*产生空格*/
void SPACE(char *s,int n)
{
int i;
if (n<0) n=0;
for(i=0;i *s=0;
}


/*产生字符串*/
void STRING(int n,char *s1,char *s2)
{
int i;
if (n<0) n=0;
s1[0]=0;
for(i=1;i<=n;i++) strcat(s1,s2);
}


/*砍掉字符串左边空格*/
void CUT_LEFT_SPACE(char *s)
{
int i,j,k=0;
i=strlen(s)+1;
for(j=0;j for(k=0;j }


/*砍掉字符串右边空格*/
void CUT_RIGHT_SPACE(char *s)
{
int i,j;
i=strlen(s)-1;
for(j=i;j>-1;j--) if (s[j]!=' ') break;
s[j+1]=0;
}

/*显示一个字符串*/
void DISPLAY(char *s)
{
union REGS regs;
int color,x,y;
x=wherex();
y=wherey();
color=16*bjys+qjys;
while(*s)
{
if(x>80) break;
regs.h.ah=9;
regs.h.al=*s;
regs.h.bh=0;
regs.h.bl=color;
regs.x.cx=1; /*显示的次数,不改变光标位置*/
int86(16,?s,?s);
x++;
if(x>80)
{
x=1;
y++;
if(y>25) y=25;
}
gotoxy(x,y);
s++;
}
}

/*定义屏幕颜色*/
void COLOR(int ForeColor,int BackColor)
{
if(ForeColor<0||ForeColor>15) return;
if(BackColor<0||BackColor>15) return;
qjys=ForeColor;
bjys=BackColor;
}

/*显示提示窗口*/
void quit_YesNo(char *s1,char *s2)
{
char buffer[2000],jx;
gettext(30,8,76,16,buffer);
textbackground(3);
CLSXY(8,32,9,30,6);
CLSXY(4,30,8,30,6);
COLOR(15,4);
gotoxy(35,10);
DISPLAY(s1);
gotoxy(35,12);
DISPLAY(s2);
gotoxy(35+strlen(s2)+1,12);
jx=getch();
puttext(30,8,76,16,buffer);
if (jx=='n'||jx=='N') return;
textbackground(0);
textcolor(15);
clrscr();
CURSOR(ON);
exit(0);
}

[此贴子已经被作者于2007-8-18 17:53:13编辑过]


----------------解决方案--------------------------------------------------------
链接有问题,链接不是第一页的
----------------解决方案--------------------------------------------------------
那个“C语言程序设计入门学习六步曲”(这个链接到了第二页)
第一楼讲的是用古老的TC来写代码,问题是现在有必要还要用TC来学吗?
16位系统和32位系统本质区别太大了,编译器的差别也很多

[此贴子已经被作者于2007-8-10 10:54:19编辑过]


----------------解决方案--------------------------------------------------------
感谢楼上,我将马上更改

[此贴子已经被作者于2007-8-10 10:55:15编辑过]


----------------解决方案--------------------------------------------------------
请问版主你是用什么编译器的?
----------------解决方案--------------------------------------------------------
此为置顶帖,请雨中飞燕不要走题,对编译器的选择是个人喜好,请不要将自己的想法强加于别人
----------------解决方案--------------------------------------------------------
  相关解决方案