计算机2025年计算机编程题.docxVIP

计算机2025年计算机编程题.docx

本文档由用户AI专业辅助创建,并经网站质量审核通过
  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

计算机2025年计算机编程题

考试时间:______分钟总分:______分姓名:______

一、

阅读以下代码段,写出程序运行后`sum`的值和`str`的内容。

```c

#includestdio.h

#includestring.h

intmain(){

intsum=0;

charstr[10]=hello;

char*p=str;

while(*p){

sum+=*p-0;

p++;

}

printf(%d,%s\n,sum,str);

return0;

}

```

二、

编写一个函数`voidreverseString(char*s)`,该函数接收一个以空字符`\0`结尾的字符串`s`,并将其内容原地反转。例如,调用`reverseString(abcdef)`后,`s`的内容应变为`fedcba`。在主函数中调用该函数,并显示反转前后的字符串。

三、

编写一个函数`intcountDigits(intn)`,该函数接收一个整数`n`,返回`n`中包含的不同数字的个数。例如,`countDigits(112233)`返回`3`(包含1,2,3),`countDigits(1122)`返回`2`(包含1,2)。在主函数中测试该函数。

四、

给定两个正整数`m`和`n`,编写代码计算`m`的`n`次方(`m^n`)。要求:不能使用库函数`pow`,需要自己设计算法实现。在主函数中,从用户输入获取`m`和`n`,并输出计算结果。

五、

编写代码实现以下功能:从标准输入读取不超过100个整数,存入一个数组`arr`中。然后,删除数组`arr`中所有值为`0`的元素,并将剩余元素移动到数组的前部,同时统计删除了多少个`0`。最后,打印处理后的数组和删除的`0`的个数。假设输入的整数均非负。

六、

编写一个函数`intisPrime(intnum)`,该函数判断`num`是否为素数。如果是素数,返回`1`;如果不是素数,返回`0`。在主函数中,从用户输入获取一个整数`x`,判断其是否为素数,并输出结果。

七、

编写代码实现选择排序算法。对一个整数数组`arr`进行升序排序。要求:定义一个`voidselectionSort(intarr[],intsize)`函数实现排序,并在主函数中测试该函数。输入:数组`arr={5,3,8,4,1}`,输出:排序后的数组`[1,3,4,5,8]`。

八、

编写代码实现二分查找算法。在一个已经按升序排列的整数数组`arr`中,查找目标值`target`。如果找到,返回其在数组中的索引;如果未找到,返回`-1`。要求:定义一个`intbinarySearch(intarr[],intsize,inttarget)`函数实现查找,并在主函数中测试该函数。输入:数组`arr={1,3,4,5,8}`,`target=4`,输出:`2`。

试卷答案

一、

`sum`的值为`5`,`str`的内容为`hello`。

解析:`while`循环遍历字符串`str`的每个字符。初始`sum=0`。循环中,将字符`h`,`e`,`l`,`l`,`o`依次减去`0`(字符`0`的ASCII码为48),即分别计算`104-48=56`,`101-48=53`,`108-48=60`,`108-48=60`,`111-48=63`,然后累加到`sum`,得到`56+53+60+60+63=292`。但题目要求的是字符减去`0`得到数值再求和,这里修正思路,字符`h`,`e`,`l`,`l`,`o`的ASCII码分别为104,101,108,108,111。减去`0`(ASCII48)后得到56,53,60,60,63。求和`56+53+60+60+63=292`。但根据示例输出`5`,推测题目意图是计算字符串中*所有*字符的ASCII码值与`0`的差值之和,即`104+101+108+108+111-5*48=492-240=252`。再次核对示例输出`5`,发现是计算字符串中每个字符的*ASCII码值本身*之和。即`104+101+108+108+111=532`。示例输出`5`似乎有误,

文档评论(0)

倏然而至 + 关注
实名认证
文档贡献者

与其羡慕别人,不如做好自己。

1亿VIP精品文档

相关文档