TCL集团2017校园招聘C/C++方向笔试题
while(1)
{ i=i%100+1;
if(i>=100) break;}
C)int k=0; D)int s=36; while(s);--s;
do{++k;}while(k>=0);
6、 有如下程序:
void fun(int i)
{
printf("%d,",i);
}
void main()
{
int i=5;
fun(i);
fun;
}
则运行结果是_____
A)5,0, B)5, C)5,5, D)5,随机值 E)可能出现运行异常
7、 若变量已正确定义,要求程序段完成求5!的计算,下列选项中能完成此操作的程序段
A)for (i=1,p=1;i<=5;i++) p*=i;
B)for (i=1;i<=5;i++) {p=1;p*=i;}
C)i=1;p=1;while(i<=5) p*=i;i++;
D)i=1;p=1;do{p*=i;i++;}while(i<=5);
8、 有如下代码:
int a,b,c;a=b=c=0;
0>1?a++:1>0?b++:c++;
printf("%d%d%d\n",a,b,c);
则输出结果是_________
A)010 B)110 C)111 D)语法错误
9、 OSI模型中,会话层的主要任务有______
A)向用户提供可靠的端到端服务,透明地传送报文
B)组织两个会话进程之间的通信,并管理数据的交换
C)处理两个通信系统中交换信息的表示方式
D)确定进程之间通信的性质,以满足用户的需要
10、有以下程序
main()
{
int x=102,y=012;
printf("%2d,%2d\n",x^y,x|y);
}
执行后输出结果是是()
A)4,110 B)002,112 D)108,110 D)106,110
11、设有如下的程序段:
char str[]="Hello";
char *ptr;
ptr=str;
执行上面的程序段后,*(ptr+5)的值为______
A)'o' B)'\0' C)不确定的值 D)'o'的地址
12、一个栈的输入序列为1 2 3,则可能是栈的输出序列的是_____
A)231 B)321 C)312 D)123
13、下面关于完全二叉树的叙述中,正确的有______
A)除了最后一层外,每一层上的结点数均达到最大值。
B)可缺少若干个左右叶子结点
C)完全二叉树一般不是满二叉树
D)具有结点的完全二叉树的深度为[log2n]+1
14、下面概念中,属于面向对象方法的有___________
A)对象、消息 B)继承、多态 C)类、封装 D)过程调用
15、在下列几种排序方法中,要求内存量最大的是__________.
A)插入排序 B)选择排序 C)快速排序 D)归并排序
四、简答题(每题5分,合计5x4=20分)
1、 写出程序执行结果,并解释原因(5分)
void getstr(char *p)
{
p=(char *)malloc(100);
strcpy(p,"TCL");
}
void main()
{
char *str;
getstr(str);
if(str)
{
str[3]='0';
printf("%s,%d\n",strlen(str));
free(str);
}
}
2、 写一个“标准”宏,这个宏返回一个数组最高维的下标(如数组a[2][4][6],执行宏之后结果是2)。(5分)
3、 比较说明什么是Big-Endian,Little-Endian,网络字节序。(5分)
4、 下面程序
main()
{
char *p1="abc", *p2="ABC", str[8]="xyz";
strcpy(str+2,strcat(p1,p2));
printf("%s \n",str);
}
运行结果是什么?为什么?(5分)
五、编程题(20分)
有两个单向链表,函数find_node作用是判断两个链表是否有交点(两个链表有相同的节点),如果有返回第一个交点。请编程实现。
type struct tag_node
{
int key;
struct tag_node *next;
}node;
函数原型:
node* find_node(node *head1,node *head2)
入参说明:
head1,head2:待检查的两个链表
返回:
相交的节点