VC++.NET简单程序设计(4)-“写字本”

VC++.NET简单程序设计(4)-“写字本”
VC++.NET简单程序设计(4)-“写字本”

VC++.NET程序设计(4)

四、设计类“写字本”(15分)

基本要求:

1、能读写、保存文件;(5分)

2、具有对话框读写文件路径;(5分)

3、能修改文字属性;(5分)

初始化视图:

void CEditorView::OnInitialUpdate()

{

CView::OnInitialUpdate();

// TODO: 在此添加专用代码和/或调用基类

CDC *pDC=GetDC();

pFont=new CFont();

if(!(pFont->CreateFont(0,0,0,0,FW_NORMAL,FALSE,FALSE,FALSE, ANSI_CHARSET,OUT_TT_PRECIS,CLIP_TT_ALWAYS,

DEFAULT_QUALITY,DEFAULT_PITCH,_T("Courier New")))) {

pFont->CreateStockObject(SYSTEM_FONT);

}

CFont* oldFont=pDC->SelectObject(pFont);

TEXTMETRIC tm;

pDC->GetTextMetrics(&tm);

lHeight=tm.tmHeight+tm.tmExternalLeading;

cWidth=tm.tmAveCharWidth;

pDC->SelectObject(oldFont);

}

添加处理键盘按键按下时的消息:

void CEditorView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)

{

// TODO: 在此添加消息处理程序代码和/或调用默认值

CEditorDoc* pDoc=GetDocument();

CClientDC dc(this);

CFont *oldFont;

oldFont=dc.SelectObject(pFont); //选择新字体

CString line; //存放编辑器当前行字符串

POSITION pos=NULL; //字符串链表位置指示

if(nChar=='\r')

{

pDoc->nLineNum++;

}

else

{

//按行号返回字符串链表中位置值

pos=pDoc->lines.FindIndex(pDoc->nLineNum);

if(!pos)

{

//没有找到该行号对应的行,因此它是一个空行,

//把它加到字符串链表中。

line+=(char)nChar;

pDoc->lines.AddTail(CString(line));

}

else

{

//当前文本行还没有换行结束,因此将文本加入到行末

line=pDoc->lines.GetAt(pos);

line+=(char)nChar;

pDoc->lines.SetAt(pos,line);

}

TEXTMETRIC tm;

dc.GetTextMetrics(&tm);

dc.TextOut(0,(int)pDoc->nLineNum*tm.tmHeight,line,line.GetLength());

}

pDoc->SetModifiedFlag();

dc.SelectObject(oldFont);

CView::OnChar(nChar, nRepCnt, nFlags);

}

添加选择字体函数:

void CEditorView::OnSelectFont()

{

// TODO: 在此添加命令处理程序代码

CFontDialog dlg;

if(dlg.DoModal()==IDOK)

{

LOGFONT LF;

dlg.GetCurrentFont(&LF); //获取所选字体的信息

pFont->DeleteObject();

pFont->CreateFontIndirect(&LF); //建立新的字体

Invalidate();

UpdateWindow();

}

}

修改绘图OnDraw函数:

void CEditorView::OnDraw(CDC* pDC)

{

CEditorDoc* pDoc = GetDocument();

ASSERT_VALID(pDoc);

if (!pDoc)

return;

// TODO: 在此处为本机数据添加绘制代码

CFont *oldFont;

oldFont=pDC->SelectObject(pFont); //选择新字体

int yval=0; //纵向坐标为yval POSITION pos;

CString line;

//取得文本行链表的头指针

if(!(pos=pDoc->lines.GetHeadPosition()))

return;

while(pos!=NULL) //循环输出各文本行{

line=pDoc->lines.GetNext(pos);

pDC->TextOut(0,yval,line,line.GetLength());

//更新y坐标值,让它加上文本行所用字体的高度

yval+=lHeight;

}

pDC->SelectObject(pFont);

}

效果截图:

诚信手抄报花边边框,关于诚信的手抄报花边简单又漂亮

诚信手抄报花边边框,关于诚信的手抄报花 边简单又漂亮 古语说人无信而不立,意思就是说,人如果不讲诚信就不能在社会上立足,可见诚信的重要性,下面是为你提供的诚信手抄报花边边框,欢迎阅读。想了解更多手抄报内容,请继续关注本栏目。 诚信手抄报花边

【季札诚信故事】 周代的季札,是吴国国君的公子。有一次,季札出使鲁国时经过了徐国,于是就去拜会徐君。徐君一见到季札,就被他的气质涵养所打动,内心感到非常地亲切。徐君默视着季札端庄得体的仪容与着装,突然,被他腰间的一把祥光闪动的佩剑,深深地吸引住了。在古时候,剑是一种装饰,也代表着一种礼仪。无论是士臣还是将相,身上通常都会佩戴着一把宝剑。 季札的这柄剑铸造得很有气魄,它的构思精审,造型温厚,几颗宝石镶嵌其中,典丽而又不失庄重。只有像延陵季子这般气质的人,才配得上这把剑。徐君虽然喜欢在心里,却不好意思表达出来,只是目光奕奕,不住地朝它观望。季札看在眼里,内心暗暗想道:等我办完事情之后,一定要回来将这把佩剑送给徐君。为了完成出使的使命,季札暂时还无法送他。

