腾讯2018秋招前端正式试题(1)

有以下程序:includevoid fun(char**p){++P;printf("%s\n",*p);}main()char*a[]={"Morn

有以下程序: #include<stdio.h> void fun(char**p) { ++P;printf("%s\n",*p);} main() char*a[]={"Morning","Afternoon","Evening","Night"}; fun(A); } 程序的运行结果是( )。

A.Afternoon

B.fternoon

C.Morning

D.oring


正确答案:A


有以下程序: includemain(){char*p,*q; p=(char *)malloc(sizeof(char)* 20);q=p; sca

有以下程序: # include<stdio.h> main() { char*p,*q; p=(char *)malloc(sizeof(char)* 20);q=p; scanf("%s %s",p,q);printf("%s %s\n",p,q); } 若从键盘输入;abc def<回车>,则输出结果是 ______。

A.def def

B.abc def

C.abe d

D.d d


正确答案:A
解析:本题考查%s控制符在scanf函数中的应用。scanf函数中%s控制符的作用是将键盘输入的字符串送到内存,输入的字符串从第一个非空格字符算起,遇到空格或回车就认为是输入结束。本题中执行语句scanf("%s%s",p,q)时,从键盘输入abc def回车>后,指针变量p指向字符串"abc\0",q指向字符串"def\0",但是由于p和q指向同一个存储单元,所以存储单元中存放的是"def\0",printf函数的输出结果为def def。


C数组名称是指针变量吗?

看这段程序,可是执行。#include <stdio.h>int main(int argc, char *argv[]){ struct info { char name[33]; int age; }; struct info aa[3]={"meng",20,"juan",29,"an",59}; struct info *p=aa; for(int i=0;i<3;i++,p++) printf("%-6s %d\n",p->name,p->age);}将其改成这样:#include <stdio.h>int main(int argc, char *argv[]){ struct info { char name[33]; int age; }; struct info aa[3]={"meng",20,"juan",29,"an",59}; //struct info *p=aa; for(int i=0;i<3;i++,aa++) printf("%-6s %d\n",aa->name,aa->age);}为什么就执行不了呢


C数组名称是指针变量吗 C数组名是个指针常量指向数组首元素的地址,常量是 不能自加或者自减的,所以 不能 aa++


以下程序的输出结果是()includemain(){struct stru{int a,b:char c[6];}:printf("%d\n

以下程序的输出结果是 ( ) #include<stdio.h> main() {struct stru{int a,b: char c[6]; }: printf("%d\n",sizeof(stru)), }

A.2

B.4

C.8

D.10


正确答案:D


有以下程序includestruct STU{char name[10];int num;};void f(char*name, intnum){s

有以下程序 #include <string.h> struct STU { char name[10]; int num; }; void f(char *name, int num) { struct STU s[2]={{"SunDan",20044},{"Penghua",20045}}; num=s[0].num; strcpy(name,s[0].name); } main() { struct STU s[2]={{"YangSan",20041},{"LiSiGuo",20042}},*p; p=&s[1]; f(p->name,p->num); printf("%s %d\n",p->name,p->num); } 程序运行后的输出结果是

A.SunDan 20042

B.SunDan 20044

C.LiSiGuo 20042

D.YangSan 20041


正确答案:A
解析:题目中定义的函数f()包含两个参数,一个字符指针,—个整型变量。当修改参数指针所指向的内容的时候,实参所指的内容也被修改,即传址调用;但只是修改参数变量的内容,则实奉不受影响,即传值调用。因此,主函数调用f()函数后,第1个参数被修改成函数中s[0]的name成员,第2个参数不受影响,还是主函数中s[1]的num成员。故最终输出SunDan20042。应该选择A。


腾讯2018秋招前端正式试题一 不定项选择题 1. 往下面的5阶B树中插入关键吗80后,该B树第二层的节点数为(A)。 A. 6 B. 7 C. 8 D. 9 E. 10 2. 设一棵完全二叉树共有1023个结点,则在该二叉树中的叶子结点数为多少?(B) A. 511 B. 512 C. 510 D. 513 3. 如果内存容量为16G,硬盘容量1T,计算机地址寄存器是32位,则虚存的最大容量以下哪个?(A) A. 4G B. 8G C. 16G D. 32G E. 1T 4. 以下代码打印的结果是(假设运行在64位计算机上)?(D) struct st_t int status; char bitset; short *pdata; char errstr8; ; st_t st16; char *p = (char *)(st2.errstr+8); printf(“%d”, (p-(char*)(st); A. 32 B. 64 C. 128 D. 72 5. 下面哪些特性可能导致代码体积膨胀?(ACD) A. 宏定义 B. lambda表达式 C. 模版函数 D. 内联函数 6. C语言里i=5,j=7,请问i&j等于多少?(C) A. 12 B. 3 C. 5 D. 7 7. 以下哪些选项,跨域用来解决跨域的问题?(ABCD) A. 使用document.domain B. 使用JSONP技术 C. 使用CROS技术 D. 使用PostMessage E. 使用ajax技术 8. MVC是一种常见的架构。以下描述错误的是(ABC) A. 只有UIKIT界面开发才能使用MVC B. 只有能够保存在数据库里面的实体才能称之为模型(Model) C. 只有以HTML形式显示的页面才是视图(View) D. 模型变更之后,只有控制器(Controller)才能驱动视图变更或重新渲染视图 9. web框架中关于MVVM,以下说明正确的是(CD) A. MVVM是Model-View-ViewController的简写 B. 流行的MVVM框架有angular、react、vue、bootstrap C. MVVM是使用数据绑定基础架构,可以轻松构建UI D. MVVM优点是低耦合、可复用、可测试 10. 有下表 create table a1 id int(11) not null, name varchar(32) not null, age int(11) not null, INDEX (id,name) 下面查询中,索引无效的有(A)。 A. select * from a1 where name = Jack; B. select * from a1 where name != Jack; C. select * from a1 where id = 1 and name like J%; D. select * from a1 where id 1 11. 请问下列代表的输出事多少?(A) #include int main() int m = 1,2,3,4,5,6,7,8,9,0; int (*p)3 = (int (*)3)m; printf(“%d”,p21); return 0; A. 8 B. 3 C. 7 D. 4 E. 数组越界 12. div+css的布局较table布局的说法正确的是(BC) A. table布局改版的时候更方便,只要改css文件 B. div+css页面加载速度更快、结构化清晰、页面显示简洁 C. div+css布局代码量更少,页面载入得越快 D. table布局易于优化(seo)搜索引擎更友好,排名更容易靠前 13. 在正方体上任取三个顶点连成三角形,则所得的三角形是直角非等腰三角形的概率为(B) A. 2/7 B. 3/7 C. 4/7 D. 5/7 14. Win32系统里,下面几个sizeof的运行结果是(C) int intVaule = 1024; char str = “WeChat”; const char* ch = str; sizeof(intValue) = _a_; sizeof(str) = _b_; sizeof(ch) = _c_; A. a = 1, b = 1, c = 1 B. a = 4, b = 4, c = 4 C. a = 4, b = 7, c = 4 D. a = 4, b = 6, c = 4 15. 在Linux网络编程中的实现I/O复用的系统调用有(ABC) A. select B. poll C. epoll D. pselect 16. 以下针对TCP/IP状态中的TIME_WAIT说法正确的是(AD) A. 主动关闭端进入TIME_WAIT状态 B. 被动关闭端会进入TIME_WAIT状态 C. 通信两端有可能同时进入TIME_WAIT状态 D. TIME_WAIT的超时时间是2MSL 17. 提升网站访问速度,以下正确的做法有哪些?(ABD) A. 减少网站http请求 B. 对静态js文件进行压缩 C. 进行seo优化 D. 进行cdn托管 18. 下面函数的运行结果是(A) function foo() return 2; console.log(foo(); A. 2 B. null C. undefined D. 都有可能,视乎执行引擎而定 19. 下面函数的执行结果是(A) function test() console.log(a); console.log(foo(); var a = 1; function foo() return 2; test(); A. undefined和2 B. 运行错误 C. 1和2 D. undefined 紧接着运行错误 E. 1 紧接着运行错误 二 1. 石子合并 时间限制:(每个case)2s 空间限制:128MB 小Q和牛博士在玩一个石子合并的游戏,初始一共有n堆石子,每堆石子有wi个石子。小Q和牛博士他们需要对石子堆进行合并,每次他们可以任意选择两堆石子进行合并。一堆有x个石子的石子堆和一堆有y个石子的石子堆合并将得到一堆x+y个石子的石子堆,这次合并得分为x*y,当只剩下一堆石子的时候游戏结束。 小Q和牛博士希望采取优秀的策略获得最大得分,希望你能来帮他们算算最大得分多少。 输入: 输入包括两行,第一行一个正整数n(2=n=10、0)。 第二行包括n个正整数wi(1=wi=100),即每堆石子的个数。 输出: 输出一个正整数,即小Q和牛博士最大得分是多少。 样例输入:3 1 2 3 样例输出:11 2. 小Q的排序 时间限制:(每个case)2s 空间限制:128MB 小Q在学习许多排序算法之后灵机一动决定自己发明一种排序算法,小Q希望能将n个不同的数排序为升序。小Q发明的排序算法在每轮允许两种操作: 1、 将当前序列中前n-1个数排为升序 2、 将当前序列中后n-1个数排为升序 小Q可以任意次使用上述两种操作,小Q现在想考考你最少需要几次上述操作可以让序列变为升序。 输入: 输入包括两行,第一行包括一个正整数n(3=n=105),表示数字的个数 第二行包括n个正整数ai(1=ai=109),即需要排序的数字,保证数字各不相同。

以下程序运行后的输出结果是 。

include

includc

include

main()

{char*p;int i;

P=(char*)malloc(sizeof(char)*20):

strcpy(p.“welcome”):

for(i=6;i>=0;i一一) putchar(*(p+i));

printf(“\n”);free(P);


正确答案:emoclew
emoclew


下列对结构及其变量定义错误的是( )。

A.struct My Struct

B.struct MyStruct{ {int num; int num;char ch; char ch;} }My;

C.strut

D.struct{ {int num; int num;char ch; char ch;}My; };


正确答案:D


有以下程序: include struct STU (char name[10]; int num; };

有以下程序: #include <string.h> struct STU (char name[10]; int num; }; void f(char *name, int num) {struct STU s[2]={{"SunDan",20044}.{"Penghua",20045}}; num=s[0].num; strcpy(name,s[0].name); } main() {struct STU s[2]={{"YangSall",20041},{"LiSiGao",20042}},*p;p=&s[1]; f(p->name,p->num); printf("%s%d\n",p->name,p->num); } 程序运行后的输出结果是 ______。

A.SunDan 20042

B.SunDan 20044

C.LiSiGuo 20042

D.YangSan 20041


正确答案:A
解析:本题主函数中定义了结构体类型的指针变量p,并使其指向了结构体类型的数组s[1],并通过调用函数f改变了指针变量p所指向的结构体中成员变量name的值,但并未改变其num的值。这是因为函数f中的形参name是一个字符型指针变量,它指向了主函数中指针变量p所指向的结构体的成员变量name,所以对函数f中的形参*name的改变也就是刘主函数中p->name的改变,而函数f中对形参num的改变并不会影响主函数中p->num的值,因为此时传递给num的是一个值,而不是地址。


有以下程序 include void fun(char **p) { ++p; printf("%s\n",*p);

有以下程序 #include <stdio.h> void fun(char **p) { ++p; printf("%s\n",*p); } main() { char *a[]={"Moming","Afternoon","Evening","Night"}; fun(a); } 程序的运行结果是

A.Afternoon

B.fternoon

C.Morning

D.orning


正确答案:A
解析:本题主函数中定义了一个指针数组a,可以将它看成一个以字符指针为元素的一维数组。和—般的一维数组名能赋给同类型指针变量一样,该字符指针数组也可以赋给指向字符指针的指针(即字符型二级指针),所以数组名a可以用作函数fun()的实参。


以下程序的输出结果是【】。 include main() {struct stru {int a; float b; char d[4]; }

以下程序的输出结果是【 】。

include<stdio.h>

main()

{ struct stru

{ int a;

float b;

char d[4];

};

printf("%d\n",sizeof(struct stru));

}


正确答案:10
10 解析:结构体变量占用内存空间的字节数是结构体各分量占用内存空间的字节数的总和。int型变量占用2字节,float型变量占用4字节,char型占用1字节,char d[4]是含有4个元素的char型数组,占用4字节。sizeof(struct stru)是计算结构体变量占用内存空间的字节数,2+4+4=10。

更多 “腾讯2018秋招前端正式试题(1)” 相关考题
考题 有以下程序的输出结果是( )char fun(char x , char y){ if(xmain( ){ int a=’9’,b=’8’,c=’7’;printf(“%c\n”,fun(fun(a,b),fun(b,c))); }A.函数调用出错B.8C.9D.7正确答案:D解析:函数fun(a,b)的结果是8,函数fun(b,c)的结果是7,将8,7代人函数中,f('8','7')的返回结果是7。

考题 有以下程序:includeinclude struct STU {char name[10];int hum;};void f(有以下程序:#include <stdio.h>#include <strine.h> struct STU { char name[10]; int hum;};void f(char * name,iht num){ struct STU s[2] = {{ "SunDan" ,20044} , {" Penghua" ,20045}}; num= s[0]. nnm; strepy(name,s[0], name);}main( ){ struct STU s[2] = {{"YangSan" ,20041 }, { "LiSiGao" ,20042}}, * P; p = &s[1]; f(p->name,p->hum); printf("% s %d \n" ,p-> name,p->num);}程序运行后的输出结果是( )。A.SunDan 20042B.SunDan 20044C.LiSiGuo 20042D.YangSan 20041正确答案:A解析:main函数中将定义的结构体类型指针变量p指向结构体类型数组s[1],通过调用函数f改变了指针变量p所指向的结构体中成员变量name的值,但并未改变其num的值。这是因为函数f中的形参name是一个字符型指针变量,它指向了main函数中指针变量p所指向的结构体的成员变量name,所以对函数f中的形参*name的改变也就对main函数中p->name的改变,而函数f中对形参num的改变不会影响main函数中p-?num的值,因为此时传递给num的是一个值,而不是地址。

考题 下列程序的输出结果是______。 char*fun(char*str,int n) { int i; char*p=str; for(i=0;i<10;i++,str++) *str='a'+i; return++p; } main() { char a[10]; printf("%s\n",fun(a,10)); }A.ABCDEFGHIJB.abcdefghijC.bcdefghijD.不确定的值正确答案:C解析:调用函数fun使字符数组中的内容是"abcdefghij",函数的返回值是字符数据的地址,该地址指向数组的第二个字符,因此,主函数的输出结果是字符串 "bcdefghij"。

考题 填空题以下程序段的输出结果是()。      struct node         {int a;  float b;  char c[10];}  printf(“%d”,sizeof(struet node)) ;正确答案:16解析:暂无解析

考题 以下程序运行后的输出结果是______。 ss(char*s) { char*p=s; while(*p)p++; return(p-s); } main() { char*a="abded";int i; i=ss(a); printf("%d\n",i); }A.8B.7C.6D.5正确答案:D

考题 若有以下定义: struct tt{char name[10];char sex;}aa={"aaaa",′F′},*p=&aa; 则错误的语句是( )。选项格式:A.scanf("%c",a选项格式:A.sex);B.a选项格式:A.sex=getchar( );C.printf("%c\n",(*p).sex);D.printf("%c\n",p->sex);答案:A解析:sex是一个char类型变量,不是地址,A项应为scanf("%c",&aA.scanf("%c",a选项格式:A.sex);B.a选项格式:A.sex=getchar( );C.printf("%c\n",(*p).sex);D.printf("%c\n",p->sex);答案:A解析:sex是一个char类型变量,不是地址,A项应为scanf("%c",&a选项格式:A.sex);。

考题 以下程序段的输出结果是()。      struct node         {int a;  float b;  char c[10];}  printf(“%d”,sizeof(struet node)) ;正确答案:16

考题 以下程序的输出结果是______。includestruct stu{int num; char name[10]; int age;};v以下程序的输出结果是______。#include<stdio.h>struct stu{ int num; char name[10]; int age;};void fun(struct stu*p){ printf("%s\n",(*p).name);}main(){ struct stu students[3]={ {9801,"Zhang",20}, { 9802,"Wang",19}, { 9803,"Zhao",18} }; fun(students+2);}A.ZhangB.ZhaoC.WangD.18正确答案:B

考题 以下程序的输出结果是() includemain(){ union un{int i; long k; char c;};struct by以下程序的输出结果是( ) # include<stdio.h> main() { union un{int i; long k; char c; }; struct byte{ int a; long b; union un c; } r; printf("%d\n",sizeof(r)); }A.10B.13C.7D.8正确答案:A

考题 以下程序运行后,输出结果是______。includess(char*s){char *p=s; while(*.p)p++; retu以下程序运行后,输出结果是______。#include<stdio.h>ss (char *s){ char *p=s; while(*.p)p++; return(p-s);}main(){ char *a="abded"; int i; i=ss((A); print ("%d\n",i);}A.8B.7C.6D.5正确答案:D