C语言试题及答案解析(三)
班级                    姓名                学号____________
float型
题号
总得分
评卷人
审核人
得分
一.选择题(20分):
1.  判断下面标识符中哪个是C语言中合法的用户定义标识符:       
A. a-b    B. #abd    C.  typedef    D. _max
2.  ‘b’在内存中占      个字节,“B”在内存中占       个字节。
    A. 1    B. 2    C.  3    D. 4
3. 下列表达式的值哪些不等于0?           
    A. 2>>1      B.  ~a&a    C. 1>5      D. a^a
4. 设有一分段函数:    x=1      a<b且c=d
                        x=2        a>=b
        则下列程序段哪个是正确的?       
A. if(a<b)      B.  if (a<b)    C.  if (a>b)      D.  if (a>=b)
  If(c==d)        {if (c==d)      if (c==d)          x=2;
    x=1;            x=1;          x=1;          else
else x=2;          else x=2;}      else x=2;        {if(c==d)  x=1;}
5. 下列关于switch和break语句的讨论中,只有      是正确的。
A. break语句是switch 语句的一部分
B.在switch语句中可以根据需要使用或不使用break语句 
C. switch语句中必须使用break语句 
D.以上三种说法都不正确。
6. 若有两条语句:static char x[]=”abcde”;
        static char y[]={‘a’,’b’,’c’,’d’,’e’};   
        则下列说法中正确的是:   
A.  x数组和y数组长度相同  B. x数组长度大于y数组长度 
C. x数组长度小于y数组长度  D. 以上三种说法均错误。
7. 返回值为void的函数,其含义是:   
A. 调用函数之后,被调用的函数没有返回值;
B. 调用函数之后,被调用的函数不返回   
C. 调用函数之后,被调用的函数返回值为任意类型
D. 以上三种说法均不正确。
8. C语言中函数的隐含存储类别是    ,在一个C源程序文件中,若要定义一个只允许在本源文件中所有函数使用的全局变量,则变量需要使用的存储类别是   
    A. auto    B.  static    C.  register      D. extern
9. 若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)
s=a;
for(b=1;b<=c;b++) s=s+1;
则与上述程序段功能等价的赋值语句是      
A. s=a+b;  B. s=a+c;  C. s=s+c;  D. s=b+c; 
10.  以下叙述中不正确的是    
      A.  在C中,函数中的自动变量可以赋初值,每调用一次,赋一次初值。
      B.  在C中,在调用函数时,实在参数和对应形参在类型上只需赋值兼容。
      C.  在C中,外部变量的隐含类别是自动存储类别。
      D.  在C中,函数形参可以说明为register变量。
11. 对于scanf(“A=%d”,&a)语句,输入10的正确的输入形式是:     
    A. a=10    B. A=10    C. 10    D. =10
12. C语言中,运算对象必须是整型的运算符是   
    A. %    B. /  C. %和/    D. >=
13. 为表示关系x≥y≥z,应使用C语言表达式   
    A. (x≥y)&&(y≥z) B. (x>=y) and(y>=z)  C. (x>=y)&&(y>=z)  D. (x>=y)‖(y>=z)
14. 若要求在if后一对圆括号中标式a不等于0的关系,则能正确表示这一关系的表达式是   
    A. a<>0    B. !a    C.  a=0    D. a
15. 以下说法正确的是   
A. C语言程序总是从第一个定义函数开始执行;
B. 在C语言程序中,要使用的函数必须在main()函数中定义;
C. C语言程序总是从main()函数开始执行;
D. C语言程序的main()函数必须在程序的开始部分。
16.下列描述中不正确的是      
    A.  字符型数组中可以存放字符串
      B.  可以对字符型数组进行整体输入、输出
      C.  可以对整型数组进行整体输入、输出
      D.  不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值
17. C语言中用于结构化程序设计的三种基本结构是     
    A.  顺序结构、选择结构、循环结构
    B.  if、switch、break
    C.  for、while、do-while
    D.  if、for、continue
18.若已定义x和y为double类型,则表达式(x=1,y=x+3/2)的值是   
    A.  1        B.  2    C.  2.0      D.  2.5
19.设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后三位,并将第四位四舍五入的是
  A.  x=(int)(x*1000+0.5)/1000.0;        B.  x=(x*1000+0.5)/1000.0;
  C.  x=x*1000+0.5/1000.0;            D.  x=(x/1000+0.5)*1000.0;
20. 执行以下程序后,输出结果是   
A. –1    B. 1    C. 8      D. 0
  main()
  {  int y=11;
while(--y)
{ y--;}
printf(“%d\n”,y--);
    }
二.写出下列程序的执行结果(20分):
1.执行下列程序后,变量I的正确结果是    
    int I=10;
    switch (i){
    case 9: i+=1;
    case 10: i+=1;
    case 11: i+=1;
    default: I+=1;}
2. 下面程序的输出结果是      
main()
{ int a[4][4]={{3,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-31,12,-33,0}};
  int i,j,s=0;
  for(i=0;i<4;i++)
  { for(j=0;j<4;j++)
    { if(a[i][j]<0) continue;
    if(a[i][j]= =0) break;
    s+=a[i][j];
    }
  }
  printf("%d\n",s);
}
3. 下面程序的输出结果是               
        aaa(char *s)
{  char *t=s;
    while(*t)  t++;
    return(t-s);
}
main()
{  char b[]={“Hello!”};
    printf(“%d\n”,aaa(b));}
4.  main()
{  int a[10]={1,2,3,4,5,6,7,8,9,0},*p;
      p=a;
      printf(“%d”,*p); printf(“%d\n”,*(p+8));}

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