for(int i=1;i<=8;i=+2) s+=i*i;
cout<<\ }
输出结果:s=84
2. #include
cout<
输出结果:10,25
3. #include
int a[8]={36,25,48,14,55,20,47,82}; int b1, b2; b1=b2=a[0];
for(int i=1; i<8; i++) { if(a[i]
cout< 输出结果:14,82 4. #include for(int i=0;i void main() { int a[5]={1,2,3,4,5}; cout< 输出结果:120 5. #include char name[15]; //姓名 int age; //年龄 float pay; //工资 }; void main() { Worker x={\ Worker y, *p; y=x; p=&x; cout< cout< 输出结果:wangfong 46 1640 wangfong 51 1340 四、写出下列每个函数的功能(每小题8分,共24分) 1. int WC(int a[], int n, int k) { int c=0; for(int i=0;i 函数功能:统计出数组a的n个元素中大于等于参数k的值的元素个数并返回。 2. bool SG(int x) { //x为大于等于2的整数 int a=int(sqrt(x)); //sqrt(x)为求x的平方根 int i=2; while(i<=a) { if(x%i==0) break; i++; } if(i>a) return true; else return false; } 函数功能:判断x是否为一个素数(或质数),若是则返回真,否则返回假。 3. 假定结构类型Worker中的name域表示姓名,age域表示年龄,pay域表示工资。 void QA(Worker a[], int n) { for(int i=0; i cin>>a[i].name>>a[i].age>>a[i].pay; } 函数功能: 从键盘上输入n个Worker结构类型的记录依次保存到一维数组a的对应元素中。 五、按题目要求编写函数(6分) 假定函数声明为“void Print(int a[], int n);”,在函数体中按下标从大到小的次序输出数组a中的n个元素的值,并要求每行输出6个元素,当然最后一行可以不足6个。 答: void Print(int a[], int n) { int i,j=0; for(i=n-1; i>=0; i--) { cout< } cout< } 训练第三套 一、单选题(每小题2分,共20分) 1. 由C++源程序文件编译而成的目标文件的缺省扩展名为( A )。 A. obj B. lik C. exe D. cpp 2. 程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用( D )符号作为分隔符。 A. 空格或逗号 B. 逗号或回车 C. 逗号或分号 D. 空格或回车 3. 设x是一个bool型的逻辑量,y的值为10,则表达式 x && y的值为( C )。 A. 1 B. 0 C. 与x值相同 D. 与x值相反 4. for语句能够被改写为( D )语句。 A. 复合 B. if C. switch D. while 5. 在下面的do循环语句中,其循环体被执行的次数为( A )。 int i=0; do i++; while(i*i<10); A. 4 B. 3 C. 5 D. 2 6. 在下面的一维数组定义中,( C )语句有语法错误。 A. int a[]={1,2,3}; B. int a[10]={0}; C. int a[]; D. int a[5]; 7. 下面的( C )保留字不能作为函数的返回类型。 A. void B. int C. new D. long 8. 下面的函数声明中,( B )是“void BC(int a, int b);”的重载函数。 A. int BC(int x, int y); B. void BC(int a, char b); C. float BC(int a, int b, int c=0); D. int BC(int a, int b=0); 9. 当类中一个字符指针成员指向具有n个字节的存储空间时,它所能存储字符串的最大长度为( C )。 A. n B. n+1 C. n-1 D. n-2 10. 假定AB为一个类,则该类的拷贝构造函数的声明语句为( D )。 A. AB&(AB x); B. AB(AB x); C. AB(AB* x); D. AB(AB&); 二、填空题(每小题2分,共20分) 1.执行“cout< 2. 在C++每个程序行的后面或单独一行的开始使用注释的标记符为____//____。 3. 表达式float(25)/4的值为____6.25_______。 4. 关系表达式x+y>5的相反表达式为____ x+y<=5___ 5. 假定一个二维数组的定义为“int a[3][6];”,则该数组含有____18____个元素。 6. 执行“typedef int ABC[20];”语句把ABC定义为具有20个整型元素的_数组类型_。 7.假定p所指对象的值为36,p+1所指对象的值为49,则*++p的值为__49___。 8. 假定a是一个一维数组,则a[i]的指针访问方式为__*(a+i)_ 9.对一个类中的数据成员的初始化可以通过构造函数中的初始化表实现,也可以通过构造函数中的___函数体__实现。 10.当一个类对象离开它的作用域时,系统将自动调用该类的___析构函数_。 三、写出下列每个程序运行后的输出结果(每小题6分,共30分) 1. #include int SD(int a, int b, char op) { switch(op) { case '+': return a+b; case '-': return a-b; default: {cout<<\操作符op出错,退出运行!\ } } void main() { int x=20, y=6; cout< 运行结果:26 14 2. #include char* a[5]={\ char *p1; p1=a[0]; for(int i=1;i<5;i++) { if(strcmp(a[i], p1)>0) p1=a[i]; } cout< 运行结果:worker 3. #include void main() { cout< 运行结果:31 4. #include int a[n]={2,4,6,8,10,12,14,16,18}; int s=0; for(int i=0; i cout<<”s=”< 运行结果:24 5. #include