201501批次程序设计基础复习大纲(答案)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

对外经济贸易大学远程教育学院
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. 已知:char a;int b;float c;double d;执行语句c=a+b+c+d;后,变量c的数据类型是()
A. int
B. char
C. float
D. double
6. 已知:int x=1,y=2,z; 则执行:z=x>y? ++x:++y; 则z的值为()
A. 1
B. 2
C. 3
D. 4
7. 执行下面语句后x的值为 int a=14,b=15,x; char c=’A’; x=((a&&b) && (c<’a’)); ()
A. TRUE
B. FALSE
C. 0
D. 1
8. 下列四个选项中,均是C语言关键字的选项是()
A. auto enum include
B. switch typedef continue
C. signed union scanf
D. if struct type
9. C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符
()
A. 必须为字母
B. 必须为下划线
C. 必须为字母或下划线
D. 可以使字母,数字和下划线中任一字符
10. 若有定义:int a=7;float x=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. 200 100
D. 输出格式符不够,输出不确定的值
16. 表达式:10!=9的值是()
A. true
B. 非零值
C. 0
D. 1
17. 若int a,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 > =10 or a < =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. int a[2][]={{1,0,1}{5,2,3}};
B. int a[][3]={{1,2,3},{4,5,6}};
C. int a[2][4]={{1,2,3},{4,5},{6}};
D. int a[][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. int a(10);
B. int n; scanf("%d",&n); int a[n];
C. int n=10,a[n];
D. #define SIZE 10 (换行) int a[SIZE];
27. 以下能正确定义一维数组的选项是()
A. int a[5]={0,1,2,3,4,5};
B. char a[ ]={0,1,2,3,4,5};
C. char a={''A'',''B'',''C''};
D. int a[5]="0123";
28. 程序段:int a=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. 有以下语句: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);
34. C语言中的函数()
A. 可以嵌套定义
B. 不可以嵌套调用
C. 可以嵌套调用,但不能递归调用
D. 嵌套调用和递归调用均可
35. 程序设计一般包含以下四个步骤,其中首先应该完成的是()
A. 设计数据结构和算法
B. 建立数学模型
C. 编写程序
D. 调试运行程序
36. 下面描述中,正确的是()
A. 主函数中的花括号必须有,而子函数中的花括号是可有可无的
B. 一个C程序行只能写一个语句
C. 主函数main是C程序启动时唯一的入口
D. 函数体包含了函数说明部分
37. 设int类型的数据长度为2个字节,则unsigned int 类型数据的取值范围是
()
A. 0~255
B. 0~65535
C. -256~255
D. -32768~32767
38. 已知int i=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. 已知:int a,*p=&a;则下列函数调用中错误的是()
A. scanf(“%d”,&a);
B. scanf(“%d”,p);
C. printf(“%d”,a);
D. printf(“%d”,p);
45. 下列对字符串的定义中,错误的是()。