怎料世事无常,等到季札出使返回的时候,徐君却已经过世了。季子来到徐君的墓旁,内心有说不出的悲戚与感伤。他望着苍凉的天空,把那把长长的剑,挂在了树上,心中默默地祝祷着:「您虽然已经走了,我内心那曾有的许诺却常在。希望您的在天之灵,在向着这棵树遥遥而望之时,还会记得我佩着这把长长的剑,向你道别的那个时候。」他默默地对着墓碑躬身而拜,然后返身离去。 季札的随从非常疑惑地问他:徐君已经过世了,您将这把剑悬在这里,又有什么用呢?季子说:虽然他已经走了,但我的内心对他曾经有过承诺。徐君非常地喜欢这把剑,我心里想,回来之后,一定要将剑送给他。君子讲求的是诚信与道义,怎么能够因为他的过世,而背弃为人应有的信与义,违弃原本的初衷呢? 自古以来,圣贤一再地教诲我们,高迈的志节往往是表现于内心之中。就像季札,他并没有因为徐君的过世,而违背做人应有的诚信,何况他的允诺只是生发于内心之中。这种「信」到极处的行为,令后人无比地崇敬与感动。

C语言程序设计习题参考答案第四章(数组)

第四章数组参考答案 一、选择题:1、 B 2、C 3、D 4、C 5、C 6、B 7、D 8、B 9、B 10、A 二、填空题: 1、首地址 2、按行存放 3、一个字符 4、′\0′ 5、字符数组名或字符串 6、9 0 7、6 8、j-1 str[j-1] 9、62 10、s1[i]=s2[i]; 三、改错题 1、错误语句:int a[3][ ]={2,4,6,8,10,12,14,16,18}; 正确语句:int a[ ][3]={2,4,6,8,10,12,14,16,18}; 2、错误语句:if (str[2]>string) string=str[2]; 正确语句:if (strcmp(str[2],string)>0) strcpy(string,str[2]); 3、错误语句:char c[5]={'C','h ','i','n','a '}; 正确语句:char c[6]={'C','h ','i','n','a '};或char c[ ]={“China”}; 4、错误语句:int a[3]={3*0} ; 正确语句:int a[4]; 5、错误语句:scanf(“%d%d%d”,&a); 正确语句:for (i=0; i<3; i++) scanf(“%d”,&a[i]); 或scanf(“%d%d%d”, &a[0], &a[1], &a[2]); 四、编程题 1、用数组来处理,求解Fibonacci数列前40项:1,1,2,3,5,8,13,21…。 #include void main() { int i; int t[40]={1,1}; for(i=2;i<40;i++) t[i]=t[i-2]+t[i-1]; for(i=0;i<40;i++) { if(i%5==0) printf("\n"); printf("%15d",t[i]); } } 2、用选择法对20个整数排序(由大到小)。 #include void main() {int i,j,min,t,x[20]; for(i=0;i<20;i++) scanf("%d",&x[i]); for(i=0;i<19;i++) {min=i; for(j=i+1;j<20;j++) if(x[min]>x[j])min=j; t=x[i];

《C语言程序设计》课后习题答案(第四版)

第1章程序设计和C语言1 1.1什么是计算机程序1 1.2什么是计算机语言1 1.3C语言的发展及其特点3 1.4最简单的C语言程序5 1.4.1最简单的C语言程序举例6 1.4.2C语言程序的结构10 1.5运行C程序的步骤与方法12 1.6程序设计的任务14 1-5 #include int main ( ) { printf ("**************************\n\n"); printf(" Very Good!\n\n"); printf ("**************************\n"); return 0; } 1-6#include int main() {int a,b,c,max; printf("please input a,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); max=a; if (max

2.5结构化程序设计方法34 习题36 第章最简单的C程序设计——顺序程序设计37 3.1顺序程序设计举例37 3.2数据的表现形式及其运算39 3.2.1常量和变量39 3.2.2数据类型42 3.2.3整型数据44 3.2.4字符型数据47 3.2.5浮点型数据49 3.2.6怎样确定常量的类型51 3.2.7运算符和表达式52 3.3C语句57 3.3.1C语句的作用和分类57 3.3.2最基本的语句——赋值语句59 3.4数据的输入输出65 3.4.1输入输出举例65 3.4.2有关数据输入输出的概念67 3.4.3用printf函数输出数据68 3.4.4用scanf函数输入数据75 3.4.5字符数据的输入输出78 习题82 3-1 #include #include int main() {float p,r,n; r=0.1; n=10; p=pow(1+r,n); printf("p=%f\n",p); return 0; } 3-2-1 #include #include int main() {float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5; p=1000;

C语言程序设计教程 清华大学出版社 陈明主编 第4章答案

