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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

计算机技能改错易.docx

1、计算机技能改错易计算机技能改错(易)2011-02-09 19:53试卷编号:8539所属语言:大学计算机基础试卷方案:程序改错易试卷总分:300分共有题型:1种一、程序改错 共10题 (共计300分)第1题 (30.0分) 题号:4/*- 【程序改错】-功能:在一个已按升序排列的数组中插入一个数,插入后,数 组元素仍按升序排列。-*/#define N 11main() int i,j,t,number,aN=1,2,4,6,8,9,12,15,149,156; printf(please enter an integer to insert in the array:n); /*FOUND

2、*/ scanf(%d,&number) printf(The original array:n); for(i=0;i=0;i-) if(number=ai) /*FOUND*/ ai=ai-1; else ai+1=number; /*FOUND*/ exit; if(numbera0) a0=number; printf(The result array:n); for(i=0;i=0;i-) 或 for(i=N-2;0=i;i-) 3). a i + 1 =ai; 4). break;第2题 (30.0分) 题号:255/*- 【程序改错】-功能:以下程序把两个数按由大到小的顺序输出来

3、.-*/*FOUND*/swap( int *p1,*p2) int p; p=*p1; *p1=*p2; *p2=p;main( ) int a,b, *p,*q; printf(input a,b:); /*FOUND*/ scanf(%d%d,a,b); p=&a; q=&b; if(ab) swap(p,q); printf(a=%d,b=%dn,a,b); /*FOUND*/ printf(max=%d,min=%dn,p,q);答案: 1). swap( int *p1,int *p2) 或 void swap( int *p1,int *p2) 2). scanf(%d%d,&a

4、,&b); 3). printf(max=%d,min=%dn,*p1,*p2); 或 printf(max=%d,min=%dn,a,b);第3题 (30.0分) 题号:370/*- 【程序改错】-功能:将s所指字符串中出现的、t1所指子串全部替换成t2所指 子字符串,所形成的新串放在w所指的数组中。在此处, 要求t1和t2所指字符串的长度相同。例如:当s所指字符串中的内容为:abcdabfab,t1所指子串中 的内容为:ab,t2所指子串中的内容为:99时,结果 在w所指的数组中的内容应为:99cd99f99。-*/#include #include #include int fun (c

5、har *s, char *t1, char *t2 , char *w) int i; char *p , *r, *a; strcpy( w, s ); while ( *w ) p = w; r = t1; /*FOUND*/ while ( r ) if ( *r = *p ) r+; p+; else break; /*FOUND*/ if ( *r = 0 ) a = w; r = t2; /*FOUND*/ while ( *a ) *a = *r; a+; r+; w += strlen(t2) ; else w+; main() char s100, t1100, t2100

6、, w100; clrscr(); printf(nPlease enter string S:); scanf(%s, s); printf(nPlease enter substring t1:); scanf(%s, t1); printf(nPlease enter substring t2:); scanf(%s, t2); if ( strlen(t1)=strlen(t2) ) fun( s, t1, t2, w); printf(nThe result is : %sn, w); else printf(Error : strlen(t1) != strlen(t2)n);答案

7、: 1). while(*r) 2). if ( *r = 0 ) 3). while ( *r )第4题 (30.0分) 题号:402/*- 【程序改错】-功能:编写函数fun求20以内所有5的倍数之积。-*/#define N 20#include stdio.hmain() int sum; sum=fun(5); printf(%d以内所有%d的倍数之积为: %dn,N,5,sum); getch(); int fun(int m) /*FOUND*/ int s=0,i; for(i=1;iN;i+) /*FOUND*/ if(i%m=0) /*FOUND*/ s=*i; retur

8、n s; 答案: 1). int s=1 , i ; 2). if(i%m=0) 3). s=s*i 或 s=i*s 或 s*=i第5题 (30.0分) 题号:448/*- 【程序改错】-功能:编写函数fun计算下列分段函数的值: x*20 x0且x-3 f(x)= sin(x) 0x10且x2及x3 x*x+x-1 其它-*/#include #include stdio.hfloat fun(float x) /*FOUND*/ float y /*FOUND*/ if (x=0 & x10.0 & x!=2.0 & x!=3.0) y=sin(x); else y=x*x+x-1; /*

