当前位置:首页 >> 其它课程 >> c语言期末考试题及其答案

c语言期末考试题及其答案


C 语言期末考试题及其答案
一 选择题(7 分,每小题 0.5 分)
1.C 语言源程序的基本单位是( B) 。 A 过程 B 函数 C 子程序 D 标识符

2.下列程序的输出结果是(C ) 。 main( ) { int a=7,b=5; printf("%d\n",b=b/a); } A5 B1 C0 D 不确定值



3.假设变量 a,b 均为整型,表达式(a=5,b=2,a>b?a++:b++,a+b)的值是(B ) 。 A7 B8 C9 D2

4.设 a 为 int 型变量,执行下列赋值语句后,a 的取值分别是( ) 。 a=125.534; a=(int)125.521%4; a=5<<2;

A 125,31,1 B 125,1,20

C 125,31,20 D 125.534,2,20

5.设有如下程序段,下面描述中正确的是 ( C ) 。 int k=10; while(k=0) k=k-1; A 循环执行一次 B 循环是无限循环 C 循环体语句一次也不执行 D 循环体语句 执行一次 6.以下程序的输出结果为(D ) 。 int i; void prt( ) { for(i=5;i<8;i++) printf("\t"); } main( ) { for(i=5;i<=8;i++) prt( ); } A *** B *** *** *** *** C *** *** D * * * printf("%c",'*');

7.在 C 语言程序中,以下说法正确的是(A ) 。 A 函数的定义可以嵌套,但函数的调用不可以嵌套 B 函数的定义不可以嵌套,但函数的调用可以嵌套

C 函数的定义和函数的调用都不可以嵌套 D 函数的定义和函数的调用都可以嵌套 8.以下函数调用语句中含有( A )个实参。 func((e1,e2),(e3,e4,e5)); A2 B3 C5 ) 。 D 语法错误

9.以下程序的输出结果为( #define ADD(x) x*x main( )

{ int a=4,b=6,c=7,d=ADD(a+b)*c; printf("d=%d",d); } A d=70 B d=80 C d=140 D d=700

10.已知职工记录描述如下,在 Turbo C 中,系统为变量 w 分配( )字节的空间。 struct worker { int no; char name[20]; char sex; union { int day; int month; int year;}birth; } w; A 29 B 20 C 25 D6

11.设有以下定义,值为 5 的枚举常量是( ) 。 enum week{sun,mon=4,tue,wed,thu,fri,sat} w; A tue B sat C fri D thu ) 。

12.下面选项中正确的赋值语句是(设 char a[5],*p=a;)( A p="abcd"; B a="abcd";

C *p="abcd"; D *a="abcd";

13.设有以下程序段,则值为 6 的表达式是( ) 。 struct st { int n; struct st *next;}; static struct st a[3]={5,&a[1],7,&a[2],9,0 },*p; p=&a[0]; A p++->n B ++p->n C p->n++ D (*p).n++

14.C 语言中的文件类型只有( ) 。 A 索引文件和文本文件两种 C 二进制文件一种 B 文本文件一种 D ASCII 码文件和二进制文件两种

二 判断对错,对的划“√” ,错的划“×” (5 分,每小题 0.5 分)
1.在 Turbo C 中,整型数据在内存中占 2 个字节。 ( ) ) 2.int i=20;switch(i/10){case 2:printf("A");case 1:printf("B");}的输出结果为 A。 (

3.break 语句用在循环体中,可结束本层循环,continue 语句用在循环体中,可结束本 次循环。 ( ) )

