C语言复习
一、判断题:
1. ’\x72’、’\n’、’\\’ 都是字符常量。( y )。
2. 若有说明int c[4][50];则gets(c[1]);是正确的C命令语句。 ( y) 3. 若有变量定义long data=10000000;则使用命令printf(”%d”,data);实现变量值输出是错误的命令语句,无法通过编译。(n) 4. 若有变量定义int a=1;表达式a- -?+ +a:- -a的值为1。(y)
5. 若有变量定义double x=-3.4;循环语句 while (x){ x = x>0; }是错误命令。(n)
6. 定义数组char s[ ]={“abc“},则数组s的元素个数为3。(n) 7. int *p=&a ,a=0;是正确的C变量定义语句。 (n )
8. C语言程序从main函数开始执行,所以main函数必须写在其他被调用的函数之前。( n )
9. 表达式7=3+4不正确。 ( y)
10. 字符数组char str[ ]="abcd"; 有5个数组元素( y )
11. while 1 i,j; 一定是错误的C语句。李涛漂移 (y )
12. for( ; ; )S中的语句S必执行无穷多次。 ( n)
13. 用字符型指针变量p作为函数void fa(char *pa)的实际参数时,应采用以下的命令格式fa (*p ); ( n )
14. sub()和Sub( )是不同的函数 ( y)
15. 在C程序中,函数中所定义的局部变量与全局变量同名时,局部变量屏蔽全局变量。( y )
16. 全局外部变量定义命令必须写在函数之外。( y )
17. 指针变量算术运算只能可作+、—运算。( y )
18. 如有定义float a[10]; 可定义表达式a=a+1。( n )
19. 在逻辑表达式的计算中,必须所有的逻辑远算符都被执行后,才会结束表达式的计算(n)
20. 数组名作为函数实际参数,传送的是地址(y)
21. 若变量pointer是指针变量,命令pointer=0x2000; 是正确的赋值命令. (n)
22. int c[2][ ]={{1,2},{3,4}}; 是正确的二维数组定义命令。(n)
23. printf("%5. 3f\n",123456.12345);输出为康复辅助器具技术23456.123 (n) 。
24. 变量定义 char *(pa) [4] ;说明pa是用于数组处理的指针。(n)
25. 用命令scanf("%s",name); 对字符数组进行输入操作,当键入“I am a Student”时,数组的内容为“I”。 (y)
26. 表达式 ‘B’+a’-‘A’ 的结果是’b’ (y)
27. while ( ) { ;} 表示无限循环 (n)
28. switch (j) {……..} 语句中的变量j可以是浮点型变量(n)
29. 全局变量的不加存储方式修饰符时,说明其存储类型为auto(n)
30. 指针变量本身没有指针(n)
31. 关键字“struct” 用于定义数据类型(n)
二、 单项选择题:
(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是字符型变量,下面不正确的赋值语句是 ( ) 。
A)ch = 5 + 9 ; B) ch= ' a + b '; C) ch = ' \ 0 '; D) ch= '7' + '6' ;
(8) 设x , y和int型变量,且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 ;
A)1 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 );
A)a = 3 , b = 11 B)a = 4 , b = 9
C)a = 1 , b = -1 D)a = 2 , b = 8
(13 ) 调用函数时,若实参是一个数组名,则向函数对应的形参传送的是( )
A) 数组长度 B) 数组的首地址
C) 数组第一个元素的值 D) 整个数组元素的值
(14) 若有说明:int a[10] ; 则对a 数组元素的正确引用是( ) 。
A) a [10 ] B)光刻法a[10 - 10] C)a ( 5 ) D)a[3.5]
(15) 根据定义和数据的输入方式,输入语句的正确形式为 。
已有定义:float f1,f2;
数据输入方式:4.25,3.5
A)scanf ("%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);
}
ostasksuspend
执行后输出的结果是( )
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;