计算机程序设计基础习题册答案 - 范文中心

计算机程序设计基础习题册答案

04/28

《计算机程序设计基础》

习题册

班级 学号 姓名 成绩

一、 单选题

1. C++源程序文件的默认扩展名为 A 。 A) cpp B) exe C) obj D) lik

2. 由C++源程序文件编译而成的目标文件的默认扩展名为 C 。

A) cpp B) exe C) obj D) lik

3. 由C++目标文件连接而成的可执行文件的默认扩展名为 B 。

A) cpp B) exe C) obj D) lik

4. 编写C++程序一般需经过的几个步骤依次是 B 。

A)编译、编辑、连接、调试 B)编辑、编译、连接、调试

C)编译、调试、编辑、连接 D)编辑、调试、编辑、连接

5. 程序中主函数的名字为 A 。 A) main B) MAIN C) Main D) 任意标识符

6. 下面四个选项中,均是不合法的用户标识符的选项的是 C 。 A) A p_o do

B)float lao _A

C)b-a goto int D)_123 temp INT

7. 下列变量名中合法的是 C 。 A) B)C)Tom B) 3a66 C) _6a7b D) $ABC

8. 存储以下数据,占用存储字节最多的是

D 。

A) 0 B) ‘0’ C) “0” D) 0.0

9. 在C++语言中,字符型数据在内存中的存储形式是 D 。

A) 补码 B) 反码 C) 原码 D) ASCII码

10. 若有说明语句:char c =’\072’;则变量c A 。

A) 包含1个字符 B) 包含2个字符 C) 包含3个字符

D) 说明不合法,变量的值不确定

二、 填空题

1. C++头文件和源程序文件的扩展名分别为 .h 和 .cpp 。

2. C++语言规定,标识符只能由 字母 、 数字 、下划线三种字符组成,而且第一个字符必须是字母或下划线。

3. 一条表达式语句必须以__分号_;___作为结束符。

4. 用于从键盘上为变量输入值的标准输入流对象是___cin____;用于输出表达式值的标准输出流对象是__cout____。

5. 在一个C++程序文件中,若要包含另外一个头文件或程序文件,则应使用以_#include___标识符开始的预处理命令

班级 学号 姓名 成绩

一、 单选题

1. 下列哪一个是C++语言中合法的变量 C) double do= 2e3

D) double 2_and=1-e-3;

C

7. 已知ch是字符变量,正确的赋值语句是

A) 8ZSe B) ±A0

▁B▁

C) X0_2 D) ’x0’

A)ch=‘123’ B)ch=’\xff’

2. 已知ch是字符型变量,下面不正确的赋值C) ch=’\08’ D)ch=”\” 语句是 A 8. 若x、i、j和k都是int型变量,则计算

)后,x的值为▁▁A) ch='a+b' B) ch='\0' 表达式x=(i=4,j=15,k=32

C▁。 C) ch='7'+'9' D) ch=5+9

A) 4 B) 16 3. 下列浮点数的表示中不正确的是▁C▁▁

C) 32 D) 52 A) 223. B) 719E22

9. 单精度数x=3.0,y=4.0,下列表达式中yC) e23 D) 12e2

的值为9.0的是▁B▁。 4. 下列不正确的转义字符是 ▁C▁▁

A) y/=x*27/4 B) y+=x+2.0 A)'\\' B)‘\"’

C) y-=x+8.0 D) y*=x-3.0 C) '074' D) '\0'

10. 有整型变量x,单精度变量y=5.5,表达5. 在C语言中,合法的字符常量是 ▁B▁▁

式:x=(float)(y*3+((int)y%4))执行后,xA)'\084' B)'\x43'

的值为▁A▁。 C)'ab' D)"\0"

A) 17 B) 17.5 6. 下列变量定义中合法的是▁A▁▁

C) 16.5 D) 16 A) double _a=1.le-1; B) double b=1+5e2.5;

二.填空题

1.

2. 3. 4. 5. 6.

一个C语言程序一般由若干个函数构成的,程序中至少应包含一个▁▁主函数▁▁。 在C语言中,八进制整常量以▁▁0▁▁开头、十六进制整常量以▁▁0x▁▁开头。

‘x’在内存中占▁1▁字节,”x”在内存中占▁2▁字节 ,”/101”在内存中占▁▁5▁。 若a是int型变量,且a的初值为6,则计算表达式a+=a-=a*a后a的值为__-60____。 设int a=2,b=3; float x=3.5,y=2.5;表达式(float)(a+b)/2+(int)x%(int)y的值是▁3.5。 设 int x=1, y=1; 表达式 (!x||y--)的值是▁1▁。

