C语言复习(修订版)
一、判断题:
1.\x72\n\\ 都是字符常量。(    )。 
2.若有说明int c;则while(c=getchar());是正确的C语句。
3.int *p=&a ,a=0;是正确的C变量定义语句。
4.C语言程序从main函数开始执行,所以main函数必须写在其他被调用的函数之前。(    )
5.表达式7=3+4不正确。
6.字符数组char str[ ]="abcd"; 有5个数组元素(    ) 
7.while 1 i,j; 一定是错误的C语句。
8.for( ; ; )S中的语句S必执行无穷多次。
9.用字符型指针变量p作为函数void fa(char *pa)的实际参数时,应采用以下的命令格式fa (*p );  (      )
10.sub()和Sub( )是不同的函数  (
11.在C程序中,函数中所定义的局部变量与全局变量同名时,局部变量屏蔽全局变量。(  )
12.全局外部变量定义命令必须写在函数之外。(    ) 
13.指针变量算术运算只能可作+、—运算。(    )
14.如有定义float a[10];  可定义表达式a=a+1。(    )
15.在逻辑表达式的计算中,必须所有的逻辑远算符都被执行后,才会结束表达式的计算( )
16.数组名作为函数实际参数,传送的是位置( )
17.若变量pointer是指针变量,命令pointer=0x2000; 是正确的赋值命令. (  )
18.int c[2][ ]={{1,2},{3,4}}; 是正确的二位数组定义命令。( )
19.printf("%5. 3f\n",123456.12345);输出为23456.123  (  )  。
20.变量定义 char *(pa) [4] ;说明pa是用于数组处理的指针。
21.用命令scanf("%s",name); 对字符数组进行输入操作,当键入“I  am  a  Student”时,数组的内容为“I。 ( )
22.表达式 B+a-A 的结果是b (  )
23.while ( ) { ;} 表示无限循环 ( )
24.switch (j) {……..} 语句中的变量j可以是浮点型变量( )
25.全局变量的不加存储方式修饰符时,说明其存储类型为auto( )
26.指针变量本身没有指针( )
27.用关键字“struct 定义的内容是数据类型( )
二、 单项选择题:
(1)若有定义数组命令“int b[ ][3]={{1, 2, 3},{ 4, 5},{ 6, 7}}”,则b数组第1维的长度是(    )
A) 2      B) 3        C) 4        D) 无确定值
b[2][2]的值是(    )
A) 0       B) 1        C) 7        D) 无确定值
(2) C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符       
A必须为字母或下划线    B)必须为下划线。
C)必须为字母              D)可以是字母、数字和下划线中的任一种字符。
(3) 下面四个选项中,均是正确的八进制数或十六进制数的选项是       
A-10  0x8f  -011              B)  010  -0x11  0xf1
C)  0abc  -017  0xc            D)  0a12  -0x123  -0xa
(4)以下选项中非法的表达式是(    )
A)0<6x<100        B)i3=j3==0
C)(char)(65+3)      D)x+y==x+z
(5) 若有定义:int  a = 7;  floa  x = 2.5 ,  y = 4.7 ; 则表达式
x + a % 3 * (int) (x + y) % 2/4  的值是(    )
A)  2.750000      B)  0.00000  C) 3.500000        D) 2.500000
(6) 已有定义: int a=8,则以下表达式中b的值不等于2的是:(    )
A)b=a/3      B) b=10-(a++)        C) b=a%2    D) b=a>3?2:1
(7)已知ch是字符型变量,下面不正确的赋值语句是 (    )
Ach = 5 + 9 ; B) ch= ' a + b '; C) ch = ' \ 0 ';  D) ch= '7' + '6'      ;     
(8) x , yint型变量,且x = 3, y = 4 , z = 5 则下面表达式中使x值为0的是(      )
A!((z < y )&&(x-=3)  B) (x-y-1 ) &&  y 
C) (z-y) || (!(x-=3))      D) y||z&&(x-=3)
(9)设有程序段
int  k = 10 ;
while ( k = 0 )  k = k - 1 ;
以下描述正确的是 (    ) 
A) 循环体语句一次也不执行。      B) 循环是无限循环。
C) while 循环语句执行十次。      D) 循环体语句执行一次。
(10)设有定义“char s[12]={“abcdef”};”则命令“printf(“%d\n”,strlen(s));”的输出结果为(    )
A) 随机值    B) 7        C) 6        D) 12
(11) a = 1 , b = 3 , c =5 d=4时,则执行完下面一段程序后,x的值是 (    )
if  ( a < b )
if  ( c < d )  x = 1;
else
if  ( a < c )
if  ( b < d )  x = 2 ;
else  x = 3 ;
else  x = 6 ;
else  x = 7 ;
A1          B) 3        C)  2           D) 6
(12) 下面程序的运行结果是       
# include  " stdio.h "
void main ( )
{ int  a = 1 ,  b = 10
  do
  { b - = a ;  a + + ; }
  while ( b - - < 0 ) ;
  printf ( " a = % d ,  b = % d \ n ), a , b );
Aa = 3 ,  b = 11                Ba = 4 ,  b = 9
Ca = 1 ,  b = -1              Da = 2 ,  b = 8
(13 ) 调用函数时,若实参是一个数组名,则向函数对应的形参传送的是(    )
A) 数组长度                  B) 数组的首位置        
C) 数组第一个元素的值        D) 整个数组元素的值
(14) 若有说明:int  a[10] ; 则对a 数组元素的正确引用是(    )
A) a [10 ]                    Ba[10 - 10]              Ca ( 5 )                    Da[3.5]
(15) 根据定义和数据的输入方式,输入语句的正确形式为         
      已有定义:float  f1,f2; 
      数据输入方式:4.253.5
Ascanf ("%f%f ",&f1,&f2);                  B) scanf ("%f ,%f ",&f1,&f2);
C) scanf ("%3.2f %2.1f ",&f1,&f2);          D) scanf ("%2.1f %3.2f ",&f1,&f2);
(16)有以下程序
void main( )
{ int  a[2][3]={{1, 2, 3},{4, 5, 6}};
int m,(*p)[3]=a;
m=(*(*p)) *(*(*(p+1)+2));
printf("%d\n",m);
}
执行后输出的结果是(    )
以下()是不正确的字符串常量A)3            B) 4            C) 1            D) 6
(17)以下if语句语法正确的是         
A) if (x>0)                          B) if (x>0)  printf ( "%f ",-x )
{ x=x+y; printf ("%f ", x);}            else  printf ("%f",-x);
else  printf ("%f ", -x);
C) if (x>0)                            D) if(x>0)
  {x=x+y ; printf ("%f ", x);};            {x=x+y ; peintf ("%f", x)}
  else  printf ("%f", -x)      ;            else  printf ("%f", -x);
(18) 下列程序的输出结果是(      )
void main( )
{  int  i;
for(i=’A’;i<’I’;i++,++i) printf(“%c”,i+32);
printf(“\n”);
}
A)编译不通过,无输出    B)aceg  C)acegi     D)abcdefghi
(19) 下列程序的输出结果是(      )
void main()
{    int a=2, *p=&a;
      printf ("%d%d", (*p) ++,*p;)
A) 23    B)22      C)2    D)21
(20) 逻辑运算符两侧运算对象的数据类型           
A)只能是01              B) 可以是整型、字符型或实型数据      

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