一、单项选择题(每题3分,共30分,注意:答案写在后面的答题卡内,否则0分
1、若有定义:int a=8, b=5, c; 执行语句c = a/b+0。4 ;后,c的值为(    )。
  A) 1.4    B) 1    C) 2。0    D) 2
2 、以下程序中,while 循环的次数是(    )。
  #include <stdio。h〉
  void main(void)
  {  int i = 0;
while (i<10) {if (i〈1) continue;
if (i= =5) break;  i++; }  }
  A) 1    B) 死循环,不能确定次数    C) 6    D) 10
3、以下程序的输出结果是(    )。
  #include <stdio.h〉
  void main(void)
  {  int a = 0, i;
for (i=1; i<5; i++)
{ switch (i) { case 0:
    case 3: a += 2;
    case 1:
    case 2: a += 3;
    default: a += 5; }
}
      printf(“%d\n", a);
  }
  A) 31    B) 13    C) 10    D) 20
4、以下程序的输出结果是(    )。
  #include <stdio。h〉
  void main(void)
  {  int a = 5, b = 4, c = 6, d;
      printf(“%d\n”, d=a>b?(a>c?a: c): b);
  }
  A) 5    B) 4    C) 6    D) 不确定
5、执行以下程序后的输出结果是(    )
  #include <stdio.h>
  void main(void)
  {
char a[]="abc\0abc";
printf(“%s", a);
  }
  A) abc\0abc    B) abc\    C) abc\0    D) abc
6、当调用函数时,实参是一个数组名,则向函数传送的是(    )。
A) 数组的长度                        B) 数组的首地址
C) 数组每一个元素的地址              D) 数组每个元素中的值
7、执行以下程序后,a的值为(    ).
  int *p, a = 10, b=1;
  p = &a;  a = *p + b;
  A) 12    B) 编译出错    C) 10    D) 11
8、以下正确的叙述是(  ).
A) C语言中,main函数必须位于文件的开头
B) C语言每行中只能写一条语句
C) C语言本身没有输入、输出语句
D) 对一个C语言进行编译预处理时,可检查宏定义的语法错误
9、以下程序的输出结果是(    )。
  void main(void)
  {  int a = 4, b = 5, c = 0, d;
      d = !a && !b || !c;
      printf(“%d\n”, d);
  }
  A) 1    B) 0    C) 非0的数    D) –1
10、执行以下程序段后,变量y的值是(    )。
  int x, y;
  x = 1;
  y = (++x*5);
  A) 5    B) 10    C) 15    D) 20
空值是指零长度的字符串
单项选择题答题卡
1
2
3
4
5
6
7
8
B
B
A
C
D
B
D
C
9
10
A
B
评分标准:每题选对满分,选错0分。
                    、分析结果题(20分
1、(9分)
#include <stdio。h〉
void f(int c)
{  int a=0;
      static int b=0;
  a++;
      b++;
  printf(”%d: a=%d, b=%d\n”, c, a, b);
void main(void)
{  int  i;
      for (i=1; i<=3; i++)  f( i );
}
运行结果为:
1: a=1,b=1
  2: a=1,b=2
  3: a=1,b=3
评分标准:写对一行给3分,全写对给9分。
2、(11分)
#include <stdio.h>
void main(void)
  int num,c;
num=2004;
  do {
c=num%10; 
    printf(”%d”,c);
  } while((num/=10)>0);
  printf(”\n");
运行结果为:4002
评分标准:写对11分,否则0分。
三、程序填空题(每空4分,共20分)
1、求1!+2!+3!+.。。+10!
  #include <stdio。h>
  void main(void)
  {
float s = 0, t = 1;
int n;
for (n=1;     n〈=10          ; n++) {
        t=t*n           
        s=s+t          ; }
printf(“1!+2!+3!+.。.+10!=%f", s);
  }
评分标准:写对一个空4分。
2、以下函数的功能是,把两个整数指针所指的存储单元中的内容进行交换。
void exchange(int *x, int *y)
int t;
t=*y;
*y =     * x         
*x =        t      ;}
评分标准:写对一个空4分。
                   
                    四、程序设计题(30分)
(1)sum=2+5+8+11+14---—,输入正整数n,求sum的前n项和。(10分)
void main()
{
int n,i,t,sum=0;  //1 分
scanf(”%d",&n);  //1分
t=2;            //1分
for(i=1;i<=n;i++)  //2分
  sum=sum+t;  //2分
  t=t+3;    //2分
  }
printf("sum=%d”,sum);  //1 分
(2) 今有100块砖,需100人来搬,男搬4,女搬3,两个小孩搬一砖.
问男、女、小孩各几何?(8分)
# include ”stdio.h"
    void main( )
    { int man,woman,child;    //1分
          for(man=0;man<=100;man++)            //1分
            for(woman=0;woman<=100;woman++)    //1分
                for(child=0;child〈=100;child++)    //1分
                {
                    if (8*man+6*woman+child==200  && man+woman+child==100) //2分
                        printf(”%d  %d  %d\n”,man,woman,child);      //2分
                }
      }
(3)求一个矩阵外围元素之和。(12分)
#include 〈stdio。h〉
#define N  4
#define M  5
double matrix_sum(double matrix[][M])
{  double sum=0;
    int k;
    for (k=0;k<N;k++)
    {sum=sum+matrix[k][0];
    sum=sum+matrix[k][M-1]; //3分
    }
    for (k=1;k<M-1;k++)
    {sum=sum+matrix[0][k];
    sum=sum+matrix[N-1][k];  //3 分
    }
    return sum;      //1 分
}
void main()
{
    int i,j;
    double matrix_source[N][M];
    double  t;
    double result;
    for (i=0;i<N;i++)
        for (j=0;j〈M;j++)
            {scanf("%lf”,&t);  // 1 分
            matrix_source[i][j]=t; // 2分
            }
        result=matrix_sum(matrix_source); //2 分
        printf("%lf\n",result);
}
二、单项选择题(每题2分,共30分,注意:答案写在后面的答题卡内,否则0分
1、下面哪一个是正确的标识符(  )
A qbc?  B bc$  C  _bc  D  2bc
2、设有int a[6]={1,2,3,4,5,6}*p=a;则*(p+3)与(*a+3)的值为(  )
A  1,3  B  3,3  C  4,4  D  4,6
3 设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a〉b)&&(n=c>d)运算后,n的值为(  )
A 0   B 1   C  2  D  3
4t为int类型,进下面的循环之前,t的值为0
while( t=l )
{ ……}
则以下叙述中正确的是(  )
A  循环控制表达式的值为0     B 循环控制表达式的值为1
C  循环控制表达式不合法      D  以上说法都不对
5、设int i=4,j=8,k;则表达式k=(i++,++i,j++)的值为(  )
A 4    B  8      C 9    D 10
6、有宏定义 #define  MULT1(a,b)  a*b
          #define  MULT2(a,b)  (a)*(b)

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