7. 定义:int a=10,b=9,c=8; 顺序执行语句: c=(a-=(b-5)); c=(a%11)+(b=3);后变量c的值是 9 ;变量b的值是 3 。

8. 设有 int x=11; 则表达式 (x++ * 1/3) 的值是 3 。

班级 学号 姓名 成绩

一、 单选题

1. 下列优先级最低的算符是 D

A) 6 B) 12 C) 30 D) 36

A) && B) + C)|| D) = 7. C++语言中,要求运算数必须是整型的运2. 以下符合C++语言语法的赋值表达式是 算符是 A C 。

A) % B) / C)

A) d = 9 + e + f = d + 9

8. 以下正确地定义整型变量a,b和c并为它

B) d = 9 + e , f = d + 9

们都赋初值5的语句是 C

C) d = (9 + e , e + + , d + 9)

A) int a=b=c=5; D) d = 9 + e + + = d + 7

B) int a,b,c=5; 3. 已知字母A的ASCII码为十进制数65,且c2

为字符型,执行语句c2 = ‘A’+’6’-‘3’ ; C) int a=5,b=5,c=5; 后c2的十进制ASCII码值为 B 。 D) a=b=c=5; A)67 B) 68 C)69 D) 不确定的值

9. 以下变量均为int类型,则值不等于7的

4. 设有说明:char w;int x;float y;double

表达式是 C

z ; 则表达式w * x + z - y值的数据类型为

A)(x=y=6,x+y,x+1) D 。

A)float B)char C)int D)double

5. 假设在程序中 a、b、c 均被定义成整型,所赋的值都大于1,则下列能正确表示代数式

B)(x=y=6,x+y,y+1)

C)(x=6,x+1,y=6,x+y) D)(y=6,y+1,x=y,x+1)

10.设有int a=1,b=2,c=3,d=4,m=2,n=2;执行语句:(m=a>b)&&(n=d>c); 后n的值为 B

A) 1 B) 2 C) 3 D) 0

1

的表达式是 D abc

A)1.0/a*b*c B) 1/(a*b*c) C)1/a/b/(float)c D) 1.0/a/b/c 6. 已知int i,a;执行语句“i=(a=2*3,a*5),a+6;”后,变量i的值是 C

二、 填空题

1. 当int a=1,b=2,c=3; 时,则表达式a+b>0 && b==c的值是___0_______。 2. 若x是int 类型变量,则执行下列语句: x=7;x+=x-=x+x; 后x的值是 -14 3. 若变量a,b和c是int 类型,以下语句借助int 类型中间变量t把a,b,c交换,如交换前:a=10,b=20,c=30,交换后:a=20, b=30 , c=10 ,则交换语句为 ;a=b;b=c; ;

4. 设 int a=2,b=4,c=1,x=0,y=0;执行语句a||(x=b)&&(y=c);后x的值为▁0▁,y的值为▁0。

5. 判断字符型变量c是否为大写字母的正确表达式是▁c>=’A’&&c

4.计算机程序设计基础_控制结构(一)

班级 学号 姓名 成绩

一、 单选题

1.下列程序的输出结果是 C 。

#include

void main()

{ double d=3.2; int x,y;

x=1.2; y=(x+3.8)/5.0;

cout

}

A) 3 B) 3.2 C) 0 D) 3.07

2. 下列程序执行后的输出结果是 A 。 #include

void main()

{ double d; float f;

long l; int i;

i=f=1=d=20/3;

cout

二、分析程序,写出运行结果

1. #include

void main( )

{ int i,j,m,n; i=8; j=10; m=++i; n=j++;

cout

void main( ) { int a=-1,b=4,k; k=(a++

A)把x 和y按从大到小排列 B)把x和y按从小到大排列 C)无确定结果 D)交换x和y中的值 5. 以下程序的输出结果是 A 。 #include

void main( )

{ int a,b,c=246; a=c/100%9; b=(-1)&&(-1); printf("%d,%d\n",a,b); } A) 2,1 B) 3,2

C) 4,3 D) 2,-1

2. #include

void main() {

int y=3,x=3,z=1;

cout

程序的运行结果是▁▁3 3▁▁

5.计算机程序设计基础_控制结构(二)

班级 学号 姓名 成绩

一、单选题

1. 若从键盘上输入5,则程序的输出结果是 4. 若从键盘上输入3和4,则程序的输出结果

是 B 。 B 。

#include #include void main( ) void main( ) { int x; cin>>x; { int a,b,s; if(x++>5) cout>a>>b;

else cout

5. 下面的程序 D 。 #include

void main() #include { int x=1,a=0,b=0; void main( ) switch(x){ { int x=3,y=0,z=0; case 0: b++; if(x=y+z)cout

D) 输出# # # # #include

