技能培训报告rj.docx

上传人:b****4 文档编号:26847106 上传时间:2023-06-23 格式:DOCX 页数:15 大小:55.11KB
下载 相关 举报
技能培训报告rj.docx_第1页
第1页 / 共15页
技能培训报告rj.docx_第2页
第2页 / 共15页
技能培训报告rj.docx_第3页
第3页 / 共15页
技能培训报告rj.docx_第4页
第4页 / 共15页
技能培训报告rj.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

技能培训报告rj.docx

《技能培训报告rj.docx》由会员分享,可在线阅读,更多相关《技能培训报告rj.docx(15页珍藏版)》请在冰豆网上搜索。

技能培训报告rj.docx

技能培训报告rj

 

陕西国防工业职业技术学院

《技能培训》报告

专业:

软件技术

班级:

软件3101

姓名:

陈园园

学号:

13#

指导老师:

淡海英何杰惠

实训时间:

2011-2012

(1)第18周

实训地点:

单片机实验室

成绩:

 

二零一一年十二月

题目一

条件\序号

1

2

3

4

A>0

Y

Y

N

N

B>0

Y

N

Y

N

1、阅读以下说明和流程图,回答问题1至问题4,将解答填入答题纸的对应栏内。

【说明】

下面的流程图中有两个判断条件A>0和B>0。

这些判断条件的各种组合情况如下所示。

表中Y表示相应的条件成立,N表示相应的条件不成立。

每一列表示一种条件合,并在列首用相应的序号来表示。

 

 

【流程图】

 

【问题1】(4分)

  当遇到哪几种条件组合时,流程图能执行“1→i”?

(写出相应的序号即可)

【问题2】(4分)

   当遇到哪几种条件组合时,流程图能执行“2→j”?

(写出相应的序号即可)

【问题3】(6分)

   当遇到哪几种条件组合时,流程图能执行“3→k”?

(写出相应的序号即可)

【问题4】(1分)

   该流程图共有多少条实际执行路径?

2、程序清单

(1)A>0B>0A>0B<=0

(2)A>0B<=0A<=0B<=0

(3)A>0B>0A<=0B>0A<=0B<=0

3、运行结果(截图)

(1)12

(2)24

(3)134

(4)4条

题目二

1、阅读以下说明和C函数,将应填入(n)处的语句或语句成分写在答题纸的对应栏内。

【说明1】

   函数deldigit(char*s)的功能是将字符串s中的数字字符去掉,使剩余字符按原次序构成一个新串,并保存在原串空间中。

其思路是:

先申请一个与s等长的临时字符串空间并令t指向它,将非数字字符按次序暂存入该空间,最后再拷贝给s。

【C函数】

voiddeldigit(char*s)

 char*t=(char*)malloc(

(1)):

/*申请串空间*/

 inti,k=0;

 if(!

t)return;

 for(i=0:

i<strlen(s);i++)

     if(!

(*(s+i)>=‘0’&&*(s+i)<=‘9’)){

           t[k++]=

(2);

     }

   (3)=‘\0’             /*设置串结束标志*/

 strcpy(s,t);

 free(t);

【说明2】

   函数reverse(char*s,intlen)的功能是用递归方式逆置长度为len的字符串s。

例如,若串s的内容为“abcd”,则逆置后其内容变为“deba”。

【C函数】

voidreverse(char*s,intlen)

 charch;

 if((4))

 {

   ch=*s;

   *s=*(s+len-1);

   *(s+len-1)=ch;

   reverse((5));

 }

2、程序清单:

说明1:

voiddeldigit(char*s)

 char*t=(char*)malloc(strlen(s)+1);/*申请串空间,strlen(s)+1是申请空间大小*/

 inti,k=0;

 if(!

t)return;

 for(i=0:

i<strlen(s);i++)

     if(!

(*(s+i)>=‘0’&&*(s+i)<=‘9’))/*判断s[i]是否为数字*/

{

           t[k++]=s[i];/*如果s[i]是不是数字则将其传给t[k]并且k++指向下一位*/

     }

   t[k]=‘\0’             /*设置串结束标志*/

 strcpy(s,t);/*将t中现有的元素拷贝给s,s中存放的是没有数字的元素*/

 free(t);/*释放t空间*/

main(){

charw[10];

scanf("%s",&w);

deldigit(&w);

printf("%s",w);

}

