《2022年c语言期末考试题及其答案 .docx》由会员分享,可在线阅读,更多相关《2022年c语言期末考试题及其答案 .docx(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品_精品资料_C 语言期末考试卷及其答案一 选择题( 7 分,每道题 0.5 分)1.C 语言源程序的基本单位是(B).A 过程B 函数C 子程序D 标识符2.以下程序的输出结果是(C ).main int a=7,b=5 .printf%dn,b=b/a.A 5B 1C 0D 不确定值3. 假设变量 a,b 均为整型,表达式a=5,b=2,ab.a+:b+,a+b 的值是( B ).A 7B 8C 9D 24. 设 a 为 int 型变量,执行以下赋值语句后,a的取值分别是().a=125.534 . a=int125.521%4 . a=52 . A 125,31,1 B 125,1,2
2、0C 125,31,20 D 125.534,2,205. 设有如下程序段,下面描述中正确选项( C ).int k=10 . whilek=0 k=k-1 .A 循环执行一次B 循环是无限循环C 循环体语句一次也不执行D 循环体语句执行一次6. 以下程序的输出结果为(D ).int i .void prt fori=5 .i8 .i+printf%c,*.printft.main fori=5 .in B +p-nC p-n+D *p.n+14.C 语言中的文件类型只有().A 索引文件和文本文件两种B 文本文件一种C 二进制文件一种D ASCII 码文件和二进制文件两种可编辑资料 - -
3、- 欢迎下载精品_精品资料_二 判定对错,对的划“”,错的划“”(5 分,每道题0.5 分)1. 在 Turbo C 中,整型数据在内存中占2 个字节.()2. int i=20 .switchi/10case2:printfA. case 1:printfB. 的输出结果为A .()3. break 语句用在循环体中,可终止本层循环,continue 语句用在循环体中,可终止本次循环.()4. 函数的递归调用不过是一个函数直接或间接的调用它自身.()5. 函数 strlenASDFGn 的值是 7.()6. 通过 return 语句,函数可以带回一个或一个以上的返回值.()7. 结构体类型只
4、有一种.()8. char *p=girl .的含义是定义字符型指针变量p, p 的值是字符串 girl .()9. 如有定义: char *pchar a10 .就 p 是函数名.() 10用 fopenfile,r+.打开的文件 file 可以进行修改.()三 写出以下程序的运行结果( 10 分,每道题 2 分)1. float average float array10int i .float aver,sum=array0 .for i=1 .i10.i+sum=sum+arrayi .aver=sum/10.returnaver .main float score10 89,67.5
5、,78,91,56,82.5,65,70,79,88,aver .int i .aver=average score.printf “ average score is %5.2fn” ,aver.2. main chara5= A , B , C , D ,E ,*p=a,*pa .可编辑资料 - - - 欢迎下载精品_精品资料_forp=0 .pa+5.p+printf “ %2c” ,*p .printf “ n” .printf “ %2cn” ,*pa=&p .3. main int a,b,s=0 .fora=1,b=1 .a=20break .ifb%3=1b+=3 . cont
6、inue. b-=5 .printf “ a=%dtb=%dn ” ,a,b.4.main printf “ main :%dn ” ,fact5 .fact-5 .factint value int f .ifvalue0 printf “Arg errorn .return-1 .else ifvalue=1|value=0f=1 .else f=value*factvalue-1+1 .printf “ This called value=%dn ” ,f .return f .5. main int a=012,b=0x12,k=12 .char c= 102,d= r.printf
7、“ a=%dtb=%dtk=%dn ” ,a,b,k.可编辑资料 - - - 欢迎下载精品_精品资料_printf “ c=%c,d=%c%on ” ,c,d,a.a=A . c=49.printf “ a=%dtc=%cn ” ,a,c.四 阅读以下程序 , 在处填入适当内容,使程序完整(8 分,每个空 1 分)1. 有一个 3*4 矩阵,求其中的最大元素.max_value1 int i,j,max .max=array00 .fori=0 .i3 .i+forj=0 .jmaxmax=arrayij.(2) .main int a34, i,j.fori=0 .i3 .i+ forj=0
8、 .j4 .j+(3) .printf “ max value is %dn ” ,max_valuea.2. 输入 x、y 两个整数,按先大后小的次序输出x、y.#include “ stdio.h”main int x,y, *px,*py,4.scanf“ %d%d ” ,&x,&y .5. 6.ifxy p=px . px=py . py=p . printf “ x=%d,y=%dn ” ,x,y .printf “ MAX=%d,MIN=%dn”,*px,*py .可编辑资料 - - - 欢迎下载精品_精品资料_3. 用选择排序法对任意10 个整数依据由小到大排序.main int
9、 a11,i,j,k,t.printfPlease input 10 numbers:n .fori=1 .i11. i+scanf%d,&ai.printfn .fori=1 .iakk=j.可编辑资料 - - - 欢迎下载精品_精品资料_ifk.=i t=ak . ak=ai . ai=t .可编辑资料 - - - 欢迎下载精品_精品资料_printfThe sorted numbers:n .fori=1 .i11.i+ printf%d ,ai.答案一 选择题( 7 分,每道题 0.5 分)1. B2. C3. B4. B5. C6. A7. B8. A9. A10. C11. A12
10、. A13. B14. D二 判定对错,对的划“”,错的划“”(5 分,每道题 0.5分)1.2.3.4.5.6.7.8.9.10.三 写出以下程序的运行结果( 10 分,每道题 2 分)可编辑资料 - - - 欢迎下载精品_精品资料_1.2.3.4.5.四阅读以下程序 ,在处填入适当内容,使程序完整(8 分,每个空 1 分)1.1intarray34intarray42returnmax3scanf“ %d” ,&aij2.4*p5px=&xpy=&y6py=&ypx=&x 3.782022C语言试卷 3一 选择题( 24 分,每道题 2 分)1. 已知函数 fread 的调用形式为 fre
11、ad (buffer ,size ,count , fp ), 其中 buffer代表的是().A 存放读入数据项的储备区B存放读入数据的的址或指向此的址的指针C 一个指向所读文件的文件指针D一个整形变量 , 代表要读入的数据项总数2. 以下程序的输出结果为().可编辑资料 - - - 欢迎下载精品_精品资料_main int i=010,j=10.printf%d,%dn,i+,j-.A 11,9B 9,10C 8,10D 9,93. 设 a 为 int型变量,执行以下赋值语句后,a 的取值分别是().a=125.534.a=20.0/3 .a=int125.521%4 .a=52.A 12
12、5,6,31,1 B 125,6,1,20 C 125,6.666666,31,20 D125.534,6.666666,2,204. 设 i 和 k 都是 int类型,就 for循环语句().fori=0,k=-1.k=1.i+,k+ printf*n.A 循环终止的条件不合法B循环体一次也不执行 C循环体只执行一次D 是无限循环5. 以下程序的输出结果为().main char c.int i.fori=65.i68 .i+ c=i+32.switchc case a:case b:case c:printf%c,c.break .default:printfend.A a,b,c,end
13、B a,a,a,endC a,a,a,D a,b,c, 6函数调用语句: fseek (fp , -10L ,2).的含义是().A 将文件位置指针从文件末尾处向文件头的方向移动10 个字节B 将文件位置指针从当前位置向文件头的方向移动10 个字节C 将文件位置指针从当前位置向文件末尾方向移动10 个字节D 将文件位置指针移到距离文件头10 个字节处7以下程序的输出结果为().main char s140=country,s220=side.int i=0,j=0.可编辑资料 - - - 欢迎下载精品_精品资料_whiles1i.=0 i+.whiles2j.=0 s1i+=s2j+.s1i=
14、0.printf%sn,s1.A sideB countryC sidetryD countryside 8以下说法不正确选项().A 主函数 main 中定义的变量在整个文件或程序中有效B 不同函数中 , 可以使用相同名字的变量C 形式参数是局部变量D 在一个函数内部 , 可以在复合语句中定义变量,这些变量只在本复合语句中有效9. 在以下程序段中,枚举变量 c1 的值是().enum color red,yellow,blue=4,green,whitec1. c1=yellow .c1=white .A 1B 3C 5D 610. 设有说明 int *ptr.其中标识符 ptr是( ).A
15、 是一个指向整形变量的指针B是一个指针 , 它指向一个函数值是 int的函数C 是一个函数名D定义不合法11. 定义由 n 个指向整形数据的指针组成的数组p, 其正确的方式为( ).A int p.B int *pn.C int *pn.D int *p .12. 具有相同类型的指针类型变量p 与数组 a, 不能进行的操作是().A p=a.B *p=a0.C p=&a0.D p=&a.二 判定对错,对的划“”,错的划“”(20 分,每道题2 分)1. 参加位运算的数据可以是任何类型的数据. 2. 如有定义和语句: int a.char c .float f.scanf%d,%c,%f,&a,
16、&c,&f.如通过键盘输入: 10,A,12.5 ,就 a=10,c= A ,f=12.5 . 3. C语言把文件看作是一个字符(字节)的序列. 可编辑资料 - - - 欢迎下载精品_精品资料_4. 如有宏定义: #define Sa,b t=a.a=b.b=t 由于变量 t 没定义,所以此宏定义是错误的. 5. 在 Turbo C 中,下面的定义和语句是合法的: file *fp.fp=fopena.txt,r. 6. 如有定义: char s china .就 Turbo C 系统为数组 s 开创 6 个字节的内存单元. 7如有定义和语句: int a333,5,8,9,12,35,i,s
17、um=0.fori=0.i3 .i+ sum+=ai2-i.就 sum=21. 8如有定义和语句: struct student int num. charname10 . float score.s5=1,lili,98.5,9,xiaohua,66,*p=s.printf%d,*p+.输出结果是 1. 9. 在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量. 10. 在 Turbo C 中,此定义和语句是合法的: enum aa a 5,b,cbb .bb=enum aa5 . 三 写出以下程序的运行结果( 36 分,每道题 6 分)1. main int i=29,j=
18、6,k=2,s.s=i+i/j%k-9.printf“ s=%dn”,s .2. main int x=31,y=2,s=0.do s-=x*y.x+=2 .y-=3 . while x%3=0.printf“x=%dty=%dts=%dn ”,x,y,s.3. main int a610,20,30,40,50,60,i.inverta,0,5.可编辑资料 - - - 欢迎下载精品_精品资料_fori=0.i6 .i+ printf“%d,” ,ai.printf“n ” .invertint s ,int i,int j int t.ifij inverts,i+1j-1.t=si.si=
19、sj.sj=t.4.#include main char str =“The C program ”,c .int i.fori=2.c=stri.=0 .i+ switchc case g : +i. break .case o : continue.default: printf“ %c”,c .可编辑资料 - - - 欢迎下载精品_精品资料_continue .printf“*” .可编辑资料 - - - 欢迎下载精品_精品资料_printf“n ” .5. struct wchar low.char high.union u struct w byte.short word.uw.可编
20、辑资料 - - - 欢迎下载精品_精品资料_main int result.uw.word=0x1234.printf“word value:%04xn ”,uw.word .printf“high byte:%02xn ”,uw.byte.high.printf“low byte:%02xn ”,uw.byte.low.uw.byte.low=0x74.printf“word value:%04xn ”,uw.word .result=uw.word+0x2a34.printf“the result:%04xn”,result.6. main() char *s2=“ I love Chin
21、a.”,*s1=&s2 .char *s3,c,*s4=“w”.s3=&c.*s3=H.s2=s2+2.printf“%st%ct%st%cn ”,s2,*s3,s4,*s1.四 阅读以下程序 , 在处填入适当内容,使程序完整( 20 分,每个空 2 分)1. 百马百担问题:有 100 匹马,驮 100 担货,大马驮 3 担,中马驮 2担,两匹小马驮 1 担,问大、中、小马各多少匹 . main int hb,hm,hl,n=0.forhb=0.hb=100.hb+=1 forhm=0.hm=100-hb.hm+=2hl=100-hb-3.可编辑资料 - - - 欢迎下载精品_精品资料_ifh
22、b/3+hm/2+2*3=100 n+.printfhb=%d,hm=%d,hl=%dn,hb/3,hm/2,2*hl.printfn=%dn,n.2. 用“起泡法”对输入的10 个字符排序后按从小到大的次序输出.#define N 10char strN.mainint i,flagforflag=1.flag=1 . scanf%s,str.flag=0. printfn.sort4.fori=0.iN.i+ printf%c,stri.printfn.sortchar strNint i,j.char t.forj=1.jN.j+fori=0.istri+1 t=stri. 5. 6.3
23、. 以下程序是一个函数,功能是求二阶矩阵(m行 n 列矩阵)的全部靠外可编辑资料 - - - 欢迎下载精品_精品资料_侧的各元素值之和.(本程序中二阶矩阵用一维数组来表示.) 例如, 矩阵为:3 0 0 32 5 7 31 0 4 2就全部靠外侧的各元素值之和为3+0+0+3+2+3+1+0+4+2=1.8 addint m,int n,int arr int i,j,sum=0. fori=0.im.i=i+m-1 forj=0.jn .j+ sum=sum+7.forj=0.jn .j=j+n-1fori=1. 8.i+sum=sum+arri*n+j.returnsum.4. 用指针作函
24、数参数,编程序求一维数组中的最大和最小的元素值.#define N 10mainvoid maxminint arr,int *pt1,int *pt2,int n.int arrayN=10,7,19,29,4,0,7,35,-16,21,*p1,*p2,a,b.p1=&a. p2=&b .maxminarray,p1,p2,N.printfmax=%d,min=%d,a,b.void maxminint arr,int *pt1,int *pt2,int nint i.*pt1=*pt2=arr0.fori=1.i*pt19.ifarri*pt210.可编辑资料 - - - 欢迎下载精品_
25、精品资料_答案一 选择题( 24 分,每道题 2 分)1. B 2. C 3. B 4. D 5. D 6. A 7. D 8. A 9. D 10. B 11. C 12. D 二 判定对错,对的划“”,错的划“”(20 分,每道题 2分)1. ( ) 2.( ) 3.( ) 4.( )5. ( )6. ()7.() 8.()9.()10. ( )三 写出以下程序的运行结果( 36 分,每道题 6 分)1. s=202.x=35y=-4s=-293.60,50,40,30,20,10,4.e C pr*am5.word value:12346.love China.Hwl可编辑资料 - - - 欢迎下载精品_精品资料_high byte:12 low byte:34word value:1274 the result:3ca8四阅读以下程序 ,在处填入适当内容,使程序完整( 20 分,每个空 2 分)1.1 32 23hm hl2.4 str5 stri=stri+16 stri+1=t3.7 arri*n+j(或者 arri*10+j)8 im-1或者 i=m-2 4.9 *ptr1=arri10 *ptr2=arri可编辑资料 - - - 欢迎下载