⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 answer7.txt

📁 本资料是国家公务员考试的c语言资料以及答案
💻 TXT
字号:
1.下面这个程序的作用是统计公元1年到公元2000年的闰年个数。判断闰年的方法是:能被400整除的年是闰年;除能被400整除的年以外,凡是能被4整除,但不能被100整除的年是闰年。其余年份是平年。请填空。

#include <stdio.h>
void main()
{
  int year;
  int count=0;

  for(year=0;year<=2000;year++)
    if( (_____)
         ||( year%4==0 && ____) )
      ____;
  
  printf("%d",count);
}

    答案:year%400==0
          year%100!=0
          count++


2. 读懂程序并填空。

#include <stdio.h>

void main()
{
  int digit_num=0;
  int letter_num=0;
  int other_num=0;
  char ch;

  while(1)
  {
    ch=getchar();
    if(ch=='!')
      break;
    if(ch>='0'&&ch<='9')
      digit_num++;
    else if( (ch>='A'&&ch<='Z')
          ||(ch>='a'&&ch<='z') )
      letter_num++;
    else
      other_num++;
  }

  printf("The number of digit  is %d\n",digit_num);
  printf("The number of letter is %d\n",letter_num);
  printf("The number of other  is %d\n",other_num);
}

    程序运行时如果输入:
        123adfhd^%234FDG%34%hJK+!_AAAD!<回车>
    最后,变量 digit_num的值为___,
         变量letter_num的值为___,
         变量 other_num的值为___。

    答案: 8
          11
          5


3. 下面这个程序要求用户输入两个整数和一个字符。字符必须是'+'、'-'、'*'、'/'其中的一个。然后程序输出两数作相应运算的结果。
    例如:输入 123,34,+  程序输出 123+34=157。请填空。

#include <stdio.h>
void main()
{
   float d1,d2,result;
   char op;
   int error=0;

   scanf("%f,%f,%c",&d1,&d2,&op);
   switch(op)
   {
   case '+':result=___;break;
   case '-':result=___;break;
   case '*':result=___;break;
   case '/':result=___;break;
   default :error=1;
   }

   if(error)
     printf("运算操作符输入有错!");
   else
     printf("%.2f%c%.2f=%.2f\n",___);
}

    答案: d1+d2
          d1-d2
          d1*d2
          d1/d2
          d1,op,d2,result

4. 除1外,只能被1和自己本身整除的自然数叫素数。下面这个程序就是求2到100之间的素数。其中判断某数为素数的方法为用2到该数平方根之间的自然数去试整除该数。如果没有哪个数能够整除该数,那么该数为素数;如果有,那么时合数。请填空。
   (函数sqrt(a)求a的平方根)

#include<math.h>
#include <stdio.h>

void main()
{
   int i,j,k;
   int flag;

   for(i=2;i<=___;i++)
   {
     flag=1;
     k=(int)sqrt(i);
     for(j=2;j<___;j++)
       if(___==0)
       {
         flag=0;
         break;
       }
     if(flag)
       printf("%d\n",i);
   }
}

    答案:100
         k
         i%j


5.如图所示为数学上的杨晖三角形,它的规律是:
     1.每一行的首尾列都是1。
     2.每一行的第i列(除首尾列外)是上一行的第i-1列与上一行的第i列的和。
1
1   1
1   2   1
1   3   3   1
1   4   6   4   1
1   5  10  10   5   1
1   6  15  20  15   6   1

   下面这个程序打印了10层杨晖三角形,请填空。

#include <stdio.h>

#define LAYER    10
#define LAYER_1  (LAYER+1)
#define NUM  ( LAYER_1 * (LAYER_1 /2) )

void main()
{
   int array[NUM],*p[LAYER],i,j,pos;

   for(i=0;i<LAYER;i++)
   {
      pos= i*(i+1)/2;
      p[i]=&array[pos];
   }

   for(i=0;i<LAYER;i++)
      p[i][0]=p[i][i]=___;

   for(i=2;i<LAYER;i++)
      for(j=1;j<i;j++)
         p[i][j]=___; 

   for(i=0;i<LAYER;i++)
   {
      for(j=0;j<=i;j++)
        printf("%5d",___);
      printf("\n");
   }
   
}

    答案: 1
          p[i-1][j-1]+p[i-1][j]
          p[i][j]


6.  当程序输入0 -5 3时,程序依次输出哪三个数? ___、___、___
    如果把SIZE改成5,输入89,34,25,-1,22,程序依次输出哪五个数? ___、___、___、___、___

#include <stdio.h>
#define SIZE  3
void swap(int *a,int *b);

void main()
{
  int data[SIZE];
  int i,j;
  
  for(i=0;i<SIZE;i++)
    scanf("%d",&data[i]);

  for(i=0;i<SIZE-1;i++)
    for(j=i+1;j<SIZE;j++)
      if(data[i]>data[j])
        swap(&data[i],&data[j]);

  for(i=0;i<SIZE;i++)
    printf("%d  ",data[i]);
}

void swap(int *a,int *b)
{
  int temp;

  temp=*a;
  *a=*b;
  *b=temp;
}

    答案: -5  0  3
          -1  22  25  34  89






7.  请选择您认为正确的说法。

    A.在C语言中,函数可以嵌套定义。
    B.程序中的注释部分可有可无,通常可以省略。
    C.在函数中,只能有一条return语句。
    D.C程序中,会检查数组下标是否越界。
    E.在C程序中,ABC和abc是两个不同的变量。
    F.在C语言中,函数中的变量可以赋初值,每调用一次该函数,就赋一次初值。
    G.C语言中不能对数组名进行加减和赋值运算。

    答案: BEG













⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -