dede世界杯网站模板,做有色金属哪个网站好,建设网站文案,深圳网站设计权威乐云践新#x1f525;博客主页#xff1a;小王又困了
#x1f4da;系列专栏#xff1a;每日一练
#x1f31f;人之为学#xff0c;不日近则日退
❤️感谢大家点赞#x1f44d;收藏⭐评论✍️ 目录
一、选择题
#x1f4dd;1.第一题
#x1f4dd;2.第二题
#x1f4…
博客主页小王又困了
系列专栏每日一练
人之为学不日近则日退
❤️感谢大家点赞收藏⭐评论✍️ 目录
一、选择题
1.第一题
2.第二题
3.第三题
二、编程题
1.第一题
2.第二题 ️前言 在前面我们学习完C语言的所以知识当然练习巩固也不能落下。俗话说“无财之谓贫学而不能行之谓病。”可见实践对我们学习的重要。接下来就让小王带着大家进行练习巩固我们C语言的学习。 一、选择题
1.第一题
以下程序运行后的输出结果是
int main()
{int a1,b2,m0,n0,k;k(nba)(ma);printf(%d,%d\n,k,m);return 0;
}
解题思路 这道题是要打印 k 和 m 的值我们通过执行上面的表达式来得到它两的值。在这里括号的优先级最高先执行括号中的代码关系运算符的优先级大于赋值操作符这里我们要注意 当左边为假时就不用执行右边的代码。 先执行 ba 为假值为0再将0赋值给n表达式结果为零再将0赋值给 k表达式 k0表达式为假左侧表达式为假右侧表达式也不执行所以 k 和 m 的值都为0 2.第二题
读代码选结果
int main()
{int count 0;int x -1;while (x){count;x x 1;}printf(%d, count);
} 解题思路 通过观察代码可以得知代码的目是计算一个整数 x 的二进制表示中有多少个1。 首先初始化计数器count为0用于记录1的个数。然后将整数 x 初始化一个值。接下来进入while循环条件是x不为0。在循环内部首先将count加1表示找到了一个1。然后将x右移一位相当于除以2继续检查新的x值。当x变为0时循环结束。最后使用printf函数输出计数器count的值即整数 x 的二进制表示中1的个数。 但是这里 x 初始化为-1-1的二进制补码全部都是1第一位是符号位。右移分为算数右移和逻辑右移一般编译器都是算术右移右边丢弃左边补原来的符号位。所以计数器会一直加程序陷入死循环。 3.第三题
请阅读以下程序其运行结果是
int main()
{char cA;if(0 c 9) { printf(YES);}else {printf(NO);}return 0;
} 解题思路 这道题很容易对大家产生误解0 c 9 这段代码的意思就是 c 大于 ‘0’小于 ‘9’ 就为真但这种是数学中的写法在程序中这样的代码要从左向右执行 先执行 ‘0’ c,A 的ASCII码值为65‘0’ 的ASCII码值为48‘0’ c 为真值为1然后进行下面的判断 1 ‘9’ 为真所以打印YES 正确的代码应该写成 c 0 c 9,if语句判断为真打印YES。 虽然两段代码的结果相同但逻辑并不相同所以我们在平常写代码时一定要规范。 二、编程题
1.第一题 解题思路 我们想在数字中添加逗号将每一位通过 %10 /10 的方式拆分下来在需要的地方将逗号插入进去。由于加入逗号原来的数字就不能用整型表示而是要变成字符型在得到每位的数据加上 ‘0’ 就可以变成字符型。将得到的数据存放在字符数组中每存放3个数据就插入一个逗号即k%30 就插入这里要注意判断条件当插入第一个数时k%30 的条件也满足但是不需要插入逗号所以我们要加上 k0 使条件完整。 #include stdio.h
int main()
{int n 0;scanf(%d, n);//存放最后的结果char arr[14] { 0 };int i 0;//记录加逗号int k 0;while (n){if (k ! 0 k % 3 0){arr[i] ,;}arr[i] n % 10 0;n / 10;k;}//打印for (i--; i 0; i--){printf(%c, arr[i]);}return 0;
} 2.第二题 解题思路 我们通过两个循环遍历数组当找到 numbers[i]numbers[j] 和目标值相同的直接 return 。由于题目中还要求时间复杂度为 O(nlogn) 两次循环时间复杂度为 O(n^2)。所以我们可以使用 contine 在第二次循环之前先判断如果 numbers[i]target 两数之和一定大于 target使用 continue就可以跳过第二次循环执行下一次。 continue提前结束本次循环接着执行下一次循环 int* twoSum(int* numbers, int numbersLen, int target, int* returnSize)
{int* newarr (int*)malloc(sizeof(int) * 2);int i 0;for (i 0; i numbersLen; i){if (numbers[i] target){continue;}int j 0;for (j i 1; j numbersLen; j){if (numbers[i] numbers[j] target){newarr[0] i 1;newarr[1] j 1;*returnSize 2;return newarr;}}}*returnSize 0;return 0;
} 本次的内容到这里就结束啦。希望大家阅读完可以有所收获同时也感谢各位读者三连支持。文章有问题可以在评论区留言博主一定认真认真修改以后写出更好的文章。你们的支持就是博主最大的动力。