说明2:

#include"stdio.h"

voidreverse(char*s,intlen)

{

charch;

if(len>1)/*字符串的长度>1*/

{

ch=*s;

*s=*(s+len-1);

*(s+len-1)=ch;

reverse(s+1,len-2);/*递归调用依次调换*/

}

}

main(){

chara[20];

//ints;

//s=strlen(a);

scanf("%s",&a);

reverse(&a,strlen(a));

printf("%s",a);

}

3、运行结果(截图)

说明1:

说明2:

题目三

1、阅读以下说明和C代码,回答问题1和问题2,将解答写在答题纸的对应栏内。

【说明1】

  下面代码的设计意图是:

将保存在文本文件data.txt中的一系列整数(不超过100个)读取出来存入数组arr[],然后调用函数sort()对数组arr的元素进行排序,最后在显示屏输出数组arr的内容。

【C代码】

【问题1】(9分)

   以上C代码中有三处错误(省略部分的代码除外),请指出这些错误所在的代码行号,并在不增加和删除代码行的情况下进行修改,写出修改正确后的完整代码行。

 

【说明2】

  下面是用C语言书写的函数get_str的两种定义方式以及两种调用方式。

行号

代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

#include

voidsort(inta[],intn)

{/*对n个元素的整型数组a按递增方式排列*/

/*

此处代码省略

*/

return;

}

intmain()

