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

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

对外经济贸易大学远程教育学院

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

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

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或ay&&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)

程序设计基础试题库

练习题一Visual FoxPro 基础 、选择题 1. 关系数据库管理系统应能实现的专门关系运算包括___c __________ A 显示、打印、制表B关联、更新、排序 C 选择、投影、连接D排序、索引、统计 2. 关系是指__b__。 A 属性的集合B元组的集合 C 实例的集合 D 字段的集合 3. 如果把学生看成实体,某个学生的姓名叫“杨波”,则“杨波”应看成是___b ______ 。 A)属性型B )属性值C )记录型D )记录值 4. 关系数据库系统中所使用的数据结构是 _______ d ___ 。 A)图B )树C )表格D )二维表 5. 对表进行水平方向的分割用的运算是 _______ b ___ 。 A)交B )选择C )投影D )连接 6. 下列数据库技术的术语与关系模型的术语的对应关系中_______ d _____ 是正确的。 A)实例与关系 B )字段与元组C )记录与属性 D )记录类型与关系模式 7. 下列关于数据库系统的叙述中,正确的是 _____ c _____ 。 A)数据库系统中数据的一致性是指数据类型一致 B)数据库系统只是比文件系统管理的数据更多 C)数据库系统减少了数据冗余 D数据库系统避免了数据冗余 8. 关系数据模型 ______ d ___ 。 A)只能表示实体间的1:1联系 B)只能表示实体间的1:n C只能表示实体间的m:n D 可以表示实体间的上述三种联系 9. 在一个关系中如果有这样一个属性存在,它的值能惟一地标识关系中的每一个元组,称

这个属性为 _____ a____ 。 A)关键字B )主属性C )数据项D )主属性值 10. 关系数据库管理系统中的元组是______ b ____ 。 A)关系中的垂直方向的列 B )关系中的水平方向的行 C属性或属性的组合 D )以上的答案均不正确 11. 从数据库的整体结构看,数据库系统采用的数据模型有_________ a __ 。 A)层次模型、网状模型和关系模型 B)层次模型、网状模型和环状模型 C)网状模型、链状模型和层次模型 D链状模型、关系模型和层次模型 12. 设有属性A B、C D以下表示中不是关系的是___________ d__。 A)R( A) B )R( A, B)C )R (A, B, C, D) D )R (A X B X C X D) 13. 若实体间联系是M N的,则将联系类型_________ a___ 。 A)也转换为关系模型 B)属性加入任一个关系模式中 C)属性加入N端实体类型相应的关系模式中 D)属性加入M端实体类型相应的关系模式中 14. 数据库系统的构成为数据库、计算机硬件系统、用户和________ a ____ 。 A 数据库管理系统 B 操作系统 C 数据集合 D 文件系统 15. 层次型、网状型和关系型数据库划分原则是________ c ___ 。 A 文件大小 B 记录长度 C 数据之间的联系 D 联系的复杂程度 16. 在数据库设计中用关系模型来表示实体和实体之间的联系,关系模型的结构是 _____ d ___ 。 A 封装结构 B 层次结构 C 网状结构 D 二维表结构 17. 在关系模型中,实现“关系中不允许出现相同的元组”的约束是通过__a ________ 。 A 主键 B 超键 C 外键 D 候选键 18. 层次模型不能直接表示 ______ b __ 关系。 A 1:1 B m:n C 1:m D 1:1 和1:m 19. DBAS旨的是_____ d____ 。

C++程序设计基础课后答案 第八章

8.1 阅读下列程序,写出执行结果 1.#include class Bclass { public: Bclass( int i, int j ) { x = i; y = j; } virtual int fun() { return 0 ; } protected: int x, y ; }; class Iclass:public Bclass { public : Iclass(int i, int j, int k):Bclass(i, j) { z = k; } int fun() { return ( x + y + z ) / 3; } private : int z ; }; void main() { Iclass obj( 2, 4, 10 ); Bclass p1 = obj; cout << p1.fun() << endl; Bclass & p2 = obj ; cout << p2.fun() << endl; cout << p2.Bclass :: fun() << endl; Bclass *p3 = &obj;

cout << p3 -> fun() << endl; } 2.#include class Base { public: virtual void getxy( int i,int j = 0 ) { x = i; y = j; } virtual void fun() = 0 ; protected: int x , y; }; class A: public Base { public: void fun() { cout<<"x = "<

C++程序设计基础(第4版)(上)习题解答

