C语言程序设计期末考试卷及答案_第1页
C语言程序设计期末考试卷及答案_第2页
C语言程序设计期末考试卷及答案_第3页
C语言程序设计期末考试卷及答案_第4页
C语言程序设计期末考试卷及答案_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C语言程序设计期末考试卷及答案#include <stdio.h>得分阅卷人复核人、单项选择题。从 A、B C、D四个选项中,选择一个最佳答案填入括号内(每小题1分,共计30分)。1. 一个C语言程序的执行是从()。A)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束B)本程序的 main函数开始,至U main函数结束C)本程序的main函数开始,到本程序文件的最后一个函数结束D)本程序文件的第一个函数开始,到本程序的main函数结束2.下列选项中不属于C语言关键字的是(A) switch B)printf Cdefault Dcase3.设有语句int a=4;,则执

2、行了语句a += a -= a *a;后,变量a的值是(A) 24B) -24C)164.已知 int i;float d;,则正确的表达式是(A) (int d) B)int(d)%i C ) (int)d%i5.已知 int i,a; ,执行语句 i=(a=3*9,a/5),a+11;A) 5B ) 16后,27变量int(d%i)i的值是(386.下列选项中合法的字符型常量是(A) "a"B) 'n'"n"7.下面程序的运行结果是(void main() int k = 15;printf("k = %d,k = %o,k

3、 = %xn",k,k,k);A) k = 15,k = 15,k = 15B)k = 15,k = 17,k = 17C) k = 15,k = 017,k = 0xfD) k = 15,k = 17,k = f8.已知 a,b,c 为 int 类型,执行语句:scanf ( "%d%d%d",&a,&b,&c);使得 a 为 10, b为20, c为30,以下不正.确的输入形式是()。A) 10B) 10C) 10,20,30 D ) 10 202020 3030309 .已知int x=1,y=2,z=3;,执行下列程序段后,输出的结

4、果是()。if(x>y) z=x;x=y;y=z;printf("%d,%d,%d",x,y,z);A) 1,2,3B) 2,3,3C) 2,3,1D ) 2,3,210 .若变量c为char类型,能正确判断出 c为大写字母的表达式是()。A) 'A'<=c<='Z'B) ('A'<=c)|(c<='Z')C) (A<=c)&&(c<=Z)D ) ('A'<=c)&&(c<='Z')11 .有以

5、下程序段:int k=0;while(k=1)第11页共8页k+;int i,s = 0;while循环执行的次数是(A)无限次B)有语法错,不能执行C) 一次也不执行D)执行1次12.以下程序的输出结果是(void main()int x=1,a=0,b=0;switch(x) case 0:b+;case 1:a+;case 2:a+;b+; printf("a=%d,b=%d",a,b);A a=1,b=0B)a=1,b=1C) a=2,b=1D) a=2,b=213.若有定义int i = 1;while ( i < 10 ) i+;后,i的值为(B)10C)

6、 11D ) 1214.有说明语句 int a尸1,2,3,4,5;,则数组a包括了()个元素。A 10C) 6D )不确定15.以下程序段执行后,输出结果是(char str尸'abcn012n"printf("%d",strlen(str);)1316.若有以下定义:floatt54;,能正确引用t数组元素的表达式是(A t14)t50C) t00D ) t0,017.执行下列程序段:int a 3 = 1,2,3,4,5,6;for ( i = 0;i < 3;i+ )s = s + aii;则s的值是()。A 5B ) 6C ) 12D )

7、2118 .下述对字符数组的描述中,错误.的是()。A字符数组可以存放字符串B)字符数组中的字符串可以整体输入输出C )可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值D)不可以用关系运算符对字符数组中的字符串进行比较19 .设有宏定义#define Y(x) (x) + 2 ,则下面程序段的运行结果是()。int a = 2,b = 2,c = 1;printf("%dn",a * Y( b + c );A 7B ) 8C ) 9D ) 1020 .若用数组名作为函数调用的实参,传递给形参的是()。A)数组的长度B)数组第一个元素的值C)数组中全部元素的值D)数组的

