C语言面试题

C语言面试题,第1张

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。下面就由我为大家介绍一下C语言面试题的文章,欢迎阅读。

C语言面试题篇1

1、已知字母b的ASCII码的十进制代码为98,则执行下列语句输出为( C)

ch=’b’

ch–

printf(%d,%c\n”,ch,ch)

A)a,b B)运算不合法,故有语法错 C)97,a

D)格式描述和输出项不匹配,输出无值

2、若变量a已说明为float类型,则能实现将a中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是( C)

A)a=(a*100+0.5)/100.0 B)a=(a*100+0.5)/100 C)a=(int)(a*100+0.5)/100

D)a=(a/100+0.5)*100.0

3、下列程序段的输出结果是(B )

int a=5,b=7

printf(“%d,%d”,a++,++b)

A)5, 7 B)5, 8 C)6, 7 D)6, 8

   C语言面试题篇2

1、下列程序的输出结果是(D )

main()

{ int a=4

a*=a+=6

printf(“%d\n”,a)

}

A)40 B)60 C)80 D)100

2、下列程序的输出结果是( C)

main()

{int a=8

printf(“%a”,(a=a*5,a+6))

}

A)14 B)40 C)46 D)50

   C语言面试题篇3

1、定义a为整型,下列表达式a=3>6的运行后,a的值为(A )

A)0 B)1 C)3 D)表达式错误

2、、如果a=1,b=2,c=3,d=4,则条件表达式a>b?a: c>d?c: d的值为( D)

A)1 B)2 C)3 D)4

3、下述程序段的输出结果是( A)

{int a=5

a%=7

printf(“%d, ”,a)

a+=a*=a-=a*=2

printf(“%d”,a)

}

A)5, 0 B)0, 0 C)5, 12 D)0, 12

4、下列变量名中合法的是(A )

A)Tom B)3a6b C)6a7b D)5ABC

5、对于条件表达式(M)?(a++): (a–),其中的表达式M等价于(C )

A)M= =0 B)M= =1 C)M!=0 D)m!=1

题目要求:

编写一个C程序,用来求出π的近似值。

题目分析:

求π的方法很多,这里两种最为常用的求π的方法。

方法:利用“正多边形逼近”法求π。

“正多边形逼近” 法求π的核心思想是极限的思想。假设一个直径d为1的圆,只要求出该圆的周长C,就可以通过π=C/d的方法求出π的值。所以关键是求出该圆的周长C。这里用“正多边形逼近”的方法求圆的周长。

运行结果:

一次去一个小公司面试,没有太重视,当时由于工作甚忙,也没作准备。他们给我的试卷有大量的题,规定一个小时必须做完,一看题量,吓了一大跳,题有链表,有多维数组,有大量的程序阅读,幸亏基本功还算扎实,未辱使命,差强完成。等到做到编程题时,才发现自己太长时间没有写过程序了,让一些琐碎的改BUG工作和代码维护浪费了太多的精力。一直做下去,心里暗暗吃惊,一个小时,这个题量如果是在刚毕业时,还是有可能完成的,工作几年后,压力渐小,写程序基本都是拿来主义,对标准库函数的原理把握和编程能力越来越退化。由于当时时间紧迫,所写程序也不够完善,过后又思考了一下,回到家后赶紧又对这些问题总结了一下。下面对面试中遇到的编程问题分析了一下。真是人在社会如江湖呀,学习是一刻也不能放松的事。稍一不慎,晚节不保不说,反而会阴沟里翻船。

1.获取路径下的文件名

char * FindFileName(char * s)

{

int len

char *tmp=NULL

ASSERT(s != NULL)

for (len=strlen(s)len>0len--)

{

if((s[len]=='/') ||(s[len]=='//'))

{

tmp = &s[len+1]

break

}

}

return tmp

}

2.把整型转化为字符型

char * i2a(int n, char *s)

{

int i, sign

ASSERT(s != NULL)

if ((sign = n) <0)

{

n = -n //转为正数,利于取位

}

do

{

s[i++] = n % 10 + '0'

}

while ((n /= 10) >0)

if (sign <0)

{

s[i++] = '-'

}

s[i] = '/0'

reverse(s)

}

3.把字符型转为整型

int a2i(char * s)

{

int i, n, sign

ASSERT(s != NULL)

for (i = 0s[i] == ' 'i++)

{

NULL //如果字串前有空格,跳过所有空格

}

sign = (s[i] == '-') ?: -1 : 1

if (s[i] == '+' || s[i] == '-')

{

i++ //判断是正整数串还是负整数串

}

for (n = 0s[i] >= '0' &&s[i] <= '9'i++)

{

n = 10 * n + (s[i] - '0')

}

return sign*n

}

4.输出字符串倒文,不能动态分配内存

char * reverse(char * s)

{

int c, i, j

ASSERT(s != NULL)

for (i = 0, j = strlen(s) - 1i <ji++, j--)

{

c = s[i]

s[i] = s[j]

s[j] = c

}

return s

}

5.查找子串是否存在

int strindex(char *str,char *searchstr)

{

int end, i, j

ASSERT((str != NULL) &&(searchstr != NULL))

//计算结束位置

end = strlen(str) - strlen(searchstr)

if ( end >0 )

{

for ( i = 0i <= endi++ )

{

for ( j = istr[j] == searchstr[j-i]j++ )

{

if ( searchstr[j-i+1] == '/0' ) /* 子字符串字结束 */

{

return i + 1 /* 找到了子字符串 */

}

}

}

}

return -1

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11471996.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-16
下一篇2023-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存