C语言基础笔试题一
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语言基础笔试题一的更多相关文章
- Android开发面试经——3.常见Java基础笔试题
Android开发(29) 版权声明:本文为寻梦-finddreams原创文章,请关注:http://blog.csdn.net/finddreams 关注finddreams博客:http:/ ...
- 非常全面的java基础笔试题
下面是java基础笔试题,当时我去笔试,做了1个小时(80道选择题,后面的简答题就没时间做了),结果很吓人,太挫了,最后被面试官忽悠去培训去了,呵呵.我偷偷把面试题弄了下来,用来学习吧,也希望能对你们 ...
- Android开发面试经——2.常见Android基础笔试题
标签: androidAndroid基础Android面试题Android笔试题 2015-03-12 15:04 3361人阅读 评论(3) 收藏 举报 分类: Android开发(29) 版 ...
- 【转载】经典10道c/c++语言经典笔试题(含全部所有参考答案)
经典10道c/c++语言经典笔试题(含全部所有参考答案) 1. 下面这段代码的输出是多少(在32位机上). char *p; char *q[20]; char *m[20][20]; int (*n ...
- Java基础&笔试题
这些题目是近期我参加过的笔试题和一些我在网上选的部分题,在这里做笔记,认真去学习,更好的应对后面的招聘.有错误欢迎指出. 一.Java基础部分 1.指针在任何情况下都可进行>,<,> ...
- Android采访开发——2.通用Android基础笔试题
注意finddreams博客: http://blog.csdn.net/finddreams/article/details/44219231 正值跳槽的热季.整理一下Android面试中最常考的笔 ...
- SQL基础&笔试题
仅以此篇博客纪念让我羞愧的一次笔试,作为对数据库基础的恶补. 一.SQL的基本概念: SQL是集数据定义语言DDL,数据操纵语言DML,数据控制语言DCL的功能于一体,可以独立完成数据库生命周期的全部 ...
- iOS 基础笔试题
参考:https://www.jianshu.com/p/1d3496bc5bda 1.#import 跟#include.@class有什么区别?#import<> 跟 #import& ...
- 常见计算机基础笔试题总结quickstart
[本文链接] 1. 以下是一颗平衡二叉树,请画出插入键值3以后的这颗平衡二叉树. 分析:考察平衡二叉树的基本操作,插入3变成不平衡,需要节点5右旋一次,节点2左旋一次.. 2. 表达式X=A+(B*( ...
随机推荐
- imx6 Android6.0.1 init.rc解析
1. 概述 1.1 概述 之前分析过android5的init.rc,不过还是不够仔细,现在来看看android6的,多的就不写了,只写关键点 忘记一些基本概念可以先看看之前的笔记: Android5 ...
- jquery 选择唯一值 选择器“”非“用法
$(document).ready(function () { $("#addwork").hide(); $(".xi").click(function(){ ...
- [转]SAP模块一句话入门
本文转自:http://www.cnblogs.com/mybi/archive/2010/12/20/1911154.html SAP一句话入门:Financial & Controllin ...
- Java - 谨慎实现Comparable接口
类实现了Comparable接口就表明类的实例本身具有内在的排序关系(natural ordering). 因此,该类可以与很多泛型算法和集合实现进行协作. 而我们之需要实现Comparable接口唯 ...
- spring mongodb分页,动态条件、字段查询
使用MongRepository public interface VideoRepository extends MongoRepository<Video, String> { Vid ...
- [javaSE] 面向对象(Object类toString)
每一个对象,都有一个在内存中的地址哈希值,这个哈希值是十六进制的 调用Object对象的hashCode()方法,返回这个对象的哈希值 调用Integer.toHexString()方法,转换十六进制 ...
- 一:Bootstrap-css样式
页面大块布局: div.container 栅格系统: 一行分成 12 列 div.row div.col-md-12 div.col-xs-12 <div class="row&qu ...
- org.apache.commons.lang.StringUtils
org.apache.commons.lang.StringUtils 作为jdk中lang包的补充 检查CharSequence是否为空,null或者空格 CharSequence (CharBuf ...
- 撩课-Web架构师养成系列(第二篇)-async
前言 Web架构师养成系列共15篇,每周更新一篇,主要分享.探讨目前大前端领域(前端.后端.移动端)企业中正在用的各种成熟的.新的技术.部分文章也会分析一些框架的底层实现,让我们做到知其然知其所以然. ...
- K:双栈法求算术表达式的值
相关介绍: 该算法用于求得一个字符串形式的表达式的结果.例如,计算1+1+(3-1)*3-(21-20)/2所得的表达式的值,该算法利用了两个栈来计算表达式的值,为此,称为双栈法,其实现简单且易于理 ...