持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第N天,点击查看活动详情 第八题🎇C++笔试强训
分享给大家一句我很喜欢的话:夜色难免微凉,前方必有曙光 🌞。
💦 🔥
选择题 💦 第一题 十进制变量i的值为100,那么八进制的变量i的值为()
A 146 B 148 C 144 D 142
这道题非常简单,就是十进制转八进制,和十进制转二进制一样
这道题的答案是C
💦 第二题 执行下面语句后的输出为
int I=1; if(I<=0) printf("****\n") ; else printf("%%%%\n"); 1 2 3 4 5 A %% B **** C 有语法错,不能正确执行 D %%%%
这道题一看就知道是打印else的结果,但是这里printf打印的内容有点特殊
如果我们需要输出%,则需要写入双%
这道题的答案是A
💦 第三题 对于下面的C语言声明描述正确的一项是()
char (*p)[16] 1 A p是长度为16的字符指针数组 B p是包含16个字符的字符串 C p是指向长度为16的字符数组的指针 D p是长度为16的字符数组
这道题主要是考验指针和数组的理解
这道题的答案是C
💦 第四题 数组a的定义语句为“float a[3][4];”,下列()是对数组元素不正确的引用方法
A a[i][j] B *(a[i]+j) C ((a+i)+j) D (a+i4+j)
这道题主要是考验数组转换型式
这里我们用一维数组来举例
A 是对数组最直接的访问方式
B 把二维数组可以理解成a中的每个元素都是一个一维数组
C 实际上和B是等价的,一样的转换方式
D a表示数组首元素地址,i*4的应该是想拿第i行的,但实际含义说不通,并不是这样取的
这道题的答案是D
💦 第五题 下面程序的输出结果是__________。
#include < iostream.h> #define SQR(A) A*A void main() { int x=6,y=3,z=2; x/=SQR(y+z)/SQR(y+z); cout< < x< < endl; }
1 2 3 4 5 6 7 8 A 5 B 6 C 1 D 0
我们的程序如果想运行起来会经历 预处理 编译 汇编 链接
这道题需要注意的是不要用我们常用的数学逻辑来分析,我们需要全部展开才能计算,不能直接进行计算
这道题的答案是D
💦 第六题 当n=5时,下列函数的返回值是()
int foo(int n){ if(n<2){ return n; } else return 2*foo(n-1)+foo(n-2); } 1 2 3 4 5 6 7 A 5 B 11 C 29 D 10
这道题是考察递归算法的理解,我们需要逐步拆解分析,题目并不难只需要耐心分析即可
这道题的答案是C
💦 第七题 以下对C语言的”指针“描述不正确的是()
A 32位系统下任何类型指针的长度都是4个字节 B 指针的数据类型声明的是指针实际指向内容的数据类型 C 野指针是指向未分配或者已释放的内存地址 D 当使用free释放掉一个指针内容后,指针变量的值被置为NULL
这道题在笔试强训第一天的时候有遇到过
A 指针的长度指的是指针占的大小,32位是4字节,如果是64位就是8字节
B 假设int* p ;p将来指向int类型的空间,这句话就是这个含义
C 野指针即你指向的空间的值你不能用,C没有问题
D free只是将指向的内存空间释放掉,不会将内存置为空
这道题的正确答案是D
💦 第八题 数组定义为”int a[4][5];”, 引用”*(a+1)+2″表示()(从第0行开始)
A a[1][0]+2 B a数组第1行第2列元素的地址 C a[0][1]+2 D a数组第1行第2列元素的值
这里和上面的第四题类似
实际上就是一维数组的第二个值
这道题的正确答案是B
💦 第九题 有一个如下的结构体:
struct A{ long a1; short a2; int a3; int *a4; }; 1 2 3 4 5 6、