ImageVerifierCode 换一换
你正在下载:

14套.docx

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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

14套.docx

1、14套第1套1.填空题请补充main函数,该函数的功能是:把一个字符串中的所有小写字母字符全部转换成大写字母字符,其他字符不变,结果保存原来的字符串中。例如:当strN=123 abcdef ABCDEF!,结果输出:123 ABCDEF ABCDEF!。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。试题程序:#include#include#include#define N 80void main() int j; char strN= 123abcdef ABCDEF!; char *pf=str; clrscr

2、(); printf(*original string *n); puts(str); 【1】; while(*(pf+j) if(*(pf+j)=a&*(pf+j)=z) *(pf+j)=【2】; j+; else 【3】; printf(*new string*n); puts(str); system(pause);【1】j=0 【2】*(pf+j)-32 【3】j+【解析】填空1:变量j声明时没有初始化,而后面程序用到j,所以在这里对j初始化为0。填空2:将小写字母转换为对应的大写字母的方法是,小写字母的ASCII码减去32,得到对应的大写字母的ASCII码。填空3:如果当前字符不是小

3、写字母,则不做任何处理,使指针指向下一个字符,准备进行判断。2. 改错题下列给定程序中,函数fun()的功能是逐个比较a,b两个字符串对应位置中的字符,把ASCII值小或相等的字符依次存放到c数组中,形成一个新的字符串。例如:a中的字符串为fshADfg,b中的字符串为sdAEdi,则c中的字符串应为fdAADf。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include #include void fun(char *p,char *q,char *c) int k=0; while(*p|*q)/*found*/ i

4、f (*p=*q) ck=*q; else ck=*p; if(*p) p+; if(*q) q+ ;/*found*/ k+ main() char a10=fshADfg,b10=sdAEdi,c80=0; fun(a,b,c); printf(The string a:); puts(a); printf(The string b:); puts(b); printf(The result :); puts(c);(1)错误: if (*p=*q)(2)错误:k+正确:k+;【解析】错误1:依题意,把ASCII值小或相等的字符存放到c数组中,故if语句的关系运算符应为=。错误2:C语言规

5、定,每个语句要用分号结束。3. 编程题请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数个位和十位上,b数的十位和个位数依次放在c数的百位和千位上。例如,当a=16,b=35,调用该函数后,c=5361。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#includevoid fun(int a ,int b,long *c)main() int a,b; long c; clrscr(); printf(Input a,b;); scan

6、f(%d%d,&a, &b); fun(a,b,&c); printf(The result is:%ldn,c);【解析】语句*c=(b%10)*1000+(b/10)*100+(a%10)*10+a/10;是将a数的十位和个位数依次放在c数个位和十位上,b数的十位和个位数依次放在c数的百位和千位上。注意/和%的用法。void fun(int a ,int b,long *c) *c=(b%10)*1000+(b/10)*100+(a%10)*10+a/10; 第2套1.填空题请补充main函数,该函数的功能是求方程ax2+bx+c=0的两个实数根。方程的系数a、b、c从键盘输入,如果判别式

7、(disc=b2-4ac)小于,则要求重新输入a、b、c的值。例如,当a=1,b=2,c=1时,方程的两个根分别是x1=-1.00, x2=-1.00。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。试题程序:#include math.h#include main() float a,b,c, disc,x1,x2; clrscr(); do printf(Input a,b,c:); scanf(%f,%f,%f,&a,&b,&c); disc=b*b-4*a*c; if(disc0) printf(disc=

8、%fn Input again!n,disc); while(【1】); printf(*the result*n); x1=【2】; x2=【3】; printf(nx1=%6.2fnx2=%6.2fn,x1,x2);【1】disc0 【2】(-b+sqrt(disc)/(2*a) 【3】(-b-sqrt(disc)/(2*a)【解析】填空1:题目要求当判别式disc小于0时,要重新输入a、b、c的值,所以do-while循环的执行条件是disc0。填空2:方程的一个实数根是:。填空3:方程的另一个实数根是:。2. 改错题下列给定程序中,函数fun()的功能是根据整型形参m,计算如下公式的值

9、。y=1-1/(22)+1/(33)-1/(44)+(-1)(m+1)/(mm)例如:m中的值为5,则应输出0.838611。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include #include double fun(int m) double y=1.0;/*found*/ int j=1; int i; for(i=2; i=m; i+) j=-1*j;/*found*/ y+=1/(i * i); return(y);main() int n=5; clrscr(); printf(nThe result

10、is %lfn ,fun(n);(1)错误:int j=1; 正确:double j=1.0;(2)错误:y+=1/(i * i); 正确:y+=j/(i * i);【解析】错误1:为了做后面的除法运算,j要定义为实型数,否则除得的结果将为整数。错误2:题中公式是加减相间的运算,通过j来实现。3. 编程题请编一个函数void fun(int ttMN, int ppN), tt指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依次放入pp所指的一维数组中。二维数组中的数已在主函数中给出。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入

11、所编写的若干语句。试题程序:#include #include #define M 3#define N 4void fun(int ttMN,int ppN)main() int tMN=68, 32, 54, 12,14, 24, 88, 58,42, 22, 44, 56; int pN,i,j,k; clrscr(); printf(The riginal data is:n); for(i=0;iM;i+) for(j=0;jN;j+) printf(%6d,tij); printf(n); fun(t,p); printf(nThe result is:n); for(k=0;kN

12、;k+) printf(%4d,pk); printf(n); 【解析】本题中函数的功能是求出二维数组中每列的最大元素。首先,假设各列中的第一个元素最大,然后利用行标值的移动来依次取得各列中其他元素的值,并与假设的最大值进行比较,如果遇到更大的,则把这个更大的元素看做当前该列中最大的元素,继续与该列中其他元素比较。void fun(int ttMN,int ppN) int i,j,max; for(j=0;jN;j+) max=tt0j; /*假设各列中的第一个元素最大*/ for(i=0;imax) /*如果各列中的其他元素比最大值还大, 则将这个更大的元素看做当前该列中最大的元素*/ m

13、ax=ttij; ppj=max; /*将各列的最大值依次放入pp数组中*/ 第3套1.填空题请补充函数fun(),该函数的功能是:把一个整数转换成字符串,并倒序保存在字符数组str中。例如:当n=13572468时,str=86427531。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。试题程序:#include#include#define N 80char strN;void fun(long int n) int i=0; while(【1】) stri=【2】; n/=10; i+; 【3】;main()

14、long int n=13572468; clrscr(); printf(* the origial data *n); printf(n=%ld,n); fun(n); printf(n%s,str);【1】n0 【2】n%10+0 【3】stri= 0【解析】填空1:while循环的执行条件是n0,当n等于0时,说明已经将整数的各位数字都转换为数字字符并存入字符串中了。填空2:n对10求余,得到整数n的个位数字,在加上字符0的ASCII码,得到对应的数字字符,并存入字符串str中。填空3:将整数转换为字符串并倒序存放入字符数组str中后,还要在str最后加上字符串结束标记符0。2. 改错

15、题下列给定程序中,函数fun的功能是按以下递归公式求函数值。例如:当给n输入5时,函数值为240;当给n输入3时,函数值为60。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include /*found*/fun(int n); int c;/*found*/ if(n=1) c=15; else c=fun(n-1)*2; return(c);main() int n; printf(Enter n:); scanf(%d,&n); printf(The result :%dnn,fun(n);(1)错误:fun(in

16、t n); 正确:fun(int n)(2)错误:if(n=1) 正确:if(n=1)【解析】错误1:该行是函数的首部,不是一条语句,因此不能以分号结束。错误2:if后面应该紧跟一个条件判断表达式,若写成if(n=1),则说明该表达式的值永远为真,也就是说这个条件永远成立,没有递归执行。3. 编程题请编写函数fun(),对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCII值码升序排列。编写完程序,运行程序后输入:字符串为Bdsihad,则排序后输出为应为Badhisd。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若

17、干语句。试题程序:#include #include #include int fun(char *s, int num)main() char s10; clrscr(); printf(输入7个字符的字符串:); gets(s); fun(s,7); printf(n%s,s);【解析】本题考查利用循环来控制数组元素的操作,首尾元素除外,因此,数组的下标值要从1开始,用循环变量i来依次取得数组中的元素,用数组中的元素si和sj进行比较,如果后一个元素的ASCII码值小于前一个元素的ASCII码值,则交换这两个数组元素的值。int fun(char *s, int num)char t; i

18、nt i, j; for(i=1;inum-2;i+) /*下标值从1开始,用循环依次取得字符串中的字符*/ for(j=i+1;jsj) /*如果后面字符的ASCII码值小于该字符的ASCII码值*/ t=si; /*则交换这两个字符*/ si=sj; sj=t; 第4套1填空题数组xxN保存着一组位数的无符号正整数,其元素的个数通过变量num传入函数fun()。请补充函数fun(),该函数的功能是:从数组xx中找出个位和百位的数字相等的所有无符号整数,结果保存在数组yy中,其个数由函数fun()返回。例如:当xx8=135,78,72,32,222,424,333,141,541时,bb6

19、=787,232,222,424,333,141。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。试题程序:#include#define N 1000int fun(int xx,int bb,int num) int i,n=0; int g,b; for(i=0;inum;i+) g=【1】; b=xxi/100; if(g=b) 【2】; return【3】;main() int xx8=135,787,232,222,424,333,141,541; int yyN; int num=0,n=0,i=0;

20、 num=8; clrscr(); printf(*original data *n); for(i=0;inum;i+) printf(%u ,xxi); printf(nnn); n=fun(xx,yy,num); printf(nyy= ); for(i=0;in;i+) printf(%u ,yyi);【1】xxi%10 【2】bbn+=xxi 【3】n【解析】填空1:变量b存放了三位数的百位数字,所以变量g应该存放三位数的个位数字,将这个三位数对10求余,则得到这个数的个位数字。填空2:将个位数字与百位数字相等的整数存于数组bb中。填空3:变量n记录了个位数字等于百位数字的整数的个数

21、,题目要求个数由函数fun()返回,所以应返回n。2. 改错题下列给定程序中函数fun()的功能是计算1/n!的值。例如:给n输入5,则输出0.008333。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include #include /*found*/int fun(int n) double result =1.0; if(n=0) return 1.0; while(n1 & n 170)/*found*/ result *=n+ ; result=1/result; return result;main() in

22、t n; printf(Input N:); scanf(%d,&n); printf(n1/%d!=%lfn,n,fun(n);(1)错误:int fun(int n) 正确:double fun(int n)(2)错误:result *=n+ ; 正确:result *=n- ;【解析】错误1:函数的返回值为实型数据,所以函数的返回类型应为double。错误2:根据阶乘的概念,从n开始,每递减1的数相乘,直到1,因此此处n递减,而不是递增。3. 编程题编写函数fun(),它的功能是求n以内(不包括n)同时能被5与11整除的所有自然数之和的平方根s,并作为函数值返回。例如:n为1000时,函

23、数值应为s=96.979379。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include #include #include double fun(int n) main()clrscr();printf(s=%fn, fun(1000);【解析】本题的解题思路是逐个取得从0n之间的所有数,对每次取得的数进行条件判断,条件是既能被5整除同时又能被11整除,注意:这两个条件要求同时成立,因此用到了&运算符。满足条件,该数就被累加到s中去,求出所有符合条件的数后,用sqrt()函数(包含于头文件中)对s求平方根

24、。double fun(int n)double s=0.0;int i;for(i=0; in;i+) /*从0n中找到既能被5整除同时又能被11整除的数,并将这些数求和*/ if(i%5=0&i%11=0) s=s+i;s=sqrt(s); /*对s求平方根*/return s;第5套1.填空题请补充main函数,该函数的功能是求方程ax2+bx+c=0的根(方程的系数a,b,c从键盘输入)。例如,当a=1,b=2,c=1时,方程的两个根分别是:x1=-1.00,x2=-1.00。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在main函数的横线上填入所编写的若

25、干表达式或语句。试题程序:#include#include#includemain() float a,b,c,disc,x1,x2,p,q; scanf(%f,%f,%f,&a,&b,&c); disc=b*b-4*a*c; clrscr(); printf(*the result *n); if(disc=0) x1=【1】; x2=(-b-sqrt(disc)/(2*a); printf(x1=%6.2f,x2=%6.2fn,x1,x2); else p=【2】; q=【3】; printf(x1=%6.2f+%6.2f in,p,q); printf(x2=%6.2f-%6.2f in

26、,p,q); 【1】(-b+sqrt(disc)/(2*a)【2】-b/(2*a)【3】sqrt(fabs(disc)/(2*a)【解析】填空1:方程 的根是:当 时, ;当 时, 。填空2:由输出格式可知, 。填空3:由输出格式可知, 。2. 改错题下列给定程序中函数fun()的功能是计算正整数num的各位上的数字之平方和。例如:输入352,则输出应该是38;若输入328,则输出应该是77。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include #include long fun(long num) /*found*/ l

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

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