第4章习题解答 一、选择题 1.在C语言中,函数返回值的类型最终取决于 A)函数定义时的函数首部所说明的函数类型B)return语句中表达式值的类型C)调用函数时主调函数所传递的实参类型D)函数定义时形参的类型 解析:函数返回值类型最终取决于定义函数时所定义的函数类型。 答案:A 2.设函数Fun()的定义形式为: void Fun(char ch, float x){} 则以下对函数Fun()的调用语句中,正确的是。 A)Fun("abc", 3.0); B)t = Fun('D', 16.5); C)Fun('65', 2.8); D)Fun(32, 32); 解析:选项A中"abc"是字符串,与形参不匹配:由于Fun函数的返回值类型为void,所以选项B中进行了赋值操作是不正确的;在选项C中,'65'是不合法的字符形式,单引号中应该是单个字符。只有选项D才是合法的函数调用形式。 答案:D 3.有以下程序: /* 文件路径名:ex4_1_3\main.c */ #include /* 标准输入/输出头文件*/ int f1(int x, int y) { return x > y ? x : y; } int f2(int x, int y) { return x > y ? y : x; } int main(void) /* 主函数main() */ { int a = 4, b = 3, c = 5, d = 2, e, f, g; /* 定义变量*/ e = f2(f1(a, b), f1(c, d)); f = f1(f2(a, b), f2(c, d));/* 调用函数*/ g = a + b + c + d - e - f; /* 算术运算*/ printf("%d,%d,%d\n", e, f, g); /* 输出e,f,g */ return 0; /* 返回值0, 返回操作系统*/ } 程序运行后的输出结果是。 A)4,3,7 B)3,4,7 C)5,2,7 D)2,5,7 解析:函数f1用于求两个数中的最大数,而函数f2用于求两个数中的最小数。因此有:e=f2(f1(a,b),f1(c,d))=f2(f1(4,3),f1(5,2))= f2(4,5)=4; f=f1(f2(a,b),f2(c,d)) =f1(f2(4,3),f2(5,2)) =f1(3,2)=3; g=a+b+c+d-e-f=4+3+5+2-4-3=7。

C语言程序设计教程第四章练习试题解析[1]

单选题 1、关于C语言中的函数,下列描述正确的是() A.函数的定义可以嵌套,但函数的调用不可以嵌套 B.函数的定义不可以嵌套,但函数的调用可以嵌套 C.函数的定义和函数的嵌套均不可以嵌套 D.函数的定义和函数的调用均不可以嵌套 答案:B 解析:函数的定义不可以嵌套,但函数的调用可以嵌套 2、定义一个函数:exce((v1, v2), (v3,v4,v5),v6); 在该函数调用时,实参的个数为()个 A.3 B.4 C.5 D.6 答案:A 解析:(v1, v2), (v3,v4,v5)和v6一共三个实参 3、关于C语言中print()函数与scanf()函数,下列描述中正确的是() A.printf()函数可以向任何地方输出数据 B.printf()只向控制台输出数据 C.scanf()只能输入英文字母和数字 D.scanf()函数可以识别输入的空格 答案:B 解析:printf()是向控制台输出的函数 4、在C语言中,内部函数需要添加的关键字是() A.extern B.static C.this D.auto 答案:B 解析:在定义内部函数时,需要在函数的返回值类型前面添加static关键字(又称为静态函数)。 5、当调用时,会调用内部函数 A.当调用时,会调用内部函数 B.当调用时,会调用外部函数 C.当调用时,会调用两次,先调用内部函数再调用外部函数 D.都不调用,会报错 答案:A 解析:当内部函数与外部函数重名时,会优先调用内部函数 6、在C语言中,声明外部函数需要添加的关键字是() A.extern B.static C.this

答案:A 解析:声明外部函数的方式是在函数的返回值类型前面添加extern关键字 7、关于C语言中的局部变量,下列描述中错误的是() A.局部变量就是在函数内部声明的变量 B.局部变量只在函数内部有效 C.局部变量只有当它所在的函数被调用时才会被使用 D.局部变量一旦被调用,其生存周期持续到程序结束 答案:D 解析:当函数调用结束时局部变量就会失去作用 8、关于C语言中的全局变量,下列描述中正确的是() A.全局变量的作用域一定比局部变量的作用域范围大 B.静态类别变量的生存周期贯穿于整个程序的运行期间 C.函数的形参都属于全局变量 D.未在定义语句中赋初值的auto变量和static变量的初值都是随机值 答案:B 解析:选项1不对:如果程序中只有一个主函数,则在整个程序运行中,局部变量都在起作用; 选项3不对:除了C++的引用类型参数,所有函数的形参都是局部变量; 选项4不对:static变量定义时就存储地全局区,初始化为0; 9、当全局变量与局部变量重名时,那么在调用时() A.局部变量会被屏蔽 B.全局变量会被屏蔽 C.都不会调用,系统会报错 D.会调用两次,先调用局部变量,再调用全局变量 答案:B 解析:当局部变量与全局变量重名时,全局变量会被屏蔽。 10、在C语言中,关于变量的作用域,下列描述中错误的是() A.局部变量只在整个函数的运行周期中有效 B.全局变量的作用域为整个程序的运行周期 C.当全局变量与局部变量重名时,局部变量会屏蔽掉全局变量 D.全局变量会覆盖掉所有与它重名的局部变量 答案:D 解析:当全局变量与局部变量重名时,全局变量会被屏蔽掉 11、在C语言中,如果在一个函数的复合语句中定义了一个变量,则该变量() A.只在该复合语句中有效,在该复合语句外无效 B.在该函数中任何位置都有效 C.在本程序的原文件范围内均有效 D.此定义方法错误,其变量为非法变量 答案:D 解析:1、2与3错:函数复合语句中定义的变量在该复合语句中引用;但如果函数含有该变量,则在函数中可以引用该变量 4对:在C++中在复合语句中定义变量为合法,但在C语言中是非法的 12、C语言程序的基本单位是()。

