04春外语作业五


以你作业四中的教案为脚本,制作出课件,并以附件形式发到我的邮箱: lixuezhu2004@163.com

 

发布于2006年03月30日 16:00 | 评论数(0) 阅读数(3965) 我的文章

04春外语作业 四


以中学生为教学对象,自己选择一篇课文,设计一份教案.

发布于2006年03月30日 15:58 | 评论数(7) 阅读数(3946) 我的文章

04春外语作业 三


注册自己的blog,写出你的blog的域名.

发布于2006年03月30日 15:53 | 评论数(57) 阅读数(4079) 我的文章

给学习计算机的学生一点参考


http://www.examda.com/soft/Instructs/

一些计算机方面的资格认证

发布于2006年03月08日 17:33 | 评论数(1) 阅读数(3987) 我的文章

新手(必看)怎样学习c语言?


借此希望对初学者有点帮助:

一、分号,大括号

分号。分号是表达式结束的标志,一般表达式后面都要有。 写“;”的时候一定要注意:是否要结束前面的语句 。注意:if,switch,for,while语句,数据类型定义,函数定义。

if(a>b) /*if语句,没有分号*/

{...}

while(i+=10,i!=100); /*while语句循环体为空,依靠逗号语句实现循环*/

struct a /*结构体数据定义,没有分号*/

{...}b; /*结构体变量,要有分号*/

int sum(...) /*函数定义,没有分号*/

{....}

大括号。大括号是一个语句段的标志。 写大括号时最好一次写一对,然后把光标移到大括号里写 。避免遗漏。

二、运算符号

“=”与“==”

“=”用于赋值,注意“=”左边必须是变量,右边可以是常量也可以是变量。“==”用于判断两个量的大小,左右两边可以是常量也可以是变量( 尽量把常量写在左边,这样“==”误写成“=”时编译器就会报错 )。 运算表达式有它本身的值 。“=”语句值为“=”右边的量的大小;“==”语句值为判断结果,无外乎两种,0(表示“==”两边不等)1(“==”两边相等)。

(i=1)==(3==4); /*i值为1,整个表达式值为0*/

“,”
逗号语句是从左到右计算,整个逗号语句的值为最后一个语句的值
i=(j=2,j+8,j++); /*先计算j=2,值为2,j+8不是运算表达式,跳过,计算j++得到整个括号内的值3*/

“/”

“/”两边都是整型变量的时候结果也是整型,而且结果遵循向0靠拢的原则 。

运算符的优先级及结合方向

不多说了,表格一定要背牢。

三、变量

命名

不要吝惜,能说明白性质尽量在变量的名字上说明。 避免老是使用一个字母,或者难以理解的变量名 。对于较长的变量命名可以使用宏定义、类型定义。

#deine UP 0x4800 /*键码的宏定义*/

typedef struct

{....}MEM; /*结构体变量的类型定义*/

类型

注意变量的使用范围。 当不确定变量的范围的时候尽量选用值域宽的类型。双目运算符两边的变量一般类型要一致。不一致的时候需要使用类型转换 。

 

1、多看代码

在有一定基础以后一定要多看别人的代码。 注意代码中的算法和数据结构。 毕竟学C之后的关口就是算法和数据结构。提到数据结构,指针是其中重要的一环,绝大多数的数据结构是建立在指针之上的,如链表、队列、树、图等等,所以只有学好指针才能真正学好C。别的方面也要关注一下,诸如变量的命名、库函数的用法等等。有些库函数是经常用到的。对于这些函数的用法就要牢牢记住。

2、要自己动手

编程序是个实干的活,光说不练不行。刚开始学的时候可以多练习书上的习题。 对于自己不明白的地方,自己编个小程序实验一下是最好的方法,能给自己留下深刻的印象。 自己动手的过程中要不断纠正自己不好的编程习惯和认识错误。有一定的基础以后可以尝试编一点小游戏,文曲星之类的电子词典上小游戏很多,照着编作为练习。基础很扎实的时候,可以编一些关于数据结构方面的东西,诸如最经典的学生管理系统。之后.....学汇编、硬件知识。

3、选择一个好的编译器