A. char str[5]=“QBASIC”
B. char str[ ]=“QBASIC”
C. char *str=“QBASIC”
D. char str[]={‘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. 有定义:int a=2,b=4;float C=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. 2 0
B. 3 1
C. 3 2 1
D. 2 1 0
53. 若有:do{i=a-b++;printf(“%d”,i);}while(!i);则while中的!i可用
()代替。

A. i==0
B. i!=1
C. i!=0
D. 以上均不对
54.
执行以下程序段后,c3的值是
int c1=1,c2=2,c3;
c3=c1/c2;
()
A. 0
B. 1/2
C. 0.5
D. 1
55.
若有以下程序段,其输出结果是
int a=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()
{int a=12,b=12;
printf("%d %d\n",--a,++b);
}
A. 10 10
B. 12 12
C. 11 13
D. 11 10
58.
以下程序的输出结果是
main()
{ int a= -1,b=1;
if((++a < 0)&& ! (b-- < =0)) printf("%d %d\n",a,b);
else printf("%d %d\n",b,a);
}
A. -1 1
B. 0 1
C. 1 0
D. 0 0
59.
若执行下面的程序从键盘输入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
60.
下面的程序是
main()
{ int x=3,y=0,z=0;
if (x==y+z) printf("****");
else printf("####");
}
A. 有语法错误不能通过编译
B. 输出****
C. 可能通过编译,但是不能通过连接,因而不能运行
D. 输出####
61.
以下程序输出结果是
main ()
{ int m=5;
if (m++ > 5) printf ("%d\n",m);
else printf ("%d\n",m--);
}
A. 7
B. 6
C. 5
D. 4
62.
执行下面语句后的输出为
int i= -1;
if (i < =0)printf("****\n")
else printf("%%%%\n")
()
A. ****
B. %%%%
C. %%%%C
D. 有语法错,不能执行
63.
执行下列程序段后,x、y和z的值分别是
int x=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()
{int w=4,x=3,y=2,z=1;
if(x>y&&(z= =w))printf (“%d\n”,(w<x? w:z<y? z:x));
else printf (“%d\n”,(w>x? w:z>y? z:x));
}
A. 1
B. 2
C. 3
D. 4
65.
以下程序的输出是
main()
{ int x=1,y=0,a=0,b=0;
switch(x) { case 1: switch(y)
{ case 0:a++;break;
case 1:b++;break; } case 2: a++;b++;break;
case 3: a++;b++;
}
printf(“\na=%d,b=%d”,a,b);
}
A. a=1,b=0
B. a=2,b=1
C. a=1,b=1
D. a=2,b=2
66.
阅读以下程序:
main()
{ int x;
scanf("%d",&x);
if(x--<5) printf("%d"'x);
else printf("%d"'x++);
}
程序运行后,如果从键盘上输人5,则输出结果是
A. 3
B. 4
C. 5
D. 6
67.
若int x;则执行下列程序段后输出是
for(x=10;x>3;x--)
{if (x%3) x--;--x;--x;
printf (“%d”,x);
}
()
A. 63
B. 74
C. 62
D. 73
68.
下列程序执行的结果是
int a=1, b=2, c=3, t;
while (b<a<c) {t=a;a=b;b=t;c--;}
printf (“%d,%d,%d”,a,b,c);
()
A. 1,2,0
B. 2,1,0
C. 1,2,1
D. 2,1,1
69.
以下程序的输出结果是
main()
{ int n=4;
while(n--)printf("%d ",--n);
}
A. 2 0
B. 3 1
C. 3 2 1
D. 2 1 0
70.
假定a和b为int型变量,则执行以下语句后b的值为a=1; b=10;
do
{ b=b-a; a++; }
while (b-- > 0);
()
A. -3
B. -2
C. -1
D. -4
71.
下面程序的输出是
main()
{ int x=3,y=6,a=0;
while (x++!=(y-=1))
{ a+=1;
if (y < x) break;
}
printf("x=%d,y=%d,a=%d\n",x,y,a);
}
A. x=4,y=4,a=1
B. x=5,y=5,a=1
C. x=5,y=4,a=3
D. x=5,y=4,a=1
72.
以下程序段的输出结果是
int x=3;
do
{ printf("%3d",x-=2);}
while (!(--x));
()
A. 1
B. 3 0
C. 1 -2
D. 死循环
73.
以下程序的输出结果是
main()
{ int i,x[3][3]={9,8,7,6,5,4,3,2,1};
for(i=0;i<4;i+=2)printf("%d ",x[i][i]);
}
A. 5 2
B. 9 1
C. 5 3
D. 9 7
74.
以下程序的输出结果是
main()
{ int a[4][4]={{1,3,5},{2,4,6},{3,5,7}};
printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0];
}
A. 0650
B. 1470
C. 5430
D. 输出值不定
75.
以下程序的输出结果是
main()
{ char string[3][5]={"CCCC","BBB","AAAA"};
printf("%s",string[2]);
}
A. "AAAA"
B. "BBB"
C. "BBBCC"
D. "CC"
76.
有如下程序
main()
{ int n[5]={0,0,0},i,k=2;
for(i=0;i < k;i++) n[i]=n[i]+1;
printf("%d\n",n[k]);
}
该程序的输出结果是
A. 不确定的值
B. 2
C. 1
D. 0
77.
假定所有变量均已正确说明,下列是程序段运行后x的值是a=b=c=0;
x=35;
! a ? x-- : x=c ? 3 : 4;
()
A. 34
B. 4
C. 35
D. 3
78.
main()
{ int a=7,b=5,c;
printf(“%d,%d\n”,a--,--b);} 此程序的输出结果是
A. 7,5
B. 6,5
C. 7,4
D. 6,4
79.
下面程序的输出结果是()
main()
{ int k=0;
char c=’A’;
do{switch(c++)
{ case ‘A’: k++;break;
case ‘B’: k--;
case ‘C’: k+=2;break;
case ‘D’: k=k%2;continue;
case ‘E’: k=k+10;break;
default: k=k/3;
}
}while(c<’C’);
printf(“k=%d\n”,k);
}
A. 1
B. 2
C. 5
D. 6
80.
下面程序的运行结果是()
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
81.
以下程序执行后sum的值是()
main()
{ int i , sum;
for(i=1;i < 6;i++) sum+=i;
printf("%d\n",sum); }
A. 15
B. 14
C. 不确定
D. 0
82.
下列程序的输出结果是()
main()
{ double d=3.2;
int x,y;
x=1.2; y=(x+3.8)/5.0;
printf("%d \n", d*y);
}
A. 3
B. 3.2
C. 0
D. 3.07
83.
以下程序的输出结果是()
main()
{ char ch[3][5]={"AAAA","BBB","CC"};
printf("%s",ch[1]);
}
A. "AAAA"
B. "BBB"
C. "BBBCC"
D. "CC"
84.
定义如下变量和数组:
int k; int a[3][3]={1,2,3,4,5,6,7,8,9};
则语句for(k=0;k<3;k++) printf("%d",a[k][2-k]);的输出结果是()()
A. 3 5 7
B. 3 6 9
C. 1 5 9
D. 1 4 7
85.
设有如下定义:
int a=1,b=2,c=3,d=4,m=2,n=2;
则执行表达式:(m= a < b) && (n= c > d)后,,m的值为()
()
A. 3
B. 2
C. 1
D. 0
86.
设有如下定义:
int a=1,b=2,c=3,d=4,m=2,n=2;
则执行表达式:(m= a > b) && (n= c > d)后,n的值为()
()
A. 3
B. 2
C. 1
D. 0
87.
若有以下定义:
char a; int b;
float c;double d;
则表达式a*b+d-c值的类型为()()
A. float
B. int
C. char
D. double
88.
以下程序的输出结果是 ( )
main()
{ float x=2,y;
if (x<0) y=0;
else if (x<5 && !x) y=1/(x+2);
else if (x<10) y=1/x;
else y=10;
printf (“%f\n”,y);
}
A. 0.
B. 0.
C. 0.
D. 10.
89.
执行下面的程序段后,变量k中的值为()
int k=3,s[2];s[0]=k; k=s[1]*10;
()
A. 不定值
B. 33
C. 30
D. 10
二、判断题 (对的选A,错的选B)
90. 在C程序中,main函数必须位于程序的最前面(B)
91. C程序的每行中只能写一条语句(B)
92. C语言本身没有输入输出语句(A)
93. C程序的基本组成单位是函数(A)
94. 在C程序中,逗号运算符的优先级最低(A)
95. 每个C程序必须在开头包含预处理命令行:#include (B)
96. 在C程序中,APH和aph是两个不同的变量(A)
97. 若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变(A)
98. 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值(B)
99. 在C语言中的if语句中,用作判断的表达式可以是任意表达式(B)100. 对 for (表达式1; ;表达式3) 可理解为for(表达式1;1;表达式3) (A)101. 对 for (表达式1; ;表达式3) 可理解为for(表达式1;表达式1;表达式3) (B)
102. 有以下程序段int k=0; while(k=1)k++; ,while 循环执行的次数是无限次(A)
103. 若有说明: int a[3][4]={0};则只有元素a[0][0]可得到初值0 (B)104. C程序中源程序文件的扩展名是OBJ (B)
105. 负数在计算机中是以补码形式表示。

(B)
106. 关系表达式的运算结果是逻辑值0或1 (A)
107. 表达式的运算对象可以是常数、变量和函数调用(A)
108. {a=3;c+=a-b;}在语法上被认为是两条语句(A)
109. if语句控制表达式只有其值为1时表示逻辑“真”,其值为0表示逻辑“假”。

(B)
110. if(!k) a=3;语句中的!k可以改写为k==0,使其功能不变。

(A)111. 若有说明: int a[][4]={0,0};则数组a共有8个元素0 (B)
112. 在C语言中申明变量时必须给出变量的类型。

(A)
113. C语言中的switch选择结构中必须有default子句。

(A)
114. 如果x>y或a<B为真,那么表达式(X>y&&a (B)
115. 一个联合体变量中的各成员类型一定不能相同(B)
116. 一个结构体变量中的各成员类型可以相同,也可以不相同(A)
117. 在C语言中,预处理命令行都以“#”开头(A)
118.
以下循环语句共执行20_次循环
int i,j;
for (i=5;i;i--)
for (j=0;j<4;j++) {……}
(A)
119.
以下while循环执行的次数是0次。

k=0; while (k=10) k=k+1;(A)。

相关文档
最新文档