9、FOUND*/ return x;main() float x,f; printf(Input x=); scanf(%f,&x); f=fun(x); printf(x=%f,f(x)=%fn,x,f); getch(); 答案: 1). float y; 2). if (x0 & x!=-3.0) 3). return y;第6题 (30.0分) 题号:9/*- 【程序改错】-功能:将一个字符串中的大写字母转换成小写字母。例如:输入aSdFG输出为asdfg。-*/#include/*FOUND*/bool fun(char *c) if(*c=A)*c-=A-a; /*FOUND*/ f

10、un= c;main() /*FOUND*/ char s81,p=s; gets(s); while(*p) *p=fun(p); /*FOUND*/ puts(*p); p+; putchar(n);答案: 1). char fun(char *c) 2). return *c; 或 return (*c); 或 return(*c); 3). char s81,*p=s; 4). putchar(*p); 或 printf(%c,*p);第7题 (30.0分) 题号:253/*- 【程序改错】-功能:输入10个数,要求输出这10个数的平均值-*/float average(float a

11、rray10) int i; float aver,sum=array0; /*FOUND*/ for(i=0;i10;i+) sum=sum+arrayi; aver=sum/10.0; return(aver);main( ) /*FOUND*/ int score10,aver ; int i; printf(input 10 scores:n); for(i=0;i10;i+) /*FOUND*/ scanf(%f, score); printf(n); /*FOUND*/ aver=average(score10); printf(average score is %5.2f,ave

12、r);答案: 1). for(i=1;i10;i+) 或 for(i=1;i=9;i+) 2). float score10,aver; 或 float aver,score10; 3). scanf(%f, &scorei); 或 scanf(%f, score+i); 4). aver=average(score);第8题 (30.0分) 题号:386/*- 【程序改错】-功能:分别统计输入的字符串中各元音字母(即:A、E、I、O、U) 的个数。注意:字母不分大、小写。例如:若输入:THIs is a boot,则输出应该是:1、0、2、2、0。-*/#include #include f

13、un ( char *s, int num5 ) int k, i=5; for ( k = 0; ki; k+ ) /*FOUND*/ numi=0; for (; *s; s+) i = -1; /*FOUND*/ switch ( s ) case a: case A: i=0; break; case e: case E: i=1; break; case i: case I: i=2; break; case o: case O: i=3; break; case u: case U: i=4; break; /*FOUND*/ if (i 0) numi+; main( ) cha

14、r s181; int num15, i; clrscr(); printf( nPlease enter a string: ); gets( s1 ); fun ( s1, num1 ); for ( i=0; i = 0)第9题 (30.0分) 题号:381/*- 【程序改错】-功能:读入一个英文文本行,将其中每个单词的第一个字母改成 大写,然后输出此文本行 (这里的“单词”是指由空格 隔开的字符串)。例如:若输入:“I am a student to take the examination.”, 则应输出:“I Am A Student To Take The Examination

15、.”。-*/#include #include #include /*FOUND*/upfst ( char p ) int k=0; /*FOUND*/ for ( ; p; p+ ) if ( k ) if ( *p = ) k = 0; /*FOUND*/ else if ( *p = ) k = 1; *p = toupper( *p ); main( ) char chrstr81; clrscr(); printf( nPlease enter an English text line: ); gets( chrstr ); printf( nnBefore changing:n

16、%s, chrstr ); upfst( chrstr ); printf( nAfter changing:n %sn, chrstr );答案: 1). upfst(char *p) 2). for ( ; *p; p+ ) 3). else if ( *p != )第10题 (30.0分) 题号:431/*- 【程序改错】-功能:编写input()和output()函数输入,输出5个学生的数据记录。-*/#include stdio.h#define N 5struct student char num6; char name8; int score4; stuN;input(stu)s

17、truct student stu; /*FOUND*/ int i;j; for(i=0;iN;i+) printf(n please input %d of %dn,i+1,N); printf(num: ); scanf(%s,&stui.num); printf(name: ); scanf(%s,stui.name); for(j=0;j3;j+) /*FOUND*/ printf(score %d.,j); scanf(%d,&stui.scorej); printf(n); print(stu)struct student stu; int i,j; printf(nNo. Name Sco1 Sco2 Sco3n); /*FOUND*/ for(i=0;i=N;i+) printf(%-6s%-10s,stui.num,stui.name); for(j=0;j3;j+) printf(%-8d,stui.scorej); printf(n); main() input(); print(); getch();答案: 1). int i , j ; 2). printf(score %d., j + 1 ); 3). for(i=0;iN;i+)

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

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