首页 考试吧论坛 Exam8视线 考试商城 网络课程 模拟考试 考友录 实用文档 求职招聘 论文下载
2012中考 | 2012高考 | 2012考研 | 考研培训 | 在职研 | 自学考试 | 成人高考 | 法律硕士 | MBA考试
MPA考试 | 中科院
四六级 | 职称英语 | 商务英语 | 公共英语 | 托福 | 托业 | 雅思 | 专四专八 | 口译笔译 | 博思
GRE GMAT | 新概念英语 | 成人英语三级 | 申硕英语 | 攻硕英语 | 职称日语 | 日语学习 |
零起点法语 | 零起点德语 | 零起点韩语
计算机等级考试 | 软件水平考试 | 职称计算机 | 微软认证 | 思科认证 | Oracle认证 | Linux认证
华为认证 | Java认证
公务员 | 报关员 | 银行从业资格 | 证券从业资格 | 期货从业资格 | 司法考试 | 法律顾问 | 导游资格
报检员 | 教师资格 | 社会工作者 | 外销员 | 国际商务师 | 跟单员 | 单证员 | 物流师 | 价格鉴证师
人力资源 | 管理咨询师 | 秘书资格 | 心理咨询师 | 出版专业资格 | 广告师职业水平 | 驾驶员
网络编辑 | 公共营养师 | 国际货运代理人 | 保险从业资格 | 电子商务师 | 普通话 | 企业培训师
营销师
卫生资格 | 执业医师 | 执业药师 | 执业护士
会计从业资格考试会计证) | 经济师 | 会计职称 | 注册会计师 | 审计师 | 注册税务师
注册资产评估师 | 高级会计师 | ACCA | 统计师 | 精算师 | 理财规划师 | 国际内审师
一级建造师 | 二级建造师 | 造价工程师 | 造价员 | 咨询工程师 | 监理工程师 | 安全工程师
质量工程师 | 物业管理师 | 招标师 | 结构工程师 | 建筑师 | 房地产估价师 | 土地估价师 | 岩土师
设备监理师 | 房地产经纪人 | 投资项目管理师 | 土地登记代理人 | 环境影响评价师 | 环保工程师
城市规划师 | 公路监理师 | 公路造价师 | 安全评价师 | 电气工程师 | 注册测绘师 | 注册计量师
化工工程师 | 材料员
缤纷校园 | 实用文档 | 英语学习 | 作文大全 | 求职招聘 | 论文下载 | 访谈 | 游戏
自学考试
您现在的位置: 考试吧(Exam8.com) > 自学考试 > 历年真题 > 文学类 > 北京 > 正文

