西安交大C++随堂练习16

时间:2019-05-15 04:16:31下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《西安交大C++随堂练习16》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《西安交大C++随堂练习16》。

第一篇:西安交大C++随堂练习16

西安交通大学实验报告

一.实验目的

对后一阶段的的学习内容进行检测,查漏补缺,巩固知识点。

二.实验内容

1、编写算术表达式分析计算程序,输入字符串:“ 168+314=482,分析后,按表达式计算结果,并按如下格式输出: 168+314=482。运算符号仅限于 +、-、*、/、%,运算符两边只能是正整数。提示:将运算符两边的数字字符串分离,然后调用标准函数 int atoi(char *p),将数字符串转换为整数,atoi()函数在 stdlib.h 中。

1.程序源代码

#include #include“stdlib.h” #include #include using namespace std;int main(){ char str[30];cout<<“请输入一段字符串:”<<“";cin.getline(str,30);char *p;p=str;char a[5];char c[5];char f;int i=0,j=0;while(*p!=0){ while(*p>='0'&&*p<='9'){

a[i]=*p;

p++;i++;} a[i]='';f=*p;while(*p!=0){

p++;

c[j]=*p;

j++;} c[j]='';} int result;if(f=='+')result=atoi(a)+atoi(c);else if(f=='-')result=atoi(a)-atoi(c);else if(f=='/')

result=atoi(a)/atoi(c);else if(f=='*')

result=atoi(a)*atoi(c);else if(f=='%')result=atoi(a)%atoi(c);cout<<”计算结果“<<”“;for(i=0;i

cout<

cout<

2、编写判断对称整数数列的函数,其原型为:int Issymmetry(int *pa, int len)。pa为指向某个整数数组的指针,len为整数数组中的元素个数,若pa指向的整数数组是对称数列,函数返回1,否则返回0。所谓对称数列指数列首尾元素对应相等,如数列{-168,32567,-123,0,-123,32567,-168}和{11,-22,345,345,-22,11}都是对称数列,而数列{-1,-2,-3}和{29,0,-123,-122,0,29 }不是对称数列

1.程序源代码

#include #include”stdlib.h“ #include #include using namespace std;int Issymmetry(int *pa, int len){ int n=len/2;int k=0;for(int i=0;i

if(pa[i]!=pa[len-1-i])

break;

k++;} if(k==n)

return 1;else

return 0;} int main(){ int n,i;cout<<”请输入元素个数:“;cin>>n;int *p=new int[n];for(i=0;i

cin>>p[i];if(Issymmetry(p,n))

cout<<”该数组对称“<

cout<<”该数组不对称“<

三 定义商品楼类building,一个商品楼由若干相同大小的套房flat,每套房由若干相同大小的房间room(房间都是由长宽高直角边构成),应有构造函数、计算商品楼总面积函数、计算一套房的总面积、计算一个房间面积函数和体积函数、运算符==重载函数。

1.程序源代码

#include #include using namespace std;class room { protected: double length,width,height;double area;double v;public: room(){length=1;width=1;height=1;} void regeister(double a,double b,double c){

length=a;width=b;height=c;} int getarea(){return area;} double Area(){

area=length*width;

return area;} double V(){

v=length*width*height;

return v;} void showme(){

cout<<”长宽高依次为“<

if(length==c.length&&width==c.width&&height==c.height)

return 1;

else

return 0;} };class flat:public room { protected: int m;double farea;double fv;public: void flatregeister(double a,double b,double c,int M){ regeister(a,b,c);m=M;} double flatarea(){ Area();farea=area*m;return farea;} void print(){

showme();} void showarea(){ cout<<”面积:“<

k=K;} double Barea(){ flatarea();barea=farea*k;return barea;} void Print(){ print();cout<<”面积:“<

cout<<”a==a1“<

四 编写一个程序,可以读入一个文本文件(假设为data.txt),统计文件中大写字母个数,小写字母个数,数字字符个数,其它字符个数。并求出最长行(即该行中字符个数最多)的行号,输出所有结果。如果data.txt文件内容如下:

1.程序源代码

#include #include #include #include using namespace std;int main(){

char ch;

int n=1;ifstream fin(”1228.txt“);if(!fin){

cout<<”打开失败“<

return 1;} int a[10];int b[10];int i=0;a[i]=0;int shuzi=0;int xiaoxie=0;

int daxie=0;

int others=0;while(fin){

fin.get(ch);

if(ch!='n')

{ if(ch>='0'&&ch<='9')

shuzi++;

else if(ch>='a'&&ch<='z')

xiaoxie++;else if(ch>='A'&&ch<='Z')

daxie++;

else

others++;

a[i]++;

}

if(ch=='n')

{ i++;

n++;

a[i]=0;

}

cout<

min=a[i];

mi=i;} if(a[i]>max){

max=a[i];

ma=i;} } cout<<”数字个数“<

二、个人小结

本次程序设计主要学习内容不算复杂,其中的细节有参数的设置和应用以及传递方式,还有局部变量与全部变量的区别和联系。从学习内容上来说算不上难,只是具体在操作中总是出现这样那样的问题,即使是特别简单的问题也不那么容易解决,所以在以后学习过程中还要不断应用,已达到温故知新的目的!

具体到题目中第三题因为条件不好控制,导致图形输出总是出现这样那样的问题,最后虽然问题得到了解决,但也使源程序变得十分冗长复杂,以后一定要相出一种简单的做法来使问题得到解决!

对第六题理解不够透彻致使输出无法显示,经过请教老师解决了问题,同时也从根本上扫清了思想误区,更加透彻的了解到了C++的魅力!

第二篇:西安交大C++程序设计第四章作业

西安交通大学实验报告

课程_计算机程序设计_实验名称_数组与结构体_

系 别____ ___________ 实 验 日 期 2014年 3 月 18 日

专业班级___ ___组别_____________ 实 验 报 告 日 期 2014年 3 月 22 日 姓 名__ __ __学号_ ___ 报 告 退 发(订正、重做)同 组 人_________________________________ 教 师 审 批 签 字

一、实验目的:

掌握数组与字符串的输入方法,包括一维数组、二位数组,不含空格的一个字符串以及含空格的多个字符串的输入以及处理。

二、实验内容:

1.第一题:编写一个程序将给出的矩阵转置。(1)源程序代码:

#include using namespace std;int main(){

} int jz[4][4]={{4,6,8,9},{2,7,4,5},{3,8,16,15},{1,5,7,11}};int zz[4][4];int i,j;for(i=0;i<4;i++){

} return 0;for(j=0;j<4;j++){

} cout<

/ 12

2.第二题:改写例4-5冒泡排序程序,由每轮挑选最小元素改为每轮挑选最大元素。(必做题)(1)源程序代码:

#include using namespace std;int main(){

const int COUNT=16;int list[COUNT]={503,87,512,61,908,170,897,275,653,426,154,509,612,677,765,703};for(int i=COUNT-1;i>=0;i--){

} cout<<“结果是:”<

/ 12

for(int j=0;j

} if(list[j+1]

} int tmp=list[j+1];list[j+1]=list[j];list[j]=tmp;} return 0;(2)实验结果:

3.第三题:编写程序:输入N(例如N为20)个整数,统计输出负数的个数、正整数的个数及0的个数;计算输出所有负数之和、所有正整数之和。(必做题)(1)源程序代码:

#include using namespace std;int main(){

const int m=20;cout<<“请输入个整数:n”;int num[m];for(int n=0;n>num[n];} int z=0,f=0,l=0,Sz=0,Sf=0;for(int i=0;i

if(num[i]>0){ z++;

/ 12

}

} } Sz=Sz+num[i];else {

} if(num[i]<0){

} else l++;f++;Sf=Sf+num[i];cout<<“正数的个数为:”<

4.第四题:加密。明文中小写字母用其后第3个小写字母代替,明文中大写字母用其后第3个大写字母代替。(必做题)(1)源程序代码:

