C语言企业面试题集1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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);
}