份考试C语言程序设计第三次作业.docx

上传人:b****8 文档编号:10821663 上传时间:2023-02-23 格式:DOCX 页数:19 大小:20.24KB
下载 相关 举报
份考试C语言程序设计第三次作业.docx_第1页
第1页 / 共19页
份考试C语言程序设计第三次作业.docx_第2页
第2页 / 共19页
份考试C语言程序设计第三次作业.docx_第3页
第3页 / 共19页
份考试C语言程序设计第三次作业.docx_第4页
第4页 / 共19页
份考试C语言程序设计第三次作业.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

份考试C语言程序设计第三次作业.docx

《份考试C语言程序设计第三次作业.docx》由会员分享,可在线阅读,更多相关《份考试C语言程序设计第三次作业.docx(19页珍藏版)》请在冰豆网上搜索。

份考试C语言程序设计第三次作业.docx

份考试C语言程序设计第三次作业

2013年9月份考试C语言程序设计第三次作业

一、填空题(本大题共40分,共20小题,每小题2分)

1.编写C语言程序四个步骤是:

______,______,______,______.

2.源程序的基本单位是______

3.函数体一般包括______部分和______部分

4.C语言提供的预处理功能有______、______、______等三种.

5.在C语言中(以16位PC为例),一个float类型的数据在内存中所占的字节数是______;一个double类型的数据在内存中所占的字节数是______.

6.C语言中变量和函数的存储方式有四种,分别是:

______,______,______,______.

7.写出下面表达式运算后Val的值,假设Val=10,Num=5.Val和Num都定义为整型变量.

(1)______,

(2)______,(3)______

(1)Val+=Val;

(2)Val*=Num+Val;(3)Val+=Val-=Val*=Val;

8.下面程序段的运行结果是______.

Chars[80],*sp="HELLO!

";

 sp=strcpy(s,sp);

 s[0]=''h'';

puts(sp);

9.下列程序的输出结果是______

 main()

 {

inta=-1,b=4,k;

k=(a++<0)&&(!

(b--<=0));

 printf("%d%d%d\n",k,a,b);

}

10.当a的值分别为:

1,2,3时,程序的结果是______

#includemain()

 {

inta;

 printf("Pleaseentera=");

 scanf("%d",&a);switch(a)

{

 case1:

printf("*");

break;

default:

printf("#");

case2:

printf("-");

 }

 }

11.下面程序段的运行结果是______

chars[80],*sp="you";

sp=strcpy(s,sp);

s[0]=''Y'';

 puts(sp);

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;

printf("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时,下列程序的输出结果是______

#includemain()

 {

charc;

 intv0=0,v1=0;

 doswitch(c=getchar())

{

case''a'':

case''b'':

case''c'':

v0++;

default:

2:

v1++;

 }

 while(c!

=''\n'');

 printf("v0=%d,v1=%d\n",v0,v1);

}

16.下列程序的输出结果是______

main()

{

 inta=-1,b=4,k;

 k=(++a<0)&&(!

(b--<=0));

 printf("%d%d%d\n",k,a,b);

 }

17.下列程序的输出结果是______

main()

 {

 intx=1,a=0,b=0;

switch(x)

{

 case0:

b++;

case1:

a++;

case2:

a++;b++;

}

printf("a=%d,b=%d\n",a,b);

}

18.以下程序的运行结果是______

inta=3,b=5;

max(inta,intb)

{

 intc;

c=a>b?

a:

b;

return(c);

 }

 main()

 {

 inta=8;

printf("%d",max(a,b)):

}

19.当a的值分别为:

1,2,3时,程序的结果是______.

 #includemain()

 {

 inta;

 printf("Pleaseentera=");

 scanf("%d",&a);

 switch(a)

 {

 case1:

printf("a");

break;

 default:

printf("b");

case2:

printf("c");

 }

}

20.下列程序的输出结果是______.

#includemain()

{

 inta=-1,b=2,k;

k=(++a<0)&&(!

(b--<=0));

printf("%d%d%d\n",k,a,b);

}

二、程序阅读题(本大题共60分,共10小题,每小题6分)

1.表示"整数x的绝对值大于5"时值为"真"的C语言表达式是().

2.已知字符A的ASCII码值为65,以下语句的输出结果是().

 charch=''B'';

 printf("%c%d\n",ch,ch);

3.以下程序运行时,若从键盘输入:

102030<回车>,输出的结果是().

#includemain()

{

 inti=0,j=0,k=0;

 scanf("%d%*d%d",&i,&j,&k);

 printf("%d%d%d\n",i,j,k);

}

4.以下程序运行后的输出结果是().

 voidswap(intx,inty)

 {

intt;

 t=x;x=y;y=t;

printf("%d%d",x,y);

}

 main()

 {

 inta=3,b=4;

swap(a,b);

 printf("%d%d",a,b);

}

5.以下程序运行后的输出结果是().

main()

 {

 charm;

m=''B''+32;

 printf("%c\n",m);

 }

6.以下程序运行后的输出结果是().

 main()

 {

 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);

 }

 printf("%d\n",s);

 }

