c语言程序设计期末试题B(含答案)一单项选择题(每小题1分,共10分)1.以下4组用户定义标识符中,全部合法的一组是()A)_totalclu_1sumB)if-maxturbC)txtREAL3COMD)intk_2_0012.以下程序的输出结果是()#includestdio.hmain(){inta=1,b=2,c=3;printf(“%d”,cba);}A)2B)1C)0D)33.以下正确的叙述是()A)在C语言中,main函数必须位于文件的开头B)C语言每行中只能写一条语句C)C语言本身没有输入、输出语句D)对一个C语言进行编译预处理时,可检查宏定义的语法错误4.设有定义:inta,*pa=&a;以下scanf语句中能正确为变量a读入数据的是()A)scanf(%d,pa);B)scanf(%d,a);C)scanf(%d,&pa);D)scanf(%d,*pa);5.若有以下程序段,intc1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是()A)0B)0.5C)1D)26.能正确表示逻辑关系:“a≥=10或a≤0”的C语言表达式是()A)a=10ora=0B)a=0|a=10C)a=10&&a=0D)a=10‖a=07.执行下面的程序时,将1、2、3、4分别赋给a、b、c、d,正确的输入是()main(){inta,b,c,d;scanf(“%d,%d,%d%d”,&a,&b,&c,&d);…}A)1234B)123,4C)1,2,3,4D)1,2,348.有以下程序段main(){intk=0;while(k=1)k++;}则while循环执行的次数是()A)无限次B)有语法错,不能执行C)一次也不执行D)执行1次9.以下程序的输出结果是()#includestdio.hmain(){inta=5,b=4,c=6,d;printf(“%d”,d=ab?(ac?a:c):b);}A)5B)4C)6D)不确定10.下面是对数组a的初始化,其中不正确的是()A)a[5]={ABCD}B)a[5]={'A','B','C','D'}C)a[5]=D)a[5]=ABCDE二、填空题(每空2分,共32分)1.结构化程序设计中的三种基本结构是[1]、[2]、[3]。2.C程序的基本组成单位是[4]。3.标识符的第一个字符必须是[5]或[6]。4.实常数123.457的规范化指数表示形式是[7]。5.表达式7/2的结果是[8]。表达式7%2的结果是[9]。6.定义一个整型数组a[10],则下标最大的数组元素为[10]。7.在函数的递归调用过程中,要使递归过程不是无限制进行下去,必须具有[11]。8.C语言提供了[12]命令用来实现“文件包含”的操作。9.已知:charc[]={“china”};将字符数组c中整个字符串一次输出的语句书写格式为[13]。10.表达式43&&75-!0的值为[14]。11.按照变量在函数中作用域不同,可以将变量分为[15]和[16]。三、计算题(要求写出步骤)(每题4分,共8分)1.设inta=12,求出表达式a+=a-=a*a运算后a的值.2.设a=2,b=3,x=3.5,y=2.5求算术表达式(float)(b-a)/2+(int)x%(int)y的值四、读下列程序,写出程序的运行结果(4×3=12)1.已知字符A的ACSII码值为65,写出以下语句的输出结果main(){charch=‘A’;printf(%c,%d,ch,ch+3);}2.main(){inta=10;printf(“%d”,++a);printf(“%d”,a--);}3.main(){intt=1;for(i=1;i5;i++)t=t*i;printf(%d,t);}4.f(int*a,intb){b=b+*a;*a=*a+b;}main(){intx=2,y=4;int*p;p=&x;f(p,y);printf(%d,%d,x,y);}五、程序填空(每空2分,共14分)1.下列程序段以函数swap()调用的形式实现两个变量值的互换,请填空完善程序。swap(int*m,int*n){inttemp;temp=[1];[2];*n=[3];}main(){intx,y;scanf(“%d,%d”,&x,&y);swap([4]);printf(%d,%d”,x,y);}2.下面程序是计算1-3+5-7+……-99+101的值,请填空完善程序。main(){inti,m,t=1,s=0;for(i=1;i=101;[5]){[6];s=s+m;[7];}printf(“%d\n”,s);}六、编程题:(共24分)1.编程求1!+2!+3!+……+50!的值。(6分)2.用函数的递归调用方法求下列函数式的值(要求n由用户输入),递归公式为:(8分)1(n=1)total(n)=total(n-1)+n+1(n1)3.编写程序输出下列形式的杨辉三角形的前10行。(10分)111121133114641……C语言模拟试卷二答案及评分标准一、单项选择题(每小题1分)1.A2.C3.D4.A5.B6.D7.D8.A9.C10.D二、填空题(每空2分)1.顺序结构、选择结构、循环结构。2.函数3.字母、下划线4.1.23457e2或1.23457E25.3、16.a[9]7.使递归结束的条件8.#include9.printf(“%s”,c)10.011.全局变量、局部变量三、计算题(要求写出步骤)(每题4分)1.a-=a*aa=a-a*aa=12-144=-132a+=-132a=a+(-132)a=-132-132=-2642.1.0/2+3%2=0.5+1=1.5四、读下列程序,写出程序的运行结果(每题3分)1.1.A,682.2.11113.3.244.4.8,4五、程序填空:(每空2分)1.*m2.*m=*n3.temp4.x,y5.i=i+26.m=i*t7.t=-t六、编程题1.main(){inti;floatt=1,s=0;for(i=1;i=50;i++){t=t*i;s=s+t;}printf(s=%e\n,s);}2.total(intn){intc;if(n==1)c=1;elsec=total(n-1)+n+1;return(c);}main(){intn;scanf(“%d”,n);printf(“%d”,total(n));}3.main(){inta[10][10],i,j;for(i=0;i10;i++){for(j=0;j=i;j++){if((j==0)||(i==j))a[i][j]=1;elsea[i][j]=a[i-1][j-1]+a[i-1][j];printf(%d,a[i][j]);}printf(\n);}}