当前位置: 首页 > news >正文

连连电商网站开发公司ps网站设计全程绝密

连连电商网站开发公司,ps网站设计全程绝密,河南工信建设网站,手工活外发加工前言#xff1a; 本文涵盖了博主在平常写C语言题目时经常犯的一些错误#xff0c;在这里帮大家整理出来#xff0c;一些易错点会帮大家标识出来#xff0c;希望大家看完这篇文章后有所得#xff0c;引以为戒~ 一、 题目#xff1a; 解答#xff1a; 首先在这个程序中…前言 本文涵盖了博主在平常写C语言题目时经常犯的一些错误在这里帮大家整理出来一些易错点会帮大家标识出来希望大家看完这篇文章后有所得引以为戒~ 一、 题目 解答 首先在这个程序中有两个x,y,一个是在主函数中定义的局部变量另一个是全局变量。 而在swap函数中将两个值进行了交换因为在主函数中定义的变量只在主函数中有效因为主函数也是一个函数它与其他函数是平行关系所以swap函数是将在主函数外部的全局变量进行了交换。 其次在主函数中我们需要打印xy根据输出语句局部变量优先的原则所以最后的结果就是38 易错点 不知道在主函数中定义的变量只在主函数中有效不知道在输出语句中局部变量优先的原则 二、 题目 解答 本题选择B \ddd ddd表示1到3个八进制数d用八进制数表示才合法 \xhh hh表示1到2位十六进制数 h用十六进制数表示才合法 原因是 \8 表示错误因为转义字符\后面只要跟了十进制的数字就是表示八进制数但是八进制表示的范围是0~7 所以\8 表示错误。 易错点 不知道常见转义字符的形式\后面直接跟数字表示是一个八进制数但表示形式必须要用0~7同理/后面跟x表示是一个十六进制数表示形式也必须使用十六进制~ 小总结 以后看到字符表示中有\在前面就表示它是一个转义字符看\后面的字母来判断这是什么样的字符。 三、 题目 解答 本题要求根据输入的日期计算是这一年的第几天。 我们可以把每一月的月数存放在一个数组中根据输入的月份for循环累加特殊情况判断闰年的情况。 源码 int main() {int year 0;int month 0;int day 0;int sum 0;int num[12] {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};//直接用数组创建比switch语句简洁了不少while(scanf(%d %d %d,year,month,day) ! EOF){if(year % 400 0 || (year % 4 0 year % 100 ! 0))num[1] 29;//累加月份这种事就让电脑干for(int i 0;i month-1;i){sum num[i];}sum day;printf(%d\n,sum);}return 0; } 四、 题目 解答 \\表示一个 \ 字符\123表示一个八进制数\t 表示水平制表。所以最后的结果是12. 易错点 \\ \ \ \ddd \xhh 以上这几个比较容易出错需要多加注意。 五、 题目 如下函数f(1)的值是多少 解答 首先明确i是一个局部变量此题注意静态局部变量的使用改变局部变量的销毁时期。 static改变了i的生命周期第一次调用函数i初值是1递归第二次调用函数时i还是第一次那个变量值已经变成了2再一次调用函数时i就是3以此类推 易错点 不清楚静态局部变量的意义。静态局部变量存储在静态存储区当静态局部变量离开作用域后并没有被销毁被修饰变量的值没有改变比如本题的i变量的值不会改变会一直。 六、 题目 解答 本题关键在于知道规律后能够找到第 n 个数据立方的起始奇数 但我觉得最重要的是如何将一个整型表达式转化为字符串类型 这里需要引用一个新函数sprintf函数它可以直接将整型类型转换为字符串类型。 sprintf函数的用法 格式化字符串但是不用于打印而是放到一个buf中所以需要提前创建一个char类型的数组。 可以直接将整型全部转换为字符串类型 int main() {char buf[100];int a 100;int b 20;//sprintf(buf, %d, a);sprintf(buf, %d%d, a, b);printf(%s, buf);return 0; } 可以部分转换以本题举例 int main() { int m; while(~scanf(%d, m)){ int start m * (m - 1) 1;//找到对应m^3的起始奇数 char buf[10240] {0}; //sprintf(buf, format, ...) 与printf用法类似格式化字符串但是不用于打印而是放到一个buf中 sprintf(buf, %d, start);//先将起始奇数转换成为字符串存入buf中 for (int i 1; i m; i) { //然后将紧随随后的m-1个奇数数字转换为字符串按照指定格式放入buf中 //%s%d, 要求先有一个字符串然后是符号然后是个数字的格式对应是buf原先的数据和奇数 sprintf(buf, %s%d, buf, start2); } printf(%s\n, buf); } return 0; } 七、 题目 若运行以下程序时从键盘输入 ADescriptor 回车 则下面程序的运行结果 易错点 getchar读取所有字符所以最后的回车也会被读入若代码switch语句中没有break则每次找到入口进入后顺序执行到代码块结束为止 八、 题目 以下程序的功能 解答 一个字母对应的大写和小写之间的 ASCII 码值相差 32 而且 小写的ASCII码值大于大写 的。所以题中 e 和 E 之间的 ASCII 码值相差 32 ch[j]e-E 相当于 ch[j]32 。可以直接32 总结 一个字母从大写转化为小写就是在它自身上 32 小写转大写则是 -32。相反 九、 题目 数字在升序数组中出现的次数_牛客题霸_牛客网 (nowcoder.com) 注意题目中要求时间复杂度在O(logN),并且还是非降序很明显这题要使用二分思想。 思路 采用遍历也能搞定不过数组为非降序采用 二分查找 的思想最优先二分找到最左边的数字位置再二分查找最右边的数字位置两个位置相减1 就是长度了。 中间比找的值大则要找的数字肯定在右边 left mid 1; 中间比找的值小则要找的数字肯定在左边 right mid - 1 中间值与找的值相同 找的最左边数字如果 mid 就是 left 则返回 mid 就行否则重置 rightmid-1 把中心不断向左偏移 找的最右边数字如果 mid 就是 right 则返回 mid 就行否则重置 leftmid1 把中心不断向右偏移 源码 int GetNumberOfK(int* nums, int numsLen, int k ) {// write code here//先二分找到最左边的数字位置再二分查找最右边的数字位置两个位置相减1就是长度int cnt 0;int left 0;int right numsLen - 1;int mid;while(left right) {mid (leftright)/2;//每次循环都需要放在中间if(nums[mid] k){right mid-1;}else if (nums[mid] k){left mid1;}else {int ret mid;while(nums[ret] k){ret--;}left ret1;ret mid;while(nums[ret] k){ret;}right ret-1;return right - left 1;}}return 0; } 十、 题目 解答 || 操作符表示只要有一个为真就是真刚开始05,执行i当i 1时 逻辑或操作符前表达式为真后表达式不计算所以前表达式i 1后面的i就不计算因此i恒为1所以是死循环 易错点 不知道逻辑或操作符当前表达式为真后表达式不计算这个特点 十一、 题目 在 c 语言中一个函数不写返回值类型默认的返回类型是 解答 一个函数不写返回值类型 默认的返回类型是int 但不提倡这么做。 十二、 题目 解答 字符数组定义的两种方式 arr1和arr2都是合法的arr3报错是字符数组初始化需要带括号的初始化表达式。 十三、 题目 169. 多数元素​​​​​​z 解答 注意本题的要求是时间复杂度在O(N)所以不能简单的使用暴力双层循环的办法。 采用互拼的思想。  一个数组中有一个数字出现次数大于 n/2 从第 0 个字符开始假设它就是最多的那个数字遇到相同的数字则计数 1 遇到不同的则计数 -1 其实就是互相消耗等到计数为 0 的时候表示本次互拼完毕从下一个字符重 新开始互拼 但是归根结底出现次数大于 n/2 的这个数字数量更多因此也是最后保留的字符 。 源码 int majorityElement(int* nums, int numsSize) {//利用互拼的思想int n nums[0];int cnt 1;for(int i 1;inumsSize;i){if(n nums[i])cnt;elsecnt--;if(cnt 0)n nums[i1];}return n; } 十四、 题目 解答 逗号表达式是 从前到后依次计算子表达式而其结果是最后一项的值 本题的括号无用所以最后的结果就是25. 十五、 题目 238. 除自身以外数组的乘积 思路 题目中要求使用O(N)的算法进行计算我的第一想法是将所有数据相乘遍历一遍数组元素然后分别相除但题目中有要求不能使用除法但是除法与乘法互相转换的。 我们可以将乘积分为两次进行第一次先将每个位置左边的数据乘积计算出来放到返回数组中后边第二次循环将对应位置右边的数据乘积计算出来与返回数组对应位置的左半边乘积相乘得到结果。 源码 int* productExceptSelf(int* nums, int numsSize, int* returnSize) {int left[numsSize];int right[numsSize];*returnSize numsSize;int* arr (int*)malloc(sizeof(int)*(*returnSize));//分别计算每个元素左边的乘积left[0] 1;int ret 1;for(int i 1;inumsSize;i){ret*nums[i-1];left[i] ret;}//分别计算每个元素右边的乘积ret 1;right[numsSize-1] 1;for(int i numsSize-2;i-1;i--){ret*nums[i1];right[i] ret;}for(int i 0;inumsSize;i){printf(%d ,left[i]);}printf(\n);for(int i 0;inumsSize;i){printf(%d ,right[i]);}//最后计算两者相乘for(int i 0;inumsSize;i){arr[i] left[i] * right[i];}return arr; } 十六、 题目 448. 找到所有数组中消失的数字  题目中要求时间复杂度O(N)空间复杂度是O(1)。 思路 以数组元素的 绝对值 作为下标因为前面有可能将后面的数值变为负数负数访问数组下标会越界。 将对应位置的数据置为负数比如 0 号位置是 3 则把 3 号位置的数据重置为负值等到数组遍历重置完毕只有缺失的这个数字对应的位置保留正数其他出现过的数字位置都会是负数 要注意不要重复设置负数因为负负得正。 为什么会想到这个思路 因为数组的内容和数组的下标相对应。 TIP:   的优先级要比 解引用* 操作符优先级高为了避免这个问题可以直接用括号或者*returnsize1。 源码 int* findDisappearedNumbers(int* nums, int numsSize, int* returnSize){*returnSize 0;int* arr (int*)malloc(sizeof(int)*numsSize);//注意遍历到后面的值可能是负数下标访问会越界所以需要绝对值函数for(int i 0;inumsSize;i){int ret abs(nums[i])-1;if(nums[ret] 0)continue;else{nums[ret] -nums[ret];}}for(int i 0;inumsSize;i){if(nums[i] 0){arr[*returnSize] i1;// 的优先级要比 解引用* 操作符优先级高//*returnSize; error*returnSize1;}}return arr; } 十七、 题目  解答 一般表达式的运算是在运行时执行的而 sizeof 是一个编译阶段就执行的运算符在其内的任何运算 都不执行 只推测出其中表达式结果的类型求其大小故前后i 的值不变。 易错点 不知道sizeof内部的任何运算都不执行。 十八、 题目 解答 0c9 并非判断 x 大于等于字符 0, 小于等于字符 9 而是 先执行0c 使用这个表达式的结果再和 9 比较 0 的 ASCII 码值是48 A 的 ASCII 码值是 65 故 0c 是真值 1 1 无疑是小于字符 9 的最终是真 易错点 0c9 这个表达式并不是真正数学意义上的比较在计算机语言中应该从右到左一一进行计算。 十九、 题目 思路一 将这个正数取余取出每一位然后将每一位整型0,变为字符型即可。 源码 int main() {long long n 0;scanf(%lld,n);char* arr (char*)malloc(sizeof(char)*1000);int num 0;if(n 0)printf(%d,n);while(n){arr[num] n%10 0;n/10;}for(int i 0;inum;i){printf(%c,arr[i]);}return 0; }  思路二 利用sprintf函数不需要一个一个的进行取余直接将整个整型的数字转换为字符型。 源码 int main() {int n 0;scanf(%d,n);char buf[1000];sprintf(buf,%d,n);int len strlen(buf);for(int i len-1;i-1;i--){printf(%c,buf[i]);}return 0; } 二十、 题目 单词倒排_牛客题霸_牛客网 (nowcoder.com) 思路 定义一个字符指针数组用于保存每个单词的 起始字符地址 接下来将 非字母字符全部替换成为字符串结尾标志 则单词字符字母遇到结尾就结束了相当于把一个字符串以非字母字符进行切割成为了多个字符串最终对字符指针数组进行逆序打印每个单词即可。 源码 int main() {char arr[10005];char* ret[10005];//记录每一个单词的首元素地址int cnt 0;//记录首元素地址的个数gets(arr);int len strlen(arr);//单独判断首元素if((arr[0]a arr[0]z) ||(arr[0] A arr[0]Z)){ret[cnt] arr[0];}else {arr[0] \0;}for(int i 1;ilen;i){if((arr[i]a arr[i]z) ||(arr[i] A arr[i]Z)){if((arr[i-1]a arr[i-1]z) || (arr[i-1] A arr[i-1]Z))continue;else{ret[cnt] arr[i];//将单词的首元素地址进行存储}}else{arr[i] \0;}}for(int i cnt-1;i-1;i--){printf(%s ,ret[i]);}return 0; } 二十一、 题目 解答 xx|(x1);的作用是每次循环把x的二进制中从右往左数的最后一位0变成1 直到变成 全1的时候x1就溢出为全0 循环结束 易错点 不知道当二进制位每一位都是1之后再进行1结果会变成全0。 二十二、 题目  解答 本题首先是执行后置但是是后置实际的操作是在本条语句的最后 然后就是*pa *pa * 3然后进行 易错点 忘记后置的计算顺序应该是最后再算。
http://www.dnsts.com.cn/news/26104.html

