华中科技大学c++第1次上机作业
- 格式:doc
- 大小:335.04 KB
- 文档页数:8
C语言培训班第一次作业(1)1、以下叙述中正确的是()(A)、用户所定义的标识符不允许使用关键字。
(B)、分号是C语句之间的分隔符,不是语句的一部分。
(C)、花括号“{}”只能作为函数体的定界符。
(D)、构成C程序的基本单位是函数,所有函数都可以由用户命名。
1、以下叙述中正确的是()(A)、可以把printf和int定义为用户标识符。
(B)、可以把printf定义为用户标识符,但是不能把int定义为用户标识符。
(C)、可以把int定义为用户标识符,但不能把printf定义为用户标识符。
(D)、printf和int都不能定义为用户标识符2、一下不能定义为用户标识符的是()(A)Main (B)_0 (C)long(D)_int3、以下不合法的标识符是()(A)j2_KEY (B)_1_2_3 (C)Double (D)4D4、以下符合C语言语法的实型常量是()(A).5E-5 (B)3.3E(C)1.2E0.5 (D)E155、表达式3.6-5/2+1.2+5%2的值是()(A)4.3 (B)3.8 (C)3.3 (D)4.86、下列定义变量的语句中错误的是()(A)int _int; (B)long For;(C)short US$; (D)double int_;7、若变量x、y已经正确定义并赋值,以下符合C语言语法的表达式是()(A)double(x)/10 (B)x=x+10=x+y(C)x+1=y(D)++x , y――8、有以下程序main(){ int m=12,n=34;printf(“%d%d”,++m,n++);printf(“%d%d\n”,--n,--m);}程序运行后的输出结果是()(A)13343412 (B)13363413 (C)13343513 (D)1334341310、以下选项中,值为1的表达式是()(A)1-’0’(B)1-’\0’(C)’1’-0 (D)’\0’-‘0’11、设char型变量x中的值为10100111,则表达式(2+x)^(-3)的值是()(A)10101001 (B)10101000 (C)01010101 (D)1111110112、以下合法的字符型常量是()(A)’x1a’(B)’\018’(C)’65’(D)’\\’1、下列选项中不能作为用户标识符的是()A)1 B)_ C)a D)_1a2、下列选项中合法的标识符是()A)Long B)short C)1a D)Mr.peng3、int类型的变量占的字节数为()A)4 B)3 C)2 D)14、以下不合法的十六进制整数为()A)oxff B)0Xff C)0x1a D)0xabcd5、以下在C语言中可以作为合法常量的是()A)-80. B)-080 C)-8e1.0 D)-80.0e6、以下不合法的数值常量是()A)8.0e1.0 B)1E1 C)0xabcd D)0117、以下说法错误的是()A)+、-、*、/、%号是算数运算符,可以用于整型和实型运算B)i++是赋值语句C)分号是C语言结束的标志D)除逗号运算符以外,赋值运算符的优先级最低。
课程实验报告课程名称:计算机系统基础专业班级:学号:姓名:指导教师:报告日期:2016年5月24 日计算机科学与技术学院目录实验1: (2)实验2: (9)实验3: (22)实验总结 (30)实验1:数据表示1.1 实验概述本实验的目的是更好地熟悉和掌握计算机中整数和浮点数的二进制编码表示。
实验中,你需要解开一系列编程“难题”——使用有限类型和数量的运算操作实现一组给定功能的函数,在此过程中你将加深对数据二进制编码表示的了解。
实验语言:c; 实验环境: linux1.2 实验内容需要完成bits.c 中下列函数功能,具体分为三大类:位操作、补码运算和浮点数操作。
1.3 实验设计源码如下:/** lsbZero - set 0 to the least significant bit of x* Example: lsbZero(0x87654321) = 0x87654320* Legal ops: ! ~ & ^ | + << >>* Max ops: 5* Rating: 1*/int lsbZero(int x) {//x右移一位再左移一位实现把最低有效位置0x = x>>1;x = x<<1;return x;}/** byteNot - bit-inversion to byte n from word x* Bytes numbered from 0 (LSB) to 3 (MSB)* Examples: getByteNot(0x12345678,1) = 0x1234A978* Legal ops: ! ~ & ^ | + << >>* Max ops: 6* Rating: 2*/int byteNot(int x, int n) {//x第n个字节每位都和1异或实现取反int y = 0xff;n = n<<3;y = y<<n;x = (x^y);return x;}/** byteXor - compare the nth byte of x and y, if it is same, return 0, if not, return 1* example: byteXor(0x12345678, 0x87654321, 1) = 1* byteXor(0x12345678, 0x87344321, 2) = 0* Legal ops: ! ~ & ^ | + << >>* Max ops: 20* Rating: 2*/int byteXor(int x, int y, int n) {//把x和y的第n个字节取出来异或,再转换为逻辑的0和1n = n<<3;x = x>>n;y = y>>n;x = x&(0xff);y = y&(0xff);return !!(x^y);}/** logicalAnd - x && y* Legal ops: ! ~ & ^ | + << >>* Max ops: 20* Rating: 3*/int logicalAnd(int x, int y) {//把x和y分别转化为逻辑的0和1,再相与x = (!(!x))&(!(!y));return x;}/** logicalOr - x || y* Legal ops: ! ~ & ^ | + << >>* Max ops: 20* Rating: 3*/int logicalOr(int x, int y) {//把x和y分别转化为逻辑的0和1,再相或x = (!(!x))|(!(!y));return x;}/** rotateLeft - Rotate x to the left by n* Can assume that 0 <= n <= 31* Examples: rotateLeft(0x87654321,4) = 0x76543218* Legal ops: ~ & ^ | + << >> !* Max ops: 25* Rating: 3*/int rotateLeft(int x, int n) {//先构造低n位为1,高(32-n)位为0的数z,x左移n位后的数加上x右移(32-n)位的数&z即可int z;z = ~(((1<<31)>>31)<<n);x = ((x>>(32+(~n+1)))&z)+(x<<n);return x;}/** parityCheck - returns 1 if x contains an odd number of 1's* Examples: parityCheck(5) = 0, parityCheck(7) = 1* Legal ops: ! ~ & ^ | + << >>* Max ops: 20* Rating: 4*/int parityCheck(int x) {//每次将数的低半数位与高半数位比较,再把y右移31位,最后把y转化为逻辑的0和1int y;y = x<<16;y = y^x;y = y^(y<<8);y = y^(y<<4);y = y^(y<<2);y = y^(y<<1);y = y>>31;return !(!y);}/** mul2OK - Determine if can compute 2*x without overflow* Examples: mul2OK(0x30000000) = 1* mul2OK(0x40000000) = 0** Legal ops: ~ & ^ | + << >>* Max ops: 20* Rating: 2*/int mul2OK(int x) {//把x第31位和30位分别和1做按位与,再异或,再和1异或int m;m = ((x>>31)&0x1)^((x>>30)&0x1);return m^0x1;}/** mult3div2 - multiplies by 3/2 rounding toward 0,* Should exactly duplicate effect of C expression (x*3/2),* including overflow behavior.* Examples: mult3div2(11) = 16* mult3div2(-9) = -13* mult3div2(1073741824) = -536870912(overflow)* Legal ops: ! ~ & ^ | + << >>* Max ops: 12* Rating: 2*/int mult3div2(int x) {//左移一位再+x即x*3,右移一位的时候,当y的最高位和最低位都为0时还要+1int y = (x<<1)+x;y = (y>>1)+(((y>>31)&1)&(((y<<31)>>31)&1));return y;}/** subOK - Determine if can compute x-y without overflow* Example: subOK(0x80000000,0x80000000) = 1,* subOK(0x80000000,0x70000000) = 0,* Legal ops: ! ~ & ^ | + << >>* Max ops: 20* Rating: 3*/int subOK(int x, int y) {//x的最高有效位和y的最高有效位不同且x和(x-y)的最高位不同才能判断溢出int m = (x>>31)&1;int n = (y>>31)&1;x = (m^n)&(m^(((x+(~y+1))>>31)&1));return (!x);}/** absVal - absolute value of x* Example: absVal(-1) = 1.* You may assume -TMax <= x <= TMax* Legal ops: ! ~ & ^ | + << >>* Max ops: 10* Rating: 4*/int absVal(int x) {//x最高位为0时就是x,最高位为1时是~x+1int y = x>>31;x = (y&(~x+1))+((~y)&x);return x;}/** float_abs - Return bit-level equivalent of absolute value of f for * floating point argument f.* Both the argument and result are passed as unsigned int's, but * they are to be interpreted as the bit-level representations of * single-precision floating point values.* When argument is NaN, return argument..* Legal ops: Any integer/unsigned operations incl. ||, &&. also if, while* Max ops: 10* Rating: 2*/unsigned float_abs(unsigned uf) {int x=uf&(~(1<<31));if(x>0x7f800000){return uf;}else return x;}/** float_f2i - Return bit-level equivalent of expression (int) f* for floating point argument f.* Argument is passed as unsigned int, but* it is to be interpreted as the bit-level representation of a* single-precision floating point value.* Anything out of range (including NaN and infinity) should return * 0x80000000u.* Legal ops: Any integer/unsigned operations incl. ||, &&. also if, while* Max ops: 30* Rating: 4*/int float_f2i(unsigned uf) {unsigned num=0x80000000;int x=(uf&0x007fffff)^0x00800000;int order=0;order=(uf&0x7f800000)>>23;if(order>158){return num;}if(order<127) return 0;else if(((uf>>31)&1)==1){if(order>150){return ~(x<<(order-150))+1;}else return ~(x>>(150-order))+1;}else{if(order>150) return x<<(order-150);else return x>>(150-order);}}1.4 实验过程编写源码,运行btest,得出实验结果。
20XX年复习资料大学复习资料专业:班级:科目老师:日期:实验前言(建议认真阅读)一、上机实验的目的上机实验的目的是提高学生的分析问题、解决问题的能力和动手能力,通过实践环节理解C++语言的基本结构和程序设计方法。
通过亲手编程掌握C++语言编程的方法。
二、实验基本内容为了使学生在上机实验时目标明确,本实验指导书针对课程内容编写了五个实验。
学生在课内机时先完成指导书中标有“*”号的程序,理解所学的知识,在此基础上再编写其他应用程序。
指导书中的五个个实验如下:1. 函数与编译处理2. 指针与引用3. 类和对象4. 继承和派生类5. 多态性三、实验提交(特别提醒)1. 实验题目以附件形式提交,每个附件限一个源程序,附件以实验编号-题号-自己学号.cpp命名;如学号为20XXXX20XXXX20XXXX34的同学提交实验1的第5题,则附件命名方式为:1-5-20XXXX20XXXX20XXXX34.cpp,错误提交的将视为未提交。
2. 提交时间定为该次实验课的一周内,过期不再接收。
四、评分和作弊处理1. 要求提交实验题总数为6题(带“*”号),占期末总评成绩的20XX%;2. 存在抄袭和被抄袭的作业,无论抄袭与被抄袭者,本门课程平时成绩以零分记。
存在两次及两次以上抄袭和被抄袭者,本门课程以不及格记。
五、实验课要求(重点强调)1. 严禁QQ、MSN等即时软件工具聊天;2. 严紧接听手机、发送短信;3. 严紧玩游戏。
实验1 函数与编译处理一、实验目的1. 掌握函数声明、定义和使用的方法;2. 掌握形参与实参之间的对应关系;3. 掌握函数调用时,形参、实参之间的“值传递”和“引用传递”的区别;4. 掌握函数递归调用的方法;5. 掌握全局变量、局部变量、静态变量的使用方法;6. 掌握文件包含的使用方法。
二、实验内容1. 定义两个函数swap1和swap2,目的是实现两个整数的次序交换,其中swap1的参数是传递值参数,swap2的参数是引用参数,在程序中分别调用这两个函数,其输出结果如下所示:初始值:x=1,y=2调用swap1后的结果:x=1 y=2调用swap2后的结果:x=2 y=12. 编写一个函数,用来计算从键盘上输入的整数的阶乘。
实验一(第1章实验)实验目的:1.掌握运行C语言程序的全过程。
2.熟悉编译环境。
3.初步熟悉C语言程序的语法规定。
4.了解简单函数的使用方法。
实验内容:1.编程且上机运行:求3个整数的和。
2.编程且上机运行:求2个数的和、差、积和商。
3.编程且上机运行:输入3个数,求最大值。
4.编程且上机运行:输入圆的半径,求圆的面积和周长。
5.在屏幕上输出:“hello world!”实验结果:实验二(第3章实验)1.实验目的:理解C语言的类型系统。
实验内容:写程序测试数据-2在类型char,int,unsigned int,long int,unsigned long int 中存储情况。
实验过程:实验结果:参见各种类型的存储实现描述。
2.实验目的:了解混合类型计算中类型的转换规则。
实验内容:写程序测试多种类型数据一起运算时类型的转换及表达式结果的类型。
注意unsigned int和int数据运算时类型转换的方向。
实验过程:/** 类型转换问题* 试问下面两个表达式等价吗?*/#include <stdio.h>#include <stdlib.h>int main() {unsigned int ui,uj;ui = 1;uj = 2;if (ui < uj)printf("\n%u < %u is true !\n", ui, uj);elseprintf("\n%u < %u is false !\n", ui, uj);if (ui - uj < 0)printf("\n%u - %u <0 is true !\n", ui, uj);elseprintf("\n%u - %u <0 is false !\n", ui, uj);system("pause");return 0;}实验结果:参见类型转换规则。
C语言上机作业提交的有关说明
1.作业文件的命名规定:
作业文件的文件名为序号-题号。
说明:1)序号见FTP上本班学生的座位安排;
2)如果本次上机只有一个编程题,则题号可以省略。
例子:序号为30的同学举例说明如下:(文件的扩展名为.CPP或.C)
●如果本次上机只有一个编程题,则上交的作业文件名为:30.CPP或30.C
●如果本次上机只有二个编程题,则上交的作业文件名为:30-1.CPP或30-2.C,
以此类推
2.作业上交地点:
上交作业的文件夹与自己的班号(C05班或C17班)和“第几次作业”有关,根据作业次数提交到不同地点:
●第一次作业,上交到ftp://192.168.9.211/2014春学生作业/班号/01/中,
第二次作业,上交到ftp://192.168.9.211/2014春学生作业/班号/02/,以此类推
3.作业上交方法:
打开FTP上指定存放作业的文件夹,再将作业文件(源程序)拖入其中(作业文件必须在关闭状态下才能拖入)。
第一章作业答案.1。
编写程序,将华氏温度转化为摄氏温度:公式:C=(5/9)*(F—32)程序代码:#include〈iostream>using namespace std;void main(){float F,C;cout〈<”Please input F:”;cin〉>F;C=5*(F-32)/9。
0;cout<<”C="<〈C<〈endl;}运行结果:2。
编写程序,输入圆柱体的半径r和高h,计算圆柱体的体积.程序代码:#include〈iostream〉using namespace std;#define PI 3。
14159void main(){float r,h,v;cout<<”Please input r h:”;cin〉>r>〉h;v=PI*r*r*h;cout〈<”v="〈<v〈<endl;}运行结果:3.输入三角形的三条边a,b,c,利用海伦公式计算三角形的面积area。
若则area=程序代码:#include〈iostream〉#include〈math。
h〉using namespace std;void main(){float a,b,c,p,area;cout〈〈"Please input a b c:";cin>〉a〉>b>>c;if((a+b〉c)&&(b+c>a)&&(a+c〉b)){p=(a+b+c)/2.0;area=sqrt(p*(p—a)*(p—b)*(p-c));cout<<"area=”〈<area<〈endl;}else cout〈<"input error!"〈<endl;运行结果:4。
输入a,b,c的值,求一元二次方程:的解。
华中科技大学C语言实验报告课程实验报告课程名称:C语言程序设计专业班级:CS1409 学号:U202114813 姓名:唐礼威指导教师:吴海报告日期:2021年6月24日计算机科学与技术学院目录1第一次实验 (1)1.1 实验目的 ................................................... 1 1.2 实验内容 ................................................... 1 1.3 实验小结 .................................................. 10 2第二次实验 (11)2.1 实验目的 .................................................. 11 2.2 实验内容 .................................................. 11 2.3 实验小结 .................................................. 16 3第三次实验 (16)3.1 实验目的 .................................................. 16 3.2 实验内容 .................................................. 16 3.3 实验小结 .................................................. 25 4第四次实验 (25)4.1 实验目的 .................................................. 25 4.2 实验内容 .................................................. 25 4.3 实验小结 (30)5第五次实验 (31)5.1 实验目的 .................................................. 31 5.2 实验内容 .................................................. 31 5.3 实验小结 .................................................. 37 6第六次实验 (37)6.1 实验目的 .................................................. 37 6.2 实验内容 .................................................. 37 6.3 实验小结 .................................................. 44 7第七次实验 (44)7.1 实验目的 .................................................. 44 7.2 实验内容 .................................................. 44 7.3 实验小结 .................................................. 55 8第八次实验 (55)8.1 实验目的 .................................................. 55 8.2 实验内容 .................................................. 55 8.3 实验小结 .................................................. 63 9实验总结 (63)华中科技大学计算机科学与技术学院1409班唐礼威1 第一次实验1.1 实验目的(1)熟练掌握各种运算符的运算功能,操作数的类型,运算结果的类型及运算过程中类型转换,重点是C语言特有的运算符,例如位运算符,问号运算符,逗号运算符等;熟记运算符的优先级和结合性。
华中科技大学《计算机基础与程序设计(C++)》实验报告实验名称:第三次上机实验实验学时:4:学号:班级:电气实验日期:2017/3/27 教师批阅签字:一、实验目的●掌握三种循环语句的使用。
●学会使用continue 和break。
●掌握多重循环的设计。
●掌握常用算法的应用。
二、实验容1.在vc环境下编写下述程序代码,编译调试然后用不同的数据测试直至得到完全正确的结果。
并解释出错原因。
#include<iostream>#include<cmath>using namespace std;int main( ){float x0,x1,a;cout<<"输入一个正数:";cin>>a;if(a<0)cout<<a<<"不能开平方!"<<endl;else ;{x0=a/2;x1=(x0+a/x0)/2;while (abs(x1-x0)>=1e-5){x0=x1;x1=(x0+a/x0)/2;}cout<< a<<"的平方根为:"<<x1<<endl;}return 0;语法错误:1.最后缺少花括号。
逻辑错误:1.else后面有分号,导致花括号中的语句不受else限制。
2.abs所提供的精度为整数更改后的程序:#include<iostream>#include<cmath>using namespace std;int main( ){float x0,x1,a;cout<<"输入一个正数:";cin>>a;if(a<0)cout<<a<<"不能开平方!"<<endl;else{x0=a/2;x1=(x0+a/x0)/2;while (fabs(x1-x0)>=1e-5){x0=x1;x1=(x0+a/x0)/2;}cout<< a<<"的平方根为:"<<x1<<endl;}return 0;}2.下列程序的功能是:计算一对兔子,从出生后第3个月起每个月都生一对兔子。
第一次上机作业: 1.设计一个C++程序,输出以下信息: *************** Hello! *************** 2.编写一个简单程序,输出如下图案: * * * * * * * * * 3.编写程序,实现从键盘终端输入两个整型的数据,计算其和,以形如1+2=3的形式输出。
第二次上机作业: 1. 从键盘终端输入一个整数,若该整数为奇数则输出“该数是奇数!”,为偶数则输出“该数为偶数!” 2. 从键盘输入一个成绩,给出其等级。
第三次上机作业:switch的使用 1.从键盘输入3个整数,输出其最大值和最小值 2.计算器
第四次上机作业:单层循环 1. 判断并输出1-1000之间所有17的倍数,以5个一行输出。 2. 求100-999之间的水仙花数(各位数的立方和等于其值。例如:407=4*4*4+7*7*7)。
第五次上机作业:循环嵌套 1. 输出乘法口诀表 2. 输出2-100间的所有素数
第六次上机作业:函数 1. 写一个函数实现判断一个数是否是素数 2. 调用上述函数,输出2-100间的所有素数
第七次上机作业:数组 1. 定义一个一维数组,分别采用两个函数实现数组元素的输入和输出。 2. 对从键盘终端输入的10个整数排序,用函数实现排序,并用上述的函数实现数组的输入和输出。
第八次上机作业:指针 1. 定义一个二维数组,用来存放3个学生4门课的成绩,请求出每个学生的各科成绩的总分和均分,并求出每一门课的最高分。 要求输出结果为: #include void main() { int a[3][4]={{85,95,86,74},{84,96,85,99},{75,85,74,76}}; int s[3]={0},m[4]; float ave[3]; for(int i=0;i<3;i++) { for(int j=0;j<4;j++) { s[i]+=a[i][j]; } ave[i]=s[i]/3.0; } for(i=0;i<4;i++) { m[i]=a[0][i]; for(int j=1;j<3;j++) if(a[j][i]>m[i]) m[i]=a[j][i]; } printf("学生 语文 数学 英语 化学 总分 均分\n"); for(i=0;i<3;i++) { printf("学生%d ",i+1); for(int j=0;j<4;j++) printf("%-5d",a[i][j]); printf("%-5d%-5.1f",s[i],ave[i]); putchar('\n'); } printf("最高 "); for(i=0;i<4;i++) printf("%-5d",m[i]); putchar('\n'); } 求串的长度 int stringlen(char *p) { int length=0; while(*p!='\0') { length++; p++; } return length; } 串的连接: char *stringcat(char *s,char *t) { int i=0; while(s[i]!='\0') i++; while(*t!='\0') s[i++]=*t++; s[i]='\0'; return s; } 串的比较: int stringcmp(char *s,char *t) { int i=0; while(s[i]!='\0'&&t[i]!='\0') { if(s[i]>t[i]) return 1; else if(s[i]return -1; i++; } int len=strlen(s)-strlen(t); if(len>0) return 1; else if(len<0) return -1; else return 0; }
以下每题20分(加选作120分),课堂提交得满分,课后提交分数*0.71. 给一个百分制成绩,要求输出等级′A′、′B′、′C′、′D′、′E′。
90分以上为′A′,80~89分为′B′,70~79分为′C′,60~69分为′D′,60分以下为′E′。
(要求必须使用if-else结构)2. 编写一个简单计算器程序,输入格式为:data1 op data2。
其中data1 和data2 是参加运算的两个数,op 为运算符,它的取值只能是+、-、*、/。
(要求必须使用switch结构)3. 用for语句求1+2+3+4+……+50的和。
4.打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。
(如153=13+53+33)(要求使用三重循环)5. 找出一个3×3矩阵(在程序内初始化)中最大的元素输出其值及所在行列位置,要求先输出矩阵,再输出最大的元素输出其值及所在行列位置。
思路:遍历数组各元素,发现遇到过的最大的元素就记录其值和行、列位置,直至数组遍历结束,则记录为所求。
6.[选做]编写一个程序实现:将两个字符串连接起来,结果存在第一个字符串中。
要求:使用字符数组,不用strcat函数或string类型变量思路:找到第一个字符数组\0的位置,从这个位置开始把第二个字符数组的各字符依次拷入,最后加\0结束。
注意数组1要足够长。
下课前提交源程序,提交方法:(1)在D盘建立以自己学号和姓名命名的文件夹,如“08080506张杉”(注意学号在前姓名在后,中间没有空格)(2)将各题的源程序文件拷入该文件夹,源程序按题号命名,如“1.c”、“2.c”(3)右键点击该文件夹,将之打包为rar压缩文件,如“08080506张杉.rar”(4)将该rar压缩文件上传至教师FTP服务器。
实用文档 第二章上机实验 一、实验目的 学会编写简单的顺序C++程序。 掌握基本数据类型变量和常量的应用。 掌握运算符与表达式的应用。
掌握结构化程序设计基本控制结构的运用。 了解使用简单的输入输出。 了解头文件的作用。 熟悉Visual C++6.0的开发环境。学习用Visual C++6.0编写标准的C++控制台程序。 二、实验容 1. 请按照下面步骤调试程序,了解程序调式的步骤。 知识点:调试Visual C++6.0开发环境使用(编辑、编译、连接、运行、调试) 1)启动Visual C++6.0开发环境 从“开始”菜单中选择“所有程序”,然后找到【 Microsoft Visual Studio 6.0 | Microsoft Visual C++6.0】双击,显示Visual C++6.0开发环境窗口,如图2.1所示。
图2.1 操作系统中选择VC编译软件 2)创建一个项目 实用文档 进入Microsoft Visual C++ 6.0集成开发环境后,选择【文件|新建】菜单项,弹出新建对话框。单击【工程】标签,打开其选项卡,在其左边的列表框中选择【Win32 Console Application 】工程类 型,在【工程名称】文本框中输入工程名hello,在【位置】文本框中输入工程保存的位置,单击【确定】按钮,如图2.2 所示。
图2.2 创建新的应用程序界面 在弹出的对话框(如图2.3所示),选择【一个空工程】,单击【完成】按钮
图2.3 Win32 Console Application 弹出窗口 此时出现【新建工程信息】对话框,如图2.4 所示。该对话框中提示用户创建了一个空的控制台应用程序,并且没有任何文件被添加到新工程中,此时,工程创建完成。 实用文档 图2.4 新工程信息对话框 3)建立C++源程序文件 选择【文件|新建】菜单項,弹出新建对话框。单击【文件】选项卡,在列表框中选择C++ Source File ,在【文件名】文本框中输入文件名hellofile,选中【添加到工程】复选框,自动生成hellofile.cpp文件,如图2.5所示。
图2.5 建立源程序文件名
然后单击【确定】按钮,打开源文件编辑窗口,就会弹出输入源代码窗口,开始输入源代码。
图2.6 输入源程序 实用文档 4)编辑C++源程序文件容 在文件编辑窗口中输入代码(如图2.6所示): #include using namespace std; int main() { cout<<"同学们好,欢迎来到华中科技大学\n"; return 0; } 选择【文件|保存】菜单项来保存这个文件。
1) 建立并运行可执行程序 ○1选择【组建| 组建hello.exe】菜单项建立可执行程序。 如果你正确输入了源程序,此时便成功地生成了可执行程序hello.exe。 如果程序有语法错误,则屏幕下方的状态窗口中会显示错误信息,根据这些错误信息对源程序进行修改后,重新选择菜单命令组建| 组建hello.exe,建立可执行程序。 ○2选择【组建| 执行hello.exe】菜单项运行程序,观察屏幕的显示容。 5)关闭工作空间 选择【文件 | 关闭工作空间】菜单项来关闭工作空间。
2. 测试下述表达式的结果,并解释。 cout<<"abcde\2"; //1
结果: 解释\为转义字符ACSII值为2的即为笑脸 cout<<'a'+2; //2
结果解释:a的ASCII码值为97,加2后为99 cout<
结果解释c的ASCII码值为99 ,char为字符型最终输出字符c cout<<'a'+'\2'; //4
结果将两个字符转换为整数再相加结果为整形,就是两个ASCII码值的和 cout<<"abcde\x41"; //5 实用文档 结果\x41即为用16进制ASCII表示字符,即ASCII为65的字符A cout<<"abcde\n41"; //6
结果\n为换行,故41在下一行显示 cout<<"abcde\041"; //7
结果\0为八进制,41对应十进制的33,ASCII码值为33的为! cout<<"abcde\’041\'"; //8
结果\使‘直接输出为‘ cout<<"abcde\nhhhhh"; //9
结果\n为换行,故hhhhh在下一行显示 3. 测试自行准备的典型表达式的值,加强对表达式,运算符等规则的理解。并将其记录在下面,对结果给出合理的解释。(不少于10) 记录处: 1.cout<<’\41’; 结果‘‘,需要在前面加char ,将其转换为字符*,然后能输出* 2.cout<<”abcde\\2” ; 输出结果为abcde\2,第一个斜杠将第二个转译。 3.cout<<’a’+’2’; 结果为147. 当数字加上单引号之后为字符,运算时用其对应的ASCII 值计算。 4.cout<<5/7;结果为0 最开始规定整型. 5.cout<6.cout<<5.0/7.0; 结果为0.714286,5.0使得数据类型为浮点数。 7.将开始int main()换为double main(), cout<<5/7;结果为0. 8.cout<9.cout<10.cout<<”a b c”; 空格可以直接输入.不需要用ascii码值 3.上机编程题 1)编写一个简单程序输出如下容: * * * * * * * * * 知识点:学会输出语句和程序简单结构 ① 程序原代码。(直接粘贴在此) 实用文档 #include using namespace std; int main() { cout<<" *"<<'\n'; cout<<" * * *"<<'\n'; cout<<"* * * * *"<<'\n';
} ② 解决本题的算法思路描述 每一行输出的结果 ③调试过程的记载(包括出现的错误,以及修改过程)
开始计划一次输出三行失败,于是改为依次输出 第二次\n前忘记加<< 第三次\n忘加单引号 2)编写程序,定义字符变量ch并赋值,然后在屏幕上输出该字符及其对应的ASCII码值,如:字母a,字母b,字母A等。格式如下: 字符 对应ASCII值 a 97 b 98 知识点: 了解字符和ASCII码之间的关系,数据类型的转换方式。 ① 程序原代码。(直接粘贴在此) #include using namespace std; int main() { char ch='a'; cout 4)从键盘中输入x,n 的值,根据nnxy)21(式子求出y的值;请分别输入x的值3.5和n的值4。 知识点:学会数学函数和相应的库文件,以及实数输出格式。 ① 程序原代码。(直接粘贴在此) #include #include using namespace std; int main() { double y,x,n; cin>>x>>n; y=pow(1+x/pow(2,n),n); cout 5) 编写一个程序,从键盘输入半径和高,输出圆柱体的底面积和体积。 输出格式 如下:圆柱体半径为: ***.** 高为:***.** 圆柱体底面积为:***.** 体积为:***.** 知识点:学会数据的输入、处理和输出语句的结构;数据输出格式的控制。 ① 程序原代码。(直接粘贴在此) #include #include using namespace std; int main() { double r,h,s,v; cout<<"请输入半径和高"; cin>>r>>h; s=3.14*r*r; v=s*h; cout<<"底面积为"