注意:1.命题时请适当留答题位置。请用深蓝墨水书写,字、图清晰,书写不出边框。
      2.答题演草时不许使用附加纸,试卷背面可用于演草。试卷不得拆开。
题号
得分
填空(12分,每空1):
1. C语言的函数可分为主函数main、标准库函数和__自定义函数_______
2. 表达式53%8/2+4.0*(8/3) 的值是_10.000000_____     
3. C语言规定,变量的标识符只能由字母、数字和下划线组成,且不能以_数字_开头。
4. 若定义int m=7,n=18; 则表达式n%=m-m%4的值是___2___ 
5. 已知 int a[5] = { 1, 3, 5, 7, 9}; int *p = a+2; 则表达式 *p*a[3] 的值是____35______
6. 语句printf("\142");的结果为:___b_______________
7. 若有int a,b,c; a=36; b=036; c=0x36;,则printf("%d %d %d\n",a,b,c); 的输出结果是____36 30 54_______
8. 若函数头部定义为 int *foo(),则该函数中return 语句返回的数据类型是_int *___
9. 已知:int a[2][3]={20,40,60,80,100,120},*p; p=&a[1][0]; p=p+2; *p的值为________120________
10. int  b = 4; 则表达式 b > 1&& ! ('B'< 67) 的值为____0_______
  教务处印制                    8  (第  1  页)
11. 假设int型变量占两个字节的存储单元,若有定义:int x[5]={10,20,30}; 则数组x在内存中所占字节数为__6_________
12. 设有定义    struct date
                {  int  day ;
                  char  month ;
                  int  year ;
                } dd , *pd = &dd ;
    请写出使用指针变量pd引用结构体成员 dd .day 的表示形式_pd->day(*pd).day___
题号
得分
阅读程序写结果(32分,每小题4):
1.  #include <stdio.h>
    int main()
    {
        int a,b,c,m;
        printf("Enter three integers:");
1 m=50                     
                         
                           
                           
                           
        scanf("%d%d%d",&a,&b,&c);
        if(a<=b)
            m=a;
        else
            m=b;
        if(c<m)
            m=c;
        printf("m=%d\n",m);
        return 0; }
    输入:60 70 50<回车>
2.  #include <stdio.h>
    int main( )
    {
        char k;
        int i;
2  second                   
      first                   
      second                     
                           
                           
        for(i=1;i<3;i++)
        {
            scanf("%c",&k);
            switch(k)
            {
                case '5': printf("first\n");
                case '8': printf("second\n");
            }
        }
        return 0;
    }
    输入:85<回车>
教务处印制                    8  (第  2  页)
3.  #include <stdio.h>
    void fun(int n)
    {
        if(n==1)         
printf("@\n");
        else
3  @                     
    #@                     
    ##@                     
    ###@                     
    GOOD LUCK!                     
        {      printf("#");
            fun(n-1); }
    }
    int main()
    {
        int i,j=0;   
        for(i=1;i<5;i++)
            fun(i);
        printf("GOOD LUCK!");
        return 0;
    }
4.  #include <stdio.h>
    void add(int x, int y, int z)
    {
        z = x + y;
        x = x * x;
        y = y * y;
4(1)x=10 y=20 z=30                       
  (2)x=100,y=400,z=30                   
  (3)x=10,y=20,z=30                       
                           
                           
        printf("(2) x = %d y = %d z = %d\n", x, y, z);
    }
   
    int main()
    {
        int x = 10, y = 20, z = 30;       
      printf("(1) x = %d y = %d z = %d\n", x, y, z);
        add(x, y, z);
        printf("(3) x = %d y = %d z = %d\n", x, y, z);
        return 0;   
}
5Xi’an University                       
  16                       
                           
                           
                           
5.  #include <stdio.h>
#include<string.h>
    int main()
    {
        char str1[30], str2[] = “Xi’an University”;
        scanf(“%s”, str1);
        strcpy(str1, str2);
        printf(“\n %s\n %d\n”, str1, strlen(str2));
        return 0; }
    输入:you are a student<回车>
  教务处印制                    8  (第  3  页)
6m=0                       
                         
                           
                           
                           
6.  #include <stdio.h>
    int main()
    {
        int a[3][3]={{9,10},{2,5,8},{4,7}};
        int i=0,j=0,m;
        m=a[0][0];
        for(i=0;i<3;i++)
            for(j=0;j<3;j++)
                if(a[i][j]<m)
                    m=a[i][j];
        printf("m=%d\n",m);
        return 0; }