#include using namespace std;int main(){

char in[200];cout<<“请输入您要加密的语句(不超过个单词):”;cin.get(in,200);

/ 12

} int i;for(i=0;in[i]!=0;i++){

} cout<<“加密结果是:”<='a'&&in[i]<='z'){

} if(in[i]>='A'&&in[i]<='Z'){

} if(in[i]>'W')in[i]=in[i]-23;in[i]=in[i]+3;else if(in[i]>'w')in[i]=in[i]-23;in[i]=in[i]+3;else(2)实验结果:

5.第五题:编写凯撒解密程序,即将第5题凯撒加密的密文解密成明文。(必做题)(1)源程序代码:

#include using namespace std;int main(){

/ 12

} char in[200];cout<<“请输入您要解密的语句:”;cin.get(in,200);int i;for(i=0;in[i]!=0;i++){

} cout<<“解密结果是:”<='a'&&in[i]<='z'){

} if(in[i]>='A'&&in[i]<='Z'){

} if(in[i]<'D')in[i]=in[i]+23;in[i]=in[i]-3;else if(in[i]<'d')in[i]=in[i]+23;in[i]=in[i]-3;else(2)实验结果:为了与上题对照以验证是否正确,故意将上题的结果代入:

/ 12

6.第六题:(必做题)编写程序完成如下功能: A)定义二维数组8 ×8; B)自动生成数组中每个数据元素值为(i+1)×(j+1),i和j分别为行列坐标,输出该数组所有元素; C)计算主对角线元素之和,计算次对角线元素之和,并输出; D)将主对角线元素之和加到第一行中每个元素中,然后输出第一行所有元素值。(1)源程序代码:

#include using namespace std;int main(){ const int M=8;int a[M][M];int i,j;cout<<“矩阵的各个元素为:n”;for(i=0;i

for(j=0;j

{

a[i][j]=(i+1)*(j+1);

if(a[i][j]>9)

cout<

else

cout<

}

cout<

zhu=zhu+a[i][i];

fu=fu+a[i][M-i];} cout<<“主对角线元素之和为:”<

} } cout<<“a[”<

7.第七题:(必做题)编写程序产生 ISBN 号的校验位。任何新出版的图书都配有 ISBN 号,2007 年以前是由 10 位数字加上3个连字符组成的 ISBN,其中最后一位为校验位,校验位产生的具体算法如下:

假设某国际标准书号号码前 9 位是: 7-309-04547 ;计算加权和 S : S = 7 × 10+ 3 × 9+ 0 × 8+ 9 × 7+ 0 × 6+ 4 × 5+ 5 × 4+ 4 × 3+ 7 × 2 = 226 ;计算 S ÷ 11 的余数 M : M = 226 mod 11 = 6 ;计算 11-M 的差 N : N = 11 − 6 = 5 如果 N = 10,校验码是字母“ X ”;如果 N = 11,校验码是数字“ 0 ”;如果 N 为其他数字,校验码是数字 N。所以,本书的校验码是 5,故该

/ 12

国际标准书号为 ISBN 7-309-04547-5。

程序总体要求:先输入 11 位字符组成 ISBN 字符串,如: 7-309-04547,然后计算产生校验码(位)5,最后输出完整的 ISBN 字符串 7-309-04547-5 下面是三本书的 ISBN,以便测试程序: 7-302-09831-X 7-302-13294-1 7-5053-8405-8(1)源程序代码:

//7-302-09831-X //7-302-13294-1 //7-5053-8405-8 #include using namespace std;int main(){ char num[20];cout<<“请输入书号的前部分:”<>num;int i,j;int num_[20];int sum;cout<<“完整的书号是:”<

if(num[i]>='0'&&num[i]<='9')

{

num_[i]=num[i]-'0';

cout<

sum=sum+num_[i]*j;

j--;

}

else

cout<

} int M=sum%11;if(11-M==10){ if(11-M==11)

} return 0;cout<<“-0”<

(2)实验结果:

八.第八题:两个有序数列(由小到大排列)存放在两个数组中,将两数列归并为一个有序数列,即归并后的结果数列放在第三个数组中。例如: int a[5] = {1,4,10,13,16};//已知数列 int b[8] = {3,6,9,12,15,18,21,24};//已知数列 int c[13] = {1,3,4,6,10,12,13,15,16,18,21,24};//归并后的结果数列(选做题)

(1)源程序代码:

/ 12

#include using namespace std;int main(){ const int M=10;const int P=2;int a[P][M];int a2[2*M];int i;cout<<“请按顺序输入数列一的各个元素:”<>a[0][i];cout<<“请按顺序输入数列二的各个元素:”<

