赞
踩
int i = 10;
int j = 20;
int k = 3;
k *= i + j;
上面k运行的结果是
因为k*=是一个赋值操作符
它的优先级比较低 所以要先算i+j
所以说k的值是90
假定 x 和 y 为 double 型,则执行 x=2; y=x+3/2; 后y的值为()
A 3.500000
B 3
C 2.000000
D 3.000000
这里要注意的是3/2因为是两个整数相除
所以说得到的值是1
所以说最终的值会是3.000000
若有定义语句:int year=1009,*p=&year;以下不能使变量 year 中的值增至 1010 的语句是()
A *p+=1;
B (*p)++;
C ++(*p)
D *p++
首先A 显然可以
B显然可以
C显然可以
D中 两个单目操作符进行运算 按照先右后左的顺序使用
首先是解引用p的值 然后将指针p的位置加加
总结: 主要是操作符的先后顺序这一块的知识比较薄弱
还是老朋友 求最大公因数和最小公倍数
这里提供一个求最小公倍数的另一种解法
思路分析
对于两个整数m n
它们的最小公倍数k肯定有
k / m ==i
k / n == j
那么我们就假设这个i的值为1
则有k=im
如果此时的k模上n刚好等于0 那么这个k就是最小公倍数
那么此时的最大公因数即为 (m*n)/k
完成代码如下
#include<stdio.h> int main() { int m = 0; int n = 0; scanf("%d %d", &m, &n); int i = 1; while ((i * m) % n != 0) { i++; } printf("%d", i * m); return 0; }
这道题的主要是一个技巧问题
记住这个求最大公倍数数的技巧就可以
题目分析
对于这道题目我们可以首先逆序整个字符串 然后再通过空格和‘\0’对于其中的每个单词进行逆序
// 逆序函数 void my_reverse(char* str, char* end) { char tmp = 0; while (end>str) { tmp = *str; *str = *end; *end = tmp; str++; end--; } } int main() { char arr[105] = { 0 }; gets(arr); int len = strlen(arr)-1; char* end = arr+len; // 逆序字符串 my_reverse(arr,end); // 测试逆序字符串是否成功 //for (int i = 0; i < len; i++) //{ // printf("%c", arr[i]); //} // 逆序每个单词 char* start = arr; char* end2 = arr; int i = 0; for (i = 0; i <= len+1; i++) { if (*end2==' '||*end2 =='\0') { my_reverse(start, end2 - 1); start = end2 + 1; } end2++; } for (int i = 0; i <= len; i++) { printf("%c", arr[i]); } return 0; }
实现代码如上
以上就是本篇博客的全部内容啦 由于博主才疏学浅 所以难免会出现纰漏 希望大佬们看到错误之后能够
不吝赐教 在评论区或者私信指正 博主一定及时修正
那么大家下期再见咯
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。