2018 C笔试题

⼀、单项选择题(15⼩题,每⼩题2分,共30分)

 解析:【传值调用】,实参和形参之间传递的是“地址”


 

 解析:【优先级】:算术运算符 > 关系运算符  >   赋值运算符   

    【结核性】:赋值运算符(从右至左)   算数运算符和关系运算符(从左至右)

      相当于: ( k > i ) <  j   , ( i < j ) == ( j < k  )   


解析:指针数组是指数组的每一个元素都是一个指针变量的数组

           相当于: point[2] 一样

例如:


 

解析:数组定义时,常量表达式中不允许包含变量


 

解析:【函数递归】,相当于 fib (2) + fib (1) 


 

解析:【do 循环】


 


 

解析:【数组传参】:传过去的是地址,实参和虚参都改变


 

 题目有错!!!

 

解析:【运算优先级】:“ * ”和“ ++ ”  高于 ” = “,“ * ”和“ ++ ”优先级相同,结合性:从右往左

    *p1 += *p2++  相当于: *p1 = *p1 + *(p2++)

    *p2 =  p1++ 相当于: *p1 =  (p1++)


解析:【运算优先级】+ 【结合性】

    i = 3 / 2 + 7 / 2 == 5   相当于: i =  ( ( (3 / 2) + (7 / 2) )  ==  5 )

    j = 45 % 11 + (((7 > 8) ? 15: 14) == 14   相当于:j = (45 % 11) + ((((7 > 8) ? 15: 14) == 14 )


 

 解析:!x是逻辑非操作,当x为0时,值为真,否则值为假。 在这里等效于x==0 ,即x = 8,while (!x) 为假,退出循环

例如:

 


 

解析:(i * j) / k + 6 – 15 % k    相当于   ((i * j) / k) + 6 – (15 % k)   :  “+”和“-”  结合性从左向右


 解析: while()是循环语句。while(expr)表示当逻辑表达式expr为真时,循环运行循环体,直到expr值为假或遇到break语句时退出 

由 316 = 13 * i +  11 * j 得:k 一定得是11的倍数

 例:

 


 

 解析:【字符数组的定义】:

char cc[ ]  = {‘1′,’2′,’3′,’4′,’5’}, 数组长度为5,字符串长度为5

char cc[ ]  =”12345“,数组长度为6,字符串长度为5,自动在字符串结尾加上一个终止符