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
《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 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 第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 单选题 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 语言课后习题答案-第四版- 谭浩强(1-7) 第一章 #include printf("The largest number is %d\n",max); return 0; } 第3 章 #include 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 漂亮的花边 教学目标: 1.能用自己的话描述“什么是花边”,能够回忆起日常生活中见到过的一些花边。 2.使学生掌握剪纸花边图案设计和制作的基本方法和技能。 3.通过本课的学习培养学生的动手操作能力,提高学生美化生活的意识和应用美术的能力。 教学重点: 折剪出二方连续纹样。 教学难点: 设计。 教学准备: 教具:多媒体课件,各种图案的图片。范画,剪刀,彩纸,胶棒,记号笔等。 学具:长条形彩色纸每人1~2张;剪刀;胶水。 教学过程: 一、歌曲激趣,导入新课 音乐《小小雨点》。 让学生跟着节奏一起唱。 师:今天老师给大家带来了一首很好听的歌,同学们在欣赏的同时要思考一个问题:“这首歌曲中重复出现的地方在哪里” 请看大屏幕欣赏:(播放给学生看) 大家可以跟着节奏一起唱。 (因为在这首曲子里面有重复出现的节奏:“小小雨点,小小雨点,沙沙沙沙沙……”让学生指出重复的地方在哪里。) 师:能听出这首歌当中哪里重复吗 来跟音乐一起唱一遍,边唱边考虑一下老师的问题。 生唱。 师:听出来了吗 生:听出了。 这首曲子里面有重复出现的节奏:“小小雨点,小小雨点,沙沙沙沙沙……” 师:同学们说的真好,其实在美术上也有一种重复。 2.出示一个图形。 师:喜欢这个图形吗 生:喜欢。 师:老师手上也有一个这样的图形,请你们仔细看,老师现在要变个小魔术。 再出示这个图形向两边重复延伸的而形成的花边。 师:谁说说现在又有什么变化呢 生:刚才是一个图形,现在变成很多个。 师:同学们观察得真仔细,像这种一个图形向两边重复延伸的,就是花边。 3.出示范画:花边 师:今天老师也给同学们带来了几条花边,你们看,漂亮吗 那好这节课我们就来学习第九课《漂亮的花边》。 板书——漂亮的花边。 二、讲授新课 (一)欣赏图片,寻找 1.让学生寻找花边。 师:其实花边在很早以前就出现了,同学们请看,这就是原始人类用简单的几何图形和简单的纹样来装饰生活中的器物。(课件出示原始时期舞蹈纹彩陶盆,汉代的漆盘,原始社会马家窑文化彩陶瓮,元代青花瓷瓶。)你们看,随着时代的进步,到了元、明、清时期器物上的装饰是不是更加精致了 生:是。 师:图案的设计也变得比较复杂,从这我们可以看出咱们国家自古以来在艺术方面造诣精湛,源远流长,这也是我们中国人的骄傲。(课件出示明清时期瓷器图片) 2.师:在我们现在的生活中的花边除了继承原来精美多样的特点之外,更加追求简洁、大方和色彩搭配的协调性。 师:谁能说说你在平常生活中的哪些地方见到过花边 生1:窗帘,床单 生2:童装店的童上衣 生3:洗手间的毛巾 生4:餐厅的盘子 …… 师小结:看来同学们都是善于观察的好孩子,我们发现有这么多美丽的花边装饰在我们生活中的各个地方,花边确实的使用非常广泛,你们看在服装上、毛巾上、窗帘上及餐具上等等都可以见到。(课件出示家居用品店的窗帘、床单、童装店的童上衣、洗手间的毛巾、餐厅的盘子,让学生观看生活中带有花边装饰图案的物品。) (二)理解概念 老师:刚才同学们看到了那么多的花边,那么,谁能用自己的话说说花边有什么特点 生:一模一样的图形重复排列。 师:他说的真好,鼓励一下。(鼓掌) 对,一模一样的图形重复排列,就形成了花边。(出示动画:一个图形向两边重复延伸,花边)。 师:而花边中重复出现的那个图案就叫“单独纹样”。 “单独纹样”包括很多,如人物,动物,植物及简单的几何图形等等,你可以选择自己喜欢的图形。 师:(出示:上下延伸的花边) 大家看这个与刚才的花边在排列上有什么不同 生:刚才是左右延伸,现在是上下延伸。 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程序设计 实践教学: 属性:实训 时间:学时。 实践教学内容: 实验目的:熟悉运算符、表达式,掌握标准输入输出函数的适用方法和顺序结构程序设计的一般方法。 实验内容和步骤: 1.编程,要求从键盘按规定的格式输入时间(时:分:秒), 并将输入的时间在屏幕上显示出来,存入ex3_1.c文件, 并编译、调试、运行。 #include 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 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程序设计(第四版)(谭浩强)第一章课后习题答案 P006 1.1 向屏幕输出文字. #include int z; //z属于局部变量,可与主函数中相同名字. if (x>y) z=x; else z=y; return(z); //z作为整个程序的出口值,赋给主函数中的c. } #include 第四章 什么是算术运算什么是关系运算什么是逻辑运算 解:略。 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); } 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章答案
C语言程序设计教程第四章练习试题解析[1]
c程序设计(第四版)谭浩强-课后答案.pdf(2)(最新整理)
漂亮的花边(人教新课标)二年级美术下册教案
C程序设计第四版谭浩强完整版课后习题答案
第三章 最简单的c程序设计
C语言程序设计第二版第四章第七章课后答案
C程序设计(第四版)(谭浩强)完整版_课后习题答案
c语言程序设计第四版第四章答案谭浩强
简单的C语言编程题例题
最新C++程序设计基础课后答案--第四章