相关文章:

  • 深圳定制网站开发wordpress禁止响应
  • 宜昌平台网站建设东营网红桥
  • 深圳专业商城网站网站的排名优化怎么做
  • 郑州做网站的大公松江新桥网站建设
  • asp.net网站管理工具滕州做网站比较好的网络公司
  • 沈阳网站关键字优化提升学历咨询
  • dede小说网站模板下载网站全屏广告
  • 平昌县住房和城乡建设局网站怎么搜索网站搜索量
  • 手机百度屏蔽我网站关键词公共资源交易中心是干嘛的
  • 信息网站制作产品包装设计与制作
  • 南阳seo网站排名优化手把手教建设网站
  • 创业网站怎么做微信公众网站开发
  • 静安做网站的公司微信小程序如何推广
  • 网站开发需要的知识和技术软件开发工程师做什么
  • 商城网站流量wordpress搬家换域名
  • 那些企业需要做网站织梦网站怎么上传
  • 福建 专业网站建设公司浏览器查看WordPress主题
  • 空间放两个网站建设工程施工合同专属管辖
  • 推广网站的软文wordpress安装时候500错误
  • 网站开发基本工资是多少制作免费网站的平台
  • 网站制作时广州专业网站建设
  • 重庆自适应网站建设个人网站可以做资讯吗?
  • 影视传媒公司网站php源码网页无法访问什么原因
  • 做酒店管理网站的作用嵌入式软件开发专业
  • 一些做设计素材的网站网络工程师报名入口官网
  • wordpress设置新页面跳转广州网站建设优化方案
  • 免费网站开发合同范本徐州seo招聘
  • 有没有做花卉种子的网站啊做外贸网站怎么设计
  • 成都创新互联做网站平台推广引流是什么意思
  • 如何做企业的网站wordpress架设主机