早c选择.docx
《早c选择.docx》由会员分享,可在线阅读,更多相关《早c选择.docx(36页珍藏版)》请在冰豆网上搜索。
![早c选择.docx](https://file1.bdocx.com/fileroot1/2023-1/27/033fa35a-20c3-4c9a-977a-e27f44d3baa3/033fa35a-20c3-4c9a-977a-e27f44d3baa31.gif)
早c选择
1)、以下选项中,能用作数据常量的是
(A)o115
(B)0118
(C)115L
(D)1.5e1.5
标准答案:
C
2)、下列叙述中错误的是
(A)一个C语言程序只能实现一种算法
(B)一个C函数可以单独作为一个C程序文件存在
(C)C程序可以由一个或多个函数组成
(D)C程序可以由多个程序文件组成
标准答案:
A
3)、
(A)sqrt(fabs(pow(x,n)+exp(x)))
(B)sqrt(abs(n^x+e^x))
(C)sqrt(fabs(pow(n,x)+pow(x,e)))
(D)sqrt(fabs(pow(n,x)+exp(x)))
标准答案:
D
4)、设变量已正确定义并赋值,以下正确的表达式是
(A)int(15.8%5)
(B)x=y+z+5,++y
(C)x=25%5.0
(D)x=y*5=x+z
标准答案:
B
5)、以下叙述中错误的是
(A)C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
(B)C语言源程序经编译后生成后缀为.obj的目标程序
(C)用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中
(D)C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件
标准答案:
A
6)、有以下程序
#include
main()
{ints,t,A=10;doubleB=6;
s=sizeof(A);t=sizeof(B);
printf("%d,%d\n",s,t);
}
在VC6平台上编译运行,程序运行后的输出结果是
(A)4,8
(B)10,6
(C)2,4
(D)4,4
标准答案:
A
7)、按照C语言规定的用户标识符命名规则,不能出现在标识符中的是
(A)大写字母
(B)下划线
(C)数字字符
(D)连接符
标准答案:
D
8)、以下选项中,合法的一组C语言数值常量是
(A)0x8A10,0003.e5
(B).1774e1.50abc
(C)028.5e-3-0xf
(D)12.0Xa234.5e0
标准答案:
D
9)、以下选项中不合法的标识符是
(A)print
(B)FOR
(C)&&a
(D)_00
标准答案:
C
10)、若有定义:
doublea=22;inti=0,k=18;,则不符合C语言规定的赋值语句是
(A)i=(a+k)<=(i+k);
(B)a=a++,i++;
(C)i=a%11;
(D)i=!
a;
标准答案:
C
11)、设有定义:
intx=2;,以下表达式中,值不为6的是
(A)x*=(1+x)
(B)x*=x+1
(C)x++,2*x
(D)2*x,x+=2
标准答案:
D
12)、有以下程序
#include
main()
{intx,y,z;
x=y=1;
z=x++,y++,++y;
printf("%d,%d,%d\n",x,y,z);
}
程序运行后的输出结果是
(A)2,3,3
(B)2,2,1
(C)2,3,2
(D)2,3,1
标准答案:
D
13)、以下叙述中错误的是
(A)使用三种基本结构构成的程序只能解决简单问题
(B)C语言是一种结构化程序设计语言
(C)结构化程序由顺序、分支、循环三种基本结构组成
(D)结构化程序设计提倡模块化的设计方法
标准答案:
A
14)、以下选项中,能用作用户标识符的是
(A)8_8
(B)unsigned
(C)_0_
(D)void
标准答案:
C
15)、C源程序中不能表示的数制是
(A)二进制
(B)十六进制
(C)十进制
(D)八进制
标准答案:
A
16)、以下四个程序中,完全正确的是
(A)#include
main();
{/*/programming/*/
printf("programming!
\n");}
(B)#include
main()
{/*programming*/
printf("programming!
\n");}
(C)#include
main()
{/*/*programming*/*/
printf("programming!
\n");}
(D)include
main()
{/*programming*/
printf("programming!
\n");}
标准答案:
B
17)、有以下程序
#include
main()
{inta=1,b=0;
printf("%d,",b=a+b);
printf("%d\n",a=2*b);
}
程序运行后的输出结果是
(A)1,0
(B)0,0
(C)1,2
(D)3,2
标准答案:
C
18)、有以下程序
#include
main()
{chara,b,c,d;
scanf("%c%c",&&a,&&b);
c=getchar();d=getchar();
printf("%c%c%c%c\n",a,b,c,d);
}
当执行程序时,按下列方式输入数据(从第1列开始,代表回车,注意:
回车也是一个字符)
12
34
则输出结果是
(A)12
(B)12
3
(C)12
34
(D)1234
标准答案:
B
19)、若有定义语句:
intx=10;,则表达式x-=x+x的值为
(A)0
(B)10
(C)-20
(D)-10
标准答案:
D
20)、有以下程序
#include
main()
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:
switch(y)
{case0:
a++;break;
case1:
b++;break;
}
case2:
a++;b++;break;
case3:
a++;b++;
}
printf("a=%d,b=%d\n",a,b);
}
程序的运行结果是
(A)a=2,b=2
(B)a=1,b=1
(C)a=1,b=0
(D)a=2,b=1
标准答案:
D
21)、以下关于逻辑运算符两侧运算对象的叙述中正确的是
(A)可以是结构体类型的数据
(B)只能是整数0或1
(C)可以是任意合法的表达式
(D)只能是整数0或非0整数
标准答案:
C
22)、有以下程序
#include
main()
{inta=0,b=0,c=0,d=0;
if(a=1)b=1;c=2;
elsed=3;
printf("%d,%d,%d,%d\n",a,b,c,d);
}
程序输出
(A)1,1,2,0
(B)0,0,0,3
(C)0,1,2,0
(D)编译有错
标准答案:
D
23)、以下程序段中的变量已正确定义
for(i=0;i<4;i++,i++)
for(k=1;k<3;k++);printf("*");
程序段的输出结果是
(A)********
(B)**
(C)****
(D)*
标准答案:
D
24)、有以下程序
#include
main()
{intx=1,y=0;
if(!
x)y++;
elseif(x==0)
if(x)y+=2;
elsey+=3;
printf("%d\n",y);
}
程序运行后的输出结果是
(A)0
(B)3
(C)1
(D)2
标准答案:
A
25)、有以下程序段
#include
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)当产生的随机数n为0时结束程序运行
(B)当产生的随机数n为4时结束循环操作
(C)for循环语句固定执行8次
(D)当产生的随机数n为1和2时不做任何操作
标准答案:
A
26)、有以下程序
#include
main()
{charc1,c2;
c1='A'+'8'-'4';
c2='A'+'8'-'5';
printf("%c,%d\n",c1,c2);
}
已知字母A的ASCII码为65,程序运行后的输出结果是
(A)输出无定值
(B)E,D
(C)D,69
(D)E,68
标准答案:
D
27)、若有定义intx,y;并已正确给变量赋值,则以下选项中与表达式(x-y)?
(x++):
(y++)中的条件表达式(x-y)等价的是
(A)(x-y<0)
(B)(x-y==0)
(C)(x-y>0)
(D)(x-y<0||x-y>0)
标准答案:
D
28)、若有定义:
floatx=1.5;inta=1,b=3,c=2;则正确的switch语句是
(A)
switch(a+b)
{case1:
printf("*\n");
casec:
printf("**\n");}
(B)
switch(a+b)
{case1:
printf("*\n");
case2+1:
printf("**\n");}
(C)
switch(x)
{case1.0:
printf("*\n");
case2.0:
printf("**\n");}
(D)
switch((int)x);
{case1:
printf("*\n");
case2:
printf("**\n");}
标准答案:
B
29)、有以下程序
#include
main()
{inty=9;
for(;y>0;y--)
if(y%3==0)printf("%d",--y);
}
程序的运行结果是
(A)741
(B)963
(C)875421
(D)852
标准答案:
D
30)、下列叙述中正确的是
(A)在switch语句中必须使用default
(B)在switch语句中,不一定使用break语句
(C)break语句只能用于switch语句
(D)break语句必须与switch语句中的case配对使用
标准答案:
B
31)、有以下程序
#include
main()
{inti,j,m=1;
for(i=1;i<3;i++)
{for(j=3;j>0;j--)
{if(i*j>3)break;
m*=i*j;
}
}
printf("m=%d\n",m);
}
程序运行后的输出结果是
(A)m=4
(B)m=6
(C)m=5
(D)m=2
标准答案:
B
32)、有以下程序
#include
main()
{inta1,a2;charc1,c2;
scanf("%d%c%d%c",&&a1,&&c1,&&a2,&&c2);
printf("%d,%c,%d,%c",a1,c1,a2,c2);
}
若想通过键盘输入,使得a1的值为12,a2的值为34,c1的值为字符a,c2的值为字符b,程序输出结果是:
12,a,34,b则正确的输入格式是(以下ㄩ代表空格,代表回车)
(A)12a34b
(B)12ㄩa34ㄩb
(C)12,a,34,b
(D)12ㄩaㄩ34ㄩb
标准答案:
A
33)、若变量已正确定义,在if(W)printf("%d\n",k);中,以下不可替代W的是
(A)a<>b+c
(B)a++
(C)a==b+c
(D)ch=getchar()
标准答案:
A
34)、有以下程序段
#include
inta,b,c;
a=10;b=50;c=30;
if(a>b)a=b,b=c;c=a;
printf("a=%db=%dc=%d\n",a,b,c);
程序的输出结果是
(A)a=10b=30c=10
(B)a=50b=30c=50
(C)a=10b=50c=30
(D)a=10b=50c=10
标准答案:
D
35)、有以下程序
#include
main()
{intc=0,k;
for(k=1;k<3;k++)
switch(k)
{default:
c+=k;
case2:
c++;break;
case4:
c+=2;break;
}
printf("%d\n",c);
}
程序运行后的输出结果是
(A)5
(B)9
(C)7
(D)3
标准答案:
D
36)、设已有定义:
floatx;,则以下对指针变量p进行定义且赋初值的语句中正确的是
(A)float*p=1024;
(B)floatp=&&x;
(C)int*p=(float)x;
(D)float*p=&&x;
标准答案:
D
37)、有以下程序
#include
intf(intx);
main()
{intn=1,m;
m=f(f(f(n)));printf("%d\n",m);
}
intf(intx)
{returnx*2;}
程序运行后的输出结果是
(A)8
(B)2
(C)1
(D)4
标准答案:
A
38)、以下数组定义中错误的是
(A)intx[][3]={0};
(B)intx[2][3]={1,2,3,4,5,6};
(C)intx[][3]={{1,2,3},{4,5,6}};
(D)intx[2][3]={{1,2},{3,4},{5,6}};
标准答案:
D
39)、以下不构成无限循环的语句或语句组是
(A)n=0;
while
(1){n++;}
(B)for(n=0,i=1;;i++)n+=i;
(C)n=0;
do{++n;}while(n<=0);
(D)n=10;
while(n);{n--;}
标准答案:
C
40)、以下叙述中错误的是
(A)函数可以返回地址值
(B)可以给指针变量赋一个整数作为地址值
(C)当在程序的开头包含头文件stdio.h时,可以给指针变量赋NULL
(D)改变函数形参的值,不会改变对应实参的值
标准答案:
B
41)、下列定义数组的语句中,正确的是
(A)#defineN10
intx[N];
(B)intx[0..10];
(C)intN=10;
intx[N];
(D)intx[];
标准答案:
A
42)、有以下程序
#include
#defineN4
voidfun(inta[][N],intb[])
{inti;
for(i=0;i}
main()
{intx[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},y[N],i;
fun(x,y);
for(i=0;i}
程序运行后的输出结果是
(A)-3,-1,1,3,
(B)-3,-3,-3,-3,
(C)-12,-3,0,0,
(D)0,1,2,3,
标准答案:
A
43)、有以下程序
#include
voidfun(inta[],intn)
{inti,t;
for(i=0;i}
main()
{intk[10]={1,2,3,4,5,6,7,8,9,10},i;
fun(k,5);
for(i=2;i<8;i++)printf("%d",k[i]);
printf("\n");
}
程序的运行结果是
(A)876543
(B)321678
(C)345678
(D)1098765
标准答案:
B
44)、有以下程序
#include
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)6
(B)8
(C)3
(D)12
标准答案:
A
45)、有以下程序
#include
main()
{intn,*p=NULL;
*p=&&n;
printf("Inputn:
");scanf("%d",&&p);printf("outputn:
");printf("%d\n",p);
}
该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,以下语句正确的是
(A)printf("%d\n",p);
(B)scanf("%d",&&p)
(C)*p=&&n;
(D)intn,*p=NULL;
标准答案:
D
46)、有以下程序
#include
intadd(inta,intb){return(a+b);}
main()
{intk,(*f)(),a=5,b=10;
f=add;
…
}
则以下函数调用语句错误的是
(A)k=(*f)(a,b);
(B)k=f(a,b);
(C)k=add(a,b);
(D)k=*f(a,b);
标准答案:
D
47)、有以下程序
#include
main()
{inta[]={2,3,5,4},i;
for(i=0;i<4;i++)
switch(i%2)
{case0:
switch(a[i]%2)
{case0:
a[i]++;break;
case1:
a[i]--;
}break;
case1:
a[i]=0;
}
for(i=0;i<4;i++)printf("%d",a[i]);printf("\n");
}
程序运行后的输出结果是
(A)2050
(B)0304
(C)3344
(D)3040
标准答案:
D
48)、有以下程序
#include
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+=b[i][b[j][i]];
printf("%d\n",t);
}
程序运行后的输出结果是
(A)3
(B)1
(C)9
(D)4
标准答案:
D
49)、若有定义语句:
doublea,*p=&&a;以下叙述中错误的是
(A)定义语句中的*号是一个说明符
(B)定义语句中的*号是一个间址运算符
(C)定义语句中,*p=&&a把变量a的地址作为初值赋给指针变量p
(D)定义语句中的p只能存放double类型变量的地址
标准答案:
B
50)、有以下程序
#include
intf(intx,inty)
{return((y-x)*x);}
main()
{inta=3,b=4,c=5,d;
d=f(f(a,b),f(a,c));
printf("%d\n",d);
}
程序运行后的输出结果是
(A)7
(B)8
(C)10
(D)9
标准答案:
D
51)、有以下程序
#include
main()
{intx[3][2]={0},i;
for(i=0;i<3;i++)scanf("%d",x[i]);
printf("%3d%3d%3d\n",x[0][0],x[0][1],x[1][0]);
}
若运行时输入:
246<回车>,则输出结果为
(A)246
(B)240
(C)200
(D)204
标准答案:
D
52)、设有定义:
charp[]={'1','2','3'},*q=p;,以下不能计算出一个char型数据所占字节数的表达式是
(A)sizeof(p)
(B)sizeof(*q)
(C)sizeof(p[0])
(D)sizeof(char)
标准答案:
A
53)、有以下程序
#include
voidfun(inta,intb)
{intt;
t=a;a=b;b=t;
}
main()
{intc[10]={1,2,3,4,5,6,7,8,9,0},i;
for(i=0;i<10;i+=2)fun(c[i],c[i+1]);
for(i=0;i<10;i++)printf("%d,",c[i]);
printf("\n");
}
程序的运行结果是
(A)2,1,4,3,6,5,8,7,0,9,
(B)1,2,3,4,5,6,7,8,9,0,
(C)0,1,2,3,4,5,6,7,8,9,
(D)0,9,8,7,6,5,4,3,2,1,
标准答案:
B
54)、设有定义:
chars[81];inti=0;,以下不能将一行(不超过80个字符)带有空格的字符串正确读入的语句或语句组是
(A)scanf("%s",s);
(B)do{scanf("%c",&&s[i]);