cin>>a[1][i-M];for(i=0;i<2*M;i++){

if(i

{

a2[i]=a[0][i];

}

if(i>=M)

{

a2[i]=a[1][i-M];

} } for(i=2*M-1;i>=0;i--){

for(int j=0;j

{

if(a2[j+1]

{

int tmp=a2[j+1];

a2[j+1]=a2[j];

a2[j]=tmp;

}

} } cout<<“合并后数列为:”<

(2)实验结果: / 12

第三篇:2016华工C++随堂练习答案

2016华南理工大学网络教育C++随堂练习

1.一个最简单的C++程序,可以只有一个()。

(A)库函数

(B)自定义函数

(C)main函数

(D)空函数

答题:

A.B.C.D.(已提交)参考答案:C 问题解析:

2.函数名是(),用于识别和调用函数。

(A)关键字

(B)标识符

(C)常数

(D)语句

答题:

A.B.C.D.(已提交)参考答案:B 问题解析:

3.用C++语言编写的源程序要成为目标程序必须要经过()。

(A)解释

(B)汇编

(C)编辑

(D)编译

答题:

A.B.C.D.(已提交)参考答案:D 问题解析:

4.C++程序中的简单语句必须以()结束。

(A)冒号

(B)分号

(C)空格

(D)花括号

答题:

A.B.C.D.(已提交)参考答案:B 问题解析:

5.程序中把表达式“a+0.5”写为“a*0.5”,是()错误。

(A)编译

(B)连接

(C)运行

(D)逻辑

答题:

A.B.C.D.(已提交)参考答案:D 问题解析:

1.在下列选项中,全部都是C++关键字的选项为()。

(A)while IF Static(B)break char go

(C)sizeof case extern(D)switch float integer 答题:

A.B.C.D.(已提交)参考答案:C 问题解析:

2.按C++标识符的语法规定,合法的标识符是()。

(A)_abc(B)new(C)π(D)“age” 答题:

A.B.C.D.(已提交)参考答案:A 问题解析:

3.在C++语句中,两个标识符之间()不能作为C++的分隔符。

(A)数字

(B);(C):(D)+ 答题:

A.B.C.D.(已提交)参考答案:A 问题解析:

4.可以用于命名变量的标识符是()。

(A)3x(B)const(C)name_2(D)a.com 答题:

A.B.C.D.(已提交)参考答案:C 问题解析:

5.说明变量a是整型变量的正确语句是()。

(A)int a;(B)inta;(C)Int a;(D)INTa;答题:

A.B.C.D.(已提交)参考答案:A 问题解析:

1.下列正确的八进制整型常量表示是()。

(A)0a0(B)015(C)080(D)0x10 答题:

A.B.C.D.(已提交)参考答案:B 问题解析:

2.下列错误的十六进制整型常量表示是()。

(A)0x11(B)0xaf(C)0xg(D)0x1f 答题:

A.B.C.D.(已提交)参考答案:C 问题解析:

3.在下列选项中,全部都合法的浮点型数据的选项为()。

(A)-1e3.5

15.2e-4

(B)12.34

-1e+5

0.1E-12(C)0.2e-2

-12345.e-5

(D)5.0e(1+4)0.1

8e+2 答题:

A.B.C.D.(已提交)参考答案:B 问题解析:

4.在下列选项中,正确的字符常量为()。

(A)“a”(B)'name'(C)a(D)'101' 答题:

A.B.C.D.(已提交)参考答案:D 问题解析:

5.下列选项中,结果等于false的是()。

(A)1<3(B)1=3(C)1==3(D)1!=3 答题:

A.B.C.D.(已提交)参考答案:C 问题解析:

1.在下列选项中,()不能交换变量a和b的值。

(A)t=b;b=a;a=t;(B)a=a+b;b=a-b;a=a?b;

(C)t=a;a=b;b=t;(D)a=b;b=a;答题:

A.B.C.D.(已提交)参考答案:D 问题解析:

2.关于下列语句,叙述错误的是()。

int i=10,?p=&i;

(A)p的值为10(B)p指向整型变量i

(C)?p表示变量i的值

(D)p的值是变量i的地址

答题:

A.B.C.D.(已提交)参考答案:A 问题解析:

3.有以下变量说明,下面不正确的赋值语句是()。

int a=5, b=10, c;int ?p1 = &a, ?p2 = &b;

(A)?p2 = b;(B)p1 = a;

(C)p2 = p1;(D)c = ?p1 ?(?p2);答题:

A.B.C.D.(已提交)参考答案:B 问题解析:

4.有以下变量说明,下面正确的语句是()。

int a=10, b;int &pa=a, &pb=b;

(A)&pb = a;(B)pb = pa;(C)pb = &pa;(D)?pb = ?pa;答题:

A.B.C.D.(已提交)参考答案:B 问题解析:

5.执行下面语句序列后,a和b的值分别为()。

int a=5, b=3, t;

int &ra=a;

int &rb=b;

t=ra;ra=rb;rb=t;

(A)3和3(B)3和5(C)5和3(D)5和5 答题:

A.B.C.D.(已提交)参考答案:B 问题解析:

1.假设有说明 int a=0;double x=5.16;,则在以下语句中,((A)x=a/x;(B)x=x/a;(C)a=a%x;(D)x=x?a;答题:

A.B.C.D.(已提交)参考答案:C 问题解析:

2.在下列运算符中,()优先级最高。

(A)<=(B)?=(C)+(D)? 答题:

A.B.C.D.(已提交)参考答案:D)属于编译错误。问题解析:

3.在下列运算符中,()优先级最低。

(A)!(B)&&(C)!=(D)? : 答题:

A.B.C.D.(已提交)参考答案:D 问题解析:

4.已知int i=1, j=2;,则表达式 i+++j 的值为()。

(A)1(B)2(C)3(D)4 答题:

A.B.C.D.(已提交)参考答案:C 问题解析:

5.已知int i=1, j=2;则表达式 ++i+j 的值为()。

(A)1(B)2(C)3(D)4 答题:

A.B.C.D.(已提交)参考答案:D 问题解析:

6.在下列表达式选项中,()是正确。

(A)++(a++)(B)a++b(C)a+++b(D)a++++b 答题:

A.B.C.D.(已提交)参考答案:C 问题解析:

7.已知 int i=0, j=1, k=2;则逻辑表达式 ++i ||--j && ++k 的值为(。)

(A)0(B)1(C)2(D)3 答题:

A.B.C.D.(已提交)参考答案:B 问题解析:

8.执行下列语句后,x和y的值是()。

int x, y;

x=y=1;++x || ++y;

(A)1和1(B)1和2(C)2和1(D)2和2 答题:

A.B.C.D.(已提交)参考答案:C 问题解析:

9.设x为整型变量,不能正确表达数学关系 1<x<5 的C++逻辑表达式是((A)1< x <5(B)x==2||x==3||x==4

(C)1=5)答题:

A.B.C.D.(已提交)参考答案:A 问题解析:

10.已知 int x=5;执行下列语句后,x的值为()。

x+=x-=x?x;

(A)25(B)40(C)?40(D)20 答题:

A.B.C.D.(已提交)参考答案:C。)问题解析:

11.设 int a=1, b=2, c=3, d=4;则以下条件表达式的值为()。

a

(A)1(B)2(C)3(D)4 答题:

A.B.C.D.(已提交)参考答案:A 问题解析:

12.以下逗号表达式的值为()。

(x=4?5, x?5), x+25

(A)25(B)20(C)100(D)45 答题:

A.B.C.D.(已提交)参考答案:D 问题解析:

1.控制台程序中需要使用cin和cout输出/输入,include指令包含的头文件是((A)cmanth(B)conio.h(C)iostream(D)iomanip 答题:

A.B.C.D.(已提交)参考答案:C 问题解析:

2.使用标准命名空间的语句是()。

(A)using namespace std;(B)using namespace iostream。)

(C)include std;(D)include iostream;答题:

A.B.C.D.(已提交)参考答案:A 问题解析:

3.有语句 double x, y;以下正确的输入语句是()。

(A)cin<

(B)cin<

(C)cin<

答题:

A.B.C.D.(已提交)参考答案:D 问题解析:

4.有语句 int a=1, b=2;以下正确的输出语句是()。

(A)cout<

(B)cout<b?a:b<

(C)cout<<(hex)a+b;

(D)cout<<&a<

答题:

A.B.C.D.(已提交)参考答案:D 问题解析:

5.以输出宽度为8输出变量x值的语句是()。

(A)cout<

(C)cout<

D)

(答题:

A.B.C.D.(已提交)参考答案:A 问题解析:

1.已知 int i=0, x=1, y=0;,在下列选项中,使i的值变成1的语句是()。

(A)if(x&&y)i++;(B)if(x==y)i++;

(C)if(x||y)i++;(D)if(!x)i++;答题:

A.B.C.D.(已提交)参考答案:C 问题解析:

2.已知 int i=0, x=1, y=0;,在下列选项中,使i的值变成1的语句是()。

(A)if(x){if(y)i=1;else i=0;}(B)if(x){if(y)i=1;} else i=0;

(C)if(x)i=0;else { if(y)i=1;}(D)if(x)i=1;else {if(y)i=0;} 答题:

A.B.C.D.(已提交)参考答案:D 问题解析:

3.设有函数关系为y=,下列选项中,能正确表示上述关系的是()。(A)y = 1;

if(x >= 0)

if(x == 0)y = 0;

else y =-1;

(B)y =-1;

if(x!= 0)

if(x > 0)y = 1;

else y = 0(C)if(x <= 0)

if(x < 0)y =-1;

else y = 0;

else y = 1;

(D)y =-1;

if(x <= 0)

if(x < 0)y =-1;

else y = 0;

答题:

A.B.C.D.(已提交)参考答案:C 问题解析:

4.设i=2,执行下列语句后i的值为()。

switch(i)

{ case 1 : i ++;

case 2 : i--;

case 3 : ++ i;break;

case 4 :--i;

default : i ++;

}

(A)1(B)2(C)3(D)4 答题:

A.B.C.D.(已提交)参考答案:B 问题解析:

5.执行下列语句后,输出显示为()。

char ch='A';

switch(ch)

{

case 'A' : ch++;

case 'B' : ch++;

case 'C' : ch++;

} cout<

(A)A(B)B(C)C(D)D 答题:

A.B.C.D.(已提交)参考答案:D 问题解析:

1.已知int i=0,x=0;,在下面while语句执行时循环次数为(while(!x && i< 3){ x++;i++;}

(A)4(B)3(C)2(D)1 答题:

A.B.C.D.(已提交)参考答案:D 问题解析:

2.已知int i=3;,在下面do_while 语句执行时的循环次数为(do{ i--;cout<

(A)1(B)2(C)3(D)无限

答题:

A.B.C.D.(已提交)

。))参考答案:B 问题解析:

3.下面for语句执行时的循环次数为()。

int i, j;

for(i=0, j=5;i=j;)

{ cout<

(A)0(B)5(C)10(D)无限

答题:

A.B.C.D.(已提交)参考答案:B 问题解析:

4.以下程序段形成死循环的是()。

(A)int x;for(x=0;x<3;){ x++;};

(B)int k = 0;do { ++k;} while(k>=0);

(C)int a=5;while(a){ a--;};

(D)int i=3;for(;i;i--);

答题:

A.B.C.D.(已提交)参考答案:B 问题解析:

5.执行以下程序段后,x的值是()。

{ int i, j, x = 0;

for(i=0;i<=3;i++)

{ x++;

for(j=0;j<=3;j++)

{ if(j)continue;

x++;

}

}

(A)8(B)12(C)14(D)16 答题:

A.B.C.D.(已提交)参考答案:A 问题解析:

1.有 if<逻辑表达式><语句>;若整型变量a和b的值都不等于0时执行<语句>,则逻辑表达式是()。

(A)a&b(B)a&&b(C)a!=b(D)a-b!=0 答题:

A.B.C.D.(已提交)参考答案:B 问题解析:

2.有 if<逻辑表达式><语句>;若整型变量a、b的值相等时执行<语句>,则逻辑表达式是()。

(A)a=b(B)a!=b(C)a-b(D)!(a-b)答题:

A.B.C.D.(已提交)参考答案:D 问题解析: 3.有语句

for(int i=1;i<=10;i++)

if(!(i%3))cout< 输出结果是()。

(A)1 2 3(B)1 2 4 5(C)3 6 9(D)4 5 6 答题:

A.B.C.D.(已提交)参考答案:C 问题解析: 4.有语句

int i=5, sum=0;

while(i--){ sum+=i%2;}

循环结束后,sum的值等于()。

(A)2(B)3(C)4(D)5 答题:

A.B.C.D.(已提交)参考答案:A 问题解析: 5.有语句

int a=5, b=1;

while(a-b){ a--;b++;}

循环体执行的次数是()。

(A)1(B)2(C)3(D)4 答题:

A.B.C.D.(已提交)参考答案:B 问题解析:

1.以下程序段输出结果是()。

int i,n=0;

for(i=0;i<10;i++)

{

if(i%3)break;

n++;

} cout<

(A)1(B)2(C)3(D)4

答题:

A.B.C.D.(已提交)参考答案:A 问题解析:

2.以下程序段输出结果是()。

int i,n=0;

for(i=0;i<10;i++)

{

if(i%3)continue;

n++;

}

cout<

(A)1(B)2(C)3(D)4 答题:

A.B.C.D.(已提交)参考答案:D 问题解析:

3.以下程序段输出结果是()。

int i,n=0;

for(i=0;i<10;i++)

{

if(i>2)goto out;

n++;

} out: cout<

(A)1(B)2(C)3(D)4

答题:

A.B.C.D.(已提交)参考答案:C 问题解析:

1.以下正确的函数原型为()。

(A)fun1(int x;int y);(B)void fun1(x, y);

(C)void fun1(int x, y);(D)void fun1(int, int);答题:

A.B.C.D.(已提交)参考答案:D 问题解析:

2.有函数原型 int f2(int, int);以下正确的调用语句是()。

(A)int a=fun2(1);(B)cout<

(C)int a=fun2(1)+fun(2);(D)cout<

A.B.C.D.(已提交)参考答案:B 问题解析:

3.有函数原型 void f3(double);以下正确的调用语句是()。

(A)double a=fun3(0.15);(B)fun3(0.34);

(C)double a=fun3(0.1)+f3(0.2);(D)cout<

A.B.C.D.(已提交)参考答案:B 问题解析:

4.以下正确的函数定义是()。

(A)int fun4(int a, int b){ return a+b;}(B)void fun4(int a, int b){ return a+b;}

(C)int fun4(int a, int b){ fun4 = a+b;}(D)void fun4(int a, int b){ fun4 = a+b;} 答题:

A.B.C.D.(已提交)参考答案:A 问题解析:

5.以下正确的函数定义是()。

(A)void fun5();{ cout<<“Call f5n”;}(B)void fun5(){ return f5;}

(C)void fun5(){ cout<<“Call f5n”;}(D)void fun5(){ return 5;} 答题:

A.B.C.D.(已提交)参考答案:C 问题解析:

1.有函数原型 void fun6(int);,在下列选项中,不正确的调用是()。

(A)int a = 21;fun6(a);(B)int a = 15;fun6(a3);

(C)int b = 100;fun6(&b);(D)fun6(256);答题:

A.B.C.D.(已提交)参考答案:C 问题解析:

2.有函数原型 void fun7(int *);,在下列选项中,正确的调用是()。

(A)double x = 2.17;fun7(&x);(B)int a = 15;fun7(a*3.14);

(C)int b = 100;fun7(&b);(D)fun7(256);答题:

A.B.C.D.(已提交)参考答案:C 问题解析:

3.有函数原型 void fun8(int &);,在下列选项中,正确的调用是()。

(A)int a = 2.17;fun8(&a);(B)int a = 15;fun8(a?3.14);

(C)int b = 100;fun8(b);(D)fun8(256);答题:

A.B.C.D.(已提交)参考答案:C 问题解析: 4.有声明

void fun9(int ? &);int a, int ?p = &a;

在下列选项中,正确的调用是()。

(A)fun9(&a);(B)fun9(p);(C)fun9(?a);(d)fun9(?p);答题:

A.B.C.D.(已提交)参考答案:B 问题解析:

5.5以下正确的函数定义是()。

(A)int * fun10(double x){ return x;}(B)int * fun10(double x){ return &x;}

(C)int * fun10(int a){ return *a;}(D)int * fun10(int a){ return &a;} 答题:

A.B.C.D.(已提交)参考答案:D 问题解析:

6.函数参数的默认值不允许为()。

(A)全局常量

(B)直接常量

(C)局部变量

(D)函数调用

答题:

A.B.C.D.(已提交)参考答案:C 问题解析:

1.在C++中,一个项目可以包含多个函数,它们之间是()。

(A)独立定义的(B)嵌套定义的

(C)根据调用关系定义的(D)根据调用顺序定义的答题:

A.B.C.D.(已提交)参考答案:A 问题解析:

2.一个项目中只能有一个的函数是()。

(A)系统库函数

(B)自定义函数

(C)主函数

(D)在其他文件中定义的函数

答题:

A.B.C.D.(已提交)参考答案:C 问题解析:

3.一个项目中包含3个函数:main、fa和fb函数,它们之间不正确的调用是((A)在main函数中调用fb函数

(B)在fa函数中调用fb函数

(C)在fa函数中调用fa函数

(D)在fb函数中调用main函数

答题:

A.B.C.D.(已提交)参考答案:D。)问题解析:

4.实现函数调用需要()进行信息管理。

(A)队列

(B)堆栈

(C)数组

(D)参数

答题:

A.B.C.D.(已提交)参考答案:B 问题解析:

5.关于递归调用不正确的描述是()。

(A)递归调用和嵌套调用都是通过堆栈管理实现的(B)函数直接或间接调用自己称为递归调用

(C)递归终止条件必须为参数值等于0

(D)递归算法的问题规模必须是逐步缩小的答题:

A.B.C.D.(已提交)参考答案:C 问题解析:

1.有以下函数定义,该函数的类型是()。

double fun11(int ary[], int len)

{ /*……*/ }

(A)double fun11(int ary[], int len)(B)double fun11(int [], int)

(C)double(int[], int)(D)double 答题:

A.B.C.D.(已提交)参考答案:C 问题解析: 2.有说明语句:

typedef double funt(double);funt fun12;

以下叙述正确的是()。

(A)funt和 fun12是类型相同的函数

(B)fun12是funt类型的变量

(C)funt是返回typedef double类型的函数(D)fun12是funt类型的函数

答题:

A.B.C.D.(已提交)参考答案:D 问题解析: 3.有语句

typedef double funt(double);funt fun13, *pfun;

则以下正确的赋值语句是()。

(A)pfun=fun13;(B)*pfun=fun13;(C)pfun=funt;(D)*pfun=funt;答题:

A.B.C.D.(已提交)参考答案:A 问题解析: 4.有语句

typedef double funt(double);funt fun13, fun14, *pfun;

则以下不正确的赋值语句是()。

(A)pfun=fun13;(B)pfun=&fun14;

(C)pfun=*fun13;(D)fun13=fun14;答题:

A.B.C.D.(已提交)参考答案:A 问题解析: 5.有声明

int fun14(int);int(?pf)(int)= fun14;

在下列选项中,正确的调用是()。

(A)int a=15;int n=fun14(&a);(B)int a = 15;cout<<(&pf)(a);

(C)cout<<(?pf)(256);(D)cout << ?pf(256);答题:

A.B.C.D.(已提交)参考答案:A 问题解析:

1.指定内联函数的关键字是()。

(A)include(B)inline(C)namespace(D)typedef 答题:

A.B.C.D.(已提交)参考答案:B 问题解析:

2.内联函数的正确定义是()。

(A)inline int small();int small(){ /*……*/ }

(B)int small();inline int small(){ /*……*/ }

(C)int inline small();int small(){ /*……*/ }

(D)int small();int inline small(){ /*……*/ } 答题:

A.B.C.D.(已提交)参考答案:A 问题解析:

3.使用重载函数编程序的目的是()。

(A)使用相同的函数名调用功能相似的函数

(B)共享程序代码

(C)提高程序的运行速度

(D)节省存储空间

答题:

A.B.C.D.(已提交)参考答案:A 问题解析:

4.重载函数要求()。

(A)函数名不同,函数参数个数相同

(B)函数名不同,函数参数类型相同

(C)函数名相同,函数类型各不相同

(D)函数名相同,函数类型也相同

答题:

A.B.C.D.(已提交)参考答案:C 问题解析:

5.以下正确的重载函数是()。

(A)int same(int, double);double same(int, double);

(B)int same1(int, double);int same2(int, double);

(C)int same(int =0);int same(int);

(D)int same(int, double);int same(int, double, double);答题:

A.B.C.D.(已提交)参考答案:D 问题解析:

1.自动存储变量是指()。

(A)自动指定存储地址的变量

(B)自动更新数据的变量

(C)在程序块执行时生成,块结束时释放的变量

(D)在项目执行时生成,项目结束时释放的变量

答题:

A.B.C.D.(已提交)参考答案:C 问题解析:

2.在函数中声明的静态变量()。

(A)在函数体中可见,函数结束调用时释放。

(C)在项目中可见,函数结束调用时释放。

(B)在函数体中可见,项目结束调用时释放。

(D)在项目中可见,项目结束调用时释放。

答题:

A.B.C.D.(已提交)参考答案:B 问题解析:

3.语句标号的作用域是()。

(A)函数

(B)文件

(C)程序块

(D)项目

答题:

A.B.C.D.(已提交)参考答案:A 问题解析: 4.全局变量指的是()的变量。

(A)在项目所有文件可访问

(B)当前文件的所有代码可访问

(C)任何自动初始化为0(D)具有文件作用域

答题:

A.B.C.D.(已提交)参考答案:D 问题解析:

5.当局部变量与全局变量同名时,若要在局部块内访问全局变量,使用()运算符。

(A)::(B):(C).(D)-> 答题:

A.B.C.D.(已提交)参考答案:A 问题解析:

1.有数组定义double d[10];以下叙述不正确的是()。

(A)数组d有10个元素

(B)数组d的最后一个元素是d[10]

(C)数组d的第一个元素*d(D)数组d的字节数是sizeof(double)*10 答题:

A.B.C.D.(已提交)参考答案:B 问题解析:

2.以下对一维数组 a 的定义正确的是()。

(A)int n = 5, a[n];(B)int a(5);

(C)const int N = 5;int a[N];(D)int n;cin>>n;int a[n];答题:

A.B.C.D.(已提交)参考答案:C 问题解析:

3.下列数组定义语句中,不合法的是()。

(A)int a[3] = { 0, 1, 2, 3 };(B)int a[] = { 0, 1, 2 };

(C)int a[3] = { 0, 1, 2 };(D)int a[3] = { 0 };答题:

A.B.C.D.(已提交)参考答案:A 问题解析:

4.已知 int a[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }, *p = a;,不能表示数组 a 中元素的式子是()。

(A)*a(B)*p(C)a(D)a[ p-a ] 答题:

A.B.C.D.(已提交)参考答案:C 问题解析:

5.已知 int a[] = { 0,2,4,6,8,10 }, *p = a+1;其值等于0的表达式是()。

(A)*(p++)(B)*(++p)(C)*(p--)(D)*(--p)答题:

A.B.C.D.(已提交)参考答案:D 问题解析:

1.说明一个长度为10的数组,元素类型为整型指针的正确语句是()。

(A)int *pary[10];(B)int(*pary)[10]

(C)int *pary(10);(D)int **pary[10] 答题:

A.B.C.D.(已提交)参考答案:A 问题解析: 2.有以下语句

int a=1, b=2, c=3;int *pary[3]={&a, &b, &c};

能够输出a+b+c 的值的语句是()。

(A)cout<<(pary[0]+pary[1]+pary[2]);(B)cout<<(*pary[0]+*pary[1]+*pary[2]);

(C)cout<<(pary[1]+pary[2]+pary[3]);(D)cout<<(*pary[1]+*pary[2]+*pary[3]);答题:

A.B.C.D.(已提交)参考答案:B 问题解析:

1.以下不能对二维数组a进行正确初始化的语句是()。

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

(B)int a[][3] = { { 0,1 }, { 0 } };

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

(D)int a[][3] = { 0, 1, 2, 3, 4, 5 };答题:

A.B.C.D.(已提交)参考答案:C 问题解析:

2.已知int a[][3] = { { 0, 1 }, { 2, 3, 4 }, { 5, 6 }, { 7 } };则 a[2][1]的值是()。

(A)0(B)2(C)6(D)7 答题:

A.B.C.D.(已提交)参考答案:C 问题解析:

3.已知int a[3][3] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };,不能表示数组元素a[2][1]的地址是()。

(A)&a[2][1](B)*(a[2]+1)(C)a[2]+1(D)*(a+2)+1 答题:

A.B.C.D.(已提交)参考答案:B 问题解析: 4.有说明语句

int a[5][5];int *p, **q;

以下正确的赋值语句是()。

(A)p=a;(B)p=*a;(C)q=a;(D)q=*a;答题:

A.B.C.D.(已提交)参考答案:B 问题解析: 5.有说明语句

int a[5][5];int *p, **q;

以下正确的赋值语句是()。

(A)p=a[0];(B)p=&a[0];(C)q=a[0];(D)q=&a[0][0];答题:

A.B.C.D.(已提交)参考答案:A 问题解析:

1.若用数组名作为调用函数的实参,则传递给形参的是()。

(A)数组存储首地址

(B)数组的第一个元素值

(C)数组中全部元素的值

(D)数组元素的个数

答题:

A.B.C.D.(已提交)参考答案:A 问题解析:

2.有说明语句

int a[10];

及函数

int fun(int x[10], int n){return sizeof(x);}

则语句

cout<

(A)40(B)10(C)4(D)0 答题:

A.B.C.D.(已提交)参考答案:C 问题解析: 3.有说明语句

int a[10];

void fun(int * ,int n);

调用函数的正确语句是()。

(A)fun(a, 10);(B)fun(a[0], 10);(C)fun(*a, 10);答题:

A.B.C.D.(已提交)

D)fun(&a, 10);(参考答案:A 问题解析: 4.有说明语句

int b[4][5];

void fun(int * ,int n);

调用函数的正确语句是()。

(A)fun(b, 20);(B)fun(b[0], 20);(C)fun(b[0][0], 20);(D)fun(&b, 20);答题:

A.B.C.D.(已提交)参考答案:B 问题解析: 5.有说明语句

int x[4][5];

void fun(int y[4][5] , int m, int n);

调用函数的正确语句是()。

(A)fun(x, 4,5);(B)fun(*x, 4,5);(C)fun(x[0], 4,5);(D)fun(&x, 4,5);答题:

A.B.C.D.(已提交)参考答案:AB 问题解析:

1.以下建立动态存储的语句正确的是()。

(A)int p=new int;(B)int p=new(10);

(C)int *p(10);(D)int *p=new int(10);答题:

A.B.C.D.(已提交)参考答案:D 问题解析:

2.以下建立动态存储的语句正确的是()。

(A)int p=new int[];(B)int p=new [10];

(C)int *p=new int[10];(D)int *p[10]=new int;答题:

A.B.C.D.(已提交)参考答案:C 问题解析: 3.有说明语句

int *p=new int[10];

释放动态数组的正确语句是()。

(A)delete []p;(B)delete p[]

(C)delete int[]p(D)delete p int[10] 答题:

A.B.C.D.(已提交)参考答案:A 问题解析: 4.有说明语句

int *p=new int[10];

访问动态数组元素的正确语句是()。

(A)int a=p;(B)int a=*p;

(C)delete int[]p(D)delete p int[10] 答题:

A.B.C.D.(已提交)参考答案:C 问题解析:

1.已知char *a[]={ “fortran”, “ basic”, “pascal”, “java”, “c++” };,则 cout<

(A)t(B)一个地址值

(C)java(D)javac++ 答题:

A.B.C.D.(已提交)参考答案:C 问题解析:

2.设有char *s=“ABCDE”;cout<<*(s+1)<

(A)A(B)B(C)ABCD(D)BCD 答题:

A.B.C.D.(已提交)参考答案:B 问题解析:

3.设有char *s=“ABCDE”;cout<<(s+1)<

(A)A(B)B(C)ABCD(D)BCD 答题:

A.B.C.D.(已提交)参考答案:D 问题解析:

4.设有char *s=“ABCDE”;cout<

(A)6(B)5(C)4(D)1 答题:

A.B.C.D.(已提交)参考答案:B 问题解析:

5.设char *s1, *s2;分别指向两个字符串,可以判断字符串s1和s2是否相等的表达式为()。

(A)s1=s2(B)s1==s2

(C)strcpy(s1,s2)==0(D)strcmp(s1,s2)==0 答题:

A.B.C.D.(已提交)参考答案:D 问题解析:

1.语句cout<<(1&2)<<“, ”<<(1&&2)<

(A)0, 0(B)0, 1(C)1, 0(D)1, 1 答题:

A.B.C.D.(已提交)参考答案:B 问题解析:

2.语句cout<<(1|2)<<“, ”<<(1||2)<

(A)0, 0(B)1, 1(C)2, 0(D)3, 1 答题:

A.B.C.D.(已提交)参考答案:D 问题解析:

3.语句 cout<<(3<<3)<

(A)24(B)12(C)9(D)6 答题:

A.B.C.D.(已提交)参考答案:A 问题解析:

4.语句 cout<<(24>>3)<

(A)12(B)9(C)6(D)3 答题:

A.B.C.D.(已提交)参考答案:D 问题解析:

5.语句 cout<<(2^5)<

(A)1(B)3(C)7(D)10 答题:

A.B.C.D.(已提交)参考答案:C 问题解析:

1.实现集合运算A∪B运算的对应表达式是()。

(A)A|B(B)A&B(C)A&(~(A&B))(D)A|B==B 答题:

A.B.C.D.(已提交)参考答案:A 问题解析:

2.实现集合运算A&B运算的对应表达式是()。

(A)A|B(B)A&B(C)A&(~(A&B))(D)A|B==B 答题:

A.B.C.D.(已提交)参考答案:B 问题解析:

3.实现集合运算A-B运算的对应表达式是()。

(A)A|B(B)A&B(C)A&(~(A&B))(D)A|B==B 答题:

A.B.C.D.(已提交)参考答案:C 问题解析:

4.实现集合运算AB运算的对应表达式是()。(A)A|B(B)A&B(C)A&(~(A&B))(D)A|B==B 答题:

A.B.C.D.(已提交)参考答案:D 问题解析:

5.实现集合运算求补集~A运算的对应表达式是()。

(A)~A(B)A==0(C)A&(~(A&B))(D)1<<(x-1)&A==1<<(x-1)答题:

A.B.C.D.(已提交)参考答案:A 问题解析:

6.判断元素x∈A对应的表达式是()。

(A)~A(B)A==0(C)A&(~(A&B))(D)1<<(x-1)&A==1<<(x-1)答题:

A.B.C.D.(已提交)参考答案:D 问题解析:

1.有以下说明语句:

struct point

{ int x;int y;}p;

则正确的赋值语句是()。

(A)point.x = 1;point.y = 2;(B)point={ 1, 2 };

(C)p.x = 1;p.y = 2;(D)p = { 1, 2 };答题:

A.B.C.D.(已提交)参考答案:C 问题解析:

2.已知有职工情况结构变量emp定义为:

struct Date

{ int year;

int month;

int day;

};

strnct Employee

{ char name[20];

long code;

Date birth

};

Employee emp;

下列对emp的birth正确赋值方法是()。

(A)year=1980;month=5;day=1;

(B)birth.year=1980;birth.month=5;birth.day=1;

(C)emp.year=1980;emp.month=5;emp.day=1;

(D)emp.birth.year=1980;emp.birth.month=5;emp.birth.day=1;答题:

A.B.C.D.(已提交)参考答案:D 问题解析:

3.有以下说明语句:

struct Point

{ int x;

int y;

};

则叙述正确的是()。

(A)正确的结构类型说明

(B)正确的结构变量说明

(C)错误的原因是结构中成员类型相同(D)无意义的说明

答题:

A.B.C.D.(已提交)参考答案:A 问题解析:

4.有以下说明语句:

struct Worker

{ int no;

char name[20];

};

Worker w, *p = &w;

则下列错误的引用是()。

(A)w.no(B)p->no(C)(*p).no(D)*p.no 答题:

A.B.C.D.(已提交)参考答案:D 问题解析:

5.s1和s2是两个结构类型变量,若要使赋值s1=s2合法,则它们的说明应该是((A)s1只能接收相同类型的数据成员

(B)结构中的成员相同

(C)同一结构类型的变量

(D)存储字节长度一样的变量

答题:

A.B.C.D.(已提交)参考答案:C 问题解析:

1.有以下说明语句:

struct Student

{ int num。)

double score;

};

Student stu[3]={{1001,80}, {1002,75}, {1003,91}}, *p=stu;

则下面引用形式错误的是()。

(A)p->num(B)(p++).num(C)(p++)->num(D)(*p).num 答题:

A.B.C.D.(已提交)参考答案:B 问题解析:

有说明语句

Struct Node{ int data;Node * next;};

Node *head, *p,*q, *s;

并且,head是单向链表的头指针,p指向链表中的节点,q指向*p的前驱节点。

1.在*p之后插入节点*s的操作是:

(A)p->next=s;s->next=p->next;(B)s->next=p-next;p->next=s;

(C)p =s->next;s =p->next;(D)s =p->next;p =s->next;答题:

A.B.C.D.(已提交)参考答案:B 问题解析:

2.在*p之前插入节点*s的操作是:

(A)q =s->next;s =p->next;(B)q->next=s;s->next=p;

(C)s=p->next;q=s->next;(D)s->next=p;q->next=s;答题:

A.B.C.D.(已提交)参考答案:D 问题解析:

3.在*hear之前插入节点*s的操作是:

(A)s->next=head;head=s;(B)s->next=head->next;head->next=s;

(C)head=s;s->next=head;(D)head->next=s;s->next=head->next;答题:

A.B.C.D.(已提交)参考答案:A 问题解析:

4.删除*p节点的操作是:

(A)q =p;delete p;(B)p = q;delete q;

(C)q->next=p->next;delete p;(D)p->next = q->next;delete q;答题:

A.B.C.D.(已提交)参考答案:C 问题解析:

5.删除*(head->next)的操作是()。

(A)p=head->next;head->next=head->next->next;delete p;

(B)head->next=head->next->next;p=head->next;delete p;

(C)p=head;head=head->next;delete p;

(D)head=head->next;p=head;delete p;答题:

A.B.C.D.(已提交)参考答案:A 问题解析:

1.下列类的定义中正确的是().(A)class a{int x=0;int y=1;}(B)class b{int x=0;int y=1;};

(C)class c{intx;int y;}(D)class d{intx;int y;};答题:

A.B.C.D.(已提交)参考答案:D 问题解析:

2.若有以下说明,则在类外使用对象objX成员的正确语句是()。

class X

{ int a;

void fun1();

public:

void fun2();

};

X objX;

(A)objX.a=0;(B)objX.fun1();(C)objX.fun2();(D)X::fun1();答题:

A.B.C.D.(已提交)参考答案:D 问题解析:

3.在类定义的外部,可以被访问的成员有()。

(A)所有类成员

(B)private或protected的类成员

(C)public的类成员

(D)public或private的类成员

答题:

A.B.C.D.(已提交)参考答案:C 问题解析:

4.下列关于类和对象的说法中,正确的是()。

(A)编译器为每个类和类的对象分配内存

(B)类的对象具有成员函数的副本

(C)类的成员函数由类来调用

(D)编译器为每个对象的数据成员分配内存

答题:

A.B.C.D.(已提交)参考答案:D 问题解析:

5.关于this指针的说法正确的是()。

(A)this指针必须显式说明

(B)定义一个类后,this指针就指向该类

(C)成员函数拥有this指针

(D)静态成员函数拥有this指针

答题:

A.B.C.D.(已提交)参考答案:C 问题解析:

1.下面对构造函数的不正确描述是()。

(A)用户定义的构造函数不是必须的(B)构造函数可以重载

(C)构造函数可以有参数,也可以有返回值

(D)构造函数可以设置默认参数

答题:

A.B.C.D.(已提交)参考答案:C 问题解析:

2.下面对析构函数的正确描述是()。

(A)系统在任何情况下都能正确析构对象

(B)用户必须定义类的析构函数

(C)析构函数没有参数,也没有返回值

(D)析构函数可以设置默认参数

答题:

A.B.C.D.(已提交)参考答案:C 问题解析:

3.构造函数是在()时被执行的。

(A)建立源程序文件(B)创建对象(C)创建类(D)程序编译时

答题:

A.B.C.D.(已提交)参考答案:B 问题解析:

4.下列函数原型中,可以作为类Base析构函数的是()。

(A)void~Base(B)~Base()(C)~Base()const(D)Base()答题:

A.B.C.D.(已提交)参考答案:B 问题解析:

5.AB是一个类,那么执行语句“AB a(4), b[3], *p ;”调用了()次构造函数。

(A)2(B)3(C)4(D)5 答题:

A.B.C.D.(已提交)参考答案:C 问题解析:

6.下面关于复制构造函数调用的时机,不正确的是()调用。

(A)访问对象时

(B)对象初始化时

(C)函数具有类类型传值参数时

(D)函数返回类类型值时

答题:

A.B.C.D.(已提交)参考答案:A 问题解析:

7.说明一个类的对象时,系统自动调用()。

(A)成员函数

(B)构造函数

(C)析构函数

(D)友元函数

答题:

A.B.C.D.(已提交)参考答案:B 问题解析:

8.程序中撤销一个类对象时,系统自动调用()。

(A)成员函数

(B)构造函数

(C)析构函数

(D)友元函数

答题:

A.B.C.D.(已提交)参考答案:C 问题解析:

1.在下列选项中,()不是类的成员函数。

(A)构造函数

(B)析构函数

(C)友元函数

(D)复制构造函数

答题:

A.B.C.D.(已提交)参考答案:C 问题解析:

2.下面对友元的错误描述是()。

(A)关键字friend用于声明友元

(B)一个类中的成员函数可以是另一个类的友元

(C)友元函数访问对象的成员不受访问特性影响

(D)友元函数通过this指针访问对象成员

答题:

A.B.C.D.(已提交)参考答案:D 问题解析:

3.已知类A是类B的友元,类B是类C的友元,则下面选项描述正确的是()。

(A)类A一定是类C 的友元

(B)类C一定是类A 的友元

(C)类C 的成员函数可以访问类B 的对象的任何成员

(D)类A 的成员函数可以访问类B 的对象的任何成员

答题:

A.B.C.D.(已提交)参考答案:D 问题解析:

4.下述关于类的静态成员的特性中,描述错误的是()。

(A)说明静态数据成员时前边要加修饰符static

(B)静态数据成员要在类体外定义

(C)引用静态数据成员时,要在静态数据成员前加<类名>和作用域运算符

(D)每个对象有自己的静态数据成员副本

答题:

A.B.C.D.(已提交)参考答案:D 问题解析:

5.若有以下说明,则对n的正确访问语句是()。

class Y

{ //…;

public:

staticint n;

};

int Y::n;

Y objY;

(A)n=1;(B)Y::n=1;(C)objY::n=1;(D)Y->n 答题:

A.B.C.D.(已提交)参考答案:B 问题解析:

第四篇:西南交大c++实验报告11

实验 11实验报告

教学班级:_26_学生学号:_2015_学生姓名:__ 实验日期:___2016.6.3____实验地点:__7307__(机房)指导教师签名:_____________ 实验成绩:______________

一、实验目的

1.了解存放常用系统函数的头文件; 2.掌握常用系统函数的功能及使用方法;

3.掌握自定义有返回值函数的概念、定义及使用。

二、实验任务

1、实现功能:1~10加减乘除运算训练系统。

(1)主函数功能:随机产生一个1~10加减乘除算术式(数字在1~10之间随机产生,运 算符在加减乘除中随机产生),要求用户输入计算结果,通过调用子函数得到正确答 案,判断用户的计算结果是否正确并输出结论。

(2)子函数功能:定义有返回值函数,完成算术式的计算功能。

2、实现功能:求两个整数的最大公约数、最小公倍数。

(1)主函数功能:从键盘输入两个整数,通过调用两个子函数分别得到最大公约数、最小公倍数并输出结果。

(2)子函数1功能:定义有返回值函数,求两个整数的最大公约数。子函数2功能:定义有返回值函数,求两个整数的最小公倍数。

3.实现功能:根据键盘输入的整数x,计算分段函数sign(x)的值。

(1)主函数功能:从键盘输入整数x,通过调用子函数得到计算结果并输出。(2)子函数功能:定义有返回值函数,实现该分段函数的功能。

三、实验结果(源程序 + 注释)

/*

1、实现功能:1~10加减乘除运算训练系统。

(1)主函数功能:随机产生一个1~10加减乘除算术式(数字在1~10之间随机产生,运 算符在加减乘除中随机产生),要求用户输入计算结果,通过调用子函数得到正确答 案,判断用户的计算结果是否正确并输出结论。

(2)子函数功能:定义有返回值函数,完成算术式的计算功能。*/ #include #include #include using namespace std;void main(){ cout << “Name:” << endl;cout << “Number:20” << endl;int x;double a, b, y, answer = 0.0;//定义四个整型变量

char n;//定义一个字符型变量

srand(time(NULL));//初始化随机数产生器

a = 1 + rand()%(101 + 1);//产生1~10的随机数

x = 1 + rand()%(4z;break;case 3:answer = y * z;break;case 4:answer = y / z;break;} return answer;}

/*实现功能:求两个整数的最大公约数、最小公倍数。(1)主函数功能:从键盘输入两个整数,通过调用两个子函数分别得到最大公约数、最小公倍数并输出结果。

(2)子函数1功能:定义有返回值函数,求两个整数的最大公约数。子函数2功能:定义有返回值函数,求两个整数的最小公倍数。*/ #include using namespace std;void main(){ cout << “Name:” << endl;cout << “Number:2” << endl;int m, n, x, y;//定义4个整型变量

cout << “请输入两个整数” << endl;cin >> m >> n;int gys(int a, int b);//调用自定义函数一前的说明

int gbs(int a, int b, int c);//调用自定义函数二之前的说明

x = gys(m, n);y = gbs(m, n, x);cout << “这两个数的最大公约数是:” << x << “;最小公倍数是:” << y << endl;//输出结果 } int gys(int a,int b)//子函数一:用来求两个整数的最大公约数 { int c, p;if(a > b)//确保b形参变量的值比a形参变量的值大

{ c = a;a = b;b = c;} p = b % a;while(p!= 0){ b = a;a = p;p = b%a;}//求出最大公约数

return a;} int gbs(int a, int b, int c)//子函数二:用来求两个整数的最小公倍数 { int q;q = a * b / c;//求出最小公倍数

return q;}

/*实现功能:根据键盘输入的整数x,计算分段函数sign(x)的值。

(1)主函数功能:从键盘输入整数x,通过调用子函数得到计算结果并输出。(2)子函数功能:定义有返回值函数,实现该分段函数的功能。*/ #include using namespace std;void main(){ cout << “Name:” << endl;cout << “Number:” << endl;cout << “请输入自变量x的值:”;int x,y;//定义两个整型变量

cin >> x;//从键盘输入自变量x的值

int sign(int a);//调用自定义函数前的说明

y = sign(x);//为y赋值

cout << “对应自变量x=” << x << “时的函数的值为:” << y << endl;//输出结果 } int sign(int a)//子函数:用于求对应x值的y值 { int b = 0;if(a < 0)b =-1;else if(a == 0)b = 0;else if(a > 0)b = 1;return b;}

第五篇:西安交大学习心得

十天之变

盛夏七月,在十三朝古都西安驻足了几天。这几天,注定成为人生旅途的难忘风景和烙在心里的真切怀念。盛夏七月,在西迁精神孕育下的百年交大学习了十天。这十天,注定成为学习生涯的重要节点和成长路上的宝贵财富。

七月初,我有幸参加“市党外代表人士创新创业与履职能力提升专题研修班”,在西安交通大学学习了十天,这十天给了时间一个新的诠释,十天可以拓展知识结构、可以解决思想困惑、可以掌握实用方法、可以调整工作状态……十天时间不长,但的的确确给我带了一些变化……

从昼到夜,日有所得。十天的培训课程安排得紧凑而丰富,谈民宪《中国当前政治经济形势与政策分析》、李德昌《多元信息条件下的思维创新与管理决策》等13门课程具有较强的针对性和时效性,并且大都是我知识结构上的薄弱环节,通过学习使我有机会接触到政治、经济、金融、管理等方面最新的理论成果,开拓了我的视野,启发了我的思维,学习收获颇丰。傍晚,在专家们的推介指引下,课余实地参观西安曲江文化新区、大唐西市等地,对西安创建国家中心城市、推进“一带一路”实施的举措和成就等有了更为直观的感受,开拓了眼界。

从“红”到“绿”,见有所思。培训期间,到延安进行了两天的现场教学。巍巍宝塔山,见证着中国革命一段波澜壮阔、艰苦卓绝的红色岁月;清清延河水,诉说着一代优秀共产党人历经的血与火的洗礼和取得的辉煌伟业。在这里,让我对延安精神的本质有了更深的了解,也令我更深刻地感受到中国共产党的伟大。过去,延安是红色的;现在,圣地换了新颜,延安是绿色的。“山连山来峁连峁,三山五岭不见苗”,延安人民曾用歌谣无奈地描绘出家乡生态脆弱的景象。如今,映入人们眼帘的,远远近近却是满山绿色,从西安到延安,一路都是漫山遍野流动的绿。在这普遍缺水的西北之地,这数千万亩的荒山高原,是如何披上绿装的呢?答案不仅是退耕还林,也是新时期的延安精神,更是中国共产党的坚强领导。

从湘到陕,行有所获。湖南与陕西相距千余公里,我们半日时间,实现了穿越。长征,从湖南到陕西不知道走了多少个半日?这半天,记录的不单单是距离,更是日新月异的发展。当前,湖南正以“一带一部”为引领,积极融入“一带一路”、长江经济带和沿海开放经济带发展,着力构建结构合理、方式优化、区域协调、城乡一体的发展新格局。陕西,作为古丝绸之路的起点,承载着历史的荣耀,担负着经济复兴的重担。在“一带一路”新机遇下,近年来陕西经济社会保持了又好又快发展的良好势头。这次难得的机会,能够从南到北、从东向西,实地感受湖南和陕西在推进“一带一路”等国家战略中的细部和声,争先创优的荣誉感和争分夺秒的紧迫感油然而生,暗暗告诫自己,唯有立足岗位,多做贡献。

从疏到亲,心有所敬。1939年,毛主席在一次延安在职干部教育动员大会上讲话时指出:“我们队伍里边有一种恐慌,不是经济恐慌,也不是政治恐慌,而是本领恐慌”。同样是在这块热土,在陕西这几天的学习,对毛主席提出的“本领恐慌”体会得更为真切。这次与众多党外知识分子一道学习,与他们朝夕相处,从陌生到熟悉,从他们的一举一动、一言一行,更多得感受到他们治学严谨、博学广闻和谦虚谨慎,也对自身存在的差距和不足有了更为清醒的认识,对他们的人品或才气也心生敬重。

日有所得,得在知识拓展;见有所思,思在心灵洗礼;行有所获,获在热血激发;心有所敬,敬在力量凝聚。回到星城长沙,回望十天,感触颇深,再回想过去的生活,还别有一番滋味……

十天之变,变的是人生,不变的是初心,不忘初心,继续前行……

下载西安交大C++随堂练习16word格式文档
下载西安交大C++随堂练习16.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    西安交大论文格式

    毕业论文格式 为保证毕业论文质量,根据本科生毕业论文撰写规范,具体规范如下: 一、毕业论文撰写结构要求1、题目:应简洁、明确、有概括性,字数不宜超过20个字。 2、摘要:要有高度......

    西安交大面试

    西安交大面试题目 一、自我介绍 1分钟自我介绍,汉语、英语都可以。 二、人文素养和看图说话 1.用三个关键词概括你已经走过的人生。 2.图片:一个大人开车带着四个孩子。 要求:......

    西安交大简介

    机械制造及其自动化 西安交通大学机械制造及其自动化专业(其前身是机械制造工艺及设备专业)创建于1953年,本学科点1988年和2000年被评为国家重点学科,并为全国第一批“机械制......

    企业文化随堂练习

    第五章企业文化一、单选题1、企业文化是企业建立和完善内部控制的()A前提条件B重要基础C重要内容D关键因素2、在企业局部环境中,最能集中体现企业文化环境的是()A.办公环境B.生产......

    赤壁之战随堂练习

    赤壁之战随堂练习 一.指出下列各句中的通假字. 1.将军禽操2.五万兵难卒合 3.顷之,烟炎张天4.雷鼓大震 二.指出古今异义词并解释。 1.荆州与国临接2.备南走 3.致殷勤之意4.若能......

    2随堂练习

    政治生活·随堂练习一 1.国家是经济上占统治地位的阶级进行阶级统治的工具。这表明,国家的根本属性是 A.阶级性 B.广泛性C.真实性 D.社会性 2.2011年6月20日,全国城镇居民社......

    西安交大培训心得体会

    西安交大交流学习感想 2014年春季学期,我有幸作为c9交流生被学校派往西安交通大学进行交流学习,现在一转眼春季学期已经结束,我顺利完成了交流的任务并回到了工大继续夏季学期......

    西安交大 社会实践心得体会

    社会实践心得体会: 经历了将近两周的社会实践,我感慨颇多,我们见到了社会的真实一面,实践生活中每一天遇到的情况还在我脑海里回旋,它给我们带来了意想不到的效果,社会实践活动......