2010—2011学年度第二学期期末考试《C语言程序设计》试题A卷09年级 90分钟2011年6月一、用C语言描述下列命题(每小题2分,共8分)1、a小于b或a小于c。
2、a或b其中之一小于c。
3、a和b中有一个是奇数。
4、无条件循环(while)。
二、填空(每小题2分,共10分)1、(FF)H =()2。
2、若一个二进制数的原码是X原=10010011,则反码是X反=()。
3、a+=a-=a*=a ( )。
4、C程序设计的基本结构有3种,分别是顺序结构、分支结构、()。
5、C函数结尾处,一般有return语句,其含义是()。
三、读程序,写出其结果(每小题5分,共10分)1、程序代码如下,结果是()。
#include <stdafx.h>int main(int argc,char *argv[]){int a=10,b=20;printf("%d",a>b?a:b);return 0;}2、程序代码如下,结果是()。
#include <stdafx.h>int main(int argc,char *argv[]){int i=8,j=10,m,n;m=++i; n=j++;printf("%d,%d,%d,%d",i,j,m,n);return 0;}四、程序填空(每空4分,共12分)输出杨辉三角形(要求输出10行)。
11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1……程序如下:#include "stdafx.h"int main(int argc, char* argv[]){int a[10][10];//构建杨辉三角形for(int i=0; i<10; i++){①;a[i][i]=1;}for( ②; i<10; i++)for(int j=1; j<i; j++)a[i][j]= ③;//以下是输出杨辉三角形for(i=0; i<10; i++){for(int j=0; j<=i; j++)printf("%5d ", a[i][j]);printf("\n");}return 0;}五、程序改错(在答题纸上写出改正后的语句)(共10分)下列给定程序中,函数fun的功能是:根据整型形参m的值,计算如下公式的值。
请改正函数fun中的二处错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include <stdafx.h>float fun(int m){float y = 1.0;int i;for (i=2; i<m; i++)y = y-1/(i*i);return(y);}main(){int n = 5;printf("\nThe result is %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-62010—2011学年度第二学期期末考试《C语言程序设计》试题标准答案及评分标准一、用C语言描述下列命题(每小题2分,共8分)1、a<b||a<c2、a<c||b<c3、a%2!=0||b%2!=04、while(1)评分标准:对则得分,否则不得分二、填空(每小题2分,共10分)1、(11111111)2 8个12、(01101100)3、04、循环结构5、结束该函数运行,并向主调函数返回值。
评分标准:对则得分,否则不得分三、读程序,写出其结果(每小题5分,共10分)1、20 评分标准:对则得分,否则不得分2、9,11,9,10 评分标准:数据对1个1分,有“,”1分四、程序填空(每空4分,共12分)① a[i][0]=1 评分标准:对则得分,否则不得分② i=2 评分标准:对则得分,否则不得分③ a[i-1][j-1]+a[i-1][j] 评分标准:对则得分,否则不得分五、程序改错(在答题纸上写出改正后的语句)(共10分)#include <stdafx.h>float fun(int m){float y = 1.0;int i;for (i=2; i<m; i++) //此语句改为for (i=2; i<=m; i++) y = y-1/(i*i); //此语句改为y = y-1.0/(i*i);return(y);}{int n = 5;printf("\nThe result is %lf\n", fun(n));}评分标准:改对则得分,改错不扣分六、算法和程序(第1小题7分,第2小题18分,第3小题25分,共50分)1、另找一个相同大小的瓶子CC=AA=BB=C评分标准:顺序结构2分,三步赋值3分,赋值能完成A、B值互换2分。
2、int a[40]={1,1}i=2当i<40a[i]=a[i-1]+a[i-2]i++输出第i+1月兔子数a[i]评分标准:迭代表达式a[i]=a[i-1]+a[i-2] 6分、有数组定义及初始化各2分、有循环设置2分、有输出1分。
循环体设计正确5分。
3、程序如下:#include <stdafx.h>#include <math.h>int main(int argc,char* argv[]){float x1,x2,fx1,fx2,x0,fx0;float f(float x);doprintf("请输入求值区间[x1,x2]:");scanf("%f%f",&x1,&x2);fx1=f(x1);fx2=f(x2);}while(fx1*fx2>=0);do{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);printf("The root is :%f\n",x0);return 0;}float f(float x){return 2*x*x*x-4*x*x+3*x-6;}评分标准:预处理部分3分、主函数名1分、f函数4分、第一个循环8分(x1和x2正确输入3分、调用f函数计算fx1、fx2 2分、循环条件3分)第二个循环8分(x0和fx0 2分、条件分支中条件2分、分支2分、循环条件2分)、输出x0 1分。
荆楚理工学院2010—2011学年度第二学期期末考试《C语言程序设计》试题B卷机制专业09年级 90分钟2011年6月一、写出下面各逻辑表达式的值(每小题2分,共10分)设:a=3,b=4,c=5。
1、a+b>c && b==c2、a||b+c && b-c3、!(a>b) && !c||14、!(x=a) && (y=b) && 05、!(a+b)+c-1 && b+c/2二、填空(每小题2分,共10分)1、(FF)H=()2。
2、若一个二进制数的原码是X原=10010011,则反码是X反=()。
3、TC2.0中int a=-1,a在内存中的存储形式是()。
4、C程序设计的基本结构有3种,分别是顺序结构、分支结构、()。
5、C函数结尾处,一般有return语句,其含义是()。
三、读程序,写出其结果(每小题5分,共10分)1、程序代码如下,结果是()。
#include <stdafx.h>int main(int argc,char *argv[]){int x=10,y=20;printf("%d",x<y?y:x);return 0;}2、程序代码如下,结果是()。
#include <stdafx.h>int main(int argc,char *argv[]){int m=10;printf(“%d,%d,%d”,m,m++,++m);return 0;}四、程序填空(第1、2空各3分,第3空4分,共10分)以下程序将两个不超过20个字符的字符串连接起来生成新字符串。
#include "stdafx.h"int main(int argc, char* argv[]){char str1[]="hello";char str2[]=" world!";char str3[50];int i, j, k;//字符串连接for(i=0,k=0; ① ;i++,k++)str3[k]=str1[i];for( ② ;str2[i]!='\0';i++,k++)str3[k]=str2[i];③ ;printf("%s\n", str3);return 0;}五、程序改错(在答题纸上写出改正后的语句)(共10分)下面给定程序中,函数fun和funx的功能是:用二分法求方程2x3-4x2+3x-6=0的一个根,并要求绝对误差不超过0.001。
请改正函数fun中的二处错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include <stdafx.h>#include <math.h>float funx(float x){return (2*x*x*x - 4*x*x + 3*x - 6);}float fun(float m, float n){int r;r = (m+n)/2;while (fabs(n-m) < 0.001){if (funx(r)*funx(n) < 0)m = r;elsen = r;r = (m+n)/2; }return r; }main() {float m, n, root;printf("Enter m n : \n"); scanf("%f%f", &m, &n); root = fun(m, n);printf("root=%6.3f\n", root); }六、算法和程序(第小题25分,共50分)1、用二分法求函数f(x)=2x 3-4x 2+3x-6=0在区间[0,5]的解。