程序设计基础练习题全部有答案版.docx

上传人:b****7 文档编号:25757884 上传时间:2023-06-13 格式:DOCX 页数:58 大小:327.42KB
下载 相关 举报
程序设计基础练习题全部有答案版.docx_第1页
第1页 / 共58页
程序设计基础练习题全部有答案版.docx_第2页
第2页 / 共58页
程序设计基础练习题全部有答案版.docx_第3页
第3页 / 共58页
程序设计基础练习题全部有答案版.docx_第4页
第4页 / 共58页
程序设计基础练习题全部有答案版.docx_第5页
第5页 / 共58页
点击查看更多>>
下载资源
资源描述

程序设计基础练习题全部有答案版.docx

《程序设计基础练习题全部有答案版.docx》由会员分享,可在线阅读,更多相关《程序设计基础练习题全部有答案版.docx(58页珍藏版)》请在冰豆网上搜索。

程序设计基础练习题全部有答案版.docx

程序设计基础练习题全部有答案版

一、单项选择题(每小题2分,共20分)第一章

D1.下列说法中错误的是()。

A、程序的执行总是从主函数开始

B、主函数可以调用任何非主函数的其它函数

C、任何非主函数可以调用其它任何非主函数

D、程序可以从任何非主函数开始执行

C2.若a=4,b=7,则输出4*7=28的语句是()。

A、printf(“a*b=%d\n”a+b);

B、printf(“a*b=%d\n”,a*b);

C、printf(“%d*%d=%d\n,a,b,a*b);

Dprintf(“%d*%d=%d\n,a+b);

第三章

C1.C语言中int型数据占2个字节,则long型数据占(C)

个字节。

A1

B、2

C、4

D8

D2.若C中int

型数据占

2个字节,则

double型数据占(D)个

字节。

A1

B、2

C、4

D8

B3.若a为整型变数,则以下语句(B)。

a=-2L;

printf(“%d\n”,a);

A、赋值不合法B、输出-2C、输出不确定值D输出

2

D4.若int型数据占2个字节,则下列语句的输出为(D)。

intk=-1;

printf(“%d,%u\n”,k,k);

A、-1,-1B、-1,32767C、-1,32768D、-1,65535B5.下列程序的输出是(B)。

#include

main()

{printf(“%d\n”,null);}

A、0B、变量无定义C、-1D1

C6.若x为float型变数,则以下语句:

x=223.82748;

printf("%6.2f\n",x);

运行结果为(C)

A223.8

B、

223.82

C、223.83

D、

223.827

D7.

设有语句inta=3;则执行语句

a+=a-=a*a

后,变量

的值是

B、0

C、9

D-12

第四章

A1.

执行语句:

a=5,b=8;printf(

%d\n”

c=a/b);

后输出的值为(A)

B、0.6

C、0.625

D、0.

B2.

F列语句

intk=8567;

printf(

“|%06d|\n

k);

A、输出格式描述符不合法

B、输出为||

C、输出为|8567|

输出为卜08567|

C3.

intk=8567;

printf(

“|%-06d|\n

k);

A、输出格式描述符不合法

B、输出为||

C、输出为|8567

输出为卜08567|

C4.

若ch为字符型,k为整,则执行下列语句

