全国计算机等级考试二级c语言历年真题_2005年全国计算机等级考试二级C语言真题3

等级考试 2021-02-08 网络整理 可可

【shitiku.jxxyjl.com--等级考试】

第3页
 
 (45)有以下程序
point(char  *p)
{
   p+=3;
}
main()
{   char  b[4]={"a","b","c","d"},*p=b;
    point(p);    printf("%c\n",*p);
}
程序运行后的输出结果是              A
A)a
B)b
C)c
D)d

(46)程序中若有如下的说明和定义语句
char  fun(char  *);
main()
{
   char  *s="one",a[5]={0},(*f1)()=fun,ch;
   ……
}
以下选项中对函数fun的正确调用语句是                     A
A)(*f1)(a);
B)*f1(*s);
C)fun(&a);
D)ch=*f1(s)
(47)有以下结构体说明和变量定义,如图所示,指针pqr分别指向此链表中三个连续结点。
struct  node
{
     int data;  
     struct node  *next;
} *p,*q,*r;
现要将q所指结点从链表中删除,同时保持链表的连续,以下不能完成指定操作的语句是           D
A)p->next=q->next;
B)p->next=p->next->next;
C)p->next=r;
D)p=q->next;

(48)以下对结构体类型变量td的定义中,错误的是              C
A)typedef   struct  aa
   {
      int   n;
      float  m;
   }AA;
   AA  td;
B)struct  aa
   {
     int   n;
     float  m;
   }  td;
   struct  aa td;
C)struct
   {
       int  n;
       float  m;
   }aa;
   struct  aa td;
D)struct
   {
       int  n;
       float  m;
   }td;

(49)以下与函数fseek(fp,0L,SEEK_SET)有相同作用的是               D
A)feof(fp)
B)ftell(fp)
C)fgetc(fp)
D)rewind(fp)
(50)有以下程序
#include  "stdio.h"
void WriteStr(char  *fn,char  *str)
{
   FILE  *fp;
   fp=fopen(fn,"W");
   fputs(str,fp);
   fclose(fp);
}
main()
{
   WriteStr("t1.dat","start");
   WriteStr("t1.dat","end");
}
程序运行后,文件t1.dat中的内容是                        B
A)start
B)end
C)startend
D)endrt
待续……
2005年4月2日C笔试试卷及答案,快来对答案(三)!!!!!!!
填空题(每空2分,共40分)
(1)某二*树中,度为2的结点有18个,则该二*树中有 19  个叶子结点。
(2)在面向对象的方法中,类的实例称为  对象  。
(3)诊断和改正程序中错误的工作通常称为 程序调试  。
(4)在关系数据库中,把数据表示成二维表,每一个二维表称为 关系  。
(5)问题处理方案的正确而完整的描述称为  算法     .
(6)以下程序运行时若从键盘输入:10  20  30<回车>。输出结果是  10   30   0  .
#include  <stdio.h>
main()
{     int  i=0,j=0,k=0;
      scanf("%d%*d%d",&i,&j,&k);
      printf("%d%d%d\n",i,j,k);
}
(7)以下程序运行后的输出结果是    81  .
#define  S(x)   4*x*x+1
main()
{
   int  i=6,j=8;
   printf("%d\n",S(i+j));
}
(8)以下程序运行后的输出结果是  4599
main()
{
    int  a=3,b=4,c=5,t=99;
    if(b<a&&a<c)   t=a;a=c;c=t;
    if(a<c&&b<c)   t=b;b=a;a=t;
    printf("%d%d%d\n",a,b,c);
}
(9)以下程序运行后的输出结果是 10  20  0
main()
{
   int  a,b,c
   a=10;b=20;c=(a%b<1)||(a/b>1);
   printf("%d %d %d\n",a,b,c);
}
(10)以下程序运行后的输出结果是0918273645
main()
{
   char c1,c2;
   for(c1="0",c2="9";c1<c2;c1++,c2--)
      printf("%c%c",c1,c2);
   printf("\n");
}
(11)已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:B33<回车>.输出结果是    1B
#include "stdio.h"
main()
{
   char a,b;
   a=getchar(); scanf("%d",&b);
   a=a-"A"+"0";
   b=b*2;
   printf("%c  %c\n",a,b);
}
(12)以下程序中,fun函数的功能是求3行4列二维数组每行元素中的最大值.请填空.   br[i]
void  fun(int, int, int (*)[4],int *)
main()
{
   int  a[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;
   fun(3,4,a,b);
   for(i=0;i<3;i++)
      printf("%4d",b[i]);
   printf("\n");
}
void fun(int  m,int n,int ar[][4],int *br)
{
    int i,j,x;
    for(i=0;i<m;i++)
    {   x=ar[i][0];
        for(j=0;j<n;j++)
           if(x<ar[i][j])  x=ar[i][j];
        【12】  =x;
}
(13)以下程序运行后的输出结果是 4    3    3    4
void swap(int  x,int y)
{   int  t;
    t=x;x=y;y=t;
    printf("%d   %d   ",x,y);
}
main()
{   int  a=3,b=4;
    swap(a,b);
    printf("%d  %d\n",a,b);
}
(14)以下程序运行后的输出结果是  abcfg
#include "string.h"
void fun(char  *s,int p,int k)
{   int i;
    for(i=p;i<k-1;i++)
       s[i]=s[i+2];
}
main()
{   char  s[]="abcdefg";
    fun(s,3,strlen(s));
    puts(s);
}
(15)以下程序运行后的输出结果是 abcbcc
#include "string.h"
main()
{
   char  ch[]="abc",x[3][4]; int  i;
   for(i=0;i<3;i++)   strcpy(x[i],ch);
   for(i=0;i<3;i++)   printf("%s",&x[i][i]);
   printf("\n");
}
(16)以下程序运行后的输出结果是  0   10   1  11   2  12
fun(int  a)
{
   int b=0;static  int c=3;
   b++;   c++;
   return  (a+b+c);
}
main()
{
   int i,a=5;
   for(i=0;i<3;i++)
      printf("%d %d  ",i,fun(a));
   printf("\n");
}
(17)以下程序运行后的输出结果是   13431
struct  NODE
{  int  k;
   struct NODE  *link;
};
main()
{
  struct  NODE  m[5],*p=m,*q=m+4;
  int  i=0;
  while(p!=q)
  {   p->k=++i;   p++;
      q->k=i++;   q--;
  }
  q->k=i;
  for(i=0;i<5;i++)
     printf("%d",m[i].k);
  printf("\n");
}
(18)以下程序中函数huiwen的功能是检查一个字符串是否是回文,当字符串是回文时,函数返回字符串:yes
yes!,否则函数返回字符串:no!,并在主函数中输出.所谓回文即正向与反向的拼写都一样,例如:adgda.请填空.
#include  "string.h"
char  *huiwen(char  *str)
{
   char *p1,*p2;    int  i,t=0;
   p1=str;  p2=   ①  
   for(i=0;i<=strlen(str)/2;i++)
      if(*p1++!=*p2--)
      {  t=1; break;  }
   if( ②)  return ("yes!");
   else    return ("no!");
}
main()
{
   char  str[50];
   printf("Input:");  scanf("%s",str);
   printf("%s\n",    ③    );
}
①str+strlen(str)-1
②t==0或!t
③huiwen(str)
[完]
 


本文来源:https://shitiku.jxxyjl.com/dengjikaoshi/1674.html

Copyright @ 2011- 考试题库网 All Rights Reserved. 版权所有

免责声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。

 站长统计