英文版Turbo C v2.0没话说,最经典的C编译器(下载地址: http://www4.skycn.com/soft/2151.html ),其次推荐一个win-tc 1.91,支持windows下的编译器。(下载地址: http://www4.skycn.com/soft/17869.html )

4、关于养成良好的编程习惯

基本上每本C教材上都要提到。作为新手这条一定要时时遵守。具体方面:

(1) 在比较复杂的代码后面要有注释。 如果光溜溜一堆代码,别人就不可能看懂你的代码,而且也不利于查找错误。除非你一直编东西给自己看。能在代码里说明白的就一定要在代码里体现。比如变量名、函数名,在命名的时候尽量说明是干什么用的。

(2)注意语句的嵌套不能过长,一般来说,一段代码里Tab要少于8个。 简单说就是语句最多8个嵌套。 对于新手来说,这个标准还要下降。有一个好习惯是,把主函数尽量写简短。经常看到别人的代码是主函数只有几行,几个函数调用,而定义全在主函数外部。这样一是减少了主函数内部的嵌套,二是比较精简,容易读懂。

(3)注意语句的选择。并不是分支语句就用if循环就用while、for。在适当的情况下switch和do while语句也是要用的。在某些时候,switch语句比if语句更加精练明了,而do while比while少一个循环。

发布于2006年02月24日 22:50 | 评论数(15) 阅读数(7888) 我的文章

注意


要找相关内容的话,请注意左边的分类.

发布于2006年02月23日 18:47 | 评论数(6) 阅读数(3641) 我的文章

《计算机文化基础》练习题


    

 () 基本知识部分

 

1)硬盘工作时应特别注意避免

     A)噪声       B震动       C)潮湿       D)日光

2)针式打印机术语中,24针是指

      A24x24点阵                    B)信号线插头有24

      C)打印头内有24x24根针          D打印头内有24根针

3)下面列出的四种存储器中,易失性存储器是

     ARAM        BROM      CPROM        DCD—ROM

4)办公自动化是计算机的一项应用,按计算机应用的分类,它属于

     A)科学计算     B)实时控制    C数据处理       D)辅助设计

5I/O接口位于

      A总线和设备之间         BCPUI/O设备之间

      C)主机和总线之间         DCPU和主存储器之间

6)计算机硬件能直接识别和执行的只有

     A)高级语言      B)符号语言    C)汇编语言    D机器语言

7)微机中1K字节表示的二进制位数是

     A1000       B8x1000     C1024            D8x1024

 (8)下列字符中,ASCII码值最小的是

      Aa       BA           Cx           DY

 (9)计算机中,一个浮点数由两部分组成,它们是

      A阶码和尾数     B)基数和尾数      C)阶码和基数    D)整数和小数

(10)存储40024x24点阵汉字字形所需的存储容量是

       A255KB     B75KB      C37.5KB           D28.125KB

(11)下面是关于解释程序和编译程序的论述,其中正确的一条是

      A)编译程序和解释程序均能产生目标程序

      B)编译程序和解释程序均不能产生目标程序

      C编译程序能产生目标程序而解释程序则不能

      D)编译程序不能产生目标程序而解释程序能

(12)下面是与地址有关的四条论述,其中有错的一条是

      A)地址寄存器是用来存储地址的寄存器

      B)地址码是指令中给出源操作数地址或运算结果的目的地址的有关信息部分

      C地址总线上既可传送地址信息,也可传送控制信息和其他信息

      D)地址总线上除传送地址信息外,不可以用于传输控制信息和其它信息

(13)下列四个不同数制表示的数中,数值最大的是

       A二进制数11011101          B)八进制数334

       C)十进制数219               D)十六进制数DA

(14) 下列设备中,既能向主机输入数据又能接收由主机输出数据的是

     A) CD-ROM      B) 显示器       C) 软磁盘驱动器     D) 光笔

(15) 在计算机领域中,通常用英文单词“BYTE”来表示

     A)           B) 字长         C) 二进制位         D) 字节

(16) 某工厂的仓库管理软件属于

     A) 应用软件    B) 系统软件     C) 工具软件         D) 字处理软件

