1、资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。B卷 第二学期程序设计语言(C)参考答案和评分标准 专业班级 姓 名 学 号 开课系室 软件工程系 考试日期 7月3日 题 号一二三总分得 分阅卷人程序设计语言(C)试卷( B卷) 答题卡说明: 1选择题和判断题必须填在答题卡上才有效, 综述题写在指定位置。得分 2本试卷共13页, 不得拆开。一、 单项选择题( 正确的答案涂黑或画圈,20分) 1ABD11ABD2ACD12BCD3BCD13ACD4ACD14ABC5BCD15BCD6ACD16ACD7ABC17ABC8ABD18ACD9ABD19ACD10ACD20ABC得分二、
2、读程序填空题( 在空格处填写正确答案, 20分) 12a10或a&aia i-1i%4=0a10-1-i *q+ = *p+或*(q+i)=*(p+i)或bi=ai0q=bi得分三、 编程题( 60分, 在下面的空白处编写程序) 1、 编程计算下面函数的值, 其中x由键盘输入。( 12分) -1 x-1 y= -1x1(x+1)2 x1参考答案: #include main() int x; float y; printf(input x n); scanf(%d,&x); if(x-1 & x1) y=exp(x); else y=(x+1)*(x+1); printf(%f,y);评分标准
3、: 头文件、 程序框架占2分; 读入x值占1分; 每个分支语句各占3分, 共9分。2. 一球从200米高度自由落下, 每次落地后反跳回原高度的一半再落下, 求它在第15次落地时, 共经过多少米? 第15次反弹多高? (6分)参考答案: #include main( ) float sn=200.0,hn=sn/2; int n; for(n=2;n=15;n+) sn=sn+2*hn; hn=hn/2; printf(”第15次落地共经过%f米n”,sn); printf(”第15次反弹%f米n”, hn); 评分标准: 头文件、 程序框架占2分; 变量初始化占1分; for循环占3分。3.编
4、写一函数sum,求二维数组(M*M)上三角(含对角线)之和。( 12分) 参考答案: int sum(int aMM) int s=0,k,n; /*变量声明*/ for(k=0;kM;k+) for(n=k;nM;n+) s+=akn; /*求和*/ return s; /*返回结果*/评分标准: 函数头4分(返回类型、 数组说明各占2分);返回语句占3分; 内层循环占3分; 外层循环占1分; 元素求和占1分。4. 从键盘上输入数组str(长度不大于100), 再从键盘上输入一个字符, 从数组str中删除该字符, 并输出删除字符后的字符串。( 12分) 参考答案: #include void
5、 main() char str100,ch; /*下标从0到99*/ int m=0,k=0; while(strm=getchar()!=n) m+; strm= 0; ch=getchar(); for(m=0;strm!=0;m+) if(strm!=ch) strk=strm;k+; strk=0; puts(str);评分标准: 头文件、 程序框架占2分; 变量定义及初始化部分占2分; str结束条件判断占2分; for循环占2分; 删除指定字符( 符合条件的保留) 占2分; str赋字符串结束标记占1分; 输出字符串占1分。5. 找出数组aN中的最大数及其下标。( 10分) 参考
6、答案: #define N 10#include main() int aN= 3,1,8,5,11,23,9,6, 4, 7; int k,max,i; max=a0;k=0; for(i=1;imax) max=ai;k=i; printf(max=a%d=%dn, k,max);评分标准: 头文件、 程序框架占2分; 变量定义及初始化部分占2分; 数组定义及初始化部分占2分 ; for循环占2分;找出最大值比占1分; 找出下标占1分。6.编写子函数search, 从字符串str中查找某字符ch( str、 ch由主函数提供) 第一次出现的位置和出现的次数; 函数返回字符的位置, 若串st
7、r中没有字符ch, 则返回-1。比如: 当str为abmcmnkt,ch为m时, 位置为3, 次数为2。要求: 不允许使用全局变量。主程序部分源代码如下。( 8分) 参考答案: #includeint search(char str, char ch, int *p) int i,j=0,a10; for(i=0;istrlen(str);i+) if(stri= =ch) aj+=i; *p=j; return (a0+1);评分标准: 头文件、 程序框架占2分; 形参定义占1分; 变量定义及初始化部分占1分; for循环及找出字符串中与所给字符相同的字符占3分; 返回值占1分。main() int k,m; char string20 ,ch; printf(input a string and a charactern); gets(string); ch=getchar(); k=search(string,ch,&m); printf(the first position is %d and the number of this character is %dn,k,m);