ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:23.98KB ,
资源ID:11700965      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11700965.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(秋季理工A卷答案.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

秋季理工A卷答案.docx

1、秋季理工A卷答案班号姓名哈工大(威海)2005/2006 年 秋 季学期C语言 试题题号一二三四五六七八九创新实践分卷面总分分数参考答案与评分标准一、单项选择题:(10分,评分标准:每题2分,正确得2分,错误扣2分)1以下能对外部的二维数组a进行正确初始化的语句是: 。A) int a2 = 1,0,1,5,2,3;B) int a3 = 1,2,1,5,2,3;C) int a24 = 1,2,1,5,2,6;D) int a3 = 1,0,2,2,3;2若int x;且有下面的程序片断,则输出结果为: 。for (x=3; xdata.b D) p.data.b5若二维数组a有m列,则在a

2、ij之前的元素个数为: 。A) j*m+i B) i*m+j C) i*m+j-1 D) i*m+j+1 二、写出下列程序的运行结果。(10分,评分标准:正确得2分,完全错误扣2分,如果部分错误则扣1分,具体见各题的详细标准)1#include main() int i, j, m; int a25 = 1,20,32,14,5,62,87,38,9,10; m = a00; for (i=0; i2; i+) for (j=0; j5; j+) if( maij ) m = aij; printf(“m = %dn”, m); 运行结果是:m = 87评分标准:正确得2分,完全错误扣2分,如

3、果部分错误则扣1分。本题中如果运行结果为87,漏掉了m=,则扣1分。2#include main() int x, y; scanf(%2d%*2s%2d, &x, &y); printf(%d, x*y);程序执行时从键盘输入:12341234运行结果是:144评分标准:正确得2分,完全错误扣2分。3#include void Func(int b) int j; for (j=0; j4; j+) bj = j+1; main() static int a4 = 5,6,7,8,i; Func(a); for (i=0; iyear = 2000; p-month = 5; p-day =

4、 22;main() struct date d; d.year = 1999; d.month = 4; d.day = 23; printf(“%d,%d,%dn”, d.year, d.month, d.day); func(&d); printf(“%d,%d,%dn”, d.year, d.month, d.day);运行结果是:1999,4,232000,5,22评分标准:正确得2分,完全错误扣2分,如果部分错误则扣1分。本题中如果运行结果中1999,4,23输出正确、2000,5,22输出不正确,或者2000,5,22输出正确、1999,4,23输出不正确,则扣1分。5#incl

5、ude void Func(void);main() int i; for (i = 0; i 2; i+) Func(); void Func(void) int times = 1; printf(Func() was called %d time(s).n, times+);运行结果是:Func() was called 1 time(s).Func() was called 1 time(s).评分标准:正确得2分,完全错误扣2分,如果部分错误则扣1分。本题中如果运行结果中第1行输出正确、第2行输出不正确,或者第2行输出正确、第1行输出不正确,则扣1分。三、阅读程序,在标有下划线的空白

6、处填入适当的表达式或语句,使程序完整并符合题目要求。(8分,评分标准:每空2分,正确得2分,错误扣2分)1. 下面这个程序用于读入5个整数,当程序读入的数据为正整数时,则显示该数,否则,程序结束运行。#include main() int i, n; for (i=1; i=5; i+) printf(Please enter n:); scanf(%d, &n); if (n = 0) break; printf(n = %dn, n); printf(Program is over!n);2. 下面函数实现strcmp的功能,将两个字符串s和t进行比较,然后将两个字符串中第一个不相同字符的

7、ASCII码值之差作为函数值返回。int MyStrcmp(char s, char t) int i; for (i=0; si=ti ; i+) if (si = 0) return 0 ; return (si-ti); 六、在下面给出的4个程序中,有15处错误(包括语法错误和逻辑错误),请找出其中的错误,并改正之。(30分,评分标准:实际错误有16个,只要找对15个即可,多找不加分。每找对1个错误,加1分,每修改正确1个错误,再加1分。)1输入一行字符,统计其中的英文字符、数字字符、空格字符,以及其他字符的个数。#include #include #define ARR_SIZE =

8、80; /错误,应该为#define ARR_SIZE 80main() char strARR_SIZE; int len, i; int letter,digit,space,other;/错误,应该为int letter=0,digit=0,space=0,other=0; printf(请输入一个字符串:); gets(str); len = strlen(str); for (i=0; ilen; i+) if (a=stri=z & A=stri=a&stri=A&stri=Z) +letter; else if (0=stri=0&stri=9) +digit; else if

9、(stri= ) /错误,应该为 else if (stri= ) +space; else +other; printf(英文字符数:%dn, letter); printf(数字字符数:%dn, digit); printf(空格数:%dn, space); printf(其他字符数:%dn, other);2任意输入一个字符串,在星期表中查找该字符串,若找到,则打印”已找到”,否则打印”没找到”。 #include main() int i; int findFlag; /错误,应该为int findFlag=0; char x10; char weekDay710= Sunday, M

10、onday, Tuesday, Wednesday, Thursday, Friday, Saturday; printf(请输入一个字符串:); scanf(%s,x); for (i=0; i 7 & !findFlag; i+) if (x = weekDayi) /错误,应该为if (strcmp(x,weekDayi)=0) findFlag = 1; if (!findFlag)/错误,应该为if (findFlag) printf(找到n); else printf(没找到!n); 3爱因斯坦数学题。爱因斯坦曾出过这样一道数学题:有一条长阶梯,若每步跨2阶,则最后剩下1阶,若每步

11、跨3阶,则最后剩下2阶,若每步跨5阶,则最后剩下4阶,若每步跨6阶,则最后剩下5阶,只有每步跨7阶,最后才正好1阶不剩。请问,这条阶梯共有多少阶?#include main() int x , find = 0;/错误,应该为int x=1,find=0; if (!find) /错误应该为 while (!find) if (x % 2 = 1 & x % 3 = 2 & x % 5 = 4 & x % 6 = 5 & x % 7 = 0) /错误,缺少find = 1; printf( x = %dn, x); x+; /错误,x+;应该放到if语句的外面 4下面函数Squeez()的功能

12、是删除字符串s中所出现的与变量c相同的字符。void Squeeze(char s, char c) ;/错误,应该为void Squeeze(char s, char c) int i,j; for (i=0; si!=0; i+) /错误,应该为for (i=j=0; si!=0; i+) if (si != c) /错误,应改为 if (si != c) si = sj;/ 错误,应该为sj=si; j+; /错误,应该为sj=0; 七、编程(42分,具体评分标准见各题,总的原则:每出现一处简单语法错误就扣1分)1. 利用前100项之积,编程计算的值。 (15分)参考答案1:#inclu

13、de main() float term, result = 1; int n; /以上语句:3分 for (n = 2; n = 100; n = n + 2)/核心语句:10分 term = (float)( n * n)/( n - 1) * ( n + 1); result = result * term; printf(result = %fn, 2*result);/2分参考答案2:#include main() float result = 1,term; int n; /以上语句:3分 for (n = 1; n = 50; n+) /核心语句:10分 term = (floa

14、t)(2*n*2*n)/(2*n-1)*(2*n+1); result = result * term; printf(result = %fn, 2*result); /2分2. 编写一个函数Inverse,实现将字符数组中的字符串逆序存放的功能。(15分)参考答案1: #include #include #define ARR_SIZE 80void Inverse(char str, char ptr);main() char aARR_SIZE, bARR_SIZE; printf(Please enter a string: ); /以上1分 gets(a); /1分 Inverse

15、(a, b); /2分 printf(The inversed string is: ); puts(b); /1分void Inverse(char str, char ptr) int i = 0, j; /1分 j = strlen(str) 1; /1分 while (stri != 0) /核心语句:7分 ptrj = stri; i+; j-; ptri=0; /1分参考答案2: #include#include#define ARR_SIZE 80void Inverse(char str);main() char aARR_SIZE ; /以上1分 printf(Please

16、enter a string: ); gets(a); /1分 Inverse(a); /2分 printf(The inversed string is: ); puts(a); /1分void Inverse(char str) int len, i, j; char temp; /以上1分 len = strlen(str); /1分 for (i=0, j=len-1; ij; i+, j-) /核心语句:8分 temp = stri; stri = strj; strj = temp; 3. 从键盘任意输入某班10个学生的成绩,计算并打印平均分并统计成绩在平均分以上的学生人数,要求用

17、一维数组和指针变量做函数参数编程实现计算平均分并统计成绩在平均分以上的学生人数,然后在主函数中打印这些统计结果,不能使用全局变量编程。(12分)#include int FindAver(int score, int n, int *pAver); main() int score10, aver, i, num; printf(Please enter the score:n); for (i=0; i10; i+) /1分 scanf(%d, &scorei); num = FindAver(score, 10, &aver); /2分 printf(aver = %d, num = %dn, aver, num); /1分int FindAver(int score,int n, int *pAver) int i; int sum = 0, count = 0; for (i=0; in; i+) /核心语句:3分 sum = sum + scorei; *pAver = sum / n; for (i=0; i *pAver) count+; return (count); /1分

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

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