8、首地址21 .下面叙述中,不正确的是()。A)在不同的函数中可以使用相同名字的变量B)函数中的形式参数是局部变量C)在一个函数内定义的变量只在本函数范围内有效D)在一个函数内的复合语句中定义的变量在本函数范围内有效22.若在程序中定义了以下函数:float max( float a float b )return ( a>b?a:b); 并将其放在主调函数之后,则在调用之前应该对该函数进行声明,以下选项中错误.的声明是()。A) float max( float a,b );B) float max( float float );C) float max( float a ,float

9、b ); D) float max( float x ,float y );23 .要使函数体内的某局部变量能保留函数前一次调用后的值,供下一次调用时继续使用,该变量的存储类型应是()。A) auto B) extern C) static D) register24 .类型相同的两个指针变量之间不能.进行的运算是()。A) +B) -C) =D )=25 .若有说明语句:int i, x34"则不能将x11的值赋值给变量i的语句是()。A)i= *( *( x + 1 ) +1 );B)i = x11;C)i= *( *( x + 1 ) );D)i = *( x1 +1 );26

10、.有如下程序段:int a6 = 1,2,3,4,5,6 ;int m,*ptr;ptr = &a0;m = ( *ptr )*( *( ptr + 2 ) ) *( *( ptr + 4 );执行该程序段后,m的值为()。A) 15B) 48C) 24D) 8则枚举元素 my your、his、her的值分别是(A) 0 1 2 3B) 0 4 0 10C) 0 4 5 15D) 1 4 5 1528.下面程序的运行结果是(union myun struct int x,y,z; u;a;int k;void main()A) 429.表达式11A) 0a.u.x = 4;a.u.y

11、 = 5;a.u.z = 6;a.k = 0;printf("%dn",a.u.x);& 18的值是(B)C) 530.当顺利执行了文件关闭操作后,fclose函数的返回值是(C) -1D) 6D) 27)°D) 127. 设有定义: enum team my,your=4,his,her = his+10;得分阅卷人复核人A) 0B)true、填空题(每小题 2分,共计20分)。scanf("%d",&n);printf("%.0fn",f(n);10.以下程序执行后的输出结果是 void main() i

12、nt a = 3,b = 1,t;t = ( a << 2 )| b;printf("%dn",t);得分阅卷人复核人三、程序阅读题(每小题 4分,共计20分)。1 .以下程序执行后的输出结果是 。#include <stdio.h>void main() int i;for ( i = 1;i <5;i+ )putchar('#');2 .以下程序执行后的输出结果是 。void main() int arr10=-1,2,3,4,-5,6,7,-8,9,0,i,k = 0;1 . C语言源程序编译后生成 程序,然后经过连接生成

13、可执行程序。2 .实型常量有两种表示方法:小数形式和 。3 . rewind 函数的功能是 。4 .若ch是字符型变量,与 ch=getchar();功能相同的语句是 。5 .以下程序段要使指针变量p指向一个整型的动态存储单元,请填空。int * p;p=malloc(sizeof(int);6 .已知:int *p,a = 2,b = 1;,则执行程序段 p = &a;a = *p + b;后,a的值为7 .已知:int x = 1, y = 2, z; ,则执行 z = x > y ? +x : +y; 后,z 的值为8 .当执行下面程序且输入:ABC相车时,输出的结果是 。

14、#include <stdio.h>void main() char ss10 ="12345”;gets(ss);printf( " %sn" ,ss);9 .下面程序的功能是用函数的递归调用求n! (n>1),请填空。float f(int n) if (n=1) return(1);else return ();void main() int n; int x;for ( i = 0;i <10;i + )四、程序改错题(共 2小题,每正确修改一处错误得2分,10 分)。if(arri<0) k+;printf("%d

15、n",k);3 .以下程序执行后的输出结果是 void fun(int a10)int i,j,t;for (i=0;i<9;i+)for (j=0;j<9-i;j+)if (aj>aj+1)t=aj;aj=aj+1;aj+1=t; void main()int i;int a10=435,1,0,826,7,9;fun(a);for (i=0;i<10;i+)printf("%3d",ai);printf("n");4 .以下程序执行后的输出结果是 #include <stdio.h>struct stui

16、nt *y;*P;int a2 = 10,20;struct stu aa2 = 150,&a0,250,&a1;void main() P = aa; printf("%dn",(+p)-> x ); 5 .以下程序执行后的输出结果是 void swap( int *p1 ,int *p2) int k;k = *p1;*p1 = *p2;*p2 = k;void main() int a = 3,b = 6,*x = &a,*y = &b;swap( x,y );printf("%d,%dn",*x,*y);得分

17、阅卷人复核人注意:不得增行或删行,写出改正后的程序行,使之能够得出正确的结果。printf("Please input 10 data:n");1.下列程序的功能是计算数列void main()int s=0,n,i=1;scanf("%d",n);do s=s+i;i=i+2; while (i>2*n-1);printf("s=%dn",s);1,3,5,2n-1,的前n项之和,其中n由键盘输入。for (i=0;i<10;i+)/* 1/* 2)该行有错误*/)该行有错误*/2.下列给定的程序中,函数 average

18、的功能是:求10个数的平均值。#include <stdio.h>float average(float *array) int i;float aver,sum;/* 1)该行有错误 */for (i=0;i<10;i+)sum=arrayi;/* 2)该行有错误 */aver=sum/10;return(aver);void main() float data10,aver;int i;scanf("%f",&datai);aver=average(data0);/* 3printf("averege data is %5.2fn&q

19、uot;,aver);得分阅卷人复核人)该行有错误*/五、程序设计题(共 3小题,第1小题6分,第2、3小题各7分,共20分)。1 .输入x,计算并输出下列分段函数y的值(结果保留2位小数)。0 (X 0)4xy (° x 15)2.5x 10.5 (x 15)2.在一个已排序的整型数组(设从小到大)中,插入一个整数,使之仍然有序(要求数组中原有的10个整数从键盘按顺序输入)。3.请先编写一个函数 concat(char str1 ,char str2),实现两个字符串的连接(注 意不要用strcat函数);再编写一个 main()函数进行测试:在主函数中输入两个字符串, 然后调用c

