年C语言程序设计基础期末考试试卷‘B’及答案 The following text is amended on 12 November 2020.一、单项选择题1. 在C语言中,下面字符串能用作变量名的是( )。
A、a+bB、autoC、2-andD、a22. 若double x=2,y;则执行y=x+3/2;后,y的值是( )。
A、 B. C. D. 33. 下列关于C语言中字符常量与字符串常量的叙述中,错误的是( )。
A、字符常量是用单撇号括起来的一个字符B、空格字符也可用作字符常量C、字符串常量是用单撇号括起来的一个字符序列D、字符串常量是用双撇号括起来的一个字符序列4. 若有以下变量说明和数据的输入方式,则正确的输入语句为( )。
变量说明:float x1,x2;数据的输入方式:<回车><回车>A、scanf(“%f,%f”,&x1,&x2);B、scanf(“%f%f”,&x1,&x2);C、scanf(“%,%”,&x1,&x2);D、scanf(“%%”,&x1,&x2);6. 在一个源文件中定义的全局变量的作用域为()。
A. 本文件的全部范围B. 从定义该变量开始至本文件结束C. 本函数的全部范围D. 本程序的全部范围7. 当调用函数时,实参是一个数组名,则向函数传送的是( )。
A、数组的长度B、数组的首地址C、数组每一个元素的地址D、数组每个元素中的值8.若j为整型变量,则下面while循环( )。
j=10;while(j!=0) j=j-1;A、执行0次B、执行1次C、执行10次D、执行无限次9. 在while(x)语句中的x与下面条件表达式等价的是:( )。
A、x!=0B、 x==1C、x!=1D、x==010. 以下对C语言函数的描述中,正确的是( )。
A、调用函数时,参数可以是表达式B、函数的定义可以是嵌套C、函数必须有返回值D、所有函数必须在同一个程序文件中定义12. C语言中函数返回值的类型由( )决定的。
A、return语句中的表达式类型B、调用该函数的主调函数的类型C、调用函数时临时决定D、定义函数时所指定的函数类型13. 以下定义语句中,错误的是( )。
A、int a[ ]={1,2};B、int a[ ][3]={1,2,3,4,5};C、char s[10]=“test”;D、int n=5,a[n];14. 若变量c为char类型,能正确判断出c为大写字母的表达式是( )。
A、'A'<=c<= 'Z'B、(c>= 'A')||(c<= 'Z')C、(c>= 'A')&&(c<= 'Z')D、('A'<=c)and ('Z'>=c)二、填空题(每空2分,共20分)16.以下if语句执行后,a、b、c中的值分别为________。
int a=1,b=2,c=3;if(a>c) b=a; a=c; c=b;17.若程序中用到strlen()函数,就在程序开头写上包含命令#include<>________。
18. 设有以下变量定义,并已赋确定的值char w; int x; float y; double z;则表达式:w*x +z-y所求值的数据类型为。
20. 若int i=10,j=2;则执行i*=j+8;后i的值为。
21. 若有定义float x,y;则从键盘给x、y输入数据的语句应写为。
22. 若int a[2][2]={{1},{2,3}};则a[0][1]的值为___________。
23. 条件“y能被4整除但不能被100整除”的C语言表达式是___ _____ ___;表达式“0≤a≤10”在C语言中应表示为。
24. 有如下程序段int *p,a=10,b=1; p=&a; a=*p+b;执行该程序段后,a的值为。
三、程序分析题(每小题5分,共10分)11-15 BDBCA单项选择题(每小题2分,共30分)1-5 DDCAB6-10 ACDCA二、填空题(每空2分,共20分)16. 217. 518. 局部19. 4020. 921. 4 和 21622. lf23. 724. 25三、程序分析题(每小题5分,共10分)25. 1026. 7,8,7四、程序填空题(每小题10分,共20分)27. (1) f[0]=f[1]=1;(2) i=028. (1) n%i= =0(2) i>=n五、程序设计题(每小题10分,共20分)29.#include <>long fun(int n);int main(){int n;long f;scanf("%d",&n);f=fun(n);printf("%d!=%ld\n",n,f);return 0;}long fun(int n){int i;long f=1;for(i=1;i<=n;i++){f*=i;}return f;}30.#include <>int main(){int i,x[10],max,min;for(i=0;i<10;i++)scanf("%d",&x[i]);max=x[0];min=x[0];for(i=1;i<10;i++){if(x[i]>max)max=x[i];if(x[i]<min)min=x[i];}printf("最高分为:%d,最低分为:%d",max,min);return 0;}}26. 阅读程序,写出下列程序的运行结果。
# include <>main(){int m=1, n=2, *p=&m, *q=&n, *r;r=p;p=q;q=r;printf("%d,%d,%d,%d\n",m,n,*p,*q);}四、程序填空题(每小题10分,共20分)27. 该程序的功能为:向数组中录入十个数,然后求这十个数的平均值。
#include <>main(){float a[10],x;int i;for(i=0;i<10;i++)scanf(“%f”, (1) );for(i=0,x=0;i<10;i++)(2) ;x=x/;printf(“平均值=%f\n”,x);}(1)(2)28. 程序完成的功能为:将三个整数按从小到大的顺序排列,并打印出来。
#include <>int main(){int x,y,z,t;scanf("%d%d%d",&x,&y,&z);if(x>y){t=x;x=y;y=t;}if( (1) ){ (2) }if( y>z ){t=y;y=z;z=t;}printf("这三个数从小到大为:%d,%d,%d",x,y,z);return 0;}(1)(2)五、程序设计题(每小题10分,共20分)29. 编写程序:计算任一输入的整数的各位数字之和。
要求:使用自定义函数求解;主函数包括输入、输出和函数调用语句。
30. 编写程序:实现下面的分段函数,输入x的值,求y 的值。
y=21311x x x ⎧⎪-⎨⎪-⎩101011≥<≤<x x x【本套试卷共有五大题,计30小题】一、 单项选择题(每小题2分,共30分)1-5 DBCBD6-10 BBCAA11-15 CDDCB二、填空题(每空2分,共20分)16. 3,2,2 。
17. #include <> 。
18. double 。
19. 8 。
20. 100 。
21. scanf(“%f %f”,&x,&y); 。
22. 0 。
23. y%4= =0&&y%100!=0_. a>=0&&a<=10 。
24. 11三、程序分析题(每小题5分,共10分)25. 运行结果:1 2 3 5 6 926. 运行结果:1,2,2,1四、程序填空题(每小题10分,共20分)27.(1 ) &a[i](2 ) x=x+a[i];28.(1 ) x>z(2 ) t=x;x=z;z=t;五、程序设计题(每小题10分,共20分)29. #include <>int shuzihe(int n);int main(){int n,sum;printf("请输入任一正整数:");scanf("%d",&n);sum=shuzihe(n);printf("这个整数的各位数字之和为:%ld\n",sum);return 0;}int shuzihe(int n){int sum=0;while(n!=0){ sum+=n%10;n=n/10;}return sum;}30. #include <>int main(){float x,y;scanf("%f",&x);if(x<1)y=x;else if(x>=1&&x<10)y=2*x-1;elsey=3*x-11;printf("y=%f\n",y);return 0;}。