歌乐电子面试总结

 

1、C语言关键字 auto :声明自变量 般使用 double :声明双精度变量或函数 int: 声明整型变量或函数 struct:声明结构体变量或函数 break:跳前循环 else :条件语句否定支(与 if 连用) long :声明整型变量或函数 switch :用于关语句 case:关语句支 enum :声明枚举类型 register:声明积存器变量 typedef:用给数据类型取别名(其作用) char :声明字符型变量或函数 extern:声明变量其文件声明(看做引用变量) return :程序返语句(带参数看带参数) union:声明联合数据类型 const :声明读变量 float:声明浮点型变量或函数 short :声明短整型变量或函数 unsigned:声明符号类型变量或函数 continue:结束前循环始轮循环 for:种循环语句(意言传) signed:命符号类型变量或函数 void :声明函数返值或参数声明类型指针(基本三作用) default:关语句其支 goto:条件跳转语句 sizeof:计算数据类型度 volatile:说明变量程序执行隐含改变 do :循环语句循环体 while :循环语句循环条件 static :声明静态变量 if:条件语句

2、函数

3、C语言程序只能编译执行,不能解释执行
编译执行,是你用C写的程序代码必须经编译器编译成操作系统可识别的可执行二进制文件才能运行,例如C,C++等
解释执行,是指无需编译,解释器直接读取源文件然后解释执行程序,例如shell,python等语言

可以。加一个强制类型转换就行了。要注意转换后的类型要和指针指向的类型一致,并且这个整数的位长不能超过指针的位长。 比如: int addr = 0x10000004;int *p; 然后在后面的某处就能这样用: p = (int *)addr; 这个在单片机编程里面是很常见的。

4、A "B"是字符串常量.
     B '\010'是ASCII码为8的字符常量.
     C 68是整形常量
     D D是一个标识符,加上单引号才是字符常量.

     一种是用字符的八进制ASCII码,表示为:\0dd.这里,0dd是八进制值(0可以省略)。
 另一种使用字符的十六进制ASCII码值,表示为 \xhh或Xhh 这里hh是两位十六进制值。
 如:'A' ,'\101' 和 '\x41'都表示同一个字符常量。

5、C/C++中: 
     支持byte,char,short,int,long,bool,整数类型和枚举类型。 
     不支持float,double,string

     Java中: 
     boolean类型 
     String类型是java7开始支持

6、首先,在C中,数据之间的运算必须是同类型的才能进行运算。如果类型不一致,就必须先转换成相同的类型----------由低级         别 → 高级别转换。
     数据类型级别由低到高分别为:char→int→float→double。转换时由低级别向高级别转换。
     本题中,数据类型分别为:char型、int型、float型和double型。
     按照转换规则,就要先char转换为doubl型(因为double级别比char高),int 型转为double型 ,float型转为double型, 即全部        转为 double型 再进行运算。 所以,最后的数据类型是double型 。

7、c  ab的用法错误,不能用这种,d范围不对

8、c  数字:0为假,一切非0值都是“真”bool是c++的类型true是真为1

9、d

10、c

指针都是先看离p最近的是什么
如果没有括号就是D了;先看括号里面的内容

 

11、c

12、d

13、b

14、c

15、c[解析] 要注意不能将结构体变量作为一个整体进行输入和输出,只能对结构体变量中的各个成员进行输入和输出。引用结构体变量中成员的方式有以下几种:
结构体变量名.成员名;指针变量名->成员名;(*指针变量名).成员名。

16、d  strlen函数求的是字符串的实际长度,它是从开始到遇到第一个'\0',如果你只定义没给它赋初值,结果不定,它会从aa首地址一直找下去,直到遇到'\0'停止。

17、a

18、b

19、b  1+3+5+7=16

20、b

21、c  

int* p1;
表示说p1指向一个int型的量,而p本身是指向int型变量的指针,它保存一个地址。
int** p2;
表示说p2指向一个int*型的量,而它指向的int*型变量又指向一个int型变量。p2和跑
指向的变量都是地址。

22、c

23、d

24、b [解析] 函数funO中只有一条while循环语句,其循环条件为:当表达式(*p2=*p1)!='\0'的值为真时则循环,即先将p1所指内容赋给p2所指地址,然后判断该内容是否为字符串结束符'\0',是则循环结束,否则执行循环体,让p1和p2同时后移一位。所以该函数实现的是“将p1所指字符串复制到p2所指内存空间”

25、c 先输出后++

26、b

27、c

28、b

以0b开头,后面接数字为二进制, 比如 0b10 是二进制数,等于10进制的 2
以0开头,后面接数字为八进制, 比如 010 是八进制数,等于10进制的 8
以0x开头,后面接数字为十六进制, 比如 0x10 是十六进制数,等于10进制的 16

大端是正着存,小端是反着存

29、c

30、d

全局变量定义在函数体外部,在全局数据区分配存储空间,且编译器会自动对其初始化。

普通全局变量对整个工程可见,其他文件可以使用extern外部声明后直接使用。也就是说其他文件不能再定义一个与其相同名字的变量了(否则编译器会认为它们是同一个变量)。

静态全局变量仅对当前文件可见,其他文件不可访问,其他文件可以定义与其同名的变量,两者互不影响。
 

31 、 12387654910

32、10 10

33、printf("a[%d]=%d\n",i,*p); *p++加过了

34、

i=0;i<10;i++

a[i]=a[i+1]

35、

char *strstr(const char *s1,const char *s2)

{

 int len2;

 if(!(len2=strlen(s2)))//此种情况下s2不能指向空,否则strlen无法测出长度,这条语句错误

     return(char*)s1;

 for(;*s1;++s1)

 {

     if(*s1==*s2 && strncmp(s1,s2,len2)==0)

     return(char*)s1;

 }

 return NULL;

}

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char * strshstr(const char * s1, const char *s2)
{
	int len2,i; 
	if(!( len2=strlen(s2)) )
	return (char*) s1;
	for(;* s1;++s1)
	{
		for(i=0;i<len2;i++) 
		{
			if(s1[i]!=s2[i])
			break;
		}
		if(i>=len2)
		return (char*)s1;
	}
	return NULL;
}


int main()
{
   
    printf("%x\n",strshstr("zxcvbnm","nm") );
    system("pause");
	return 0;
}

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值