6. 为避免在嵌套的条件语句if-else中产生void main()

{double x=2.0,y; 二义性,C语言规定:else子句总是与 C 配if(x

二、 填空题

1. 计算机总是按照语句或者语句块位置的先后关系▁▁顺序▁执行

2. 所有程序都可以用▁顺序▁▁、▁选择▁▁、▁▁循环▁ 3种控制结构实现。 3. switch结构中的表达式必须是▁整型表达式▁▁。

4. case语句中的表达式必须是▁整型常量表达式▁▁。

6.计算机程序设计基础_控制结构(三)

班级 学号 姓名 成绩

一、 分析程序,写出运行结果

2.#include 1.#include

void main( ) void main( )

{float x,y; char ch; double r; { int x=100, a=10, b=20, ok1=5, ok2=5;

cin>>x>>y>>ch; if(a

switch (ch) if(b!=15)

{ case ‘+’: r=x+y;break; if(!ok1)

case ‘-’: r=x-y;break; x=1;

case ‘*’: r=x*y;break; else

case ‘/’: r=x/y;break; if(ok2)

} x=10;

cout

} }

程序的输出是 10 运行时输入:3 5 /,则程序的运行结 果是 0.6

二、 单选题

1.以下叙述正确的是▁D▁▁▁

A)do-while 语句构成的循环不能用其它语句构成的循环来代替

B)do-while 语句构成的循环只能用break 语句退出

C)用do-while 语句构成的循环,在while后的表达式为非零时结束循环

D)用do-while 语句构成的循环,在while后的表达式为零时结束循环

2.设int a,b;则执行以下语句后b的值为Da=1; b=10; do{ b-=a;

a++;

}while (b--

A) 9 B) –2 C) –1 D) 8

3.以下程序段的执行结果是▁D▁▁▁ int a, y; a=10; y=0;

do{ a+=2; y+=a;

cout20) break; }while (a=14);

A) a=12,y=12 B) a=12,y=12

a=14,y=16 a=14,y=26 C) a=12,y=12 D) a=12,y=12 a=14,y=44 a=16,y=28 4. 设int i;执行语句: for (i=1;i++

A) 3 B) 4 C) 5 D)不定值

三、 填空题

1. 设i, j, k 均为int型变量,则执行完下面的for循环后,i的值为___6___; j的值为__4____;k 的值为 ___10____。

for (i=0, j=10; i

k=i+j;

7.计算机程序设计基础_控制结构(四)

班级 学号 姓名 成绩

一、 单选题

1.以下循环体的执行次数是▁▁C▁▁ #include void main() { int i, j;

for (i=0,j=1; i

A) 3 B) 2 C) 1 D) 0 2. 当执行以下程序段时 ▁C▁▁▁ int y=-1 ;

do {y--;} while(--y); cout

A) 循环体将执行一次 B)循环体将执行两次 C) 循环体将执行无限次 D)系统将提示有语法错误

3.在下列选项中,没有构成死循环的程序是CA) int i =100; B) for (;;);

while(1) { i=i%100+1; if (i>100) break;}

C) int k=1000; D) int s=36; do{ ++k; while (s); --s;

二、 分析程序,写出运行结果

1. # include void main() { int i, j; for (i=1; i

1 2 3

程序的输出结果 1 2 3 4

}while(k

4. 设int x,y;则执行下的循环后,y值为C for(y=1,x=1;y=10) break; if (x%2==1)

{ x+=5; continue;} x-=3; }

A) 2 B) 4 C) 6 D) 8 5.设int j;,则下面for循环语句的执行结果是▁B▁▁

for( j=10;j>3;j--)

{ if(j%3) j--; --j; --j;

cout

A) 6 3 B) 7 4 C) 6 2 D) 7 3 6.以下程序的输出结果是▁A▁▁▁ #include void main( ) { int n=4;

while(n--) cout

A)2 0 B)3 1 C)3 2 1 D)2 1 0

2. #include

void main() { int i,j,x=0; for (i=0;i

x++; } x++; } cout

8.计算机程序设计基础_控制结构(五)

班级 学号 姓名 成绩

一、 单选题

1.以下程序的输出结果是 ▁B▁▁▁ #include cout

A)10 1 9 2 B)9 8 7 6 void main( ) { int i, j;

for(j=10;j

cout

A) 11 B) 10 C) 9 D) 10 11 2. 以下程序的执行结果是▁C▁▁▁ #include void main( ) { int i,sum;

