复习A:
一、单项选择题
1、如果要把常量327存入变量a中,a不能定义的类型是哪一个?  (  )
A) int          B) char    C) long            D) float   
2、若x 为unsigned int 型变量,执行下列语句后x值为(            )
x = 65535;
printf(“%d\n”,x);
A)65535           B)1            C)无定值        D)-1
3、有以下程序
main()
{int a=1,b=2,m=0,n=0,k;k=(n=b>a)||(m=a<b);
printf(″%d,%d\n″,k,m);
程序运行后的输出结果是 ( ) 
  A)0,0            B) 0,1          C)1,0              D)1,1
4、在C语言中,如果下面的变量都是int类型,则输出的结果是(      )。
  sum=pad=5; pAd=sum + + ,pAd + +, + + pAd;
  printf("%d\n",pad);
    A) 7            B) 6            C) 5              D) 4
5、以下程序的输出结果是()。
main()
{ int a=4,b=5,c=0,d;
d=!a&&!b||!c;
printf("%d\n",d);
}
A)1            B)0            C)非0的数            D)-1
6、当执行以下程序段时()。
x=-1;
do{
x=x*x;
}while(!x);
A)循环体将执行一次                    B)循环体将执行两次
C)循环体将执行无限次                D)系统将提示有语法错误
7、全局变量的存储类型可以定义为(   )
Aautostatic                    B extern register 
C autoextern                    D externstatic
8、定义全局变量时,若变量的的存储类别缺省,则默认的存储类型是(   )
Aauto                          B register 
C extern                          D static
9、已知:int a, x; 则正确的赋值语句是(    )。
  A) a=(a[1]+a{2})/2;        B a*=*a+1;
  C a=(x=1, x++, x+2);        D a="good";
10已知:int a, *p=&a; 则下列函数调用中错误的是(    )。
  A) scanf("%d", &a);        B scanf("%d", p);
  C printf("%d", a);        D printf("%d", p);
11、下述程序的输出结果是 (   )
#include <stdio.h>
void  main( )
{  struct  complex
    {  int  x ;
        int  y;
    } cnum[2]={1,3,2,7};
      printf(%d, cnum[0].y/cnum[0].x*cnum[1].x) ;
}
    A) 0        B) 1          C) 3          D) 6
 12、下述程序的输出结果是(   )
    #include <stdio.h>
void  main( ) 
{  union
  {  unsigned  char  c ;
      unsigned  int  i[4];
  }z ;
  z.i[0]=0x39 ;
  z.i[1]=0x36;
  printf(%c,z.c);
}
  A) 6          B) 9          C) 0        D) 3
13、下述关于C语言文件操作的结论中,(   )是正确的。
A)对文件操作必须先关闭文件
B)对文件操作必须先打开文件
C)对文件操作顺序无要求
D)对文件操作前必须先测试文件是否存在,然后再打开文件
14、以下程序的输出结果是(   )
    main()
{ char ch[3][4]={"123","456","78"},*p[3];
int i;
for (i=0;i<3;i++)
p[i]=ch[i];
for (i=0;i<3;i++)
printf("%s",p[i]);    }
    A)123456780        B)123 456 780      C) 12345678      D) 147
15、对于所定义的二维数组a[2][3],元素a[1][2]是数组的第(  )个元素。
A)3      B)4        C)5        D)6 
二、判断题
1、赋值运算符的优先级低于关系运算符(   )
2、条件运算符的结合方向是“自左向右” (   )
3、C语句的循环语句中循环体如果包含一个以上的语句,必须以复合语句形式出现(   )
逗号表达式的运算顺序4、C程序中的函数不能嵌套调用,但可嵌套定义(   )
5、若自定义函数要求函数名返回一个值,则该函数体中必须要有return语句(   )
6、当形式参数为指针变量名时,实际参数可为指针变量名、数组名或其它类型变量的首地址(   )
7、若有说明:static int a[3][4];,则数组a中各数组元素可在程序的编译阶段得到初值0(   )
8、若用数组名作为函数调用时的实参,则实际上传递给形参数组的是数组的第一个元素的值(   )
9、利用指针和结构体类型可以构成表、树等复杂的数据结构(   )
10、共用体变量的地址和它的各成员的地址都是同一地址(   )
11、printf函数中的“%0”格式参数表示用来输出unsigned型数据(    )。
12、在一个C程序中,所有要使用的变量和要调用的函数都必须在main( )函数中定义    (  )。
13、赋值运算符的结合性是“自右至左”    (  )。
14、一个C程序可以由多个源程序文件组成    (  )。
15、do-while语句构成的循环,当while语句中的表达式的值为零时结束循环    (  )。
三、写出下面各程序的运行结果

1、 #include stdio.h
main ( )
{int i=0, j=0, k=0, m;
for (m=0; m 4; m++)
switch (m)
{case 0: i=m++;
case 1: j=m++;
case 2: k=m++;
case 3: m++;
}
printf(\n%d, %d, %d, %d, i, j, k, m);
}
2、 #include stdio.h
main ( )
{int i=1;
while (i =15)
if (++i% 3!=2)
continue;
else
printf(%d, i);
}
3、#include<stdio.h>
  add1(int a[ ], int n)
{ int i;
for(i =0;i<n;i++) a[i]++;
}
main()
{ static int array[ ]={0,1,2,3,4,5,6,7,8,9};
int j;
add1(array,10);
for(j=0;j<10;j++)
printf(%d,array[j]);
}
4、union  data
{  long  w;
    float  x;
    int  y;
    char  z;
} beta;
main( )
{ beta.w=123456;
beta.y=888;
beta.x=3.14;
beta.z=x;
printf(%c,beta.y);
}       

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