{

inti,num=0;

intarr[100];

FILEfp;

fp=fopen("data.txt","r");

if(!

fp)

return-1;

while(!

feof(fp)){

fscanf(fp,"%d",arr[num++]);

}

sort(arr[],num);

for(i=0;i

fprintf(stdout,"%d",arr[i++]);

fclose(fp);

return0;

定义方式1

定义方式2

voidget_str(char*p)

{

p=(char*)malloc(1+sizeof("testing"));

strcpy(p,"testing");

}

voidget_str(char**p)

{

*p=(char*)malloc(1+sizeof("testing"));

strcpy(*p,"testing");

}

调用方式1

调用方式2

intmain()

{

char*ptr=NULL;

get_str(ptr);

if(ptr)

printf("%s\n",ptr);

else

printf("%p\n",ptr);/*输出指针的值*/

return0;

}

intmain()

{

char*ptr=NULL;

get_str(&ptr);

if(ptr)

printf("%s\n",ptr);

else

printf("%p\n",ptr);

return0;

}

【问题2】(6分)

  若分别采用函数定义方式1、2和调用方式1、2,请分析程序的运行情况,填充下面的空

(1)~(3)。

   若采用定义方式1和调用方式1,则输出为“00000000”。

   若采用定义方式1和调用方式2,则

(1)。

   若采用定义方式2和调用方式1,则

(2)。

若采用定义方式2和调用方式2,则(3)。

2、程序清单(要求有主要注释说明)

3、运行结果(截图)

题目四

1、阅读以下说明和C函数,将应填入(n)处的语句或语句成分写在答题纸的对应栏内。

【说明】

己知单链表L含有头结点,且结点中的元素值以递增的方式排列。

下面的函数DeleteList在L中查找所有值大于minK且小于maxK的元素,若找到,则逐个删除,同时释放被删结点的空间。

若链表中不存在满足条件的元素,则返回-1,否则返回O。

   例如,某单链表如图4-1所示。

若令minK为20,maxK为50,则删除后的链表如图4-2所示。

 

图4-1

图4-2

链表结点类型定义如下:

  typedefstructNode{

           intdata;

           structNode*next;

     }Node,*LinkList;

【C函数】

   intDeleteList(LinkListL,intminx,intmaxK)

   {/*在含头结点的单链表L中删除大于minx且小于maxK的元素*/

         

(1)*q=L,*p=L->next;/*p指向第一个元素结点*/

       intdelTag=0;

       while(p)

           if(p->data<=minK)

               {q=P;p=

(2);}

               else

               if(p->data<maxK){/*找到删除满足条件的结点*/

                   q->next=(3)free(p);

                   p=(4);delTag=1;

                 }

                 elsebreak;

       if((5))return-1;

         return0;

2、程序清单(要求有主要注释说明)

typedefstructNode{

           intdata;

           structNode*next;

     }Node,*LinkList;

   intDeleteList(LinkListL,intminx,intmaxK)

   {/*在含头结点的单链表L中删除大于minx且小于maxK的元素*/

         Node*q=L,*p=L->next;/*p指向第一个元素结点*/

       intdelTag=0;

       while(p)

           if(p->data<=minK)

               {q=P;p=p->next;}

               else

               if(p->data<maxK){/*找到删除满足条件的结点*/

                   q->next=p->nextfree(p);

                   p=q->next;delTag=1;

                 }

                 elsebreak;

       if(delTag!

=1)return-1;

         return0;

3、运行结果(截图)

题目五

1、阅读以下说明和Java代码,将应填入(n)处的语句或语句成分写在答题纸的对应栏内。

【说明】

   某数据文件students.txt的内容为100名学生的学号和成绩,下面的程序将文件中的数据全部读入对象数组,按分数从高到低进行排序后选出排名前30%的学生。

【Java代码】

importjava.io.*;

classStudent{

   privateStringsNO; //学号

   privateintCredit; //分数

   publicintgetCredit(){

       returnCredit;

   }

   publicStringtoString(){

       return“sN0=“+this.sNO+”,Credit=”+this.Credit;

   }

   Student(StringsNO,intCredit){

           

(1)=sNO;

           

(2)=Credit;

   }

publicclassSortStudent{

   voidsort(Student[]s){//Sortthearrays[]indecendingorderofCredit

       for(inti=0;i

           for(intj=i+1:

j

               if(s[i].(3)

                   Studenttmp=s[i];

                     s[i]=s[j];

                     s[j]=tmp;

                 }

             }

       }

}

publicstaticvoidmain(Stringargv[]){

      Student[]testStudent=newStudent[size];

      try{

       BufferedReaderin=newBufferedReader(newFileReader(“students.txt”));

           booleandone=false;

           inti=0;

           while(!

done){

             Strings=in.readLine(); //每次读取一个学生的学号和成绩

      if(s!

=null){

         Stringtmp[]=s.split(“,”);

          testStudent[i++]=(5)

(tmp[0],Integer.parselnt(tmp[1]));

               }else

                       done=true;

           }

           in.closeo();

           (6)=newSortStudent();

           ss.sort(testStudent);

           System.out.println(“top30%:

”);

           for(intj=O;j

             System.out.println(testStudent[j]);

       }catch(IOExceptione){

           System.out.println(“ioerror!

”);

       }catch(NumberFormatExceptione){

           System.out.println(“notanumber!

”);

       }

   }

     (7)intsize=100;//学生总数

2、程序清单(要求有主要注释说明)

3、运行结果(截图)

培训总结

12月26号,我参加了程序员考试培训。

在培训期间,听了老师们的培训,使我们受益匪浅,首先要成为一个优秀的程序员需要要学的课程很多,其中,基础课程包括:

计算机硬件基础、计算机网络基础、操作系统、计算机组成原理、计算机体系结构、数据库原理、软件工程、离散数学、算法设计与分析、数据结构、编译原理

编程语言可以根据需要选择,底层开发人员必学:

汇编语言、c、c++;web应用表示层开发人员:

html、xml、javascript、jsp(或asp,php)等;普通应用程序开发:

c++、vb、.net(其中包括多种语言,可根据现有基础选择)、java等。

深刻体会到了以下的几点:

一、要养成良好的学习习惯;良好的学习习惯包括:

课前预习、认真听讲和课后编码练习等。

二、学习过程中,不仅仅是停留在表层的东西,对于简单的例题也应该有耐心去琢磨、调试和尝试改动,这样也能加深对课程的理解和编程能力。

三、一定要多读、多看与JAVA相关的书籍甚至是论坛的帖子。

学习是无止境的,我们在学习的同时,JAVA也在发展。

所以,多看些关于JAVA的书籍和论坛上的技术讨论帖是非常有帮助的,因为它们都是与时俱进的,能让我们获得的知识更快,更有时效性,也让我们的知识来源更为广泛和灵活。

这仅仅是我这一个周参加程序员培训以来学到的一部分而已,我需要学习的还有很多很多。

在学习的过程中不断的总结和积累经验是非常重要的。

老师和同学们在这期间给予的帮助是非常大的,在接下来的学习生活中,我会继续努力的,也让我们继续协作,共同进步!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 化学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1