后的输出为(C

ch='a';

k=12;

printf(

“%x,%o,”

ch,ch,k);

printf(

k=%%d\n

k)

因变量类型与格式描述符的类型不匹配,输出无定值;

B、

输出项与格式描述符个数不符,输出为

0或不定值;

C、

61,141,k=%d;

D、

61,141,k=%12

D5.

若k,g为int型变数,则下列语句的输出

(D)

k=017;

g=111;

printf(

“%d,%x\n”,++k,g++);

A15,6f

B16,70

C、15,71

D16,6f

 

C、

A7.

I#include

main()

{inta=4,b=7;

printf(

“%d\n”,(a=a+1,b+a,b+1));

II#include

main()

{inta=1,b=2;

printf(

输出5,

输出5,

II

II

#include

main()

{intm=7,n=4;

“%d\n”,a=a+1,a+b,b+1));

输出2

输出3

floata=38.4,b=6.4,x;

x=m/2+n*a/b+1/2;

printf(

%f\n

x);

27.

第五章

C、

28.

D1.

true

C2.

B、I输出

D、I输出

F列程序的输出为(A

B、27.

D28.

8,II

8,II

在C语言中,能代表逻辑值“真”

B、大于0的数C、非0整数

若给定表达式

则其中表达式M(C)

D3.

输出2

输出3

的是(D)

D非0的数

(M?

(a++):

(a--),

入和(M==0)等价

、和(M!

=0)

等价

在C语言的

B、

if

为(D)

A、关系表达式

B、

D4.

C、算术表达式

D、

#include

和(m==1)等价

和(M!

=1)等价

语句中,用作判断的表达式

逻辑表达式

任意表达式

以下程序的输出是(D)

 

main()

{inti,j,k,a=3,b=2;

j=a++;k=b;

 

B5.

执行下面的程序:

main(){intx;

seanf("%d",&x);

if(x++>5)printf("%d\n",x);

elseprintf("%d\n",-x);

若输入5,则输出为(B)

6.

有程序段:

inta,b;

a=9;b=10;

a=2,b=5,a>b?

a++:

b++,a+b

的值为(B)

C、9

#inelude

voidmain(){inta,b,e;

a=10;b=50;e=30;

if(a>b)a=b,

b=e;e=a;

printf(

“a=%d,b=%d,c=%d\rT,a,b,e);

 

Aa=10,b=50,e=10

B、a=10,b=30,e=10

C、a=50,b=30,c=10Da=50,b=30,c=50

C9.下面程序运行后输出的结果是()

main()

{intn;

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

switch(n)

{case1:

printf(“%d,n);

case2:

printf(“%d,n);default:

printf(“%d,n)

}

}

A、012B、120C、D

10.下面程序的输出是(B)o

#include

voidmain()

{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\rT,a,b);

}

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

第六章

1.下面循环的执行次数是(4)次。

n=0;

while(++n<5)

{printf("%3d\n",n);}

结构是(A)。

A、顺序结构、选择结构、循环结构;B、if、switch、break;

C、for、while、do-while;Dif、goto、continue

3.在C语言中,为了结束while语句构成的循环,while后一对圆括号中表达式的值应该为(A)。

A0B、1C、trueD非0

4.在C语言中,为了结束do-while语句构成的

5.

循环,while后一对圆括号中表达式的值应该为(A)

while(k=0)k=k-1;

A、10次

6.

k=2;

while(k==0)printf(“%cT,k),k--;

printf(“\n”);

A、无限次B0次C、1次D2次

7.下面程序执行后,k的值是(C)

#include

main()

{

intk=2;

while(k==0)

printf("%d",k),k--;

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

printf("\n");

}

A0B、1C、2D、-2

8.下面程序的输出为(B)

#includemain()

{inti,j,x=0;

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

"do.”of•:

•n“3y.:

go-.b.920*-p,

x++;

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

数组中的所有元素赋值,则在下划线处应填入的是(

#defineN10voidarrin(intx[N]){intk=0;

while(kvN)

(D)

C、intc[2][]={{1,2},{3,4}};6

d[3][2]={{1,2},{34}};

A

B、

char*str;str=”string”;

charstr[7]={‘s','t','r','i'

n,g};

C、

charstr[10];str[10]=

string;

D

charstr1[]=”string”

str2[]=””;

strcpy(str2,str1);

若有以下定义和语句,

则输出结果是(C

chars[12]=

”abook!

”;

printf(“%(”

strlen(s));

A9B、

8C、7D

6

不正确的字符串赋值或赋初值方式是

O

6.若有以下定义和语句,则输出结果是(B)o

chars[]=”abook!

”;

printf(“%d,sizeof(s));

A9B、8C、7D6

第八章

C1.C语言可执行程序的开始执行点是()。

A、第一条可执行语句B、第一个函数

C、main函数D、包含文件中的第一个函数

C2.C语言中规定,若对函数类型未加显示说明,则函数的隐含类型为()。

AvoidB、doubleC、intD、char

C3.C语言程序中,当调用函数时()。

(不确定)

A、实参和形参各占一个独立的存储单元

B、实参和形参可以共享存储单元

C、可以由用户指定是否共享存储单元

D、由计算机系统自动确定是否共享存储单元

C4.下面程序的输出结果为()。

#include

voidmain()

{intf();

inti=2,k;

k=f(i,++i);

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

intf(inta,intb)

{intc;

c=a;

if(a>b)c=1;

elseif(a==b)c=0;

elsec=-1;

return(c);

}

A2B、1C、-1D0

A5.下面程序的输出结果是()。

#include

main()

{intfunc(inta,intb);

o

intk=4,m=1,p;

p=func(k,m);

printf("%d,",p);

p=func(k,m);

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

}

intfunc(inta,intb)

{staticintm,n=2;

n+=m+1;

m=n+a+b;

return(m);

}

A8,17B、8,16C、8,20D、8,8

第九章

C1.以下叙述正确的是()。

A、在程序的一行上可以出现多个预处理命令行

B、预处理行是C的合法语句

C、被包含的檔不一定以.h作为后缀

D、在以下定义中CR是称为“宏名”的标识符

#definefc4566CR

B2.在“檔包含”预处理语句的使用形式中,当#include

后面的文件名用“”(双引号)括起时,寻找被包含檔的方式是()。

A、直接按系统设定的标准方式搜索目录

B、先在源程序所在目录搜索,再按系统设定的标准方式搜索

C、仅仅搜索源程序所在目录

D、仅仅搜索当前目录

C3.以下叙述中不正确的是()。

A、预处理命令行都必需以#开始

B、在程序中凡是以#号开始的语句行都是预处理命令行

C、程序在执行过程中对预处理命令行进行处理

D、在下是正确的宏定义

#defineIBM_PC

#definePT3.5#defineS(x)PT*x*x

main()

inta=1,b=2;

5.

printf(

14.0

%4.1f\n

B、31.5

S(a+b));3.5*a+b*a+b

C、

7.5

D、10.5

F面程序运行后输出的结果

 

#include"stdio.h"

#defineMIN(x,y)(x)<(y)?

(x):

(y)

main()

inta,b,c;

a=10,b=20;

c=8*MIN(a,b);

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

#include"stdio.h"#defineMIN(x,y)(x)<(y)?

(x):

(y)main()inta,b,c;

a=10,b=20;

c=8*MIN(a,b)-5;

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

7.下面程序运行后输出的结果是(

#include"stdio.h"

#defineMIN(x,y)(x)<(y)?

(x):

(y)

main()

ndpl.n

 

inta,b,c;

a=10,b=20;

c=MIN(a+b,a-b)*8;

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

 

10

B、20

C、-80

D-10

第十章

1.若有以下定义和语句,且

0

2.

A*(a+i)

B、a[p-a]

C、p+i

D、p[i]

若有以下定义和语句,且

0wiw10,则对数组元素的正确引

 

用是(D)

char*alpha[6]=

char**p;

main()

{intk;

p=alpha;

4.

#includemain(){inta[]={1,2,3,4,5,6},*p;

p=a;*(p+3)+=2;

 

 

intc[4][5],(*cp)[5];cp=c;

*(*cp+2)

第十一章

1.共享体变数中起作用的成员是(C)。

A、第一次存放的成员;B、中间存放的成员;

C、最后一次存放的成员;D、所有的成员。

2.若有以下程序段,则值为101的表达式是(C)。

structwc

{inta;

int*b;

}*p;

intx0[]={11,12},x1[]={31,32};

structwcx[2]={100,x0,300,x1};

p=x;

那么

D3.如果在C程序中有main(floatargc,char*argv[]),

类型定义错误的参数是(

D、argc

.若程序中由下面的说明和定义:

structstt{intx;charb;}structstta1,a2;

则会发生的情况是(

但连接出错

#includevoidmain()

{unsignedinta=32,b=66;

第十二章

1.下面程序的输出是(D)。

#include

main()

{unsignedinta=3,b=10;

printf("%d\n",a<<2|b>>1);

}

A1B、5C、12D13

3.若int型是2个字节,下面程序运行后,输入331,则输出结

果为(C)。

#include

voidmain()

{

unsigneda,b,c,d;

printf("enter%%oa:

");

scanf("%o",&a);

b=a>>4;

c=~(~0<<4);

d=b&c;

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

}

A331,217B13,15C、15,13D217,331

4.若int型是2个字节,下面程序段运行后,若输入:

a=,n=3,则

输出的值为(A)。

main()

{

unsigneda,b,c,d;

intn;

scanf("a=%o,n=%d",&a,&n);

b=a<<(16-n);

c=a>>n;

d=c|b;

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

}

A75765B、35765C、13765D30000

D5.

表达式11&10的结果用二进制表示为()。

A11B、3C、1D10

B6.表达式9|5

的结果十进制表示为(

)。

A、12

B、13

C、14

D15

存取

二、程序填空题

第三章

1.要使下面程序的输出形式为:

12+10=22,-24+10=-14,请填空。

#inelude

voidmain()

{

inta,b,c,d;

unsignedu;

a=12;b=-24;u=10;

c=a+u;d=b+u;

printf(”【1]+【2]=%d,【3]+【4]=%d\n",a,u,c,【5]);

}

选择答案:

【1]%d【2]%d【3]%d【4]%d【5]b,u,d

第四章

2.下面程序不借助任务中间变量把a,b的值进

行交换。

请填空。

#includemain()

{inta,b;

printf(“Inputa,b:

”);

scanf(“%d,%d,

【1】&a,&b);

a+=【2]b;b=a-

【3]b;a-=【4】b

printf(“a=%d,b=%d\n”,【5】a,b);

}

第五章

3.下面程序输入一个学生的生日(年:

y0,月:

mQ日:

d0),并输入当前日期(年:

y1,月:

ml,日:

di)。

求出该学生的实足年龄。

请填空。

#include

main()

{int896$0小0成$1口191;

printf(”输入生日日期(年、月、日)");

scanf("%d,%d,%d",【1】&yO,&m0,&d0);

printf("输入当前日期(年、月、日)");

scanf("%d,%d,%d",【2】&y1,&m1,&d1);

age=y1-yO;

if(m0【3】>m1)age--;

if((mQ【4】==mi)&&(【5]dQ>di))age--;

printf("age=%3d\n",age);

}

4.下面程序输出乘法九九表。

#inelude

voidmain()

{inti,j;

for(i=i;i<【i]1Q;i++)

printf("%4d",i);

printf("\n\n");

for(i=i;i<【2】10;i++)

for(j=i;j

printf((j==【3】9)?

"%4d【4】\n":

"%4d",【5]

}

第六章

5.下面程序从读入的整数据中,统计大于0的

整数个数i和小于0的整数个数j,当输入0时,程序运行结束。

请填空。

#include

{【1]intn,i,j;

printf(“Inputintnumbers,with0toend:

”);

i=j=0;

scanf(“%d,&n);

while(【2]n!

=0)

{if(n>0)i=【3]i+1;

if(n<0)j=【4]j+1;

5]scanf(“%(”,&n);

}printf(“i=%d,j=%d\n”,i,j);

}

第七章

1.设数组a和数组b中分别有an和bn个有序

数,程序把数组a和数组b按由小到大的顺序合并到数组c中。

请填空。

#include

main()

{inta[10]={1,2,5,8,9,10},an=5;

intb[10]={1,3,4,8,12,18},bn=5;

inti,j,k,c[20],max=9999;

/*在a,b数组的后面都放上一个ma(大于数组中所有的数),

作为结束标志*/

a[an+1]=b[bn+1]=【1]max;

i=j=k=0;

/*若a[i],b[j]中有一个不等于max则尚有数未合并到c数

组中,循环继续进行*/

while((a[i]!

=max)||(b[j]!

=max))

if(a[i]

/*如果a[i]

else{c[k]=【4]b[j];k++;【5]j++;}/*如果

b[j]

for(i=0;i

rintf("%4d",c[i]);

printf("\n");

}

2.从键盘输入一个3行4列矩阵的数据,然后求其最大数。

请填空:

main()

{int【1】i,j,max,a[3][4];

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

scanf("%d",【2】&a[i][i]);

【3】max=a[O][O];for(i=0;i<3;i++)

for(j=0;j<4;j++)

if(max

printf("max=%d\n",【5]max);

}

第八章

3.下面程序求出数组a中所有素数的和。

请填空。

#include

#include【1】

main()

{intisprime(intx);

inti,a[10],sum=0;

printf("Inputarraya[10]

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 自考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1