天嵌 ARM开发社区

 找回密码
 注册
查看: 2463|回复: 1

C语言经典笔试题

[复制链接]
非也 发表于 2014-7-18 10:37:07 | 显示全部楼层 |阅读模式
应聘嵌入式工程师,C语言是笔试中必考的部分,有的甚至会占试题的80%以上。现将部分试题与大家分,希望对大家有所帮助。


1
、请填写bool , float, 指针变量零值比较的if语句。
提示:这里零值可以是0,0.0 , FALSE 或者空指针
。例如int 变量n 零值比较的if 语句为:
if ( n == 0 )
if ( n != 0 )
以此类推。
1)请写出bool flag 零值比较的if 语句:
2)请写出float x 零值比较的if 语句:
3)请写出char *p 零值比较的if 语句
2、以下为Linux下的32 C 程序,请计算sizeof 的值。
1void Func ( char str[100])
{
…… ;
}
请计算sizeof( str ) =
2void * p = malloc( 100 );
3、用变量a 给出下面的定义
e)
一个有10个指针的数组,该指针是指向一个整型数的;
f)
一个指向有10个整型数数组的指针;
g)
一个指向函数的指针,该函数有一个整型参数并返回一个整型数;
h)
一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数;
数组、指针、内存、结构体常考点

5.void getmemory(char *p)
{
p=(char *) malloc(100);
strcpy(p,“hello world”);
}
int main( )
{
char *str=NULL;
getmemory(str);
printf(“%s/n”,str);
free(str);
return 0;
}
会出现什么问题?
4(void *)ptr (*(void**))ptr 的结果是否相同?其中ptr为同一个指针。
5、要对绝对地址0x100000赋值,我们可以用
(unsigned int*)0x100000 = 1234;
那么要是想让程序跳转到绝对地址是0x100000去执行,应该怎么做?
6#include<stdio.h>
char *fun(void)
{
char p[]="ni hao!";
return p;
}
int main()
{
char *pt=NULL;
pt = fun();
printf(pt);
}
运行时有什么结果?
7#include <stdio.h>
#include <string.h>
void fun(char **p, int num)
{
*p = (char *)malloc(num);
}
int main()
{
char *str = NULL;
fun(&str, 100);
strcpy(str, "hello world!\n");
printf(str);
}
运行结果怎样? 有什么问题?
8、关键字volatile有什么含意? 并给出三个不同的例子。

ahen1984 发表于 2014-12-10 13:12:18 | 显示全部楼层
版主,给个答案啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-5-17 17:51 , Processed in 1.031250 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表