for(i=1;i

cout

A) 6 B) 3 C) 死循环 D) 0 3. 以下程序的执行结果是▁B▁▁▁ #include void main( ) { int x=23;

do { cout

} while(!x); }

A) 22 B) 23 C) 24 D) 陷入死循环 4.有如下程序, 该程序段的输出结果是▁B▁ #include void main( ) { int n=9;

while(n>6){ n--; cout

A) 987 B) 876 C) 8765 D) 9876 5.以下程序的输出结果是▁D▁▁▁ #include void main( )

{ int x=10,y=10,i; for(i=0;x>8;y=++i)

C)10 9 9 0 D)10 10 9 1 6.以下程序的输出结果是▁▁A▁▁ #include void main( ) { int i;

for(i=1;i

{ if(i%2) { cout

A)#*#*# B)##### C)***** D)*#*#* 7.以下程序的输出结果是▁▁B▁▁ #include void main( ) { char i;

for(i='A';i

A)编译不通过,无输出 B)ACEG C)ACEGI D)ABCDEFG 8.运行以下程序后,如果从键盘上输入china#,则输出结果为 ▁▁C▁▁ #include #include void main( )

{ int v1=0,v2=0; char ch ; while ((ch=getchar())!='#') switch (ch ) { case 'a': case 'h':

default: v1++; case '0':v2++; }

cout

班级 学号 姓名 成绩

一、 单选题

1.下面叙述中正确的是 B 。

A) 对于用户自己定义的函数,在使用前必须加以说明 B) 函数可以返回一个值,也可以什么值也不返回 C) 说明函数时不必明确其参数类型和返回类型 D) 调用函数的实参,只能是有确定值的变量 2.下面叙述中错误的是 A 。

A)主函数中定义的变量在整个程序中都是有效的 B)在其他函数中定义的变量在主函数中也都不能使用

C)形式参数也是局部变量 D)复合语句中定义的变量只在该复合语句中有效 3.下面叙述中正确的是 B 。

A)全局变量在定义它的文件中的任何地方都是有效的 B)全局变量在程序全部执行过程中一直占用内存单元

C)同一文件中的变量不能重名 D)使用全局变量有利于程序的模块化和可读性的提高

4.若函数的类型和return语句中表达式的类型不一致,则 D 。 A)编译时出错 B)运行时出现不确定结果 C)不会出错,且返回值的类型以return语句中表达式的类型为准 D)不会出错,且返回值的类型以函数的类型为准

5.C++语言中若不特别声明,则自动变量的存储类型被认为是 D 。

A)extern B)static C)register D)auto 6.在函数调用语句fun1(fun2(x,y),(x,y),z=x+y);中,fun1的实际参数的个数是 A 。 A)3 B) 7 C) 4 D) 5 7.对函数的调用不可以出现在 C 。

A)对一个变量赋初值 B)调用函数时传递的实际参数 C)函数的形式参数 D)引用数组元素[ ]的运算符中 8. 以下对C++语言函数的有关描述中,正确的是 A 。

A) 在C++中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参 B) C++函数既可以嵌套定义又可以递归调用 C) 函数必须有返回值,否则不能使用函数

D) C++程序中有调用关系的所有函数必须放在同一个源程序文件中 9. 以下叙述中不正确的是 C 。

A)在C++中,函数中的自动变量可以赋初值,每调用一次,赋一次初值 B)在C++中,在调用函数时,实在参数和对应形参在类型上只需赋值兼容 C)在C++中,外部变量的隐含类别是自动存储类型 D)在C++中,函数形参可以说明为register变量

班级 学号 姓名 成绩

一、 填空题

1. 函数直接或者间接地自己调用自己,被称为函数的 递归调用__ __。在C++语言中,某函数

在一个程序中被调用的次数是 无 限制的。

2. 在C++语言中,编译是以 源文件 为单位的,一个C++程序可以由一个或多个 源文件

组成。

3. C++语言中,唯一不能被别的函数调用的函数是 main()或主函数 。

4. 从函数定义角度看,C++语言中的函数分为两种,即 库函数 和 用户自定义函数。从接

口形式上分类,函数分为 无参函数 和 有参函数 。

5. 在定义函数时,函数名后面的括号中的变量名称为 形式参数 ,在调用函数时函数名括号

后面的变量名称为 实际参数 。

6. 在函数内部定义只在本函数内有效的变量是局部变量或内部变量,在函数外部定义的变量是

全局变量或外部变量 。

二、 单选题

1.以下程序运行后,输出结果是 D 。

