600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 大学C语言期末考试题库试题及答案(2)

大学C语言期末考试题库试题及答案(2)

时间:2021-01-02 07:38:51

相关推荐

大学C语言期末考试题库试题及答案(2)

181

执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是______。

main()

{ char s[100];

int c,i;

scanf("%c",&c);

scanf("%d",&i);

scanf("%s",s);

printf("%c,%d,%s\n",c,i,s);

}

A、123,456,789 B、1,456,789

C、1,23,456,789 D、1,23,456

答案:D

知识点:数据输入

182

有定义语句:int b;char c[10];,则正确的输入语句是______。

A、scanf("%d%s",&b,&c);

B、scanf("%d%s",&b,c);

C、scanf("%d%s",b,c);

D、scanf("%d%s",b,&c);

答案:B

知识点:数据输入

184

若要求从键盘读入含有空格字符的字符串,应使用函数______。

A、getc() B、gets() C、getchar()D、scanf()

答案:B

知识点:数据输入

186

有以下程序

#include <stdio.h>

main()

{ char c1,c2,c3,c4,c5,c6;scanf("%c%c%c%c",&c1,&c2,&c3,&c4);

c5=getchar();

c6=getchar();

putchar(c1);

putchar(c2);

printf("%c%c\n",c5,c6);

}

程序运行后,若从键盘输入(从第1列开始) ______。

123<回车>

45678<回车>

则输出结果是

A、1267 B、1256 C、1278 D、1245

答案:D

知识点:数据输入

188

有以下程序

main()

{

int m,n,p;

scanf("m=%dn=%dp=%d",&m,&n,&p);

printf("%d%d%d\n",m,n,p);

}

若想从键盘上输入数据,使变量m中的值为123,n中的数值为456,p中的值为789,则正确的输入是______。

A、m=123n=456p=789

B、m=123 n456 p=789

C、m=123,n=456,p=789

D、123 456 789

答案:A

知识点:数据输入

189

有以下程序段

int m=0,n=0;

char c='a';

scanf("%d%c%d",&m,&c,&n);

printf("%d,%c,%d\n",m,c,n);

若从键盘上输入:10A10<回车>,则输出结果是______。

A、10,A,10 B、10,a,10

C、10,a,0 D、10,A,0

答案:A

知识点:数据输入

据输入

192

有定义语句:int x,y;,若要通过scanf("%d,%d",&x,&y);语句使变量x得到数据11,变量y得到数值12,下面四组输入形式中,错误的是______。

A、11 12<回车>

B、11,12<回车>

C、11, 12<回车>

D、11,<回车>

12<回车>

答案:A

知识点:数据输入

193

在嵌套使用if语句时,C语言规定else总是______。

A、和之前与其具有相同缩进位置的if配对

B、和之前与其最近的if配对

C、和之前与其最近的且不带else的if配对

D、和之前的第一个if配对

答案:C

知识点:if语句和用if语句构成的选择结构

195

假定所有变量均已正确说明,下列程序段运行后x的值是______。

a=b=c=0;x=35;

if(!a) x--;

else if(b) ;

if(c) x=3;

else x=4;

A、34 B、4 C、35 D、3

答案:B

知识点:if语句和用if语句构成的选择结构

196

有以下程序

main()

{

int i;

for(i=1;i<40;i++)

{

if(i++%5==0)

if(++i%8==0)

printf("%d ",i);

}

printf("\n");

}

执行后的输出结果是______。

A、5 B、24 C、32 D、40

答案:C

知识点:if语句和用if语句构成的选择结构

198

有如下程序

main()

{

int a=2,b=-1,c=2;

if(a<b)

if(b<0) c=0;

else c++;

printf("%d\n",c);

}

该程序的输出结果是______。

A、0 B、1 C、2 D、3

答案:C

知识点:if语句和用if语句构成的选择结构

199

请读程序:

#include<math.h>

#include<stdio.h>

main()

{ float x,y,z;

scanf("%f%f",&x,&y);

z=x/y;

while(z)

{ if(fabs(z)>1.0)

{ x=y; y=z; z=x/y; }

else break;

}

printf("%f\n",y);

}

若运行时从键盘上输入3.6 2.4<CR>(<CR>表示回车),则输出的结果是______。

A、1.500000 B、1.600000

C、2.000000 D、2.400000

答案:B

知识点:if语句和用if语句构成的选择结构

204

有以下程序

main()

{ int k=5,n=0;

while(k>0)

{ switch(k)

{ default : break;

case 1: n+=k;

case 2:

case 3: n+=k;

}

k- -;

}

printf("%d\n",n);

}

程序运行后的输出结果是______。

A、0 B、4 C、6 D、7

答案:D

知识点:switch语句以及用switch语句和break语句构成的选择结构

207

有以下程序

main()

{

int i;

for(i=0;i<3;i++)

switch(i)

{

case 1: printf("%d",i);

case 2: printf("%d",i);

default: printf("%d",i);

}

}

执行后输出结果是______。

A、011122 B、012 C、01 D、120

答案:A

知识点:switch语句以及用switch语句和break语句构成的选择结构

209

有如下程序

main()

{ int x=1,a=0,b=0;

switch(x)

{ case 0: b++;

case 1: a++;

case 2: a++;b++;

}

printf("a=%d,b=%d\n",a,b);

}

该程序的输出的结果是______。

A、a=2,b=1 B、a=1,b=1

C、a=1,b=0 D、a=2,b=2

答案:A

知识点:switch语句以及用switch语句和break语句构成的选择结构

210

以下程序的输出结果是______。

main()

{ int a=0,i;

for(i=1;i<5;i++)

{

switch(i)

{

case 0:

case 3: a+=2;

case 1:

case 2: a+=3;

default: a+=5;

}

}

printf("%d\n",a);

}

A、31 B、13 C、10 D、20

答案:A

知识点:switch语句以及用switch语句和break语句构成的选择结构

212

下列叙述中正确的是______。

A、break语句只能用于switch语句

B、在switch语句中必须使用default

C、break语句必须与switch语句中的case配对使用

D、在switch语句中,不一定使用break语句

答案:D

知识点:switch语句以及用switch语句和break语句构成的选择结构

213

设a为整型变量,不能正确表达数学关系:10<a<15的C语言表达式是______。

A、10<a<15

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<b);

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<b)&&!c||1

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<b?a:c<d?c:d的值是______。

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<b?b: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<x)?w:x;

m=(m<y)?m:y;

m=(m<z)?m:z;

则该程序执行后,m的值是______。

A、4 B、3 C、2 D、1

答案:D

知识点:条件表达式构成的选择结构

233有以下程序

main()

{

int k=4,n=0;

for(;n<k;)

{

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<n;i++) f*=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<k;i++)

for(j=0;j<k;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 <stdio.h>

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<b)

s=b;

s=s*s;

printf("%d\n",s);

}

A、14 B、16 C、18 D、20

答案:B

知识点:程序分析

329

以下程序的输出结果是______。

#include <stdio.h>

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 <stdio.h>

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 <stdio.h>

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 <string.h>

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 <stdio.h>

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<100或x<0的C语言表达式是______。

答案:(x>10&&x<100||x<0)

知识点:关系运算和逻辑运算

42

若已知a=10,b=20,则表达式!a<b的值为______.

答案: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=(a<b)?a:b; x=(x<c)?x:c;x=(d>x)?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 <stdio.h>

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<y;i++) z=z*______;

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。