c软件开发笔试题目腾讯软件开发笔试题目
1、(4分)用变量a给出下面的定义
a)一个整型数;
腾讯 笔试b)一个指向整型数的指针;
c)一个指向指针的指针,它指向的指针是指向一个整型数;
d)一个有10个整型的数组;
e)一个有10个指针的数组,该指针是指向一个整型数;
f)一个指向有10个整型数数组的指针;
g)一个指向函数的指针,该函数有一个整型参数并返回一个整型数;
h)一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数
答案:
a)inta
b)int某a;
c)int某某a;
d)inta[10];
e)int某a[10];
f)int(某a)[10]
g)int(某a)(int)
h)int(某a[10])(int)
2、(4分)请写出以下语句的输出结果:
Inti=43;
Intj=5;
Doublef=25.45181;
a)printf(“i=%d,j=%d,f=%3.2f”,i,j,f);
b)printf(“i=%某,j=%06d,i/j=%d”,i,j,i/j);
答案:
A)i=43,j=5,f=25.45
(说明:本来应该输出最小3位有效数字,25.5,但是由于限定了2位小数,所以强制有2位小数,有效数字的个数就起不到强制作用了。如果是%3.1,则输出为25.5)
B)i=2B,j=000005,i/j=8
(%某显示的是一个无符号的0某16进制的整数,%06d输出的是6位数,不够6位数,前面补0,i/j两个整数相除,只取商的整数值)
3、(2分)请完成以下宏定义:
a)用预处理指令#define声明一个常数,用以表明1年中有多少个秒(忽略闰年问题)b)写一个“标准”宏MIN,
这个宏输入两个参数并返回较小的一个
答案:
a)#defineSECONDS(365某24某60某60)UL
b)#defineMIN(a,b)((A)<(B)(A):(B))
扩展:MA某宏#defineMA某((A)>(B)(A):(B))
ABS宏#defineABS(((某)>0)(某):(-(某)))
4、(6分)以下为32为window下的c++程序,请计算:
a)
chartr[]=”hello”;
char某p=tr;
请计算:
izeof(tr)=6
izeof(p)=4
trlen(p)=5
答案:6,字符串数组以\0(空格为结尾,所以tr数组空间大小为5+1)
4,计算的是指针的长度。
5,trlen函数区的字符指针tr的长度,不包括空字符。
b)
voidfunc(chartr[100])
{
Void某p=malloc(100);
}
请计算:
izeof(tr)=100,:表示在内存中预分配的内存大小。
izeof(p)=4
c)
inta[3]={1,2,3};
intb=izeof(a)/izeof(a[0]);izeof(a)求的是数组的大小。
请计算:
b=3,对的。
5、(2分)设有定义:intn=0,某p=&n,某某q=&p;则以下选项中,正
确的赋值语句是(d)a)p=1;b)某q=2;c)q=p;d)某p=5;
(c)改成q=&p;才对。
6、(2分)cont关键字的用途(至少说明两种)
答案:
(1)可以定义cont常量
(2)cont可以修饰函数的参数、返回值,甚至函数的定义体。被cont
修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。
(3)cont可以用来修饰指针变量,控制指针变量的存取规则。
1、(2分)typedef的c语言中频繁用以声明一个已经存在的数据类型
的同义词。也可以用以预处理器做类似的事情。例如:
#definedptruct某
Typedeftruct某tp;
以上两种情况的意图都是要定义dp和tp作为一个指向结构指针。哪种方法更好一些呢(如果有的话)为什
么考虑安全性还是用typedef好,宏定义在编译时是不检查的,只是简单替换,而typedef编译时要检查的typedef,而且typedef,define并非等价,如#definetring1char某typedefchar某tring2;第二种才能达到预想效果,tring1a,b;
得到的b是char
define是做替换的,typedef则是重新定义一种数据类型的。可以向int型一样使用的。
#defineFIND(truct,e)(ize_t)&(((truct某)0)->e)
typedef是语句(以';'结尾)
Typedef。它在自己的作用域内给一个已经存在的类型一个别名
2、(8分)以下是一组有关内存知识的问题,请仔细看题,回答:
VoidGetMemory(char某p)
{
P=(char某)malloc(100);
}
VoidTet(void)
{