1996年10月C语言试卷(北京)

  一、判断题:(每小题1分,共6分)

  1、若有说明int c;则while(c=getchar());是正确的C语句。 ( )

  2、int i,*p=&i;是正确的C说明。 ( )

  3、7&3+12的值是15。 ( )

  4、while 1 i,j; 一定是错误的C说明。 ( )

  5、for( ; ; )S中的语句S必执行无穷多次。 ( )

  6、unsigned 和void 在C中都是保留的。 ( )

  二、单项选择题(每小题1分,共5分)

  1、设有int i;则表达式i=1,++i,++i||++i,i的值为 ( )
  A.1   B.2   C.3   D.4

  2、设有int i;则表达式(i=1,i=10)?i++||++i:++i的值为 ( )
  A.1   B.2   C.3   D.10

  3、设有int a[ ]={10,11,12},*p=&a[0];则执行完*p++;*p+=1;后a[0],a[1],a[2]的值依次是 ( )
  A.10,11,12   B.11,12,12   C.10,12,12   D.11,11,12

  4、设有int i, j, k; 则表达式i=1,j=2,k=3, i&&j&k 的值为 ( )
  A.1   B.2  C.3   D.0

  5、设有说明int s[2]={0,1},*p=s; 则下列错误的C语句是 ( )
  A.s+=1;   B.p+=1;   C.*p++;   D.(*P)++;

  三、填空题(每小题2分,共10分)

  1、char *(*pa)[10];说明pa是______________。

  2、表达式98&&8&&31&1的值为________________。

  3、printf("%5.3f\n",123456.12345);输出为_____________。

  4、表达式~3&(2&3^4)的值为_______________。

  5、若有说明int i,j,k;则表达式i=10,j=20,k=30,k*=i+j的值为_______________。

  四、程序分析,给出下列各程序的执行结果(输出)

  1、#include
  int f(n)
  int n;
  {static int s=1;
  while(n) s*=n--;
  return s;
  }
  main()
  {int i,j;
  i=f(3); j=f(5);
  printf("\nThe output of 5.1. is:\n\n");
  printf("i=%d j=%d \n",i,j);
  }

  2、#include
  trans(m,n)
  int m,n;
  {int i;
  if (m>n){
  i=m%n;trans(m/n,/);
  }
  else i=m;
  if (i<10) printf("%d",i);
  else printf("%c",'A'+i-10);
  }
  main( )
  {int i;
  printf("\nThe output of 5.3 is:\n\n");
  printf("\n%d->-",-23);
  trans(21,3);
  printf("\n%d->",123);
  trans(123,16);
  }

  3、#include
  #include

  typedef struct node
  {
  int d;
  struct node *next;
  }t_node;

  create(h)
  t_node **h;
  {
  int i,m=0;t_node *p,*q;
  scanf("%d",&i);
  while(i)
  {
  p=(t_node*)malloc(sizeof(t_node));
  p->d=i>m?i:m;m=i;p->next=NULL;
  if(*h)
  {
  q->next=p;
  q=p;
  }
  else
  {
  *h=p;
  q=p;
  }
  scanf("%d",&i);
  }
  }

  void main()
  {
  t_node *h=NULL,*p;
  create(&h);p=h;printf("\nThe output of 4.3 is:\n\n");
  while(p)
  {printf("%d",p->d);
  p=p->next;
  }
  }

  4、#include
  main()
  { int m,n,sign,t;
  scanf("%d%d",&m,&n);
  while(m*n){
  if (m>=0&&n>=0||m<=0&&n<=0) sign=0;
  else sign=1;
  m=m>0?m:-m; n=n>0?n:-n;
  t=0;
  while(n--) t+=m;
  printf("\nThe result is:");
  if (sign) printf("-");
  printf("%d\n",t);
  scanf("%d%d",&m,&n);
  }
  }

  5、#include
  int a[10]={1,2,3,4,5,6,7};
  rev (m,n)
  int *m,n;
  {int t;
  if(n>1)
  {t=*m;*m=*(m+n-1);*(m+n-1)=t;
  rev(m+1,n-2);
  }
  }

  main()
  {int i;
  printf("\nThe output of 5.5 is:\n\n");
  rev(a+2,6);
  for(i=0;i<10;i++)
  printf("%d",a[i]);
  printf("\n");
  rev(a,5);
  for(i=0;i<10;i++)
  printf("%d",a[i]);
  printf("\n");
  }

  五、在下面程序中横线处填上适当字句,使其能正确执行(6分)

  [程序说明] 该程序用于计算cos x值,依据公式为:

  要求输入X(以角度计)和误差值epsil。当epsil<=0时程序停止执行。

  #include
  #define PI 3.141526
  double ex(x,epsil)
  float x,epsil;
  {
  double t,s; int n;
  s=0.0; t=1.0; n=1;
  while ((t>=0.0?t:-t)>epsil){
  s+=t;___(1)___;___(2)___;
  }
  return s;
  }

  main()
  {
  float x,epsil;
  printf("Input x,epsil:(epsil<=0 to quit)\n");
  scanf("%f%f",&x,&epsil);
  while(epsil>0.0){
  x*=PI/180;
  printf("e^%f=%f\n",x,ex(x,epsil));
  printf("Input x,epsil:(epsil<=0 to quit)\n");
  scanf("%f%f",&x,&epsil);
  }
  }

  六、在下面程序中横线处填上适当字句,使其能正确执行(18分)
  [程序说明]该程序能计算两个整数集合A与B的差,其中A与B的元素都以值的递增次序存放中单链表中,A中的同一元素允许在单链表中出现多次,A与B的差也以值的递增次序存于单链表内,但是同一元素不允许出现多次。假定调用diff前a,b的值已创建。

  #include
  typedef struct node{
  int d;
  struct node *next;
  }tnode;

  void diff(a,b,c)
  tnode *a,*b,__(1)__;
  {
  int last_a; tnode *p;
  *c=NULL; last_a=-9999;
  while(a&&b){
  if(a->d==b->d){
  __(2)__;
  a=a->next;
  __(3)__;
  }
  else
  if (a->d>d->d)
  __(4)__;
  else {
  if (a->d!=last_a){
  last_a=a->d;
  p=(tnode *)malloc(sizeof(tnode));
  p->d=last_a;
  p->next=*c;
  *c=p;
  }
  a=a->next;
  }
  }
  while(a){
  if(__(5)__){
  last_a=a->d;
  p->d=last_a;
  p->next=*c;
  __(6)__;
  }
  a=a->next;
  }
  }

  void print(h)
  tnode *h;
  {
  while(h){
  printf("%d ",h->d);
  h=h->next;
  }
  }

  main()
  {
  tnode *a,*b,*c;
  ...
  diff(a,b,&c);
  print(c);
  }

  
  注:请北京考生注意!《C语言》将在2001年变更为《计算机网络技术》。消息来源:1999年9月19日《北京教育报》

文章搜索
中国最优秀自学考试名师都在这里!
韩旺辰老师
在线名师:韩旺辰老师
   中国传媒大学教授,北京培黎职业学院院长助理兼新闻广告系主任,高...[详细]
自学考试栏目导航
版权声明:如果自学考试网所转载内容不慎侵犯了您的权益,请与我们联系800@exam8.com,我们将会及时处理。如转载本自学考试网内容,请注明出处。