广州美术学院
计算机语言C预测卷
总分:150                考试时间:120分钟
注意事项:
题目包括五大部分, 单项选择题,判断题,填空题,程序分析题,编程题,请按要求在规定时间内作答。
考试中途不能无端离场,否则视为放弃。考试过程中如遇问题请及时向监考老师反馈。
一、单项选择题(每小题2 分,共 40分)
1、若变量a、b、x、i都已正确定义并赋值,则以下符合c语言语法的表达式是________。
    A、a+=a-=(b=4)*(a=3)
    B、x%(-3);
    C、a=a*3=2
    D、v=float(i)
答案A
2、下面四个选项中,均是不合法的用户标识符的选项是________。
    A、A  P_0  do
    B、float  la0  _A
    C、b-a  goto  int
    D、_123  temp  int
答案C
3、c 语言源程序名的后缀是________。
    A、c
    B、cp
    C、obj
    D、exe
答案A
4、c语言对嵌套if语句的规定是:else总是与( ) 。
    A、其之前最近的if配对
    B、其之前最近的且尚未配对的if配对
    C、缩进位置相同的if配对
    D、第一个if配对
答案B
5、若有以下程序段,w和k都是整型变量:w=k;
lb:if(w==0) goto le;
w--;
printf("*");
goto lb;
le: . . .则不能与上面程序段等价的循环语句是______。
    A、for(w=k;w!=0;w--)printf("*");
    B、w=k;<CR>while(w--!=0)printf("*");w++;
    C、w=k;<CR>do {
  w--;printf("*");}while(w!=0);
    D、for(w=k;w;--w)printf("*");
答案C
6、已有定义:char a[]="xyz",b[]={'x','y','z'}; 以下叙述中正确的是________。
    A、数组a和b的长度相同
    B、a数组长度小于b数组长度
    C、a数组长度大于b数组长度
    D、上述说法都不对
答案C
电脑编程工资多少7、执行下面的程序段int x=5;
char z='a';
int b;
b=((x&15)&&(z<'a') );
后,b的值为________。
    A、0
    B、1
    C、2
    D、3
答案B
8、若有以下语句,则正确的描述是char a[] ="toyou";
char b[] ={′ t′ ,′o′ ,′ y′,′o′ ,′u′ };
    A、a 数组和b 数组的长度相同
    B、a 数组长度小于b 数组长度
    C、a 数组长度大于b 数组长度
    D、a 数组等价于b 数组
答案C
9、若x是整型变量,pb是类型为整型的指针变量,则正确的赋值表达式是______。
    A、pb=&x;
    B、pb=x;
    C、*pb=&x;
    D、*pb=*x
答案A
10、null是指 ________。
    A、0
    B、空格
    C、未知的值或无任何值
    D、空字符串
答案C
【解析】此题属于记忆性的题目,NULL是指未知的值或无任何值。
11、下面是有关c语言字符数组的描述,其中错误的是________。
    A、不可以用赋值语句给字符数组名赋字符串
    B、可以用输入语句把字符串整体输入给字符数组
    C、字符数组中的内容不一定是字符串
    D、字符数组只能存放字符串
答案D
12、函数的形式参数隐含的存储类型说明是________。
    A、extern
    B、static
    C、register
    D、auto
答案D
13、"对下面程序段:
#define A 3
#define B(a) ((A+1)*a)...x=3*(A+B(7)); 正确的判断是________。"
    A、程序错误,不许嵌套宏定义
    B、程序错误,宏定义不许有参数
    C、x=93
    D、x=21
答案C
14、以下函数按每行8个输出数组中的数据
void fun( int *w, int n)
{
    int i;
    for(i=0;i<n;i++)
    {
        ________ printf("%d",w[i]);
    }
    printf("\n");
}
下列划线处应填入的语句是________。
    A、if(i/8==0)printf(“\n”);
    B、if(i/8==0)continue;
    C、if(i%8==0)printf(“\n”);
    D、if(i%8==0)continue;
答案C
15、若有定义 double x=1 , y;  则以下的语句执行的结果是______。 y=x+3/2; printf( " %f " ,y);
    A、2.500000
    B、2.5
    C、2.000000
    D、2
答案C
16、有以下程序
#include<stdio.h>
main ()
{
  int i, n;
  for (i = 0; i < 8; i++)
    {
      n = rand () % 5;
      switch (n)
        {
        case 1:
        case 3:
          printf ("%d\n", n);
          break;
        case 2:
        case 4:
          printf ("%d\n", n);
          continue;
        case 0:
          exit (0);
        }
      printf ("%d\n", n);
    }
}
以下关于程序执行情况的叙述,正确的是______。
    A、for循环语句固定执行8次
    B、当产生的随机数n为4时结束循环操作
    C、当产生的随机数n为1和2时不做任何操作
    D、当产生的随机数n为0时结束程序运行
答案D
【解析】阅读本程序可知,当产生随机数为4时,会继续执行循环;当产生随机数为1和2时,会顺势执行case 1或case 2下面的语句,进而输出结果;当产生随机数为O时,正常结束程序的运行。for循环语句随着产生的随机数的不同,执行的次数也不相同。

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