下面 C++ 代码执行后的输出是( )。
01int m = 14; 02int n = 12; 03if (m % 2 == 0 && n % 2 == 0) 04 cout << "都是偶数"; 05else if (m % 2 == 1 && n % 2 == 1) 06 cout << "都是奇数"; 07else 08 cout << "不都是偶数或奇数";
执行以下 C++ 语言程序后,输出结果是( )。
01#include <iostream> 02using namespace std; 03int main() { 04 int sum = 0; 05 for (int i = 1; i <= 20; i++) 06 if (i % 3 == 0 || i % 5 == 0) 07 sum += i; 08 cout << sum << endl; 09 return 0; 10}
假设现在是上午十点,求出 N 小时(正整数)后是第几天几时,如输入 20 小时则为第 天 6 点,如 N 输入 4 则为今天 14 点。为实现相应功能,应在横线处填写代码是( )。
01int N, dayX, hourX; 02 03cin >> N; 04 05dayX = ____________, hourX = ____________; 06if (dayX == 0) 07 cout << "今天" << hourX << "点"; 08else 09 cout << "第" << (dayX + 1) << "天" << hourX << "点";
在下列代码的横线处填写( ),使得输出是 20 10。
01#include <iostream> 02using namespace std; 03int main() { 04 int a = 10, b = 20; 05 a = ____________; // 在此处填入代码 06 b = a + b; 07 a = b - a; 08 cout << a << " " << b << endl; 09 return 0; 10}
下面 C++ 代码第 行,总共被执行次数是( )。
01for (int i = -10; i < 10; i++) 02 cout << i << " ";
下面的 C++ 代码执行时如果先输入 10 回车后输入 20 并回车,其输出是( )。
01int N, M; 02printf("第一个数:"); 03scanf("%d", &N); 04printf("第二个数:"); 05scanf("%d", &M); 06printf("%%(N+M)=%d", N+M, int(N+M));
在 C++ 中,执行 int x = 255; cout << (x & (x - 1)); 后,输出的结果是?( )
在 C++ 中,以下哪个函数调用会造成栈溢出?( )
如果 a 为 char 类型的变量,且 a 的值为 'C'(已知 'C' 的 ASCII 码为 67),则执行 cout << (a + 2); 会输出( )。
下面 C++ 代码执行后的输出是( )。
01int cnt = 0; 02for (int i = 1; i < 9; i++) 03 for (int j = 1; j < i; j += 2) 04 cnt += 1; 05cout << cnt;
下面 C++ 代码执行后的输出是( )。
01char ch[10]={'1'}; 02cout<<ch[2]<<endl;
一个 int 类型的值,做以下哪个操作,一定会变回原来的值?( )
在下列代码的横线处填写( ),可以使得输出是"2"。
01#include <iostream> 02using namespace std; 03int main() { 04 int array[5] = {3, 7, 5, 2, 4}; 05 int min = 0; 06 for (int i = 0; i < 5; i++) 07 if (____________) // 在此处填写代码 08 min = array[i]; 09 cout << min << endl; 10 return 0; 11}
执行下面 C++ 代码后输出的是( )。
01string str=("chen"); 02cout<<str[5]<<endl;
一个数组定义为 int a[5] = {1, 2, 3, 4, 5};,一个指针定义为 int * p = &a[2];,则执行 a[1] = *p; 后,数组 a 中的值会变为( )。
在 C++ 中,执行下面代码后,输出的是( )。
01int point(int *p) 02{ 03 return *p**p; 04} 05int main() 06{ 07 int a=20; 08 int *p=&a; 09 *p=point(p); 10 cout<<*p<<endl; 11}
在下列代码的横线处填写( ),可以使得输出是"20 10"。
01#include <iostream> 02using namespace std; 03void xchg(____________) { // 在此处填入代码 04 int t = *x; 05 *x = *y; 06 *y = t; 07} 08int main() { 09 int a = 10, b = 20; 10 xchg(&a, &b); 11 cout << a << " " << b << endl; 12 return 0; 13}
假设给定链表为:,若调用 searchValue(head, 5),函数返回值为( )。
01int searchValue(ListNode* head, int target) { 02 while (head != nullptr) { 03 if (head->val == target) { 04 return 1; 05 } 06 head = head->next; 07 } 08 return 0; 09}
若有如下程序段,其中 s、a、b、c 均已定义为整型变量,且 a、c 均已赋值():
01s = a; 02for (b = 1; b <= c; b++) s = s - 1;
则与上述程序段功能等价的赋值语句是( )。
设 是 个实数的数组,考虑下面的递归算法:
XYZ(A[1..n]) 1 if n = 1 then return A[1] 2 else temp ← XYZ(A[1..n-1]) 3 if temp < A[n] 4 then return temp 5 else return A[n]
请问算法 XYZ 的输出是什么?( )
考虑如下递归算法
01solve(n) 02 if n<=1 return 1 03 else if n>=5 return n*solve(n-2) 04 else return n*solve(n-1)
则调用 solve(7) 得到的返回结果为( )。
运行以下代码片段的行为是( )。
01int x = 101; 02int y = 201; 03int *p = &x; 04int *q = &y; 05p = q;
考虑以下 C++ 函数:
1 void solve(int &a, int b) { 2 a = a + b; 3 b = a - b; 4 a = a - b; 5 } 6 int main() { 7 int x = 5, y = 10; 8 solve(x, y); 9 }
在 函数调用 后, 和 的值分别是?( )
函数 calc(n) 的定义如下,则 calc(5) 的返回值是多少?( )
1 int calc(int n) { 2 if (n <= 1) return 1; 3 if (n % 2 == 0) return calc(n / 2) + 1; 4 else return calc(n - 1) + calc(n - 2); 5 }
斐波那契数列的定义为:,,()。现在用如下程序来计算斐波那契数列的第 项,其时间复杂度为( )。
01F(n): 02 if n<=2 return 1 03 else return F(n-1) + F(n-2)
下面代码执行后的输出是( )。
01#include <iostream> 02using namespace std; 03 04int jumpFloor(int N) { 05 cout << N << "#"; 06 if (N == 1 || N == 2) { 07 return N; 08 } else { 09 return jumpFloor(N - 1) + jumpFloor(N - 2); 10 } 11} 12int main() { 13 cout << jumpFloor(4) << endl; 14 return 0; 15}
下面的 C++ 代码用于将字符串保存到带头节点的双向链表中,并对重复的串计数,然后将最新访问的串的节点放在链头便于查找。横线处应填入代码是( )。
01typedef struct Node{ 02 string str; 03 int ref; 04 struct Node *next, *prev; 05}Node; 06Node * Insert(Node *pHead, string s) 07{ 08 Node *p = pHead->next; 09 Node *q; 10 while(p) { 11 if(p->str == s) { 12 p->ref++; 13 p->next->prev = p->prev; 14 p->prev->next = p->next; 15 break; 16 } 17 p=p->next; 18 } 19 if(!p) { 20 p = new Node; 21 p->str = s; 22 p->ref=0; 23 p->next = p->prev = NULL; 24 } 25 ____________ 26 pHead->next = p, p->prev = pHead; 27 return pHead; 28}
在双向链表头部插入一个新节点,为了保持链表结构正确,横线上应填入的代码为( )。
01void insert(dl_node *head, string my_song) { 02 p = new dl_node; 03 p->song = my_song; 04 p->prev = nullptr; 05 p->next = head; 06 07 if (head != nullptr) { 08 ____________ // 在此处填入代码 09 } 10 head = p; 11}
下⾯程序的时间复杂度为( )。
01int fib(int n) { 02 if (n <= 1) 03 return 1; 04 return fib(n - 1) + fib(n - 2); 05}