C语言期末考试复习题及答案3_第1页
C语言期末考试复习题及答案3_第2页
C语言期末考试复习题及答案3_第3页
C语言期末考试复习题及答案3_第4页
C语言期末考试复习题及答案3_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C语言期末考试复习题及答案一、??? ?选择题:下列各题A)、B)、C)、D)四个选项中 只有一 个是正确的,请将正确的选项涂写在答案纸上。答在 试卷上不得分。(1 ) C语言规定:在一个源程序中,main函数的位置 D 。A)必须在最后B)必须在系统调用的库函数的后面oC)必须在最开始。D)可以任意C 语言中的标识符只能由字母、数字和下划线三种字符组成,且第 一个字符 A 。A必须为字母或下划线。B)必须为下划线。C)必须为字母D)可以是字母、数字和下划线中的任一种字符。 下面四个选项中,均是正确的八进制数或十六 进制数的选项是 B。A) -10 0 x8f -011B) 010-0 x11

2、 0 xf1C) 0abc -017 0 xcD) 0a12-0 x123 -0 xa C语言中int型数据在内存中占两 个字节,则unsegned int取值范围是 AA) 065535B) 032767C) -32767 32768D) -32768 327687若有 定义:int a = 7; floa x = 2.5 , y = 4.7 ;则表达式 x + a %3 * (int) (x + y) % 2/4 的值是 D 。A) 2.750000 B) 0.00000 C) 3.500000 D) 2.500000(6)已知ch是字符型变量,下面不正确的赋值语句是 B 0A) ch =

3、 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 oA !(x y )&!z | 1)B) x & y C) x |y+z & y - z D)x = y(8 )设有程序段int k = 10 ;while ( k = 0 )k = k - 1 ;以下描述正确的是A 。A)循环体语句一次也不执行。 B)循环是无限循环。while 循环语句执行十次。 D)循环体语句执行一次。(9)以下C程序正确的运行结果是 A 。main ()long y

4、= 23456;printf ( y = % 3x n , y);printf ( y = % 8x n , y);printf ( y = % # 8x n , y);A) y = 5ba0B) y = 5ba0C ) y = 5ba0 D) y =5ba0y = 5ba0 y = 5ba0y = bba0y =5ba0y = 0 x5ba0y = 0 x5ba0y = 0 x5ba0y=#5ba0(10)当a = 1 , b = 3 , c =5 d=4时,则执行完下面一段程序后,x的值是C 。x = 1;if ( a b )if ( c d )elseif ( a c )if ( b d

5、 ) x = 2 ;else x = 3 ;else x = 6 ;else x = 7 ;A) 1 B) 3 C) 2 D) 6(11)下面程序的运行结果是 D 0# include stdio.h main () int a = 1 , b = 10do b - = a ; a + + ; while ( b - - 0 );printf ( a = % d ,b = % d n ), a , b );b = 11b = -1B) a = 4 ,b = 9D) a = 2 ,b = 8(12)以下for 循环的执行次数是Bfor ( x = 0, y = 0; (y = 123 ) & (

6、 x4 ); x + + );A)无限次。4 次。0次3 次。(13)以下是死循环的程序段的是 Cfor ( i = 1 ;i = 32767 if ( + + i % 2 = = 0 )continue ; 0 ) break ; while ( + + i )do if ( iif ( + + i % 3 = = 0 )break ;C) for ( i = 1 ;)if ( + + i 0)x=x+y; printf (%f , x); (%f,-x);else printf (%f , -x);C) if (x0)x=x+y ; printf (%f , x);(%f, x)3.5sc

7、anf (%f ,%fD) scanf (%2.1f %3.2fC。D) chA 。B) if (x0) printf ( %f ,-x )else printfD) if(x0)x=x+y ; peintfelse printf (%f,-x)else printf (%f,-x);若 W=1, X=2, Y=3, Z=4 则条件式:W X ? W : Y Z Y : Z 的值是AA 1 B ) 3 C ) 4D) 2以下程序段 B 。x = -1;do x = x*x ; while (! x);A)是死循环B)循环执行一次C)循环执行二次D)有语法错误(20)逻辑运算符两侧运算对象的数据

8、类型A)只能是0或1B)可以是任何类型的数据C)只能是整型或字符型数据D)只能是0或非0正数(21)下面程序中有错误的行是(前面数字表示行号)1、?main ()5、scanf ( % d ,& a );2、?6、for ( i =1 ; i 3; i + )a0 = a0 + ai,3、?inta3 = 1;7、printf ( a0=% d n , a0);4、?int8、A) 3B)C)D)7(22)下面的程序段for ( t = 1 ; t = 100, t + + )scanf (%d, &x);if ( x 0 ) continue;printf (%3d, t );A)当x =

