期中考试答案C语言答案.docx
- 文档编号:30825016
- 上传时间:2024-01-30
- 格式:DOCX
- 页数:19
- 大小:20.34KB
期中考试答案C语言答案.docx
《期中考试答案C语言答案.docx》由会员分享,可在线阅读,更多相关《期中考试答案C语言答案.docx(19页珍藏版)》请在冰豆网上搜索。
期中考试答案C语言答案
天津师范大学考试试卷
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.TomBig1
3.以下选项中不能作为C语言合法常量的是(A)。
A.‘cd’B.0.1e+6C.“\a”D.‘\011’
4.若有代数式(其中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)。
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,1
6.若变量均已正确定义并赋值,以下合法的C语言赋值语句是(A)。
A.x=y=5;B.x=n%2.5;C.x+n=i;D.x=5=4+1
7.执行以下程序时,输入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.141593
C.12,3.141593D.123.1415930
10.当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是(D)。
A.k%2B.k%2==1C.(k%2)!
=0D.!
k%2==1
11.设有定义:
inta=2,b=3,c=4;,则以下选项中值为0的表达式是(A)。
A.(!
a==1)&&(!
b==0)B.(a
c||1
C.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.233
13.有以下程序,运行后输出(D)。
#include
main()
{inta=0,b=0,c=0,d=0;
if(a=1)
b=1;c=2;
else
d=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;
15.若变量已正确定义,有以下程序段,其输出结果是(B)。
i=0;
do
printf("%d,",i);while(i++);
printf("%d\n",i);
A.0,0B.0,1C.1,1D.程序进入无限循环
16.有以下程序,运行结果是(B)。
#include
main()
{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.3
17.有以下程序,运行后的输出结果是(D)。
#include
main()
{intk=5,n=0;
while(k>0)
{switch(k)
{default:
break;
case1:
n+=k;
case2:
case3:
n+=k;
}
k--;
}
printf("%d\n",n);
}
A.0B.4C.6D.7
18.若定义具有10个int型元素的一维数组a,则以下定义语句中错误的是(D)。
A.#defineN10 B.#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)。
main()
{intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;
while(i++<7)
if(p[i]%2)
j+=p[i];
printf("%d\n",j);
}
A.42B.45C.56D.60
二、填空题:
答案写在答题纸上(本题共10个空,每空2分,共20分)
得分
评卷人
1.函数【1】是C程序的基本单位,一个C程序总是从【2】主函数(或main())开始执行的。
(P5-6概念)
2.从键盘输入一个小写字母,改成大写字母输出。
(P74页例题3.8改造)
#include"stdio.h"
voidmain()
{charc1,c2;
printf("Inputasmallletter:
");
c1=getchar();或scanf(“%c”,&c1);【3】/*从键盘输入一个大写字母*/
printf("%c,%d\n",c1,c1);/*用字符形式输出小写字母及其ASCII码*/
c2=c1-32;【4】/*把小写字母变为大写字母*/
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)
#include"stdio.h"
voidmain()
{
inta,b,c,max;
printf("Input3integers:
");
scanf("%d%d%d",&a,&b,&c);/*输入3个整数*/
if(a>b)max=a;【7】
elsemax=b;
if(c>max)max=c;【8】或max=(c>max)?
c:
max;
printf("max=%d\n",max);/*输出最大数*/
}
5.下列程序将输入的数据num按逆序输出,请完成填空。
(选自天津市二级题库,同时是对P113习题7的应用循环处理)
#include"stdio.h"
main()
{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)。
试题程序如下:
#include
main( )
{floatc,f;
printf("inputf:
\n");
scanf("%f",&f);
/**********************found***********************/
c=5/9*(f-32);
printf("c=%5.2f\n",c);}
答案:
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.下列给定程序的功能是:
输入两个数,并按升序排列输出。
试题程序:
#include
main()
{inta,b,t;
scanf(“%d%d”,&a,&b);
/*****************found****************/
if(a>b);
{t=b;b=a;a=t;}
printf(“%3d%3d\n”,a,b);}
答案:
if(a>b);改为if(a>b)
3.下面程序的功能是:
有一分数序列 …求这个数列的前20项之和。
试题程序:
#include
main( )
{inti,n=20;
/*****************found****************/
floata=2,b=1,t,s=0;
for(i=1;i {s+=a/b; t=a; a=a+b; b=t;} printf("sum=%9.6f\n",s);} 答案: for(i=1;i 4.下面程序的功能是: 判断整数m是否为素数。 试题程序: #include #include voidmain() {intm,i,k; printf("输入一个整数: "); scanf("%d",&m); k=sqrt(m); /*****************found****************/ for(i=2;i<=k;i++) if(m%i==0) continue; if(i>k) printf("%d是素数\n",m); else printf("%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) 四、 编程题: 根据题目要求编写源程序,注意书写格式的规范。 (本题共3小题, 1、2题任选一题,3题必做。 每小题15分,共30分) 得分 评卷人 1.计算分段函数的值,期中x由键盘输入,然后按下表计算y的值。 x<-1 -1≤x≤1 x>1 y=ln(x2+1) y=x(ex-1)(x-2) y=(x+1)/(3x3)+1 源程序: #include #include voidmain() {doublex,y; printf(“x=”); scanf(“%lf”,&x); if(x<-1) y=log(x*x+1); elseif(x<=1) y=x*(exp(x)-1)*(x-2); else y=(x+1)/(3*x*x*x)+1; printf(“x=%.2f,y=%.2f\n”); } 2.所谓水仙花数是指一个三位正整数,其各位数字立方和等于该数本身。 例如,153是一个水仙花数,因为153=13+53+33。 请输出所有的水仙花数。 要求一行输出2个水仙花数。 源程序: #include voidmain() {inti,n=0,ge,shi,bai; for(i=100;i<=999;i++) {ge=i%10; shi=i/10%10; bai=i/100; if(i==ge*ge*ge+shi*shi*shi+bai*bai*bai) {n++; printf(“%4d%c”,i,n%2==0? ’\n’,’’); } } } 3.编写一个main()函数实现: (1)定义一个一维数组,从键盘输入10个整数存入该数组(5分); (2)对该数组按降序排序并输出排序后结果(5分); (3)然后从键盘上输入一个整数,并将其插入到数组中,使得数组元素的值仍按降序排列(5分)。 (提示: 数组长度可定义稍大一些以容纳要插入的数) 源程序: #include main() {inta[11],i,j,t,x; for(i=0;i<10;i++) scanf(“%d”,&a[i]); for(i=0;i<9;i++) for(j=0;j<9-i;j++)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 期中考试 答案 语言
![提示](https://static.bdocx.com/images/bang_tan.gif)