1、c+基础练习题及解答细节全解“C+程序设计”实验一 简单的C+程序1、编写简单的屏幕输出程序:过程首先在资源管理器中,在用户盘(硬盘)创建自己的文件夹,例如可以以自己的学号为名建立文件夹。进入Visual C+开发环境,新建C+源文件,存放在上一步建立的文件夹中。打开源文件编辑窗口,输入以下源代码:#includevoid main( ) cout “”; / 省略号处是想要输出到屏幕上的内容,可以随意编辑。保存文件后单击“编译compile”按钮(快捷键Ctrl+F7),在出现的对话框中单击“是”。若没有错误,继续单击“连接build”按钮(快捷键F7)。若没有错误则继续单击“执行execu
2、te”按钮(快捷键Ctrl+F5),查看程序运行结果。#includevoid main() cout “Hello :-) n”; / 省略号处是想要输出到屏幕上的内容。2、将两个数交换后输出。分析 交换两个数,一般方法是用一个中间变量,经过几次赋值实现。#includevoid main( ) double a, b, temp; coutab; / 此语句是将用户输入的两个数依次保存到a、b两个变量中 couta=a b=bendl; / 此语句是输出a、b两个变量的值 temp = a; / 此语句是将变量a的值赋给变量temp,“=”称为赋值号 ; / 完成省略号处的语句,将变量b的
3、值赋给变量a ; / 完成省略号处的语句,将变量temp的值赋给变量b ; / 完成省略号处的语句,再次输出变量的值,观察其值是否交换了#includevoid main() double a, b, temp; coutab; / 此语句是将用户输入的两个数依次保存到a、b两个变量中 couta=a b=bendl; / 此语句是输出a、b两个变量的值 temp = a; / 此语句是将变量a的值赋给变量temp,“=”称为赋值号 a=b; / 完成省略号处的语句,将变量b的值赋给变量a b=temp ; / 完成省略号处的语句,将变量temp的值赋给变量b couta=a b=b“n” ;
4、 / 完成省略号处的语句,再次输出变量的值,观察其值是否交换了3使用cout对象,在输出窗口上显示如下的图形:提示:在C+的字符常量中,一个反斜线字符是。#include void main() coutt/*endl; cout /*endl; cout /*tt Xt Xendl; cout |*tt Xt Xendl; cout |*t XXXXXXX XXXXXXXendl; cout |*tt Xt Xendl; cout *tt Xt Xendl; cout *endl; coutt*/endl; 4根据注释补充下面的程序中省略号处的语句,运行程序,并理解其语句及输出的含义:#in
5、cludevoid main() ; / 定义一个整型变量a ; / 定义一个字符型变量b b = a; / 给变量b赋值为字符a ; / 将变量b的值赋给变量a cout “a=”aendl; /输出变量a的值 ; /输出变量b的值#includevoid main() int a; / 定义一个整型变量a char b; / 定义一个字符型变量b b = a; / 给变量b赋值 a=b; / 将变量b的值赋给变量a cout a=aendl; /输出变量a的值 cout b=bx_int),输出并观察(x_int/y_double)、(y_double-m_char)以及n_bool的值,
6、理解这些输出的含义。例如:输入1 1 1#includevoid main() int x_int; double y_double; char m_char; bool n_bool; coutx_inty_doublem_char; n_bool=m_charx_int; coutx_int/y_double=x_int/y_doubleendl; couty_double-m_char=y_double-m_charendl; coutn_bool=n_boolendl;2输出一个字符(这个字符可以是在程序开始赋值,或由用户输入)的前驱字符(ASCII编码表上该字符前面的字符)、后继字符
7、(ASCII编码表上该字符后面的字符)及其ASCII码值。#includevoid main() char qianqu, zifu, houji; coutzifu; qianqu=zifu-1; houji=zifu+1; coutqianqu zifu houjiendl; coutint(qianqu) int(zifu) int(houji)endl;3编写程序:根据用户输入的球的半径值,分别计算球的表面积、体积和质量,并输出计算结果。提示 假设用户输入的球的半径的单位是米,球的密度为7.8kg/m3,球的表面积的计算公式为 ,球的体积的计算公式为 。其中的值使用3.14即可。#in
8、cludevoid main() const double pi=3.14, midu=7.8; double banjing, bmianji, tiji, zhiliang; coutbanjing; bmianji=4*pi*banjing*banjing; tiji=bmianji*banjing/3; zhiliang=tiji*midu; cout该球的表面积为bmianji 平方米,体积为tiji 立方米,质量为zhiliang千克。n;4让用户输入一个秒数,编程实现将它转换成小时、分钟、秒来表示。例如输入7278秒,则输出:2小时1分18秒。#includevoid main(
9、) int zongm, shi, fen, miao; coutzongm; if(zongm0) shi=zongm/3600; fen=zongm%3600/60; miao=zongm%60; coutshi小时, fen分, miao秒n; 实验三 分支选择语句的应用提示:每题建立一个C+源文件。当完成一个题目后,使用菜单“文件”“关闭工作空间”,再新建C+源文件做下一个题目。1用户输入两个整数x和y,问:y是否是x的倍数?编程输出回答“是”或“不是”。#include void main() int x, y; coutxy; if(y%x=0) couty是x的倍数。n; els
10、e couty不是x的倍数。n;2编写程序求解如下分段函数。#includevoid main() double x, y; coutx; if(x12) y=x*x-162; else if(x=70) y=x+30; else y=100; couty=yendl;3单位编排活动小组,30岁及以下的分在第一组,40岁的分在第二组,50岁以上的分在第三组,其余年龄的分在第四组。假设王五输入了自己的年龄,保存在变量age中,那么他应该分在第几组?编程求解并输出答案。#include void main() int age; coutage; if(age=20&age70) if(age=30
11、) cout应分至第一组。n; else if(age=40) cout50) cout应分至第三组。n; else cout应分至第四组。n; else cout输入年龄不合理!n;4根据用户输入的整数(17代表星期一星期日),编程输出星期这一天对应的英文或中文名称。例如,用户输入3,则输出应显示为“Wednsday”或“星期三”。#include void main() int a; couta; switch(a) case 1: coutMondayn; break; case 2: coutTuesdayn; break; case 3: coutWednesdayn; break;
12、 case 4: coutThursdayn; break; case 5: coutFridayn; break; case 6: coutSaturdayn; break; case 7: coutSundayn; break; default: couterrorn; 5已知标准体重的计算方法如下: 男性:标准体重(kg)=身高(cm)-100 女性:标准体重(kg)=身高(cm)-105试编写程序,由用户输入其性别(m代表男性,f代表女性)和身高,程序计算并输出其标准体重。#includevoid main() char xingbie; int shengao, tizhong; c
13、outxingbie; if(xingbie=m)|(xingbie=f) coutshengao; if(xingbie=m) tizhong=shengao-105; else tizhong=shengao-100; cout标准体重为tizhong千克。n; 6(选做)编程实现如下算术功能:用户输入两个数字(可带小数)及一个算术操作符(+、-、*或/),若输入的算术操作符不对,则输出提示信息(例如“无效的算术操作符,无法计算”),否则,即输出相应的算式及结果。注意:计算除法时,除数不能为0。#include void main() double a,b; char c; coutabc
14、; switch(c) case +: couta+b=a+bendl; break; case -: couta-b=a-bendl; break; case *: couta*b=a*bendl; break; case /: if(b!=0) couta/b=a/bendl; else cout除数不能为0!n; break; default: cout无效的算数操作符,无法计算!n; 实验四 循环语句的应用提示:每题建立一个C+源文件。当完成一个题目后,使用菜单“文件”“关闭工作空间”,再新建C+源文件做下一个题目。1设某县2000年工业总产值为200亿元,如果该县预计平均年工业总产值
15、增长率为4.5%,那么多少年后该县年工业总产值将超500亿元?(参考答案:21年)#includevoid main() double chanzhi=200; int nianshu=0; while(chanzhi=500) nianshu+; chanzhi*=1.045; cout经过nianshu年后该县年工业总产值将超过500亿元。n;2请在屏幕上显示N行如图所示的数值(即第i行为“i: i2 i3”),其中N是个常量,其值在程序运行之初确定。(要求:用for语句实现)#includevoid main() const int N=10; for(int i=1;i=N;i+) c
16、outi:ti*iti*i*iendl;3编写循环程序,判断用户输入的一个数是正数还是负数,当输入的数大于0时,输出“正数”;输入的数小于0时,输出“负数”;输入的数为0时结束程序。最后输出这些数相加的总和。(要求:用do-while语句实现)#includevoid main() double x; do coutx; if(x0) cout正数n; else if(x0) cout负数n; while(x!=0);4编程求解使不等式12+32+52+ +n2 limit成立的最大n值。其中limit可以定义为常量或定义为变量。(实验数据:limit=10时n=1;limit=100时n=7
17、;limit=65535时n=71)#includevoid main() int limit; coutlimit; int n=1, s=0; while(slimit) s+=n*n; n+=2; cout使该不等式成立的最大n值为:(n-4)endl;5(选做)请用户输入20个字符,编程实现将其中的小写字母转换为大写字母后输出。例如,若用户输入“VkQK0MsQ,mb/;lGa;q”,则应输出“VKQK0MSQ,MB/;lGA;Q”。提示:每一个英文字母的大写和小写的ASCII码相差32。即,若字符型变量ch中是一个小写英文字母,则char(ch-32)即其对应的大写英文字母。#inc
18、ludevoid main() char ch; int i; cout请输入20个字符: ; i=0; while(ich; if(ch=a&ch=z) coutchar(ch-32); else coutch; i+; coutendl;6(选做)有20只猴子吃掉50个桃子,已知每只公猴能吃5个桃子、每只母猴能吃4个桃子、每只小猴能吃2个桃子,编程求出这20只猴子中可以有公猴、母猴、小猴各多少只。(答案:0 5 15或2 2 16)#includevoid main()int gong, mu, xiao;for(gong=0; gong=10; gong+)for(mu=0; mu=12
19、; mu+) xiao=20-gong-mu; if(5*gong+4*mu+2*xiao=50) cout公侯gong只,母猴mu只,小猴xiao只n; 实验五 函数的概念及应用1编写一个函数double f(double x),求解如下分段函数。提示:求幂的数学函数是pow(x, y),求平方根的数学函数是sqrt(x)。要使用这些数学函数,需要在文件开始添加预编译指令#include。#include#includedouble f(double);void main() double x; x=-28; coutx=x, y=f(x)endl; x=0; coutx=x, y=f(x)
20、endl; x=1; coutx=x, y=f(x)endl; x=15; coutx=x, y=f(x)endl; x=75; coutx=x, y=f(x)endl;double f(double x) double y; if(x0) y=-62; else if(x2) y=pow(x, 5)-62; else if(x38) y=x-32; else y=sqrt(x-2); return y;2对任意给定的两个正整数m、n,求s=m!+n!。要求先自定义一个C+函数,实现求一个正整数的阶乘,即double jiecheng(int x),再在主函数中调用该自定义函数,根据用户输入的
21、整数m和n,求出s的值。#include double jiecheng(int);void main() int m, n; coutmn; if(m0&n0) coutm!+n!=(jiecheng(m)+jiecheng(n)endl; else cout您输入的不是两个正整数!n;double jiecheng(int n) double s=1; for(int i=1; i=n; i+) s*=i; return s;3编写一个函数 bool sxh( int n ),判断一个3位正整数是否是水仙花数,若是返回true,否则返回false。并在主函数中使用该函数找出所有的水仙花数打
22、印在屏幕上。说明:若一个3位正整数的各位数字的立方和等于这个整数,则称之为“水仙花数”。例如:153是水仙花数,因为153=1*1*1+5*5*5+3*3*3。#includebool sxh(int);void main()cout 水仙花数:n; for(int i=100; i1000; i+) if(sxh(i) couti ; coutendl;bool sxh(int n) int ge=n%10; int shi=n/10%10; int bai=n/100; if(ge*ge*ge+shi*shi*shi+bai*bai*bai=n) return true; else ret
23、urn false;4(选做)编程实现,在屏幕上输出如下所示由X组成的X形图案。#includevoid main() const int LINE=9; for(int i=1; i=LINE; i+) for(int j=1; j=LINE; j+) if(i=j|i=LINE+1-j) coutX; else cout ; coutendl; 5(选做)编写一个函数,实现在屏幕上打印出九九乘法表。基本效果如下图1,同学们可自己作进一步的美化,如下图2。图2提示:两层循环嵌套使用。图1 #include#includevoid first();void second();void main() cout基本九九表:nn; first(); coutendl; cout改进后的九九表:nn; second(); coutendl;/ 基本(图1)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1