《往年C语言期末考试试题.pdf》由会员分享,可在线阅读,更多相关《往年C语言期末考试试题.pdf(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、往年C 语言期末考试试题一 选 择 题(24分,每小题2分)1.已知函数fread的调用形式为fread(buffer,size,count,fp),期 buffer代表的是()。A 存放读入数据项的存储区B 存放读入数据的地址或指向此地址的指针C 一个指向所读文件的文件指针D 一个整形变量,代表要读入的数据项总数2.以下程序的输出结果为()omain()(int占O1O,j=1O;printf(1,%d,%dn,i+,j-);)A11,9B9,10C8,10D9,93.设 a 为 int型变量,执行下列赋值语句后,a 的取值分别是()。a=125.534;a=20.0/3;a=(int)12
2、5.521%4;a=52;A 125,6,31,1B 125,6,1,20C 125,6.666666,31,20D 125.534,6.666666,2,204.设 i 和 k 都是int类型,贝 II for循环语句(for(i=0,k=-1;k=1;i+,k+)printf(*n);A 循环结束的条件不合法B 循环体一次也不执行C 循环体只执行一次D 是无限循环5.以下程序的输出结果为()。main()(char c;inti;for(i=65;i0;printf(%sn,s1);)AsideB countryC sidetryD countryside8.下列说法不正确的是()oA 主
3、函数main中定义的变量在整个文件或程序中有效B 不同函数中,可以使用相同名字的变量C 形式参数是局部变量D 在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效9.在下列程序段中,枚举变量c1的 值 是()。enum color red,yellow,blue=4,green,whitec1;c1=yellow;c1=white;A1B3C5D610.设 有 说 明 int(*ptr)()淇中标识符ptr是()。A 是个指向整形变量的指针B 是一个指针,它指向一个函数值是in t的函数C 是一个函数名D 定义不合法11.定义由n 个指向整形数据的指针组成的数组p,其正确的方
4、式为()。A int p;B int(*p)n;C int*pn;D int(*p)();12.具有相同类型的指针类型变量p 与数组a,不能进行的操作是()。Ap=a;B*p=aO;C p=&aO;D p=&a;二 判断对错,对的划y”,错的划“x”(20分,每小题2分)1.参加位运算的数据可以是任何类型的数据。()2.若有定义和语句:int a;char c;float f;scanf(%d,%c,%f,&a,&c,&f);若通过键盘输入:10A125贝 iJa=10,c=,A,f=12.5。()3.C 语言把文件看作是一个字符(字节)的序列。()4.若有宏定义:#define S(a,b)
5、t=a;a=b;b=t由于变量t 没定义,所以此宏定义是错误的。()5.在 Turbo C 中,下面的定义和语句是合法的:file*fp;fp=fopen(a.txt,r);()6.若有定义:char s=china;则 Turbo C 系统为数组s 开辟6个字节的内存单元。()7.若有定义和语句:int a33=3,5,8)9,12,35,i,sum=0;for(i=0;i3;i+)sum+=ai2-i;则 sum=21。()8.若有定义和语句:struct studentint num;char name10;float score;)s5=1,lili,98.5,9J,xiaohua,6
6、6,*p=s;printf(%d,*p+);输出结果是1。()9.在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量。()10.在 Turbo C 中,此定义和语句是合法的:enum aa a=5,b,cbb;bb=(enum aa)5;()三 写出下列程序的运行结果(36分,每小题6分)1.main()(int i=29,j=6,k=2,s;s=i+i/j%k-9;s=i+(i/j)%k-9printf(s=%dn”,s);)2.main()(int x=31,y=2,s=0;dos-=x*y;x+=2;y-=3;)while(x%3=0);先执行,后判断printf(ttx
7、=%dty=%dts=%dn,x,y,s);)3.main()(int a6=10,20,30,40,50,60,i;invert(a,0,5);for(i=0;i6;i+)printf(%d;,ai);printf(rT);)invert(int s,int i,int j)倒置(int t;if(ivj)invert(s,i+1 函数自身的嵌套调用,形成循环t=si;si=sj;)4.#include main()(char str=MThe C programme;inti;for(i=2;(c=stri)!=0;i+)(switch(c)(case fg:+i;break;/由于+i,
8、跳过了 g 后面的1个字母case o:continue;default:printf(4 4%c,c);continue;)printf(*);)printf(n)5.struct w 结构体(char low;char high;);union u共用体struct w byte;short word;uw;main()(int result;uw.word=0 x1234;printf(word value:%04xnM,uw.word);printf(high byte:%02xn,uw.byte.high);printf(low byte:%02xn,uw.byte.low);uw.
9、byte.low=0 x74;printf(word value:%04xn,uw.word);result=uw.word+0 x2a34;printf(nthe result:%04xnn,result);)6.main()(char*s2=Hl love China!*,*s1=&s2;char*s3,cjs4=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担,问大、中、小
10、马各多少匹?main()(int hb,hm,hl,n=0;for(hb=0;hb=100;hb+=(1)for(hm=0;hm=100-hb;hm+=(2)(hl=100-hb-(3);if(hb/3+hm/2+2*(3)=100)(n+;printf(nhb=%d,hm=%d,hl=%dnn,hb/3,hm/2,2*hl);)printf(n=%dnn,n);)2.用“起泡法”对输入的10个字符排序后按从小到大的次序输出。#define N 10char strN;void main()int i,flag;for(flag=1;flag=1;)(scanf(%s,str);flag=O;
11、printf(n);)sort(4);for(i=0;iN;i+)(printf(%c,stri);)printf(n);)sort(char strN)冒泡排序(int i,j;char t;for(j=1;jN;j+)for(i=0;istri+1)t=stri;_ _(5);(6);交换位置)3.以下程序是个函数,功能是求二阶矩阵(m 行 n 列矩阵)的所有靠外侧的各元素值之和。(本程序中二阶矩阵用一维数组来表示。)例如,矩阵为:3 0 0 32 5 7 3104 2则所有靠外侧的各元素值之和为3+0+0+3+2+3+1+0+4+2=18。add(int m,int n,int arr)
12、(for(i=0;im;i=i+m-1)for(j=0;jn;j+)s u m=s u m+(7);for(j=0;jn;j=j+n-1)f o r(i=1;;i+)sum=sum+arri*n+j;return(sum);)4.用指针作函数参数,编程序求一维数组中的最大和最小的元素值。#define N 10main()void maxmin(int 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;maxmin(array,p1,p2,N);pri ntf(m a
13、x=%d,m i n=%dM,a,b);)void maxmin(int arr,int*pt1,int*pt2,int n)(int i;*pt1=*pt2=arr0;for(i=1;i*pt1)(9);if(arri*pt2)(10);)答案-选 择 题(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)二 判断对错,对的划y”,错的划“X”(20分,每小题2分)1.(X)2.(4)3.(4)4.(x)5.(x)6.(4)7.(4)8.(x)9.(V)1 0.()三 写出下列程序的运行结果(36分,每小题6分)1 .S=202.x=35 y=-4 s=-293.60,50,40,30,20,10,4.e C pr*am5.word value:12346.love China!H w Ihigh byte:12low byte:34word value:1274the result:3ca8四阅读下列程序,在处填入适当内容,使程序完整(20分,每个空2分)1.(1)3(2)2(3)hm hl2.(4)str(5)stri=stri+1 stri+1=t3.(7)arri*n+j(8)im-14.(9)*ptr1=arri(10)*ptr2=arri
限制150内