(17) 微型计算机的主机包括

     A) 运算器和显示器                 B) CPU 和内存储器

     C) CPU UPS                    D) UPS 和内存储器

(18) 下面四条常用术语的叙述中,有错误的一条是

     A) 光标是显示屏上指示位置的标志

     B) 汇编语言是一种面向机器的低级程序设计语言,用汇编语言编写的源程序

        计算机能直接执行

     C) 总线是计算机系统中各部件之间传输信息的公共通路

     D) 读写磁头是既能从磁表面存储器读出信息又能把信息写入磁表面存储器的

        装置

(19) 下列四个无符号十进制整数中,能用八个二进制位表示的是

     A) 257        B) 201              C) 313           D) 296

(20) 在计算机应用中,“计算机辅助设计”的英文缩写为

     A) CAD        B) CAM               C) CAE           D) CAT

(21) CPU中有一个程序计数器(又称指令计数器),它用于存放

     A) 正在执行的指令的内容

     B) 下一条要执行的指令的内容

     C) 正在执行的指令的内存地址

     D) 下一条要执行的指令的内存地址

(22) 与十六进制数值CD等值的十进制数是

     A) 204          B) 205          C) 206            D) 203

(23) 执行下列二进制逻辑乘运算(即逻辑与运算) 01011001^10100111其运算结果是:

     A) 00000000     B) 11111111     C) 00000001       D) 11111110

(24) 执行下列二进制算术加运算11001001+00100111其运算结果是:

     A) 11101111     B) 11110000     C) 00000001       D) 10100010

(25) 在微型计算机内存储器中,不能用指令修改其存储内容的部分是

     A) RAM          B) DRAM         C) ROM            D) SRAM

(26) 下列四条叙述中,正确的一条是

     A) 假若CPU向外输出20位地址,则它能直接访问的存储空间可达1MB

     B) PC机在使用过程中突然断电,SRAM中存储的信息不会丢失

     C) PC机在使用过程中突然断电,DRAM中存储的信息不会丢失

     D) 外存储器中的信息可以直接被CPU处理

(27) 为解决某一特定问题而设计的指令序列称为

    A) 文档    B) 语言       C) 程序       D) 系统

(28) 微型计算机存储系统中,PROM

    A) 可读写存储器              B) 动态随机存取存储器

    C) 只读存储器                D) 可编程只读存储器

(29) 下列几种存储器中,存取周期最短的是

    A) 内存储器        B) 光盘存储器     C) 硬盘存储器     D) 软件盘存储器

(30) 微型计算机键盘上的Shift键称为

    A) 回车换行键      B) 退格键       C) 换档键       D) 空格键

(31) 计算机能直接识别和执行的语言是

    A) 机器语言      B) 高级语言       C) 汇编语言       D) 数据库语言

(32) 与十进制数254等值的二进制数是

    A) 11111110      B) 11101111       C) 11111011       D) 11101110

(33) 在计算机领域中通常用MIPS来描述

     A) 计算机的运算速度           B) 计算机的可靠性

     C) 计算机的可运行性           D) 计算机的可扩充性

(34) WPSWord等字处理软件属于

    A) 管理软件      B) 网络软件       C) 应用软件      D) 系统软件

(35) 计算机最主要的工作特点是

     A) 存储程序与自动控制           B) 高速度与高精度

     C) 可靠性与可用性               D) 有记忆能力

(36) 16×16点阵存放国标GB2312-80中一级汉字(3755)的汉字库,大约需占存储空间

     A) 1MB       B) 512KB         C) 256KB        D) 128KB

(37) 若在一个非零无符号二进制整数右边加两个零形成一个新的数,则新数的值是原数值的

    A) 四倍       B) 二倍       C) 四分之一       D) 二分之一

(38) 下列四条叙述中,正确的一条是

A) 字节通常用英文单词“bit”来表示

B) 目前广泛使用的Pentium机其字长为5个字节

C) 计算机存储器中将8个相邻的二进制位作为一个单位,这种单位称为字节

D) 微型计算机的字长并不一定是字节的倍数

(39) 一条计算机指令中规定其执行功能的部分称为

A) 源地址码        B) 操作码        C) 目标地址码      D) 数据码