#include int func ( int a, int b) { int m=0 ,i=2;

i+=m+1; m=i+a+b ; return(m); }

void main()

{ int k=4,m=1,p;

p=func(k,m);cout

p=func(k,m);cout

A) 8,15 B) 8,16 C) 8,17 D) 8,8

2.以下程序运行后,输出结果是 A 。 #include int d=1;

void fun (int p) { int d=5;

d+=p++; cout

void main() { int a=3;

fun(a); d+=a++; cout

A)84 B)99 C)95 D)44 3. 以下程序的输出结果是 D 。 #include int func(int a,int b) { return(a+b); }

void main()

{ int x=2,y=5,z=8,r; r=func(func(x,y),z); cout

A) 12 B) 13 C) 14 D) 15 4.设有以下宏定义: #define N 3

#define Y(n) ((N+1)*n) 则执行语句: int z;

z=2 * (N+Y(5+1)); 后,z的值为 C 。

A) 编译出错 B) 42 C) 48 D)54

2

班级 学号 姓名 成绩

一、 分析程序,写出运行结果

输出结果为 2468 1. #include

int abc(int u,int v); void main () { int a=24,b=16,c; c=abc(a,b); cout

int fun2(int a ,int b)

{ int c; c=a*b%3; return c;

}

int fun1(int a , int b)

{ int c;

a+=a; b+=b; c=fun2(a,b)+ fun2(a,b); return c*c; } void main() { int x=11,y=19; cout

void fun()

{ static int a;

a+=2; cout

}

void main()

{ int cc;

for (cc=1;cc

cout

}

4.#include int n=5; void fun1(int x); int fun2(int n); void main() { int n=3; fun1(n); cout

} int fun2(int n) { n*=2; return n; } 程序运行结果为:n=5 16 n=35.#include int n=10; int func() { static int a=0; a+=n; n+=10; return a;

} void main() { int x=0; x=func(); cout

班级 学号 姓名 成绩

一、 单选题

1. 下面对一维数组a的说明正确的是 D。

A)int a(10);

B)int n=10,a[n]; C)int n; cin>>n; int a[n]; D) #define SIZE 10 int a[SIZE]; 2. 若要对一维数组a的所有元素值初始化为1的语句正确的是 C 。

A)int a[5]=(1,1,1,1,1);

B)int a[ ]={ 5*1}

C)int a[ ]={1,1,1,1,1};

D)int a[5]={1}

3. 若已定义数组:float a[8];则下列对数组元素引用正确的是 A 。

A) a[0] =1; B) a[8] = a[0];

C) a=1; D) a[3.5]=1;

4. 下面对二维数组a的说明正确的是 C 。

A) int a[3][ ];

B) float a(3,4);

C) double a[1][4];

D) long a[3,4];

5. 不能对二维数组a进行正确初始化的语句

是 B 。

A) int a[2][3]={0}

B) int a[2][3]={{1,2},{3,4},{5,6}};

C) int a[ ][3]={{1,2},{0}};

D) int a[ ][3]={1,2,3,4,5,6}

6. 若有说明:int a[3][4]={0};则以下说

法正确的是 C 。

A) 只有元素a[0][0]可得到初值0 B) 数组a中各元素都可得到初值,但其值不

一定为0

C) 数组a中每个元素均可得到初值0

D) 此说明语句不正确 7. 下面对字符数组s的初始化不正确的是 D 。 A) char s[5]={“abc”};

B) char s[5]={‘a’,’b’,’c’}; C) char s[5]=“”; D) char s[5]=“abcdef”;

8.执行下面的程序段后,变量k中的值为 A 。 int k=3, s[2];

s[0]=k; k=s[1]*10; A) 不定值 B) 33 C) 30 D) 10 9.以下程序运行后,输出结果是 D 。 #include

void main( ) { int y=18,i=0,j,a[8]; do { a[i]=y%2; i++; y=y/2; } while(y>=1); for(j=i-1;j>0;j--) cout

B 个元素。 A) 13 B) 14 C) 8 D) 9

班级 学号 姓名 成绩

一、 单选题

1.有程序段如下:运行该程序的结果是 A 。 char a[3],b[ ]=”China”; a=b; cout

A) 字符数组可以存放字符串

B) 字符数组的字符串可以整体输入、输出

C) 不可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值

D)可以用关系运算符对字符数组中的字符串进行比较

3. 若有以下程序片段, 则输出结果是 C 。 char str[]="ab\n\012\\\""; cout

B)int a[5]={0,1,2,3,4,5};

C)char a="string";

D)char a[]={0,1,2,3,4,5};

5.若有定义和语句: 则输出结果是 。

