选择题.docx
《选择题.docx》由会员分享,可在线阅读,更多相关《选择题.docx(86页珍藏版)》请在冰豆网上搜索。
选择题
[1-1]
在C语言中,合法的字符常量是()。
[答]D,1.1
A)'字'B)"A"C)"ABC"D)'\x41'
[1-2]
在C语言中,用户能使用的合法标识符是()。
[答]B,1.1
A)姓名B)_xyzC)5iD)for
[1-3]
在C语言中,不合法的实型常量是()。
[答]D,1.1
A)-0.123B)-.123C)-1.23e-1D)-123e-3.0
[2-1]
C语言的下列运算符中,优先级最高的运算符是()。
[答]A,1.1
A)++B)+=C)||D)!
=
[2-2]
设有说明语句intk,i=5,j=10;,则表达式k=(++i)*(j--)的值是()。
[答]B,1.1
A)50B)60C)45D)55
[2-3]
设有说明语句inti,j;,则表达式i>=j||i[答]D,1.1
A)视i、j的具体值而定B)FALSE
C)TRUED)1
[3-1]
已知'A'的ASCII码的十进制值为65,'0'的ASCII码的十进制值为48,则以下程序运行结果是()。
main()
{charch1,ch2;
ch1='A'+'5'-'3';
ch2='A'+'6'-'3';
printf("%d,%c\n",ch1,ch2);
}
[答]A,1.1
A)67,DB)C,DC)C,68D)67,68
[3-2]
设有语句intx=2,y=3;,则表达式x=(y==3)的值是()。
[答]B,1.1
A)0B)1C)2D)3
[3-3]
以下程序的运行结果是()。
main()
{unsigneda=0x3ef,b;
b=a<<2;
printf("%x,%x\n",a,b);
}
[答]B,1.1
A)3ef,fbB)3ef,fbcC)fbc,3efD)fbc,fbc
[4-1]
下列语句中,符合C语言语法的赋值语句是()。
[答]C,1.1
A)a=7+b+c=a+7;
B)a=7+b++=a+7;
C)a=7+b,b++,a+7;
D)a=7=b,c=a+7;
[4-2]
为表示x≥y≥z,须用的C语言表达式为()。
[答]A,1.1
A)(x>=y)&&(y>=z)B)(x>=y)AND(y>=x)
C)x>=y>=zD)(x>=y)&(y>=z)
[4-3]
设inta,b;,用语句scanf('%d%d",&a,&b);输入a、b值时,不能作为输入数据分隔符的是()。
[答]B,1.1
A)空格B),C)回车D)[Tab]
[5-1]
以下程序运行时,若从键盘输入5,则输出结果是()。
main()
{inta;
scanf("%d",&a);
if(a++>5)printf("%d\n",a);
elseprintf("%d\n",a--);
}
[答]D,1.1
A)7B)4C)5D)6
[5-2]
以下程序的运行结果是()。
main()
{inta,b,c;
a=b=c=1;
if(a++||++b)c++;
printf("%d,%d,%d\n",a,b,c);
}
[答]A,1.1
A)2,1,2B)1,2,1
C)2,2,2D)2,2,1
[5-3]
以下程序的运行结果是()。
main()
{inti=3,j=2,k;
k=i+j;
{
intk=8;
if(i==3)printf("%2d",k);
elseprintf("%2d",j);
}
printf("%2d%2d\n",i,k);
}
[答]A,1.1
A)835B)838
C)383D)583
[6-1]
有以下程序:
main()
{intc;
while((c=getchar())!
='\n')
{switch(c-'2')
{case0:
case1:
putchar(c+4);
case2:
putchar(c+4);break;
case3:
putchar(c+3);
default:
putchar(c+2);break;
}
}
printf("\n");
}
当输入:
247<回车>,程序的输出结果是()。
[答]B,1.1
A)689B)6689C)66778D)66887
[6-2]
以下程序的运行结果是()。
main()
{inta=1,b=0;
switch(a)
{
case1:
switch(b)
{
case0:
printf("0000\n");
case1:
printf("1111\n");break;
}
case2:
printf("2222\n");break;
}
}
[答]B,1.1
A)0000
1111
B)0000
1111
2222
C)0000
2222
D)1111
2222
[6-3]
以下程序的运行结果是()。
voidmain()
{inta=1;
switch(a)
{
case1:
printf("aaaa\n");
case2:
printf("bbbb\n");break;
default:
printf("cccc\n");
}
}
[答]C,1.1
A)aaaa
B)aaaa
bbbb
cccc
C)aaaa
bbbb
D)aaaa
cccc
[7-1]
以下程序运行后,a的值是()。
main()
{inta,b;
for(a=1,b=1;a<=100;a++)
{
if(b>=20)break;
if(b%3==1){b+=3;continue;}
b-=5;
}
}
[答]D,1.1
A)101B)100C)8D)7
[7-2]
以下程序段的运行结果是()。
main()
{inti,j;
i=10;
j=20;
for(;j>=0;j-=20)
{
if(i=j)printf("Good!
");
elseprintf("Notgood!
");
}
}
[答]D,1.1
A)Good!
Good!
B)Notgood!
C)Good!
D)Good!
Notgood!
[7-3]
以下程序的运行结果是()。
main()
{inta,b,c,n=13;
printf("ABC\n");
for(a=1;a<=n;a++)
for(b=1;b<=n;b++)
for(c=b;c<=n;c++)
if(a*a==b*b+c*c)
printf("%3d%3d%3d\n",a,b,c);
}
[答]A,1.1
A)ABC
534
1068
13512
B)ABC
354
6108
51312
C)ABC
453
8106
12135
D)ABC
543
1086
13125
[8-1]
以下程序段的运行结果是()。
intx=3;
do{
printf("%3d,",x-=2);
}while(!
(--x));
[答]D,1.1
A)1B)30
C)死循环D)1,-2
[8-2]
设E为表达式,以下与do…while(E);不等价的语句是()。
[答]C,1.1
A)do…while(!
E==0);
B)do…while(E>0||E<0);
C)do…while(E==0);
D)do…while(E!
=0);
——————————————————
A班[8-3]
以下程序的运行结果是()。
main()
{inti,s;
i=0;
s=1;
do{
s/=s+1;
i++;
}while(i<=10);
printf("%2d%2d\n",i,s);
}
[答]D,1.1
A)102B)112C)100D)110
[9-1]
下列程序段中,非死循环的是()。
[答]A,1.1
A)inti=100;
while
(1)
{i=i%100+1;
if(i>=100)break;
}
B)intk=0;
do{
++k;
}while(k>=0);
C)ints=10;
while(++s%2+s%2)s++;
D)for(;;)
[9-2]
循环语句循环体中执行continue语句,其作用是()。
[答]C,1.1
A)立即终止程序运行
B)继续执行continue语句之后的循环体各语句
C)结束本次循环
D)结束本次循环,跳出循环
[9-3]
下列do...while循环的循环次数是()。
inti=5;
do{
printf("%d\n",i--);
i--;
}while(i!
=0)
[答]D,1.1
A)0B)2C)5D)死循环
[10-1]
设已定义chars[]="\"Name\\Address\023\n";,则字符串所占的字节数是()。
[答]B,1.1
A)19B)15C)18D)14
[10-2]
已定义charx[8];inti;,为了给该数组赋值,下列语句正确的是()。
[答]D,1.1
A)x[8]="TurboC";B)x="TurboC";
C)x[]="TurboC";D)for(i=0;i<7;i++)x[i]=getchar();
[10-3]
设inta[][4]={0,0};,则下列描述错误的是()。
[答]D,1.1
A)数组a的每个元素的值为0
B)二维数组a的第一维大小为1
C)数组a有4个元素
D)只有元素a[0][0]和a[0][1]的值为0,其余元素的值不确定
[11-1]
以下程序段的运行结果是()。
main()
{inti=4,j;
j=i;
pic(i+2*j-2,'*');
putchar('\n');
for(j-=2;j>=0;j--)
{pic(3-j,'');
pic(i+2*j,'*');
putchar('\n');
}
}
pic(intlen,charc)
{intk;
for(k=1;k<=len;k++)putchar(c);
}
[答]D,1.1
A)*
***
*****
*******
B)**********
**********
**********
**********
C)****
******
********
**********
D)**********
********
******
****
[11-2]
以下程序运行结果是()。
main()
{chara[][5]={"ABCD","1234","abcd","5678","EFGH"};
inti;
for(i=0;i<3;i++)printf("%s",a[i]);
}
[答]B,1.1
A)A1aB)ABCD1234abcd
C)ABCD)ABCD1234abcd5678EFGH
[11-3]
以下程序的运行结果是()。
main()
{intarray[4][4];
inti,j;
for(i=0;i<4;i++)
for(j=0;j<4;j++)array[i][j]=i+j;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
if(i==j||i+j==3)array[i][j]=0;
for(j=0;j<4;j++)printf("%2d",array[2][j]);
printf("\n");
}
[答]A,1.1
A)2005B)1004
C)0120D)0450
[12-1]
设有下列语句,则()是对a数组元素的不正确引用,其中0≤i<10。
inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;
[答]D,1.1
A)a[p-a]B)*(&a[i])
C)p[i]D)*(*(a+i))
[12-2]
若有以下程序:
main
{charch[]="Iamstudent!
",*p;
p=ch;
printf("%x\n",p);
printf("%x\n",p+9);
}
其中第一个printf()运行结果是ffd6,则第二个printf()运行结果是()。
[答]A,1.1
A)ffdfB)ffe8C)ffd6D)ffcf
[12-3]
以下程序的运行结果是()。
main()
{inti;
charaa[][3]={'a','b','c','d','e','f'};
char(*p)[3]=aa;
for(i=0;i<2;i++)
if(i==0)aa[i][i+1]=**(p++);
printf("%c\n",**p);
}
[答]D,1.1
A)aB)bC)cD)d
[13-1]
设有下列语句:
charstr1[]="string",str2[8],*str3,*str4="string";
则()是对库函数strcpy的不正确调用。
此函数用来复制字符串。
[答]A,1.1
A)strcpy(str3,"HELLO3");
B)strcpy(str2,"HELLO2");
C)strcpy(str1,"HELLO1");
D)strcpy(str4,"HELLO4");
[13-2]
若有以下定义和语句,且0≤i<4,0≤j<3,则不能访问a数组中的元素的是()。
inti,(*p)[3];
inta[][3]={1,2,3,4,5,6,7,8,9,10,11,12};
p=a;
[答]D,1.1
A)*(*(a+i)+j)B)p[i][j]
C)(*(p+i))[j]D)p[i]+j
[13-3]
以下关于指针概念的叙述中,错误的是()。
[答]C,1.1
A)一个指针变量只能指向同一类型的变量
B)一个变量的地址称为该变量的指针
C)两个同类型的指针变量可以作加减运算
D)任何指针变量都可以与空指针NULL进行比较
[14-1]
以下程序的运行结果是()。
fun3(intx)
{staticinta=3;
a+=x;
returna;
}
main()
{intk=2,m=1,n;
n=fun3(k);
n=fun3(m);
printf("%d\n",n);
}
[答]C,1.1
A)3B)4C)6D)9
[14-2]
以下程序运行后,输出的结果是()。
func(inta)
{staticintm=0;
m+=a;
return(m);
}
main()
{intk=4,p;
p=func(k);printf("%d,",p);
p=func(k);printf("%d\n",p);
}
[答]C,1.1
A)4,4B)0,4C)4,8D)8,8
[14-3]
以下程序的运行结果是()。
age(n)
intn;
{intc;
if(n==1)c=10;
else
if(n%2==0)c=age(n-1)+2;
elsec=age(n-1)+3;
return(c);
}
main()
{printf("%d\n",age(5));}
[答]A,1.1
A)18B)20C)10D)21
[15-1]
以下程序的运行结果是()。
voidast(intx,inty,int*cp,int*dp)
{*cp=x+y;*dp=x-y;
}
main()
{inta=4,b=3,c,d;
ast(a,b,&c,&d);
printf("%d,%d\n",c,d);
}
[答]A,1.1
A)7,1B)1,7C)7,-1D)c、d未赋值,编译出错
[15-2]
以下程序的输出结果是()。
swap(int*p,int*q)
{intt;
t=*p;*p=*q;*q=t;
}
main()
{inta=10,b=20;
swap(&a,&b);
printf("%d,%d\n",a,b);
}
[答]D,1.1
A)10,10B)20,20C)10,20D)20,10
[15-3]
以下程序的运行结果是()。
main()
{voidchange_p();
int*p,a[]={1,4,7,10};
p=&a[1];
change_p(p);
printf("%d\n",*p);
}
voidchange_p(int*pi)
{*pi+=2;
pi+=2;
*pi+=2;
}
[答]D,1.1
A)7B)8C)5D)6
[16-1]
以下程序段的运行结果是()。
enumweekday{aa,bb=2,cc,dd,ee}week=ee;
printf("%d\n",week);
[答]B,1.1
A)eeB)5C)2D)4
[16-2]
以下对枚举类型进行定义,不正确的是()。
[答]A,1.1
A)enumb{1,2,3};B)enuma{A,B,C};
C)enumc{D=3,E,F};D)enumd{X=0,Y=5,Z=9};
[16-3]
在C程序中,设一表达式含有int、long、unsigned和char类型的常数和变量,则表达式的最后运算结果是()。
[答]D,1.1
A)intB)charC)unsignedD)long
[17-1]
若定义如下结构,则能打印出字母M的语句是()。
structperson{
charname[9];
intage;
};
structpersonclass[10]={"Wujun",20,
"Liudan",23,
"Maling",21,
"zhangming",22};
[答]B,1.1
A)printf("%c\n",class[3].name);B)printf("%c\n",class[2].name[0]);
C)printf("%c\n",class[2].name[1]);D)printf("%c\n",class[3].name[1]);
[17-2]
以下程序的运行结果是()。
main()
{unionu_type
{inti;
doublex;
floatf;
};
structstr_type
{charstr[100];
unionu_typeu[2];
};
printf("%d\n",sizeof(structstr_type));
}
[答]B,1.1
A)100B)116C)120D)200
[17-3]
以下程序的输出结果是()。
main()
{unionexample
{struct
{intx;
inty;
}in;
inta[2];
}e={0,0};
e.a[0]=1;e.a[1]=2;
printf("%d,%d\n",e.in.x,e.in.y);
}
[答]C,1.1
A)2,1B)0,0C)1,2D)0,1
[18-1]
以下程序的输出结果是()。
main()
{printf("%d\n",fac(5));
}
fac(intn)
{ints;
if(n==1)return1;
elsereturnn*fac(n-1);
}
[答]A,1.1
A)120B)60C)6D)1
[18-2]
以下程序的运行结果是()。
main()
{charch[7]="12xy89";
inti,s=0;
for(i=0;ch[i];i++)
if(ch[i]>='0'&&ch[i]<='9')s=10*s+ch[i]-'0';
printf("%d\n",s);
}
[答]D,1.1
A)12B)xyC)12xy89D)1289
[18-3]
以下程序运行后,输出的结果是()。
fun(char*w)
{chart,*s1,*s2;
for(s1=w,s2=w+strlen(s1)-1;s1{t=*s1;
*s1=*s2;
*s2=t;
}
}
main()
{char*p="12345";
fun(p);
puts(p);
}
[答]B,1.1
A)12345B)54321C)15115D)51551
[19-1]
以下程序中的循环执行了()次。
#defineN2
#defineMN+1
#defineNUM(M+1)*M/2
main()
{inti,n=0;
for(i=0;iprintf("%d\n",n);
}
[答]C,1.1
A)5B)6C)8D)9
[19-2]
以下程序的输出结果是()。
#defineSUM(y)1+y
main()
{in