报课、招生咨询电话:010-51268840/41

首页 > 计算机考试 > 试题汇编 > 计算机水平考试 > 真题 >
→论坛登陆 用户名  密码  
2007年11月程序员模拟试题(2)下午试卷

作者: 发布时间:2008-04-28 10:26:17 来源:
●试题一

  阅读下列函数说明和C代码,把应填入其中n处的字句写在答卷的对应栏内。

  【函数1.1说明】

  函数strcpy(char*to,char*from)将字符串from复制到字符串to。

  【函数1.1】

  void strcpy(char*to,char*from)

  {while( (1) );}

  【函数1.2说明】

  函数merge(int a[ ],int n,int b[ ],int m,int *c)是将两个从小到大有序数组a和b复制合并出一个有序整数序列c,其中形参n和m分别是数组a和b的元素个数。

  【函数1.2】

  void merge(int a[ ],int n,int b[ ],int m,int *c)

  { int i,j;

  for(i=j=0;i

  *c++=a[i]

  while( (2) )*c++=a[i++];

  while( (3) )*c++=b[j++];

  }

  【函数1.3说明】

  递归函数sum(int a[ ],int n)的返回值是数组a[ ]的前n个元素之和。

  【函数1.3】

  int sum(int a[ ],int n)

  { if(n>0)return (4) ;

  else (5) ;

  }

  ●试题二

  阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

  该程序运行后,输出下面的数字金字塔

  【程序】

  #include

  main ()

  {char max,next;

  int i;

  for(max=′1′;max<=′9′;max++)

  {for(i=1;i<=20- (1) ;++i)

  printf(" ");

  for(next= (2) ;next<= (3) ;next++)

  printf("%c",next);

  for(next= (4) ;next>= (5) ;next--)

  printf("%c",next);

  printf("\n");

  }

  }

  ●试题三

  阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

  函数diff的功能是:根据两个由整数(都大于-32768)按升序构成的单链表L1和L2(分别由A,B指向)构造一个单链表L3(由*r指向),要求L3中的所有整数都是L1,并且不是L2中的整数,还要求L3中的所有整数都两两不等。

  【函数】

  #include

  C.h>

  typedef struct node{

  int d;

  struct node *next

  }Node;

  void diff(Node *A,Node *B,Node **r)

  {

  int lastnum;

  Node*p;

  *r=NULL;

  if(!A)return;

  while( (1) )

  if(A->dd)

  {

  lastnum=A->d;

  p=(Node*)malloc(sizeof(Node));

  p->d=lastnum;

  p->next=*r; (2) ;

  do

  A=A->next;

  while( (3) );

  }

 else if(A->d>B->d)

  B=B->next;

  else{

  (4) ;

  lastnum=A->d;

  while (A && A->d==lastnum)A=A->next;

  }

  while(A)

  {

  lastnum=A->d;

  p=(Node*)malloc(sizeof(Node));

  p->d=lastnum;

  (5) ;

  *r=p;

  while (A && A->d==lastnum) A=A->next;

  }

  }

  ●试题四

  阅读下列程序说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。

  【说明】

  本程序从若干个原始文件合并成的合并文件中恢复出其中一个或全部原始文件。所有文件均作为二进制文件进行处理。合并文件中先顺序存储各原始文件,然后顺序存储各原始文件的控制信息,即文件名、文件长度和在合并文件中的位置(偏移量 )。其结构为:

  typedef struct{char fname [256]/*原始文件名*/

  long length;/*原始文件长度(字节数)*/

  long offset;/*原始文件在合并文件中的位置(偏移量)*/

  }FileInfo;

  在合并文件最后存储如下一个特殊的标志信息作为合并文件的结束标记:

  FileInfo EndF1ag={"Combined File",0,_offset};

  其中_offset是第一个原始文件的控制信息在合并文件中的位置(偏移量)。

  启动本程序的命令行的格式是:

  程序名合并文件名[原始文件名]

  如果不指定原始文件名,默认恢复合并文件中的所有原始文件。

程序中涉及的部分文件操作的库函数简要说明如下:

  int fread (void *buffer,int size,int count,FILE *fbin):从二进制文件流fbin中读取count块长度为size字节的数据块到buffer指向的存储区。返回值为实际读取的数据块数。

  int fwrite(void *buffer,int size,int count,FILE *fbin):各参数和返回值的意义与fread相同,但对文件进行写操作。

  int fseek(FILE *fbin,long offset,int position):将文件流fbin的读/写位置以position为基准移动offset字节。position的值可以是SEEK_SET(文件头),SEEK_CUR(当前位置),SEEK_END(文件尾);offset为正,表示向文件尾方向移动,为负表示向文件头方向移动,为零表示到基准位置。

  long ftell(FILE *fbin):返回文件流fbin的当前读/写位置(相对于文件头的偏移量)。上述偏移量均以字节为单位,即偏移字节数。

  【程序】

  #include

  #include

  typedef struct{char fname[256];long length;long offset;

  }FileInfo;

  void copyfile(FILE *fin,FILE *fout,int fsize)

  {char buf[1024];int siz=1024;

  while(fsize !=0){/*每次复制siz个字节,直至复制完fsize个字节*/

  if(siz >fsize) (1) ;

  fread(buf,1,siz,fin);fwrite(buf,1,siz,fout);

  fsize= (2) ;}

  }

  int dofile(FILE *fin,FileInfo *inp)

  { long offset;

  FILE *fout;

  if((fout=fopen(inp->fname,"wb"))==NULL){

  printf("创建文件错误:%s\n",inp->fname);

  return 1;

  }

 offset= (3) ;/*保留合并文件读/写位置*/

  fseek( (4) );/*定位于被恢复文件首*/

  copyfile(fin,fout,inp->length);

  fclose(fout);

  printf("\n---文件名:%\n文件长:%1d.

  \n",inp->fname,inp->length);

  (5) ;/*恢复合并文件读/写位置*/

  return 0;

  }

  int main(int argc,char *argv[])

  {FileInfo finfo;

  char fname[256];FILE *fcmbn;

  if(argc<2){printf("输入合并文件名:");scanf("%s",fname);}

  else strcpy(fname,argv[1]);

  if((fcmbn=fopen(fname,"rb"))==NULL){

  printf("文件打开错误:%s\n",fname);return 1;

  }

  fseek(fcmbn,-sizeof(FileInfo),SEEK_END);/*定位于合并文件末尾的标志信息*/

  fread(&finfo,1,sizeof(FileInfo),fcmbn);

  if(finfo.length!=0 || strcmp(finfo.fnane,"CombinedFile")){

  printf("指定的文件不是合法的合并文件\n");

  fclose(fcmbn);return 2;

  }

  fseek(fcmbn,finfo.offset,SEEK_SET);/*定位于首个原始文件的控制信息*/

  for(;;){/*恢复一个(argc>2)或全部(argc=2)原始文件*/

  fread(&finfo,1,sizeof(FileInfo),fcmbn);

  if(finfo.length==0)break;

  if(argc>2 && strcmp(finfo.fname,argv[2]))continue;

  if(dofile(fcmbn,&finfo)!=0)break;

  }

  fcolse(fcmbn);return 0;

  }

 ●试题五

  阅读以下应用说明及Visual Basic程序代码,将应填入(n)处的字句写在答题纸的对应栏内。

  【说明】

  本应用程序的运行窗口如图所示。

 

 

  窗口中的3个文本框和两个按钮名称分别为Txt_salary、Txt_base、Txt_tax、Cmd_compute和Cmd_quit。运行时,文本框Txt_base中存放的是免税金额基数(应扣除的基本费用)。当用户在文本框Txt_salary中输入月收入(工资或薪金)并单击"计算"按钮Cmd_compute后,Txt_tax框中就显示计算所得的应纳税额。文本框Txt_base和Txt_tax在运行时不接受用户输入,Txt_base的内容以灰色显示。

  个人工资(或薪金)所得税是按照超额累进的税率来征收的,方法是:以每月收入总额减去免税金额基数后的余额作为该月的月应纳税所得额,再将应纳税所得额按相应级数采用相应的税率进行累进计算。目前的免税金额基数为800元,税率如表1所示。

  设一个人的月应纳税所得额为K(元),用下面的公式计算其应缴纳的个人所得税额S(元);

  若0

  若500

  若2000

  若5000

  …

  例如,某人某月工资总额为4100元,减去800元后,应纳税所得额为3300元,其应缴纳的个人所得税额为500*5%+1500*10%+1300*15%=370元。

  在开发过程中,需要编写的程序代码如下;

  【程序】

  Option Base 0

  Private Sub Cmd_compute_Click()

  Dim paylevel,taxPrate

  paylevel=Array(0,500,2000,5000,20000,40000,60000,80000,100000,1000001)

  taxPrate=Array(5,10,15,20,25,30,35,40,45)

  K= (1)

  S=0

  If(K>0)Then

  For j=1 To 9

  If (2) Then

  S=S+(paylevel(j)-paylevel(j-1))*taxPrate(j-1)/100

 Else

  S=S+ (3) *taxPrate(j-1)/100

  Exit For

  End If

  Next j

  Ent If

  (4) =Str$(S)

  End Sub

  Private Sub Cmd_quit_Click()

  End

  End Sub

  Private Sub Form_Load()

  Txt_tax.Text=″ ″

  Txt_salary.Text=″ ″

  Txt_base.Text=800

  Txt_tax.Locked=True

  Txt_base.Enabled= (5)

  End Sub

    育路网

 
 
                                        
评论】【加入收藏夹】【 】【打印】【关闭
育路网2007年夏令营联展
 更多有关新闻:
 
·[作文雅思写作高分必读:小作文句子模 ·[资讯中心湖北:2008上半年英语等级考试(P
·[考试信息提升核心竞争力的途径 ·[综合新闻贵阳禁止公务员赴饮用水源保护区
·[考试新闻贵阳禁止公务员赴饮用水源保护区 ·[考试信息人力资源管理:LBB的团队之惑
·[真题2007年11月程序员模拟试题(2)下 ·[真题2007年11月程序员模拟试题(1)上
·[统计师上海:2008年统计师5月21日-5月2 ·[真题2007年11月程序员模拟试题(2)上
·[统计师湖北省统计局强调创新理念抓好从 ·[综合新闻重庆市08公招公务员笔试成绩及有
·[考试新闻重庆市08公招公务员笔试成绩及有 ·[真题2007年11月网络管理员模拟试题(
·[保险保险资格从业考试:保险公估人试题 ·[真题2007年11月网络管理员模拟试题(
发表评论
用户名: 密码:
验证码: 匿名发表
课程搜索:
选择分类:
课程关键字:
课程 学校
 2008年首都高校秋季招生
北京理工大学2008年招生简章
北京文理研修学院2008年招生简章
北京建设大学2008年招生简章
北京中山学院2008年招生简章
北京城市学院2008年招生简章
培黎职业学院2008年招生简章
北京金融学院2008年招生简章
北京吉利大学2008年招生简章
北方工商管理学院2008年招生简章
 本周推荐课程
·初中起点雅思半年脱产 ·启德雅思6分冲刺课程
·新概念1+2册慢速精讲课 ·环球新托福100分强化
·北文王长喜四级强化班 ·英语四、六级培训课程
·海文考研数学课程 ·海文考研英语课程
·北大企业管理高级研修班 ·清华企业领导人研修班
·中美高中生交换项目 ·北工大中加学院2+2本科
·劳动和社会保障部物流师 ·物业管理师职业培训
·市场营销经理国际资格 ·现场管理实务培训
清华大学留学
中法管理硕士预科班
课程咨询热线:010-51268840 51268841
 最新新闻
·贵阳禁止公务员赴饮用水源保护区游玩
·重庆市08公招公务员笔试成绩及有关事宜公告
·贵州省实施考核新规公务员连续两年不称职 辞退
·上海对公务员“革薪”值得老百姓期待
·全国首个限价房项目售罄 买家以公务员教师为主
·首都青年公务员 风采大赛昨颁奖
·湖南省长力主行政程序统一 拒绝公务员办事推诿
· 50万公务员轻松家装 5月3日嘉禾公务员家居节
·公务员“调薪风暴”不应脱离人大监督
·上海对公务员“革薪” 人均年薪将由12万缩至1
 育路社区            进入>>
 
学员报名服务中心: 北京北三环西路32号恒润中心1806(交通位置图
咨询电话:北京- 010-51268840/41 传真:010-51418040 上海-021-64392659、64397431
育路网-中国新锐教育社区: 北京站 | 上海站 | 郑州站| 武汉站
本站法律顾问: 邱清荣律师
北京育路互联科技有限公司版权所有 | 京ICP备05012189号