c程序员笔试题
程序员是从事程序开发、维护的专业人员。一般将程序员分为程序设计人员和程序编码人员,但两者的界限并不非常清楚,特别是在中国。软件从业人员分为初级程序员、高级程序员、系统分析员,系统架构师,测试工程师五大类。今天小编为大家精心准备的是:c程序员面试相关笔试题。具体内容如下,欢迎参考阅读:
C/C++笔试测试题
一、 填空题(20分)
1. 已知下列变量,请计算该变量大小:
short (*a)[100];
short *b[100];
那么 sizeof(a[0])等于___, sizeof(b[0])等于___
2. char *b = “abcd”;
那么sizeof(b) 等于___, strlen(b) 等于____
3. short a[5][3];
从本质上看,a是由____个元素组成的一维数组,这个一维数组的每个元素本身又是由___个short类型整数组成的一维数组;sizeof(a[0])等于_____
4. 表达式 1<<1 + 1的值等于____. 表达式 1 < 2 | 4的值等于_____.
5. define A(x) x+x; int i = 5*A(5); i =______
二、 简答题(25分)
1、static有什么用途?(请至少说明两种)
2、关键字const是什么含意?
3、对于一个频繁使用的短小函数,在C语言中应用什么实现,在C++中应用什么实现?
4、局部变量能否和全局变量重名?
5、头文件中的 ifndef/define/endif 干什么用?
6、include
7、简单描述一下C和C++有什么不同?
8、引用与指针有什么区别?
三、 程序分析(25分)
1、请写出下列代码的输出内容
include "stdio.h"
main()
{
int a,b,c,d;
a=10;
b=a++;
c=++a;
d=10*a++;
printf("b,c,d:%d,%d,%d",b,c,d);
return 0;
}
2、程序填空
函数long fun2(char*str)的功能是:自左至右顺序取出非空字符串str中的数字字符形成一个十进制整数(最多8位)。
例如,若字符串str的值为"f3g8d5.ji2e3p12fkp",则函数返回值为3852312。
long fun2(char *str)
{
int i=0;
long k=0;
char *p=str;
while (*p != &39;\0&39; && ( 1 ) )
{
if(*p >=&39;0&39;&& *p <=&39;9&39;)
{
k= 2 +*p-&39;0&39;;
++i;
}
3 ;
}
return k;
}
3、写出下列程序的输出结果
int f(int x ,int y)
{
int r;
if(y==1) r=x;
else r=f(x,y-1)+x;
return r;
}
main()
{
int a=7,b=6;
printf("%d",f(a,b));
}
4、指出程序中的错误
void test2()
{
char string[10], str1[10];
int i;
for(i=0; i<10; i++)
str1[i] = &39;a&39;;
strcpy( string, str1 );
}
5、请问运行Test函数会有什么样的结果?
void Test(void)
{
char *str = (char *) malloc(100); strcpy(str, “hello”); free(str); if(str != NULL) {
}
四、 编程(30分)
1、编写函数,从src中拷贝count字节到dest中。
void* mystrcpy( char *dest, const char *src, int count )
strcpy(str, “world”); printf(str); }
(以下试题二选一)
2、编写函数,计算输入的日期是本年第几天,如2007年1月5日是 2007年第5天 int DayOfYear(int year,int month,int day)
3、编写一个金额类{符号,整数部分,小数部分},实现金额的加法、减法功能