《C语言期末考试复习试题与答案3》由会员分享,可在线阅读,更多相关《C语言期末考试复习试题与答案3(25页珍藏版)》请在金锄头文库上搜索。
1、. . . . .C语言期末考试复习题及答案一、 选择题:下列各题A)、B)、C)、D)四个选项中只有一个是正确的,请将正确的选项涂写在答案纸上。答在试卷上不得分。(1)C语言规定:在一个源程序中,main函数的位置 D 。A)必须在最后 B)必须在系统调用的库函数的后面。C)必须在最开始。D)可以任意(2) C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符 A 。A)必须为字母或下划线。B)必须为下划线。C)必须为字母 D)可以是字母、数字和下划线中的任一种字符。(3)下面四个选项中,均是正确的八进制数或十六进制数的选项是 B 。A)-10 0x8f -011 B) 010
2、 -0x11 0xf1C) 0abc -017 0xc D) 0a12 -0x123 -0xa(4) C语言中int型数据在内存中占两个字节,则unsegned int取值范围是 A 。A)0 65535 B)0 32767C)-32767 32768 D)-32768 327687(5) 若有定义:int a = 7; floa x = 2.5 , y = 4.7 ; 则表达式 x + a % 3 * (int) (x + y) % 2/4 的值是 D 。A)2.750000B)0.00000C) 3.500000D) 2.500000 (6)已知ch是字符型变量,下面不正确的赋值语句是 B
3、 。A)ch = 5 + 9;B) ch= a + b ; C) ch = 0 ;D) ch= 7 + 6;(7) 设x , y和z是int型变量,且x = 3, y = 4 , z = 5 则下面表达式中值为0的 是 A 。A)!(x y )&!z | 1)B) x & y C) x | y+z & y - zD)x = y (8)设有程序段int k = 10 ;while ( k = 0 ) k = k - 1 ; 以下描述正确的是 A 。A) 循环体语句一次也不执行。B) 循环是无限循环。C) while 循环语句执行十次。D) 循环体语句执行一次。 (9) 以下C程序正确的运行结果是
4、 A 。 main ( )long y = 23456; printf ( y = % 3x n , y); printf ( y = % 8x n , y); printf ( y = % # 8x n , y);A) y = 5ba0B)y = 5ba0C ) y = 5ba0D)y = 5ba0y = 5ba0 y = 5ba0 y = bba0 y = 5ba0y = 0x5ba0 y = 0x5ba0 y = 0x5ba0y = #5ba0 (10) 当a = 1 , b = 3 , c =5 d=4时,则执行完下面一段程序后,x的值是 C 。 if ( a b ) if ( c d
5、 ) x = 1; else if ( a c ) if ( b d ) x = 2 ; else x = 3 ; else x = 6 ; else x = 7 ;A)1B) 3C) 2D) 6(11) 下面程序的运行结果是 D 。# include stdio.h 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 = 11B)a = 4 , b = 9C)a = 1 , b = -1D)a = 2 ,
6、 b = 8(12)以下for 循环的执行次数是 B 。 for ( x = 0, y = 0; (y = 123 ) & ( x4 ); x + + );A) 无限次。 B)4次。 C)0次 。 D)3次。(13) 以下是死循环的程序段的是 C 。A) for ( i = 1 ; ; ) B) i = 32767 if ( + + i % 2 = = 0 ) continue ; do if ( i 0 ) break ; while ( + + i ) if ( + + i % 3 = = 0 ) break ; C) for ( i = 1 ; ; ) D) i = 1 if ( + +
7、 i 0)B) if (x0) printf ( %f ,-x ) x=x+y; printf (%f , x); else printf (%f,-x); else printf (%f , -x);C) if (x0) D) if(x0) x=x+y ; printf (%f , x); x=x+y ; peintf (%f, x) else printf (%f, -x); else printf (%f, -x);(18) 若 W=1, X=2, Y=3, Z=4 则条件式: W X? W : Y Z ? Y : Z 的值是 A 。A)1 B)3 C)4 D)2(19) 以下程序段 B
8、 。x = -1;do x = x*x ; while (! x);A) 是死循环B)循环执行一次C)循环执行二次D)有语法错误(20) 逻辑运算符两侧运算对象的数据类型 B 。A)只能是0或1 B) 可以是任何类型的数据C) 只能是整型或字符型数据D)只能是0或非0正数(21)下面程序中有错误的行是 C 。(前面数字表示行号)1、 main ( )5、scanf ( % d ,& a ) ;2、 6、for ( i =1 ; i 3; i + + ) a0 = a0 + ai,3、 int a3 = 1;7、printf ( a0 = % d n , a0 );4、 int i ; 8、 A
9、) 3B) 6C) 5D) 7(22)下面的程序段 D 。 for ( t = 1 ; t = 100, t + + ) scanf (%d, &x); if ( x 0 ) continue; printf (%3d, t ); A) 当x = 0时什么也不输出 C) printf 函数永远也不执行D)最多允许输出100个非负整数(23)以下对一维整型数组a的正确说明是 D 。 A)int a (10)B) int n = 10; an ; C) int n;D) # define SIZE 10 scanf (%d, &n); int a SIZE; int a n; (24) 下面程序的
10、运行结果是 A 。a=1; b=2; c=2;while (abc) t = a ; a = b ; b = t ; c - - ;printf (%d , %d, %d, a, b, c);A) 1, 2, 0 B) 2, 1, 0 C) 1, 2, 1 D) 2, 1, 1(25) 若有说明:int a34; 则对数组元素的非法引用是 B 。A)a02*1 B) a04 C) a4-20 D) a13(26) 对以下说明的正确理解是 B 。 int a10 = 6, 7, 8, 9, 10 A) 将5个初值依此赋给a 1 至a5 B)将5个初值依此赋给a 0 至a 4 C)将5个初值依此赋给a 6 至a10 D) 因长度与初值个数不同,故语句错误(27) 若二维数组a有m列,则在a i j 前的元素个数为 A A) i * m + jB)j * m + i C) i*m + j -1D)i * m + j + 1(28) 以