【C语言基础】关于电子科技大学的复试c语言试题
作为一个考研失败的菜鸟,本来不想准备电子科技大学的非全复试的,直接去找工作,想想有机会还是争取一下下,总比流浪去了个普通的掉渣的学校强一些,因此趁着还有时间赶紧准备一下下复试C语言的东西,黑电的C语言确实弄得很骚,不仔细分析很难作对。1、请简述C语言的隐式类型转换发生的四种情况,并说明每种情况如何转换。(注:这里面还有个小题,float如何四舍五入转化成int)答:1、算术运算式中,低类型...
·
作为一个考研失败的菜鸟,本来不想准备电子科技大学的非全复试的,直接去找工作,想想有机会还是争取一下下,总比流浪去了个普通的掉渣的学校强一些,因此趁着还有时间赶紧准备一下下复试C语言的东西,黑电的C语言确实弄得很骚,不仔细分析很难作对。
1、请简述C语言的隐式类型转换发生的四种情况,并说明每种情况如何转换。(注:这里面还有个小题,float如何四舍五入转化成int)
答:1、算术运算式中,低类型能够转换为高类型。
2、赋值表达式中,右边表达式的值自动隐式转换为左边变量的类型,并赋值给它。
3、函数调用中参数传递时,系统隐式地将实参转换为形参的类型后,赋给形参。
4、函数有返回值时,系统将隐式地将返回表达式类型转换为返回值类型,赋给调用函数。
2、从C语言执行效率方便,简述下C语言除了指针、宏函数、位运算还采取了哪些措施提高执行效率。
答:
1、循环嵌套中将较长循环设为内存循环,较短循环设为外置循环,以减少cpu跨切循环层的次数,提高程序的运行效率。
2、让用户可以直接操作进程虚拟地址,给用户提供了高效的内存拷贝函数,变量类型是弱类型,可以各种强制转换。
3、API,可以调用系统API,接近底层
4、嵌入汇编语言,更贴近极限
5、使用寄存器变量,提高存取速度。
6、使用条件编译,可减少被编译的语句,从而减少目标程序的长度,减少运行时间,当条件编译段比较多时,目标程序长度可大大减少,这样可以提升程序执行效率(谭浩强原话)。
3、问数组越界会产生什么后果?
数组越界,将会把数据存放到一个未知的区域,而这个未知的区域如果恰好是系统很重要的位置,可能了就会修改系统程序导致系统出错甚至是崩溃,如果这个位置不是和系统有关,可能结果并不明显或者没有产生影响,但为了系统安全需要进行数组下标越界检查。
几个c语言得代码填空题目:
int main() {
int a[] = {1,7,12,15};
//p1指向数组a的首地址
//p2指向p1 ,然后p1向后移动
int *p1 = a, *p2 = p1++;
printf("%d %d\n",*p1, *p2);
*p1 += *p2++;//a = {1,8,12,15}
//先执行*p1+=*p2; 7 + 1
//然后p2向后移动
printf("%d %d",*p1, *p2);
return 0;
}
# 题2 用Eratasthene筛选法求200以内的素数,修改代码使得效率变高
解题理论依据就是先将2的倍数筛去,在将3的倍数删去,再将5的倍数删去,。。。。以空间换时间的做法
#include<stdio.h>
#include<math.h>
int main() {
int prime[201] = {0};
int d;
for (d = 2; d <= sqrt(200);d++) {
for (int i = 2*d; i <= 200; i++) {
if (i % d == 0) {
prime[i] = 1;
}
}
}
int k = 2;
for (;k <= 200; k++) {
if (prime[k] == 0) {
printf("%4d",k);
}
}
return 0;
}
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)