9、0 时什么也不输C) printf 函数永远也不执行D)最多允许输出100个非负整数(23)以下对一维整型数组a的正确说明是int a (10)B) int n = 10; an ;C)int n;D) # defineSIZE 10scanf (%d, &n);inta SIZE;int a n;(24)下面程序的运行结果是a=1; b=2; c=2;while (abc) t = a ; a = b ; b = t ; c - - ;printf (%d , %d, %d, a, b, c);C) 1,2, 1D) 2, 1,A) 1,2, 0B) 2, 1,01 (25)若有说明:int

10、 a34; 则对数组元素的非法引用是 B0A) a02*1B) a04C) a4-20D)a13对以下说明的正确理解是 B。int a10 = 6, 7, 8, 9, 10A)将5个初值依此赋给a 1 至a5B)将5个初值依此赋给a 0 至a 4C)将5个初值依此赋给a 6 至a10D)因长度与初值个数不同,故语句错误(27)若二维数组a有m列,则在aij 前的元素个数为 AA) i * m + jB) j * m + i C) i*m + j -1D) i *m + j + 1(28)以下程序段运行的结果是 D。char c5 = a , b , 0 , c , 0 ;printf ( %

11、s , c );A) a b B) ab cC) abcD) ab以下正确的函数定义形式是 A。A) double fun ( int x , int y )B) double fun ( intx ; int y )C) double fun ( int x , int y ) ; D) double fun (int x , int y );以下不正确 的说法是 D。A)实参可以是常量、变量或表达式。 B)形参应与其对应的实 参类型一致。C)实参 可以为任 意类 型。D)形参可以是常量、变量 或表达式。(31)有两个字符数组a, b,则以下正确的输入格式是 C。A) scanf (% s

12、% s, &a, &b )B) gets (a, b)C) scanf (% s % s, a, b )D) gets (a); gets(b)以下程序正确的运行结 果是C。main ()printf ( % 4 d , f(a);int a = 2 , i ;for ( i = 0 ; i 3 ; i + + )f( int a) int b = 0 ; static intc = 3 ;b + + ; c + + ;return ( a + b + c ) ; C) 7 89A) 777B) 7 1013D) 7 911# define能做简单的替代,用宏替代计算多 项式4*x*x + 3

13、*x +2之值的函数f, 正确的宏定义是 C o# define 4*x*x + 3*x + 2C) # define (4*a*a + 3*a + 2)f(x)4*x*x + 3*x + 2f(a) f(a)(4*a*a + 3*a + 2)# define fD) # define(34)当运行以下程序时,从键盘输入:ab c def (表示回车)则下面程序的运行结 果是# include stdio.h# define N 6main ()char c (N);int i= 0;for ( ;i N; ci = getchar ( ),i+);putchar(ci);for (i = 0

14、; i N; i+)A) abcdefB) aC) bD)abcdddef(35)请读程序:# define AD(x) x + xmain ()intm = 1,n = 2 , k = 3 ;intsum = AD( m + n )*k ;printf ( sum = % d , sum ); 上面程序的运行结果是 B。A) sum = 9B) sum = 10C) sum = 12D) sum = 18对下面程序段正确的判断是:Cdefine A 3define B(a) ( A + 1 )*a ) ax = 3*( A + B( 7 );A) ?程序错误,不许嵌套宏定义。B) x = 2

15、1C) x = 93D)程序错误,宏定义不许有参数(37)执行以下程序后,a , b的值为main ()int a , b , k = 4, m = 6, *p1 = &k , *p2 = &m;a = p1 = = &m;b = ( -*p1) / (*p2) + 7;printf ( a = % dn , a );printf ( b = % dn , b );A) -1B) 0C) 1576D)10(38)以下程序中调用 scanf函数给变量a输入数值的方法是错误的,因为main ()int *p , *q , a , b ;p = &a ;printf ( input a :);sca

16、nf ( %d ,*p);A)*p表示的是变量 a的值,而不是变量a的地址。B)*p表示的是指针变量p的地址。C)*p表示的是指针变量p的值。D)*p只能用来说明p是一个指针变量。(39)以下程序的运行结果是。# define MIN (x, y) (x) sex);D) scanf ( % d , &(p - age);(47)若有定义:int a34;则对a数组白第i行第j列(假设i, j已正确说明并赋 TOC o 1-5 h z 值)元素值的正确引用为。A) * ( * ( a + i) + j)B) ( a + j) j C) * ( a + i + j)D) *(a +i ) +j(

17、48)若已定义char S10;则在下面表达式中不表示S1的地址的是。A) S + 1B) & S 1C) & S 0 + 1D) S + +(49)若有定义:int a23则对 a数值的第i行,第 j列元素地址的正确引用 为。A) *( a i + j ) B)a i + j C) *( a + j )D) (a + i )(50)若有以下定义,且 0 = i 6 ,则正确的赋值语句是。int s46 , t 64 ,(*p)6;A) p = t ;B) p = s i ;C) p = s ;D)p = t i ;(51)以下程序的运行结果是 # include stdio.hmain ()

