B、a= =11||a==12||a= =13||a==14
C、a>10 && a<15
D、!(a<=10)&&!(a>=15)
答案:A
知识点:关系运算和逻辑运算
214.
以下程序的输出结果是______。
main()
{ int a=4,b=5,c=0,d;
d=!a&&!b||!c;
printf("%d\n",d);
}
A、1 B、0 C、非0的数 D、-1
答案:A
知识点:关系运算和逻辑运算
215.
语句:printf("%d",(a=2)&&(b=-2));的输出结果是______。
A、无输出 B、结果不确定 C、-1 D、1
答案:D
知识点:关系运算和逻辑运算
216.
设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
知识点:关系运算和逻辑运算
217.
若变量c为char类型,能正确判断出c为小写字母的表达式是______。
A、'a'<=c<='z'
B、(c>='a')||(c<='z')
C、('a'<=c)and('z'>=c)
D、(c>='a')&&(c<='z')
答案:D
知识点:关系运算和逻辑运算
218.
能正确表示逻辑关系:“a≥10 或 a≤0”的C语言表达式是______。
A、a>=10 or a<=0 B、a>=0 | a<=10
C、a>=10 && a<=0 D、a>=10 || a<=10
答案:D
知识点:关系运算和逻辑运算
219.
有如下程序
main()
{
int a=1,b=2,m=0,n=0,k;
k=(n=b>a)||(m=a
printf("%d,%d\n",k,m);
}
程序运行后的输出结果是______。
A、0,0 B、0,1 C、1,0 D、1,1
答案:C
知识点:关系运算和逻辑运算
220.
设int x=1,y=1;表达式(!x||y--)的值是______。
A、0 B、1 C、2 D、-1
答案:B
知识点:关系运算和逻辑运算
221.
设有定义:int a=2,b=3,c=4;,则以下选项中值为0的表达式是______。
A、(!a==1)&&(!b==0) B、(a
C、a&&b D、a||(b+b)&&(c-a)
答案:A
知识点:关系运算和逻辑运算
222.
若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为______。
A、a<>0 B、!a C、a=0 D、a
答案:D
知识点:关系运算和逻辑运算
223.
有如下程序段
int a=14,b=15,x;
char c='A';
x=(a&&b)&&(c<'B');
执行该程序段后,x的值为______。
A、true B、false C、0 D、1
答案:D
知识点:关系运算和逻辑运算
224.
能正确表示a和b同时为正或同时为负的逻辑表达式是______。
A、(a>=0‖b>=0)&&(a<0‖b<0)
B、(a>=0&&b>=0)&&(a<0&&b<0)
C、(a+b>0)&&(a+b<=0)
D、a*b>0
答案:D
知识点:关系运算和逻辑运算
225.
若x是int型变量,且有下面的程序片段:
for(x=3; x<6; x++)
printf((x%2)?("**%d"):("##%d\n"),x);
上面程序片段的输出结果是______。
答案:D
知识点:条件表达式构成的选择结构
227.
以下程序的输出结果是______。
main()
{int a=5,b=4,c=6,d;printf("%d\n",d=a>b?(a>c?a:c):(b));
}
A、5 B、4 C、6 D、不确定
答案:C
知识点:条件表达式构成的选择结构
228.
若整型变量a、b、c、d中的值依次为:1、4、3、2。则条件表达式 a
A、1 B、2 C、3 D、4
答案:A
知识点:条件表达式构成的选择结构
229.若有定义int x,y; 并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++):(y++)中的条件表达式(x-y)等价的是______。
A、(x-y>0) B、(x-y<0)
C、(x-y<0||x-y>0) D、(x-y= =0)
答案:C
知识点:条件表达式构成的选择结构
230.
有以下程序段
int k=0,a=1,b=2,c=3;
k=a
k=k>c?k:b;
执行该程序段后,k的值是______。
A、3 B、2 C、1 D、0
答案:B
知识点:条件表达式构成的选择结构
231.以下程序段中与语句 k=a>b?(b>c?1:0):0; 功能等价的是_____。
A、if((a>b)&&(b>c)) k=1;
else k=0;
B、if((a>b)||(b>c)) k=1;
else k=0;
C、if(a<=b) k=0;
else if(b<=c) k=1;
D、if(a>b) k=1;
else if(b>c) k=1;
else k=0;
答案:A
知识点:条件表达式构成的选择结构
232.假定w、x、y、z、m均为int型变量,有如下程序段:
w=1;x=2;y=3;z=4;
m=(w
m=(m
m=(m
则该程序执行后,m的值是______。
A、4 B、3 C、2 D、1
答案:D
知识点:条件表达式构成的选择结构
233.有以下程序
main()
{
int k=4,n=0;
for(;n
{
n++;
if(n%3!=0) continue;
k--;
}
printf("%d,%d\n",k,n);
}
程序运行后的输出结果是______。
A、1,1 B、2,2 C、3,3 D、4,4
答案:C
知识点:break和continue语句在循环中的作用
234.
有如下程序
main()
{
int x=23;
do
{
printf("%d",x--);
}
while(!x);
}
该程序的执行结果是______。
A、321 B、23
C、不输出任何内容 D、陷入死循环
答案:B
知识点:do-while语句和do-while语句构成的循环结构
235.
有以下程序
main()
{ int s=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
知识点:do-while语句和do-while语句构成的循环结构
236.
有以下程序段
int n,t=1,s=0;
scanf("%d",&n);
do
{
s=s+t;
t=t-2;
}
while(t!=n);
为使此程序不陷入死循环,从键盘输入的数据应该是______。
A、任意正奇数 B、任意负偶数
C、任意正偶数 D、任意负奇数
答案:D
知识点:do-while语句和do-while语句构成的循环结构
239.
有以下程序
main()
{ int i=0,s=0;
do
{
if(i%2) { i++; continue; }
i++;
s+=i;
}
while(i<7);
printf("%d\n",s);
}
执行后输出结果是______。
A、16 B、12 C、28 D、21
答案:A
知识点:do-while语句和do-while语句构成的循环结构
240.
下面的程序的运行结果是______。
main()
{
int x=3;
do
{
printf("%d\n",x-=2);
}
while(!(--x));
}
A、输出的是1 B、输出的是1和-2
C、输出的是3和0 D、是死循环
答案:B
知识点:do-while语句和do-while语句构成的循环结构
241.
以下叙述正确的是______。
A、do-while语句构成的循环不能用其它语句构成的循环来代替
B、do-while语句构成的循环只能用break语句退出
C、用do-while语句构成的循环,在while后的表达式为非零时结束循环
D、用do-while语句构成的循环,在while后的表达式为零时结束循环
答案:D
知识点:do-while语句和do-while语句构成的循环结构
242.
以下程序的输出结果是______。
main()
{ int x=10,y=10,i;
for(i=0;x>8;y=++i)
printf("%d %d ",x--,y);
}
A、10 1 9 2 B、9 8 7 6
C、10 9 9 0 D、10 10 9 1
答案:D
知识点:for语句和用for语句构成的循环结构
244.
以下程序的输出结果是______。
main()
{ int i, k,a[10],p[3];
k=5;
for(i=0;i<10;i++) a[i]=i;
for(i=0;i<3; i++) p[i]=a[i*(i+1)];
for(i=0;i<3; i++) k+=p[i]*2;
printf("%d\n",k);
}
A、20 B、21 C、22 D、23
答案:B
知识点:for语句和用for语句构成的循环结构
245.
设变量已正确定义,则以下能正确计算f=n!的程序段是______。
A、f=0;
for(i=1;i<=n;i++) f*i;
B、f=1;
for(i=1;i
C、f=1;
for(i=n;i>1;i++) f*i;
D、f=1;
for(i=n;i>=2;i--) f*=i;
答案:D
知识点:for语句和用for语句构成的循环结构
247.
若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c 均已赋值(c大于0)
s=a;
for(b=1;b<=c;b++) s=s+1;
则上述程序段功能等价的赋值语句是______。
A、s=a+b; B、s=a+c;
C、s=s+c; D、s=b+c;
答案:B
知识点:for语句和用for语句构成的循环结构
248.
有以下程序
main()
{
int i,s=0;
for(i=1;i<10;i+=2) s+=i+1;
printf("%d\n",s);
}
程序执行后的输出结果是______。
A、自然数1~9的累加和
B、自然数1~10的累加和
C、自然数1~9中奇数之和
D、自然数1~10中偶数之和
答案:D
知识点:for语句和用for语句构成的循环结构
249.
有如下程序
main()
{ int i,sum;
for(i=1;i<=3;sum++) sum+=i;
printf("%d\n",sum);
}
该程序的执行结果是______。
A、6 B、3 C、死循环 D、0
答案:C
知识点:for语句和用for语句构成的循环结构
250.
若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是______。
for(i=5;i;i--)
for(j=0;j<4;j++){ …… }
A、20 B、25 C、24 D、30
答案:A
知识点:for语句和用for语句构成的循环结构
251.
有以下程序
main()
{
int k=5;
while(--k) printf("%d",k-=3);
printf("\n");
}
执行后的输出结果是______。
A、1 B、2 C、4 D、死循环
答案:A
知识点:while语句和while语句构成的循环
252.
以下程序的输出结果是______。
main()
{ int num=0;
while(num<=2)
{
num++;
printf("%d\n",num);
}
}
答案:B
知识点:while语句和while语句构成的循环
253.
以下程序中,while循环的循环次数是______。
main()
{ int i=0;
while(i<10)
{
if(i<1) continue;
if(i==5) break;
i++;
}
……
}
A、1 B、10
C、6 D、死循环,不能确定次数
答案:D
知识点:while语句和while语句构成的循环
254.
t为int类型,进入下面的循环之前,t的值为0
while(t=1)
{ …… }
则以下叙述中正确的是______。
A、循环控制表达式的值为0
B、循环控制表达式的值为1
C、循环控制表达式不合法
D、以上说法都不对
答案:B
知识点:while语句和while语句构成的循环
255.
有如下程序
main()
{ int n=9;
while(n>6)
{ n--;
printf("%d",n);
}
}
该程序段的输出结果是______。
A、987 B、876 C、8765 D、9876
答案:B
知识点:while语句和while语句构成的循环
256.有以下程序
main()
{int p[7]={11,13,14,15,16,17,18}; inti=0,k=0;
while(i<7&&p[i]%2)
{
k=k+p[i];
i++;
}
printf("%d\n",k);
}
执行后输出结果是______。
A、58 B、56 C、45 D、24
答案:D
知识点:while语句和while语句构成的循环
257.
要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是______。
A、while((ch=getchar())!='N'printf("%c",ch) ;
B、while(ch=getchar()!='N'printf("%c",ch) ;
C、while(ch=getchar())=='N'printf("%c",ch);
D、while((ch=getchar())=='N'printf("%c",ch);
答案:A
知识点:while语句和while语句构成的循环
258.
有以下程序段
int k=0;
while(k=1) k++;
while循环执行的次数是______。
A、无限次
B、有语法错,不能执行
C、一闪也不执行
D、执行1次
答案:A
知识点:while语句和while语句构成的循环
259.
以下程序的输出结果是______。
main()
{
int n[3][3],i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
n[i][j]=i+j;
for(i=0;i<2;i++)
for(j=0;j<2;j++)n[i+1][j+1]+=n[i][j];
printf("%d \n",n[i][j]);
}
A、14 B、0 C、6 D、值不确定
答案:C
知识点:循环结构的嵌套
260.
有以下程序
main()
{ int i,j,x=0;
for(i=0;i<2;i++)
{ x++;
for(j=0;j<=3;j++)
{ if(j%2)
continue;
x++;
}
x++;
}
printf("x=%d\n",x);
}
程序执行后的输出结果是______。
A、x=4 B、x=8 C、x=6 D、x=12
答案:B
知识点:循环结构的嵌套
261.
下列程序的输出结果是______。
main()
{ int i,j,m=0,n=0;
for(i=0;i<2;i++)
for(j=0;j<2;j++)
if(j>=i) m=1;
n++;
printf("%d \n",n);
}
A、4 B、2 C、1 D、0
答案:C
知识点:循环结构的嵌套
262.
有以下程序
main()
{
int i,n=0;
for(i=2;i<5;i++)
{
do
{
if(i%3)
continue;
n++;
}
while(!i);
n++;
}
printf("n=%d\n",n);
}
程序执行后的输出结果是______。
A、n=5 B、n=2 C、n=3 D、n=4
答案:D
知识点:循环结构的嵌套
263.
阅读下列程序:
main()
{ int n[3],i,j,k;
for(i=0;i<3;i++)
n[i]=0;
k=2;
for(i=0;i
for(j=0;j
n[j]=n[i]+1;
printf("%d\n",n[1]);
}
下述程序运行后输出结果是______。
A、2 B、1 C、0 D、3
答案:D
知识点:循环结构的嵌套
287.
若有定义和语句:
chars[10]:s="abcd";printf("%s\n",s);
则结果是(以下u代表空格) ______。
A、输出abcd B、输出a
C、输出abcduuuuu D、编译不通过
答案:D
知识点:用一个一维字符数组来存放字符串
295.
函数调用:strcat(strcpy(str1,str2),str3)的功能是______。
A、将串str1复制到串str2中后再连接到串str3之后
B、将串str1连接到串str2之后再复制到串str3之后
C、将串str2复制到串str1中后再将串str3连接到串str1之后
D、将串str2连接到串str1之后再将串str1复制到串str3中
答案:C
知识点:用于字符串处理的函数
298.
以下正确定义字符串的语句是______。
A、char str[]={'\064'};
B、char str="\x43";
C、char str='';
D、char str[]="\0";
答案:D
知识点:字符串的输入和输出
305.
有以下程序
main()
{
char s[]="\n123\\";
printf("%d,%d\n",strlen(s),sizeof(s));
}
执行后输出结果是______。
A、赋初值的字符串有错 B、6,7
C、5,6 D、6,6
答案:C
知识点:字符串数组
308.
若有以下定义和语句
char c1='b',c2='e';
printf("%d,%c\n",c2-c1,c2-'a'+'A');
则输出结果是: ______。
A、 2,M B、3,E C、2,E
D、输出项与对应的格式控制不一致,输出结果不确定
答案:B
知识点:字符变量
309.
已定义c为字符型变量,则下列语句中正确的是______。
A、c='97'; B、c="97"; C、c=97; D、c="a";
答案:C
知识点:字符变量
310.
数字字符 0 的ASCII值为48,若有以下程序______。
main()
{
char a='1',b='2';
printf("%c,",b++);
printf("%d\n",b-a);
}
程序运行后的输出结果是
A、3,2 B、50,2 C、2,2 D、2,50
答案:C
知识点:字符型常量
311.以下程序的输出结果是______。
main()
{ char c='z';
printf("%c",c-25);
}
A、a B、Z C、z-25 D、y
答案:A
知识点:字符型常量
312.
若变量a是int类型,并执行了语句:a='A'+1.6;,则正确的叙述是______。
A、a的值是字符C B、a的值是浮点型
C、不允许字符型和浮点型相加
D、a的值是字符'A'的ASCII值加上1
答案:D
知识点:字符型常量
313.
下列程序执行后的输出结果是______。
main()
{
int x='f';
printf("%c \n",'A'+(x-'a'+1));
}
A、G B、H C、I D、J
答案:A
知识点:字符型常量
314.
以下程序的输出结果是______。
main()
{ int i;
for(i='A';i<'I';i++,i++)printf("%c",i+32);
printf("\n");
}
A、编译不通过,无输出 B、aceg
C、acegi D、abcdefghi
答案:B
知识点:字符型常量
315.
有如下程序
#include
main()
{
printf("%d\n",NULL);
}
程序运行后的输出结果是______。
A、0 B、1 C、-1 D、NULL没定义,出错
答案:A
知识点:字符型常量
316.
设有说明语句:char a='\72';则变量a______。
A、包含1个字符 B、包含2个字符
C、包含3个字符 D、说明不合法
答案:A
知识点:字符型常量
317.
下面程序的功能是输出以下形式的金字塔图案是:
*
***
*****
*******
main()
{ int i,j;
for(i=1;i<=4;i++)
{ for(j=1;j<=4-i;j++)
printf(" ");
for(j=1;j<=____;j++)printf("*");
printf("\n");
}
}
在下划线处应填入的是______。
A、i B、2*i-1 C、2*i+1 D、i+2
答案:B
知识点:for循环嵌套
318.
有以下程序
main()
{int num[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("%4c",' ');
for(j=____;j<4;j++)printf("%4d",num[i][j]);
printf("\n");
}
}
若要按以下形式输出数组右上半三角
1 2 3 4
6 7 8
11 12
16
则在程序下划线处应填入的是______。
A、i-1 B、I C、i+1 D、4-i
答案:B
知识点:for循环嵌套
319.
有以下程序
main()
{ int a=1,b;
for(b=1;b<=10;b++)
{ if(a>=8) break;
if(a%2==1)
a+=5; continue;}
a-=3;
}
printf("%d\n",b);
}
程序运行后的输出结果是______。
A、3 B、4 C、5 D、6
答案:B
知识点:程序分析
320.
以下程序的功能是:给r输入数据后计算半径为r的圆的面积s程序在编译时出错。
main()
/* Bejinning */
{ int r;
float s;
scanf("%d",&r);
s=*π*r*r;
printf("s=%f\n",s);
}
出错的原因是______。
A、注释语句书写位置错误
B、存放圆半径的变量r不应该定义为整形
C、输出语句中格式描述符非法
D、计算圆面积的赋值语句中使用了非法变量
答案:D
知识点:程序分析
322.
要求以下程序的功能是计算:s=1+1/2+1/3+...+1/10
main()
{ int n;
float s;
s=1.0;
for(n=10;n>1;n--)
s=s+1/n;
printf("%6.4f\n",s);
}
程序运行后输出结果错误,导致错误结果的程序运行是______。
A、s=1.0; B、for(n=10;n>1;n--);
C、s=s+1/n; D、printf("%6.4f\n",s);
答案:C
知识点:程序分析
326.
有以下程序
main()
{ int a,b,d=25;
a=d/10%9;
b=a&&(-1);
printf("%d,%d\n",a,b);
}
程序运行后的输出结果是______。
A、6,1 B、2,1 C、6,0 D、2,0
答案:B
知识点:程序分析
328.
若执行下面的程序时从键盘上输入3和4,则输出是______。
main()
{ int a,b,s;
scanf("%d %d",&a,&b);
s=a;
if(a
s=b;
s=s*s;
printf("%d\n",s);
}
A、14 B、16 C、18 D、20
答案:B
知识点:程序分析
329.
以下程序的输出结果是______。
#include
main()
{ int i;
for(i=1;i<5;i++)
{ if(i%2) printf("*");
else continue;
printf("#");
}
printf("$\n");
}
A、*#*#*#$ B、#*#*#*$
C、*#*#$ D、#*#*$
答案:C
知识点:程序分析
331.
以下程序的输出结果是______。
main()
{ int i;
for(i=1;i<6;i++)
{
if(i%2) { printf("#");continue; }
printf("*");
}
printf("\n");
}
A、#*#*# B、##### C、***** D、*#*#*
答案:A
知识点:程序分析
332.
以下程序的输出结果是______。
#include
main()
{
int i=0,a=0;
while(i<20)
{
for(;;)
{
if(i%10==0) break;
else i--;
}
i+=11;
a+=i;
}
printf("%d\n",a);
}
A、21 B、32 C、33 D、11
答案:B
知识点:程序分析
333.
下面程序的输出结果是______。
#include
main()
{
int i=2;
printf("%d",f(i,i+1));
}
int f(int a,int b)
{
int c;
c=a;
if(a>b) c=1;
else if(a==b) c=0;
else c=-1;
return(c);
}
A、-1 B、0 C、1 D、2
答案:A
知识点:程序分析
336.
下面的程序运行结果为______。
main()
{
int x=3,y=0,z=0;
if(x=y+z) printf("* * * *");
else printf("# # # #");
}
A、有语法错误不能通过编译
B、输出* * * *。
C、可以通过编译,但是不能通过连接,因而不能运行。
D、输出# # # #。
答案:D
知识点:程序分析
337.
若执行以下程序时从键盘上输入9,则输出结果是______。
main()
{ int n;
scanf("%d",&n);
if(n++<10)printf("%d\n",n);
else printf("%d\n",n--);
}
A、11 B、10 C、9 D、8
答案:B
知识点:程序分析
339.
下列条件语句中,功能与其他语句不同的是______。
A、if(a) printf("%d\n",x); elseprintf("%d\n",y);
B、if(a==0) printf("%d\n",y);else printf("%d\n",x);
C、if(a!=0) printf("%d\n",x);else printf("%d\n",y);
D、if(a==0) printf("%d\n",x);else printf("%d\n",y);
答案:D
知识点:if语句
340.
有以下程序
#include
main()
{charp[]={'a','b','c'}; charq[10]={'a','b','c'};
printf("%d%d\n",strlen(p),strlen(q));
}
以下叙述中正确的是______。
A、在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3
B、由于p数组中没有字符串结束符,长度不能确定,但q数组中字符串长度为3
C、由于q数组中没有字符串结束符,长度不能确定,但p数组中字符串长度为3
D、由于p和q的数组中都没有字符串结束符,故长度不能确定
答案:B
知识点:一维数组
341.有以下程序
main()
{char p[]={'a','b','c'},q[]="abc";
printf("%d%d\n",sizeof(p),sizeof(q));
};
程序运行后和输出结果是______。
A、4 4 B、3 3 C、3 4 D、4 3
答案:C
知识点:一维数组
342.
当把以下四个表达式用作if语句的控制表达式时,有一个选项含义不同,这个选项是______。
A、K%2 B、K%2==1
C、(K%2)!=0 D、!K%2==1
答案:D
知识点:表达式
343.
以下叙述中错误的是______。
A、C语句必须以分号结束
B、复合语句在语法上被看作一条语句
C、空语句出现在任何位置都不会影响程序运行
D、赋值表达式末尾加分号就构成赋值语句
答案:C
知识点:概念
344.
若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是______。
A、++x,y=x-- B、x+1=y
C、x=x+10=x+y D、double(x)/10
答案:A
知识点:算术表达式
345.
以下叙述中正确的是______。
A、C程序中注释部分可以出现在程序中任意合适的地方
B、花括号“{”和“}”只能作为函数体的定界符
C、构成C程序的基本单位是函数,所有函数名都可以由用户命名
D、分号是C语言之间的分隔符,不是语句的一部分
答案:A
知识点:概念
填空复习题
1.
以下程序的输出结果是______。
main()
{ int a=0;
a+=(a=8);
printf("%d\n",a);
}
答案:16
知识点:赋值表达式
2.
若有定义:int a=10,b=9,c=8;接着顺序执行下列语句后,变量b中的值是______。
c=(a-=(b-5));
c=(a % 11)+(b=3);
答案:3
知识点:赋值表达式
3.
以下程序运行后的了输出结果是______。
main()
{ int a=1,b=2,c=3;
if(c=a) printf("%d\n",c);
else printf("%d\n",b);
}
答案:1
知识点:赋值表达式
4.
若有语句
int i=-19, j=i%4;
printf("%d\n",j);
则输出结果是______。
答案:-3
知识点:算术表达式
7.
设y 是int型变量,请写出判断y为奇数的关系表达式______。
答案:y%2
知识点:算术表达式
12.
下面程序的输出是______。
main()
{ int x=2;
while(x--);
printf("%d\n", x);}
答案:-1
知识点:自加、自减运算符和逗号运算符
19.
以下程序的输出结果是______。
void fun()
{ static int a=0;
a+=2; printf("%d",a);
}
main()
{ int cc;
for(cc=1;cc<4;cc++) fun();
printf("\n")
}
答案:246
知识点:函数的调用
21.
若有以下程序
int f(int x,int y)
{ return(y-x)*x; }
main()
{ int a=3,b=4,c=5,d;
d=f(f(3,4),f(3,5));
printf("%d\n",d);
}
执行后输出结果是______。
答案:9
知识点:函数的调用
27.
以下程序的输出结果是______。
main ()
{inta[3][3]={{1,2,9},{3,4,8},{5,6,7}},i,s=0;
for(i=0;i<3;i++)s+=a[i][i]+a[i][3-i-1];
printf("%d\n",s);
}
答案:30
知识点:二维数组的定义和二维数组元素的引用
32.
以下程序段的输出结果是______。
int i=9;
printf("%o\n",i);
答案:11
知识点:数据输出
34.
有以下程序
#include
main()
{ char ch1,ch2; int n1,n2;
ch1=getchar(); ch2=getchar();
n1=ch1-'0'; n2=n1*10+(ch2-'0');
printf("%d\n",n2);
}
程序运行时输入:12<回车>,执行后输出结果是______。
答案:12
知识点:数据输入
36.
以下程序运行后的输出结果是______。
main()
{int a=1,b=3,c=5;
if (c=a+b) printf("yes\n");
else printf("no\n");
}
答案:yes
知识点:if语句和用if语句构成的选择结构
37.
若从键盘输入58,则以下程序输出的结果是______。
main()
{ int a;
scanf("%d",&a);
if(a>50) printf("%d",a);
if(a>40) printf("%d",a);
if(a>30) printf("%d",a);
}
答案:585858
知识点:if语句和用if语句构成的选择结构
39.
以下程序的输出结果是______。
main()
{ int a=5,b=4,c=3,d;
d=(a>b>c);
printf("%d\n",d);
}
答案:0
知识点:关系运算和逻辑运算
40.
若有以下程序
main()
{ int p,a=5;
if(p=1!=0)
printf("%d\n",p);
else
printf("%d\n",p+2);
}
执行后输出结果是______。
答案:1
知识点:关系运算和逻辑运算
41.
表示条件:10
答案:(x>10&&x<100||x<0)
知识点:关系运算和逻辑运算
42.
若已知a=10,b=20,则表达式 !a
答案:1
知识点:关系运算和逻辑运算
43.
表示“整数x的绝对值大于5”时值为“真”的C语言表达式是______。
答案:x>5||x<-5
知识点:关系运算和逻辑运算
45.
以下程序运行后的输出结果是______。
main()
{int p=30;
printf("%d\n",(p/3>0 ?p/10:p%3));
}
答案:3
知识点:条件表达式构成的选择结构
46.
以下程序运行后的输出结果是______。
main()
{
int x,a=1,b=2,c=3,d=4;
x=(ax)?x:d;
printf("%d\n",x);
}
答案:1
知识点:条件表达式构成的选择结构
49.
有以下程序
main()
{ int t=1,i=5;
for(;i>=0;i--) t*=i;
printf("%d\n",t);
}
执行后输出结果是______。
答案:0
知识点:for语句和用for语句构成的循环结构
50.
以下程序的输出结果是______。
main()
{ int s,i;
for(s=0,i=1;i<3; i++,s+=i);
printf("%d\n",s);
}
答案:5
知识点:for语句和用for语句构成的循环结构
53.
以下程序运行后的输出结果是______。
main()
{int p[7]={11,13,14,15,16,17,18};
int i=0,j=0;
while(i<7&&p[i]%2==1)j+=p[i++];
printf("%d\n",j);
}
答案:24
知识点:while语句和while语句构成的循环
55.
执行以下程序后,输出'#'号的个数是______。
#include
main()
{int i,j;
for (i=1;i<5;i++)
for (j=2;j<=i;j++) putchar('#');
}
答案:6
知识点:循环结构的嵌套
60.
以下程序的输出结果是______。
main()
{ char s[]="abcdef";
s[3]='\0';
printf("%s\n",s);
}
答案:abc
知识点:用一个一维字符数组来存放字符串
64.
下列程序段的输出结果是______。
main()
{ char b[]="Hello,you"
b[5]=0;
printf("%s\n",b);
}
答案:Hello
知识点:字符串数组
68.
以下程序运行后的输出结果是______。
main()
{char m;
m='B'+32;
printf("%c\n",m);
}
答案:b
知识点:字符型常量
69.
已知字母A的ASCII码为65.以下程序运行后的输出结果是______。
main()
{char a,b;
a=’A’+’5’-‘3’; b=a+’6’-‘2’;
printf(“%d%c\n”,a,b);
}
答案:67G
知识点:字符型常量
71.
若有以下程序
main()
{ char a;
a='H'-'A'+'0';
printf("%c\n",a);
}
执行后输出结果是______。
答案:7
知识点:字符型常量
72.
以下程序的功能是计算:1+12+123+1234+12345。请填空。
Main()
{int t= 0,s=0,I;
for (I=1;I<=5;I++)
{t=I+______;s=s+t;}
printf(“s=%d\n”,s);
}
答案:t*10~10*t
知识点:程序分析
74.
以下函数的功能是:求x的y次方,请填空。
double fun(double x,int y)
{ int i;
double z;
for(i=1,z=x;i
return z;
}
答案:x
知识点:程序分析
一选择题(7分,每小题0.5分)
1.C语言源程序的基本单位是()。
A 过程 B 函数 C 子程序 D 标识符
2.下列程序的输出结果是()。
main( )
{ int a=7,b=5;
printf("%d\n",b=b/a);
}
A 5 B 1 C 0 D不确定值
3.假设变量a,b均为整型,表达式(a=5,b=2,a>b?a++:b++,a+b)的值是()。
A 7 B 8 C 9 D 2
4.设a为int型变量,执行下列赋值语句后,a的取值分别是()。
a=125.534; a=(int)125.521%4;a=5<<2;
A 125,31,1 B 125,1,20 C 125,31,20 D125.534,2,20
5.设有如下程序段,下面描述中正确的是()。
int k=10; while(k=0) k=k-1;
A 循环执行一次 B循环是无限循环 C循环体语句一次也不执行 D循环体语句执行一次
6.以下程序的输出结果为()。
int i;
void prt( )
{ for(i=5;i<8;i++)printf("%c",'*');
printf("\t");
}
main( )
{ for(i=5;i<=8;i++) prt( );
}
A *** B *** *** *** *** C *** *** D * **
7.在C语言程序中,以下说法正确的是( )。
A函数的定义可以嵌套,但函数的调用不可以嵌套
B函数的定义不可以嵌套,但函数的调用可以嵌套
C函数的定义和函数的调用都不可以嵌套
D函数的定义和函数的调用都可以嵌套
8.以下函数调用语句中含有()个实参。
func((e1,e2),(e3,e4,e5));
A 2 B 3 C 5 D 语法错误
9.以下程序的输出结果为()。
#define ADD(x) x*x
main( )
{ int a=4,b=6,c=7,d=ADD(a+b)*c;
printf("d=%d",d);
}
A d=70 B d=80 C d=140 D d=700
10.已知职工记录描述如下,在Turbo C中,系统为变量w分配()字节的空间。
struct worker
{ int no;
char name[20];
char sex;
union
{ int day; int month; int year;}birth;
} w;
A 29 B 20 C 25 D 6