欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    最新C语言期末考试复习题及答案3.doc

    • 资源ID:33807771       资源大小:253KB        全文页数:38页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    最新C语言期末考试复习题及答案3.doc

    精品资料C语言期末考试复习题及答案3.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 -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 。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程序正确的运行结果是 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 ) 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 , b = 8(12)以下for 循环的执行次数是 B 。 for ( x = 0, y = 0; (y = 123 ) && ( x<4 ); 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 ( + + i < 10) continue ; while ( i - - ) ;(14) 若有说明:int a10 ; 则对a 数组元素的正确引用是 B 。A) a 10 B)a10 - 10C)a ( 5 )D)a3.5(15) 根据定义和数据的输入方式,输入语句的正确形式为 A 。 已有定义:float f1,f2; 数据输入方式:4.25 3.5A)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) 已知ch是字符型变量,下面正确的赋值语句是 C 。A)ch = '123'B)ch=' 08 ' C) ch =' xff 'D) ch =" "(17)以下if语句语法正确的是 A 。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) 若 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 。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) 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 时整个循环结束B)当 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) 下面程序的运行结果是 A 。a=1; b=2; c=2;while (a<b<c) 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) 以下程序段运行的结果是 D 。 char c5 = ' a ', ' b ', ' 0 ', ' c ', ' 0 ' ; printf ( " % s ", c ); A)' a ' ' b ' B) ab cC) abcD) ab(29) 以下正确的函数定义形式是 A 。 A) double fun ( int x , int y ) B) double fun ( int x ; int y ) C) double fun ( int x , int y ) ; D) double fun ( int x , int y );(30) 以下不正确的说法是 D 。 A) 实参可以是常量、变量或表达式。B)形参应与其对应的实参类型一致。 C)实参可以为任意类型。D)形参可以是常量、变量或表达式。(31) 有两个字符数组 a, b,则以下正确的输入格式是 C 。 A) scanf ("% s % s", &a, &b )B) gets (a, b)C) scanf ("% s % s", a, b ) D) gets ("a"); gets ("b")(32) 以下程序正确的运行结果是 C 。 main ( ) int a = 2 , i ; for ( i = 0 ; i < 3 ; i + + ) printf ( " % 4 d " , f(a) ) ; f( int a) int b = 0 ; static int c = 3 ; b + + ; c + + ; return ( a + b + c ) ; A) 7 7 7B) 7 10 13C) 7 8 9D) 7 9 11(33) # define 能做简单的替代,用宏替代计算多项式4*x*x + 3*x + 2 之值的函数f, 正确的宏定义是 C 。 A) # define f(x) 4*x*x + 3*x + 2B) # define f 4*x*x + 3*x + 2C) # define f(a) (4*a*a + 3*a + 2)D) # define (4*a*a + 3*a + 2) f(a)(34) 当运行以下程序时,从键盘输入:ab <CR> c <CR> def <CR> (<CR>表示回车)则下面程序的运行结果是 D 。 # include "stdio.h" # define N 6 main ( ) char c (N); int i= 0; for ( ;i < N; ci = getchar ( ),i+); for (i = 0; i < N; i+) putchar(ci); A) abcdefB) aC) bD) ab bcccdddef (35) 请读程序: # define AD(x) x + x main ( ) int m = 1, n = 2 , k = 3 ; int sum = AD( m + n )*k ; printf ( " sum = % d ", sum ); 上面程序的运行结果是 B 。 A) sum = 9B) sum = 10C)sum = 12D) sum = 18 (36) 对下面程序段正确的判断是:_C_ # define A 3 # define B(a) ( A + 1 )*a ) M x = 3*( A + B( 7 ) ) ;A)  程序错误,不许嵌套宏定义。B) x = 21C) 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) -1 B) 0 C) 1 D) 45 7 6 10 (38) 以下程序中调用 scanf 函数给变量 a输入数值的方法是错误的,因为 。 main ( ) int *p , *q , a , b ; p = &a ; printf ( " input a : " ); scanf ( " %d ", *p) ; A)*p 表示的是变量 a 的值,而不是变量a 的地址。B)*p 表示的是指针变量 p 的地址。C)*p 表示的是指针变量 p 的值。D)*p 只能用来说明p是一个指针变量。 (39) 以下程序的运行结果是 。 # define MIN (x, y) (x) < (y) ? (x) : (y) main ( ) int i = 10, j = 15, k; k = 10 * MIN (i, j); printf ( " % d n ", k ); A) 15 B) 10 C) 100 D) 150 (40) 以下正确的函数形式是B) double fun (int x, int y) B) fun ( int x, y) z = x +y; return z ; int z; return z; C) fun (x, y) D) double fun (int x, int y) int x, y; double z; double z ; z = x + y; return z; (41) 以下不正确的说法是 。A) 在不同函数中可以使用相同名字的变量。B) 形式参数是局部变量。C) 在函数内的复合语句中定义的变量在本函数范围内有效。D) 在函数内定义的变量只在本函数范围内有效。 (42 ) C语言提供的预处理功能包括条件编译,其基本形式为: # X X X 标识符 程序段 1 # else 程序段 2 # endif 这里X X X 可以是 。A) define 或 include. B) ifdef 或ifndef 或 ifC) ifdef 或 ifndef 或 define D) ifdef 或include (43)以下程序的正确运行结果是 。 # include "stdio.h" main ( ) int k = 4, m = 1, p ; p = func ( k, m); printf ("% d ,", p); p = func ( k, m); printf ("% dn", p); func (int a , int b) static int m = 0 , i = 2; i+ = m+1; m = i + a +b; return (m) ; A) 8, 16 B) 8, 17 C) 8, 20 D) 8, 8(44) 已有定义 int k = 2; int *p1, *p2, 且p1和p2均已指向变量k,下面不能正确执行的赋值语句是 。A) k = *p1 + *p2 ; B) p1 = p2; C) p2 = k ; D) k = *p1*(*p2) ; (45) 若有说明int *p, m = 5, n; 以下正确的程序段是 。A) p = &n; B) p = &n; Scanf (" % d ", &p); Scanf (" % d ", *p);C) Scanf (" % d ", &n) D) p = &n; *p = n; *p = m;(46) 以下scanf函数调用语句中, 对结构体成员的不正确引用为 。 struct pupil char name20 ; int age ; int sex ; pup5 , *p ; p = pup ; A) scanf ( " % s " , pup0 . name); B) scanf ( " % d " , &pup0 . age); C) scanf ( " % d " , p ->sex); D) scanf ( " % d " , &(p -> age); (47) 若有定义: int a34; 则对a数组的第i行第j列(假设i, j已正确说明并赋 值)元素值的正确引用为 。 A) * ( * ( a + i) + j) B) ( a + j) j C) * ( a + i + j) D) *(a +i ) +j(48) 若已定义char S10 ;则在下面表达式中不表示S1 的地址的是 。 A) S + 1 B) & S 1 C) & S 0 + 1 D) 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.h " main ( ) union long a ; int b ; char c ; m ; printf ( " %d n ", sizeof (m) ; A) 4 B) 2 C) 6 D) 8(52) 当顺利执行了文件,关闭操作时, fclose函数的返回值是 。 A) 0 B) TURN C) -1 D) 1(53) 已知学生记录描述为struct student int no; char name 20; char sex; struct int year; int month; int day; birth; s;设变量s中的“生日”应是“1984年6月6日”,下列对“生日”的正确赋值方式是 。A) year = 1984; B) birth. year = 1984;month = 6; birth. month = 6;day = 6; birth. day = 6;C) s. year = 1984; D) s. birth. year = 1984; s. month = 6; s. birth. month = 6;s. day = 6 ; s. birth. day = 6 ;(54) 表达式 a < b | c& d 的运算顺序是 .;A) , & , < , | B) , < , & , | C) , & , | , < D) , | , & , < (55) 设有以下语句:char x = 3 , y = 6 , z ;z = x y < < 2 ;则z 的二进制值是 . A) 00010100 B) 00011000 C) 00011100 D) 00011011 (56) 已知函数的调用形式: fread ( buffer , size , count , fp ), 其中 buffer代表的是 。A) 一个整型变量, 代表要读入的数据项总数.B) 一个文件指针, 指向要读的文件.C) 一个存储器, 存放要读的数据项.D) 一个指针, 指向要读入数据的存放地址(57) 若有函数 max (a, b), 并且已使函数指针变量p指向函数max, 当调用该函数时,正确的调用方法是 。 A) (*p) max (a, b); B) *p max (a, b);C) *p (a, b) D) (*p) (a, b)(58) 在16位IBM-PC 机上使用C语言,若有如下定义:union dataint i;char ch ;double f ; b ; 则其共用体变量b占用内存字节数是 。A) 1 B) 2 C) 8 D) 4(59) 若有以下程序段int x = 1, y = 2;x = x y ;y = y x ;x = x y;则执行以上语句后x和y的值分别是 。A) x = 1 B) x = 2 C) x = 2 D) x = 1 y = 2 y = 2 y = 1 y = 1 (60) 若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写,则文件方式字符串应是 。 A) "w+" B) " ab + " C) " wb+ " D) " ab "二.填空(每空2分,共40分):请在 处添上正确答案。(1) 条件 " 2 < x < 3或 x < -10 " 的C语言表达式是 1 .(2) 以下程序的功能是判断输入的年份是不是闰年, 请在 内添入正确的内容. main ( ) int y , f ;scanf ( "% d ", &y ) ;if ( y % 400 = = 0 ) f = 1;else if (2) f = 1 ; else 3 ;if (f ) printf ( " % d is ", y ); else printf ( " % d is not " , y) ;Printf (" a leap year n ") ; 原文链接:(3) 以下程序是用梯形法求 sin( x ) * cos( x ) 的定积分,求定积分的公式为:其中 xi = a + ih , h = (b - a )/n设 a = 0, b = 1.2 为积分上下限,积分区间分割数 n = 100 , # include < stdio . h > # include < math. h > main ( ) int i , n; double h, s, a, b ; printf (" input a, b :"); scanf ( "% lf % lf ", 4); n = 100; h = 5 S = 0.5 * ( sin( a ) * cos( a ) + sin( b ) * cos( b ) ); for ( i = 1; i <= n - 1; i + +) S+ = 6;S* = h;Printf (" S = % 10.4 lfn ",S); (4) 下面程序的运行结果是7)# include " stdio.h " main ( ) int i =1; while ( i < =15) if ( + + i % 3! = 2 ) continue ; else printf ( " % d " , i ) ; printf ( " n ") ; (5) 下面程序段运行的结果是 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 , -4 , 0 , 3 , 1 ; int b22 = 7 , -9 , -8 , 10 int i , j , k , s , c32 ; for ( i = 0 ; i < 3 ; i + + ) for ( j = 0 ; j < 2 ; j + + ) for (9 ; k < 2 ; k + + ) s + = 10 ; cij = s ; for ( i = 0 ; i < 3 ; i + + ) for for ( j = 0 ; j < 2 ; j + + ) printf ( % 6d ", cij ) ; 11 (6) 设数组a包括10个整型元素。下面程序的功能是求出a 中各相邻两个元素的和,并将这些和存放在数组b中,按每行三个元素的形式输出。 main ( )

    注意事项

    本文(最新C语言期末考试复习题及答案3.doc)为本站会员(1595****071)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开