C语言企业面试题集1

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

题集1及答案

一、选择题

1. 以下操作中,数组比链表速度更快的是____(腾讯)

A.原地逆序

B.头部插入

C.返回中间节点

D.返回头部节点

E.选择随机节点

答案: A C E

2. 已知小写字母a的ASCII码为97,大写字母A的ASCII.码为65,以下程序的结果是__________。()(华为)

main()

{

unsigned int a=32,b=66;

printf(“%c\n”,alb);

}

A.66

B.98

C.b

D.B

答案:C

评析:位运算符“l”的作用是按位或,即两个二进制数的相应位中只要有一个为1,该位的结果值为l。最后以字符型输出, 98对应的字符“b”。

3. 已知形成链表的存储结构如下图所示,则下述类型描述中的空白处应填_______。(华为)

struct link

{

char data;

___________

}node;

A.struct link next

B.link*next

C.struct next link

D.struct link*next

答案:D

评析:在单向链表中,由于每个结点需要存储下一个结点的地址,且下一个结点的数据类型与前一个结点的数据类型完全相同,故应为struct link*next。

4.若进栈序列为l,2,3,4,进栈过程中可以出栈,则下列不可能的一个出栈序列是_______。(华为)

A.1,4,3,2

B.2,3,4,l

C.3,1,4,2

D.3,4, 2,1

答案:C

评析:栈是一种后进先出表,选项c中,先出栈的是3,说明此时栈内必然有1,2,由于l先于2进栈,所以l不可能在2之前出栈,故选项C这种出栈序列是不可能的。

5. 下面程序执行后s的值为() (度小满)

int main()

{

int i=1, j=3, k=0, sum=5;

switch(k> -i++)

{

case 2: sum += 1;

case 1: sum += j;

case 0: sum += i; break;

case -1: sum *= -1;

}

printf("%d",sum);

return 0;

}

A.5

B.6

C.9

D.10

答案: D

case 2 1 0 都满足条件,所以依此相加直到10退出

6.能将高级语言程序转换成目标语言程序的是_______。(华为)

A.调试程序

B.解释程序

C.编译程序

D.编辑程序

答案:C

评析:用高级语言编写的程序称为“源程序”,而计算机只能识别和执行由0和l组成的二进制指令,所以高级语言必须先用一种称为“编译程序”的软件,把源程序翻译成二进制形式的“目标程序”。

7._______是构成c语言程序的基本单位。(华为)

A.函数

B.过程

C.子程序

D.子例程

答案:A

评析:C程序是由函数构成的。一个c源程序至少包含一个main函数,也可以包含一个main函数和若干个其他函数,因此,函数是c程序的基本单位。

8.下面程序的输出结果为多少?(腾讯)

void Func(char str_arg[100])

{

printf("%d\n", sizeof(str_arg));

}

int main(void)

{

char str[] = "Hello";

printf("%d\n", sizeof(str));

printf("%d\n", strlen(str));

char *p = str;

printf("%d\n", sizeof(p));

Func(str);

}

A.5 4 4 4

B.6 5 4 4

C.5 5 5 5

D.5 5 5 4

答案:B

9.main(()

{

float x=123A56;

printf(“%-5.2f\n”,x);

}

以上程序输出的结果是________。(vivo)

A.123.4

B.123.5

C.123.45

D.123.46

答案:D

评析:f格式符,用来输出实数,以小数形式输出。“%-m.nf”的含义是:输出数据共占m列,其中n位小数,如果输出位数小于m。则右端补空格。如果总长度大于列数,则按实际情况四舍五入输出。

10.对一个正整数作如下操作:如果是偶数则除以 2,如果是奇数则加 1,如此进行直到 1 时操作停止,求经过 9 次操作变为 1 的数有多少个?(腾讯)

A.18

B.34

C.64

D.78

答案:B

11.下面语句的输出结果是________。(vivo)

printf(“%d\n”,strlen(“\t\”\065\xff\n”));

A.14

B.8

C.5

D.输出项不合法,无正常输出

答案:C

评析:在c语言中,以“\”开头的字符均为转义字符,其中“\”后可跟l~3位八进制数或在“\”后跟字母x及l~2位十六进制数,以此来代表一个特定的字符。

12.下列程序的输出结果是________。(携程)

main()

{

int a=0,b=0,c=0;

if(++a>0||++b>0)++c;

printf(“\na=%d,b=%d,c=%d”,a,b,C);

}

相关文档
最新文档