1.下面的代码输出什么?为什么?

void foo(void)

{

unsigned int a = 6;

int b = -20;

(a+b > 6)?puts(“>6”):puts(“<=6”);

}

答案:输出值”>6”

解析:a+b在这里做了隐式的转换,把int转化为unsigned int.编译器会把b当做一个很大的正数.

2.下面的代码有什么问题,为什么?

void foo(void)

{

char string[10], str1[10];

int i;

for (i = 0; i < 10; i++) {

str1[i] = 'a';

}

strcpy(string, str1);

printf("%s\n", string);

}

答案:运行到strcpy的时候可能会产生内存异常

解析:吟哦日str1没有\0结束标志,所以数组后面存储的可能不是\0,而是随机数据,对于strcpy和printf这种需要\0判断字符串结束的函数来说,出错是必然的了.

道理虽是如此,但是这段代码我在windows和Linux下测试的结果不一样,Linux下可以正常输出10个a,windows下会出错,使用的都是gcc的编译器.

3.下面的代码,i和j的值分别是多少?为什么?

static int j;

int k = 0;

void fun1(void)

{

static int i = 0;

i++;

}

void fun2(void)

{

j = 0;

j++;

}

int main(void)

{

for (k = 0; k < 10; k++) {

fun1();

fun2();

}

return 0;

}

答案:i=10,j=1

解析:由于被static修饰的局部变量存储在静态区内,所以即使这个函数运行结束,这个静态变量还是不会被销毁,函数下次运行时还能使用这个值,静态变量只被初始化一次,函数下次运行会直接跳过初始化,进行++操作.而j每次都被赋0.

4.下面的代码里,假设在32位系统下,各sizeof计算得结果分别是多少?

int *p = NULL;

sizeof(p)的值是

sizeof(*p)的值是

int a[100];

sizeof(a)的值是

sizeof(a[100])的值是

sizeof(&a)的值是

sizeof(&a[0])的值是

int b[100];

void fun(int b[100])

{

sizeof(b);

}

sizeof(b)的值是

答案:4,4,400,4,4,4,4

解析:没什么好说的吧

5.下面代码的结果是多少?为什么?

int main(void)

{

char a[1000];

int i;

for (i = 0; i < 1000; i++)

a[i] = -1-i;

printf("%d", strlen(a));

return 0;

}

答案:255

解析:基本上算是个”轮回”的问题,strlen遇到a[i]=0的时候就终止了,现在的问题变成循环多少次a[i]=0了,那么就使用补码来计算到底多少次之后char会溢出为0,我的回答是一个轮回,也就是256次,那么strlen不包含0的位置,那么长度就是255了.

