《2022年c语言期末考试题及其答案.docx》由会员分享,可在线阅读,更多相关《2022年c语言期末考试题及其答案.docx(24页珍藏版)》请在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,20C
2、 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. 结构体类型只有一种;()8. char *p
4、=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,78,91,56,82.5,6
5、5,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 ; continue; b-=5 ;printf “ a=%dtb=%d
6、n ” ,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 “ a=%dtb=%dtk=%dn ” ,a,b,k;欢迎下
7、载精品学习资源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 ;j4 ;j+(3) ;printf “ max value is %dn ” ,ma
8、x_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 a11,i,j,k,t;printfPlease input 10 numbers:n ;fori=1 ;i11;
9、 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. A13. B14. D二 判定对错,对的划“”,错的划“”(5 分,每道题 0.5分)1.2.3.4.5.6.7.8.9.10.三 写出以下程序的运行结果( 10 分,
10、每道题 2 分)欢迎下载精品学习资源1.2.3.4.5.四阅读以下程序 ,在处填入适当内容,使程序完整(8 分,每个空 1 分)1.1intarray34intarray42returnmax3scanf“ %d” ,&aij2.4*p5px=&xpy=&y6py=&ypx=&x 3.782003C语言试卷 3一 选择题( 24 分,每道题 2 分)1. 已知函数 fread 的调用形式为 fread (buffer ,size ,count , fp ), 其中 buffer代表的是();A 存放读入数据项的储备区B存放读入数据的地址或指向此地址的指针C 一个指向所读文件的文件指针D一个整形
11、变量 , 代表要读入的数据项总数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 125,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
12、+,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,endB a,a,a,endC a,a,a,D a,b,c, 6函数调用语句: fseek (fp , -10L ,2);的含义是();A 将文件位置指针从文件末尾处向文件头的方向移动10 个字节B 将文件位置指针从当前位置向文件头的
13、方向移动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=0;printf%sn,s1;A sideB countryC sidetryD countryside 8以下说法不正确选项();A 主函数 main 中定义的变量在整个文件或程序中有效B 不同函数中 , 可以使用相同名字的变量C 形式参数是局部变量D
14、在一个函数内部 , 可以在复合语句中定义变量,这些变量只在本复合语句中有效9. 在以下程序段中,枚举变量 c1 的值是();enum color red,yellow,blue=4,green,whitec1; c1=yellow ;c1=white ;A 1B 3C 5D 610. 设有说明 int *ptr;其中标识符 ptr是( );A 是一个指向整形变量的指针B是一个指针 , 它指向一个函数值是 int的函数C 是一个函数名D定义不合法11. 定义由 n 个指向整形数据的指针组成的数组p, 其正确的方式为( );A int p;B int *pn;C int *pn;D int *p
15、;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,&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 没定义
16、,所以此宏定义是错误的; 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,sum=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,*
17、p+;输出结果是 1; 9. 在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量; 10. 在 Turbo C 中,此定义和语句是合法的: enum aa a 5,b,cbb ;bb=enum aa5 ; 三 写出以下程序的运行结果( 36 分,每道题 6 分)1. main int i=29,j=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 a
18、610,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=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 ;欢迎下载精
19、品学习资源continue ;printf“*” ;欢迎下载精品学习资源printf“n ” ;5. struct wchar low;char high;union u struct w byte;short word;uw;欢迎下载精品学习资源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:%
20、04xn ”,uw.word ;result=uw.word+0x2a34;printf“the result:%04xn”,result;6. main() char *s2=“ I love China.”,*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 担,问大、中、小马各多少匹 . mai
21、n int hb,hm,hl,n=0;forhb=0;hb=100;hb+=1 forhm=0;hm=100-hb;hm+=2hl=100-hb-3;欢迎下载精品学习资源ifhb/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+ pri
22、ntf%c,stri;printfn;sortchar strNint i,j;char t;forj=1;jN;j+fori=0;istri+1 t=stri; 5; 6;3. 以下程序是一个函数,功能是求二阶矩阵(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+ s
23、um=sum+7;forj=0;jn ;j=j+n-1fori=1; 8;i+sum=sum+arri*n+j;returnsum;4. 用指针作函数参数,编程序求一维数组中的最大和最小的元素值;#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 *pt
24、2,int nint i;*pt1=*pt2=arr0;fori=1;i*pt19;ifarri*pt210;欢迎下载精品学习资源答案一 选择题( 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欢迎下载