4.函数的递归调用不过是一个函数直接或间接地调用它自身。 ( 5.函数 strlen("ASDFG\n")的值是 7。 ( )

6.通过 return 语句,函数可以带回一个或一个以上的返回值。 ( 7.结构体类型只有一种。 ( )



8.char *p="girl";的含义是定义字符型指针变量 p,p 的值是字符串"girl"。 ( 9.若有定义:char *p(char a[10]);则 p 是函数名。 ( ) )



10.用 fopen("file","r+");打开的文件"file"可以进行修改。 (

三 写出下列程序的运行结果(10 分,每小题 2 分)
1.float average (float array[10]) { int i; float aver,sum=array[0]; for (i=1;i<10;i++) sum=sum+array[i]; aver=sum/10; return(aver); } main( ) { float score[10]={89,67.5,78,91,56,82.5,65,70,79,88},aver; int i; aver=average (score); printf (“average score is %5.2f\n”,aver); } 2.main( ) { char a[5]={‘A’,‘B’,‘C’,‘D’,‘E’},*p=a,**pa; for(p=0;p<a+5;p++) printf(“%2c”,*p);

printf(“\n”); printf(“%2c\n”,**(pa=&p)); } 3.main( ) { int a,b,s=0; for(a=1,b=1;a<=100;a++) { if(b>=20) if(b%3==1) { b+=3; b-=5; } printf(“a=%d\tb=%d\n”,a,b); } 4.main() { printf(“main( ) :%d\n”,fact(5)); fact(-5); } fact(int value) { int f; if(value<0) { printf(“Arg error\n"); return(-1); } else if(value==1||value==0) else f=value*fact(value-1)+1; printf(“This called value=%d\n”,f); return f; } 5.main( ) { int a=012,b=0x12,k=12; char c=‘\102’,d=‘\r’; printf(“a=%d\tb=%d\tk=%d\n”,a,b,k); printf(“c=%c,d=%c%o\n”,c,d,a); a=‘A’; c=49; f=1; continue; } break;

printf(“a=%d\tc=%c\n”,a,c); }

四 阅读下列程序,在 每个空 1 分)

处填入适当内容,使程序完整(8 分,

1.有一个 3*4 矩阵,求其中的最大元素。 max_value( { int i,j,max; max=array[0][0]; for(i=0;i<3;i++) for(j=0;j<4;j++) if(array[i][j]>max) max=array[i][j]; (2) } main( ) { int a[3][4], i,j; for(i=0;i<3;i++) for(j=0;j<4;j++) (3) ; ; (1) )

printf(“max value is %d\n”,max_value(a)); } 2.输入 x、y 两个整数,按先大后小的顺序输出 x、y。 #include “stdio.h” main( ) { int x,y, *px,*py, (4) ;

scanf(“%d%d”,&x,&y); (5) if(x<y) { p=px; px=py; py=p; } ; (6) ;

printf(“x=%d,y=%d\n”,x,y); printf(“MAX=%d,MIN=%d\n”,*px,*py); } 3.用选择排序法对任意 10 个整数按照由小到大排序。

main() { int a[11],i,j,k,t; printf("Please input 10 numbers:\n"); for(i=1;i<11;i++) printf("\n"); for(i=1;i<=9;i++) { (7) for(j=i+1; ; (8) ;j++) k=j; scanf("%d",&a[i]);

if(a[j]>a[k]) if(k!=i)

{ t=a[k]; a[k]=a[i]; a[i]=t;} } printf("The sorted numbers:\n"); for(i=1;i<11;i++) printf("%d ",a[i]); }

答案
一 选择题(7 分,每小题 0.5 分)
1. B 6. A 11. A 2. C 7. B 12. A 3. B 8. A 13. B 4. B 9. A 14. D 5. C 10. C

二 判断对错,对的划“√” ,错的划“×” (5 分,每小题 0.5 分)
1.× 6.× 2.× 7.× 3.√ 8.× 4.√ 9.√ 5.× 10.√

三 写出下列程序的运行结果(10 分,每小题 2 分)
1. 2. 3.

4.

5.

四 阅读下列程序,在 每个空 1 分) 1.(1)int

处填入适当内容,使程序完整(8 分,

array[3][4](int

array[][4])

(2)return(max)

(3)scanf(“%d”,&a[i][j]) 2.(4)*p 3.(7) (5)px=&x(py=&y) (8) (6)py=&y(px=&x)

2003C 语言试题 3

一 选择题(24 分,每小题 2 分)
1.已知函数 fread 的调用形式为 fread(buffer,size,count,fp),其 中 buffer 代表的是( 的指针 C 一个指向所读文件的文件指针 项总数 2.以下程序的输出结果为( main( ) )。 D 一个整形变量,代表要读入的数据 )。 B 存放读入数据的地址或指向此地址 A 存放读入数据项的存储区

{ }

int i=010,j=10; printf("%d,%d\n",i++,j--);

A 11,9

B 9,10

C 8,10

D 9,9 )。

3.设 a 为 int 型变量,执行下列赋值语句后,a 的取值分别是( a=125.534;a=20.0/3;a=(int)125.521%4;a=5<<2; A 125,6,31,1 B 125,6,1,20 C 125,6.666666,31,20 )。 D 125.534,6.666666,2,20 4.设 i 和 k 都是 int 类型,则 for 循环语句( for(i=0,k=-1;k=1;i++,k++) A 循环结束的条件不合法 D 是无限循环 5.以下程序的输出结果为( main( ) { char c; int i; for(i=65;i<68;i++) { c=i+32; switch(c) )。 printf("****\n");

B 循环体一次也不执行

C 循环体只执行一次

{ case 'a':case 'b':case 'c':printf("%c,",c);break; default:printf("end");} } } A a,b,c,end 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 s1[40]="country",s2[20]="side"; int i=0,j=0; while(s1[i]!='\0') i++; )。

while(s2[j]!='\0') s1[i]=0; printf("%s\n",s1); } A side B country

s1[i++]=s2[j++];

C sidetry

D countryside

8.下列说法不正确的是( )。 A 主函数 main 中定义的变量在整个文件或程序中有效 B 不同函数中,可以使用相同名字的变量 C 形式参数是局部变量 D 在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句 中有效 9.在下列程序段中,枚举变量 c1 的值是( A 1 B 3 C 5 D 6 )。 B 是一个指针,它指向一个函数值 D 定义不合法 )。 )。 C int *p[n]; D p=&a; D int (*p)( ); )。 enum color { red,yellow,blue=4,green,white}c1; c1=yellow; c1=white; 10.设有说明 int (*ptr)();其中标识符 ptr 是( A 是一个指向整形变量的指针 是 int 的函数 C 是一个函数名 A int p; A p=a; B int (*p)[n]; B *p=a[0]; 11.定义由 n 个指向整形数据的指针组成的数组 p,其正确的方式为( 12.具有相同类型的指针类型变量 p 与数组 a,不能进行的操作是( C p=&a[0];

二 判断对错,对的划“√”,错的划“×”(20 分,每小题 2 分)
1.参加位运算的数据可以是任何类型的数据。( ) ) ) 2. 若有定义和语句: a; int 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 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 个字 节的内存单元。( ) ) char name[10]; 7.若有定义和语句:int a[3][3]={{3,5},{8,9},{12,35}},i,sum=0; for(i=0;i<3;i++) sum+=a[i][2-i];则 sum=21。( 8.若有定义和语句:struct student { float score;} s[5]={{1,"lili",98.5},{9,"xiaohua",66}},*p=s;printf("%d",*p++);输出结 果是 1。( 变量。( aa)5;( ) ) ) 9.在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的 10. Turbo C 中, 在 此定义和语句是合法的: enum aa{ a=5,b,c}bb;bb=(enum int num;

三 写出下列程序的运行结果(36 分,每小题 6 分)
1.main( ) { int i=29,j=6,k=2,s; s=i+i/j%k-9; printf(“s=%d\n”,s); } 2.main( ) { int x=31,y=2,s=0; do { s-=x*y; x+=2; y-=3;} while( x%3==0); printf(“x=%d\ty=%d\ts=%d\n”,x,y,s); } 3.main( ) { int a[6]={10,20,30,40,50,60},i; invert(a,0,5); for(i=0;i<6;i++) printf(“%d,”,a[i]); printf(“\n”); } invert(int s[ ],int i,int j)

{

int t; if(i<j) { } invert(s,i+1j-1); t=s[i];s[i]=s[j];s[j]=t;

} 4.#include<stdio.h> main() { char str[ ]=“The C program”,c; int i; for(i=2;(c=str[i])!=‘\0’;i++) { { switch(c) case ‘g’: ++i; break; case ‘o’: continue; default: continue; } printf(“*”); } printf(“\n”); } 5.struct w { }; union u { struct w byte; short word; }uw; main( ) { int result; uw.word=0x1234; printf(“word value:%04x\n”,uw.word); printf(“high char low; char high; printf(“%c”,c);

byte:%02x\n”,uw.byte.high); printf( “low byte:%02x\n” ,uw.byte.low); uw.byte.low=0x74; printf(“word value:%04x\n”,uw.word); result=uw.word+0x2a34; printf(“the result:%04x\n”,result); } 6.main() { char *s2=“I love China!”,**s1=&s2; char *s3,c,*s4=“w”; s3=&c; *s3=‘H’; s2=s2+2; printf(“%s\t%c\t%s\t%c\n”,s2,*s3,s4,**s1); }