7. #include <stdio.h>
    struct stri_type
    {
        char ch1;   
7 163, a                       
                         
                           
                           
                           
char ch2;   
struct
        {
            int a;
            int b;
        }ins;
    };
    int main()
    {
        struct stri_type ci;
        ci.ch1='B';  ci.ch2='a';
        ci.ins.a=ci.ch1+ci.ch2;   
ci.ins.b=ci.ins.a-ci.ch1;   
8 125  22                       
                         
                           
                           
                           
printf("%d,%c\n",ci.ins.a,ci.ins.b);
        return 0;
}
8.  #include <stdio.h>
    void f(int x, int *y)
    {
        x=x%10;    *y=*y/10+x;
    }
    int main()
    {
        int a=125,b=176,*c;
        c=&b;
        f(a,c);
        printf("%d,%d\n",a,b);
        return 0;
}
教务处印制                    8  (第  4  页)
题号
得分
补充程序(24分,每空2):
1. 主函数调fun计算1+1/2!+1/3!+...+1/30!的和
    #include <stdio.h>
    _float fun()_______________________
    int main()
    {
      int n;
      float s;
      __s = fun()______________________
      printf("1+1/2!+1/3!...+1/30!=%f\n",s);
      return 0;
}
    float  fun( )
    {
      int n;
      float t=1;
      __float a = 0;______________________
      for(n=1;n<=30;n++)
      {
          _t = t/i;_______________________
          a+=t;
        }
      return a ;
    }
2. 输出1000以内的素数。素数是只能被1 和本身整除的数。为减少循环次数,只需对数n2去除来判断该数是否素数。
    #include<stdio.h>
    __#include<math.h>______________________
    int main()
    {
      int n,i,k;
      for(n=2; _n<1000________________; n++)
      {
        k=sqrt(n);
        for(i=2;i<=k;i++)
___if( n%i==0)________________________________       
            break;
        if(i>k)
_printf(”是素数”);__________________________________   
      return 0;
}
  教务处印制                    8  (第  5  页)
3. 将十进制整数base转换成二进制。
#include <stdio.h>
    int main ( )
    {
        int i=0,base,j,num[20] ;
        scanf(“%d”,&base) ;
        do {
          num[i]= _base%2_______________________;
          base=_____base/2___________________;
          i++;
          } while (base!=0);
        for (__j=i-1______________________;_j>=0_______________________ ;j--)
          printf(“%d”,num[j]) ;
        return 0;
}
   
题号
得分
改错题(10分,每个错误2):
以下程序的功能:从filename1中将内容读出,显示在屏幕上。其中文件名由键盘输入。(共5个错误点,请在错误的位置处划线,并且题后的表格里改正这些错误)
    #include <stdio.h>
    int main()
    {
        FILE fp1;                        FILE *fp
int ch;
char fname1[30];   
printf("Input the file name ");
        scanf("%c",fname1);            %c to %s
if ((fp1=fopen(fname1,”w”))==NULL)   “w” to “r”
        {
            printf("Can't open source file%s \n",fname1);
            return 1;
        }
        while((ch=getchar())!=EOF)  while(  ( ch=fgetc(fp) ) !=  EOF  )
          put(ch);                  putchar(ch)
        fclose(fp1);
      return 0;
    }
教务处印制                    8  (第  6  页)
       
题号
得分
编程一(7):
1. 编程实现:输入一元二次方程的三个系数,求解一元二次方程的实根,无实根时不用求虚根,给出相应提示信息即可。
  教务处印制                    8  (第  7  页)
题号
得分
编程二(15):
1. 编程实现:从键盘输入10名学生的信息,包括学号、姓名、成绩,用一个排序函数sort完成学生成绩降序排列,并输出学生排序后的结果。
答案1
 
注意:1.命题时请适当留答题位置。请用深蓝墨水书写,字、图清晰,书写不出边框。
      2.答题演草时不许使用附加纸,试卷背面可用于演草。试卷不得拆开。
题号
得分
填空题(18分,一空一分请将答案写在对应横线上)
1)设有如下定义int  x = 6; 执行语句x =  0 
2)三种基本的程序结构是顺序结构,  循环    结构和  分支  结构。
3C语言的基本数据类型包括整型、浮点型和  字符型     
4)表达式!(2<4)||(5<3?0:10)的值是_1_c十十程序设计语言_ _;表达式 (int)5.5/(float)2 的值是  2.500000 
5)试写出数学式C语言表达式。  sqrt(b*b – 4*a*c)               
6break语句和continue语句是C语言中提供的用来处理循环的非正常出口情况的语句。其中,提前结束循环的执行,使流程转到循环的下一条语句是  break  语句;提前结束本次循环,开始下一次循环的语句是  continue    语句。
7)函数的参数分为两种,其中当一个函数被调用时,需要在调用处给出相应的参数,这些参数称为      实际参数     
8for ( i = 3; i <= 99; i+=5 ) 的循环次数是  20    次。
9)已知变量 float x=1.2, y=-23.41;要使输出为 x=1.20,y=-23.4(中间无空格),则应使用语句 printf( “ x=%.2f,y=%.1f  ”, x, y)
10)已知 int n; FILE *fp; fp已以文本方式打开文件读,试写出语句表示:从文件fp中读出一个
  教务处印制                    9  (第  1  页)

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