标签:笔试题目
时间:2018-04-06
【yjbys.com - 笔试题目】
预处理器(preprocessor)
1 . 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)
#define seconds_per_year (60 * 60 * 24 * 365)ul
我在这想看到几件事情:
1) #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)
2)懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的。
3) 意识到这个表达式将使一个16位机的整型数溢出-因此要用到长整型符号l,告诉编译器这个常数是的长整型数。
4) 如果你在你的表达式中用到ul(表示无符号长整型),那么你有了一个好的起点。记住,第一印象很重要。
2 . 写一个"标准"宏min ,这个宏输入两个参数并返回较小的一个。
#define min(a,b) ((a) <= (b) ? (a) : (b))
这个测试是为下面的目的而设的:
1) 标识#define在宏中应用的基本知识。这是很重要的。因为在 嵌入(inline)操作符 变为标准c的一部分之前,宏是方便产生嵌入代码的唯一方法,对于嵌入式系统来说,为了能达到要求的性能,嵌入代码经常是必须的方法。
2)三重条件操作符的知识。这个操作符存在c语言中的原因是它使得编译器能产生比if-then-else更优化的代码,了解这个用法是很重要的。
3) 懂得在宏中小心地把参数用括号括起来
4) 我也用这个问题开始讨论宏的副作用,例如:当你写下面的代码时会发生什么事?
least = min(*p++, b);
3. 预处理器标识#error的目的是什么?
如果你不知道答案,请看参考文献1。这问题对区分一个正常的伙计和一个书呆子是很有用的。只有书呆子才会读c语言课本的附录去找出象这种问题的答案。当然如果你不是在找一个书呆子,那么应试者最好希望自己不要知道答案。
死循环(infinite loops)
4. 嵌入式系统中经常要用到无限循环,你怎么样用c编写死循环呢?
这个问题用几个解决方案。我首选的方案是:
while(1)
{
}
一些程序员更喜欢如下方案:
for(;;)
{
}
这个实现方式让我为难,因为这个语法没有确切表达到底怎么回事。如果一个应试者给出这个作为方案,我将用这个作为一个机会去探究他们这样做的基本原理。如果他们的基本答案是:"我被教着这样做,但从没有想到过为什么。"这会给我留下一个坏印象。
第三个方案是用 goto
loop:
...
goto loop;
应试者如给出上面的方案,这说明或者他是一个汇编语言程序员(这也许是好事)或者他是一个想进入新领域的basic/fortran程序员。
数据声明(data declarations)
5. 用变量a给出下面的定义
a) 一个整型数(an integer)
b)一个指向整型数的指针( a pointer to an integer)
c)一个指向指针的的指针,它指向的指针是指向一个整型数( a pointer to a pointer to an intege)r
d)一个有10个整型数的数组( an array of 10 integers)
标签:笔试题目
时间:2018-04-04
【yjbys.com - 笔试题目】
一、判断
1、有数组定义inta[2][2]={{1},{2,3}};则a[0][1]的值为0。()
2、int(*ptr)(),则ptr是一维数组的名字。()
3、指针在任何情况下都可进行>,=,<=,==运算。()
4、switch(c)语句中c可以是int,long,char,float,unsignedint类型。()
5、#defineprint(x)printf("theno,"#x",is")
二、填空
1、在windows下,写出运行结果,每空2分,共10分。
charstr[]="Hello";
char*p=str;
intn=10;
sizeof(str)=()
sizeof(p)=()
sizeof(n)=()
voidfunc(charstr[100])
{}
sizeof(str)=()
2、voidsetmemory(char**p,intnum)
{*p=(char*)malloc(num);}
voidtest(void)
{char*str=NULL;
getmemory(&str,100);
strcpy(str,"hello");
printf(str);
}
运行
test函数有什么结果?()
标签:笔试题目
时间:2018-03-30
【yjbys.com - 笔试题目】
1. 输入一个链表的头结点,从尾到头反过来输出每个结点的值。链表结点定义如下:
struct ListNode
{
int m_nKey;
ListNode* m_pNext;
};
A: 递归方法逆序输出,栈方法逆序输出。 (任意实现一种既可)
void PrintListUsingRecursicve(pListNode head)
{
if(head!=NULL)
{
PrintListUsingRecursicve(head->m_pNext);
printf("%d/n",head->m_nKey);
}
}
void PrintListUsingStack(pListNode head)
{
Stack s;
s.top=0;
pListNode p=head;
do{
push(&s,p->m_nKey);
p=p->m_pNext;
}while(p!=NULL);
while(!IsEmpty(&s))
{
printf("%d/n",pop(&s));
}
}
2. 二元树的深度
题目:输入一棵二元树的根结点,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
标签:笔试题目
时间:2018-03-28
【yjbys.com - 笔试题目】
1、局部变量能否和全局变量重名?
答:能,局部会屏蔽全局。要用全局变量,需要使用 ":: "
局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。
2、如何引用一个已经定义过的全局变量?
答:extern
可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个变写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。
3、全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?
答:可以,在不同的C文件中以static形式来声明同名全局变量。
可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错
4、语句for( ;1 ;)有什么问题?它是什么意思?
答:和while(1)相同。
5、do……while和while……do有什么区别?
答:前一个循环一遍再判断,后一个判断以后再循环
6、请写出下列代码的输出内容
标签:笔试题目
时间:2018-03-13
【yjbys.com - 笔试题目】
想考计算机C语言笔试的同学要注意了,接下来是yjbys小编为大家精心搜集的计算机C语言笔试题目及答案,供大家参考借鉴。
一、 填空题(本大题共25小题,每小题2分,共50分)
1.以下C语言提供的合法的数据类型说明关键字为 d 。
A. Float B. Signed C .interger D. char
2.C语言中的标识符只能由字母、数字、下画线组成,且第一个字符 c 。
A必须为字母B必须为下画线C必须为字母或下画线D可以是字母、数字或下画线中任何一种。
3.设有以下语句:
char a=3,b=6,c;
c=a^b<<2;
则 c 的二进制值是 a 。
A. 00011011
B. 00010100
C. 00011100
D. 00011000
4.假定w,x,y,z,m均为int型变量,有如下程序段
w=1; x=2; y=3; z=4;
m=(w>x)?w:x;
m=(m
m=(m
则程序运行后,m的值是 d 。
A 4 B 3 C 1 D 2
5.若执行以下程序时从键盘上输入9,则输出结果是 b 。
main()
{
int n;
scanf(“%d”,&n);
if(n++<10)
printf(“%d”\n,n--)
标签:笔试题目
时间:2018-03-07
【yjbys.com - 笔试题目】
一、判断题(对的写T,错的写F并说明原因,每小题4分,共20分)
1、有数组定义inta[2][2]={{1},{2,3}};则a[0][1]的值为0。()
2、int(*ptr)(),则ptr是一维数组的名字。()
3、指针在任何情况下都可进行>,=,<=,==运算。()
4、switch(c)语句中c可以是int,long,char,float,unsignedint类型。()
5、#defineprint(x)printf("theno,"#x",is")
二、填空题(共30分)
1、在windows下,写出运行结果,每空2分,共10分。
charstr[]="Hello";
char*p=str;
intn=10;
sizeof(str)=()
sizeof(p)=()
sizeof(n)=()
voidfunc(charstr[100])
{}
sizeof(str)=()
2、voidsetmemory(char**p,intnum)
{*p=(char*)malloc(num);}
voidtest(void)
{char*str=NULL;
getmemory(&str,100);
strcpy(str,"hello");
标签:笔试题目
时间:2018-01-28
【yjbys.com - 笔试题目】
C语言求职笔试题:
1、在64位高档机中,long占字节数为
a、4 b、8 c、32 d、 64 b
2、函数中局部变量生成于__中
a、堆 b、栈 c、静态存储区 d、代码存储区 c
3、不正确的附值或赋初值方式为__
a、char str[]="string";
b、char str[10]; str="string";
c、char *p="string"; c
d、char *p; p="string";
4、对于以下的变量定义,表达式___是正确的
struct node {
char s[10];
int k;
} p[4];
a、p->k=2;
b、p[0].s="abc";
c、p[0]->k=2;
d、p->s='a';
5、下面程序的输出__
#pragma pack(1) //如果#pragma pack(4)
void main()
{
struct test {
char c;
short s1;
short s2;
int i;
};
cout<
}
a、9 b、10 c、12 d、16
6、下面的程序段:
标签:笔试题目
时间:2017-12-27
【yjbys.com - 笔试题目】
1、C语言程序的基本单位是____ A) 程序行 B) 语句 C) 函数 D) 字符、C、1
2、C语言程序的三种基本结构是____ A、顺序结构,选择结构,循环结构 B、递归结构,循环结构,转移结构 C、嵌套结构,递归结构,顺序结构 D、循环结构,转移结构,顺序结构、A、1
3、C语言规定,程序中各函数之间 A) 既允许直接递归调用也允许间接递归调用 B) 不允许直接递归调用也不允许间接递归调用 C) 允许直接递归调用不允许间接递归调用 D) 不允许直接递归调用允许间接递归调用、A、1
4、C语言中可处理的文件类型是( ) A) 文本文件和数据文件 B)文本文件和二进制文件 C) 数据文件和二进制文件 D)数据代码文件、B、1
5、C语言可执行程序的开始执行点是( ) A) 程序中第一条可执行语句 B) 程序中第一个函数 C) 程序中的main函数 D) 包含文件中的第一个函数、C、1
6、C语言提供的合法的数据类型关键字是 A)double B) short C) integer D) char、B、1
7、C语言中,运算对象必须是整型数的运算符是 A) % B) \ C) %和\ D) * *、A、1
8、C语言中函数返回值的类型是由( )决定。 A) return语句中的表达式类型 B) 调用函数的主调函数类型 C) 调用函数时临时 D) 定义函数时所指定的函数类型、D、1
标签:笔试题目
时间:2017-12-27
【yjbys.com - 笔试题目】
1、编写一个 C 函数,该函数在一个字符串中找到可能的最长的子字符串,且该字符串是由同一字符组成的。
char * search(char *cpSource, char ch)
{
char *cpTemp=NULL, *cpDest=NULL;
int iTemp, iCount=0;
while(*cpSource)
{
if(*cpSource == ch)
{
iTemp = 0;
cpTemp = cpSource;
while(*cpSource == ch)
++iTemp, ++cpSource;
if(iTemp > iCount)
iCount = iTemp, cpDest = cpTemp;
if(!*cpSource)
break;
}
++cpSource;
}
return cpDest;
}
2、请编写一个 C 函数,该函数在给定的内存区域搜索给定的字符,并返回该字符所在位置索引值。
int search(char *cpSource, int n, char ch)
{
int i;
for(i=0; i return i;
}
一个单向链表,不知道头节点,一个指针指向其中的一个节点,问如何删除这个指针指向的节点?
将这个指针指向的next节点值copy到本节点,将next指向next->next,并随后删除原next指向的节点。
标签:笔试题目
时间:2017-12-26
【yjbys.com - 笔试题目】
一、 想说一说关于集中数据类型的sizeof问题,这题出现率40%
sizeof就是求在内存总占多少字节的问题,最基本的char 1字节 short 2字节 int 4字节
任何的指针都是4字节 sizeof(数组名)=数组占的大小(这里必须注意虽然数组名可作为只想数组首地址的指针,但是sizeof(数组名)求得的不是指针的大小,而是数组大小)
还有就是sizeof(结构体) sizeof(联合体)
举两个例子 struct stu {
Char a;
Int b;
Char c;
};
struct teacher {
Char a;
Char c;
Int b;
};
Sizeof (stu) =12 ;内存中这样存储 char 空空空 int char 空空空
内存4字节对其问题
Sizeof (teacher) =8 ;内存中这样存储 char char空空 int
关于联合体
Union std{
Char a[10];
Int b[3];
}
Sizeof(std)=12; 联合体公用内存,取其中所占内存最大的元素为联合体所占内存
以下为Windows NT下的32位C++程序,请计算sizeof的值
char str[] = “Hello” ;