程序设计基础练习题全部有答案版.docx
- 文档编号:25757884
- 上传时间:2023-06-13
- 格式:DOCX
- 页数:58
- 大小:327.42KB
程序设计基础练习题全部有答案版.docx
《程序设计基础练习题全部有答案版.docx》由会员分享,可在线阅读,更多相关《程序设计基础练习题全部有答案版.docx(58页珍藏版)》请在冰豆网上搜索。
程序设计基础练习题全部有答案版
一、单项选择题(每小题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)
#include
{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. #include 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; 则会发生的情况是( 但连接出错 #include {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的值进 行交换。 请填空。 #include {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++;}/*如果
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 基础 练习题 全部 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)