C语言经典笔试100题,详细解析(持续更新)

 

原100题目链接:

https://blog.csdn.net/qq_20398345/article/details/80948014?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160058621919725254025850%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=160058621919725254025850&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v3~pc_rank_v2-1-80948014.first_rank_ecpm_v3_pc_rank_v2&utm_term=100%E6%9D%A1%E7%BB%8F%E5%85%B8c%E8%AF%AD%E8%A8%80%E7%AC%94%E8%AF%95%E9%A2%98&spm=1018.2118.3001.4187

 

  1. 请填写bool , float,  指针变量 与“零值”比较的if  
    语句

Bool类型判断:

bool a;

if(a)

if(!a)

指针类型判断:

If(p==NULL)

If(p!=NULL)

 

浮点数判断

If(x>0.001)

If(x<0.01)

 

  1. 以下为Linux下的32 位C 程序,请计算sizeof 的值。

char  str[] = “Hello” ;                              

char   *p = str ;                                     

i nt    n = 10;                                                   

请计算

(1)sizeof (str ) =                  (2)s i zeof ( p ) =                 

(3)sizeof ( n ) =

 

【标准答案】

(1).sizeof(str) = 6(Hello后面还有个结束符号\n)

(2)sizeof(p)=4 p是一个指针类型,指针的长度是4(32或者64位系统)

(3)sizeof(n)=4 n 是一个int类型,数据长度是4

 

(4)void Func ( char str[100])                           
{                                          
…… ;                                                            
}                                          
请计算sizeof( str ) = 4

此时的str传递的是该字符数组的首地址的指针,相当于一个指针变量。

 

(5)void * p = malloc( 100 );                                                
请计算sizeof ( p ) =4

 

  1. 用变量a 给出下面的定义
    e) 一个有10个指针的数组,该指针是指向一个整型数
    的;

Int *a[10]
f)  一个指向有10个整型数数组的指针;

Int (*a)[10]
g) 一个指向函数的指针,该函数有一个整型参数并返
回一个整型数;

Int (*a)(in)


h) 一个有10个指针的数组,该指针指向一个函数,该
函数有一个整型参数并返回一个整型数;

int (*a[10])(int)

 

  1. 设有以下说明和定义:
    typedef u nion {long i; int k[5]; char c;} DATE;
    struct data { int cat; DATE cow; double dog;} too;
    DATE max;
    则语句printf("%d",sizeof(struct date)+sizeof(max)); 的
    执行结果是:_____

data 是union,union属于结构成员共享地址空间,ziseof(date)取union中最大的数据长度即可,即:4x5=20

max属于struct,sizeof(max)需要成员地址空间相加,而且得注意四自己对其,sizeof(max)= 4+20+8=32;

 

所以结果值是52

 

 

  1. 请问以下代码有什么问题:
    int main()
    {
    char a;
    char *str=&a;
    strcpy(str,"hello");
    printf(str);
    return 0;
    }

解析:内存越界,数据溢出

 

  1. 请问以下代码有什么问题:
    char* s="AAA";
    printf("%s",s);
    s[0]='B';
    printf("%s",s);

    有什么错?
    【标准答案】:s指向常量字符串,定义的时候需要加const char *s = ”AAA“

所以s是用const修饰的指向常量的变量,不能被赋值。

 

 

好的,下面是c语言笔试面试100: 1. C语言中有哪些数据类型? 2. 如何声明一个整型变量? 3. 如何声明一个字符型变量? 4. 如何声明一个浮点型变量? 5. 如何声明一个双精度型变量? 6. 如何声明一个布尔型变量? 7. 如何声明一个指针变量? 8. 如何定义一个常量? 9. 如何定义一个宏? 10. 什么是变量作用域? 11. 什么是局部变量? 12. 什么是全局变量? 13. 如何定义一个函数? 14. 如何调用一个函数? 15. 什么是指针? 16. 如何定义一个指针? 17. 如何使用指针访问变量? 18. 如何使用指针访问数组元素? 19. 如何使用指针访问结构体成员? 20. 如何使用指针作为函数参数? 21. 如何使用指针返回函数值? 22. 什么是动态内存分配? 23. 如何使用malloc函数分配内存? 24. 如何使用free函数释放内存? 25. 什么是数组? 26. 如何定义一个数组? 27. 如何访问数组元素? 28. 如何使用数组作为函数参数? 29. 如何使用数组作为函数返回值? 30. 什么是字符串? 31. 如何定义一个字符串? 32. 如何初始化一个字符串? 33. 如何比较两个字符串? 34. 如何连接两个字符串? 35. 如何复制一个字符串? 36. 什么是结构体? 37. 如何定义一个结构体? 38. 如何访问结构体成员? 39. 如何使用结构体作为函数参数? 40. 如何使用结构体作为函数返回值? 41. 什么是联合体? 42. 如何定义一个联合体? 43. 如何访问联合体成员? 44. 什么是枚举? 45. 如何定义一个枚举? 46. 如何使用枚举? 47. 什么是位运算? 48. 如何使用位运算? 49. 什么是件语句? 50. 如何使用if语句? 51. 如何使用switch语句? 52. 什么是循环语句? 53. 如何使用while循环? 54. 如何使用do-while循环? 55. 如何使用for循环? 56. 如何使用break语句? 57. 如何使用continue语句? 58. 什么是函数指针? 59. 如何定义一个函数指针? 60. 如何使用函数指针调用函数? 61. 什么是文件操作? 62. 如何打开一个文件? 63. 如何关闭一个文件? 64. 如何读取一个文件? 65. 如何写入一个文件? 66. 如何复制一个文件? 67. 什么是数据结构? 68. 什么是链表? 69. 如何定义一个链表? 70. 如何遍历一个链表? 71. 如何插入一个节点到链表中? 72. 如何删除一个节点从链表中? 73. 什么是栈? 74. 如何定义一个栈? 75. 如何入栈? 76. 如何出栈? 77. 什么是队列? 78. 如何定义一个队列? 79. 如何入队? 80. 如何出队? 81. 什么是递归? 82. 如何使用递归? 83. 什么是排序? 84. 什么是冒泡排序? 85. 什么是选择排序? 86. 什么是插入排序? 87. 什么是快速排序? 88. 什么是归并排序? 89. 什么是堆排序? 90. 什么是查找? 91. 什么是线性查找? 92. 什么是二分查找? 93. 什么是哈希查找? 94. 什么是图? 95. 什么是有向图? 96. 什么是无向图? 97. 什么是拓扑排序? 98. 什么是最短路径? 99. 什么是最小生成树? 100. 什么是动态规划? 希望这些能够帮助你更好地准备C语言笔试和面试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值