首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 计算机考试 > 等级考试 > 二级考试 >

2013年计算机二级C单选模拟题3(附答案)(5)

2013-03-21 

  二、填空题

  1.下列程序的输出结果是 GDABC 。

  #include

  main( )

  {char b[30],*chp;

  strcpy(&b[0],"GH");

  strcpy(&b[1],"DEF");

  strcpy(&b[2],"ABC");

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

  }

  2.下列程序的字符串中各单词之间有一个空格,则程序的输出结果是 How does she 。

  #include

  main( )

  {char strl[ ]="How do you do",*p1=strl;

  strcpy (strl+strlen(strl)/2,"es she");

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

  }

  3.若有如下图所示五个连续的int类型的存储单元并赋值如下图,a[0]的地址小于a[4]的地址。p和s是基类型为int的指针变量。请对以下问题进行填空。

  a[0] a[1] a[2] a[3] a[4]

  2233445566

  (1)若p已指向存储单元a[1]。通过指针p给s赋值,使s指向最后一个存储单元a[4]的语句是 s=p+3 。

  (2)若指针s指向存储单元a[2],p指向存储单元a[0],表达式s-p的值是 2 。

  4.以下程序的功能是:将无符号八进制数字构成的字符串转换为十进制整数。例如,输入的字符串为:556,则输出十进制整数366。请填空。

  #include

  main()

  {char *p, s[6];

  int n;

  p=s;

  gets (p);

  n=*p-'0';

  while( *(++p) !='\0') n=n*8+*p-'0';

  printf("%d\n", n);

  }

  5.设有以下程序:

  main()

  {int a, b, k=4, m=6, *p1=&k, *p2=&m;

  a=(pl= =&m);

  b=(*p1)/(*p2)+7;

  printf("a=%d\n", a);

  printf("b=%d\n",

  B);

  }

  执行该程序后,a的值为 0 ,b的值为 7 。

  6.下列程序的输出结果是 0 。

  void fun(int *n)

  {while((*n)--);

  printf("%d", ++(*n));

  }

  main()

  {int a=100;

  fun (&a);

  }

  7.以下程序的输出结果是 10 。

  main()

  {int arr[ ]={30, 25, 20, 15, 10, 5}, *p=arr;

  p++;

  printf("%d\n", *(p+3));

  }

  8.若有以下定义,则不移动指针p,且通过指针p引用值为98的数组元素的表达式是 *(p+5) 。

  int w[10]={23,54,10,33,47,98,72,80,61}, *p=w;

  9.以下函数把b字符串连接到a字符串的后面,并返回a中新字符串的长度。请填空。

  strlen (char a[ ], char b[ ])

  {int num=0, n=0;

  while (*(a+num)!= '\0' ) num++;

  while (b[n]){*(a+num)=b[n]; num++; n++ ;}

  return(num);

  }

  10.函数void fun(float *sn,int n)的功能是:根据以下公式计算S,计算结果通过形参指针sn传回;n通过形参传入,n的值大于等于0。请填空。

  void fun(float *sn, int n)

  {float s=0.0, w, f= -1.0;

  int i=0;

  for(i=0; i<=n; i++)

  {f= -1 *f;

  w=f/ (2*i+1);

  s+=w;

  }

  *sn = s;

  }

  11.下面函数用来求出两个整数之和,并通过形参传回两数相加之和值,请填空。

  int add(int x,int y, int * z)

  { *z =x+y;}

  12.以下fun函数的功能是:累加数组元素中的值。n为数组中元素的个数。累加的和值放入x所指的存储单元中。请填空。

  fun(int b[ ],int n,int *x)

  {int k,r=0;

  for(k=0;k

  *x =r;

  }

  13.以下函数的功能是:把两个整型指针变量所指的存储单元中的内容进行交换。请填空。

  exchange(int *x,int *y)

  {int t;

  t=*y; *y= *x ; *x= t ;

  }

  14.以下程序的输出是 49 。

  main()

  {int a[10]={19,23,44,17,37,28,49,36},*p;

  p=a;

  printf(“%d\n”,(p+=3)[3]);

  }

  15.下面程序的输出结果是 024 。

  #define MAX 3

  int a[MAX];

  main()

  {fun1();fun2(a);printf(“\n”);}

  fun1()

  {int k,t=0;

  for(k=0;k

  }

  fun2(int b[])

  {int k;

  for(k=0;k

  }

  16.下面程序的输出结果是 ABCDCD 。

  char b[]=“ABCD”;

  main()

  {char *chp;

  for(chp=b; *chp; chp+=2) printf(“%s”, chp);

  printf(“\n”);

  }

  17.以下程序的功能是:从键盘上输入一行字符,存入一个字符数组中,然后输出该字符串,请填空。

  #include

  main()

  {char str[81],*sptr;

  int i;

  for(i=0;i<80;i++)

  {str[i]=getchar();

  if(str[i]==‘\n’) break;

  }

  str[i]= '\0' ;

  sptr=str;

  while(*sptr) putchar( *sptr++ );

  }

  18.fun1函数的调用语句为:fun1(&a,&b,&C);它将三个整数按由大到小的顺序调整后依次放入a、b、c三个变量中,a中放最大数。请填空。

  void fun2(int *x, int *y)

  {int t;

  t=*x; *x=*y; *y=t;

  }

  void fun1(int *pa,int *pb,int *pC)

  {if(*pc>*pB) fun2( pc,pb );

  if(*pa<*pC) fun2( pa,pb );

  if(*pa<*pB) fun2( pa,pc );

  }

  19.以下函数用来在w数组中插入数x,w数组中的数已按由小到大的顺序存放,n所指存储单元中存放数组中数据的个数,x插入后数组中的数仍有序。请填空。

  void fun(char *w,char x,int *n)

  {int i,p;

  p=0;

  w[*n]=x;

  while(x>w[p]) p++ ;

  for(i=*n;i>p;i--) w[i]= w[i-1] ;

  w[p]=x;

  ++*n;

  }

  20.阅读程序:

  main()

  {char str1[]=“how do you do”, str2[10];

  char *p1=str1, *p2=str2;

  scanf(“%s”, p2);

  printf(“%s ”, p2);

  printf(“%s\n”, p1);

  }

  运行上面的程序,输入字符串HOW DO YOU DO,则程序的输出结果是 HOW how do you do 。

  21.下面程序的输出结果是 SO 。

  main()

  {char *p[]={“BOOL”, “OPK”, “H”, “SP”};

  int i;

  for(i=3;i>=0;i--,i--) printf(“%c”,*p[i]);

  printf(“\n”);

  }

  22.下面程序的输出结果是 17 。

  funa(int a,int B)

  {return a+b;}

  funb(int a,int B)

  {return a-b;}

  sub(int(*t)(),int x,int y)

  {return((*t)(x,y));}

  main()

  {int x,(*p)();

  p=funa;

  x=sub(p,9,3);

  x+=sub(funb,8,3);

  printf(“%d\n”, x);

  }

  23.下面程序的输出结果是 XYZA 。

  #include

  void fun(char *a1,char *a2,int n)

  {int k;

  for(k=0;k

  a2[k]=(a1[k]-‘A’-3+26)%26+‘A’;

  a2[n]=‘\0’;

  }

  main()

  {char s1[5]=“ABCD”, s2[5];

  fun (s1, s2, 4);

  puts(s2);

  }

  24.下面程序的输出结果是 7 1 。

  void as(int x,int y,int *cp,int *dp)

  {*cp=x+y;

  *dp=x-y;

  }

  main()

  {int a=4,b=3,c,d;

  as(a,b,&c,&D);

  printf(“%d %d\n”,c,D);

  }

  25.下面程序的输出结果是 eybdooG 。

  #include

  main()

  {static char b[]=“Goodbye”;

  char *chp=&b[7];

  while(--chp>=&b[0]) putchar(*chp);

  putchar(‘\n’);

  }

  26.若输入:this test terminal,以下程序的输出结果为:terminal test this。填空补充以下程序。

  #include

  #define MAXLINE 20

  main()

  {int i;

  char *pstr[3],str[3][MAXLINE];

  for(i=0;i<3;i++) pstr[i]=str[i];

  for(i=0;i<3;i++) scanf(“%s”,pstr[i]);

  sort(pstr);

  for(i=0;i<3;i++) printf(“%s\n”,pstr[i]);

  }

  sort( char *pstr [3] )

  {int i,j;

  char *p;

  for(i=0;i<3;i++)

  {for(j=i+1;j<3;j++)

  {if(strcmp(*(pstr+i),*(pstr+j))>0)

  {p=*(pstr+i);

  *(pstr+i)= *(patr+j) ;

  *(pstr+j)=p;

  }

  }

  }

  }

  27.以下程序利用指针法将两个数按从小到大的顺序输出来。

  main()

  {int a,b, *p1,*p2 , p ;

  printf(“input a, b:”);

  scanf(“%d%d”, &a,&B);

  p1=&a ;

  p2=&b;

  if(a

  {p=p1; p1=p2; p2=p;}

  printf(“a=%d b=%d\n”,a,B);

  printf(“max=%d min=%d\n”, *p1,*p2 );

  }

  28.以下程序的输出结果是 8 。

  fun(int n,int *s)

  {int f1,f2;

  if(n==1||n==2) *s=1;

  else

  {fun(n-1,&f1);

  fun(n-2,&f2);

  *s=f1+f2;

  }

  }

  main()

  {int x;

  fun(6,&x);

  printf(“%d\n”,x);

  }

  29.下面的程序通过函数average计算数组中各元素的平均值,请填空。

  float average(int *pa,int n)

  {int i;

  float avg=0.0;

  for(i=0;i

  avg=avg+ *(pa+i) ;

  avg= avg/n ;

  return avg;

  }

  main()

  {int i,a[5]={2,4,6,8,10};

  float mean;

  mean=average(a,5);

  printf(“mean=%f\n”,mean);

  }

  30.以下程序将字符串s1中的所有与字符串str1相同的子串替换成字符串str2,并将替换后的新串存于字符数组s2中。

  #include

  void replace(char *s1,char *s2,char *str1,char *str2)

  {char *t0,*t1,*t2;

  while( *s1 )

  {for(t0=s1,t1=str1;(*t1!=‘\0’&& *t0=*t1 );t0++,t1++);

  if(*t1!=‘\0’) *s2++ = *s1++ ;

  else

  {for(t1=str2;*t1!=‘\0’;) *s2++ = *t1++ ;

  s1=t0 ;

  }

  }

  *s2=‘\0’;

  }

  main()

  {static char s1[]=“abcef ababcd abab.”, s2[25];

  replace (s1, s2, “abc”, “XYZ”);

  printf(“%s\n”, s2);

  }

  31.以下语句的输出结果是 hELLO! 。

  char s[80],*sp=“HELLO!”;

  sp=strcpy (s, sp); s[0]=‘h’; puts(s);

更多关注:

2013上半年重庆计算机软件专业技术资格考试

2013年广西计算机应用能力考试1月份考试

2012年下半年西藏软件水平考试成绩查询入口

更多精彩请关注读书人网计算机频道!


热点排行