当前位置:首页 > C 语言程序设计自测练习(二)
A. 可维护性 B. 可复用性 C. 兼容性 D. 正确性
二、填空题
1. 含随机函数的表达式rand() 的值在_____至______区间内。
2. 在switch语句中,每个语句标号所含关键字case后面的表达式必须是整型_______。 3. 在if语句中,每个else关键字与它前面同层次并且最接近的________关键字相配套。 4. 作为语句标号使用的C++保留字case和default只能用于________语句的定义体中。 5. 执行switch语句时,在进行作为条件的表达式求值后,将从某个匹配的标号位置起向下执行,当碰到下一个标号位置时________执行。
6. 若while循环的“头”为“while(i++<=10)”,并且i的初值为0,同时在循环体中不会修改i的值,则循环体将被重复执行______次后正常结束。 7. 若do循环的“尾”为“while(++i<10)”,并且i的初值为0,同时在循环体中不会修改i的值,则循环体将被重复执行______次后正常结束。
8. 当在程序中执行到________语句时,将结束本层循环类语句或switch语句的执行。 9. 当在程序中执行到________语句时,将结束所在循环语句中循环体的一次执行。 10. 在程序中执行到________语句时,将结束所在函数的执行过程,返回到调用该函数的位置。 11.在程序执行完________函数后,将结束整个程序的执行过程,返回到操作系统下的C++集成开发窗口。
12. 元素类型为int的数组a[10]共占用________字节的存储空间。
13. 元素类型为double的二维数组a[4][6]共占用________字节的存储空间。 14. 元素类型为char的二维数组a[10][30]共占用________字节的存储空间。 15. 存储字符’a’和字符串”a”分别需要占用________和________个字节。 16. 空串的长度为________,存储它需要占用________个字节。 17. 字符串”\\’a\\’xy=4\\n”的长度为________。 18. 字符串”a:\\\\xxk\\\\数据”的长度为________。
19. 用于存储一个长度为n的字符串的字符数组的长度至少为________。
20. 若a是一个字符数组,则从键盘上向该数组输入一个字符串的表达式为__________。 21. 若a是一个字符数组,则向屏幕输出a中所存字符串的表达式为__________。
22. 一个二维字符数组a[10][20]能够存储________个字符串,每个字符串的长度至多为________。
23. 对一个二维字符数组a进行初始化的数据为{”123”,”456”,”789”},则a[1]元素对应的字符串为__________。
24. strlen(”apple”)的值为________,strcmp(”a”,”A”)的值为________。 25. 若需要把一个字符串”aaa”赋值到字符数组a中,则需要执行________函数的调用来实现。 26. 假定对二维数组a[3][4]进行初始化的数据为{{3,5,6},{2,8},{7}},则a[1][1]和a[2][3]分别被初始化为_______和________。
27. 在C++语言中,一个函数由函数头和__________组成。
28. 重载一个函数的条件是:该函数必须在参数的个数或参数的__________上与其它同名函数有所不同。
29. 如果一个函数只允许同一文件中的函数调用,则应在该函数定义前加上__________C++保留字。
30. 若“double x=100;”是文件F1.CPP中的一个全局变量定义语句,若文件F2.CPP中的某
5
个函数需要访问此x , 则应在文件F2.CPP中添加对x的声明语句为_________________。 31. 定义一个函数模板要用到的第一个修饰符是____________。
32. 在函数模板的参数中,用class修饰的参数称为__________参数。
33. 如果一个函数直接或间接地调用自身,这样的调用称为____________调用。
34. 已知int cubin(int n){return n*n*n;}和double cubin(double n){return n*n*n;}是一个函数模板的两个实例,假定类型参数用T表示,则该函数模板的定义是__________________________________。
35. 对于无返回值函数,定义函数时要用__________修饰函数类型。
36. 如果一个函数定义使用了__________修饰,则该函数不允许被其它文件中的函数调用。 37. 如果一个函数中有多个默认参数,则默认参数必须全部处在形参表的________部分。 38. 定义外部变量时,不用存储类说明符_________,而声明外部变量时用它。
39.调用系统函数时,要先使用#include命令包含该系统函数的原型语句所在的__________。 40. 函数形参的作用域是该函数的____________。
41. C++提供的预处理命令有宏定义命令,条件编译命令和____________。 42. 程序的编译是以__________为单位进行的。
43. C++程序运行时的内存空间可以分成全局数据区,堆区,栈区和__________。 44. 全局变量和静态局部变量具有静态生存期,存放在内存的____________区中。 45. 局部变量具有局部生存期,存放在内存的____________区中。
46. 若二维数组a有m列,设a[0][0]位于数组的第一个位置上,则计算任一元素a[i][j]在数组中位置序号的公式为____________。 47. 若有定义“double a[3][5];”,则a 数组中行下标和列下标的最大值分别为________和________。
48. 若有定义“struct AA {int a; char b; double c;}x;”,则x占用空间大小为________字节。
49. 当定义一个结构体变量时,系统分配给该变量的内存大小等于各成员所需内存大小的_______。
50. 一个指针类型的对象占用内存的________个字节的存储空间。
51. 一个指针指向一个数据对象,它保存着该数据对象的________,若数据对象为DataType类型,则相应的指针类型为__________。
52. 若要把一个整型指针p转换为字符指针,则采用的强制转换表达式为________。 53. 假定一个数据对象为int*类型,则指向该对象的指针类型为_______。
54. 假定p是一个指向整数对象的指针,则用________表示该整数对象,用________表示指针变量p的地址。
55. 假定p是一个指针,则*p++运算首先访问________,然后使________的值增1。 56. 假定p是一个指针,则(*p)++运算首先访问________,然后使________的值增1。 57. 假定p所指对象的值为25,p+1所指对象的值为42,则*p++的值为________。 58.假定p所指对象的值为25,p+1所指对象的值为42,则*++p的值为________。
59. 假定p所指对象的值为25,p+1所指对象的值为42,则执行(*p)++运算后,p所指对象的值为________。
60.假定p所指对象的值为25,p+1所指对象的值为42,则执行*p++运算后,p所指对象的值为________。
61. 假定对数组a[]进行初始化的数据为{2,7,9,6,5,7,10},则a[2]和a[5]分别被初始化为
6
________和________。
三、程序填充题,对程序、函数或类中划有横线的位置,根据题意按标号把合适的内容填写到程序下面相应标号的后面。
1. 采用指针访问方式从键盘给数组a[N]输入数据,然后对元素值重新按逆序存放并输出。 #include
int a[N],*p,*q;
for(p=a; p int r=*p; *p=*q; *q=r; ___(2)___; ___(3)___; } for(p=a;p (1) (2) (3) 2. 从键盘上输入一个正整数,然后把它转换成的二进制数的每一位存放到一维数组中,最后输出该二进制数。注意二进制数的存放是按照从低位到高位的次序进行的。 #include int x; cout<<\输入一个整数:\ cin>>x; int a[20],k=0,r; do { r=x%2; a[k++]=r; x=___(1)___; } while(___(2)___); for(--k;k>=0;k--) ___(3)___; cout< (1) (2) (3) 7 3. 对数组a[n]按升序进行的选择排序算法 void SelectSort(int a[], ___(1)___) { int i,j,k; for(i=1;i for(j=i;j if(a[j] int x=a[i-1]; a[i-1]=a[k]; ___(3)___; } } (1) (2) (3) 4. 对数组a[n]按升序进行的插入排序算法 void InsertSort(___(1)___, int n) { int i,j,x; for(i=1;i for(j=i-1;j>=0;j--) //为x顺序向前寻找合适的插入位置 if(x (1) (2) (3) 5. 对按从小到大排列的有序数组a[n]进行二分查找x的算法,若查找成功返回该元素下标,否则返回-1。 int BinarySearch(int a[],int x) { int low=0, high=N-1; //定义并初始化区间下界和上界变量 int mid; //定义保存中点元素下标的变量 while(low<=high) { mid=___(1)___; if(x==a[mid]) ___(2)___;
共分享92篇相关文档