C语言基础笔试题一的更多相关文章

  1. Android开发面试经——3.常见Java基础笔试题

      Android开发(29)  版权声明:本文为寻梦-finddreams原创文章,请关注:http://blog.csdn.net/finddreams 关注finddreams博客:http:/ ...

  2. 非常全面的java基础笔试题

    下面是java基础笔试题,当时我去笔试,做了1个小时(80道选择题,后面的简答题就没时间做了),结果很吓人,太挫了,最后被面试官忽悠去培训去了,呵呵.我偷偷把面试题弄了下来,用来学习吧,也希望能对你们 ...

  3. Android开发面试经——2.常见Android基础笔试题

     标签: androidAndroid基础Android面试题Android笔试题 2015-03-12 15:04 3361人阅读 评论(3) 收藏 举报  分类: Android开发(29)  版 ...

  4. 【转载】经典10道c/c++语言经典笔试题(含全部所有参考答案)

    经典10道c/c++语言经典笔试题(含全部所有参考答案) 1. 下面这段代码的输出是多少(在32位机上). char *p; char *q[20]; char *m[20][20]; int (*n ...

  5. Java基础&笔试题

    这些题目是近期我参加过的笔试题和一些我在网上选的部分题,在这里做笔记,认真去学习,更好的应对后面的招聘.有错误欢迎指出. 一.Java基础部分 1.指针在任何情况下都可进行>,<,> ...

  6. Android采访开发——2.通用Android基础笔试题

    注意finddreams博客: http://blog.csdn.net/finddreams/article/details/44219231 正值跳槽的热季.整理一下Android面试中最常考的笔 ...

  7. SQL基础&笔试题

    仅以此篇博客纪念让我羞愧的一次笔试,作为对数据库基础的恶补. 一.SQL的基本概念: SQL是集数据定义语言DDL,数据操纵语言DML,数据控制语言DCL的功能于一体,可以独立完成数据库生命周期的全部 ...

  8. iOS 基础笔试题

    参考:https://www.jianshu.com/p/1d3496bc5bda 1.#import 跟#include.@class有什么区别?#import<> 跟 #import& ...

  9. 常见计算机基础笔试题总结quickstart

    [本文链接] 1. 以下是一颗平衡二叉树,请画出插入键值3以后的这颗平衡二叉树. 分析:考察平衡二叉树的基本操作,插入3变成不平衡,需要节点5右旋一次,节点2左旋一次.. 2. 表达式X=A+(B*( ...

随机推荐

  1. 解决vue不相关组件之间的数据传递----vuex的学习笔记,解决报错this.$store.commit is not a function

    Vue的项目中,如果项目简单, 父子组件之间的数据传递可以使用  props 或者 $emit 等方式 进行传递 但是如果是大中型项目中,很多时候都需要在不相关的平行组件之间传递数据,并且很多数据需要 ...

  2. jquery中 dom对象与jQuery对象相互转换

    var jq = $(dom对象);//额 再补充点吧好记. $是jquery的别名.这一句等价于 var jq = jQuery(dom对象); 反之. dom对象 = jq[0]; //不写那么长 ...

  3. linux 图解常用的云运维监控工具

    随着新技术的不断发展,云服务已经互联网企业的必须,但是长期以来会存在传统物理主机和云主机.私有云和公有云并存的状态.此外,互联网企业的发展速度非常快,小米.滴滴出行等很多企业都是在短短几年内发展起来的 ...

  4. Cheatsheet: 2018 03.01 ~ 2018 03.31

    Docker A Developer's Guide to Docker: A Gentle Introduction The Advantages of Using Kubernetes and D ...

  5. Vim 技巧

    :r 文件名 导入另一文件到当前文件中 :! 命令 可以不退出当前编辑的文本而能执行系统的命令 自定义快捷键 注意这里的^P这个是ctrl + V + P :map ^P I//<ESC> ...

  6. 撩课-Web大前端每天5道面试题-Day4

    1. 如何实现瀑布流? 瀑布流布局的原理: ) 瀑布流布局要求要进行布置的元素等宽, 然后计算元素的宽度, 与浏览器宽度之比,得到需要布置的列数; ) 创建一个数组,长度为列数, 里面的值为已布置元素 ...

  7. 撩课-Java每天10道面试题第2天

    11.面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面, 以便更充分地注意与当前目标有关的方面. 抽象并不打算了解全部问题,而只是选择其中的一部分, 暂时不用部分细 ...

  8. 项目中遇到的问题——jsp:include

    昨晚记错了,项目中用的是这个<jsp:attribute>,不过没关系,都差不多!原理是传参数 具体用法: 假设有两个tag文件  aaa 和 bbb aaa有两个属性:name  age ...

  9. php之连接mssql(sql server)新手教程

    ps:网上搜了很多教程,讲的都很好,就是都有点漏的地方,花了一天时间查缺补漏终于弄好了(;´༎ຶД༎ຶ`),希望我的教程能帮到新手,还有写博客的时候因为不小心按错一个键,导致重写了,博客园这个编辑器真 ...

  10. Java内存区域与虚拟机类加载机制

    一.Java运行时数据区域 1.程序计数器 “线程私有”的内存,是一个较小的内存空间,它可以看做当前线程所执行的字节码的行号指示器.Java虚拟机规范中唯一一个没有OutOfMemoryError情况 ...