本文共 1891 字,大约阅读时间需要 6 分钟。
点击上方蓝字关注我,我们一起学编程
欢迎小伙伴们分享、转载、私信、赞赏微信搜索:编程笔记本
微信搜索:编程笔记本 微信搜索:编程笔记本执行以下语句:
int a = 5;a += (a++) + (++a);
此时 a 的值为( )。
解析:
将原问题转化为:
a = a + (a++) + (++a);
根据运算符的优先级,()
优先级最高,所以先计算括号中的部分。
图1
所以最终的答案是 19 。
微信搜索:编程笔记本 微信搜索:编程笔记本 微信搜索:编程笔记本请问一下代码有什么问题?
void test_function(){ unsigned short loop = 500; unsigned short a = 0; while (true) { a += loop; loop--; if (loop < 0) { break; } }}
解析:
unsigned short
类型的 loop
永远不会小于 0 ,所以程序是一个死循环。a
长度不够,会造成溢出,应使用 long
或 long long
。编程实现输入 unsigned int
型变量 a, a != 0
,输出 i
,要求 2^i <= a < 2^(i+1)
。
解析:
原问题等价于:找出 a
的二进制表示中,最左侧的 1
所在的位置(从 0 开始)。
int get_i(unsigned int a){ int pos = 0; while ((a >>= 1) != 0) { ++pos; } return pos;}
微信搜索:编程笔记本
微信搜索:编程笔记本 微信搜索:编程笔记本给定 NODE & STACK 结构体,在此基础上编程实现动态链表模拟栈的操作,补充完整以下五个函数。
typedef struct node { char c; struct node* next;} NODE;typedef struct stack { NODE* top;} STACK;/* 题目有错,这五个函数的返回值应该都为 void ,返回 char 没意义 */void push(STACK* stack, char c){ NODE* nd = new NODE; nd->c = c; nd->next = stack->top; stack->top = nd;}void pop(STACK* stack, char* c){ *c = stack->top->c; stack->top = stack->top->next;}void init_stack(STACK* stack){ stack->top = nullptr;}void clear_stack(STACK* stack){ NODE* nd; while (stack->top != nullptr) { nd = stack->top; stack->top = stack->top->next; delete nd; }}void display_stack(STACK* stack){ NODE* nd = stack->top; while (nd != nullptr) { cout << nd->c << endl; nd = nd->next; }}
五个洞排成一排,其中一个洞里藏有一只狐狸。每个夜晚狐狸都会跳到一个相邻的洞里。每个白天你都只允许检查其中一个洞。怎样才能保证狐狸最终会被抓住?
图2
解析:
先给出答案:依次检查 2、3、4、2、3、4 。
可行性分析: