高级语言程序设计(一)试题

来源:互联网 发布:淘宝助理不能上传 编辑:程序博客网 时间:2024/05/18 02:18

第一部分  选择题

一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。

1.C语言程序编译时,程序中的注释部分

   A.参加编译,并会出现在目标程序中

   B.参加编译,但不会出现在目标程序中

   C.不参加编译,但会出现在目标程序中

   D.不参加编译,也不会出现在目标程序中

2.下列表达式的值为0的是(     

   A.3%5          B.3/5.0          C.3/5           D.3<5

3.正确的C语言用户自定义标识符是(     

  A.print         B.float          C.when?         D.random%2

4.int a=3;则表达式a<1&&--a>1的运算结果和a的值分别是(     

  A.02          B.03           C.12          D.13

5.下列叙述中,正确的是(     

   A.引用带参的宏时,实际参数的类型应与宏定义时的形式参数类型相一致

   B.宏名必须用大写字母表示

   C.宏替换不占用运行时间,只占编译时间

   D.在程序的一行上可以出现多个有效的宏定义

6.下列保留字中用于构成循环结构的是(     

   A.if           B.while           C.switch           D.default

7.与语句if(a>b)if(c>d)x=1;else x=2;等价的是(     

   A.if(a>b){if(c>d)x=1;else x=2;}

   B.if(a>b){if(c>d)x=1;}else x=2;

   C.if((a>b)&&(c>d))x=1;else x=2;

   D.if(a<=b)x=2;else if(c>d) x=1;

8.char x='a';printf("x=%c,y=%cn",x,97);的输出是

   A.x=a,y=97     B.x=97,y=a       C.x=97,y=97         D.x=a,y=a

9.int a[][4]={1,2,3,4,5,6,7,8,9};则数组a的第一维的大小是(     

   A.2            B.3              C.4                 D.无确定值

10.执行下列程序

     int a[3][3]={{1},{2},{3}};

     int b[3][3]={1,2,3};

     main()

     {printf("%dn”a1][0+b[0][0]);}

     后输出的结果是

   A.0                B.1              C.2             D.3

11.char str[100];int i=5;则引用数组元素的错误形式是(     

   A.stri+10       B.*(str+i)         C.*(str+i-1)      D.*((str++)+i)

12.int x[]={1,2,3,4,5,6},*p=x;则值为3的表达式是(     

   A.p+=2,*++p        B.p+=2,*p++      C.p+=3,*p       D.p+=2,++*p

13.在函数内,定义变量时存储类型符可省略的是(     

   A.auto              B.static            C.extern          D.register

14.执行下列程序(     

    int a=3,b=4;

    void fun(int x1,int x2)

    {printf("%d,%d\n",x1+x2,b);}

    main()

    {int a=5,b=6;fun(a,b);}

    后输出的结果是

   A.34            B.111             C.114             D.116

15.设有定义语句

     struct

     {int a;float b;} d[3]={{1,4},{2,5},{6,7}};

  printf("%3.1f\n",d[2].a*d[2].b/d[1].b);的输出是(     

   A.2.5             B.2.0              C.8.0               D.8.4

16.设有定义语句:enum t1 {a1,a2=7,a3,a4=15}time; (     )

   则枚举常量a2a3的值分别为

   A.12            B.23             C.72               D.78

17.将一个整数10002存到磁盘上,以ASCII码形式存储和以二进制形式存储,占用的字节数分别是(     

   A.22            B.25             C.52               D.55

18.在文件使用方式中,字符串"rb"表示(     

   A.打开一个已存在的二进制文件,只能读取数据

   B.打开一个文本文件,只能写入数据

   C.打开一个已存在的文本文件,只能读取数据

   D.打开一个二进制文件,只能写入数据

19.执行下列程序(     

   # define F(y) 15>>y

   #define PRINT(a)  printf("%d",a)

   main()

   {

   PRINT(F(2));

   }

   后输出的结果是

  A.3                B.3.5             C.14              D.7.5

20.main()函数可以带两个形参,一般分为argcargv,其中argv可以定义为(     

   A.int argv          B.char * argv[];    C.char argv[];       D.char **argv[];

第二部分  非选择题

二、填空题(本大题共10小题,每小题2分,共20分)

21.初始化值是0.618的双精度变量a的定义形式为____________

22.表达式!10!=1的值是____________

23.20<x30”的C语言表达式是____________

24.表达式a=1,a+=1,a+1,a++的值是____________

25.int i = 5;则循环语句while(i>=1)i--;执行后,i的值为____________

26.被调函数在执行结束时,这个函数中定义的____________类型的变量不被释放。

27.

   struct student

   {

   int no;

   char name[12];

   float score[3];

  }s1,*p=&s1

  用指针法给s1的成员no赋值1234的语句是____________

28.C语言程序中对文本文件的存取是以____________为单位进行的。

29.char string[]="This_is_a_book!";则数组的长度应是____________

30.int a[2][3]={{2},{3}};则数组元素____________的值为3

三、程序分析题(本大题共5小题,每小题5分,共25分)阅读下列程序,将输出结果写到各题右侧的空白处

31.int a=200;

   main()

   {int i;

   for(i=1;i<=5;i++)

    {a++;

     printf("%d,",a);

     s();

    }

   }

   s()

   {static int a=20;

    a++;

    printf(%d\n",a);

   }

32.# include "stdio.h"

   main()

   {char c;

    c=getchar();

   if(c>='a'&&c<='w'||c>='A'&&c<='W')c=c+3;

    else if(c>='x'&&c<='z')||c>='X'&&c<='Z')c=c-23;

    printf("%\n",c);

   }

   设从键盘上输入Next

33.# define N 7

   main()

   {int i,j,temp,a[N]={1,2,3,4,5,6,7};

    for(i=0;i<N/2;i++)

      {j=N-1-i;

       temp=a[i];a[i]=a[j];a[j]=temp;

      }

     for(i=0;i<N;i++)printf("%5d",a[i]);

   }

34.struct porb

   {char *name;

    int count;

   }x[]={"Li ning",19,"Lang ping",21,"Zhu jian hua",20};

   main()

   {int i;

    for(i=0;i<3;i++)

          printf("%s:%d\n",x[i].name,x[i].count);

   }

35.main()

   {union

      {short a;char ch;

      }M;

       M.a=100;M.ch='A';

     printf("%d,%d,%c\n",sizeof(M),M.a,M.ch);

   }

四、程序填充题(本大题共3小题,每小题6分,共18分)给出下列程序,将横线处缺少的部分补上,使其能正确运行。

36.以下程序的功能是用选择法对数组a中的整数由小到大进行排序。

   void sort (int b[],int n)

   {int i,j,t;

    for(i=0;i<n-1;i++)

        for(__;i<n;i++)

         if(b[i]___b[j])

           {t=b[i];_________;b[j]=t;}

   }

   main()

   { int a[]={5,8,6,2,7,4,1,3};

     int i;

     sort(a,8);

     for(i=0;i<8;i++)

       printf("%5d",a[i]);

     printf("\n");

   }

37.输入一字符串(换行为结束标志)统计其中数字(012,…,9不单独统计)、空白和其它字符出现的次数。

   # includestdio.h"

   main()

   {  char c;

      int_____________;

       while((c=getchar())!='\n')

      {

       if(________________)digit++;

       else if(c==''||c=='\t')++blank;

       else____________;

      }

      printf("digit=%d,blank=%d,other=%d\n",digit,blank,other);

   }

38.先为数组a输满数据,再为x输入一个数据,在数组a中找出第一个与x相等的元素并将其下标输出,若不存在这样的元素,则输出“Not found!”标志。

   main()

   { int i,x,a[10];

     for(i=0i<10;i++)scanf("%d",___);

     scanf("%d",&x);printf("%d",x);

     for(i=0;i<10;i++)if(____________)break;

     if(i___10) printf(“position:%d\n”,i);

     else printf(" Not found! \n",x);

   }

五、程序设计题(第39小题5分,第40、41小题各6分,共17分)。

39.求出101000之内能同时被237整除的数,并输出。

40.1100之间的奇数之和及偶数之和,并将二者输出。

41.输入一字符串,检查是否回文(回文是指正反序相同,如,LeveL),若是则输出“Yes”,否则输出“No”。