《计算机程序设计基础》
习题册
班级 学号 姓名 成绩
一、 单选题
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