C语言面试

2019-03-09  本文已影响0人  harrytc

C 语言中是否有布尔类型
C里面没有定义布尔是基础类型在C89标准中没有,在C99中有

struct 结构体中有三个 int,两个 int 指针,问 sizeof()多少
12 内存对齐提一下

bool 类型变量 a 初始值为-1,++a 之后为多少,再++a 之后为多少
1 1

scanf()读取匹配format(格式)字符串的输入. 当读取到一个控制字符, 它把值放置到下一个变量. 空白(tabs, 空格等等)会跳过. 非空白字符和输入匹配, 然后丢弃. 如果是一个在%符号和控制符间的数量, 那么只有指定数量的字符转换到变量中. 如果scanf()遇到一个字符集(用%[]控制字符表示), 那么在括号中的任意字符都会读取到变量中. scanf()的返回值是成功赋值的变量数量, 发生错误时返回EOF.

gets()函数从STDIN(标准输入)读取字符并把它们加载到str(字符串)里,直到遇到新行(\n)或到达EOF. 新行字符翻译为一个null中断符. gets()的返回值是读入的字符串,如果错误返回NULL.

calloc
语法:

#include <stdlib.h>
 void *calloc( size_t num, size_t size );

功能: 函数返回一个指向num 数组空间,每一数组元素的大小为size。如果错误发生返回NULL。

memset
语法:

  #include <string.h>
  void *memset( void *buffer, int ch, size_t count );

功能: 函数拷贝ch 到buffer 从头开始的count 个字符里, 并返回buffer指针。 memset() 可以应用在将一段内存初始化为某个值。例如:
memset( the_array, '\0', sizeof(the_array) );
这是将一个数组的所以分量设置成零的很便捷的方法。

qsort
语法:

#include <stdlib.h> 
 void qsort( void *buf, size_t num, size_t size, int (*compare)(const void *, const void *) ); 
## 功能: 对buf 指向的数据(包含num 项,每项的大小为size)进行快速排序。
如果函数compare 的第一个参数小于第二个参数,返回负值;
如果等于返回零值;
如果大于返回正值。
函数对buf 指向的数据按升序排序。 

比较(compare)

语法:

  int compare( const basic_string &str );
  int compare( const char *str );
  int compare( size_type index, size_type length, const basic_string &str );
  int compare( size_type index, size_type length, const basic_string &str, size_type index2,
  size_type length2 );
  int compare( size_type index, size_type length, const char *str, size_type length2 );
fgetc 
语法: 
  #include <stdio.h>
  int fgetc( FILE *stream );

fgetc()函数返回来自stream(流)中的下一个字符,如果到达文件尾或者发生错误时返回EOF.

fopen 
语法: 
  ##include <stdio.h>
  FILE *fopen( const char *fname, const char *mode );
###fopen()函数打开由fname(文件名)指定的文件, 并返回一个关联该文件的流.如果发生错误, fopen()返回NULL. mode(方式)是用于决定文件的用途(例如 用于输入,输出,等等) 

Mode(方式) 意义 
"r" 打开一个用于读取的文本文件 
"w" 创建一个用于写入的文本文件 
"a" 附加到一个文本文件 
"rb" 打开一个用于读取的二进制文件 
"wb" 创建一个用于写入的二进制文件 
"ab" 附加到一个二进制文件 
"r+" 打开一个用于读/写的文本文件 
"w+" 创建一个用于读/写的文本文件 
"a+" 打开一个用于读/写的文本文件 
"rb+" 打开一个用于读/写的二进制文件 
"wb+" 创建一个用于读/写的二进制文件 
"ab+" 打开一个用于读/写的二进制文件 

示例:

    char ch;
    FILE *input = fopen( "stuff", "r" );
    ch = getc( input );
fseek 
语法: 
  ##include <stdio.h>
  int fseek( FILE *stream, long offset, int origin );

函数fseek()为给出的流设置位置数据. origin的值应该是下列值其中之一(在stdio.h中定义):

名称 说明
SEEK_SET 从文件的开始处开始搜索
SEEK_CUR 从当前位置开始搜索
SEEK_END 从文件的结束处开始搜索

### fseek()成功时返回0,失败时返回非零. 你可以使用fseek()移动超过一个文件,但是不能在开始处之前. 使用fseek()清除关联到流的EOF标记. 

fread
语法:

   #include <stdio.h>
  int fread( void *buffer, size_t size, size_t num, FILE *stream );

函数fread()读取[num]个对象(每个对象大小为size(大小)指定的字节数),并把它们替换到由buffer(缓冲区)指定的数组. 数据来自给出的输入流. 函数的返回值是读取的内容数量...

使用feof()或ferror()判断到底发生哪个错误.

ferror 
语法: 
  ##include <stdio.h>
  int ferror( FILE *stream );

ferror()函数检查stream(流)中的错误, 如果没发生错误返回0,否则返回非零. 如果发生错误, 使用perror()检测发生什么错误.

perror 
语法:   ##include <stdio.h>
  void perror( const char *str );

perror()函数打印str(字符串)和一个相应的执行定义的错误消息到全局变量errno中.

逗号运算符确保操作数被顺序地处理:先计算左边的操作数,再计算右边的操作数。右操作数的类型和值作为整个表达式的结果。左操作数只是为了副作用需要而被计算,它其值会被丢弃。在计算完左操作数之后,存在一个序列点,例如: x = 2.7, sqrt( 2*x )

1.根据简历和成绩单问一些问题
对CV有什么认识
有没有项目

2.C 语言问了几个题目,有一个是 bool 类型++之后会怎么变,其他记不得了

3.数学题:一个直角三角形斜边长度是 10,斜边上的高为 6,求这个三角形的面 积

(解析:首先要考虑这个三角形是否存在,然后要考虑三角形是否是曲面三角形)

上一篇 下一篇

猜你喜欢

热点阅读