c语言试题.docx
《c语言试题.docx》由会员分享,可在线阅读,更多相关《c语言试题.docx(29页珍藏版)》请在冰豆网上搜索。
c语言试题
一、选择题答案
1.以下所列的C语言常量中,错误的是
A)0xFF
B)1.2e0.5
C)2L
D)'\72'
你所选择的答案是:
*,正确答案是:
B×
2.若变量已正确说明为float类型,要通过语句scanf("%f%f%f",&a,&b,&c);给a赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是:
A)10<回车>
22<回车>
33<回车>
B)10.0,22.0,33.0<回车>
C)10.0<回车>
22.033.0<回车>
D)1022<回车>
33<回车>
你所选择的答案是:
*,正确答案是:
B×
3.下面程序的输出结果是
main()
{inta[]={1,2,3,4,5,6,7,8,9,0,},*p;
p=a;
printf("%d\n",*p+9);
}
A)0
B)1
C)10
D)9
你所选择的答案是:
*,正确答案是:
C×
4.若定义了以下函数:
voidf(……)
{……
*p=(double*)malloc(10*sizeof(double));
……
}
p是该函数的形参,要求通过p把动态分配存储单元的地址传回主调函数,则形参p的正确定义应当是
A)double*p
B)float**p
C)double**p
D)float*p
你所选择的答案是:
*,正确答案是:
C×
5.设a、b、C、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值位为
A)0
B)1
C)2
D)3
你所选择的答案是:
*,正确答案是:
C×
6.以下定义语句中,错误的是
A)inta[]={1,2};
B)char*a[3];
C)chars[10]="test";
D)intn=5,a[n];
你所选择的答案是:
*,正确答案是:
D×
7.以下程序的输出结果是
main()
{inta[4][4]={{1,3,5},{2,4,6},{3,5,7}};
printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0]);
}
A)0650
B)1470
C)5430
D)输出值不定
你所选择的答案是:
*,正确答案是:
A×
8.以下程序的输出结果是
main()
{charcf[3][5]={"AAAA","BBB","CC"};
printf("\"%s\"\n",ch[1]);
}
A)"AAAA"B)"BBB"C)"BBBCC"D)"CC"
你所选择的答案是:
*,正确答案是:
B×
9.以下程序的输出结果是
main()
{intb[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;
for(i=0;i<3;i++)
for(j=i;j<=i;j++)t=t+b[i][b[j][j]];
printf("%d\n",t);
}
A)3
B)4
C)1
D)9
你所选择的答案是:
*,正确答案是:
B×
10.以下非法的赋值语句是
A)n=(i=2,++i);
B)j++;
C)++(i+1);
D)x=j>0;
你所选择的答案是:
*,正确答案是:
C×
11.若有以下程序:
#include"stdio.h"
main()
{
intk=2,i=2,m;
m=(k+=i*=k);printf("%d,%d\n",m,i);
}
执行后的输出结果是
A)8,6
B)8,3
C)6,4
D)7,4
你所选择的答案是:
*,正确答案是:
C×
12.下列关于单目运算符++、--的叙述中正确的是( )。
A)它们的运算对象可以是任何变量和常量
B)它们的运算对象可以是char型变量和int型变量,但不能是float型变量
C)它们的运算对象可以是int型变量,但不能是double型变量和float型变量
D)它们的运算对象可以是char型变量、int型变量和float型变量
你所选择的答案是:
*,正确答案是:
D×
13.有以下程序
main()
{
charstr[]="xyz",*ps=str;
while(*ps)ps++;
for(ps--;ps-str>=0;ps--)puts(ps);
}
执行后的输出结果是( )。
A)yz
xyz
xyz
B)z
yz
xyz
C)z
yz
D)x
xy
你所选择的答案是:
*,正确答案是:
B×
14.有以下程序
main()
{inta;charc=10;
floatf=100.0;doublex;
a=f/=c*=(x=6.5);
printf("%d%d%3.1f%3.1f\n",a,c,f,x);
}
程序运行后的输出结果是( )。
A)16516.5
B)1651.56.5
C)1651.06.5
D)2651.56.5
你所选择的答案是:
*,正确答案是:
B×
15.有以下程序
main()
{ints=0,a=1,n;
scanf("%d",&n);
do
{s+=1;a=a-2;}
while(a!
=n);
printf("%d\n",s);
}
若要使程序的输出值为2,则应该从键盘给n输入的值是( )。
A)-1
B)-3
C)-5
D)0
你所选择的答案是:
*,正确答案是:
B×
16.已定义ch为字符型变量,以下赋值语句中错误的是( )。
A)ch='\';
B)ch=62+3;
C)ch=NULL;
D)ch='\xaa';
你所选择的答案是:
*,正确答案是:
A×
17.下列函数定义中,会出现编译错误的是( )。
A)max(intx,inty,int*z)
{*z=x>y?
x:
y;}
B)intmax(intx,y)
{intz;
z=x>y?
x:
y;
returnz;
}
C)max(intx,inty)
{intz;
z=x>y?
x:
y;return(z);
}
D)intmax(intx,inty)
{return(x>y?
x:
y);}
你所选择的答案是:
*,正确答案是:
B×
18.以下4组用户定义标识符中,全部合法的一组是( )。
A)_main
enclude
sin
B)If
-max
turbo
C)txt
REAL
3COM
D) int
k_2
_001
你所选择的答案是:
*,正确答案是:
A×
19.有以下程序
main()
{
intx=0,y=5,z=3;
while(z-->0&&++x<5)y=y-1;
printf("%d,%d,%d\n",x,y,z);
}
程序执行后的输出结果是( )。
A)3,2,0 B)3,2,-1 C)4,3,-1 D)5,-2,-5
你所选择的答案是:
*,正确答案是:
B×
20.有以下程序段
inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;
b=p[5];
b中的值是( )。
A)5 B)6 C)8 D)9
你所选择的答案是:
*,正确答案是:
D×
21.有以下程序
#definef(x)x*x
main()
{
inti;
i=f(4+4)/f(2+2);
printf("%d\n",i);
}
执行后输出结果是( )。
A)28 B)22 C)16 D)4
你所选择的答案是:
*,正确答案是:
A×
22.有以下程序
#include
main()
{FILE*fp;inti,k=0,n=0;
fp=fopen(“d1.dat”,”w”);
for(i=1;i<4;i++)fprintf(fp,”%d”,i);
fclose(fp);
fp=fopen(“d1.dat”,”r”);
fscanf(fp,”%d%d”,&k,&n);printf(“%d%d\n”,k,n);
fclose(fp);
}
执行后输出结果是( )。
A)12 B)1230 C)123 D)00
你所选择的答案是:
*,正确答案是:
B×
23.结构化程序由三种基本结构组成,三种基本结构组成的算法( )。
A)可以完成任何复杂的任务
B)只能完成部分复杂的任务
C)只能完成符合结构化的任务
D)只能完成一些简单的任务
你所选择的答案是:
*,正确答案是:
C×
24.有以下程序
main()
{
inta=3,b=4,c=5,d=2;
if(a>b)
if(b>c)
printf("%d",d+++1);
else
printf("%d",++d+1);
printf("%d\n",d);
}
程序运行后的输出结果是( )。
A)2
B)3
C)43
D)44
你所选择的答案是:
*,正确答案是:
A×
25.若变量已正确定义,要求程序段完成求5!
的计算,不能完成此操作的程序段是( )。
A)for(i=1,p=1;i<=5;i++)p*=i;
B)for(i=1;i<=5;i++){p=1;p*=i;}
C)i=1;p=1;while(i<=5){p*=i;i++;}
D)i=1;p=1;do{p*=i;i++;}while(i<=5);
你所选择的答案是:
*,正确答案是:
B×
26.37.在函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了函数funA,则( )。
A)称为函数的直接递归调用
B)称为函数的间接递归调用
C)称为函数的循环调用
D)C语言中不允许这样的递归调用
你所选择的答案是:
*,正确答案是:
B×
27.有以下程序
main()
{
intnum[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j;
for(i=0;i<4;i++)
{
for(j=1;j<=i;j++)printf("%c",'');
for(j=j<4;j++)printf("%4d",num[i][j]);
printf("");
}
}
若要按以下形式输出数组右上半三角
1234
678
1112
16
则在程序下划线处应填入的是( )。
A)i-1
B)i
C)i+1
D)4-i
你所选择的答案是:
*,正确答案是:
B×
28.设有定义:
intk=1,m=2;floatf=7;,则以下选项中错误的表达式是( )。
A)k=k>=k B)-k++ C)k%int(f) D)k>=f>=m
你所选择的答案是:
*,正确答案是:
C×
29.设有定义:
inta=2,b=3,c=4;,则以下选项中值为0的表达式是( )。
A)(!
a==1)&&(!
b==0) B)a C)a&&b D)a||(b+b)&&(c-a)
你所选择的答案是:
*,正确答案是:
A×
30.设变量已正确定义,则以下程序不能正确计算f=n!
的程序段是( )。
A)f=1;
for(i=1;i<=n;i++)
f*=i;
B)f=0;
for(i=1;i<=n;i--)
f*=i;
C)f=1;
for(i=n;i>1;i--)
f=f*i;
D)f=1;
for(i=n;i>=2;i--)
f=f*i
你所选择的答案是:
*,正确答案是:
B×
31.有以下程序
#include
main()
{charc1='1',c2='2';
c1=getchar();c2=getchar();putchar(c1);putchar(c2);
}
当运行时输入:
a<回车>后,以下叙述正确的是( )。
A)变量c1被赋予字符a,c2被赋予回车符
B)程序将等待用户输入第2个字符
C)变量c1被赋予字符a,c2中仍是原有字符2
D)变量c1被赋予字符a,c2中将无确定值
你所选择的答案是:
*,正确答案是:
A×
32.有以下程序
voidsort(inta[],intn)
{inti,j,t;
for(i=0;i for(j=i+1;j if(a[i] }
main()
{intaa[10]={1,2,3,4,5,6,7,8,9,10},i;
sort(aa+2,5);
for(i=0;i<10;i++)printf("%d,",aa[i]);
printf("\n");
}
程序运行后的输出结果是( )。
A)1,2,3,4,5,6,7,8,9,10, B)1,2,7,6,3,4,5,8,9,10,
C)1,2,7,6,5,4,3,8,9,10, D)1,2,9,8,7,6,5,4,3,10,
你所选择的答案是:
*,正确答案是:
C×
33.以下叙述中错误的是
A)算法正确的程序最终一定会结束
B)算法正确的程序可以有零个输出
C)算法正确的程序可以有零个输入
D)算法正确的程序对于相同的输入一定有相同的结果
你所选择的答案是:
*,正确答案是:
B×
34.下列叙述中正确的是________。
A)每个C程序文件中都必须有一个main()函数
B)在C程序中main()函数的位置是固定的
C)C程序可以由一个或多个main函数组成
D)在C程序的函数中不能定义另一个函数
你所选择的答案是:
*,正确答案是:
D×
35.设有定义:
inta;floatb;执行scanf("%2d%f",&a,&b);语句时,若从键盘输入876543.0<回车>,a和b的值分别是________。
A)876和543.000000 B)87和6.000000
C)87和543.000000 D)76和543.000000
你所选择的答案是:
*,正确答案是:
B×
36.下列叙述中正确的是________。
A)break语句只能用于switch语句
B)在switch语句中必须使用default
C)break语句必须与switch语句中的case配对使用
D)在switch语句中,不一定使用break语句
你所选择的答案是:
*,正确答案是:
D×
37.有以下程序
main()
{inti;
for(i=1;i<=40;i++)
{if((i++%5==0)&&(++i%8=0))
printf("%d",i)
}
printf("\n")
}
执行后的输出结果是________。
A)5 B)24 C)32 D)40
你所选择的答案是:
*,正确答案是:
C×
38.有以下程序
voidchange(intk[]){k[0]=k[5];}
main()
{intx[10]={1,2,3,4,5,6,7,8,9,10},n=0;
while(n<=4){change(&x[n]);n++;}
for(n=0;n<5;n++)printf("%d",x[n]);
printf("\n");
}
程序运行后输出的结果是________。
A)678910 B)13579 C)12345 D)62345
你所选择的答案是:
*,正确答案是:
A×
39.以下语句中存在语法错误的是________。
A)charss[6][20];ss[1]="right?
";
B)charss[][20]={"right?
"};
C)char*ss[6];ss[1]="right?
";
D)char*ss[]={"right?
"};
你所选择的答案是:
*,正确答案是:
A×
40.有以下程序段'
charname[20];
intnum;
scanf("name=%s,num=%d"name;&num);
当执行上述程序段,并从键盘输入:
name=Lilinum=1001<回车>后,name的值为
A)Lili
B)name=Lili
C)Lilinum=
D)name=Lilinum=1001
你所选择的答案是:
*,正确答案是:
A×
41.有以下程序段
inti,n;
for(i=0;i<8;i++)
{n=rand()%5;
switch(n)
{case1:
case3:
printf("%d\n",n);break;
case2:
case4:
printf("%d\n",n);continue;
case0:
exit(0);
}
printf("%d\n",n);
}
以下关于程序段执行情况的叙述,正确的是
A)for循环语句固定执行8次
B)当产生的随机数n为4时结束循环操作
C)当产生的随机数n为1和2时不做任何操作
D)当产生的随机数n为0时结束程序运行
你所选择的答案是:
*,正确答案是:
E×
42.若有定义语句:
chars[3][10],(*k)[3],*p;,则以下赋值语句正确的是
A)p=s;
B)p=k;
C)p=s[0];
D)k=s;
你所选择的答案是:
*,正确答案是:
C×
43.有以下程序
#include"stdio.h"
voidfun(char*c)
{while(*c)
{if(*c>='a'&&*c<='z')*c=*c-('a'-'A');
c++;
}
}
main()
{chars[81];
gets(s);fun(s);puts(s);
}
当执行程序时从键盘上输入HelloBeijing<回车>,则程序的输出结果是
A)hellobeijing
B)HelloBeijing
C)HELLOBEIJING
D)hELLOBeijing
你所选择的答案是:
*,正确答案是:
C×
44.以下函数的功能是:
为数组中的所有元素赋值。
#include"stdio.h"
#defineN10
voidfun(intx[N])
{inti=0;
while(i<_____
x[i]=i++;
}
在程序中下划线处应填入的是
A)x+i
B)x[i]
C)N
D)&x[++i]
你所选择的答案是:
*,正确答案是:
C×
45.设有如下函数定义
intfun(intk)
{if(k<1)return0;
elseif(k==1)return1;
elsereturnfun(k-1)+1;
}
若执行调用语句:
n=fun(3);,则函数fun总共被调用的次数是
A)2
B)3
C)4
D)5
你所选择的答案是:
*,正确答案是:
B×
46.有以下程序
#include"stdio.h"
intfun(intx,inty)
{if(x!
=y)return((x+y)/2);
elsereturn(x);
}
main()
{inta=4,b=5,c=6;
printf("%d\n",fun(2*a,fun(b,c)));
}
程序运行后的输出结果是
A)3
B)6
C)8
D)12
你所选择的答案是:
*,正确答案是:
B×
47.有以下程序
#include"stdio.h"
intfun()
{staticintx=1;
x*=2;
returnx;
}
main()
{inti,s=1;
for(i=1;i<=3;i++)s*=fun();
printf("%d\n",s);
}
程序运行后的输出结果是
A)0
B)10
C)30
D)64
你所选择的答案是:
*,正确答案是:
D×
48.以下叙述中错误的是
A)C程序在运行过程中所有计算都以二进制方式进行
B)C程序在运行过程中所有计算都以十进制方式进行
C)所有C程序都需要编译链接无误后才能运行
D)C程序中整型变量只能存放整数,实型变量只能存放浮点数
你所选择的答案是:
*,正确答案是:
B×
49.有以下定义:
inta;longb;doublex,y;则以下选项中正确的表达式语句是
A)a%(int)(x-y)
B)a=x!
=y;
C)(a*y)%b
D)y=x+y=x
你所选择的答案是:
*,正确答案是:
B×
50.若变量已正确定义,在if(W)printf("%d\n,k");中,以下不可替代W的是
A)a<>b+c
B)ch=getchar()
C)a==b+c
D)a++
你所选择的答案是:
*,正确答案是:
A×
51.#include
main()
{inta=1,b=0;
if(!
a)b++;
elseif(a==0)if(a)b+=2;
elseb+=3;
printf("%d\n",b);
}
程序运行后的输出结果是
A)0
B)1
C)2
D)3
你所选择的答案是:
*,正确答案是:
A×
52.有以下程序
#include
main()
{inta=1,b=2;
while(a<6){b+=a;a+=2;b%=10;}
printf("%d,%d\n",a,b);
}
程序运行后的输出结果是
A)5,11
B)7,1
C)7,11
D)6,1
你所选择的答案是:
*,正确答案是:
B×
53.有以下程序
#include
main()
{chars[]="rstuv";
printf("%c\n",*s+2);
}
程序运行后的输出结果是
A)tuv
B)字符t的ASCII码值
C)t
D)出错
你所选择的答案是:
*,正确答案是:
C×