C语言程序设计试题AB卷及标答文档格式.docx
《C语言程序设计试题AB卷及标答文档格式.docx》由会员分享,可在线阅读,更多相关《C语言程序设计试题AB卷及标答文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
b?
a:
b);
return0;
}
2、程序代码如下,结果是()。
inti=8,j=10,m,n;
m=++i;
n=j++;
%d,%d,%d,%d"
i,j,m,n);
return0;
四、程序填空(每空4分,共12分)
输出杨辉三角形(要求输出10行)。
1
11
121
1331
14641
15101051
……
程序如下:
#include"
stdafx.h"
intmain(intargc,char*argv[])
inta[10][10];
//构建杨辉三角形
for(inti=0;
i<
10;
i++)
{
;
a[i][i]=1;
}
for(;
for(intj=1;
j<
i;
j++)
a[i][j]=;
//以下是输出杨辉三角形
for(i=0;
for(intj=0;
=i;
printf("
%5d"
a[i][j]);
printf("
\n"
);
五、程序改错(在答题纸上写出改正后的语句)(共10分)
下列给定程序中,函数fun的功能是:
根据整型形参m的值,计算如下公式的值。
请改正函数fun中的二处错误,使它能得出正确的结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构!
floatfun(intm)
floaty=1.0;
inti;
for(i=2;
m;
y=y-1/(i*i);
return(y);
main()
intn=5;
\nTheresultis%lf\n"
fun(n));
六、算法和程序(第1小题7分,第2小题18分,第3小题25分,共50分)
1、有两个瓶子A和B,分别盛放醋和酱油,要求将它们互换(即A瓶原来盛醋,现在改盛酱油,B瓶则相反)。
用N-S图表示解决问题的算法。
2、意大利数学家Fibonacci曾提出一个有趣的问题:
设有一对新生兔子,从第三个月开始它们每月都生育一对兔子,按此规律并假设没有兔子死亡,一年后共有多少对兔子?
用N-S图表示用数组求解前40个月兔子数的算法。
3、根据下面的N-S图,写出求解问题的VC++6.0程序代码。
其中:
f为自定义函数,
f(x)=2x3-4x2+3x-6
《C语言程序设计》试题标准答案及评分标准
1、a<
b||a<
c
2、a<
c||b<
3、a%2!
=0||b%2!
=0
4、while
(1)
评分标准:
对则得分,否则不得分
1、(11111111)28个1
2、(01101100)
3、04、循环结构
5、结束该函数运行,并向主调函数返回值。
1、20评分标准:
2、9,11,9,10评分标准:
数据对1个1分,有“,”1分
a[i][0]=1评分标准:
i=2评分标准:
a[i-1][j-1]+a[i-1][j]评分标准:
i++)//此语句改为for(i=2;
=m;
//此语句改为y=y-1.0/(i*i);
改对则得分,改错不扣分
1、
评分标准:
顺序结构2分,三步赋值3分,赋值能完成A、B值互换2分。
2、
迭代表达式a[i]=a[i-1]+a[i-2]6分、有数组定义及初始化各2分、有循环设置2分、有输出1分。
循环体设计正确5分。
3、程序如下:
math.h>
intmain(intargc,char*argv[])
floatx1,x2,fx1,fx2,x0,fx0;
floatf(floatx);
do
请输入求值区间[x1,x2]:
"
scanf("
%f%f"
&
x1,&
x2);
fx1=f(x1);
fx2=f(x2);
while(fx1*fx2>
=0);
x0=(x1+x2)/2;
fx0=f(x0);
if(fx1*fx0<
0)
{
x2=x0;
fx2=fx0;
}
else
x1=x0;
fx1=fx0;
while(fabs(fx0)>
1e-5);
Therootis:
%f\n"
x0);
floatf(floatx)
return2*x*x*x-4*x*x+3*x-6;
预处理部分3分、主函数名1分、f函数4分、第一个循环8分(x1和x2正确输入3分、调用f函数计算fx1、fx22分、循环条件3分)第二个循环8分(x0和fx02分、条件分支中条件2分、分支2分、循环条件2分)、输出x01分。
荆楚理工学院
《C语言程序设计》试题B卷
机制专业09年级90分钟 2011年6月
一、写出下面各逻辑表达式的值(每小题2分,共10分)
设:
a=3,b=4,c=5。
1、a+b>
c&
&
b==c
2、a||b+c&
b-c
3、!
(a>
b)&
!
c||1
4、!
(x=a)&
(y=b)&
0
5、!
(a+b)+c-1&
b+c/2
3、TC2.0中inta=-1,a在内存中的存储形式是()。
intx=10,y=20;
x<
y?
y:
x);
intm=10;
printf(“%d,%d,%d”,m,m++,++m);
四、程序填空(第1、2空各3分,第3空4分,共10分)
以下程序将两个不超过20个字符的字符串连接起来生成新字符串。
charstr1[]="
hello"
;
charstr2[]="
world!
charstr3[50];
inti,j,k;
//字符串连接
for(i=0,k=0;
;
i++,k++)
str3[k]=str1[i];
str2[i]!
='
\0'
str3[k]=str2[i];
;
%s\n"
str3);
下面给定程序中,函数fun和funx的功能是:
用二分法求方程2x3-4x2+3x-6=0的一个根,并要求绝对误差不超过0.001。
floatfunx(floatx)
return(2*x*x*x-4*x*x+3*x-6);
floatfun(floatm,floatn)
intr;
r=(m+n)/2;
while(fabs(n-m)<
0.001)
if(funx(r)*funx(n)<
0)
m=r;
n=r;
r=(m+n)/2;
returnr;
floatm,n,root;
Entermn:
\n"
scanf("
&
m,&
n);
root=fun(m,n);
root=%6.3f\n"
root);
六、算法和程序(第小题25分,共50分)
1、用二分法求函数f(x)=2x3-4x2+3x-6=0在区间[0,5]的解。
只要求用N-S图表示算法。
2、写函数用辗转相除法求两个数的最大公约数,在主函数中通过键盘输入这两个数,然后调用该函数计算最大公约数,并输出结果。
根据N-S图,写出求解问题的VC++6.0程序代码。
图a是主函数算法,其中div