一、 判断题
1、在变量定义int sum , SUM; 中sum和SUM是两个相同的变量名。(N ) 2、字符串”china”在内存中占据的存储空间是5个字节。(N ) 3、在C++语言中,”A”和’A’是等价的。( N )
4?、C++表达式4/7和4.0/7的值是相等的,且都为double型。( N ) 5、关系表达式 a=b>c 等价于 a=(b>c) ,同时也等价于 a==b>c。( N )
6、continue 语句和break 语句的区别是:break 语句提前跳出switch结构或结束循环的执行;continue 语句只结束本次循环,而不是终止整个循环的执行。(Y ) 7、数组是一种构造型数据,即是若干相同类型的数据的集合。( )
8、C++语言中,二维数组中元素排列的顺序是:按行存放,即在内存中先顺序存放第一行的元素,再存放第二行的元素。( ) 9、#include “iostream.h” 的作用是将说明标准输入输出流对象的头文件包含到当前源文件中来。(Y )
10、C++语言中允许函数“嵌套调用”和“递归调用”,所谓“递归调用”就是指:在调用一个函数的过程中又出现直接或间接地调用该函数本身。(Y ) 二、 选择题
1、由C++源程序文件编译而成的目标代码文件的缺省扩展名为( C ) A).cpp B).exe C).obj D).lik 2、设x和y均为bool类型(bool类型:1或0),则x&&y为真的条件是(A ) A).它们均为真 B).其中一个为真 C).它们均为假 D).其中一个为假
3、设有int i;则表达式i=1,++i,++i||++i,i的值为 ( C ) A).1 B).2 C).3 D).4
4、设有int i;则表达式(i=1,i=10)i++||++i:++i的值为 (A ) 解析:(i=1,i=10)i++||++i:++i
(i=1,i=10)是真的情况表达式的值=i++||++i 是假的时候=++i
(i=1,i=10)这个是逗号运算符最终i=10,是真 所以表达式的值是i++||++i = 10 ||12 = 1
A).1 B).2 C).3 D).10 5、设有int a[ ]={10,11,12},*p=&a[0];则执行完*p++;*p+=1;后a[0],a[1],a[2]的值依次是 ( ) A).10,11,12 B).11,12,12 C).10,12,12 D).11,11,12
6、设a、b和c都是int型变量,且a=3,b=4,c=5,则下列表达式中,值为0的表达式是( ) A).'A'&&'B' 1 B).a<=b 1
C).c>=b||b+c&&b-c 1 D). a<=b+c&&c>=a+b
7、若x和y都是int型变量,x=100,y=200,则下面程序片段cout<<(x,y)< 解析:语句中遵循优先级高的优先执行的原则,括号优先级最高,所以(x, y)最先计算。这是一个逗号表达式,注意,是一个表达式,是表达式就有值。逗号表达式的值等于最右边的那个值,即x,y,z的值是z,依次类推。所以(x, y)=y=200,最后执行语句其他部分,输出200 A).200 B).100 C).100 200 D).输出格式符不够,输出不确定的值 8、下面各语句中,能正确进行字符串赋值操作的语句行是( ) A).char s[4][5]={\"ABCDE\ B). char s[5]={'A','B','C','D','E'}(char s[6]= {'A','B','C','D','E'}) C). Char *s; s=\"ABCDE\"; D). char *s; cin>>s; 9、若有:int a[6]={4,5,6,9,5,7},*p=a, *q=p; 则对数组元素的错误引用是( ) A). a[4] B). *(p+4) C). *a++(变量才能加减) D). *q++ 10、下列不正确的转义字符是( ) A).'\\\\' B).'\\\" C).'074' D).'\\0' 11、假定a和b为int型变量,则执行以下语句后b的值为( ) a=1; b=10; do { b-=a; a++; } while (b--<0); A). 9 B). –2 C). -1 D). 8 12、对于结构中定义的成员,其隐含访问权限为( ) A). public B). protected C). private D). static 13、设P1和P2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是( ) A).k=*P1+*P2; B).p2=k; C).P1=P2; D).K=*P1 * (*P2); 14、设有如下定义: int arr[]={6,7,8,9,10}; int * ptr; 则下列程序段的输出结果为( ) ptr=arr; * (ptr+2)+=2; cout<<*ptr<<*(ptr+2)< m=(*p)*(*(p+2))*(*(p+4)); A). 15 B). 14 C). 13 D). 12 三、 填空题 1、描述命题“A小于B或小于C”的表达式为 。 2、在C++中有二种参数传递方式: 和 。 3、定义重载函数时,应在参数个数、参数类型或参数次序上 。 4、拷贝初始化构造函数使用 来初始化创建中的对象。 5、一个C++函数由两部分组成,即: 和 。 6、一个C++程序总是从 开始执行。 7、C++语言程序中出现的/*……*/部分或//……部分所起的作用是: 。 8、C++语言中数组元素的访问方式有两种,即: 和 。 9、C++规定:在每一个字符串的结尾加上一个 ,以便系统据此判断字符串是否结束。 10、C++语言中数据类型的转换有两种,即: 和 。 11、C++语言规定了运算符的优先级和结合性,其结合性分为: 和 。 12、若有int x=4,y=7; 则表达式x+=y,x*=x+y的值为 。 13、x>1 && y!=0的相反条件为 。 14、过程化程序设计方法中,程序由三种基本结构,即:顺序结构、 、 。 15、在C++中,若需要在程序文件中进行标准输入输出操作,则必须在开始加入预处理命令 ,若使用到数学库中的函数时,要在源程序的开始加入预处理命令 。 16、C++语言中用来存放变量地址的变量称作 。 17、int *p[10]; 的含义是 。 18、int **p; 的含义是 。 四、简答题 1、请用C++语言的表达式表示下列代数式。 (1) xsin55d 31abe (e=2.71828) 3bab2h4 (3) aht(2) (4) e(5) lnab•sin50 (e=2.71828) x(aax2)52、根据要求完成下列各题。 (1) 用两种方法实现一个字符串str,并赋以初值”welcome to Nanjing !”。 (2) 定义结构体类型date, 该结构体包含的成员为year (整型)、month (整型)、day(整型), 再使用typedef 将结构体类型date等价成DATE,最后使用DATE定义一个变量pdate。 五、程序分析题 1、写出下列程序运行结果: (1) #include \"iostream.h\" (4分) void main( ) {int x=5,y=8,*px,*py; px=&x,py=&y; cout<<\"num1=”<<*px<<’,’<<”num2=\"<<*py<<’;’; if(x swap1(int a,int b) {int t; t=a; a=b; b=t;