二、分析程序,写出运行结果

1. # include

void main( )

{ char ch[7]=”12ab56”; int i,s=0; for

(i=0;ch[i]>=’0’&&ch[i]

s=10*s+ch[i]-‘0’; cout

输出结果是 s=1 。

char s[10];

s="abcd"; cout

B) a与b长度相同 C) a与b的最后一个元素都是‘\0’

D) a数组比b数组多一个元素 7.下面程序段的运行结果是 C 。

char a[7]=”abcdef”, b[4]=”ABC”; int i; strcpy (a,b); for (i=0;i

cout

void main( )

{int a[][3]={1,2,3,4,5,6,7,8,9}; int i,j,s=0;

for (i=0;i

cout

输出结果是 s=15

2

班级 学号 姓名 成绩

分析程序,写出运行结果

1.#include

void main( ) {

int a[10]={1,2,3,4,5,6,7,8,9,10}; int k,s,i; float ave;

for (k=s=i=0;i

if (a[i]%2==0) continue; s+=a[i]; k++; }

if (k!=0) {

ave=s/k;

cout

输出结果是 k=5, ave= 5 。 2.#include #define N 5 void main() { int a[N];

for(int i=0;i

for(int j=i-1;j>0;j--)

a[j]=a[j]+a[j-1];

for(int k=0;k

for( j=0;j

cout

} 1 1} 1 2 1

程序运行结果为 1 3 3 1 1 4 6 4 1

3.#include void main( ) {

int a[10]={67,85,45,78,53,92,75,80,

94,88};

int b[]={60,70,80,90,101}; int c[5]={0}; int i;

for(i=0;i

while(a[i]>=b[j]) j++; c[j]++; }

for(i=0;i

输出结果是 2 1 2 3 24.#include void main()

{ int a[3][4] = {12, 23, 14, 25, 36,

27, 18,39, 15, 27, 32, 35};

int m, n, i, j; m = n = 0;

for (i = 0; i

cout

程序运行结果为:a[1][3]=39

15.计算机程序设计基础_指针(一)

班级 学号 姓名 成绩

一、 单选题

1. 若有两个基本类型相同的指针p1,p2,则下

列不能进行的运算是 A 。 A)p1+p2 C)p1=p2

B)p1-p2

D)p1==p2

{

int a,b,*p1,*p2; a=b=3;p1=&a;p2=&b; if (p1==p2) { cout

D 。

(1)char str[ ]=”I am a boy.”; (2)char str[12]; str=”I am a boy.”; (3) char *p=”I am a boy.”; (4) char *p; p=”I am a boy.”; A)以上四组语句都正确.

B)只有(1),(3)正确 C)只有(3),(4)正确。

D)只有(1),(3),(4)正确。

3. 若已定义char s[10];则在下面表达式中不

表示s[1]的地址的是 B 。 A)s+1

B)s++ C)&s[0]+1 D)&s[1]

4. 若有说明语句:

char a[ ]=”It is mine”; char *p=”It is mine”; 则以下不正确的叙述是 D 。 A)a+1表示的是字符t的地址 B)p指向另外的字符串时,字符串的长度不受限制 C)p变量中存放的地址值可以改变 D)a数组的长度为10 5. 下面程序段的运行结果是 D 。 char s[6]; s=”abcd” ;

cout

A) ”abcd” B) abcd

C) \”abcd \” D)编译出错 6. 下面程序的输出是 D 。 #include void main()

cout

{ cout

A) 18,3,6 B) 8,3,5 C) 9,3,6

D) 6,3,5

7. 以下程序的运行结果是 B 。

#include

void sub(int x,int y,int *z) { *z=y-x; } void main() { int a,b,c; sub(10,5,&a); sub( 7,a,&b); sub(a,b,&c); cout

}

A)5,2,3 B)-5,-12,-7 C)-5,-12,-17 D)5,-2,-7 8. 已有定义int k=2;int *ptr1,*ptr2;且ptr1和ptr2均已指向变量k,下面不能正确执行的赋值语句 B 。 A)k=*ptr1+*ptr2; B)ptr2=k; C)ptr1=ptr2; D)k=*ptr1*(*ptr2);

2

班级 学号 姓名 成绩

一、 单选题

1. 以下程序运行后,输出结果是 A 。

#include void main( ) {

char *s="abcde"; s+=2;

cout

A) cde B)字符c的ASCLL码值 C) 字符C的地址 D)编译出错

2. 有以下程序输出结果是 C 。

#include

void fun(int x,int y,int *cp,int *dp) { *cp=x+y; *dp=x-y; }

