学院20  ~20  学年第 学期
《计算机程序设计C语言》考试试卷
试题总分: 100 分      考试时限:120 分钟
题号
总分
阅卷人
得分
一、单项选择题(每空2分,共30分)
1.变量均为整型,设a为5,执行下列语句后,b的值不为2的是(  )。
A. b=a/2                    B. b=6-(--a)                C. b=a%2                D. b=a>3?2:2
2.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是(  )。
A. 1                        B. 1.5                    C. 2.0                    D. 2.5
3.合法的数组定义是(  )。
A. int a[]={"string"};        B. int a[5]={0,1,2,3,4,5};    C. char a={"string"};        D. char a[]={0,1,2,3,4,5}
4.下列标识符错误的是(  )。
A. x1y                    B. _123                    C. 2ab                    D. _ab
5.设整型变量n的值为2,执行语句 n+=n-=n*n;后,n的值是(  )。
A. 0                        B. 4                        C. -4                    D. 2
6.字符串“ABC”在内存占用的字节数是(  )
A. 3                        B. 4                        C. 6                        D. 8
7.下列程序的输出结果是(    )。
c语言数组最大值最小值
char p1[20]="abcd", *p2="ABCD", str[20]="xyz";
strcpy(str+2,strcat(p1+2,p2+1));
printf("%s",str);
A. xyabcAB                B. abcABz                C. ABabcz                D. xycdBCD
8.在函数中默认存储类型说明符的变量应该是(  )存储类型。
A. 内部静态                B. 外部                    C. 自动                    D. 寄存器
9.下列字符数组长度为5的是(  )。
A. char  a[]= {'h', 'a', 'b', 'c', 'd'};                        B. char  b[]= "habcd";
C. char  c[10]= {'h', 'a', 'b', 'c', 'd'};                    D. char  d[6]= {'h', 'a', 'b', 'c', '\0' }
10.设变量a 是整型,f是实型,i是双精度型,则表达式10+’a’+i*f值的数据类型是(  )
A. int                    B. float                    C. double                    D. 不确定
11.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是(  )
A. float                    B. int                    C. long                    D. double
12.以下不能正确定义二维数组的语句是(  )
A. int a[2][2]={{1},{2}};    B. int a[][2]={1,2,3,4};        C. int a[2][2]={{1},2,3};    D. int a[2][]={{1,2},{3,4}}
13.若有定义:int x[5], *p=x;,则不能代表x数组首地址的是(  )
A. x                     B. &x[0]                 C. &x                     D. p
14.下列定义的字符数组中,printf("%s\n",str[2]);语句的输出是(  )
char str[3][20]={"basic","foxpro","windows"};
A. basic                    B. foxpro                    C. windows                D. 输出语句出错
15.对于如下的结构体,若对变量person的出生年份进行赋值,( )是正确的赋值语句。
    struct date{
        int year,month,day;
    };
    struct worklist{
        char name[20];
        char sex;
        struct date birthday;
    }person;
A. ar=1980;          B. ar=1980;   
C. year=1980;                          D. ar=1980;
二、填空和程序分析(每空2分,共24分)
1.在C语言程序中,对文件进行操作首先要____________;然后对文件进行操作,最后要对文件实行_____________操作,防止文件中信息的丢失。
2.若自定义函数要求返回一个值,则应在该函数体中有一条____________语句,若自定义函数要求不返回一个值,则应在该函数说明时加一个类型说明符________。
3.设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式_________________________________。
4.若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到的初值是______________,a[2][2]得到的初值是____________。
5.程序的运行结果是________________________________________。
main( )
{int a[]={2,4,6,8,10};
  int y=1,x,*p;
  p=&a[1];
  for(x=0;x<3;x++)y+=*(p+x);
  printf("%d\n",y);
}
6.该程序的运行结果是___________________________________。
main( )
{int y=9;
for(;y>0;y--)
if(y%3==0){printf(“%d”,--y);continue;}
}
7.该程序的运行结果是___________________________________。
main()
{int a=2,b=3,c;
  c=a;
  if (a>b) c=1;
  else if (a==b) c=0;
  else c=-1;
  printf ("%d\n",c);
}
8.执行以下程序段后a的值是______________________,b的值是______________________。
    int  a, b;
    for (b=1,a=1; b<=50; b++)
    {
        if (a>=10)break;
        if (a%2==1)
        {
            a+=5;
            continue;
        }
        a-=3;
    }
三、阅读程序并根据题意完成程序(每空2分,共16分)
1. 从键盘上输入10个浮点数,求其平均值。
main()
{
int i;
float f,sum;
for(i=1,sum=0.0;i<11;i++)
{
________________________;
_______________________;
}
printf(“average=%f\n”,sum/10);
}
2.下面程序段是输入n个实数,输出其中的最大值和最小值。
    float x,nmax,nmin;
    int n,i;
    scanf("%d",&n);
    scanf("%f",&x);
    nmax=x;
    nmin=x;
    for (i=1; _______________________;i++)
    {
        scanf("%f",&x);
        if (x>nmax) _______________________;
        if (_______________________)nmin=x;
    }
    printf("MAX=%f,MIN=%f",nmax,nmin);
3.函数sort使用冒泡法将一维整型数组中各元素按值从大到小排序。
void sort( int a[ ], int n)
{  int k, j, t;
  for(k=1; k<n; k++)
  for(___________; j < n-k; j++)
      if(_______________)
________________
}
四、程序设计(共30分)
1. 请编一个函数int fun(int a),它的功能是:判断a是否是素数,若a是素数,返回1;若不是素数,返回0。a的值由主函数从键盘读入。(6分)
2.求3X3矩阵的主对角线元素之和,矩阵的数据从键盘输入。(5分)
3.编写程序,利用格里高利公式计算π。
精度要求:若某一项的绝对值小于10-5则不再计入,停止计算。(8分)
4. 已知有一个大小为5*5的二维数组,从键盘为所有元素输入数据并编写程序求出数组外围元素的累加和。(6分)
5.编写程序:把文本文件f1.txt复制到f2.txt,并且去除所有空格,其它字符复制。(5分)

试题参考答案及评分标准
一、单项选择题(每题2分,共30分)
1C    2C    3D    4C    5C
6B    7D    8C    9A    10C
11B    12D    13C    14C    15A
二、分析程序并写出运行结果(每空2分,共24分)
1打开                    关闭
2Return                void
3x<z || y<z
40                    8
519
6852
7. -1
8.10                    6
三、程序填空(每空2分,共16分)
1scanf("%f",&f)            sum+=f
2.i<n                    nmax=x                x<nmin
3j=0            a[j]<a[j+1]        t=a[j],a[j]=a[j+1],a[j+1]=t
四、编程题(共30分)
1、本题6分,参考程序如下:
#include <stdio.h>
#include <math.h>
int fun(int a){
    int i,s;
    s=sqrt(a);
    for(i=2;i<=s;i++)
        if(a%i==0)
            return 0;
    return 1;
}

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