C语言暑期实习 第一天

首先,感谢实验室还能上网。现附上实习的题目:(如下)

1.写一个函数factorial(n),求整数n的阶乘。

2.求1-3+5-7+9-11+13-......+65之和。

3.求水仙花数

    水仙花数:一个三位数,百、十、个位上的数字立方之和等于该数。

4.输出下列结果

a

ab

abc

abcd

abcde

abcdef

5.编写抽火柴的游戏:共有火柴21根,玩家和电脑轮流取火柴,每次限取1--4根。胜负判定规则:取最后一根火柴者输!

6.求2(1)+2(2)+2(3)+2(4)+......+2(9)之和。(其中2(n)指的是2的n次幂)

7.【扩展】Access文件的密码破译。

 

老师说他是个什么公司的什么经理,反正不记得了。

第一天C语言实习,基本上忘得差不多了,忽然来的实习做题,搞得什么都不会,第一道题写个求阶乘的算法,汗!!!

老师的程序,在变量使用上颇有讲究,按照他说的,主要是变量要有一定的意义。限于我也在编程,不能跟上老师的换题速度,只附上我的代码,那些标准的代码规范什么的,还是去看标准的吧,我先把功能实现了。。。。

第一题:

#include "stdio.h"
void factorial()
{
        int num;
        int result=1;
        printf("Input the number:");
       scanf("%d",&num);
       for(int i=1;i<num+1;i++)
  {
      result=result*i;
  }
      printf("%d的阶乘是:%d\n",num,result);
}

void main()
{
  factorial();
 }

 

结果:

 

第二题

程序:

#include "stdio.h"
void main()
{   
    int sum=0;
       bool flag=false;
       for(int num=1;num<=65;num+=2)
    {     
       if(flag=!flag)
    {
            sum+=num;
    }
          else
    {
            sum-=num;
    }  
    }  
    printf("%d\n",sum);
}

结果:

第三题

程序:

#include "stdio.h"
void main()
{
 for(int sum=100;sum<1000;sum++)
 {
   int na=sum/100;
   int nb=sum/10%10;
   int nc=sum%10;
   if(na*na*na+nb*nb*nb+nc*nc*nc==sum)
    printf("the number is:%d\n",sum);
 } 
}

结果:

第四题

#include"stdio.h"
void main()
{
  for(int nRow=0;nRow<6;nRow++)
  {
    for(int nCol=0;nCol<=nRow;nCol++)
 {
      printf("%c",'a'+nCol);
 }
 printf("\n");
  }
}

结果:

 

第六题

#include "stdio.h"

int main()
{
  int n,nResult=1,result=1;
  printf("请输入函数的(底数为2)指数(n):");
  scanf("%d",&n);
  for(int i=1;i<n+1;i++)
  {
    nResult*=2; 
  }
  result=2*(nResult-1);
  printf("2的%d幂的结果为:%d\n",n,result);
}

结果:

第七题

提示:分别建一个有密码的和没有密码的mdb文件。然后用ACCESS打开,找到16进制代码中,不一样的地方,就是密码的所在地,然后根据不一样的反推出密码,然后就,,,,,你还是自己来吧,这个我真心头晕!!!

附下代码:

#include "stdio.h"

void main()
{
 char *p = "d:\\db1.mdb";
 char chPwd;
 char arr[] = {0x0F,0xEC,0xD4,0x9c,0x4f,0x28,0x9a};
 FILE *fp = fopen(p,"r");
 if(fp==NULL)
 {
  return;
 }
 fseek(fp,0x42,0);
 for(int nIndex=0;nIndex<7;nIndex++)
 {
  fscanf(fp,"%c",&chPwd);
  if(chPwd==arr[nIndex])
  {
   break;
  }
  else
  {
   printf("%c",chPwd ^ arr[nIndex]);
   fseek(fp,1,SEEK_CUR);
  }
 }
 fclose(fp);
}

 

祝你好运,我是没有试过的!!!

 

《有些代码限于当时时间有限,未能及时做出来,后期才开始慢慢完成,如果有人完成,可以留言,你的学习经验体会,大家共享么,呵呵。。。。。。》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值