第一篇:西安交大C++随堂练习16
西安交通大学实验报告
一.实验目的
对后一阶段的的学习内容进行检测,查漏补缺,巩固知识点。
二.实验内容
1、编写算术表达式分析计算程序,输入字符串:“ 168+314=482,分析后,按表达式计算结果,并按如下格式输出: 168+314=482。运算符号仅限于 +、-、*、/、%,运算符两边只能是正整数。提示:将运算符两边的数字字符串分离,然后调用标准函数 int atoi(char *p),将数字符串转换为整数,atoi()函数在 stdlib.h 中。
1.程序源代码
#include
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 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 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 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++的魅力! 西安交通大学实验报告 课程_计算机程序设计_实验名称_数组与结构体_ 系 别____ ___________ 实 验 日 期 2014年 3 月 18 日 专业班级___ ___组别_____________ 实 验 报 告 日 期 2014年 3 月 22 日 姓 名__ __ __学号_ ___ 报 告 退 发(订正、重做)同 组 人_________________________________ 教 师 审 批 签 字 一、实验目的: 掌握数组与字符串的输入方法,包括一维数组、二位数组,不含空格的一个字符串以及含空格的多个字符串的输入以及处理。 二、实验内容: 1.第一题:编写一个程序将给出的矩阵转置。(1)源程序代码: #include } 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 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 const int m=20;cout<<“请输入个整数:n”;int num[m];for(int n=0;n 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 char in[200];cout<<“请输入您要加密的语句(不超过个单词):”;cin.get(in,200); / 12 } int i;for(i=0;in[i]!=0;i++){ } cout<<“加密结果是:”< } 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 / 12 } char in[200];cout<<“请输入您要解密的语句:”;cin.get(in,200);int i;for(i=0;in[i]!=0;i++){ } cout<<“解密结果是:”< } 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 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 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 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++随堂练习 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 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 问题解析: 实验 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 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 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 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++程序设计第四章作业
第三篇:2016华工C++随堂练习答案
第四篇:西南交大c++实验报告11
第五篇:西安交大学习心得