C面试大全.docx
《C面试大全.docx》由会员分享,可在线阅读,更多相关《C面试大全.docx(73页珍藏版)》请在冰豆网上搜索。
C面试大全
一、选择题
下列各题ABCD四个选项中,只有一个选项是正确的,请将正确选项涂在答题卡的相应位置上,答在试卷上不得分。
1、不合法的整数是()。
A)0x35B)43.6C)0532D)-346
2、下列合法的字符常量是()。
A)“f”B)xC)65D)‘\Xab’
3、设有整型变量x,单精度变量y=5.5,表达式x=float(y*3+((int)y%4))执行后,x的值为()。
A)17B)17.500000C)17.5D)1.5
4、在C语言中,负整数在内存中以()形式释放。
A)补码B)BCD码C)反码D)十进制数
5、在C语言中,要求参加运算的数必须是整数的运算符是()。
A)/B)!
C)%D)==
6、()是C语言中非法的数据类型关键字。
A)floatB)singedC)integerD)Char
7、现已定义整形变量inti=1;执行循环语句while(i++<5);后i的值为()。
A)1B)5C)6D)以上三个答案都不正确
8、下列语句的输出结果是()。
printf(“%f\n”,(float)(2+4)/2);
A)有语法错误不能通过编译B)3C)3.0D)3.000000
9、C语言中,整数-8在内存中的存储形式是()。
A)1111,1111,1111,1000B)1000,0000,0000,1000
C)0000,0000,0000,1000D)1111,1111,1111,0111
10、设C语言中,int类型数据占2个字节,则long类型数据占()个字节。
A)1B)2C)8D)4
11、若变量a已说明为float类型,则能实现将a中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是()。
A)a=(a*100+0.5)/100.0B)a=(a*100+0.5)/100
C)a=(int)(a*100+0.5)/100.0D)a=(a/100+0.5)*100.0
12、定义a为整型,下列表达式a=3>6的运行后,a的值为()。
A)0B)1C)3D)表达式错误
13、如果a=1,b=2,c=3,d=4,则条件表达式a>b?
a:
c>d?
c:
d的值为()。
A)1B)2C)3D)4
14、对于条件表达式(M)?
(a++):
(a--),其中的表达式M等价于()。
A)M==0B)M==1C)M!
=0D)M!
=1
15、在x值处于-2到2,4到8时值为“真”,否则为“假”的表达式是()。
A)(2>x>-2)||(4>x>8)B)((x<=-2)||(x>=2)||((x>4)||(x>=8))
C)(x<2)&&(x>=-2)&&(x>4)&&(x<8)D)(x>-2)&&(x>4)||(x<8)&&(x<2)
16、已知字母a的ASC||的十进制代码为97,则执行下列语句后输出为()。
Chara=‘a’;
a--;
printf(“%d,%c\n”,a+‘2’-‘0’,a+‘3’-‘0’);
A)a,cB)a—运算不合法,故有语法错误C)98,cD)格式描述和输出项不匹配,输出无定值
17、下列语句中错误的是()。
A)x=sizeof(int);B)x=sizeof(3.14);C)printf(“%d”,a=a+1,b--,c+1);D)printf(“%d”,++x,x++);
18、C语言中,逻辑“真”等价于()。
A)大于零的数B)大于零的整数C)非零的数D)非零的整数
19、下列语句中,符合语法的语句式()。
A)a+b=3B)a=7C)a=c+b+3=6;D)a=8,b=a+7;
20、若x为float型变量,则以列程序段结果是()。
x=1234.6789;
printf(“%-2.1f”,x);
A)输出格式描述符的域宽度不够,不能输出B)输出为1234.7
C)输出为1234.6D)输出为-1234.6
21、下面函数的功能是()。
Intfunl(char*x)
{
char*y=x;
while(*y++);
return(y-x-1);
}
A)求字符串的长度B)比较两个字符串的大小C)将字符串x复制到字符串y
D)将字符串x连接到字符串y后面
22、指针变量a所指的字符串长度为()。
Char*a=”\n\”MyNameis\”ZhangLi\”\n”;
A)26B)27C)28D)23
23、若有以下说明和语句,则输出结果是()。
Char*sp=”\\\”\n”;
Printf(“%d”,strlen(sp));
A)6B)3C)5D)字符串中有非法自负,输出值不定
24、若有以下的说明语句,则对字符串中字符的不正确引用是(其中0<=i<6)().
Char*strp=“string”;
A)*strpB)*(strp+i)C)strp[i]D)strp
25、函数调用:
strcat(strcpy(str1,str2),str3)的功能是()。
A)将串str1复制到串str2中后再连接到串str3之后
B)将串str1连接到串str2之后再复制到串str3之后
C)将串str2复制到串str1中后再将串str3连接到串str1之后
D)将串str2连接到串str1之后再将串str1复制到串str3之后
26、若使用下述程序段将整数12和浮点数13.6分别赋给变量a和b,那么输入应该式()。
inta;
floatb;
scanf(“a=%d,b=%f”,&a,&b);
A)1213.6B)a=12,b=13.6C)12,13.6D)a=12b=13.6
27、对下面的程序说法正确的是()。
main()
{intx+3,y=0,z=0;
if(x=y+z)
printf(“****”);
else
printf(“####”);
}
A)有语法错误,不能通过编译B)输出为****C)输出为####D)通过编译,但是不能运行
28、下面程序的输出是()。
main()
{
intx=10,y=3;
printf(“%d\n”,y=x%y);
}
A)0B)1C)3D)不确定的值
29、()是不正确的C语言赋值语句。
A)a=a+1;B)i++;C)a*=1,b=8;D)a=3
30、C语言程序的三种基本程序是()。
A)顺序结构,选择结构,循环结构B)递归结构,循环结构,转移结构
C)嵌套结构,递归结构,顺序结构D)循环结构,转移结构,顺序结构
31、执行下面语句后的输出结果为()。
inti=-1;
if(i<=0)
printf(“****\n”);
i=2;
else
printf(“%%%%\n”);
A)****B)%%C)%%%%cD)有语法错误。
不能正确执行
32、下述语句中,()中的if语法有错误。
A)if(xy);
B)if(x==y)
x+y;
C)if(x!
=y)
scanf(“%d”,x)
else
scanf(“%d”,y);
D)if(xy)
{x++;y++;}
33、以下程序段()。
intx=1,y=4;
printf(x”x=%d”:
”y=%d”,x,y);
A)输出控制格式错误B)输出:
x=1C)输出:
y=1D)输出:
y=4
34、为了避免嵌套的条件语句if-else的二义性,C语言规定:
else与()是正确的。
A)缩排位置相同的ifB)其之前最近的ifC)其之后ifD)同一行上的if
35、下列关于switch语句和break语句的结论中,只有()是正确的。
A)break语句是switch语句的一部分
B)在switch语句中可以根据需要使用或不使用break语句
C)在switch语句中必须使用break语句
D)以上三个结论有两个是正确的
36、设I和x都是int类型,则对于for循环语句for(i=0,x=0;i<9;i++),下列哪句话正确()。
A)执行8次B)执行9次C)是无限循环D)循环体一次也不执行
37、下述程序的输出结果是()。
#include
main()
{intY=100;
while(Y--);
printf(“y=%d”,Y);
}
A)Y=0B)Y=1C)Y=随机值D)Y=-1
38、以下for循环语句()。
for(;;)
printf(“*”);
A)判断循环结束的条件不合法B)是无限循环C)循环一次也不执行D)循环只执行一次
39、以下程序段执行后输出结果()。
inti;
for(i=1;;i++)
printf(“%d”,i++);
A)1B)2C)3D死循环
40、char(*A)[5],则标识符A的意义时()。
A)A是一个指向有5个字符型元素的指针变量
B)A是一个有5个元素的一维数组,每个元素指向字符型的指针变量
C)A是一个指向字符型的函数的指针变量
D)A是一个有5个元素的一维数组,每个元素指向整型变量的指针变量
41、下述程序的运行结果为()。
#include
voidabc(char*str)
{inta,b;
for(a=b=0;str{a}!
=’\0’;a++)
if(str[a]!
=’c’)
tr[b++]=str[a];
str[b]=’\0’;
}
voidmain()
{
charstr[]=”abcdef”;
abc(str);
printf(“str[]=”%s”,str);
}
A)STR[]=abdefB)STR[]=abcdefC)STR[]=aD)STR[]=ab
42、下列各数组定义程序段,正确的是()。
A)intn=10;
inta[n];
B)main()
{charstr[10]=”aman”}
C)staticint[][3]={{0,1,2},{80,89,2}};
D)staticchar[5]=“iamastudent.”;
43、以下main函数调用invert函数将串s的元素按逆序重新存放,()是不能正确实现此功能的程序。
voidmain()
{
charsrt[]=“String”;
invert(s);
···
}
A)voidinvert(chars[])
{
intt,I,j;
for(i=0,j=strlen(s)-1;i{
t=*(s+i);
*(s+i)=*(s+j);
*(s+j)=t;
}
}
B)voidinvert(char*s)
{
intt,i,j;
for(i=0,j=strlen(s);i{
t=s[i];
s[j]=s[i];
s[i]=t;
}
}
C)voidinvert(char*s)
{
intt,*h,*p;
h=s;
p=s+strlen(s)-1;
while(h
t=*h,h=*p,*p=t,p--,h++;
}
D)voidinvert(char*s)
{
intt,*p;
p=s+stlen(s)-1;
while(s
{
t=*s;
*s++=*p;
*p--=t;
}
}
44、下列程序的输出结果是()。
#include
voidfun();
voidmain()
{
intx=1;
if(x==1)
{
intx=2;
printf(“%d”,++x);
}
voidfun()
{
printf(“%d”,x++);
}
A)2,1,1B)1,2,1C)2,2,2D)2,2,1
45、下面程序的输出是()。
#include
#include
main()
{
char*p1=“are”,*p2=“ARE”,a[50]=“xyz”;
strcpy(a+2,strcat(p1,p2));
printf(“%s\n”,A);
}
A)xyareAREB)yzareAREC)zareARED)xyzareARE
46、请选出以下程序段的输出结果()。
#include
main()
{
chara1[10],a2[10],a3[10],a4[10];
scanf(“%s%s”,a1,a2);gets(a3);gets(a4);
puts(a1);puts(a2);puts(a3);puts(a4);
}
输入数据如下:
(此处代表回车符)
mmmmnnnn
xxxxyyy
A)mmm
nnnn
xxxxxxx
B)mmmm
nnnn
xxxx
yyy
C)xxxx
nnnn
xxyyyy
zzzz
D)xxxxyyyy
xxxx
xxxx
yyy
47、以下程序的输出结果()。
#include
#include
main()
{
chara[100]={‘a’,’b’,’c’,’d’,’e’,’f’,’h’,’i’,’j’};
printf(“%d\n”,strlen(str));
}
A)6B)9C)11D)不能正常输出
48、以下程序的输出结果是()。
main()
{
char*a[][5]={“how”,”do”,”you”,”do”,”!
”};
char**p;
inti;
p=a;
for(i=0;i<4;i++)
printf(“%s”,p[i]);
}
A)howdoyoudo!
B)howC)howdoyoudoD)hdyd
49、下列程序段正确的是()。
A)#include
main()
{
inti,j;
int(i)=j;
}
B)#include;
mnain()
{
inti,j;
(int)i=j;
}
C)include
main()
{
inti,j;
(int)i=j;
}
D)#include
main()
{
inti,j;
(int)i=j;
}
50、下述程序的输出结果为()。
#include
voidmain()
{
inta[5]={2,4,6,8,10};
int*p=a,**q=&p;
printf(“d%,”,*(p++));
printf(“%d”,**q);
}
A)4,4B)2,2C)4,5D)2,4
51、在C语言中,合法的长整形常数是()。
A)3452B)0LC)3553%D)-3452
52、在C语言中,不正确的int类型常量是()。
A)0453B)0XbdC)32768D)-32768
53、设有整形变量x,单精度变量y=5.5,表达式x=fioat(y*3+((int)y%4))执行后,x的值为()。
A)17B)17.500000C)17.5D1.5
54、已知字母b的ASC||码的十进制代码为98,则执行下列语句输出为()。
ch=’b’;
ch--;
printf(“%d,%c\n”,ch,ch);
A)a,bB)运算不合法,故有语法错C)97,aD)格式描述和输出项不匹配,输出无值
55、下列程序的输出是()。
main()
{inta=2,b=13;
printf(“%d\n”,b=b/a);
}
A)6.5B)6.50C)6D)6.500000
56、设已定义k为int类型变量
k=-8567;
printf(“|%6d|\n”,k);
则以上语句()。
A)输出为|%6d|B)输出为|-8567|C)格式描述符不合法,输出无定值D)输出为|-8567|
57、若a为整形变量,则以下语句()。
a=-2L;
printf(“%d\n”,a);
A)赋值不合法B)输出值为-2C)输出为不确定值D)输出值为2
58、下面程序的输出是()。
main()
{
intx=10,y=3;
printf(“%d\n”,y=x/y);
}
A)0B)1C)3D)不确定的值
59、下面的程序运行结果为()。
#include
main()
{
charc1,c2;
c1=’a’;
c2=’\n’;
printf(“%c%c”,c1,c2);
}
A)aaB)aC)a\nD)\n\n
60、有关下述语句输出的判断中,正确的是()。
charx=’A’;
printf(“%d”,x);
A)赋值非法B)输出值不确定C)输出值为-32D)输出值为65
61、执行下面程序中的输出语句后,a的值是()。
main()
{inta;
printf(“%d\n”,(a=65,20,15));
}
A)65B)20C)15D)10
62、若变量都已正确说明,则以下程序段输出为()。
a=6;
b=3;
printf(a>b?
”%d”,a:
”%d”,b);
A)%3B)6C)%6D)3
63、若有数学公式,其正确的表达式是()。
A)sqrt(abs(x*x/180))B)sqrt(abs(sinx*3.14/180)))
C)sqrt(sinx)D)sqrt(fabs(sin(x*3.14/180)))
64、在C语言中,逻辑值“真”用()来表示。
A)trueB)大于0的数C)非0的数D)非0整数
65、以下程序的输出结果是()。
#include
voidmain()
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:
switch(y)
{case0:
a++;break;
case1:
b++;break;
}
case2:
a++;b++;
case3:
a++;b++;
}
printf(“a=%d,b=%d”,a,b);
}
A)a=3,b=2B)a=2,b=3C)a=3,b=3D)a=2,b=2
66、若要求在if后一对括号中表示a不等于0时,条件成立,则能正确表示这一关系的表达式为()。
A)a!
=0B)!
aC)a=0D)a
67、若执行下面的程序时从键盘上输入5,则输出是()。
main()
{intx;
scanf(“%d0”,x);
if(++x>5)
printf(“%d”,x);
else
printf(“%d”,x--);
}
A)7B)6C)5D)4
68、设a,b,c都是int型变量,且a=3,b=4,c=5,则下面的表达式中,表达式的值为0的是()。
A)a&&bB)a<=bC)a||b+c&&b-cD)!
((a
69、下面程序的运行结果是()。
main()
{intc1=2,c2=0;
while(!
c2--)
printf(“%d,%d”,c1--,c2);
}
A)陷入死循环B)不输出任何内容C)输出2,-1D)输出2,0
70、已知有以下定义
chara;
intb;
floatc;
doubled;
则表达式a*b+c-d的结果为()型。
A)doubleB)intC)floatD)char
71、设定义整形变量k,g,则下面的程序的输出为().
k=017;g=1111;
printf(“%d\n”,++k);
printf(“%x\n”,g++);
A)156fB)167C)1571D)166f
72、已知7/2级结果为()性。
A)doubleB)intC)floatD)char
73、下列程序的输出结果是()。
#include
voidmain()
{
inta=1234;
floatb=123.456;
doublec=12345.54321;
printf(“\n%2d,%2.1f”,a,b,c);
}
A)输出格式的位数不够,无输出B)输出的结果为12,12.4,12.5
C)输出的结果为1234,123.5,1234.5D)输出的结果为1234,123.4,1234.5
74、对下述程序,()是正确的判断。
#include
main()
{
intx,y;
scanf(“%d,%d”,&x,&y);
if(x>y)
x=y;
y=x;
else
x++;
y++;
printf(“%d,%d”,x,y);
}
A)有语法错误,不能通过编译B)若输入数据7和9,则输出8和9
C)若输入数据9和7,则输出7和9D)如输入数据9和7,则输出9和9
75、对下述程序,()是正确的判断。
#include
main()
{intx,y;
scanf(“%d,%d”,x,y);
if(xy)
{x=y;
y=x;}
else
x++;
y++;
printf(“%d,%d”,x,y);
}
76、C语言中,合法的长整型常数是()
A)3452B)0LC)3553%D)–3452
77、下列不合法的实数是()
A)34.65B)6.3E2C)e3D)54.3
78、下列合法的字符常量是( )
A)”f”B)xC)65D)’\Xab’
79、在C语言中,不正确的int类型常量是( )
A)0453B)0XbdC)32768D)–32768
80、执行下列语句后,第一个输出的值为( )
#include
#defineM