1、c语言期末考试题及其答案建瓯市技工学校2015-2016年第二期C语言试题 姓名: 班级: 成绩: 一 选择题(每小题2分,共50分)1、C语言源程序得基本单位就是( )。 A 过程 B 函数 C 子程序 D 标识符2、下列程序得输出结果就是( )。main( ) int a=7,b=5; printf(%dn,b=b/a);A 5 B 1 C 0 D不确定值3、假设变量a,b均为整型,表达式(a=5,b=2,ab?a+:b+,a+b)得值就是( )。A 7 B 8 C 9 D 24、设a为int型变量,执行下列赋值语句后,a得取值分别就是( )。a=125、534; a=(int)125、5
2、21%4; a=52;A 125,31,1 B 125,1,20 C 125,31,20 D 125、534,2,205、设有如下程序段,下面描述中正确得就是 ( )。int k=10; while(k=0) k=k-1;A 循环执行一次 B循环就是无限循环 C循环体语句一次也不执行 D循环体语句执行一次6、以下程序得输出结果为( )。int i;void prt( ) for(i=5;i8;i+) printf(%c,*); printf(t);main( ) for(i=5;in B +p-n C p-n+ D (*p)、n+14、C语言中得文件类型只有( )。 A 索引文件与文本文件两种
3、 B 文本文件一种C 二进制文件一种 D ASCII码文件与二进制文件两种15.已知函数fread得调用形式为fread(buffer,size,count,fp),其中buffer代表得就是( )。A 存放读入数据项得存储区 B 存放读入数据得地址或指向此地址得指针C 一个指向所读文件得文件指针 D 一个整形变量,代表要读入得数据项总数16.以下程序得输出结果为( )。 main( ) int i=010,j=10; printf(%d,%dn,i+,j-); 17、设a为int型变量,执行下列赋值语句后,a得取值分别就是( )。a=125、534;a=20、0/3;a=(int)125、5
4、21%4;a=52;A 125,6,31,1 B 125,6,1,20 C 125,6、666666,31,20 D 125、534,6、666666,2,2018、设i与k都就是int类型,则for循环语句( )。for(i=0,k=-1;k=1;i+,k+) printf(*n);A 循环结束得条件不合法 B 循环体一次也不执行 C 循环体只执行一次 D 就是无限循环19、以下程序得输出结果为( )。main( ) char c; int i; for(i=65;i68;i+) c=i+32;switch(c) case a:case b:case c:printf(%c,c);break
5、; default:printf(end); A a,b,c,end B a,a,a,end C a,a,a, D a,b,c,20.函数调用语句:fseek(fp,-10L,2);得含义就是( )。A 将文件位置指针从文件末尾处向文件头得方向移动10个字节 B 将文件位置指针从当前位置向文件头得方向移动10个字节 C 将文件位置指针从当前位置向文件末尾方向移动10个字节 D 将文件位置指针移到距离文件头10个字节处21.以下程序得输出结果为( )。main( ) char s140=country,s220=side;int i=0,j=0; while(s1i!=0) i+; while(
6、s2j!=0) s1i+=s2j+;s1i=0; printf(%sn,s1); A side B country C sidetry D countryside22.下列说法不正确得就是( )。A 主函数main中定义得变量在整个文件或程序中有效B 不同函数中,可以使用相同名字得变量C 形式参数就是局部变量D 在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效23.在下列程序段中,枚举变量 c1得值就是( )。enum color red,yellow,blue=4,green,whitec1; c1=yellow; c1=white; A 1 B 3 C 5 D 624
7、.设有说明 int (*ptr)();其中标识符ptr就是( )。A 就是一个指向整形变量得指针 B 就是一个指针,它指向一个函数值就是int得函数 C 就是一个函数名 D定义不合法25.定义由n个指向整形数据得指针组成得数组p,其正确得方式为( )。A int p; B int (*p)n; C int *pn; D int (*p)( );二 判断对错,对得划“”,错得划“”(每小题1分,共20分)1.在Turbo C中,整型数据在内存中占2个字节。( )2.int i=20;switch(i/10)case 2:printf(A);case 1:printf(B);得输出结果为A。( )
8、 3.break语句用在循环体中,可结束本层循环,continue语句用在循环体中,可结束本次循环。( )4.函数得递归调用不过就是一个函数直接或间接地调用它自身。( )5.函数strlen(ASDFGn)得值就是7。( )6.通过return语句,函数可以带回一个或一个以上得返回值。( )7.结构体类型只有一种。 ( )8.char *p=girl;得含义就是定义字符型指针变量p,p得值就是字符串girl。( )9.若有定义:char *p(char a10);则p就是函数名。( )10.用fopen(file,r+);打开得文件file可以进行修改。 ( )11.参加位运算得数据可以就是任
9、何类型得数据。( )12、若有定义与语句:int a;char c;float f;scanf(%d,%c,%f,&a,&c,&f);若通过键盘输入:10,A,12、5,则a=10,c=A,f=12、5。( )13、C语言把文件瞧作就是一个字符(字节)得序列。( ) 14、若有宏定义:#define S(a,b) t=a;a=b;b=t由于变量t没定义,所以此宏定义就是错误得。( ) 15、在Turbo C中,下面得定义与语句就是合法得:file *fp;fp=fopen(a、txt,r);( )16、若有定义:char s china;则Turbo C系统为数组s开辟6个字节得内存单元。(
10、)17、若有定义与语句:int a333,5,8,9,12,35,i,sum=0;for(i=0;i3;i+) sum+=ai2-i;则sum=21。( )18、若有定义与语句:struct student int num; char name10; float score; s5=1,lili,98、5,9,xiaohua,66,*p=s;printf(%d,*p+);输出结果就是1。( )19.在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型得变量。( ) 20、在Turbo C中,此定义与语句就是合法得:enum aa a5,b,cbb;bb=(enum aa)5;( )三、
11、阅读下列程序,在 处填入适当内容,使程序完整(每个空5分,共30分)1、有一个3*4矩阵,求其中得最大元素。 max_value( (1) ) int i,j,max;max=array00; for(i=0;i3;i+) for(j=0;jmax) max=arrayij; (2) ;main( ) int a34, i,j; for(i=0;i3;i+) for(j=0;j4;j+) (3) ; printf(“max value is %dn”,max_value(a); 2、输入x、y两个整数,按先大后小得顺序输出x、y。#include “stdio、h”main( ) int x,
12、y, *px,*py, (4) ; scanf(“%d%d”,&x,&y); (5) ; (6) ; if(xy) p=px; px=py; py=p; printf(“x=%d,y=%dn”,x,y); printf(“MAX=%d,MIN=%dn”,*px,*py); C语言考卷得答案一 选择题(每小题2分)1、 B 2、 C 3、 B 4、 B 5、 C 6、 A 7、 B 8、 A 9、 A 10、 C 11、 A 12、 A 13、 B 14、 D 15、 B 16、 C 17 、B 18、 D 19、 D 20、 A 21、 D 22、 A 23、 D 24、 B 25、 C 二
13、判断对错,对得划“”,错得划“”(每小题1分)1、 2、 3、 4、 5、 6、 7、 8、 9、 10、 11、( ) 12、( ) 1 3、( ) 14、( ) 15、( )16、( ) 17、( ) 18、( ) 19、( ) 20、( )四 阅读下列程序,在 处填入适当内容,使程序完整(每个空5分)1、(1)int array34(int array4) (2)return(max) (3)scanf(“%d”,&aij)2、(4)*p (5)px=&x(py=&y) (6)py=&y(px=&x)2003C语言试题3一 选择题(24分,每小题2分)1.已知函数fread得调用形式为f
14、read(buffer,size,count,fp),其中buffer代表得就是( )。A 存放读入数据项得存储区 B 存放读入数据得地址或指向此地址得指针C 一个指向所读文件得文件指针 D 一个整形变量,代表要读入得数据项总数2.以下程序得输出结果为( )。 main( ) int i=010,j=10; printf(%d,%dn,i+,j-); A 11,9 B 9,10 C 8,10 D 9,93.设a为int型变量,执行下列赋值语句后,a得取值分别就是( )。a=125、534;a=20、0/3;a=(int)125、521%4;a=52;A 125,6,31,1 B 125,6,1
15、,20 C 125,6、666666,31,20 D 125、534,6、666666,2,204.设i与k都就是int类型,则for循环语句( )。for(i=0,k=-1;k=1;i+,k+) printf(*n);A 循环结束得条件不合法 B 循环体一次也不执行 C 循环体只执行一次 D 就是无限循环5.以下程序得输出结果为( )。main( ) char c; int i; for(i=65;i68;i+) c=i+32;switch(c) case a:case b:case c:printf(%c,c);break; default:printf(end); A a,b,c,end
16、 B a,a,a,end C 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; while(s1i!=0) i+; while(s2j!=0) s1i+=s2j+;s1i=0; printf(%sn,
17、s1); A side B country C sidetry D countryside8.下列说法不正确得就是( )。A 主函数main中定义得变量在整个文件或程序中有效B 不同函数中,可以使用相同名字得变量C 形式参数就是局部变量D 在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效9.在下列程序段中,枚举变量 c1得值就是( )。enum color red,yellow,blue=4,green,whitec1; c1=yellow; c1=white; A 1 B 3 C 5 D 610.设有说明 int (*ptr)();其中标识符ptr就是( )。A 就是一
18、个指向整形变量得指针 B 就是一个指针,它指向一个函数值就是int得函数 C 就是一个函数名 D定义不合法11.定义由n个指向整形数据得指针组成得数组p,其正确得方式为( )。A int p; B int (*p)n; 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,%
19、f,&a,&c,&f);若通过键盘输入:10,A,12、5,则a=10,c=A,f=12、5。( )3.C语言把文件瞧作就是一个字符(字节)得序列。( ) 4.若有宏定义:#define S(a,b) 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 a333,5,8,9,12,35,i,sum=0;for(i=0;i3;i+) sum+
20、=ai2-i;则sum=21。( )8.若有定义与语句:struct student int num; char name10; float score; s5=1,lili,98、5,9,xiaohua,66,*p=s;printf(%d,*p+);输出结果就是1。( )9.在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型得变量。( ) 10.在Turbo C中,此定义与语句就是合法得:enum aa a5,b,cbb;bb=(enum aa)5;( )三 写出下列程序得运行结果(36分,每小题6分)1、main( ) int i=29,j=6,k=2,s; s=i+i/j%k-
21、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; invert(a,0,5); for(i=0;i6;i+) printf(“%d,”,ai); printf(“n”);invert(int s ,int i,int j) int t; if(ij) invert(s,i+1j-1); t=si;si=sj;sj=t; 4、#include
22、main() char str =“The C program”,c;int i;for(i=2;(c=stri)!=0;i+) switch(c) case g: +i; break;case o: continue;default: printf(“%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=0x1234;printf(“word value:%04xn
23、”,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 China!”,*s1=&s2; char *s3,c,*s4=“w”; s3=&c; *s3=H; s2=s2+2; printf(“%st%
24、ct%st%cn”,s2,*s3,s4,*s1); 四 阅读下列程序,在 处填入适当内容,使程序完整(20分,每个空2分)1、 百马百担问题:有100匹马,驮100担货,大马驮3担,中马驮2担,两匹小马驮1担,问大、中、小马各多少匹? 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(hb=%d,hm=%d,hl=%dn,hb/3,hm/2,2*hl); printf(n=
25、%dn,n); 2、用“起泡法”对输入得10个字符排序后按从小到大得次序输出。 #define N 10 char strN; main() int i,flag; for(flag=1;flag=1;) scanf(%s,str); flag=0; 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 3 2 5 7 3 1 0 4 2 则所有靠外侧得各元素值之与为3+0+0+3+2+3+1+0+4+2=18。 add(int m,int n,int arr) int i,j,sum=0; for(i=0;im;i=i+m-1) for(j=0;jn;j+) sum=sum+ (7) ; for(j=0;jn;j=j+n-1) for(i=1; (8) ;i+) sum=sum+arri*n+j; return(sum);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1