(40) 在进位计数制中,当某一位的值达到某个固定量时,就要向高位产生进位。这个固定量就是该种进位计数制的

 A) 阶码       B) 尾数       C) 原码       D) 基数

(41) 下列四种设备中,属于计算机输入设备的是

 A) UPS         B) 服务器        C) 绘图仪        D) 鼠标器

(42) 静态RAM的点是

A) 在不断电的条件下,其中的信息保持不变,因而不必定期刷新

B) 在不断电的条件下,其中的信息不能长时间保持,因而必须定期刷新才不致丢失信息

C) 其中的信息只能读不能写

D) 其中的信息断电后也不会丢失

(43) Pentium /500微型计算机,其CPU的时钟频率是

A) 500KHZ       B) 500MHZ       C) 250KHZ        D) 250MHZ

(44) 在操作系统中,文件管理的主要功能是

A) 实现文件的虚拟存取             B) 实现文件的高速存取

C) 实现文件的按内容存取           D) 实现文件的按名存取

(45) 微型计算机中使用最普遍的字符编码是

A) EBCDIC       B) 国标码       C) BCD        D) ASCII

(46) 能把汇编语言源程序翻译成目标程序的程序 ,称为

A) 编译程序        B) 解释程序      C) 编辑程序       D) 汇编程序

(47) 微型计算机中的内存储器,通常采用

A) 光存储器      B) 磁表面存储器    C) 半导体存储器    D) 磁芯存储器

(48) 微型计算机键盘上的Tab键是

A) 退格键       B) 控制键      C) 交替换档键       D) 制表定位键

(49) 下列四种软件中,属于系统软件的是

A) WPS         B) Word         C) DOS        D) Excel

(50) “计算机辅助制造”的常用英文缩写是

A) CAD       B) CAI         C) CAT         D) CAM

(51) 微型计算机中,运算器、控制器和内存储器的总称是:

  (A)主机  (B)MPU  (C)CPU  (D)ALU

(52) 微型计算机,ROM是:

  (A)顺序存储器  (B)只读存储器  (C)随机存储器  (D)高速缓冲存储器

(53) 下列设备中,只能作输出设备的是:

  (A)磁盘存储器  (B)键盘  (C)鼠标器  (D)打印机

(54) 微型计算机中存储数据的最小单位是:

  (A)字节  (B)字  (C)位  (D)KB

(55) 微型计算机中,IO设备的含义是:

  (A)输入设备  (B)输出设备  (C)输入输出设备  (D)控制设备

(56) 数字字符“1”ASCII码的十进制表示为49,那么数字字符“8”ASCII码的十进制表示为:

   (A)56  (B)58  (C)60  (D)54

(57) 微型计算机的显示器显示西文字符时,一般情况下一屏最多可显示:

   (A)25行,每行80个字符  (B)25行,每行60个字符

   (C)20行,每行80个字符  (D)20行,每行60个字符

(58) 由高级语言编写的源程序要转换成计算机能直接执行的目标程序,必须经过:

   (A)编辑  (B)编译  (C)汇编  (D)解释

(59) 微型计算机中使用的数据库属于

  (A)科学计算方面的计算机应用  (B)过程控制方面的计算机应用

  (C)数据处理方面的计算机应用  (D)辅助设计方面的计算机应用

(60) 微型计算机中使用的鼠标器是连接在

  (A)打印机接口上的  (B)显示器接口上的

  (C)并行接口上的    (D)串行接口上的

发布于2006年02月23日 18:46 | 评论数(5) 阅读数(6467) 我的文章

经典c程序


 

【程序1

题目:1234个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

1.程序分析:可填在百位、十位、个位的数字都是1234。组成所有的排列后再去

      掉不满足条件的排列。

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)    /*确保ijk三位互不相同*/

    printf("%d,%d,%d\n",i,j,k);   

   }

}

 

【程序2

题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

 1.程序分析:10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。请看具体分析:

 2.程序源代码:

