考研程序设计复习题
1
以下程序的输出结果是______
main()
{  int  a=0;
  a+=(a=8);
  printf("%d\n",a);
}
答案:16
知识点:赋值表达式
2
若有定义:int  a=10,b=9,c=8;接着顺序执行下列语句后,变量b中的值是______
  c=(a-=(b-5));
  c=(a % 11)+(b=3);
答案:3
知识点:赋值表达式
3
以下程序运行后的了输出结果是______
main()
{  int a=1,b=2,c=3;
    if(c=a)  printf("%d\n",c);
    else  printf("%d\n",b);
}
答案:1
知识点:赋值表达式
4
若有语句
      int i=-19, j=i%4;
      printf("%d\n",j);
则输出结果是______
答案:-3
知识点:算术表达式
5
设有以下程序:
  main()
  { int n1,n2;
    scanf("%d",&n2);
    while(n2!=0)
    { n1=n2 % 10
      n2=n2/10;
      printf("%d",n1);
    }
  }
程序运行后,如果从键盘上输入1298,则输出结果为______
答案:8921
知识点:算术表达式
6
下面程序的输出是______
              unsigned fun6( unsigned num)
              { unsigned k=1;
                do {
                  k*=num%10;
                  num/=10;
                  }while(num);
                return(k);}
              main()
              { unsigned n=26;
                printf("%d\n", fun6(n));
              }
答案:12
知识点:算术表达式
7
y int型变量,请写出判断y为奇数的关系表达式______
答案:y%2
知识点:算术表达式
8
下列程序的输出结果是16.00,请填空
main()
{  int a=9,b=2
  float x=______,y=1.1,z;
  z=a/2+b*x/y+1/2;
  printf("%5.2f\n",z);
}
答案:6.6
知识点:算术表达式
9
以下程序运行后的输出结果是______
  main()
  {int x =0210; printf("%X\n",x);
  }
答案:88
知识点:整型数据
10
以下程序的功能是:将无符号八进制数字构成的字符串转换为十进制整数。例如,输入的字符串为:556,则输出十进制整数366。请填空。
  #include <stdio.h>
  main()
  { char *p,s[6];
    int n;
    p=s;
    gets(p);
    n=*p-'0';
    while(______!='\0')n=n*8+*p-'0';
    printf("%d \n",n);
  }
答案:*(++p)~*++p
知识点:整型数据
11
以下程序的输出结果是______
  main()
  {  unsigned short  a=65536;    int  b;
      printf("%d \n",b=a);
  }
答案:0
知识点:整型数据
12
下面程序的输出是______
            main()
            { int x=2;
              while(x--);
              printf("%d\n", x);}
答案:-1
知识点:自加、自减运算符和逗号运算符
13
以下程序输出的最后一个值是______
    int ff(int n)
    { static int f=1;
      f=f*n;
      return f;
    }
    main()
    { int i;
      for(i=1;i<=5;i++) printf("%d\n",ff(i));
    }
答案:120
知识点:局部变量及其作用域和生存期
14
以下程序的输出结果是______
      fun(int n,int *s)
printf输出格式 unsigned short      {  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);
      }
答案:8
知识点:函数的递归调用
15
以下程序运行后的输出结果是______
  int f (int a[ ],int n)
{  if (n>=1)return f(a,n-1)+a[n-1];
  else return 0;
}
main()
{  int aa[5]={1,2,3,4,5},s;
  s=f(aa,5); printf(%d\n,s);
}
答案:15
知识点:函数的递归调用
16
下面程序的运行结果是:______
fun(int t[],int n)
{int i,m;
if(n==1) return t[0];
else
if(n>=2){m=fun(t,n-1); return m;}
}
main()
{int a[]={11,4,6,3,8,2,3,5,9,2};
printf("%d\n",fun(a,10));
}
答案:11
知识点:函数的递归调用
17
以下程序的输出结果是______
main()
{  int  x=0;
    sub(&x,8,1);
    printf("%d\n",x);
}
sub(int  *a,int  n,int  k)
{  if(k<=n)  sub(a,n/2,2*k);
  *a+=k;
}
答案:7
知识点:函数的递归调用
18
下面程序的运行结果是:______
    int f(int a[],int n)
    {  if(n>1) return a[0]+f(&a[1],n-1);
      else return a[0];
    }
    main()
    {  int aa[3]={1,2,3},s;
      s=f(&aa[0],3);  printf("%d\n",s);
    }
答案:6
知识点:函数的递归调用
19
以下程序的输出结果是______
  void  fun()
  {  static  int  a=0;
      a+=2;    printf("%d",a);
  }
  main()
  {  int cc;
      for(cc=1;cc<4;cc++)  fun();
      printf("\n")
  }
答案:246
知识点:函数的调用
20
设函数findbig已定义为求3个数中的最大值。以下程序将利用函数指针调用findbig函数。请填空。
    main()
    { int findbig(int,int,int);
      int (*f)(),x,y,z,big;
      f= ______;
      scanf("%d%d%d",&x,&y,&z);
      big=(*f)(x,y,z);
      printf("big=%d\n",big);
    }
答案:findbig
知识点:函数的调用
21
若有以下程序
      int f(int x,int y)
      { return(y-x)*x; }
      main()
      { int a=3,b=4,c=5,d;
        d=f(f(3,4),f(3,5));
        printf("%d\n",d);
      }
执行后输出结果是______
答案:9
知识点:函数的调用
22
有以下程序
  int sub(int  n) {return (n/10+n%10);}
main()
{int x,y;
scanf (%d,&x);
y=sub(sub(sub(x)));
printf(%d\n,y);
}
若运行时输入:1234<回车>,程序的输出结果是______
答案:10
知识点:函数的调用
23
以下程序通过函数指针p调用函数fun,请在填空栏内,写出定义变量p的语句。
void fun(int *x, int *y)
{ ……    }
main()
{  int a=10,b=20;
  ______;
  p=fun; p(&a,&b);
  ……
}
答案:void  (*p)()~void  (*p)(int*,int*)
知识点:函数的调用
24
请在以下程序第一行的下划线处填写适当内容,使程序能正确运行。
______(double,double);
main()
{double x,y;
  scanf("%1f%1f",&x,&y);
  printf("%1f\n",max(x,y));
}
double max(double a,double b)
{ return(a>b ? a:b);}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。