void main()

{ int a, b, c, d; a=30; b=50; fun(a,b,&c,&d);

cout

A)50,30 B)30,50 C)80,-20 D)80,20 3.有如下程序段:

int *p,a=10,b=1; p=&a;

a=*p+b;

执行该程序段后,a的值为 B 。

A) 12 B) 11 C) 10 D) 编译出错 4. 有如下说明:

int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则数值为9的数组元素的表达式是 B 。 A) *p+9 B) *(p+8) C) *p+=9 D) p+8 5. 若已定义:

int a[ ]={0,1,2,3,4,5,6,7,8,9}, *p=a, i; 其中0≤i≤9, 则对a数组元素不正确的引用 D 。

A) a[p-a] B) *(&a[i]) C) p[i] D) a[10] 6.以下程序执行后的结果为 C 。 #include void main( ) {

int a,b,k=4,m=6,*p1=&k,*p2=&m; a=p1==&m;

b=(-*p1)/(*p2)+7;

cout

A) a=–1,b=5 B) a=1,b=6 C) a= 0,b=7 D) a=4,b=10 7.下列程序的输出结果是▁A▁▁。

int a[10] = {1,2,3,4,5,6,7,8,9,10},

*p = a;

cout

C.1 D.2

二、 填空题

1. 在如下定义int a=7;int *p; 让指针p指向a的语句是 p= &a; ,当p指向a后,

&a 与p等价 , a 与*p等价。 2. 条件同上题,则语句(*point)++;与语句 a++ ; 等价,执行point++后,则变量a的值为 7 。

班级 学号 姓名 成绩

一、 读程序,写出运行结果

1. #include void main() { int a[5]={1,2,3,4,5}; int *p=a; cout

char b[]="ABCD";

void main( )

{ char *chp ;

for (chp =b;*chp ;chp +=2)

cout

cout

}

输出的结果为 ABCDCD

3. #include

void main( )