#include "math.h"
main()
{
long int i,x,y,z;
for (i=1;i<100000;i++)
 { x=sqrt(i+100);   /*x为加上100后开方后的结果*/
  y=sqrt(i+268);   /*y为再加上168后开方后的结果*/
   if(x*x==i+100&&y*y==i+268)/*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/
    printf("\n%ld\n",i);
 }
}
==============================================================
【程序3

题目:输入某年某月某日,判断这一天是这一年的第几天?

1.程序分析:35日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。

2.程序源代码:

main()
{
int day,month,year,sum,leap;
printf("\nplease input year,month,day\n");
scanf("%d,%d,%d",&year,&month,&day);
switch(month)/*
先计算某月以前月份的总天数*/
{
 case 1:sum=0;break;
 case 2:sum=31;break;
 case 3:sum=59;break;
 case 4:sum=90;break;
 case 5:sum=120;break;
 case 6:sum=151;break;
 case 7:sum=181;break;
 case 8:sum=212;break;
 case 9:sum=243;break;
 case 10:sum=273;break;
 case 11:sum=304;break;
 case 12:sum=334;break;
 default:printf("data error");break;
}
sum=sum+day;
 /*再加上某天的天数*/
 if(year%400==0||(year%4==0&&year%100!=0))/*判断是不是闰年*/
  leap=1;
 else
  leap=0;
if(leap==1&&month>2)/*
如果是闰年且月份大于2,总天数应该加一天*/
sum++;
printf("It is the %dth day.",sum);}
==============================================================
【程序4

题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5

程序分析:n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:

(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。

(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n, 重复执行第一步。
(3)
如果n不能被k整除,则用k+1作为k的值,重复执行第一步。

2.程序源代码:

 /* zheng int is divided yinshu*/
main()
{
int n,i;
printf("\nplease input a number:\n");
scanf("%d",&n);
printf("%d=",n);
for(i=2;i<=n;i++)
 {
  while(n!=i)
  {
   if(n%i==0)
   { printf("%d*",i);
    n=n/i;
   }
   else
    break;
  }
}
printf("%d",n);}

==============================================================

【程序5

题目:打印出如下图案(菱形)

*

***

******

********

******

***

*

1.程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重

for循环,第一层控制行,第二层控制列。

2.程序源代码:

main()

{

int i,j,k;

for(i=0;i<=3;i++)

 {

 for(j=0;j<=2-i;j++)

  printf(" ");

 for(k=0;k<=2*i;k++)

  printf("*");

 printf("\n");

 }

for(i=0;i<=2;i++)

 {

 for(j=0;j<=i;j++)

  printf(" ");

 for(k=0;k<=4-2*i;k++)

  printf("*");

 printf("\n");

 }

}

==============================================================
【程序6

题目:有一分数序列:2/13/25/38/513/821/13...求出这个数列的前20项之和。

1.程序分析:请抓住分子与分母的变化规律。

2.程序源代码:

main()

{

int n,t,number=20;

float a=2,b=1,s=0;

for(n=1;n<=number;n++)

 {

 s=s+a/b;

 t=a;a=a+b;b=t;/*这部分是程序的关键,请读者猜猜t的作用*/

 }

printf("sum is %9.6f\n",s);

}

==============================================================

【程序7

题目:利用递归方法求5!

1.程序分析:递归公式:fn=fn_1*4!

2.程序源代码:

#include "stdio.h"

main()

{

int i;

int fact();

for(i=0;i<5;i++)

 printf("\40:%d!=%d\n",i,fact(i));

}

int fact(j)

int j;

{

int sum;

if(j==0)

 sum=1;

else

 sum=j*fact(j-1);

return sum;

}

==============================================================

【程序8

题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。

1.程序分析:

2.程序源代码:

#include "stdio.h"

main()

{

int i=5;

void palin(int n);

printf("\40:");

palin(i);

printf("\n");

}

void palin(n)

int n;

{

char next;

if(n<=1)

 {

 next=getchar();

 printf("\n\0:");

 putchar(next);

 }

else

 {

 next=getchar();

 palin(n-1);

 putchar(next);

 }

}

==============================================================

【程序9

题目:5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后 问第一个人,他说是10岁。请问第五个人多大?

1.程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道

      第四人的岁数,依次类推,推到第一人(10岁),再往回推。

2.程序源代码:

age(n)

int n;

{

int c;

if(n==1) c=10;

else c=age(n-1)+2;

return(c);

}

main()

{ printf("%d",age(5));

}

==============================================================

【程序10

题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

1. 程序分析:学会分解出每一位数,如下解释:(这里是一种简单的算法,师专数002班赵鑫提供)

2.程序源代码:

main( )

{

long a,b,c,d,e,x;

scanf("%ld",&x);

a=x/10000;/*分解出万位*/

b=x%10000/1000;/*分解出千位*/

c=x%1000/100;/*分解出百位*/

d=x%100/10;/*分解出十位*/

e=x%10;/*分解出个位*/

if (a!=0) printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a);

else if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b);

  else if (c!=0) printf(" there are 3,%ld %ld %ld\n",e,d,c);

    else if (d!=0) printf("there are 2, %ld %ld\n",e,d);

      else if (e!=0) printf(" there are 1,%ld\n",e);

}

==============================================================

【程序11

题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。   

1.程序分析:

2.程序源代码:

main( )

{

long ge,shi,qian,wan,x;

scanf("%ld",&x);

wan=x/10000;

qian=x%10000/1000;

shi=x%100/10;

ge=x%10;

if (ge==wan&&shi==qian)/*个位等于万位并且十位等于千位*/

 printf("this number is a huiwen\n");

else

 printf("this number is not a huiwen\n");

}

==============================================================

【程序12

题目:求一个3*3矩阵对角线元素之和

1.程序分析:利用双重for循环控制输入二维数组,再将a[i][i]累加后输出。

2.程序源代码:

main()

{

float a[3][3],sum=0;

int i,j;

printf("please input rectangle element:\n");

for(i=0;i<3;i++)

 for(j=0;j<3;j++)

 scanf("%f",&a[i][j]);

for(i=0;i<3;i++)

 sum=sum+a[i][i];

printf("duijiaoxian he is %6.2f",sum);

}

==============================================================

【程序13

题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。

1. 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后

        此元素之后的数,依次后移一个位置。

2.程序源代码:

main()

{

int a[11]={1,4,6,9,13,16,19,28,40,100};

int temp1,temp2,number,end,i,j;

printf("original array is:\n");

for(i=0;i<10;i++)

 printf("%5d",a[i]);

printf("\n");

printf("insert a new number:");

scanf("%d",&number);

end=a[9];

if(number>end)

 a[10]=number;

else

 {for(i=0;i<10;i++)

  { if(a[i]>number)

   {temp1=a[i];

    a[i]=number;

   for(j=i+1;j<11;j++)

   {temp2=a[j];

    a[j]=temp1;

    temp1=temp2;

   }

   break;

   }

  }

}

for(i=0;i<11;i++)

 printf("%6d",a[i]);

}

==============================================================

【程序14

题目:n个人围成一圈,顺序排号。从第一个人开始报数(从13报数),凡报到3的人退出

   圈子,问最后留下的是原来第几号的那位。

1. 程序分析:

2.程序源代码:

#define nmax 50

main()

{

int i,k,m,n,num[nmax],*p;

printf("please input the total of numbers:");

scanf("%d",&n);

p=num;

for(i=0;i<n;i++)

 *(p+i)=i+1;

 i=0;

 k=0;

 m=0;

 while(m<n-1)

 {

 if(*(p+i)!=0) k++;

 if(k==3)

 { *(p+i)=0;

 k=0;

 m++;

 }

i++;

if(i==n) i=0;

}

while(*p==0) p++;

printf("%d is left\n",*p);

}

==============================================================

【程序15

题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n(利用指针函数)

1.程序分析:

2.程序源代码:

main()

#include "stdio.h"

main()

{

float peven(),podd(),dcall();

float sum;

int n;

while (1)

{

 scanf("%d",&n);

 if(n>1)

  break;

}

if(n%2==0)

{

 printf("Even=");

 sum=dcall(peven,n);

}

else

{

 printf("Odd=");

 sum=dcall(podd,n);

}

printf("%f",sum);

}

float peven(int n)

{

float s;

int i;

s=1;

for(i=2;i<=n;i+=2)

 s+=1/(float)i;

return(s);

}

float podd(n)

int n;

{

float s;

int i;

s=0;

for(i=1;i<=n;i+=2)

 s+=1/(float)i;

return(s);

}

float dcall(fp,n)

float (*fp)();

int n;

{

float s;

s=(*fp)(n);

return(s);

}

==============================================================

【程序16

题目:字符串排序。

1.程序分析:

2.程序源代码:

main()

{

char *str1[20],*str2[20],*str3[20];

char swap();

printf("please input three strings\n");

scanf("%s",str1);

scanf("%s",str2);

scanf("%s",str3);

if(strcmp(str1,str2)>0) swap(str1,str2);

if(strcmp(str1,str3)>0) swap(str1,str3);

if(strcmp(str2,str3)>0) swap(str2,str3);

printf("after being sorted\n");

printf("%s\n%s\n%s\n",str1,str2,str3);

}

char swap(p1,p2)

char *p1,*p2;

{

char *p[20];

strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p);

}

