份考试C语言程序设计第三次作业Word文件下载.docx
《份考试C语言程序设计第三次作业Word文件下载.docx》由会员分享,可在线阅读,更多相关《份考试C语言程序设计第三次作业Word文件下载.docx(19页珍藏版)》请在冰点文库上搜索。
10.当a的值分别为:
1,2,3时,程序的结果是______
#includemain()
inta;
Pleaseentera="
);
scanf("
%d"
&
a);
switch(a)
{
case1:
printf("
*"
break;
default:
#"
case2:
-"
);
11.下面程序段的运行结果是______
chars[80],*sp="
you"
Y'
12.以下程序的执行结果是:
______.
#includemain()
inta,b,c,d,x;
a=c=0;
b=1;
d=20;
if(a)d=d-10;
elseif(!
b)if(!
c)x=15;
elsex=25;
d=%d\n"
d);
13.写出下面表达式运算后Val的值,假设Val=12,Num=7.Val和Num都定义为整型变量.______Val+=Val;
______Val*=Val;
______Val*=Num+Val;
______Val%=(Num%=4);
______Val/=Val+Val;
______Val+=Val-=Val*=Val;
14.若a是int型变量,则执行下面表达式后a的值是______.a=25/3%3
15.输入:
teacher时,下列程序的输出结果是______
charc;
intv0=0,v1=0;
doswitch(c=getchar())
case'
a'
:
case'
b'
c'
v0++;
2:
v1++;
while(c!
='
\n'
v0=%d,v1=%d\n"
v0,v1);
16.下列程序的输出结果是______
main()
k=(++a<
17.下列程序的输出结果是______
intx=1,a=0,b=0;
switch(x)
case0:
b++;
a++;
b++;
}
a=%d,b=%d\n"
a,b);
18.以下程序的运行结果是______
inta=3,b=5;
max(inta,intb)
intc;
c=a>
b?
a:
b;
return(c);
inta=8;
max(a,b)):
19.当a的值分别为:
1,2,3时,程序的结果是______.
switch(a)
a"
b"
c"
20.下列程序的输出结果是______.
inta=-1,b=2,k;
二、程序阅读题(本大题共60分,共10小题,每小题6分)
1.表示"
整数x的绝对值大于5"
时值为"
真"
的C语言表达式是().
2.已知字符A的ASCII码值为65,以下语句的输出结果是().
charch='
B'
%c%d\n"
ch,ch);
3.以下程序运行时,若从键盘输入:
102030<
回车>
输出的结果是().
inti=0,j=0,k=0;
%d%*d%d"
i,&
j,&
k);
i,j,k);
4.以下程序运行后的输出结果是().
voidswap(intx,inty)
intt;
t=x;
x=y;
y=t;
%d%d"
x,y);
inta=3,b=4;
swap(a,b);
%d%d"
5.以下程序运行后的输出结果是().
charm;
m='
+32;
%c\n"
m);
6.以下程序运行后的输出结果是().
inta[4][4]={{1,2,3,4},{5,6,7,8},{11,12,13,14},{15,16,17,18}};
inti=0,j=0,s=0;
while(i++<
4){if(i==2||i==4)continue;
j=0;
do{s+=a[i][j];
j++;
while(j<
4);
%d\n"
s);
7.有以下语句段
intn1=10,n2=20;
()"
n1,n2);
要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空.n1=10n2=20
8.以下程序运行后的输出结果是()
main()
chara[]="
Language"
b[]="
Programe"
char*p1,*p2;
intk;
p1=a;
p2=b;
for(k=0;
k<
=7;
k++)if(*(p1+k)==*(p2+k))printf("
%c"
*(p1+k));
9.求ax*x+bx+c=0的方程的根.a,b,c由键盘输入,设b-4ac>
0.
10.有一分数序列:
2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和.
答案:
一、填空题(40分,共20题,每小题2分)
1.
参考答案:
编辑编译连接运行
解题方案:
基本知识、记忆
评分标准:
每答对1空得2分
2.
函数
基本知识点、记忆
3.
声明执行
函数体一般包括声明部分和执行部分
4.
宏定义文件包含条件编译
基本概念,记忆
5.
48
Float4字节Double8字节
6.
自动(auto)静态(static)寄存器(register)外部的(extern)
4种存储方式是自动(auto)、静态(static)、寄存器(register)、外部的(extern)
7.
201500
Val+=Val,Val=20等价于Val*=(Num+Val),Val=150等价于Val*=Val,Val-=Val,Val+=Val,Val=0
8.
hELLO!
字符串常量自动添加结束符’\0’,所以sp=strcpy(s,sp);
s="
triz"
且sp指向s所以输出hELLO!
9.
103
(a++<
=0))等价于1&
0)所以k=1,a=0,b=3
10.
*-#-
执行case1,输出*执行case2,输出执行default,输出#-
11.
You
you"
且sp指向s所以输出You
12.
d=20
Else和最近的if配对,所以if(a)[假]d=d-10;
elseif(!
b)[假]if(!
elsex=25;
从而,赋值语句都没有执行,所以d=20
13.
24144228000
(1)Val+=Val,Val=24
(2)val*=Val,Val=144(3)等价Val*=(Num+Val),Val=12*(12+7)=228(4)Val%=(Num%=4);
Val%=(Num%4)=12%(7%4)=12%3=0(5)等价Val/=(Val+Val)12/=(12+12)Val=0(6)等价Val*=Val,Val-=Val,Val*=Val+=Val,则Val=(144,0,0,0)=0
14.
2
/优先即高于%,等价于(25/3)%3=8%3=2
15.
v0=2,v1=8
Case中没有break,因此?
v0增加2次,v1增加8次,所以v0=2,v1=8
16.
004
++a<
0即0<
0为假,不执行&
的后的表达式,所以k=0,a=0,b=4
17.
a=2,b=1
执行case1,case中没有break,执行完该switch语句,所以a=2,b=1
18.
8
对于全局变量和局部变量同名时,在程序局部变量作用域,局部变量覆盖全局变量,所以max(a,b)等价于max(8,5)
19.
acbc
Case1输出aCase2输出cCase3输出bc
20.
002
(++a<
=0))即(0<
(!
=0)),即0&
=0)),所以(!
=0))不执行.K=0,a=0,b=2
二、程序阅读题(60分,共10题,每小题6分)
x>
5||x5或abs(x)>
5或(x>
5)||(x5)
要使整数x的绝对值大于5,则x大于5或x小于-5,用C语言表示即为:
5||x<
-或者(x>
5)||(x<
-5).
回答正确得5分,错误不得分
B66
printf函数的一般格式为printf(格式控制,输出表列)"
格式控制"
是用双引号括起来的字符串,也称"
转换控制字符串"
.1、d格式符,用来输出十进制整数.2、c格式符,用来输出一个字符.已知字符A的ASCII码值为65,则字符B的ASCII码值为66,所以本题输出结果为:
10300
在scanf格式控制符中,如果在%后有一个"
附加说明符,表示跳过它指定的列数.本题中"
表示将10赋给i,%*d表示读入整数但不赋给任何变量,然后再读入整数30赋给变量j,那么变量k并没有重新赋值,仍为初始值0.所以输出的结果为10300.
4334
用变量作为函数的实参时,属单向传递,即"
值传送"
方式,此种函数参数的传递方式只能由实参传给形参,不能由形参传回来给实参.本题中,变量a,b的值传递给了函数swap的形参x,y,并在函数中对x,y的值进行了交换,所以函数swap中输出的x,y的值为4,3,但此时实参a,b的值并没有随形参x,y的改变而改变,所以在主函数中输出的a,b的值为3,4.
b
考察的主要知识点是不同类型数据间的转换与运算.本题所要实现的功能是把大写字母转换为小写字母,在C中,小写字母的ASCII码值比大写字母的ASCII码值大32.
92
本题考查的是循环的嵌套.解题过程:
(1)当i=0时执行while1)i<
4,i=12)因为i=1,所以不执行continue3)j赋值04)执行dowhile①s=0+a[1][0]=5,j=1,因为j<
4,所以继续循环②s=5+a[1][1]=5+6=11,j=2,因为j<
4,所以继续循环③s=11+a[1][2]=11+7=18,j=3,因为j<
4,所以继续循环④s=18+a[1][3]=18+8,j=26,因为j=4,所以终止循环
(2)当i=1时,i<
4执行while,i=2,因为i=2,所以执行continue,结束本次while循环(3)当i=2时,i<
4执行while,i=31)因为i=3,所以不执行continue2)j赋值03)执行dowhile①s=26②s=26+a[3][0]=26+15=41,j=1,因为j<
4,所以继续循环③s=41+a[3][1]=41+16=57,j=2,因为j<
4,所以继续循环④s=57+a[3][2]=57+17=74,j=3,因为j<
4,所以继续循环⑤s=74+a[3][3]=74+18=92,j=4,因为j=4,所以终止循环(4)i=3时,i<
4执行while,i=4因为i=4,所以执行continue,结束本次循环(5)当i=4时,i=4结束while循环(6)结果输出s=92.
n1=%d\nn2=%d
它包括两种信息:
1、格式说明,由"
%"
和格式字符组成,如%d,%f等.它的作用是将输出的数据转换为指定的格式输出.格式说明总是由"
字符开始的.2、普通字符,即需要原样输出的字符.结果要求输出为:
n1=10n2=20所以格式控制中需含有"
n1="
部分,又因为要求按两行输出,需含有回车符:
\n.
gae
解题过程:
(1)当k=0时,*(p1+0)='
L'
*(p2+0)='
P'
L!
=P,所以没有输出
(2)当k=1时,*(p1+1)='
*(p2+1)='
r'
a!
=r,所以没有输出(3)当k=2时,*(p1+2)='
n'
*(p2+2)='
o'
n!
=o,所以没有输出(4)当k=3时,*(p1+3)='
g'
*(p2+3)='
g==g,所以输出g(5)当k=4时,*(p1+4)='
u'
*(p2+4)='
u!
=r,所以没有输出(6)当k=5时,*(p1+5)='
*(p2+5)='
a==a,所以输出a(7)当k=6时,*(p1+6)='
*(p2+6)='
m'
g!
=m,所以没有输出(8)当k=7时,*(p1+7)='
e'
*(p2+7)='
e==e,所以输出e(9)当k=8时结束循环(10)输出结果为:
gae.
floata,b,c,disc,x1,x2,p,q;
a=%f,b=%f,c=%f"
a,&
b,&
c);
disc=b*b-4*a*c;
p=-b/(2*a);
q=sqrt(disc)/(2*a);
x1=p+q;
x2=p-q;
\n\nx1=%5.2f\nx2=%5.2f\n"
x1,x2);
一元二次函数的球根公式是(-b+sqrt(b*b-4*a*c))/2a,(-b-sqrt(b*b-4*a*c))/2a
程序机构3,算法5,其他2
intn,t,number=20;
floata=2,b=1,s=0;
for(n=1;
n<
=number;
n++)
s=s+a/b;
t=a;
a=a+b;
b=t;
sumis%9.6f\n"
分子的规律是2,3,5,8,13…分母的规律是1,2,3,5,8,13…可知第n项f[n]的值为f[n-1]+f[n-2]