博文

C语言库函数举例说明(二)(2006-01-24 15:04:00)

摘要:V字母开头 函数名: vfprintf 
功  能: 送格式化输出到一流中 
用  法: int vfprintf(FILE *stream, char *format, va_list param); 
程序例:  #include  
#include  
#include   FILE *fp;  int vfpf(char *fmt, ...) 

   va_list argptr; 
   int cnt;     va_start(argptr, fmt); 
   cnt = vfprintf(fp, fmt, argptr); 
   va_end(argptr);     return(cnt); 
}  int main(void) 

   int inumber = 30; 
   float fnumber = 90.0; 
   char string[4] = "abc";     fp = tmpfile(); 
   if (fp == NULL) 
   { 
      perror("tmpfile() call"); 
      exit(1); 
   }     vfpf("%d %f %s", inumber, fnumber, string);&n......

阅读全文(3224) | 评论:0

C语言库函数举例说明(一)(2006-01-24 14:28:00)

摘要:O字母开头 函数名: open 
功  能: 打开一个文件用于读或写 
用  法: int open(char *pathname, int access[, int permiss]); 
程序例: 
#include  
#include  
#include  
#include   int main(void) 

   int handle; 
   char msg[] = "Hello world";     if ((handle = open("TEST.$$$", O_CREAT | O_TEXT)) == -1) 
   { 
      perror("Error:"); 
      return 1; 
   } 
   write(handle, msg, strlen(msg)); 
   close(handle); 
   return 0; 
}  
   
   函数名: outport 
功  能: 输出整数到硬件端口中 
用  法: void outport(int port, int value); 
程序例:  #include  
#include   int main(void) 

   int value = 64;&nbs......

阅读全文(4461) | 评论:0

C语言32个关键字解释(2006-01-24 14:05:00)

摘要:[color=Teal]C语言小知识:[/color]
auto :声明自动变量 一般不使用
double :声明双精度变量或函数
int: 声明整型变量或函数
struct:声明结构体变量或函数
break:跳出当前循环
else :条件语句否定分支(与 if 连用)
long :声明长整型变量或函数     
switch :用于开关语句  
case:开关语句分支   
enum :声明枚举类型   
register:声明积存器变量  
typedef:用以给数据类型取别名(当然还有其他作用)
char :声明字符型变量或函数
extern:声明变量是在其他文件正声明(也可以看做是引用变量)   
return :子程序返回语句(可以带参数,也看不带参数)   
union:声明联合数据类型   
const :声明只读变量   
float:声明浮点型变量或函数
short :声明短整型变量或函数
unsigned:声明无符号类型变量或函数
continue:结束当前循环,开始下一轮循环  
for:一种循环语句(可意会不可言传)      
signed:生命有符号类型变量或函数   
void :声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用)
default:开关语句中的“其他”分支  
goto:无条件跳转语句     
sizeof:计算数据类型长度   
volatile:说明变量在程序执行中可被隐含地改变  
do :循环语句的循环体
while :循环语句的循环条件
static :声明静态变量
if:条件语句......

阅读全文(40114) | 评论:20

你最崇拜谁?IT领域10大技术天才介绍(2006-01-23 20:52:00)