==============================================================

【程序17

题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了   一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?

1.程序分析:

2.程序源代码:

main()

{int i,m,j,k,count;

for(i=4;i<10000;i+=4)

{ count=0;

m=i;

for(k=0;k<5;k++)

{

 j=i/4*5+1;

 i=j;

 if(j%4==0)

  count++;

 else

  break;

}

 i=m;

 if(count==4)

 {printf("%d\n",count);

  break;}

}

}

==============================================================

【程序18

题目:809*??=800*??+9*??+1 其中??代表的两位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果。

1.程序分析:

2.程序源代码:

output(long b,long i)

{ printf("\n%ld/%ld=809*%ld+%ld",b,i,i,b%i);

}

main()

{long int a,b,i;

a=809;

for(i=10;i<100;i++)

{b=i*a+1;

if(b>=1000&&b<=10000&&8*i<100&&9*i>=100)

output(b,i); }

}

==============================================================

【程序19

题目:八进制转换为十进制

1.程序分析:

2.程序源代码:

main()

{ char *p,s[6];int n;

p=s;

gets(p);

n=0;

while(*(p)!='\0')

{n=n*8+*p-'0';

p++;}

printf("%d",n);

}

==============================================================

【程序20

题目:0-7所能组成的奇数个数。

1.程序分析:

