C语言面试题

Python013

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

1.写一个函数,它的原形是int continumax(char *outputstr,char *intputstr)

功能:

在字符串中找出连续最长的数字串,并把这个串的长度返回,并把这个最长数字串付给其中一个函数参数outputstr所指内存。例如:"abcd12345ed125ss123456789"的首地址传给intputstr后,函数将返回

9,outputstr所指的值为123456789。

#include

#include

#include

int FindMax_NumStr(char *outputstr,char *inputstr)

{

char *in = inputstr,*out = outputstr,*temp

char *final

int count = 0

int maxlen = 0

int i

while(*in!='\0')

{

if(*in >47 &&*in <58)

{

for(temp = in*in>47 &&*in <58in++)

count++

}

else

in++

if(maxlen <count)

{

maxlen = count

count = 0

final = temp

}

}

for(i =0i

{

*out = *final

out++

final++

}

*out = '\0'

return maxlen

}

void main(void)

{

char input[]="abc123def123456eec123456789dd"

char output[50] = {0}

int maxlen

maxlen = FindMax_NumStr(output,input)

printf("the str %s\n",output)

printf("the maxlen is %d\n",maxlen)

}

2.求1000!的'未尾有几个0

求出1->1000里,能被5整除的数的个数n1,能被25整除的数的个数n2,能被125整除的数的个数n3,能被625整除的数的个数n4.1000!末尾的零的个数=n1+n2+n3+n4

只要是末尾是5的数它乘以一个偶数就会出现一个0,而末尾是0的数乘以任何数也都会出现0

而末尾是0的如果是一个0肯定能被5整除,两个0肯定能被25整数,以此类推3个0就能被5的三次方整除,也就是125

1000!就是1-1000数的相乘,能被5整除的所有数分别乘以一个偶数就会出现这些个的0,而例如100,既能被5整除,也能被25整除,所以就是两个0

1000,既能被5,25,也能被125整除,所以算三个0

例如是10!=1*2*3*4*5*6*7*8*9*10,里面有两个数能被5整除,就是10和5,而

5随便乘以一个偶数就出现一个0,而10乘以其它数也会出现一个0,所以10!会有两个0

#include

#define NUM 1000

int find5(int num)

{

int ret = 0

while(num%5==0)

{

num/=5

ret++

}

return ret

}

int main(void)

{

int result = 0

int i

for(i=5i<=NUMi+=5)

result +=find5(i)

printf("the total zero number is %d\n",result)

return 0

}

3。编写一个 C 函数,该函数在一个字符串中找到可能的最长的子字符串,且该字符串是由同一字符组成的。

char * search(char *cpSource, char ch)

{

char *cpTemp=NULL, *cpDest=NULL

int iTemp, iCount=0

while(*cpSource)

{

if(*cpSource == ch)

{

iTemp = 0

cpTemp = cpSource

while(*cpSource == ch)

++iTemp, ++cpSource

if(iTemp >iCount)

iCount = iTemp, cpDest = cpTemp

if(!*cpSource)

break

}

++cpSource

}

return cpDest

}