c程序设计(第四版)谭浩强-课后答案.pdf(2)(最新整理)

C 语言课后习题答案-第四版- 谭浩强(1-7) 第一章 #include int main ( ) { printf ("**************************\n\n"); printf(" Very Good!\n\n"); printf ("**************************\n"); return 0; } #include int main() {int a,b,c,max; printf("please input a,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); max=a; if (max

printf("The largest number is %d\n",max); return 0; } 第3 章 #include #include int main() {float p,r,n; r=0.1; n=10; p=pow(1+r,n); printf("p=%f\n",p); return 0; } #include #include int main() {float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5;

p=1000; r5=0.0585; r3=0.054; r2=0.0468; r1=0.0414; r0=0.0072; p1=p*((1+r5)*5); // 一次存5 年期 p2=p*(1+2*r2)*(1+3*r3); // 先存2 年期,到期后将本息再存3 年期 p3=p*(1+3*r3)*(1+2*r2); // 先存3 年期,到期后将本息再存2 年期 p4=p*pow(1+r1,5); // 存1 年期,到期后将本息存再存1 年期,连续存5 次p5=p*pow(1+r0/4,4*5); // 存活期存款。活期利息每一季度结算一次 printf("p1=%f\n",p1); // 输出按第1 方案得到的本息和 printf("p2=%f\n",p2); // 输出按第2 方案得到的本息和 printf("p3=%f\n",p3); // 输出按第3 方案得到的本息和 printf("p4=%f\n",p4); // 输出按第4 方案得到的本息和 printf("p5=%f\n",p5); // 输出按第5 方案得到的本息和 return 0; } #include #include

漂亮的花边(人教新课标)二年级美术下册教案

漂亮的花边 教学目标: 1.能用自己的话描述“什么是花边”,能够回忆起日常生活中见到过的一些花边。 2.使学生掌握剪纸花边图案设计和制作的基本方法和技能。 3.通过本课的学习培养学生的动手操作能力,提高学生美化生活的意识和应用美术的能力。 教学重点: 折剪出二方连续纹样。 教学难点: 设计。 教学准备: 教具:多媒体课件,各种图案的图片。范画,剪刀,彩纸,胶棒,记号笔等。 学具:长条形彩色纸每人1~2张;剪刀;胶水。 教学过程: 一、歌曲激趣,导入新课 音乐《小小雨点》。 让学生跟着节奏一起唱。 师:今天老师给大家带来了一首很好听的歌,同学们在欣赏的同时要思考一个问题:“这首歌曲中重复出现的地方在哪里” 请看大屏幕欣赏:(播放给学生看) 大家可以跟着节奏一起唱。 (因为在这首曲子里面有重复出现的节奏:“小小雨点,小小雨点,沙沙沙沙沙……”让学生指出重复的地方在哪里。) 师:能听出这首歌当中哪里重复吗 来跟音乐一起唱一遍,边唱边考虑一下老师的问题。 生唱。 师:听出来了吗 生:听出了。 这首曲子里面有重复出现的节奏:“小小雨点,小小雨点,沙沙沙沙沙……” 师:同学们说的真好,其实在美术上也有一种重复。 2.出示一个图形。 师:喜欢这个图形吗 生:喜欢。 师:老师手上也有一个这样的图形,请你们仔细看,老师现在要变个小魔术。 再出示这个图形向两边重复延伸的而形成的花边。 师:谁说说现在又有什么变化呢 生:刚才是一个图形,现在变成很多个。 师:同学们观察得真仔细,像这种一个图形向两边重复延伸的,就是花边。