7.有以下语句段

 intn1=10,n2=20;

printf("()",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.

参考答案:

函数

解题方案:

基本知识点、记忆

评分标准:

每答对1空得2分

3.

参考答案:

声明执行

解题方案:

函数体一般包括声明部分和执行部分

评分标准:

每答对1空得2分

4.

参考答案:

宏定义文件包含条件编译

解题方案:

基本概念,记忆

评分标准:

每答对1空得2分

5.

参考答案:

48

解题方案:

Float4字节Double8字节

评分标准:

每答对1空得2分

6.

参考答案:

自动(auto)静态(static)寄存器(register)外部的(extern)

解题方案:

4种存储方式是自动(auto)、静态(static)、寄存器(register)、外部的(extern)

评分标准:

每答对1空得2分

7.

参考答案:

201500

解题方案:

Val+=Val,Val=20等价于Val*=(Num+Val),Val=150等价于Val*=Val,Val-=Val,Val+=Val,Val=0

评分标准:

每答对1空得2分

8.

参考答案:

hELLO!

解题方案:

"HELLO!

"字符串常量自动添加结束符’\0’,所以sp=strcpy(s,sp);s="triz",且sp指向s所以输出hELLO!

评分标准:

每答对1空得2分

9.

参考答案:

103

解题方案:

(a++<0)&&(!

(b--<=0))等价于1&&(!

0)所以k=1,a=0,b=3

评分标准:

每答对1空得2分

10.

参考答案:

*-#-

解题方案:

执行case1,输出*执行case2,输出执行default,输出#-

评分标准:

每答对1空得2分

11.

参考答案:

You

解题方案:

"you"字符串常量自动添加结束符’\0’,所以sp=strcpy(s,sp);s="you",且sp指向s所以输出You

评分标准:

每答对1空得2分

12.

参考答案:

d=20

解题方案:

Else和最近的if配对,所以if(a)[假]d=d-10;elseif(!

b)[假]if(!

c)x=15;elsex=25;从而,赋值语句都没有执行,所以d=20

评分标准:

每答对1空得2分

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

评分标准:

每答对1空得2分

14.

参考答案:

2

解题方案:

/优先即高于%,等价于(25/3)%3=8%3=2

评分标准:

每答对1空得2分

15.

参考答案:

v0=2,v1=8

解题方案:

Case中没有break,因此?

v0增加2次,v1增加8次,所以v0=2,v1=8

评分标准:

每答对1空得2分

16.

参考答案:

004

解题方案:

++a<0即0<0为假,不执行&&的后的表达式,所以k=0,a=0,b=4

评分标准:

每答对1空得2分

17.

参考答案:

a=2,b=1

解题方案:

执行case1,case中没有break,执行完该switch语句,所以a=2,b=1

评分标准:

每答对1空得2分

18.

参考答案:

8

解题方案:

对于全局变量和局部变量同名时,在程序局部变量作用域,局部变量覆盖全局变量,所以max(a,b)等价于max(8,5)

评分标准:

每答对1空得2分

19.

参考答案:

acbc

解题方案:

Case1输出aCase2输出cCase3输出bc

评分标准:

每答对1空得2分

20.

参考答案:

002

解题方案:

(++a<0)&&(!

(b--<=0))即(0<0)&&(!

(b--<=0)),即0&&(!

(b--<=0)),所以(!

(b--<=0))不执行.K=0,a=0,b=2

评分标准:

每答对1空得2分

二、程序阅读题(60分,共10题,每小题6分)

1.

参考答案:

x>5||x5或abs(x)>5或(x>5)||(x5)

解题方案:

要使整数x的绝对值大于5,则x大于5或x小于-5,用C语言表示即为:

x>5||x<-或者(x>5)||(x<-5).

评分标准:

回答正确得5分,错误不得分

2.

参考答案:

B66

解题方案:

printf函数的一般格式为printf(格式控制,输出表列)"格式控制"是用双引号括起来的字符串,也称"转换控制字符串".1、d格式符,用来输出十进制整数.2、c格式符,用来输出一个字符.已知字符A的ASCII码值为65,则字符B的ASCII码值为66,所以本题输出结果为:

B66

评分标准:

回答正确得5分,错误不得分

3.

参考答案:

10300

解题方案:

在scanf格式控制符中,如果在%后有一个"*"附加说明符,表示跳过它指定的列数.本题中""%d%*d%d""表示将10赋给i,%*d表示读入整数但不赋给任何变量,然后再读入整数30赋给变量j,那么变量k并没有重新赋值,仍为初始值0.所以输出的结果为10300.

评分标准:

回答正确得5分,错误不得分

4.

参考答案:

4334

解题方案:

用变量作为函数的实参时,属单向传递,即"值传送"方式,此种函数参数的传递方式只能由实参传给形参,不能由形参传回来给实参.本题中,变量a,b的值传递给了函数swap的形参x,y,并在函数中对x,y的值进行了交换,所以函数swap中输出的x,y的值为4,3,但此时实参a,b的值并没有随形参x,y的改变而改变,所以在主函数中输出的a,b的值为3,4.

评分标准:

回答正确得5分,错误不得分

5.

参考答案:

b

解题方案:

考察的主要知识点是不同类型数据间的转换与运算.本题所要实现的功能是把大写字母转换为小写字母,在C中,小写字母的ASCII码值比大写字母的ASCII码值大32.

评分标准:

回答正确得5分,错误不得分

6.

参考答案:

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.

评分标准:

回答正确得5分,错误不得分

7.

参考答案:

n1=%d\nn2=%d

解题方案:

printf函数的一般格式为printf(格式控制,输出表列)"格式控制"是用双引号括起来的字符串,也称"转换控制字符串",它包括两种信息:

1、格式说明,由"%"和格式字符组成,如%d,%f等.它的作用是将输出的数据转换为指定的格式输出.格式说明总是由"%"字符开始的.2、普通字符,即需要原样输出的字符.结果要求输出为:

n1=10n2=20所以格式控制中需含有"n1="部分,又因为要求按两行输出,需含有回车符:

\n.

评分标准:

回答正确得5分,错误不得分

8.

参考答案:

gae

解题方案:

解题过程:

(1)当k=0时,*(p1+0)=''L'',*(p2+0)=''P'',L!

=P,所以没有输出

(2)当k=1时,*(p1+1)=''a'',*(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,所以输出g(5)当k=4时,*(p1+4)=''u'',*(p2+4)=''r'',u!

=r,所以没有输出(6)当k=5时,*(p1+5)=''a'',*(p2+5)=''a'',a==a,所以输出a(7)当k=6时,*(p1+6)=''g'',*(p2+6)=''m'',g!

=m,所以没有输出(8)当k=7时,*(p1+7)=''e'',*(p2+7)=''e'',e==e,所以输出e(9)当k=8时结束循环(10)输出结果为:

gae.

评分标准:

回答正确得5分,错误不得分

9.

参考答案:

#includemain()

{

 floata,b,c,disc,x1,x2,p,q;

scanf("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;

printf("\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

10.

参考答案:

main()

{

 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;

}

 printf("sumis%9.6f\n",s);

}

解题方案:

分子的规律是2,3,5,8,13…分母的规律是1,2,3,5,8,13…可知第n项f[n]的值为f[n-1]+f[n-2]

评分标准:

程序机构3,算法5,其他2

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1