深圳做网站的公司那个好,中交建设集团 网站,网站建设及安全制度,机票小代理做网站文章目录 一、选择题1-5题6-10题 二、编程题题目一题目二 一、选择题
1-5题 x1#xff0c;先x#xff0c;再x–#xff0c;while判断永远为真#xff0c;故死循环 选D。 sizeof会计算\0,strlen不包括\0,并且strlen只计算\0之前的。 所以sizeof是10#xff0c;strken是4
… 文章目录 一、选择题1-5题6-10题 二、编程题题目一题目二 一、选择题
1-5题 x1先x再x–while判断永远为真故死循环 选D。 sizeof会计算\0,strlen不包括\0,并且strlen只计算\0之前的。 所以sizeof是10strken是4
故选A。 p12指向cp21指向B把BCD拼接到cd后面就是cdBCD然后str2是z把cdBCD拷贝至以z开头的后面就是xycdBCD。
故选D。 p是一个数组指针指向一个存3个int类型元素的数组。 把数组名赋值给p 数组省略了行只有三列那就会根据初始化的数据自动推断有几列如下 10 20 30 40 50 60 p[0][0]就是10*(p[0]1)相当于p[0][1]是20(*p)[2]相当于p[0][2],就是30。 故选B。 一眼选B没啥解释的。 6-10题 fun函数就是比较字符大小返回ASCII码较小的那个fun(fun(1 , 1) , fun(1 , 2))相当于fun11所以会输出字符1 故选D。 int* pa[5]pa是一个指针数组该数组有五个元素都是int类型的指针。
故选A。 结构题内存对齐的题写过好多了不细细说明了可以看一下笔试强训前面的题或者去学一学该处考的知识点。
C。 基础a[i]相当于*(ai),a[i][j]相当于*(*(ai)j),a[i][j][k]相当于*(*(*(ai)j)k). 故a[i][j][k][l]相当于*(*(*(*(ai)j)k)l) 故选B。 在C程序的编译和链接过程中可以发现被调用的函数未定义的阶段是链接阶段。
编辑阶段主要是程序员编写和修改代码的过程不涉及任何编译或链接操作因此无法在这个阶段发现函数未定义的问题。
预处理阶段主要处理宏定义、条件编译指令、文件包含等预处理指令它会对源代码进行文本替换等操作但同样不会检查函数是否已定义。
编译阶段会将预处理后的源代码转换成汇编语言然后再转换成目标代码通常是机器码。在编译阶段编译器会检查每个文件中的语法错误和语义错误比如变量声明类型错误等但它只关注当前文件内的定义和引用。如果某个函数在当前文件中被调用但没有定义且没有提供函数声明除非使用了隐式声明但现代C语言编程通常不推荐编译器可能会报错或发出警告但通常这些警告/错误只涉及当前文件并不会检查该函数是否在项目的其他部分被定义。
链接阶段是将多个编译后生成的目标文件.o或.obj文件以及所需的库文件合并成一个可执行文件的过程。在这个阶段链接器会检查所有被调用的函数和变量是否都已经有了定义。如果链接器发现某个函数被调用了但没有在任何地方定义即没有在任何目标文件或库中找到该函数的实现它会报错指出存在未解决的外部引用。因此链接阶段是发现被调用的函数未定义的阶段。 二、编程题
题目一
题目链接
统计回文 提交代码
#include algorithm
#include iostream
#includestring
using namespace std;bool isSymmetry(string str) {string str1str;reverse(str.begin(),str.end());return str1str? true:false;
}
int main() {int count0;string str1,str2;getline(cin,str1);getline(cin,str2);for(int i0;istr1.size();i){string strstr1;str.insert(i,str2);if(isSymmetry(str)) count;}coutcount;}
// 64 位输出请用 printf(%lld)运行结果 题目二
题目链接 连续最大和
提交代码
#include iostream
#includevector
using namespace std;int GetMax(int a, int b) { //得到两个数的最大值return (a) (b) ? (a) : (b);
}
int main() {int size;cin size;vectorint nums(size);for (size_t i 0; i size; i)cin nums[i];int Sum nums[0]; //临时最大值int MAX nums[0]; //比较之后的最大值for (int i 1; i size; i) {Sum GetMax(Sum nums[i], nums[i]); //状态方程if (Sum MAX)MAX Sum;}cout MAX endl;return 0;
}
// 64 位输出请用 printf(%lld)运行结果