四 阅读下列程序,在 每个空 2 分)

处填入适当内容,使程序完整 (20 分,

1. 百马百担问题:有 100 匹马,驮 100 担货,大马驮 3 担,中马驮 2 担, 两匹小马驮 1 担,问大、中、小马各多少匹? main( ) { int hb,hm,hl,n=0; for(hb=0;hb<=100;hb+= for(hm=0;hm<=100-hb;hm+= { hl=100-hb{ } } printf("n=%d\n",n); } n++; printf("hb=%d,hm=%d,hl=%d\n",hb/3,hm/2,2*hl); (3) ; (3) ==100) if(hb/3+hm/2+2* (1) (2) ) )

2.用“起泡法”对输入的 10 个字符排序后按从小到大的次序输出。 #define N 10 char str[N]; main() { int i,flag; for(flag=1;flag==1;) { scanf("%s",str); flag=0; printf("\n"); } sort(___(4)___); for(i=0;i<N;i++) printf("%c",str[i]); printf("\n"); } sort(char str[N]) { int i,j; char t; for(j=1;j<N;j++) for(i=0;(i<N-j)&&(str[i]!='\0');i++) if(str[i]>str[i+1]) { t=str[i]; ____(5)____; ____(6)____; } } 3.以下程序是一个函数,功能是求二阶矩阵(m 行 n 列矩阵)的所有靠外侧 的各元素值之和。(本程序中二阶矩阵用一维数组来表示。) 例如,矩阵为: 3 2 1 0 5 0 0 7 4 3 3 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;i<m;i=i+m-1) for(j=0;j<n;j++) sum=sum+ for(i=1; (7) (8) ; ;i++) for(j=0;j<n;j=j+n-1) sum=sum+arr[i*n+j]; return(sum); }

4.用指针作函数参数,编程序求一维数组中的最大和最小的元素值。 #define N 10 main() { void maxmin(int arr[],int *pt1,int *pt2,int n); int array[N]={10,7,19,29,4,0,7,35,-16,21},*p1,*p2,a,b; p1=&a; p2=&b; maxmin(array,p1,p2,N); printf("max=%d,min=%d",a,b); } void maxmin(int arr[],int *pt1,int *pt2,int n) { int i; *pt1=*pt2=arr[0]; for(i=1;i<n;i++) { } } if(arr[i]>*pt1) if(arr[i]<*pt2) (9) (10) ; ;

答案

一 选择题(24 分,每小题 2 分)

1.( 5.( D )

B

) 6.(

2.( A )

C

)

3.(

B

)

4.(

D

)

7.( 11.( C )

D

) 12.(

8.( D )

A

)

9.(

D

)

10.(

B

)

二 判断对错,对的划“√”,错的划“×”(20 分,每小题 2 分)
1.( ( × )

× )

2.(

√ )

3.(

√ )

4.(

× )

5.

6.( ( √ )

√ )

7.(

√ )

8.(

× )

9. (

√ )

10.

三 写出下列程序的运行结果(36 分,每小题 6 分)
1. s=20 3.60,50,40,30,20,10, 4.e C pr*am H w l high byte:12 low byte:34 word value:1274 the result:3ca8 5.word value:1234 6.love China! 2.x=35 y=-4 s=-29

四 阅读下列程序,在 每个空 2 分) 1.(1) 3