2.程序源代码:

main()

{

long sum=4,s=4;

int j;

for(j=2;j<=8;j++)/*j is place of number*/

{ printf("\n%ld",sum);

if(j<=2)

s*=7;

else

s*=8;

sum+=s;}

printf("\nsum=%ld",sum);

}

==============================================================

【程序21

题目:一个偶数总能表示为两个素数之和。

1.程序分析:

2.程序源代码:

#include "stdio.h"

#include "math.h"

main()

{ int a,b,c,d;

scanf("%d",&a);

for(b=3;b<=a/2;b+=2)

{ for(c=2;c<=sqrt(b);c++)

if(b%c==0) break;

if(c>sqrt(b))

d=a-b;

else

break;

for(c=2;c<=sqrt(d);c++)

if(d%c==0) break;

if(c>sqrt(d))

printf("%d=%d+%d\n",a,b,d);

}

}

==============================================================

发布于2006年02月23日 18:43 | 评论数(0) 阅读数(3877) 我的文章


 

 朋友,是能背着你的悲伤行走的人.

一个老太太白发红衣,戴大花围巾,优雅得让人目瞪口呆。那一刻终于明白,没有不优雅的颜色,只有不优雅的人。

优雅是一种优秀,但不会优秀到让其他人有压力,是一种能够令人更镇定从容的气质

热爱生活的人才有灵魂,有灵魂的人才会热爱舞蹈

发布于2006年02月23日 18:34 | 评论数(0) 阅读数(3583) 我的文章


 省下一个浪漫的夜晚吧,人生还很长,你可能因此获得无数个愉快的工作天!

发布于2006年02月23日 18:26 | 评论数(2) 阅读数(3633) 我的文章

    1 2 3     尾页  页码:1/3


版权所有 © 2008 Ci123.com 育儿博客 向育儿网举报 网络110报警服务