18、 TOC o 1-5 h z union longa ;intb ;char c;printf ( %d n , sizeof (m) ; A) 4B) 2C) 6D)8 (52)当顺利执行了文件,关闭操作时,fclose函数的返回值是。A) 0B) TURNC) -1D) 1 (53)已知学生记录描述为 struct student int no;char name 20;char sex;struct int year;int month;int day; birth; s;设变量s中的“生日”应是“1984年6月6日”,下列对“生日”的正确赋值方式B) birth. year = 198

19、4;birth. month = 6;birth. day = 6;D) s. birth. year = 1984;s. birth. month = 6;s. birth. day = 6 ;.;B) , , & , |D) , | , & , 00011000C) 00011100A) year = 1984;month = 6;day = 6;C) s. year = 1984;month = 6;day = 6 ;(54)表达式a b | c& d的运算顺序是A) , & , , |C) , & , | , (55)设有以下语句:char x = 3 , y = 6 , z ;z =

20、 x A y 2 ; TOC o 1-5 h z 则z的二进制值是A) 00010100B)D) 00011011(56)已知函数的调用形式 :fread ( buffer , size , count , fp ), 其中 buffer代表的 是。一个整型变量,代表要读入的数据项总数.一个文彳指针,指向要读的文件.一个存储器,存放要读的数据项.一个指针,指向要读入数据的存放地址(57)若有函数 max (a, b),并且已使函数指针变量p指向函数max,当调用该函数时,正确的调用方法是B) *p max (a, b);A) (*p) max (a, b);C) *P (a, b)D) (*p

21、) (a, b)(58)在16位IBM-PC 机上使用C语言,若有如下定义: union dataint i;char ch ;double f ; b ;则其共用体变量b占用内存字节数是A) 1B) 2C) 8(59)若有以下程序段int x = 1, y = 2;x = x A y ;y = y a x ;x = x a y;则执行以上语句后x和y的值分别是x = 1B) x = 2y = 2y = 1(60)若要用fopen函数打开一个新的二进制文件, 串应是。OD) 4x = 2y = 2该文件要既能读也能写,x = 1 y =则文件方式字符A) w+ ab + C) wb+ D) a

22、b 二.填空(每空2分,共40分):请在门处添上正确答案。条件2 x 3或x -10 的C语言表达式是1 .以下程序的功能是判断输入的年份是不是闰年,请在内添入正确的内容main () int y , f ;scanf ( % d , &y );if ( y % 400 = = 0 ) f = 1;else if (2) f = 1 ;else 3;if (f ) printf ( % dis , y );else printf ( % dis not , y);Printf ( a leap year n );以下程序是用梯形法求 sin( x ) * cos( x )的定积分,求定积分的公

23、式为: 其中 xi = a + ih , h = (b - a )/n设 a = 0, b = 1.2为积分上下限,积分区间分割数n = 100 ,include include main () int i , n; double h, s, a, b ; printf ( input a, b :);scanf (% If % If ”, 4);n = 100; h = 5S = 0.5 * ( sin( a ) * cos( a ) + sin( b ) * cos( b ); for ( i = 1; i = n - 1; i + +) S+ = 6;S* = h;Printf ( S

24、= % 10.4 lfn ,S);下面程序的运行结果是7)# include stdio.h main ()int i =1;while ( i =15)if ( + + i % 3! = 2 ) continue ;else printf ( % d , i );printf ( n ) ;下面程序段运彳T的结果是8。i = 1; s = 3;do s+ = i + + ;if (s % 7 = = 0) continue;else + + i; while (s 15);printf ( % d , i );以下程序是矩阵a, b的乘积:main () int a32 = 2 , -1 ,

25、 -4,0,3 , 1 ;int b22 = 7 ,-9 , -8 , 10 int i , j , k , s , c32;for( i = 0 ;i3;i + + )for( j = 0 ;j2;j + + ) for(9 ;k2;k + + )s + = 10; TOC o 1-5 h z cij = s ;for( i = 0 ; i 3 ; i + + ) forfor( j = 0 ; j 2 ; j + + )printf ( % 6d , cij);11 设数组a包才10个整型元素。下面程序的功能是求出a中各相邻两个元素的和,并将这些和存放在数组 b中,按每行三个元素的形式输出

26、。main () int a10,b10 ,i ;for ( i = 0;i 10;i + +)scanf ( % d , &ai);for (12; i 10; i + +)for ( i = 1; i 10; i + +)printf ( % 3d , bi);if ( 14 = 0 ) printf ( n ); 以下程序的功能是根据公式求e的近似值,精度要求为10-6 .请填空.# include main ()int i ; double e , new ;new = 1.0for ( i = 1; 16 i + + )new / = (double ) i ; e+ = new ; printf ( e = % f

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论