处填入适当内容,使程序完整(20 分,

(2) 2

(3)hm

hl

2.(4) str str[i+1]=t

(5) str[i]=str[i+1]

(6)

3.(7) arr[i*n+j](或者 arr[i*10+j]) (8) i<m-1(或者 i<=m-2) 4.(9) *ptr1=arr[i] (10) *ptr2=arr[i]


更多相关文档:

大学C语言期末考试练习题(带详解答案)

大学C语言期末考试练习题(带详解答案)_理学_高等教育_教育专区。一、 单项选择题 1. ( A )是构成 C 语言程序基本单位。 A、函数 2.C 语言程序从 B、...

《C语言程序设计》期末考试题及答案

C语言程序设计》期末考试题及答案_计算机软件及应用_IT/计算机_专业资料。《C语言程序设计》期末考试题及答案 2010-2011 学年第二学期期末考试 2010 级《C ...

大学C语言期末考试题库试题及答案汇总

大学C语言期末考试题库试题及答案汇总_IT/计算机_专业资料。大学C语言期末考试题库试题及答案汇总 1. 下列定义变量的语句中错误的是___。 A、int _int B、doub...

C语言期末复习题及答案(全)

C语言期末复习题及答案(全)_工学_高等教育_教育专区。C语言期末复习题及答案(全)C 语言程序设计复习题及答案 第一部分 程序设计基本概念 1.1 在 TRUBO C 环...

c语言期末考试题及其答案

c语言期末考试题及其答案_其它课程_高中教育_教育专区。学习C 语言期末考试题及其答案一 选择题(7 分,每小题 0.5 分) 1.C 语言源程序的基本单位是( B) 。...

C语言期末考试试卷及答案

C 语言期末考试试卷(A)一、单项选择题(本大题共 20 题,每题 2 分,共 40 分) 1、以下不是 C 语言的特点的是 ( A ) A、 B、 C、 D、 C 语言...

C语言期末考试题及其答案

C语言期末考试题及其答案_理学_高等教育_教育专区。C 语言期末考试题及其答案 一选择题(7分,每小题 0.5分) 1.C 语言源程序的基本单位是()。 A 过程 B 函...

2015年C语言期末考试试题及参考答案

2015年C语言期末考试试题及参考答案_IT认证_资格考试/认证_教育专区。C 语言 1...mianji); } 20、随机产生一道 100 以内的加减法随机算式题 (加减法也随机...

大学C语言期末考试题及答案

大学C语言期末考试题及答案_工学_高等教育_教育专区。要考c的最好看看………语言期末考试题及答案(1) 东北大学 C 语言期末考试题及答案(1) 1、构成 C 语言...

C语言期末考试题及答案1

C语言期末考试题及答案1_理学_高等教育_教育专区 暂无评价|0人阅读|0次下载|举报文档 C语言期末考试题及答案1_理学_高等教育_教育专区。课程考试试卷线 2007 ~...
更多相关标签:
c语言期末试题及答案 | c语言期末试卷及答案 | c语言期末考试试题 | c语言期末考试 | 大一c语言期末考试 | c语言期末考试题库 | 北航c语言期末考试 | 大学c语言期末考试 |
网站地图

文档资料共享网 nexoncn.com copyright ©right 2010-2020。
文档资料共享网内容来自网络,如有侵犯请联系客服。email:zhit325@126.com