x=3;
if(a
x=2;
if(a<1)
x=1;
50847、若已定义inta=3,b=8;以下程序段的运行结果是()。
if(a=1)
b=9;
printf("a=%d,b=%d\n",a,b);
答案:
A、a=3,b=9
B、a=1,b=9
C、a=1,b=8
D、a=3,b=8
50848、若已定义inta=3,b=2;以下程序段的运行结果是()。
if(a==3)
{if(b==1)
{a+=b;
printf("%d\n",a);
}
else
{a-=b;
printf("%d\n",a);
}
}
else
printf("%d\n",a+3);
答案:
A、3
B、1
C、5
D、6
50944、以下程序段运行后s的值为()。
inti,s=0;
for(i=3;i>0;i--)
s=(s+1)*3;
答案:
A、36
B、9
C、0
D、39
50945、以下程序段运行后k的值为()。
inti,k=3;
for(i=1;i<=5;i++)
{k+=1;
if(k%2==0)
continue;
k+=2;
}
答案:
A、11
B、10
C、9
D、12
50946、以下叙述正确的是()。
答案:
A、break语句只能用在switch语句体内
B、在循环体内使用break语句和continue语句的作用相同
C、continue语句的作用是使程序的执行流程跳出包含它的所有循环
D、break语句只能用在循环体内和switch语句体内
50947、以下程序段运行结果是()。
inti;
for(i=1;i<=6;i++)
{if(i%2)
{printf("*");
continue;
}
printf("#");
}
答案:
A、#*#*#*
B、######
C、******
D、*#*#*#
50948、以下程序段运行后sum的值为()。
inti,j,sum=0;
for(i=1;i<=3;i++)
for(j=i;j<=3;j++)
sum=sum+i+j;
答案:
A、12
B、24
C、20
D、18
51044、给数组a所有元素赋初值0的语句是()。
答案:
A、inta[6]={0};
B、inta[6]=6*0;
C、inta[]=0*6;
D、inta[6]=0;
51045、()语句能正确定义a为整型数组。
答案:
A、inta[n],n=10;
B、intn=10,a[n];
C、inta[10];
D、inta(10);
51046、以下程序段的运行结果是()。
inta[3],k=3;
a[0]=k;
a[1]=a[0]+2;
a[2]=a[0]*a[1];
printf("%d\n",a[2]);
答案:
A、15
B、6
C、9
D、12
51047、以下叙述中错误的是()。
答案:
A、数组中每一个元素都属于同一个数据类型
B、定义数组时,若不加类型标识符则默认为整型
C、可逐个引用数组元素但不能一次引用整个数组
D、数组名代表数组的首地址
51048、以下程序段的运行结果是()。
inta[]={1,2,3,4,5,6,7,8},i,sum=0;
for(i=0;i<8;i++)
if((i+1)%2)
sum+=a[i];
printf("%d\n",sum);
答案:
A、18
B、16
C、20
D、36
51144、若已定义inta[][4]={1,-2,3,-4,5,-6,7,-8};,则表达式sizeof(a)/(sizeof(int[4]))的值为()。
答案:
A、数组a的元素个数
B、数组a的第一维长度
C、数组a[0]的第一维长度
D、数组a[1]中的元素个数
51145、若已定义inta[3][4];,无法正确引用数组a元素的是()。
答案:
A、a[0]['1'-48]
B、a['b'-97][1]
C、a['0'][1]
D、a['\0'][5-2]
51146、正确定义二维数组a的语句是()。
答案:
A、floata[4][];
B、inta(4,3);
C、floata[2+2][5];
D、inta[4,5];
51147、以下程序段的运行结果是()。
inta[][4]={1,2,3,4,5,6,7,8,9,10,11,12};
printf("%d\n",a[0][0]-a[2][3]);
答案:
A、-1
B、-11
C、8
D、10
51148、以下程序段的运行结果是()。
inta[3][3]={1,2,3,4,5,6,7,8,9},i;
for(i=0;i<3;i++)
printf("%2d",a[i][2-i]);
答案:
A、357
B、159
C、951
D、753
51244、字符数组str经初始化后,存储的不是字符串"xyz"的语句是()。
答案:
A、charstr[]={'x','y','z','\0'};
B、charstr[4]={'x','y',0,'z'};
C、charstr[]={'x','y','z',0};
D、charstr[4]={'x','y','z','0'-48};
51245、以下程序的运行结果是()。
#include
voidmain()
{
char*str="abc123",*p=str;
while(*p)
{
putchar(*p+1);
p++;
}
}
答案:
A、123abc
B、cba234
C、bcd234
D、abc123
51246、若已定义charb[20]="Howdoyoudo!
";实现输出字符串"doyoudo!
"的语句是()。
答案:
A、puts("%s",b);
B、printf("%s",b+4);
C、printf("%c",b+4);
D、puts("%c",b[20]);
51247、若已定义:
chars1[50],s2[10]="abc";,执行语句printf("%s\n",strcat(strcpy(s1,s2),"xyz"));后输出()。
答案:
A、xyzabc
B、abcxyz
C、axbycz
D、xaybzc
51248、若已定义:
chars[20]="Good\0Helloworld";则函数strlen(s+5)的值是()。
答案:
A、5
B、6
C、8
D、10
51344、以下叙述错误的是()。
答案:
A、函数原型中可以不指明参数的名字
B、定义函数时必须指明函数类型
C、函数原型中可以不指明参数的类型
D、定义函数时必须指明函数名
51345、以下叙述错误的是()。
答案:
A、函数体内定义的变量,其生命期是函数执行期
B、函数体内复合语句中定义的变量只在该复合语句内有效
C、全局变量的作用域是从其定义处起至本程序结束处
D、在一个程序源文件中定义的全局变量,在程序的其它源文件中必不可见
51346、以下程序的运行结果是()。
#include
unsignedintf(unsignedintx)
{
if(x==1)return1;
return2*f(x/2);
}
voidmain()
{
printf("%u\n",f(10));
}
答案:
A、1
B、4
C、8
D、16
51347、对于无返回值的函数,在定义时建议使用()的函数类型标识符。
答案:
A、void
B、float
C、empty
D、double
51348、以下程序的运行结果是()。
#include
intlarger(intx,inty)
{
returnx>y?
x:
y;
}
intlargest(intx,inty,intz)
{
returnlarger(larger(x,y),z);
}
voidmain()
{
inta=3,b=-4,c=5;
printf("larger=%d,largest=%d\n",larger(a,b),largest(larger(b,c),2*4,12));
}
答案:
A、larger=3,largest=12
B、larger=3,largest=5
C、larger=5,largest=12
D、larger=5,largest=8
51444、以下预编译处理指令中,错误的是()。
答案:
A、#definePI3.14;
B、#include
C、#defineMAX(x,y)(x>y?
x:
y)
D、#include"stdio.h"
51445、宏定义#definePI3.14中,宏名PI是一个()。
答案:
A、符号常量
B、字符变量
C、单精度类型的常量
D、字符串常量
51446、正确的宏定义命令是()。
答案:
A、#defineK=100
B、#defineK3.14;
C、#defineSUM(x,y)(x+y)
D、#defineN*N100
51447、以下叙述错误的是()。
答案:
A、预处理命令行都必须以#号开始
B、#defineINPUTscanf的作用是用标识符INPUT代表scanf
C、C语言源程序中加入一些预处理命令是为了改进程序设计环境,提高编程效率
D、若有intt;不能使用宏定义#defineSWAP(x,y)t=x;x=y;y=t
51448、以下叙述错误的是()。
答案:
A、宏定义不占用程序运行时间,但与程序中的语句一样需要编译
B、宏定义必须放置在它所在的源程序文件的最前面
C、一个C语言源程序可以有多条预处理命令
D、宏定义中的宏名一般用大写字母表示
51544、若已定义:
inti=10,*pi=&i;floatx=5.6,*px=&x;以下语句错误的是()。
答案:
A、*pi=i+20;
B、pi+px;
C、x=*pi+*px;
D、(*px)=*pi+x;
51545、若已定义:
inta=12,*pa=&a;以下描述错误的是()。
答案:
A、&(*pa)等价于pa
B、*pa等价于a
C、*(&pa)等价于a
D、&pa等价于*(&a)
51546、以下程序段的运行结果是()。
charstr[]="Computer",*p=str+3;
printf("%s",--p);
答案:
A、Computer
B、m
C、puter
D、mputer
51547、若已定义:
inta[5],*p=a;无法引用数组元素a[4]的是()。
答案:
A、*p+4
B、p[4]
C、*(p+4)
D、*(&p[0]+4)
51548、若已定义:
inta[5]={1,2,3,4,5},*pa=a+3;以下叙述错误的是()。
答案:
A、*pa与a[3]的值相等
B、a--与pa--的作用相同
C、a[2]与pa[-1]的值相等
D、a[2]与*(pa-1)的值相同
51644、以下程序的运行结果是()。
#include
voidmain()
{
inta[5]={16,8,3,5,12},*p=a,*q=&a[4];
printf("%d\n",q-p);
}
答案:
A、1
B、2
C、3
D、4
51645、以下程序的运行结果是()。
#include
voidmain()
{
inta,b,*pa=&a,*pb=&b;
*pa=3;*pb=4;a=5;b=6;
pb=pa;
printf("%d\n",*pa+*pb);
}
答案:
A、7
B、10
C、11
D、12
51646、以下程序的运行结果是()。
#include
voidmain()
{
inta[2][3]={{1,2,3},{4,5,6}},*p=a[0],*q=p+5;
for(;q>=p;q--)
printf("%d",*q);
}
答案:
A、123456
B、456321
C、321456
D、654321
51647、以下程序的运行结果是()。
#include
voidmain()
{
charstr[]="abcd",*p=str;
while(*p)
{
(*p)++;
p++;
}
printf("%s\n",str);
}
答案:
A、abcd
B、bcde
C、dcba
D、cdba
51648、以下程序的输出结果是()。
#include
voidmain()
{
inta[]={11,12,13,-4,-5,-6},*p=a+sizeof(a)/sizeof(int)-1;
while(p>=a)
{
(*p)++;
p--;
}
printf("%d\n",*(p+1));
}
答案:
A、11
B、12
C、-4
D、-5
51744、若已定义:
structStudent
{
intnum;
floatscore;
}s,*ps=&s;
以下不正确的语句是()。
答案:
A、s.score=90;
B、ps->score=90
C、(*ps).score=90
D、(*ps)->score=90;
51745、若有如下定义和语句,以下叙述错误的是()。
unionData
{
c