摘要:【文章正文】
当初有了他才有了如今可爱的“苹果” ● 斯蒂芬·沃兹尼克 Steven Wozniak   史蒂夫·沃兹尼克是个当之无愧的奇才,他一手设计了苹果苹果I型和Ⅱ型电脑,带动了全球个人电脑普及应用浪潮,并迫使IBM PC于1981年面世,从此改变了整个计算机业的面貌。1977年,世界上只有少数人具备硬件、软件、电子设备和电路板布线等方面的知识,同时也只有少数人了解苹果Ⅱ计算机的制造技术、艺术特点,并欣赏它的设计优点。 现代Windows图形用户界面(GUI)之父 ●?阿伦·凯 Alan Kay   回顾计算机的发展史,一个新概念或一件新产品的出世无疑都直接转化为产业变革的源动力,而个人电脑(PC)散发出来的能量,让整个产业瞬间飞越到一个前所未有的高度。这场声势浩大的PC革命离不开那些伟大科学家的精准指引,阿伦·凯(Alan Kay)就是这么一个关键的领路人。他不但是PC革命的预言家,更是一个技术天才。他所开发的软件Smalltalk(面向对象程序语言)、Dynabook计算机(笔记本电脑的前身),提出的Windows GUI(图形用户操作界面)概念为PC软件、硬件和操作系统的发展奠定了重要的基础。 他设计的应用 应当最为普及 鼠标之父 ● 道格·恩格尔巴特 Doug Engelbart   1968年12月9日Engilehbart 博士在IEEE会议上展示的世界上第一个鼠标,一个木质的小盒子,盒子下面有两个互相垂直的轮子,每个轮子带动一个机械变阻器获得X、Y轴上的位移,在盒子的上面则有一个按钮开关提供连通信号。这款鼠标的鼻祖与今天的鼠标结构大不相同,甚至还需要外置电源给他供电才能正常工作。(道格拉斯?恩格尔巴特于1956年在美国加州大学伯克利分校获得电气工程与计算机博士学位,后来在著名的斯坦福研究所供职。1989年,道格拉斯?恩格尔巴特和女儿克里蒂娜?恩格尔巴特在美国硅谷创建了Bootstrap研究所,并于1998年获得世界计算机界最权威的奖项——图灵奖。早在20世纪60年代初,他就发表了一篇题为《放大人类智力》(Augmenting the Human Intellect)的文章,提出了要把计算机作为人类智慧的放大器的观点。实际上对他来说,鼠标器只不过是他所有成果中......

阅读全文(5083) | 评论:4

我和数学建模 (二)  <转>(2006-01-22 14:06:00)

摘要:稀里糊涂的,居然已经到了下午四点多了。和杜老师以及其他一些同学分了手,我和阿不直奔机械楼。看看时间,我不禁感叹道:“天啊!马上第一天白天就过完了,我觉得我们好像什么事都没有做!” “行了行了,准备工作总是得做的。老麦怎么还没回来?不管他了,我们先讨论讨论吧。”阿不说。 正要开始,老麦也回来了。 “太厉害了!”老麦兴奋得说,“我们教练太厉害了!他以前拿过美国赛一等奖!而且是你们计算机系的研究生。回头他说要给我们提供几条思路。” 真的?看来我们对太幸运了!哈哈!我在心里想。 不说废话了,赶紧进入正题吧。我们三个人都坐了下来,静下心开始讨论。 这道题最容易想到的思路就是概率统计了。利用统计方法分类。可惜这不是我拿手的,不过老麦好像已经有不少思路了,滔滔不绝的说给我们俩听,直把我听得晕头转向,不过阿不到是明白得很快。 “好了,大概就这么多思路了。”老麦说,“现在还有几个问题没法解决,最要命的,这次这题目数据太多!即使有方法,又该怎么用上去呢?” “哈哈!有方法就行,要用上去就交给傻子石吧。”阿不看看我说。 “没问题!”我很有信心的啪啪胸脯,“编程序的事情就交给我了。” “行了行了,照前面的思路,我看我们已经可以先让傻子石编上一段了。还有的那些问题老麦我们俩在讨论讨论。”阿不说。 阿不把刚才的想法给我整理了一遍,这回明白多了。说干就干。我立刻打开电脑编起了程序来。阿不和老麦继续在那里讨论。 不知不觉已经到晚上7点多了。我们三个晚饭都还没吃呢!阿不过来看看我:“怎么样?编得怎么样了?” 唉!虽然我一直自诩为我们专业公认的两大计算机编程高手之一,可现在回头看看,当时的水平真臭!居然还在那里用pascal,编了半天还错误一大堆。如果现在再做的话肯定厉害得多。 “别急别急,”我说,“正在调试。” “怎么办?”老麦问阿不,“他结果不出来,我们暂时无法往下做了。” “算了,等一会吧。”阿不说,“你出去逛逛吧,顺便买几袋方便面来,大家都还没吃东西呢。” 老麦想出来的这个模型,后来被我们叫做马氏距离模型。马氏距离是数理统计中一种非常常用的用来分类方法,总的来说,思路还是挺不错的。 …………………………………… 大功告成!第一段子程序总算完成了,呵呵。看看时间,都已经8点多了。我把算出来的数据交给老麦阿不看,他们俩又开......

阅读全文(3624) | 评论:0

我和数学建模 (一)  <转>(2006-01-22 14:03:00)

摘要:我和数学建模    数学建模是我们学校开展的一个非常成功的大型竞赛活动,也算得上是我们学校的一个拳头产品。作为一个参加过并取得一定成绩的数学建模老队员,我想在这里谈谈的我经历我的看法,希望能够给有志参加此项活动或对此项活动有兴趣的学弟学妹们提供一些了解的机会和建议吧。 初识数学建模(mcm) 其实我早在上高中的时候就听说过这个竞赛了。我一直对数学比较有兴趣,当时就幻想着大学的时候也能够一展身手。大学时进入了我们学校计算机专业,当时教我们高等数学课的老师是现在的理学院副院长朱士信老师。有一回上课时,他提到了这个竞赛,并且告诉我们这个竞赛在我校已经开展多年,而且一直做得很不错。可惜具体哪一年开展的我已经记不很清楚了,只记得大概是在90年代初吧。大致说来,参赛队员三个人一组,一般是在三天三夜的时间,给你一道题目,这道题目通常都有实际的背景,而且一般都没有标准答案。这三天三夜时间,你可以不睡觉不吃饭(说得有点夸张),可以去图书馆寻找任何的数学书籍或其他相关书籍,可以去请教任何一名老师或同学,可以在网上任意寻找你所需要的资料……总之,只要三天三夜之后,交出一篇论文,给出一个切实可行的解决问题的方法就行。我们学校开始此项活动没几年就取得了不错的成绩,首先是在全国赛(cmcm)中,有一些队成功的获得了全国赛一等、二等奖。而后又有一些队在美国赛(amcm)中获得了一等奖。这在全国高校来说是非常了不起的事了。 大一时只是听朱老师做了一些简单的介绍,并没有真正了解。后来我大一下学期,也就是99年美国赛消息出来后,那一年是我们学校做得最好的一年,获得了两个美国赛一等奖,取得了全国第7的好成绩。还记得当时学校专门在工会俱乐部小礼堂里开了个表彰会,虽然有幸参加会议的学生不多,但校长和学校主要领导都来了,专门给当年参加比赛的同学颁奖。我当时有幸作为一个学习成绩不错的学生参加了表彰会,更加剧了我参加mcm的愿望。 选拔队员 我们学校数学建模完全由理学院负责组织的,通常是在每年的4、5月份,从当年大二的学生中进行选拔,一般第一次会选拔出30多个人。当年大二的学生,只要愿意,都可以报名参加选拔。不久我进入了大二,参加了第一次选拔。这一次出的卷子题目都是高等数学、概率论、线性代数的内容。说出来不怕大家笑话,我当时并没有通过第一次考试。不过这并不要......

阅读全文(5383) | 评论:4

编程与数学建模(2006-01-22 13:26:00)

摘要:           那什么是数学建模?     数学建模是指对现实世界的一特定对象,为了某特定目的,做出一些重要的简化和假设,运用适当的数学工具得到一个数学结构,用它来解释特定现象的现实性态,预测对象的未来状况,提供处理对象的优化决策和控制,设计满足某种需要的产品等。一般来说数学建模过
程可用如下框图来表明:       数学是在实际应用的需求中产生的,要解决实际问题就必需建立数学模型,从此意义上讲数学建模和数学一样有古老历史。例如,欧几里德几何就是一个古老的数学模型,牛顿万有引力定律也是数学建模的一个光辉典范。今天,数学以空前的广度和深度向其它科学技术领域渗透,过去很少应用数学的领域现在迅速走向定量化,数量化,需建立大量的数学模型。特别是新技术、新工艺蓬勃兴起,计算机的普及和广泛应用,数学在许多高新技术上起着十
分关键的作用。因此数学建模被时代辅予更为重要的意义。        大学生数学建模竞赛自1985年由美国开始举办,竞赛以三名学生组成一个队,赛前有指导教师培训。赛题来源于实际问题。比赛时要求就选定的赛题每个队在连续三天的时间里写出论文,它包括:问题的适当阐述;合理的假设;模型的分析、建立、求解、验证;结果的分析;模型优缺点讨论等。数学建模竞赛宗旨是鼓励大学师生对范围并不固定的各种实际问题予以阐明、分析并提出解法,通过这样一种方式鼓励师生积极参与并强调实现完整的模型构造的过程。以竞赛的方式培养学生应用数学进行分析、推理、证明和计算的能力;用数学语言表达实际问题及用普通人能理解的语言表达数学结果的能力;应用计算机及相应数学软
件的能力;独立查找文献,自学的能力,组织、协调、管理的能力;创造力、想象力、联想力和洞察力。他还可以培养学生不怕吃苦、敢于战胜困难的坚强意志,培养自律、团结的优秀品质,培养正确的数学观。这项赛事自诞生起就引起了越来越多的关注,逐渐有其他国家的高校参加。我国自1989年起陆续有高校参加美国大学生数学建模竞赛。1992年起我国开始举办自己的大学生数学建模竞赛,并成为......

阅读全文(4534) | 评论:1

C语言经典100例(二) <转>(2006-01-21 13:51:00)

摘要:   <适合初学者> 【文章正文】
 【程序50】
题目:#include 的应用练习   
1.程序分析:
2.程序源代码:
test.h 文件如下:
#define LAG >
#define SMA <
#define EQ ==
#include "test.h" /*一个新文件50.c,包含test.h*/
#include "stdio.h"
void main()
{ int i=10;
int j=20;
if(i LAG j)
printf("\40: %d larger than %d \n",i,j);
else if(i EQ j)
printf("\40: %d equal to %d \n",i,j);
else if(i SMA j)
printf("\40:%d smaller than %d \n",i,j);
else
printf("\40: No such value.\n");
} 【程序51】
题目:学习使用按位与 & 。   
1.程序分析:0&0=0; 0&1=0; 1&0=0; 1&1=1
2.程序源代码:
#include "stdio.h"
main()
{
int a,b;
a=077;
b=a&3;
printf("\40: The a & b(decimal) is %d \n",b);
b&=7;
printf("\40: The a & b(decimal) is %d \n",b);
}
==============================================================
【程序52】
题目:学习使用按位或 | 。
1.程序分析:0|0=0; 0|1=1; 1|0=1; 1|1=1            
2.程序源代码:
#include "stdi......

阅读全文(3314) | 评论:1

C语言经典100例(一) <转>(2006-01-21 13:33:00)

摘要: C语言经典100例 <适合初学者> 【文章摘要        【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。 2.程序源代码:main(){int i,j,k;printf("\n");for(i=1;ifor(j=1;jfor (k=1;k{if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不…… 【文章正文】
【程序1】
题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去
      掉不满足条件的排列。
2.程序源代码:
main()
{
int i,j,k;
printf("\n");
for(i=1;i<5;i++)    /*以下为三重循环*/
 for(j=1;j<5;j++) 
  for (k=1;k<5;k++)
   {
    if (i!=k&&i!=j&&j!=k)    /*确保i、j、k三位互不相同*/
    printf("%d,%d,%d\n",i,j,k);
   }
}
==============================================================
【程序2】
题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高
   于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提
   成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于
   40万元的部......

阅读全文(3427) | 评论:0

纠正编程学习的错误心态!  <转>(2006-01-20 23:23:00)

摘要:     我始终认为,对一个初学者来说,IT界的技术风潮是不可以追赶的,而且也没有能力去追赶。我时常看见自己的DDMM们把课本扔了,去卖些价格不菲的诸如C#, VB.Net这样的大部头,这让我感到非常痛心。而许多搞不清指针是咋回事的BBS站友眉飞色舞的讨论C#里面可以不用指针等等则让我觉得好笑。C#就象当年的ASP一样,“忽如一夜春风来,千树万树梨花开”,结果许多学校的信息学院成了“Web学院”。96,97级的不少大学生都去做Web了。当然我没有任何歧视某一行业的意识。我只是觉得如果他们把追赶这些时髦技术的时间多花一点在基础的课程上应该是可以走得更远的。

  几个误区

  初学者对C#风潮的追赶其实也只是学习过程中经常遇到的几个误区之一。我将用一些实际的例子来说明这些现象,你可以按部就班的看看自己是不是属于其中的一种或者几种:

  认为计算机技术等于编程技术: 

  有些人即使没有这个想法,在潜意识中也有这样的冲动。让我奇怪的是,许多信息学院的学生也有这样的念头。认为计算机专业就是编程专业,与编程无关的,或者不太相关的课程他统统都不管,极端的学生只要书上没带“编程”两个字他就不看。

  其实编程只是计算机技术应用过程中一种复杂性最低的劳动,这就是为什么IT业最底层的人是程序员(CODER)。计算机技术包括了多媒体,计算机网络,人工智能,模式识别,管理信息系统等等这些方面。编程工作只是在这些具体技术在理论研究或者工程实践的过程中表达算法的过程。编程的人不一定对计算机技术的了解就一定很高。而一个有趣的现象是,不少大师级的计算机技术研究者是不懂编程的。网上的炒作和现实中良好的工作待遇把编程这种劳动神秘化了。其实每一个程序员心里都明白,自己这些东西,学的时候并不比其它专业难,所以自然也不会高档到哪里去。

  咬文嚼字的孔已己作风: 

  我见过一本女生的《计算机网络原理》教材,这个女生象小学生一样在书上划满了横杠杠,笔记做得满满的,打印出来一定比教材还厚。我不明白的是,象计算机网络原理这样的课程有必要做笔记?我们的应试教育的确害了不少学生,在上《原理》这一类课程的时候许多学生象学《马列原理》一样......

阅读全文(2199) | 评论:0