20、oncat函数,最后将连接后的字符串输出。得分阅卷人复核人参考答案一、单项选择题。从 A、B C、D四个选项中,选择一个最佳答案填入括号内(每小题1分,共30分,错选、漏选、多选均不得分 )。12345678910BBBCABDCBD11121314151617181920ACBBCCACBD21222324252627282930DACACACBCA得分阅卷人复核人、填空题(每小题 2分,共20分,错填、漏填均不得分 )。题号12345答案目标指数形式使文件的位置指 针返回到文件头scanf( "%C ,&ch);(int *)题号678910答案33ABCn*f(n-1)

21、13三、程序阅读题(每小题 4分,共20分)题号12345答案#30 1 2 3 4 5 6 7 8 92506,3说明:对于程序阅读题,如果该题考生所给出的答案仅仅是书写格式上的错误,没有其它方面错误,扣1分,否则该题不得分。得分阅卷人复核人四、程序改错题(共 2小题,每正确修改一处错误得2分,共计10分)。注意:不得增行或删行,写出改正后的程序行,使之能够得出正确的结果。1. 1) scanf("%d",&n);2) while (i<=2*n-1);2. 1) float aver,sum=0;2) sum=sum+arrayi;(或者改为 sum+=a

22、rrayi; 、sum=sum+*(array+i); 、sum+=*(array+i);sum=sum+(*(array+i); 也正确)3) aver=average(data);(或者改为 aver=average(&data0); 也正确)得分阅卷人复核人五、程序设计题(共 3小题,第1小题6分,第2、3小题各7分,共20分)评分总则:若考生给出的程序语法正确,符合要求,能够实现具体功能,即可得满分;若程序存在错误,不能得出正确结果,阅卷教师酌情给分,给分方法参考下列评分标准。1)源程序代码#include <stdio.h>main()float x,y; 1 分printf("input x:");scanf("%f',&x);2 分if(x<0) y=0;else if (x<=15) y=4*x/3;else y=2.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论