您的位置:首页 > 编程语言 > C语言/C++

C语言暑期实习 第一天

2012-07-08 11:17 417 查看
首先,感谢实验室还能上网。现附上实习的题目:(如下)

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);

}

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

《有些代码限于当时时间有限,未能及时做出来,后期才开始慢慢完成,如果有人完成,可以留言,你的学习经验体会,大家共享么,呵呵。。。。。。》
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: