四川省计算机机试试题,四川省第19次计算机2级机试试题

本文档详细解析了四川省第19次计算机二级考试中的两道程序题目,涉及程序调试与功能实现。第一部分要求修复一个计算奇数位数的函数,第二部分涉及人员报数游戏和字符串处理。通过阅读,考生可以提升C语言技能并理解关键算法应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

a7f4a3f590493a1e451dd952a488fd7c.gif 四川省第19次计算机2级机试试题

(5页)

c277027c9ce04f4e3c7c423e34385013.png

本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!

9.9 积分

(第一套)(60分钟)一、 程序调试题(文件名testl-l.c) (40分)磁盘上有testl-l.c,程序中函数fun的功能是:从低位开始取出正长整型变量s中奇数位上的数,依次 构成一个新数放在t中。例如,若s中的数为:98765,则t中的数为975。请改正程序中的错误,使程序能 得出正确的结果。注意:不能改动程序的结构,不能添加和删除行,只能修改行。不要改动main函数。源程序如下:# include void fun(long sjong t)t应该定义为指针型{ long si = 10;*t=s%10;while(s>o);后面的分号去掉{ s=s/100;t=s%10*sl+t;应该在 t 加*sl=sl*l00;改为 sl=sl*10}}void main(){ long s,t;printf(”\nPlease enter integer s:M);scanf(”%ld”,&s);if(s>0){ fun(s,&t);printf("The result is :%ld\n",t);)else printf(ns value errorAn1');}二、 编写程序(程序文件名为testl-2.c) (60分)有n个人围成一圈,顺序排号,从第一个人开始报数(从1到5报数),凡报到5的人退出圈子,问最 后留下的是原來第几号的那位。人数不超过50。要求:将结果显示在屏幕上,同时写到文件testl-2.dat中。# include # define nrnax 50void main(){ int i,k,m,n,num[nmax],*p;FILE *fp;printf("Please enter the n:");scanf(H%dn,&n);p二num;for(i=0;i ;i++)*(p+i)=i+l;i=0;k=0;m=0;while(m# include void fun(char *s,char *tl,char *t2,char *w){ char *p,*r,*place;strcpy(w,s);place=NULL;while(*w){ p=w; r=tl;while(r)if(*r=*p){ r++;p++;}else continue;if(*r=O)place=w;w++;}if(place!=NULL){ r=t2;while(&r)*place=*r,place++,r++;main(){ char s[1001,tl[l 001,t2[100],w[ 100];printf("\nPlease enter siring s:"); scanf("%s",s);printf(u\nPlease enter substring tlscanf(H%sM,tl);printf("\nPlease enter substring t2:");scanf(”%s”,t2);if(strlen(t 1 )==strlen(t2)){ fun(s,tl,t2,w);printf("\nThe result is:%s\n'\w);1else printf(,'Error:strlen(tl)!=strlen(t2)\n");}二、编写程序(程序文件名为test2-2.c) (60分)输入一字符串,存入M中并将所有下标为奇数位置上的字母转换为大写字母(若该位置上不是字母,则 不转换)并将结果转出到test2-2.dat文件中保存。例如:如输入abc4Efg,贝ij应输i,l|naBc4EFg,,o要求:用命令行参数传递文件名test2-2.dato参考程序:# in elude void fun(char *st){ char *p=st;int i=0;while(*p){ if((i%2)&&(*p>='a, && *p

4d91c43bfc72ca913299809b07b4968f.gif  天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值