3.出示范画:花边 师:今天老师也给同学们带来了几条花边,你们看,漂亮吗 那好这节课我们就来学习第九课《漂亮的花边》。 板书——漂亮的花边。 二、讲授新课 (一)欣赏图片,寻找 1.让学生寻找花边。 师:其实花边在很早以前就出现了,同学们请看,这就是原始人类用简单的几何图形和简单的纹样来装饰生活中的器物。(课件出示原始时期舞蹈纹彩陶盆,汉代的漆盘,原始社会马家窑文化彩陶瓮,元代青花瓷瓶。)你们看,随着时代的进步,到了元、明、清时期器物上的装饰是不是更加精致了 生:是。 师:图案的设计也变得比较复杂,从这我们可以看出咱们国家自古以来在艺术方面造诣精湛,源远流长,这也是我们中国人的骄傲。(课件出示明清时期瓷器图片) 2.师:在我们现在的生活中的花边除了继承原来精美多样的特点之外,更加追求简洁、大方和色彩搭配的协调性。 师:谁能说说你在平常生活中的哪些地方见到过花边 生1:窗帘,床单 生2:童装店的童上衣 生3:洗手间的毛巾 生4:餐厅的盘子 …… 师小结:看来同学们都是善于观察的好孩子,我们发现有这么多美丽的花边装饰在我们生活中的各个地方,花边确实的使用非常广泛,你们看在服装上、毛巾上、窗帘上及餐具上等等都可以见到。(课件出示家居用品店的窗帘、床单、童装店的童上衣、洗手间的毛巾、餐厅的盘子,让学生观看生活中带有花边装饰图案的物品。) (二)理解概念 老师:刚才同学们看到了那么多的花边,那么,谁能用自己的话说说花边有什么特点 生:一模一样的图形重复排列。 师:他说的真好,鼓励一下。(鼓掌) 对,一模一样的图形重复排列,就形成了花边。(出示动画:一个图形向两边重复延伸,花边)。 师:而花边中重复出现的那个图案就叫“单独纹样”。 “单独纹样”包括很多,如人物,动物,植物及简单的几何图形等等,你可以选择自己喜欢的图形。 师:(出示:上下延伸的花边) 大家看这个与刚才的花边在排列上有什么不同 生:刚才是左右延伸,现在是上下延伸。

C程序设计第四版谭浩强完整版课后习题答案

C程序设计第四版谭浩强完整版课后习题答案集团标准化办公室:[VV986T-J682P28-JP266L8-68PNN]

C程序设计(第四版)(谭浩强)第一章课后习题答案 P006 向屏幕输出文字. #include<>代码均调试成功,若有失误大多不是代码问题.自已找找. int main() { printf("Welcome to \n"); return 0; } P008 求两个数的和. #include<> int main() { int a,b,sum; a=5; b=4; sum=a+b; printf("The sum is %d .\n",sum);

return 0; } P008 调用函数比较两个数的大小. #include<> int main() { int max(int x,int y); int a,b,c; scanf("%d,%d",&a,&b); c=max(a,b); printf("The max is %d .\n",c); return 0; } int max(int x,int y) { int z; if (x>y) z=x; else z=y; return(z); }

P015 三个数的大小.(数字0表示课后练习题) #include<> int main() { int a,b,c,d; int max(int x , int y , int z); printf("Please input 3 numbers :\n"); scanf("%d %d %d",&a,&b,&c); d=max(a,b,c); printf("The max is :%d .\n",d); } int max(int x , int y , int z) { int m; if (x>y && x>z) m=x; if (y>x && y>z) m=y; if (z>y && z>x) m=z; return (m); }

第三章 最简单的c程序设计

第三章最简单的c程序设计 实践教学: 属性:实训 时间:学时。 实践教学内容: 实验目的:熟悉运算符、表达式,掌握标准输入输出函数的适用方法和顺序结构程序设计的一般方法。 实验内容和步骤: 1.编程,要求从键盘按规定的格式输入时间(时:分:秒), 并将输入的时间在屏幕上显示出来,存入ex3_1.c文件, 并编译、调试、运行。 #include main() { int a ,b,c; scanf("%d%d%d",&a,&b,&c); if (a>24) printf("请重新输入"); if (b>60) printf("请重新输入"); if (c>60) printf("请重新输入"); printf("%d:%d:%d\n",a,b,c); return 0; }

2.编程,要求从键盘输入数据,使整型变量a=10,b=8;字符 型c1=’A’,c2=’a’;实型变量x=3.1,y=64.54。并按规定格式输出变量的值。格式如下。存入ex3-2.c文件,并编译、调试、运行。 __int___a=__10___b=____8 char_c1=__A,___c2=____a float___x=_3.1,___y=64.54 #include main() { int a=10,b=8; char c1='A',c2='a'; float x=3.1,y=64.54; return 0; } 3.c语言编程求ax2+bx+c=0并分析其结果。存入ex3_2.c文 件,并编译、调试、运行。 #include

C语言程序设计第二版第四章第七章课后答案