{

char a[]="ABCDEFGH"; char b[]="abCDefGH"; char *p1,*p2; int k; p1=a; p2=b; for(k=0;k

void sub(float x,float *y,float *z) { *y=*y-1.0; *z= *z+x; } main() { float a=2.5,b=9.0,*pa,*pb; pa=&a; pb=&b; sub(b-a,pa,pa);

cout void fun(int* a, int b[])

{ b[0] = *a + 6;}

void main( )

{

int a, b[5] = {0};

a = 0; b[0] = 3;

fun(&a, b); cout

下面程序执行后的结果是▁6 ▁ 6.#include long fib(int n) { if (n>2) return(fib(n-1)+fib(n-2)); else return(2); }

main() { cout

程序的输出结果是 16

2

18.计算机程序设计基础_结构、枚举与联合(一)

班级 学号 姓名 成绩

1. 以下对结构体类型变量的定义中,不正确的是▁▁▁。[D]

A.#define STUDENT struct student STUDENT{int num; float age;}std1;

B.struct student

{int num; float age;}std1;

C.struct {int num; float age;}std1; D.struct {int num; float age;}student; struct student std1;

2. 根据下面的定义,能输出字母M的语句是▁▁▁。[D]

struct Person{char name[9]; int age;};

Person p[10]={"John", 17, "Paul", 19, "Mary", 18, "adam",16};

A. cout

3. 若有以下说明和语句:

struct Student

{int age; int num;}std, *p; p = &std;

则以下对结构体变量std中成员age的引用方式不正确的是▁▁▁。[D] A.std.age B.(*p).age C.p->age D.*p.age 4. 下面对枚举类型的描述正确的是▁▁▁。[C]

A.枚举类型定义:enum {Mon, Tues, Wed, Thur, Fri} Day; B.在C/C++语言中,用户定义枚举类型的第一个常量的默认值是1。

C.可以如下定义枚举类型:enum {Mon, Tues, Wed=5, Thur, Fri=5}; D.以上说法都不正确。 5. 若有以下定义和语句:

union data { int i; char c; float f;}a; int n;

则以下语句正确的是▁▁▁。[B] A. a=5; B. cout

C. a={2, ‘a’, 1.2}; D. n=a;

6. 以下对枚举类型名的定义中正确的是▁▁▁。 [B] A.enum a={one,two,three};

B.enum a {one=9,two=-1,three}; C.enum a={"one","two","three"}; D.enum a {"one","two","three"};

19.计算机程序设计基础_结构、枚举与联合(二)

班级 学号 姓名 成绩

一、 读程序,写出运行结果

1. #include

struct n

{int x; char c;}; void fun(n b)

{b.x = 20; b.c = 'y';} void func(n& b)

{b.x = 20; b.c = 'y';} void main( ) {

n a = {10, 'x'}; fun(a);

cout

cout

程序的运行结果是▁10,x,20,y▁▁。 2. #include

struct stu { int num; char name[10]; int age; }; void fun(stu *p) { cout

{stu students[3]={{9801,"Zhang",20},

{9802,"Wang",19}, {9803,"Zhao",18} };

fun(students+2); }

程序的运行结果是▁Zhao▁▁。 3. #include

union

{ double a; int b; char c;}m; void main()

{ cout

程序的运行结果是▁8▁▁。 4.#include

struct n

{ int x;char c;}; void func( n b) { b.x=20; b.c=’y’; }

void main()

{ n a={10,’x’}; func(a);

cout

程序的运行结果是▁ 10x ▁。 5.#include

struct ks { int a; int *b; }s[4],*p; void main() { int n=1,i; cout

for(i=0;i

s[i].b=& s[i].a; n=n+2;} p=&s[0]; p++;

coutaa

程序的运行结果是 73 。

2


相关内容

  • 大学课后题答案
    不用买参考书了!大学课本答案大全!--爱死你了!( 为什么大四才发现啊) 2008-12-18 16:50 | (分类:) 注册可用 公共课程 http://www.10xiao.com/forum-6-1.html 新视野大学英语读写教程 ...
  • 会计从业资格考试练习题一
    第一章    会计法律制度 单选 法律规范组成部分中的()是指规定的人们在违反法律规范时要承担的法律后果. a.假定 b.处理 c.制裁 d.惩罚 答案是c 本题分析法律规范一般由假定.处理.制裁三个部分组成.其中,制裁是指规定的人们在违反 ...
  • 注重知识迁移,提高学生能力
    近几年高考地理试题,通过提供社会热点实情或模拟情景,注重考查学生运用书本知识,解决实际问题的能力.其实质是考查学生知识的迁移能力,所以,明确知识和能力的联系,是提高学生综合能力的关键.本人认为,只有注重知识的迁移,才能提高学生的综合能力. ...
  • 统计学基础
    统计学基础编辑 统计学是收集.分析.表述和解释数据的科学.作为数据分析的一种有效工具,统计方法已广泛应用于社会科学和自然科学的各个领域,是各学科领域研究者和实际工作者的必备知识. 书    名 统计学基础 作    者 贾俊平 ISBN [ ...
  • 网络营销考试复习题及答案
    一. 填空题 1.网站的最大特点是它总是不断变化的,网站的不断更新才具有生命力.对于三种类型网站而言,更新的重要性通常为(基本信息型)> (多媒体广告型 )> (电子商务型). 2.网络营销是指以(互联网)为主要手段进行的.为达 ...
  • 20XX年司法考试卷二[刑事诉讼法]基础练习题(5):多选题
    二.多项选择题 6.关于检察院侦查监督,下列哪些选项是正确的( ) A.发现侦查人员杨某和耿某以欺骗的方法收集犯罪嫌疑人供述,立即提出纠正意见,同时要求侦查机关另行指派除杨某和耿某以外的侦查人员重新调查取证 B.发现侦查人员伍某等人以引诱的 ...
  • 算法设计课程习题答案
    算法设计课程习题答案 第一章 1-1什么是算法?它与计算过程和程序有什么区别? 算法是指求解一个问题所需要的具体步骤和方法.它是指令的有限序列.算法有一系列明确定义的基本指令序列所描述的,求解特定问题的过程,它能够对合法的输入,在有限时间内 ...
  • [结构力学]习题+答案
    <结构力学>习题 第一套 一.判断题 1.多余联系只存在于几何不变体系中,瞬边体系和几何可变体系中不存在多余联系. ( ) 2.在地基差的时候,采用静定结构类的结构方案比较合适,因为当基础沉降时,结构中不会 产生内力. ( ) ...
  • 法律法规基础知识
    育路网整理了2011年助理电子商务考试电子商务基础知识习题及答案,供各位考生参考. 1 (单选) MIS 本质上是通过对各种内部信息的( D ),实现对商品流.资金流.信息流.物流的有效控制和管理,从而最终扩大销量.降低成本.提高利润. A ...
  • 基础工程课后习题答案
    第二章 2-1 某建筑物场地地表以下土层依次为:(1)中砂,厚2.0m,潜水面在地表以下1m处, :(2)粘土隔离层,厚2.0m,重度 :(3)粗砂, 饱和重度 含承压水,承压水位高出地表2.0m(取无隆起的危险?若基础埋深 ).问地基开挖 ...