01批次程序设计基础复习大纲答案.docx
《01批次程序设计基础复习大纲答案.docx》由会员分享,可在线阅读,更多相关《01批次程序设计基础复习大纲答案.docx(22页珍藏版)》请在冰点文库上搜索。
![01批次程序设计基础复习大纲答案.docx](https://file1.bingdoc.com/fileroot1/2023-6/23/e1fe66f3-dbe7-4b5b-b7c9-947753801267/e1fe66f3-dbe7-4b5b-b7c9-9477538012671.gif)
01批次程序设计基础复习大纲答案
对外经济贸易大学远程教育学院
2014-2015学年第一学期
《程序设计基础》复习大纲
一、单选题
1.下面描述中不正确的是( )
A.软件不仅仅是程序
B.程序是指令的集会,计算机语言是编写程序的工具
C.计算机语言都是形式化语言,它有严格的语法规则和定义
D.计算机语言只能编写程序而不能表示算法
2.C语言程序的基本单位是( )
A.语句 B.函数 C.程序行 D.字符
3.C语言中字符(char)数据在内存中存储的是( )
A.原码 B.补码 C.反码 D.ASCⅡ码
4.以下错误的转义字符是( )
A.’\\’ B.’\’’
C.’\81’ D.’\0’
5.已知:
chara;intb;floatc;doubled;执行语句c=a+b+c+d;后,变量c的数据类型是( )
A.int B.char C.float D.double
6.已知:
intx=1,y=2,z;则执行:
z=x>y?
++x:
++y;则z的值为( )
A.1 B.2 C.3 D.4
7.执行下面语句后x的值为inta=14,b=15,x;charc=’A’;x=((a&&b)&&(c<’a’));( )
A.TRUE B.FALSE C.0 D.1
8.下列四个选项中,均是C语言关键字的选项是( )
A.autoenuminclude B.switchtypedefcontinue
C.signedunionscanf D.ifstructtype
9.C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符( )
A.必须为字母
B.必须为下划线
C.必须为字母或下划线
D.可以使字母,数字和下划线中任一字符
10.若有定义:
inta=7;floatx=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是( )
A.2. B.2. C.3. D.0.
11.设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为( )
A.int B.float C.double D.不确定
12.表达式(a=3*5,a*5),a+5的值是多少( )
A.20 B.80 C.不能确定 D.15
13.语句:
printf("%d\n",12&&12);的输出结果是( )
A.12 B.1 C.24 D.0
14.若已定义x和y为double型,则表达式:
x=1,y=x+3/2的值是( )
A.1 B.2 C.2.0 D.2.5
15.若x和y都是int型变量,x=100,y=200,且有下面的程序片段:
printf("%d",(x,y));上面程序片段的输出结果是( )
A.200
B.100
C.200100
D.输出格式符不够,输出不确定的值
16.表达式:
10!
=9的值是( )
A.true B.非零值 C.0 D.1
17.若inta,b,c;则为它们输入数据的正确输入语句是( )
A.read(a,b,c); B.scanf(“%d%d%d”,a,b,c);
C.scanf(“%D%D%D”,&a,&b,&c); D.scanf(“%d%d%d’,&a,&b,&c);
18.若有条件表达式(exp)?
a++:
b--,则以下表达式中能完全等价于表达式(exp)的是( )
A.(exp==0) B.(exp!
=0) C.(exp==1) D..(exp!
=1)
19.能正确表示逻辑关系:
"a≥10或a≤0"的C语言表达式是( )
A.a>=10ora<=0 B.a>=0
a<=10
C.a>=10&&a<=0 D.a<=0
a>=10
20.在下列结论中,只有一个是错误的,它是( )
A.C语言允许函数的递归调用
B.C语言中的continue语句,可以通过改变程序的结构而省略
C.有些递归程序是不能用非递归算法实现的
D.C语言中不允许在函数中再定义函数
21.已知:
int *p,a;则语句“p=&a;”中的运算符“&“的含义是( )
A.位与运算 B.逻辑与运算 C.取指针内容 D.取变量地址
22.以下能对二维数组a进行正确初始化的语句是( )
A.inta[2][]={{1,0,1}{5,2,3}};
B.inta[][3]={{1,2,3},{4,5,6}};
C.inta[2][4]={{1,2,3},{4,5},{6}};
D.inta[][3]={{1,0,1},{},{1,1}};
23.执行语句for(i=1;i++<4;);后,i的值是( )
A.3 B.4 C.5 D.不定
24.已知:
char**s;正确的语句是( )
A.s=”computer”; B.*s=”computer”;
C.**s=”computer”; D.*s=’A’;
25.在进行文件操作时,写文件的一般含义是( )
A.将计算机内存中的信息存入磁盘 B.将磁盘中的信息存入计算机内存
C.将计算机CPU中的信息存入磁盘 D.将磁盘中的信息存入计算机CPU
26.以下对一维整型数组a的正确说明是( )
A.inta(10);
B.intn;scanf("%d",&n);inta[n];
C.intn=10,a[n];
D.#defineSIZE10(换行)inta[SIZE];
27.以下能正确定义一维数组的选项是( )
A.inta[5]={0,1,2,3,4,5}; B.chara[]={0,1,2,3,4,5};
C.chara={''A'',''B'',''C''}; D.inta[5]="0123";
28.程序段:
inta=5;printf(“%d\n”,(a=3*5,a*4,a+5));的输出结果为( )
A.45 B.20 C.15 D.10
29.要判断char型变量m是否是数字字符,可以使用下列表达式( )
A.0<=m&&m<=9 B.’0’<=m&&m<=’9’
C.”0”<=m&&m<=”9” D.前面三个答案均是错误的
30.以下说法中正确的是( )
A.C语言程序总是从第一个函数开始执行
B.在C语言程序中,main()函数可有可无
C.C语言程序总是从main()函数开始执行
D.C语言程序中的main()函数必须放在程序的开始部分
31.表示关系X<=Y<=Z的C语言表达式为( )
A.(X<=Y)&&(Y<=Z) B.(X<=Y)AND(Y<=Z)
C.(X<=Y<=Z) D.(X<=Y)&(Y<=Z)
32.判断字符串a和b是否相等,应当使用( )
A.if(a==b) B.if(a=b)
C.if(strcpy(a,b)) D.if(!
strcmp(a,b))
33.有以下语句:
intb;charc[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);
34.C语言中的函数( )
A.可以嵌套定义 B.不可以嵌套调用
C.可以嵌套调用,但不能递归调用 D.嵌套调用和递归调用均可
35.程序设计一般包含以下四个步骤,其中首先应该完成的是( )
A.设计数据结构和算法 B.建立数学模型
C.编写程序 D.调试运行程序
36.下面描述中,正确的是( )
A.主函数中的花括号必须有,而子函数中的花括号是可有可无的
B.一个C程序行只能写一个语句
C.主函数main是C程序启动时唯一的入口
D.函数体包含了函数说明部分
37.设int类型的数据长度为2个字节,则unsignedint类型数据的取值范围是( )
A.0~255 B.0~65535
C.-256~255 D.-32768~32767
38.已知inti=5;执行语句i+=++i;i的值是( )
A.10 B.11
C.12 D.以上答案都不对
39.表达式(int)2.1416的值是( )
A.2 B.2.1 C.0 D.3
40.if语句的控制条件( )
A.只能用关系表达式 B.只能用关系表达式或逻辑表达式
C.只能用逻辑表达式 D.可以用任何表达式
41.在C语言中,int、char和short三种类型数据所占用的内存( )
A.均为2个字节
B.由用户自己定义
C.由所用计算机的机器字长及编译环境决定
D.是任意的
42.在C语言中,数字029是一个( )
A.八进制数 B.十六进制数 C.十进制数 D.非法数
43.若二维数组a有m列,则在a[i][j]前的元素个数为( )
A..j*m+i B.i*m+j C.i*m+j-1 D.i*m+j+1
44.已知:
inta,*p=&a;则下列函数调用中错误的是( )
A.scanf(“%d”,&a); B.scanf(“%d”,p);
C.printf(“%d”,a); D.printf(“%d”,p);
45.下列对字符串的定义中,错误的是( )。
A.charstr[5]=“QBASIC”
B.charstr[]=“QBASIC”
C.char*str=“QBASIC”
D.charstr[]={‘Q’,‘B’,‘A’,‘S’,‘I’,‘C’}
46.以下关于运算符优先顺序的描述中正确的是( )
A.关系运算符<算术运算符<赋值运算符<逻辑运算符
B.逻辑运算符<关系运算符<算术运算符<赋值运算符
C.赋值运算符<逻辑运算符<关系运算符<算术运算符
D.算术运算符<关系运算符<赋值运算符<逻辑运算符
47.设intx=1,y=1;表达式(!
x||y--)的值是( )
A.0 B.1 C.2 D.-1
48.有定义charch;判断ch的值是否为小写字母的表达式为( )
A.‘a’<=ch=‘z’ B.(ch>=‘a’)&(ch<=‘z’)
C.(ch>=‘a’)AND(ch<=‘z’) D.ch>=97&&ch<=122
49.有定义:
inta=2,b=4;floatC=10;执行printf(“%f”,c+=a/b*0.5);的输出结果是( )
A.2.5 B.25 C.11 D.10
50.执行以下程序段后,a,b,c的值分别是( )inta,b=100,c,x=10,y=9;a=(--x==y++)?
--x;++y;if(x<9)b=x++;c=y;
A.9,9,9 B.8,8,10 C.9,10,9 D.1,11,10
51.下列说法中正确的是______。
( )
A.break用在switch语句中,而continue用在循环语句中。
B.break用在循环语句中,而continue用在switch语句中。
C.break能结束循环,而continue只能结束本次循环。
D.continue能结束循环,而break只能结束本次循环。
52.以下程序的输出结果是( )main( ){intn=4;while(n--)printf("%d",--n);}
A.20 B.31 C.321 D.210
53.若有:
do{i=a-b++;printf(“%d”,i);}while(!
i);则while中的!
i可用( )代替。
A.i==0 B.i!
=1 C.i!
=0 D.以上均不对
54.
执行以下程序段后,c3的值是
intc1=1,c2=2,c3;
c3=c1/c2;
( )
A.0 B.1/2 C.0.5 D.1
55.
若有以下程序段,其输出结果是
inta=0,b=0,c=0;
c=(a-=a-5),(a=b,b+3);
printf(“%d,%d,%d\n”,a,b,c);
( )
A.3,0,-10 B.0,0,5
C.-10,3,-10 D.3,0,3
56.
若a为int类型,且a=125,执行下列语句后的输出是
printf(“%d,%o,%x\n”,a,a+1,a+2)
( )
A.125,175,7D B.125,176,7F
C.125,176,7D D.125,175,2F
57.
以下程序的输出结果是()
main( )
{inta=12,b=12;
printf("%d%d\n",--a,++b);
}
A.1010 B.1212 C.1113 D.1110
58.
以下程序的输出结果是
main( )
{inta=-1,b=1;
if((++a<0)&&!
(b--<=0)) printf("%d%d\n",a,b);
else printf("%d%d\n",b,a);
}
A.-11 B.01 C.10 D.00
59.
若执行下面的程序从键盘输入3和4,则输出是
main( )
{ inta,b,s;
scanf("%d%d",&a,&b);
s=a;
if(a
s=s*s;
printf("%d\n",s);
}
A.14 B.16 C.18 D.20
60.
下面的程序是
main( )
{intx=3,y=0,z=0;
if(x==y+z)printf("****");
elseprintf("####");
}
A.有语法错误不能通过编译
B.输出****
C.可能通过编译,但是不能通过连接,因而不能运行
D.输出####
61.
以下程序输出结果是
main( )
{intm=5;
if(m++>5)printf("%d\n",m);
elseprintf("%d\n",m--);
}
A.7 B.6 C.5 D.4
62.
执行下面语句后的输出为
inti=-1;
if(i<=0)printf("****\n")
elseprintf("%%%%\n")
( )
A.**** B.%%%%
C.%%%%C D.有语法错,不能执行
63.
执行下列程序段后,x、y和z的值分别是
intx=10,y=20,z=30;
if(x>y)z=x;x=y;y=z;
( )
A.10,20,30 B.20,30,30
C.20,30,10 D.20,30,20
64.
以下程序的输出结果是
main( )
{intw=4,x=3,y=2,z=1;
if(x>y&&(z==w))printf(“%d\n”,(ww:
zz:
x));
elseprintf(“%d\n”,(w>x?
w:
z>y?
z:
x));
}
A.1 B.2 C.3 D.4
65.
以下程序的输出是
main( )
{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(“\na=%d,b=%d”,a,b);
}
A.a=1,b=0 B