1、输入函数scanf的参数错误,应该为:scanf("%f",&k); 2、|1234 1234 | 3、ff10 4、1,3,1 5、原字符串左边加空格再加字符串本省,字符个数总和为5个 6、scanf("%d,%d,%c,%c",&a1,&a2,&c1,&c2); 7、 printf("a+b=%d\n",a+b); printf("a-b=%d\n",a-b); printf("a*b=%d\n",a*b); printf("a/b=%d\n",a/b); printf("(float)a/b=%f\n",(float)a/b); printf("a%b=%d\n",a%b); 8、 void main() { float r; float s,c; printf("please input the number:"); scanf("%f",&r); if(r>=0) { s = 3.14*r*r; c = 2*3.14*r; printf("s = %f, c = %f\n",s,c); } else printf("you input number is error!"); } 9 void main() {int n; printf("please input the number:"); scanf("%d",&n); if(n>=100 && n <= 999) printf("%d%d%d",n%10,(n/10)%10,n/100); else printf("you input number is error!"); } 10、 void main() { int i,j,k; scanf("%d,%d,%d",&i,&j,&k); ((i%2 != 0?1:0) + (j%2 != 0?1:0)+(k%2 != 0?1:0)) == 2?printf("YES\n"):printf("NO\n"); } 11、 void main()

C程序设计(第四版)(谭浩强)完整版_课后习题答案

C程序设计(第四版)(谭浩强)第一章课后习题答案 P006 1.1 向屏幕输出文字. #include//预编译. 代码均调试成功,若有失误大多不是代码问题.自已找找. int main() { printf("Welcome to https://www.360docs.net/doc/129123637.html,\n"); return 0; //与int main对应,为了程序可移植性,建议全用int main + return 0;. } P008 1.2 求两个数的和. #include int main() { int a,b,sum; a=5; b=4; sum=a+b; printf("The sum is %d .\n",sum); return 0; } P008 1.3 调用函数比较两个数的大小. #include int main() { int max(int x,int y); //被调用函数在主函数后面,用前先声明. int a,b,c; scanf("%d,%d",&a,&b); //输入时要按格式来,此处的逗号,用空格会发生错误. c=max(a,b); //a,b作为实参传入被调用函数中. printf("The max is %d .\n",c); return 0; } int max(int x,int y) //定义了两个形参. {

int z; //z属于局部变量,可与主函数中相同名字. if (x>y) z=x; else z=y; return(z); //z作为整个程序的出口值,赋给主函数中的c. } #include int main() { int a,b,c,d; //d是用于存储最大值的. int max(int x , int y , int z); //测试可知,在VS2008中,可以不预先声明. printf("Please input 3 numbers :\n"); scanf("%d %d %d",&a,&b,&c); d=max(a,b,c); //调用函数中有三个形参,这里需要传入三个实参,才可运算. printf("The max is :%d .\n",d); // d可以换成max(a,b,c). } int max(int x , int y , int z) { int m; if (x>y && x>z) //求三者之大的一种方法. m=x; if (y>x && y>z) m=y; if (z>y && z>x) m=z; return (m); //返回值m给主函数中的d. } C程序设计(第四版)(谭浩强)第2章课 后习题答案 算法——程序的灵魂

c语言程序设计第四版第四章答案谭浩强

第四章 什么是算术运算什么是关系运算什么是逻辑运算 解:略。 C语言中如何表示“真”和“假”系统如何判断一个量的“真”和“假” 解:设有一个逻辑表达式,若其结果为“真”,则以1表示;若其结果为“假”,则以0表示。但是判断一个逻辑量的值时,以0代表“真”,以非0代表“假”。例如3&&5的值为“真”,系统给出3&&5的值为1。 写出下面各逻辑表达式的值。设a=3,b=4,c=5。 (1) a+b>c&&b==c (2) a||b+c&&b-c (3) !(a>b)&&!c||1 (4) !(x=a)&&(y=b)&&0 (5) !(a+b)+c-1&&b+c/2 解: (1) 0 (2) 1 (3) 1 (4) 0 (5) 1 有3个整数a、b、c,由键盘输入,输出其中最大的数。 解: 方法一 #include <> main() { int a,b,c; printf("请输入3个整数:"); scanf("%d,%d,%d",&a,&b,&c); if(a main() { int a,b,c,temp,max; printf("请输入3个整数:"); scanf("%d,%d,%d",&a,&b,&c); temp=(a>b)a:b; /* 将a和b中的大者存人temp中 */ max=(temp>c)temp:c; /* 将a和b中的大者与c比较,取最大者*/ printf("3个整数的最大数是%d\n”,max); }

简单的C语言编程题例题

1、编写程序,把560分钟换算成用小时和分钟表示,然后输出。解:其所编程序如下 #include"stdio.h" void main() {int a=560,b=60,c,d; c=a/b; d=a%b; printf("560分钟=%d小时%d分钟",c,d); } 2、编写程序,输入两个整数:1500和350,求出它们的商和余数并进行输出。 解:所编程序如下 #include"stdio.h" void main() {int a,b,c,d; printf("Input two numbers:"); scanf("%d%d",&a,&b); c=a/b; d=a%b; printf("c=%d,d=%d\n",c,d); } 3、编写程序,读入三个双精度数,求出它们的平均值并保留此平均

