您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 期中考试答案C语言答案
第1页共12页天津师范大学考试试卷2009—2010学年第二学期期中考试试卷科目:C语言程序设计学院:数学科学学院专业:数学、信计题号一二三四五六七八总分分数一、单项选择题:在每小题的备选答案中选出一个正确答案,并将正确答案的代码填在答题纸题干上的括号内。(本题共20小题,每小题2分,共40分)得分评卷人1.以下叙述中错误的是(D)。A.计算机不能直接执行用C语言编写的源程序B.C程序经C编译程序编译后,生成后缀为.obj的文件是一个二进制文件C.后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件D.后缀为.obj和.exe的二进制文件都可以直接运行2.可在C程序中用作用户标识符的一组标识符是(A)。A.andB.DateC.HiD.case_2007y-m-dDr.TomBig13.以下选项中不能作为C语言合法常量的是(A)。A.‘cd’B.0.1e+6C.“\a”D.‘\011’4.若有代数式xxen(其中e代表自然对数的底数,不是变量),则以下能够正确表示该代数式的C语言表达式是(C)。A.sqrt(abs(n^x+e^x))B.sqrt(fabs(pow(n,x)+pow(x,e)))C.sqrt(fabs(pow(n,x)+exp(x)))D.sqrt(fabs(pow(x,n)+exp(x)))5.有以下程序,运行后的输出结果是(C)。姓名:学号:班级:第2页共12页main(){intx,y,z;x=y=1;z=x++,y++,++y;printf(%d,%d,%d\n,x,y,z);}A.2,3,3B.2,3,2C.2,3,1D.2,2,16.若变量均已正确定义并赋值,以下合法的C语言赋值语句是(A)。A.x=y=5;B.x=n%2.5;C.x+n=i;D.x=5=4+17.执行以下程序时,输入1234567回车,则输出结果是(C)。main(){inta=1,b;scanf(“%2d%2d”,&a,&b);printf(“a=%db=%d”,a,b);}A.1234B.a=123b=456C.a=12b=34D.输入有错误8.设变量均已正确定义,若通过scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y,以下输入形式中正确的是(D)。(□代表空格)A.10□X□20□Y回车B.10□X20□Y回车C.10□X回车D.10X回车20□Y回车20Y回车9.程序段:intx=12;doubley=3.141593;printf(“%d%8.6f”,x,y);的输出结果是(A)。(□代表空格)A.123.141593B.12□3.141593C.12,3.141593D.123.141593010.当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项第3页共12页含义不同,这个选项是(D)。A.k%2B.k%2==1C.(k%2)!=0D.!k%2==111.设有定义:inta=2,b=3,c=4;,则以下选项中值为0的表达式是(A)。A.(!a==1)&&(!b==0)B.(ab)&&!c||1C.a&&bD.a||(b+b)&&(c-a)12.有以下程序,运行后的输出结果是(D)。main(){inti=1,j=2,k=3;if(i++==1&&(++j==3||k++==3))printf(%d%d%d\n,i,j,k);}A.123B.234C.223D.23313.有以下程序,运行后输出(D)。#includestdio.hmain(){inta=0,b=0,c=0,d=0;if(a=1)b=1;c=2;elsed=3;printf(“%d,%d,%d,%d\n”,a,b,c,d);}A.0,1,2,0B.0,0,0,3C.1,1,2,0D.编译出错14.以下不构成无限循环的语句或者语句组是(A)。A.n=0;B.n=0;do{++n;}while(n=0);while(1){n++;}C.n=10;D.for(n=0,i=1;;i++)while(n);{n--;}n+=i;第4页共12页15.若变量已正确定义,有以下程序段,其输出结果是(B)。i=0;doprintf(%d,,i);while(i++);printf(%d\n,i);A.0,0B.0,1C.1,1D.程序进入无限循环16.有以下程序,运行结果是(B)。#includestdio.hmain(){inti,j,m=55;for(i=1;i=3;i++)for(j=3;j=i;j++)m=m%j;printf(%d\n,m);}A.0B.1C.2D.317.有以下程序,运行后的输出结果是(D)。#includestdio.hmain()intk=5,n=0;switch(k)default:break;case2:}k--;}intf(%d\n,n);}A.0B.4C.6D.718.若定义具有10个int型元素的一维数组a,则以下定义语句中错误的是(D)。第5页共12页A.#defineN10B.#definen5C.inta[5+5];D.intn=10,a[n];inta[N];inta[2*n];19.若有定义语句:intm[]={5,4,3,2,1},i=4;则下面对m数组元素的引用中错误的是(C)。A.m[--i]B.m[2*2]C.m[m[0]]D.m[m[i]]20.有以下程序,运行后的输出结果是(B)。{intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;if(p[i]%2)j+=p[i];\n,j);}A.42B.45C.56D.60二、填空题:答案写在答题纸上(本题共10个空,每空2分,共20分)得分评卷人1.函数【1】是C程序的基本单位,一个C程序总是从【2】主函数(或main())开始执行的。(P5-6概念)2.从键盘输入一个小写字母,改成大写字母输出。(P74页例题3.8改造)#includestdio.hvoidmain(){charc1,c2;printf(Inputasmallletter:);c1=getchar();或scanf(“%c”,&c1);【3】/*从键盘输入一个大写字母*/printf(%c,%d\n,c1,c1);/*用字符形式输出小写字母及其ASCII码*/c2=c1-32;【4】/*把小写字母变为大写字母*/第6页共12页printf(%c,%d,c2,c2);/*用字符形式输出大写字母及其ASCII码*/}3.下面程序实现判断某年是否为闰年(P105例题4.6)main(){inty,flag;scanf(%d,&y);if(y%4==0)if(y%100==0)if(y%400==0【5】)leap=1;elseleap=0;elseleap=1【6】;elseleap=0;if(leap)printf(%disaleapyear!\n,y);elseprintf(%disnotaleapyear!\n,y);}4.有3个整数a,b,c,由键盘输入,输出其中最大的数。(P113习题5)#includestdio.hvoidmain(){inta,b,c,max;printf(Input3integers:);scanf(%d%d%d,&a,&b,&c);/*输入3个整数*/if(ab)max=a;【7】elsemax=b;if(cmax)max=c;【8】或max=(cmax)?c:max;printf(max=%d\n,max);/*输出最大数*/}第7页共12页5.下列程序将输入的数据num按逆序输出,请完成填空。(选自天津市二级题库,同时是对P113习题7的应用循环处理)#includestdio.hmain(){intc,num;printf(Enteranumber:);scanf(%d,&num);do{c=num%10;【9】printf(“%d”,c);}while((num/=10)0【10】);}三、改错题:答案写在答题纸上(本题共5小题,每小题2分,共10分)得分评卷人请指出并改正下列程序中的错误(在/*********found********/下面找错),使它得到正确的结果。先将错误语句(行)抄写在答题纸上一行,再将改正的答案写在相应的下一行。注意:不允许增行或删行,也不允许更改程序中的结构。1.下面程序的功能是输入一个华氏温度,要求输出摄氏温度。公式为c=5/9×(F-32)。试题程序如下:#includestdio.hmain(){floatc,f;printf(inputf:\n);scanf(%f,&f);/**********************found***********************/c=5/9*(f-32);printf(c=%5.2f\n,c);}第8页共12页答案:c=5/9*(f-32);改为c=5/9.0*(f-32);或c=5./9*(f-32);或c=5./9.0*(f-32);或c=5*(f-32)./9;等等2.下列给定程序的功能是:输入两个数,并按升序排列输出。试题程序:#includestdio.hmain(){inta,b,t;scanf(“%d%d”,&a,&b);/*****************found****************/if(ab);{t=b;b=a;a=t;}printf(“%3d%3d\n”,a,b);}答案:if(ab);改为if(ab)3.下面程序的功能是:有一分数序列,,,,,,132181358352312…求这个数列的前20项之和。试题程序:#includestdio.hmain(){inti,n=20;/*****************found****************/floata=2,b=1,t,s=0;for(i=1;in;i++){s+=a/b;t=a;a=a+b;b=t;}printf(sum=%9.6f\n,s);}答案:for(i=1;in;i++)改为for(i=1;i=n;i++)第9页共12页4.下面程序的功能是:判断整数m是否为素数。试题程序:#includemath.h#includestdio.hvoidmain(){intm,i,k;printf(输入一个整数:);scanf(%d,&m);k=sqrt(m);/*****************found****************/for(i=2;i=k;i++)if(m%i==0)continue;if(ik)printf(%d是素数\n,m);elseprintf(%d不是素数\n,m);}答案:continue;改为break;5.下面程序的功能是:从键盘上输入一行字符,并以’#’字符作为输入结束,统计其中’a’、’h’字符的个数。#include”stdio.h”main(){intv1=0,v2=0;charch;/*****************found****************/while((ch=getchar())!=’#’)switch(ch):{case’a’:v1++;break;case’h’:v2++;break;}printf(”%d,%d\n”,v1,v2);}答案:switch(ch):改为switch(ch)第10页共12页四、编程题:根据题目要求编写源程序,注意书写格式的规范。(本题共3小题,1、2题任选一题,3题必做。每小题15分,共30分)得分评卷人1.计算分段函数的值,期中x由键盘输入,然后按下表计算y的值。x-1-1≤x≤1x1y=ln(x2+1)y=x(ex-1)(x-2)y=(x+1)/(3x3)+1源程序:#includestdio.h#
本文标题:期中考试答案C语言答案
链接地址:https://www.777doc.com/doc-7185184 .html