1、 C 语言期末考试题及其答案一 选择题(7 分,每小题 0.5 分)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.521%4; a=5n B +p-n C p-n
2、+ D (*p).n+14.C 语言中的文件类型只有( ) 。 A 索引文件和文本文件两种 B 文本文件一种C 二进制文件一种 D ASCII 码文件和二进制文件两种二 判断对错,对的划“” ,错的划“” (5 分,每小题 0.5 分)1在 Turbo C 中,整型数据在内存中占 2 个字节。 ( )2int i=20;switch(i/10)case 2:printf(“A“);case 1:printf(“B“);的输出结果为 A。 ( )3break 语句用在循环体中,可结束本层循环,continue 语句用在循环体中,可结束本次循环。 ( )4函数的递归调用不过是一个函数直接或间接地调
3、用它自身。 ( )5函数 strlen(“ASDFGn“)的值是 7。 ( )6通过 return 语句,函数可以带回一个或一个以上的返回值。 ( )7结构体类型只有一种。 ( )8char *p=“girl“;的含义是定义字符型指针变量 p,p 的值是字符串“girl“ 。 ( )9若有定义:char *p(char a10);则 p 是函数名。 ( )10用 fopen(“file“,“r+“);打开的文件 “file“可以进行修改。 ( )三 写出下列程序的运行结果(10 分,每小题 2 分)1.float average (float array10) int i;float aver
4、,sum=array0;for (i=1;i=20) break;if(b%3=1) b+=3; continue; b-=5;printf(“a=%dtb=%dn”,a,b);4.main() printf(“main( ) :%dn”,fact(5);fact(-5);fact(int value) int f;if(valuemax)max=arrayij;(2) ;main( ) int a34, i,j;for(i=0;iak) k=j;if(k!=i) t=ak; ak=ai; ai=t; printf(“The sorted numbers:n“); for(i=1;imain(
5、) 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”,uw.word);p
6、rintf(“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);6main() char *s2=“I love China!”,*s1=s3=*s3=H;s2=s2+2;printf(“%st%ct%st%cn”,s2,*s3,s4,*s1); 四 阅读下列程序,在 处填入适当内容,使程序完整(
7、20 分,每个空 2 分)1. 百马百担问题:有 100 匹马,驮 100 担货,大马驮 3 担,中马驮 2 担,两匹小马驮 1 担,问大、中、小马各多少匹?main( ) int hb,hm,hl,n=0;for(hb=0;hbstri+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=18。add(int m,int n,int arr) int
8、 i,j,sum=0;for(i=0;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 )二 判断对错,对的划“”,错的划“”(20 分,每小题 2 分)1.( ) 2.( ) 3.( ) 4.( ) 5.( )6.( ) 7.( ) 8.( ) 9.( ) 10.( )三 写出下列程序的运行结果(36 分,每小题 6 分)1. s=20 2.x=35
9、 y=-4 s=-29 3.60,50,40,30,20,10,4.e C pr*am 5.word value:1234 6.love China! H w lhigh byte:12low byte:34word value:1274the result:3ca8四 阅读下列程序,在 处填入适当内容,使程序完整(20 分,每个空 2 分)1.(1) 3 (2) 2 (3)hm hl 2.(4) str (5) stri=stri+1 (6) stri+1=t3.(7) arri*n+j(或者 arri*10+j) (8) im-1(或者 i=m-2) 4.(9) *ptr1=arri (10) *ptr2=arri