值小数点后一位数,对小数点后的第二位数进行四舍五入,最后输出结果。 解:所编程序如下 #include"stdio.h" void main() {double a,b,c,ave; printf("Enter three numbers:"); scanf("%lf%lf%lf",&a,&b,&c); ave=(a+b+c)/3; printf("(1)ave=%f\n",ave); ave=(int)(ave*10+0.5)/10.0; printf("(2)ave=%f\n",ave); } 4、编写程序,读入三个整数给a、b、c,然后交换它们中的数,把a 中原来的值给b,把b中原来的值给c,把c中原来的值给a,然后输出a、b、c。 解:所编程序如下 #include"stdio.h" void main() {int a,b,c,m,n,t; printf("Enter three numbers:"); scanf("%d%d%d",&a,&b,&c);

最新C++程序设计基础课后答案--第四章

4.1 阅读下列程序,写出执行结果 1.#include void main() { int i, conut=0, sum=0 ; float average ; int a[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 } ; for( i=0; i<10; i++ ) { if( a[i] % 2 == 0 ) continue ; sum += a[ i ] ; conut ++ ; } average = sum / conut ; cout << "conut = " << conut << '\t' << "average = " << average << endl ; } 2.#include void main() { int a[9] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 } ; int *p = a , sum = 0 ; for( ; p='A' && x<='Z') { x=x+32; /*是大写,转换为小写,至于为什么要+32吗,请看看 大小写字母的ASCII码差值*/ } else if( x>='a' && x<='z') { x=x-32; /*是小写,转换为大写*/ } /*其它不用理*/ printf("%c\n",x); } 2:输入一个大写字母实现,输出字母表中的前后字母,但是当时A 或是Z时提示输出的“没有前面的字母”,“没有后面的字母” #include void main() {char x; printf("输入一个大写字母x:\n"); scanf("%c",&x); if (x=='A') {printf("没有前面的字母");} if( x=='Z') { printf("没有后面的字母");} else// (x>'A'||x<'Z') {printf("%c, %c",x-1,x+1);} } 3:实现的是对百分制的评等级

#include void main() { float x; printf("请输入学生的成绩x的值\n"); scanf("%f",&x); if(x>=90&&x<=100) {printf("等级为A ");} else { if (x>=80&&x>=89) {printf("等级为B "); } else if (x>=70&&x<=79) {printf("等级为C "); } else if (x>=60&&x<=69) {printf("等级为D "); } else { printf("等级为E "); } } } 4:知道今天的日期,年月日,求出明天的年月日 #include int main() { int year,month,day; int maxdays[]={31,28,31,30,31,30,31,31,30,31,30,31}; printf("请输入年月日,中间用空格隔开!\n"); scanf("%d %d %d",&year,&month,&day); if(year%400==0 || (year%4==0 && year%100!=0)) maxdays[1]=29;//闰年二月最大值是29 if(month>12 || month<1) { printf("日期不合法!\n"); return 0; } if(day>maxdays[month-1])

实验项目:实验一 最简单的C程序设计

实验项目:实验一最简单的C程序设计 (所属课程:《C语言程序设计》学时:2) 一、实验目的 1.掌握:使用标准输入/输出函数进行常见数据类型的数据的输入/输出方法。 2.初步培养编制程序框图和源程序、准备测试数据以及实际调试程序的独立编程能力。 3.掌握顺序结构程序设计的基本思路。 二、实验条件 Pc和vc++编程环境 三、实验内容 1.熟悉编程环境。 2.输入并运行一个C程序 3.掌握各种格式转换符的正确使用方法。 4.编程序:设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。要求用scanf函数从键盘上输入数据(半径和高),输出各计算结果,输出时要求有文字说明,取小数点后2位数字。5.编程序:用getchar函数输入两个字符给C1、C2,然后分别用putchar 函数和printf函数输出这两个字符。 四、实验步骤 编写程序,输入数据,观察结果。 五、实验结果 观察结果和预期是否一致。 实验项目:实验二选择结构程序设计

