《VC实验教程答案》word版.doc

上传人:wux****ua 文档编号:9046774 上传时间:2020-04-02 格式:DOC 页数:66 大小:122KB
返回 下载 相关 举报
《VC实验教程答案》word版.doc_第1页
第1页 / 共66页
《VC实验教程答案》word版.doc_第2页
第2页 / 共66页
《VC实验教程答案》word版.doc_第3页
第3页 / 共66页
点击查看更多>>
资源描述
实验一熟悉Microsft Visual C+ 6.0开发环境四思考题#include void main() int a,b,c; coutab; /输入两个数据到变量a、b中 c=a*b; /求乘积存入c couta*b=cendl; /输出结果 实验二输入/输出与顺序结构三 实验内容1. 阅读程序,写出运行结果。 i+j=15i*j=50 a=9 b=5 2. 程序填空 k=i+j i+j= a=c charctASCII=a 3. 程序改错#include void main() double r,s,l; coutr; s=3.1416*r*r; l=2.0*3.1416*r; coutS=sendl; coutL=lendl; 4. 编程题 输入华氏温度F,计算输出对应的摄氏温度。由华氏温度F求摄氏温度c的公式为:#include void main() double f,c; coutf; c=(f-32)*5/9; /或c=5.0/9*(f-32); coutC=cendl; 输入学生的语文、数学、英语、物理4门课程的成绩,计算该学生的总成绩和平均成绩并输出。#include void main() double eng, chin,math,phy,sum,aver; coutengchinmathphy; /输入成绩 sum=eng+chin+math+phy; /计算总成绩 aver=sum/4; /计算平均分 coutSum=sumendltAverage=averendl; /输出 编写程序,从键盘输入一个大写英文字母,输出对应的小写字母。#include void main()char c1,c2;coutc1;c2=c1+32;coutc1=c1tc2=c2endl; 实验三选择结构程序设计三 实验内容1.选择题 C B D C C C D 2. -4 4 5 99 2,1 1 3. 编程题 由键盘输入三个字符,输出其中的最大者。【源程序】#include void main() char x,max; coutx; max=x; cinx; if (xmax) max=x; cinx; if (xmax) max=x; coutmax = maxendl; 输入三角形三边的长,求三角形的面积。若输入的三个边能构成三角形,则计算其面积并输出;否则输出提示信息。【源程序】/参见教材P44例3.15#include#include void main() double a,b,c,s,area; coutabc; if (a+b=c|a+c=b|b+c=a)coutcant be a triangle!n;else s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c);coutarea=area0) -1 (x0) 【源程序】#include void main() int x,y; coutx; if (x0) y=1; else if (x=0) y=0; else y=-1; couty=yendl; 计算奖金。设企业利润为L,当企业利润L不超过5000元时,奖金为利润的1.5%,当5000L10000元时,超过5000元部分奖金为2%(5000元以下仍按1.5%);当10000L20000元,除10000以下的按上述方法计算外,超过10000元部分按2.5%计算奖金;如果20000L50000元,超过20000元部分按3%计算奖金;当50000L100000元时,超过50000元部分按3.5%计算奖金;当L超过100000元时,超过100000元部分按4%计算奖金。由键盘输入L的值,编程计算相应的奖金并输出。【源程序】#includevoid main() double L,S; coutL; if(L5000) S=L*0.015; else if(L10000) S=75+(L-5000)*0.02; else if(L20000) S=175+(L-10000)*0.025; else if(L50000) S=175+250+(L-20000)*0.03; else if(L100000) S=175+250+900+(L-50000)*0.035; else S=175+250+900+1750+(L-100000)*0.04; coutS=Sendl; 输入年龄,输出所处人群:9岁以下为儿童,输出A;1019为少年,输出B;2029为青年,输出C;3049为中年,输出D;50以上为老年,输出E。【源程序】#include void main() int age; coutage; switch(age/10) case 0:coutA-儿童n;break; case 1:coutB-少年n;break; case 2:coutC-青年n;break; case 3: case 4:coutD-中年n;break; default:coutE-老年n;break; 有如下函数:0t11t22t33t4 由键盘输入t值,计算S的值。【源程序】/方法一#include void main()double t,s;coutt; if(t0&t4)if(t1)s=t*t;else if(t2) s=t*t-1;else if(t3)s=t*t-2*t+1;else s=t*t+4*t-17;couts=sendl;elsecoutError! t cant be less than 0 or more than 4!n; /方法二#include void main()double t;coutt; if(t=0)couterror, t cant be less than 0!n;else if(t1)couts=t*tendl;else if(t2) couts=t*t-1endl;else if(t3)couts=t*t-2*t+1endl;else if(t4)couts=t*t+4*t-17endl;elsecouterror, t cant be more than 4!n; /方法三#include void main()double t,s;coutt; if(t=0)couterror, t cant be less than 0!n;else if(t1)s=t*t;couts=sendl;else if(t2) s=t*t-1;couts=sendl;else if(t3)s=t*t-2*t+1;couts=sendl;else if(t4)s=t*t+4*t-17;couts=sendl;elsecouterror, t cant be more than 4!n; 实验四 循环结构程序设计 三 实验内容1选择题 下面程序的运行结果是_ D _。#include 2阅读程序,写出运行结果。下面程序的运行结果是_0918273645_。 下面程序的运行结果是_a=4_。 下面程序的运行结果是_n=4_。3程序填空 下面程序的功能是依次显示100,80,60,40,20这5个数,请填空。#include void main() int i; for(i=100;_i=20_;_i-=20_) coutit; coutendl; 下面程序的功能是计算xn,请填空。#include void main() int n,x; coutxn; double y=1; for(int i=0;i_n_;i+) _ y*=x;_; coutyendl; 下面程序的功能是计算1-3+5-7+-99+101的值,请填空。#include void main() int i,t,s=0,sign=1; for(i=1;i=101;i+=2) _t=i*sign_; s+=t; sign=-sign_; couts=sendl; * * * 下面程序的功能是输出以下形式的金字塔图案:#include void main() for(int i=1;i=4;i+) for(int j=1;j=_4-i_;j+) cout ; for(j=1;j=_2*i-1_;j+) cout*; coutendl; 4编程题 输入n,求1+2+3+n的和。 #includevoid main() int i,n; double sum=0; cinn; for(i=1;i=n;i+) sum+=i; cout1+2+3+.+n=sumendl; 输入若干个整数,求它们的和,遇到-999时结束输入。 #includevoid main() int n; double sum=0; cinn; for(;n!=-999;) /while(n!=-999) sum+=n; cinn; coutsum=sumendl; 输入一整数,输出各位数字之和。如输入6228,则输出6+2+2+8的和为18。#includevoid main() double s=0; int n; cinn; while(n!=0) s+=n%10; n=n/10; couts=sendl; 输入一实数x和一整数n,求x+x2+x3+xn的值。#include void main() int i,j,n; double x,sum=0,p; cinnx; for(i=1;i=n;i+) p=1.; for(j=1;j=i;j+) p*=x; sum+=p; coutx=xtn=nendl; coutsum=sumendl; 求2!+4!+6!+16!。#includevoid main() int i,j; double sum=0,p; for(i=2;i=16;i+=2) p=1; for(j=1;j=i;j+) p*=j; sum+=p; cout2!+4!+6!+.+16!=sumendl; * * * 输入两个整数n和m,打印n行星号,每行m个星号。如果输入的n和m的值为4 7,则输出为:#include void main() int i,j,n,m; cinnm; for(i=0;in;i+) for(j=0;ji;j+) cout ; for(j=0;jm;j+) cout*; coutendl; 求1n+3n+5n+7n+(2m-1)n,其中m和n的值从键盘输入。#include void main() int i,j,n,m,sum=0,p; cinnm; for(i=1;i=2*m-1;i+=2) p=1.; for(j=1;j=n;j+) p*=i; sum+=p; coutm=mtn=nendl; coutsum=sumendl; 1程序填空 以下程序的功能是计算:s=1+12+123+1234+12345。请填空。 t=10*t+i s=s+t 下面程序的功能是输出符合条件的三位整数:它是完全平方数,又有两位数字相同,并且统计个数,请填空。(i-n1*100)/10或(i/10)%10num+j+2编程(1)输入10个字符,输出其中的最大者。#includevoid main() char ch,maxchar; coutch; maxchar=ch; for(int i=1;ich; if(chmaxchar)maxchar=ch; coutmaxchar=maxcharendl;(2)一个球从100m高度自由落下,每次落地后反弹回原来高度的一半,再落下,再反弹。求它在第10次落地时,共经过多少米?第10次反弹多高?分析:共经过: 100*(1+1/2+1/4+1/8-+1/1024) 米第10次:100/1024米#includevoid main() double s=1,t=1,sum,t10; int i; for(i=1;i=10;i+)t=2*t;s=s+1/t;t10=100/t;sum=100*s;coutsum=sumtt10=t10endl; (3)用下列泰勒级数求sinx的近似值,x的值从键盘输入,精度要求为10-6。 #include#includevoid main() int sign=1,n=1; double x=3.0,fenzi=x,fenmu=1.0,equo=1,sum=x; while(fabs(equo)=1e-6) fenzi*=x*x; fenmu*=(2*n)*(2*n+1); sign*=-1; equo=sign*fenzi/fenmu; sum+=equo; n+; coutsin x=sumendl;(4)编写程序,对输入的一批整数统计出正数的个数、负数的个数、奇数的个数、偶数的个数,要求所统计的整数由键盘输入,以0作为输入数据结束的标志。#includevoid main() int a=0,b=0,c=0,d=0,x; cinx; while(x!=0) if(x0)a+=1; if(xx; cout正数个数=aendl; cout负数个数=bendl; cout奇数个数=cendl; cout偶数个数=dendl;(5)用牛顿迭代法求方程2x3-4x2+3x6=0在1.5附近的根,精度要求为10-6。#include#includevoid main() double x1,x2=1.5,y1,y2; cout x1 x2 yn; do x1=x2; y1=2*x1*x1*x1-4*x1*x1+3*x1-6; y2=6*x1*x1-8*x1+3; x2=x1-y1/y2; couttx1tx2ty11e-6); coutx=x1endl;(6)输出这样的三位整数:这些三位数的个、十、百位上的数字均不相同,并且能被11整除。#includevoid main() int i,j,k,n=0; for(i=1;i10;i+) for(j=0;j10;j+) for(k=0;k10;k+) if(i=j|j=k|k=i) continue; else if(i*100+j*10+k)%11=0) cout+n; cout:i*100+j*10+kt; (7)输入两个正整数m和n,求其最大公约数和最小公倍数。#includevoid main() int a,b,num1,num2,temp; coutnum1num2; if(num1num2) temp=num1; num1=num2; num2=temp; a=num1,b=num2; while(b!=0) temp=a%b; a=b; b=temp; cout最大公约数为:aendl; cout最小公倍数为:num1*num2/aendl;实验六/* * 输入10个学生的成绩,求其平均值,输出最高成绩,并统计低于平均值的人数。 * 注: LT是小于的意思,less than */#include const double LOWER = - 10000;void main()double score10;double highestScore = LOWER;double average = 0;double numLTaverage = 0;/输入、求最高分、求总分for (int i = 0; i 10 ; + i)cout Please input the score ( i + 1 scorei;if ( highestScore scorei ) highestScore = scorei;average += scorei;average /= 10;/求成绩低于平均分的人数for ( i = 0; i 10; + i)if ( scorei average ) + numLTaverage ;cout The average score is average endl;cout The highest score is highestScore endl;cout The number of LT average is numLTaverage endl;/* * 分别用冒泡法和选择法对输入的10个整数按由大到小排序。 * 冒泡法参见课本第四章课后作业第四题 */#include void main()int myArray10;int outer, inner;int imax;for ( int i = 0; i 10 ; + i )cout myArrayi;for ( outer = 0 ; outer 10 ; + outer)/在下标位outer到9之间的元素中寻找最大值imax = outer ;for ( inner = outer + 1; inner 10 ; + inner)if ( myArrayimax myArrayinner ) imax = inner;/将最大值与下标为outer的元素交换int temp = myArrayouter;myArrayouter = myArrayimax;myArrayimax = temp;/输出for ( i = 0; i 10 ; + i )cout myArrayi ;cout endl;/* * 使用折半查找法,在给定的数组中查找某个数据。 */#include const int N = 10;void main()int myArrayN = 1, 5, 8, 13, 16, 34, 67, 78, 90, 100;int iSearch;cout iSearch;int low = 0;int high = N - 1;int mid;/开始二分查找while ( low = high )mid = ( low + high ) / 2;if ( myArraymid = iSearch ) break;else if ( myArraymid iSearch )low = mid + 1;elsehigh = mid - 1;/判断是否找到if ( myArraymid = iSearch )cout We have found the number. endl;elsecout We havnt found the number. endl;/* * 按杨辉三角形的规律打印以下的数据(要求只打印出10行)。 * 1 * 1 1 * 1 2 1 * 1 3 3 1 * 1 4 6 4 1 * 1 5 10 10 5 1 * */#include void main()int yangHui1010;yangHui00 = yangHui10 = yangHui11 = 1;for ( int i = 2; i 10 ; + i )yangHuii0 = yangHuiii = 1;for ( int j = 1 ; j i ; + j )yangHuiij = yangHuii - 1j + yangHuii - 1j - 1;for ( i = 0 ; i 10 ; + i )for (int j = 0; j = i ; + j )cout yangHuiij t;cout endl;/* * 编写程序统计某班英语、语文、数学3门课程的成绩, * 学生人数与成绩由键盘输入,要求统计出每门课程全班 * 的总成绩和平均成绩以及每个学生三门课程的总成绩和 * 平均成绩。 */#include void main()/由用户输入学生人数int numStu;cout numStu;/根据用户输入的人数建立数组,其中0-2列为三门课成绩,最后一列是总分。/最后添加一行用来存储总分。int (*p)4;p = new intnumStu + 14;/将总分置0pnumStu0 = pnumStu1 = pnumStu2 = 0;for ( int i = 0 ; i numStu ; + i )/将每个人的总分置0pi3 = 0;cout ID is i + 1 :n;/输入英语成绩cout pi0;pi3 += pi0;pnumStu0 += pi0;/输入物理成绩cout pi1;pi3 += pi1;pnumStu1 += pi1;/输入英语成绩cout pi2;pi3 += pi2;pnumStu2 += pi2;/输出for ( i = 0 ; i numStu ; + i )cout ID i + 1 :n;cout The sum is pi3 ;cout .tThe average is pi3/3.0 ;cout endl;cout Eng: sum= pnumStu0 ,average= pnumStu0/double(numStu);cout nPhy: sum= pnumStu1 ,average= pnumStu1/double(numStu);cout nMat: sum= pnumStu2 ,average= pnumStu2/double(numStu);delete p;/* * 编写程序求对矩阵进行转置,即将元素的行列位置交换。 */#include void main()int myMatrix44;/输入for ( int i = 0; i 4; + i )for ( int j = 0; j 4; + j)cout ( i + 1 , j + 1 myMatrixij;/输出转置前的数组cout Before exchange:n;for ( i = 0; i 4; + i )for ( int j = 0; j 4; + j)cout myMatrixij t;cout endl;/转置for ( i = 0 ; i 4 ; + i)for ( int j = 0 ; j i ; + j)int temp = myMatrixij;myMatrixij = myMatrixji;myMatrixji = temp;/输出转置后的数组cout After exchange:n;for ( i = 0; i 4; + i )for ( int j = 0; j 4; + j)cout myMatrixij t;cout endl;/* * 编写程序求两个矩阵的乘积,若矩阵ANM与BMK相乘, *则得到矩阵C,其行列数为NK。注意A的列数与B的行数相同 *,才可以进行乘法操作。 */#include const int N = 3;const int M = 4;const int K = 5;void main()/定义数组int aNM,bMK,cNK;/输入数组Acout Matrix A:n;for ( int i = 0; i N; + i)for ( int j = 0; j M; + j)cout ( i + 1 , j + 1 )/;cout ( N , M aij;/输入数组Bcout Matrix B:n;for ( i = 0; i M; + i)for ( int j = 0; j K; + j)cout ( i + 1 , j + 1 )/;cout ( M , K bij;/计算C,并输出cout Matrix C=AXB:n;for ( i = 0; i N; + i)for ( int j = 0; j K; + j)cij = 0;for (int k = 0 ; k M ; + k)cij += aik * bkj;cout cij t;cout endl; 实验七 数组与指针(一) 三 实验内容1 选择题B D D D D C 2分析以下程序,写出程序的运行结果,并上机调试验证。 下面程序的运行结果为_ C+_ 下面程序的运行结果为_C+ Program _ 下面程序的运行结果为 下面程序的运行结果为_i=10_ 下面程序的运行结果为*p=1*(p+3)=12_ 下面程序的运行结果为min=-8max=100_ 下面程序的运行结果为_xbcdBCD_3程序填空 下面程序的功能是输出: p+ p str1i!=0 str2j!=0 str1i=str2j; t=pp=qq=t4编写程序并上机调试运行 编写程序,输入5个字符串,输出其中最大者。要求使用二维字符数组及字符串函数。#include #includeconst int N=3;void main() char aN20; int i,max=0; for(i=0;iN;i+) cin.getline(ai,20); for(i=1;i0) strcpy(amax,ai); coutamaxendl; 编写程序,将一个字符串中的数字字符都删除。#include void main() char a20; int i=0,j=0; cout”Please input the characters: ”; cin.getline(a,20); for(i=0;ai!=0;i+) if(ai9) aj+=ai; aj=0; coutaendl; 编写程序,输入一行字符,统计其中有多少个单词,单词之间用一个或多个空格分隔。#include
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 考试试卷


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!