《C++程序设计基础》(第4版)(上) 习题与解答 第1章基本数据与表达式 1.1 选择题 1.一个最简单的C++程序,可以只有一个(C )。 (A)库函数(B)自定义函数(C)main函数(D)空函数 2.用C++语言编写的源程序要成为目标程序必须要经过(D )。 (A)解释(B)汇编(C)编辑(D)编译3.C++程序中的简单语句必须以(B )结束。 (A)冒号(B)分号(C)空格(D)花括号4.假设有说明int a=0; double x=5.16;,则在以下语句中,(C )属于编译错误。 (A)x=a/x; (B)x=x/a; (C)a=a%x; (D)x=x*a; 5.执行C++程序时出现的“溢出”错误属于(C )错误。 (A)编译(B)连接(C)运行(D)逻辑 6.在下列选项中,全部都是C++关键字的选项为(C )。 (A)while IF Static (B)break char go (C)sizeof case extern (D)switch float integer 7.按C++标识符的语法规定,合法的标识符是(A )。 (A)_abc (B)new (C)π(D)"age" 8.在C++语句中,两个标识符之间(A )不能 ..作为C++的分隔符。 (A)数字(B); (C): (D)+ 9.下列正确的八进制整型常量表示是(B )。 (A)0a0 (B)015 (C)080 (D)0x10 10.下列错误的十六进制整型常量表示是(C )。 (A)0x11 (B)0xaf (C)0xg (D)0x1f 11.在下列选项中,全部都合法的浮点型数据的选项为(B )。 (A)-1e3.5 15. 2e-4 (B)12.34 -1e+5 0.1E-12 (C)0.2e-2 -12345. e-5 (D)5.0e(1+4)0.1 8e+2 12.在下列选项中,正确的字符常量为(D )。 (A)"a" (B)'name' (C)a (D)'\101' 13.在下列选项中,(D )不能 ..交换变量a和b的值。 (A)t=b; b=a; a=t; (B)a=a+b; b=a-b; a=a–b; (C)t=a; a=b; b=t; (D)a=b; b=a; 14.关于下列语句,叙述错误的是(A )。

程序设计基础试题一知识讲解

山东科技大学200 —200 学年第学期 《程序设计基础》考试试卷一 班级姓名学号____________ 一、选择题(20分) 1.算法具有五个特性,以下选项中不属于算法特性的是B (A)有穷性(B)简洁性(C)可行性(D)确定性 2.以下选项中可作为C语言合法常量的是A (A)-80. (B)-080 (C)-8e1.0 (D)-80.0e 3.以下叙述中正确的是C (A)用C语言实现的算法必须要有输入和输出操作 (B)用C语言实现的算法可以没有输出但必须要有输入 (C)用C程序实现的算法可以没有输入但必须要有输出 (D)用C程序实现的算法可以既没有输入也没有输出 4.以下不能定义为用户标识符是D (A)Main (B) _0 (C) _int (D) sizeof 5.以下选项中,不能作为合法常量的是B (A)1.234e04 (B)1.234e0.4 (C)1.234e+4 (D)1.234e0 6.数字字符0的ASCII值为48,若有以下程序 main() {char a='1',b='2'; printf("%c,",b++); printf("%d\n",b-a);} 程序运行后的输出结果是C (A)3,2 (B)50,2 (C)2,2 (D)2,50

7.有以下程序 main(){ int m=12,n=34; printf("%d%d",m++,++n); printf("%d%d\n",n++,++m);}程序运行后的输出结果是A (A)12353514 (B)12353513 (C)12343514 (D)12343513 8.有以下语句:int b;char c[10];,则正确的输入语句是B A)scanf("%d%s",&b,&c); B) scanf("%d%s",&b,c); (C)scanf("%d%s",b,c); D)scanf("%d%s",b,&c); 9.有以下程序 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 A)m=123n=456p=789 B)m=123 n=456 p=789 C)m=123,n=456,p=789 D)123 456 789 10.有以下程序 main(){ int a,b,d=25; a=d/10%9;b=a&&(-1); printf("%d,%d\n",a,b); } 程序运行后的输出结果是B A)6,1 B)2,1 C)6,0 D)2,0 11.有以下程序 main(){ int i=1,j=2,k=3; if(i++==1&&(++j==3||k++==3)) printf("%d %d %d\n",i,j,k);}程序运行后的输出结果是D (A)1 2 3 (B)2 3 4 (C)2 2 3 (D)2 3 3

相关文档
最新文档