(所属课程:《C 语言程序设计》学时:2) 一、实验目的 1.了解C 语言表示逻辑量的方法(以0代表“假”,以非0代表“真”)。 2.学会正确使用逻辑运算符和逻辑表达式。 3.熟练掌握if 语句和switch 语句 二、实验条件 Pc 和vc++编程环境 三、实验内容 1.有一函数: ?? ???≥-<≤-<=)10x (113x )10x 1(12x )1x (x y 用scanf 函数输入x 的值,求y 值。 运行程序,输入x 的值(分别为x<1、1≤x <10、x ≥10三种情况),检查输出的y 值是否正确。 2.给出一个百分制成绩,要求输出成绩等级A 、B 、C 、D 、E 。90分以上为A ,81~89分为B ,71~79分为C ,61~69分为D ,60分以下为E 。 3.输入4个整数,要求按由小到大顺序输出。 四、实验步骤 编写程序,输入数据,观察结果。 五、实验结果 观察结果和预期是否一致。 实验项目:实验三 循环结构程序设计

简单又漂亮的语文手抄报花边

简单又漂亮的语文手抄报花边 【读书方法:以理解代替记忆】 很多人都知道明白了的课程比较容易记得。但理解其实并不是辅助记忆——理解是记忆的代替。强记理论不仅是很难记得准确:当 需要应用时,强记的理论根本无济于事。明白了理论的基本概念及 含义,你会突然觉得你的记忆力如有神助。道理很简单,明白了的 东西就不用死记。但理论的理解有不同的深度,也有不同的准确性。理解愈深愈准确,记忆就愈清楚,而应用起来就愈能得心应手。所 以读书要贯通——理论上的不同重点的联带关系要明白;要彻底—— 概念或原则的演变要清楚。 要在这些方面有显著的进步易如反掌,而学生也不需多花时间。他只要能改三个坏习惯,一年内就会判若两人。 第一个坏习惯,就是上课时“狂”抄笔记。笔记是次要、甚至是可有可无的。这是因为抄笔记有一个无法补救的缺点——听讲时抄 笔记分心太大!将不明白的东西抄下来,而忽略了要专心理解讲者的 要点,是得不偿失。我肯定这是一般香港学生的坏习惯。例如好几 次我故意将颇明显的错误写在黑板上,200多学生中竟无一人发觉,只知低着头忙将错误抄在笔记上。 笔记有两个用途。①将明白了的内容,笔记要点。但若觉得只记要点都引起分心,就应放弃笔记。明白了讲者的内容是决不会在几 天之内忘记的。很多讲者的资料在书本上可以找到,而在书本上没 有的可在课后补记。老师与书本的主要分别,就是前者是活的,后 者是死的。上课主要是学习老师的思想推理方法。②在上课听不懂的,若见同学太多而不便发问,就可用笔记写下不明之处,于课后

问老师或同学。换言之,用笔记记下不明白的要比记下已明白的重要。 第二个坏习惯,就是将课程内的每个课题分开读,而忽略了课题与课题之间的关系,理解就因此无法融会贯通。为了应付考试,学生将每一个课题分开读,强记,一见试题,不管问甚么,只要是似乎与某课题有关,就大“开水喉”,希望“撞”中——这是第二个坏习惯最明显的例子。 要改这个坏习惯,就要在读完某一个课题,或书中的某一章,或甚至章中可以独立的某一节之后,要花少许时间去细想节与节、章与章、或课题与课题之间的关系。能稍知这些必有的连带关系,理解的增长就一日千里。这是因为在任何一个学术的范围内,人类所知的根本不多。分割开来读,会觉得是多而难记;连贯起来,要知要记的就少得多了,任何学术都是从几个单元的基础互辅而成,然后带动千变万化的应用。学得愈精,所知的就愈基本。若忽略了课题之间的连贯性,就不得其门而入。 第三个坏习惯,主要是指大学生的,就是在选课的时候,只想选较容易的或讲课动听的老师。其实定了某一系之后,选课应以老师学问的渊博为准则,其他一切都不重要。跟一个高手学习,得其十之一、二,远胜跟一个平庸的学得十之八九。这是因为在任何一门学术里面所分开的各种科目,都是殊途同归。理解力的增长是要知其同,而不是要求其异。老师若不是有相当本领,就不能启发学生去找寻不同科目之间的通论。

C程序设计课后习题1-3(答案)

C程序设计课后习题 第一章习题 1.选择题 (1)C语言程序的执行总是从(A)开始。 A.main函数的入口 B.编译预处理命令 C.源程序的第一个函数 D.源程序的第一行语句 (2)在C语言的源程序中,主函数的位置(C)。 A.必须在编译预处理命令的后面 B.必须在源程序的最后 C.任意 D.必须在源程序的开头 (3)下列变量名中合法的是(C)。 A. B.C.Tom B.3a6b C._6a7b D.$ABC (4)下面两对用户定义标识符哪个可读性更强:(C) A.checkquality B.salarytotal C.check_quality C.sal_ary_tot_al (5)C程序是由(D)组成。 A.若干个过程 B.若干子程序 C.一个主程序和若干子程序 D.若干函数 2.填空题 (1)一个函数一般由两部分组成,它们分别是_函数首部______和__函数体____。 (2)编译预处理命令___是_____(填“是”或“不是”)C语

言文本的一部分。 (3)一个C语言程序至少应包含一个__主函数或main()__。 (4)C语言的标准输入函数是_scanf()__,标准输出函数是 ___printf()____。 (5)函数体用___{______符号开始,用_____}______符号结束。 (6)注释的开始和结束标志分别为__/*____和____*/____。为 增强程序的__可读性___,应该为程序写上清晰的注释。 3.编程题:参考本章例题,编写一个C程序,输出以下信息。 ********************** *The data is * * 2005-03-23 * ********************** 程序如下: #include Void main() {printf(“**********************\n”); printf(“*The data is *\n”); printf(“* 2005-03-23 *\n”); printf(“**********************\n”); }

相关文档
最新文档