第一篇:语言作业3
姓
名:____________________
学
号:____________________
得
分:____________________ 教师签名:____________________
学前儿童语言教育作业3
第四章
一、填空题(每空1分,共20分)
1.学前儿童文学作品学习活动主要包括(文学欣赏)和(文学创造_)两种类型。
2.儿童文学创造活动的方法主要有:(复述)、(朗读)、(表演创编)
3.谈话活动的主要类型:(日常生活中的谈话)(有计划的谈话活动)(开放性的讨论活动)
4.谈话情境的创设,常见的主要有三种方式:第一(实物或直观教具创设谈话情境)第二(用语言创设谈话情境)第三(用游戏或表演的形式设谈话情境)
5.讲述活动的语言交流有别有其他类型的语言活动,它要求幼儿使用的是(独白)语言。
6.按讲述对象的特点分类,讲述活动分成(看图讲述)_(实物讲述)(情境表演讲述)三种。
7.讲述活动在设计和实施时的基本步骤是:(感知理解讲述对象)(运用已有经验自由讲述)(引进并学习新的讲述经验)
8.早期阅读环境包括(精神环境)和(物质环境)。
二、判断题(每小题1分,共20分)
(×)1.儿童文学作品是指那些浅显的的诗歌、小说、散文、剧本等。
(√)2.文学作品作为艺术品,首要的是审美价值,其次才是其他的认识价值、娱乐价值等。
(√)3.文学欣赏是通过儿童想象将作品的语言材料转换成他们头脑中的视觉、听觉的表象(画面)的过程。
(×)4.复述和朗诵是背书式的重复,经常进行练习可提高儿童的记忆能力和对语言的直觉敏感性。
(×)5.仿编是通过想象和联想,对原作的某些部分进行扩充。
(×)6.扩编要求幼儿仿照某一篇作品的框架或某一个段落,编出自己的文学作品或段落。
(×)7.在谈话活动中,教师不能忘记自己组织者的身份,要直接对孩子的语言进行指导。
(×)8.教师在创设谈话情境时,应多用摆设,以吸引孩子的注意力,启发引导幼儿进入谈话话题。
(×)9.在谈话活动中,教师要做示范,给幼儿一些提示,及时纠正幼儿说话时用词造句的错误。
(×)10.为更好地掌握谈话技能和规则,在谈话活动中,要让幼儿反复练习某一交往技能,还可以让幼儿将某些交往词语背诵下来。
(×)11.谈话活动要求幼儿使用的是独白语言,是培养锻炼幼儿独白语言的特别途径。
(√)12.“有趣的中心话题”往往包含了三个特性:经验性、新奇性、趣味性。
(√)13.讲述的语言要求比谈话的语言要求高,并且建立在一般交谈的语言基础之上。
(√)14.讲述活动为幼儿提供的是一种相对正式规范的语言运用场合。
(×)15.实物讲述应在熟悉实物的基础上进行,所以教师首先要花大量的时间让幼儿认识实物。
(×)16.听说游戏是由儿童自发组织,教师利用游戏中儿童的兴趣而进行听说教学的游戏。
(×)17.听说游戏主要为了吸引幼儿愉快地参与活动,一般没有明确的语言教育目标。
(√)18.早期阅读活动主要是为学前儿童提供阅读图书的经验,包括早期识字和早期书写经验。
(√))19.早期阅读环境包括精神环境和物质环境两个方面。
(√)20.阅读区具有以下三种功能:提高儿童的阅读水平、为有计划的阅读活动做准备、培养幼儿对图书的兴趣。
三、简答题(每小题5分,共25分)
1.谈话活动有哪些基本特征?
答:(1)谈话活动应拥有一个幼儿感兴趣的话题。
(2)谈话活动注重多方的信息交流。(3)谈话活动拥有宽松自由的交谈气氛。(4)谈话活动中教师起间接指导作用。
2.鼓励幼儿围绕话题自由交谈,有哪几个基本方法可供参考?
答:(1)放手让幼儿围绕话题自由交谈。
(2)鼓励每位幼儿积极参与谈话,真正形成双向或多向的交流。
(3)在自由交谈的活动过程中,适当增加幼儿“动作”的机会。
(4)注意自由交谈中的个别差异。
3.当幼儿进入围绕话题的自由交谈时,教师的职责和任务主要表现在哪些方面?
答:(1)教师必须在场。(2)教师参与谈话。
(3)教师要观察记录幼儿谈话情况,了解他们运用原有谈话经验进行交谈的状态,明了幼儿谈话的水平差异,为下一阶段活动的指导作进一步准备。
4.讲述活动有哪些基本特征?
答:(1)讲述活动需要有一定的讲述对象。(2)讲述活动是培养独白语言的主要途径。(3)讲述活动具有相对正式的语言情境。(4)讲述活动中需要调动幼儿的多种能力。
5.听说游戏活动有哪些基本特征?
答:(1)在游戏中蕴含着语言教育目标。
(2)将语言学习的重点内容转化为一定的游戏规则。
(3)在活动过程中逐步扩大游戏的成分。
四、论述题(共10分)
儿童文学作品学习有哪些基本特征?
答;儿童文学作品作为儿童学习的内容,它具有以下的特征:
(1)围绕文学作品展开学习活动。文学作品是语言艺术的结晶体,每一个具体的儿歌或故事都含有丰富而独特的语言信息。学习理解文学作品是幼儿在活动中的首要任务。文学作品呈现的是书面的语言信息,幼儿需要有一个中介方式将书面语言信息转化为口头语言信息,需要通过聆听、诵读、阅读图画,观看动画等方式接受理解文学作品所传递出的信息。因此,任何一个文学活动都必须从文学教育入手,围绕一个具体的作品开展活动,让幼儿完全理解文学作品含载的丰富有趣的信息。
(2)包含感受、理解与表现的审美目标。文学作品作为艺术品,首要的是审美价值,其次才是其他的认识价值和娱乐价值等。文学作品学习活动的主要目标应是培养儿童审美能力和文学理解能力、想象力,而不仅仅是达成知识和道德的教育目标。文学作品学习活动是一个包含感受美、理解美、表现美以及表达自己对文学作品的理解和想象的系列多层次审美教育活动。
(3)整合相关的学习内容。幼儿园的文学活动从文学作品教学出发,常常整合与其相关的其他学科内容的活动,使得幼儿有更多的机会认识某一个文学作品中表现的社会与自然生活内容,促进他们对作品的感知理解。文学作品是社会知识、认知知识和语言知识的结合物,在设计组织文学活动时,根据具体的文学作品整合相关学习内容,就为幼儿提供了在这三方面协调扩充经验的机会,帮助幼儿完成整个语言学习的调整。
(4)提供多种与文学作品相互作用的途径。发展是儿童自身的操作活动与外界环境相互作用而建构起来的。儿童的语言发展,也是通过个体与外界环境中各种语言和非语言信息交互作用逐步实现的。幼儿园的文学活动,应当着重引导幼儿积极地与文学作品相互作用,通过多种操作途径让幼儿得到发展。用活动的形式来组织幼儿文学作品教学过程,意味着幼儿可以在动手、动嘴、动眼、动耳、动脑等各种途径学习中获得亲身经验。
五、根据所给的材料设计活动方案(共25分)
设计要求:1.设计应符合语言教育目标和幼儿年龄发展特点;2.任意选择一种活动类型设计相应的活动方案,可提炼“材料2”主题设计谈话活动或听说游戏方案,可围绕“材料2”设计讲述活动、文学作品学习活动或早期阅读活动方案;3.方案结构完整,包含活动目标、活动准备、活动过程等内容;4.按照活动设计与实施的步骤列出活动过程每一环节的要点。
材料1:中班幼儿语言教育目标中班幼儿语言教育目标
谈话活动:能集中注意力,耐心倾听别人谈话,不打断别人的话;乐意与同伴交流,能大方地在集体面前说话;能说普通话,较连贯地表达自己的意思;学会围绕一定的话题谈话,不跑题;学会用轮流的方式谈话,不抢着讲,不乱插嘴;继续学习交往语言,提高语言交往能力。
讲述活动:养成先仔细观察,后表达讲述的习惯;逐步学会理解图片和情景中展示的事件顺序;能主动地在集体面前讲述,声音响亮,句式完整;学习按照一定的顺序讲述实物、图片和情景的内容;能积极地倾听别人的讲述内容,发现异同,并从中学习好的讲述方法。
听说游戏:在游戏中巩固练习发音,正确运用代词、方位词、副词、动词、连词和介词等;能说简单而完整的合成句;能听懂并理解多重游戏规则;学习较迅速地领悟游戏中的语言规则,并能及时作出相应的反应。
文学作品学习活动:喜欢不同形式的文学作品,主动积极地参加文学活动;知道文学作品语言与日常生活语言的不同,进一步感受文学作品的语言美;学习理解文学作品的人物形象,感受作品的情感基调,能运用较恰当的语言、动作、绘画形式表现自己的理解;能根据文学作品提供的线索,扩展想象,仿编或续编一个情节或一个画面。
早期阅读:能仔细观察图画书画面的人物情节、看懂单页多幅的儿童图画书的内容,增强预知故事情节发展和结局的能力;懂得爱护图书,知道图书的构成,有兴趣模仿制作图画书;在阅读过程中初步了解汉字的由来和汉字认读的规律,并有主动探索汉字的愿望;喜欢描画图形,尝试用有趣的方式练习汉字的笔画。
材料2:小熊冒泡泡
小熊吉米嘴又馋了,他打开冰箱吃了起来,一会儿就吃了许多零食。
吉米口渴了,他在冰箱里发现了很多瓶“超级汽水”。
一打开瓶子,汽水里就有很多很多泡泡冒了出来。吉米从来没喝过这样的汽水,一下子喝了好多瓶。
喝了“超级汽水”,吉米肚子里全是泡泡,他像大气球一样飘起来。
吉米从厨房飘到大厅,又飘上了楼梯。坏啦!窗户没关上,眼看就要飘出去了,吉米急得眼泪都快流出来了。
突然,吉米打了个嗝,肚子里的气泡从嘴里冒出来了,他不再往上升了。“嗝嗝„„”他又打了好几个嗝,肚子里的泡泡都冒出来了。吉米慢慢地往下降,又落到了地上。
从那以后,吉米再也不敢一下子喝那么多“汽水”了。
答题要求:1.设计应符合语言教育目标和幼儿年龄发展特点;2.活动类型应为文学作品学习、讲述活动、谈话活动、听说游戏活动、早期阅读活动中的一种;3.方案结构完整,包含活动目标、活动准备、活动过程等内容;4.按照活动设计与实施的步骤(见所附材料)列出活动过程每一环节的要点。
附:活动过程一般步骤
文学作品学习设计与实施的步骤:1.初步感知文学作品;2.理解体验作品经验;3.迁移作品经验;4.创造性想象和语言表述。
讲述活动设计与实施的步骤:1.感知理解讲述对象;2.运用已有经验自由讲述;3.引进并学习新的讲述经验。
谈话活动设计与实施的步骤:1.创设谈话情境,引出谈话话题;2.鼓励幼儿围绕话题自由交谈;3.引导幼儿围绕中心话题逐步拓展交谈内容;4.教师隐性示范新的谈话经验。
听说游戏活动设计与实施的步骤:1.创设游戏情景,引发幼儿兴趣;2.交待游戏规则,明确游戏玩法;3.教师指导幼儿游戏;4.幼儿自主游戏。
早期阅读活动设计与实施的步骤:1.幼儿自己阅读;2.师幼共同阅读;3.围绕阅读重点开展活动;4.归纳阅读内容。
第二篇:C语言作业
Problem B: 算术基本运算 Description 计算两整数x和y(0 printf(”x * y : %dn“,x*y); printf(”x / y quotient: %d, remainder: %dn“,x/y,x%y); printf(”x ^ 2 : %dn“,x*x); printf(”y ^ 3 : %dn“,y*y*y); return 0;} Problem C: 求圆的面积和周长 Description 从键盘输入圆的半径,求圆的面积和周长,圆周率取3.14。Input 输入一个浮点型数据,有效数字不会超过十进制的6位。Output 输出为两行。 第一行为圆的面积,第二行为圆的周长,格式见sample。Sample Input Sample Output Area: 28.260000 Perimeter: 18.840000 HINT 了解浮点类型的输入、输出和算术运算符 #include double Area,Perimeter,r,p=3.14; scanf(”%lf“,&r); Area=p*r*r,Perimeter=2*p*r; printf(”Area: %lfn“,Area); printf(”Perimeter: %lfn“,Perimeter); return 0;} Problem D:平均值 Description 求3个数的平均值。Input 输入只有一行,为3个较小的整数。Output 输出为这3个整数的平均值,保留3位小数。Sample Input 1 2 3 Sample Output 2.000 HINT 注意除法运算对整型数据和浮点型数据是不一样的。#include int x,y,z; float ave; scanf(”%d %d %d“,&x,&y,&z); ave=(x+y+z)/3.0; printf(”%.3f“,ave); return 0;} Problem E: 货币兑换 Description 给出人民币对美元、欧元、日元的当日汇率,求给定金额的人民币能兑换成外币的金额,求给定金额的外币能兑换成人民币的金额。要计算的外币有三种:美元、欧元、日元。Input 输入有三行。 第一行依次为美元、欧元、日元外币汇率,用空格分开。汇率用100外币为单位,精确到小数点后4位,如668.5200表示“100美元=668.5200人民币”。汇率浮动范围为(0,10000)。 第二行为外币金额x,第三行为人民币金额y。x,y均为整数,且0 第一行为金额为x的美元、欧元、日元兑换成人民币的金额,用空格分开。第二行为金额为y的人民币兑换成美元、欧元、日元的金额,用空格分开。所有金额精确到小数点后两位。Sample Input 668.5200 908.0685 7.9852 1500 1500 Sample Output 10027.80 13621.03 119.78 224.38 165.19 18784.75 HINT 了解浮点数据类型的精确度和输出控制。 #include return 0; } Problem F: 求字符的值 Description 从键盘输入3个字符(不含双字节字符),分别输出每个字符的十进制值(ASCII码)、八进制值和十六进制值。Input 输入为3个字符。Output 输出为3行。 每一行为每个字符(对应输入顺序)的十进制、八进制和十六进制值,用空格分隔开。每个输出的值占3个字符,不足3个字符前面补0。Sample Input 0 A Sample Output 048 060 030 032 040 020 065 101 041 HINT 了解字符值的存储和整型的关系。#include Problem G: 奇数还是偶数? Description 输入一个整数,判读它是奇数还是偶数。Input 输入只有一行,为一个100以内的正整数。Output 输出为一行。 若输入为偶数则输出“even”,奇数输出“odd”。Sample Input 30 Sample Output even HINT 用整数运算可以解决,练习“?:”表达式。#include int x; scanf(”%d“,&x); if(x%2==0) printf(”even“); else printf(”odd“); return 0;} Problem H: 绝对值 Description 求整型数据和浮点型数据的绝对值。Input 输入两个数,第一个是整数,第二个是浮点数。Output 输出为两行,第一行为整数的绝对值,第二行为浮点数的绝对值,注意浮点数的绝对值不输出无意义的0。Sample Input-1 1 Sample Output 1 1 HINT 求绝对值可以用标准库函数来完成,也可以自己判断。注意浮点数的输出格式。求绝对值的函数在哪个头文件?貌似很多人会搞错,包括很多编书的人!#include int x; float y; scanf(”%d“,&x); scanf(”%f“,&y); printf(”%dn“,abs(x)); printf(”%gn“,fabs(y)); return 0;} Problem I: 简单的打折计算 Description 商店规定:消费满n元,可以打八八折。设某件商品标价m元,输入购买的件数x,计算出需要支付的金额(单位:元),精确到分。Input 输入只有一行,三个整数m、n和x,且0 300 4 Sample Output 334.40 HINT 了解浮点型的输出控制,注意整型和浮点型混合运算过程中的数据类型转换。#include int m,n,x; double y; scanf(”%d%d%d“,&m,&n,&x); y=m*x; if(y>n) y=y*0.88; else y=y; printf(”%.2lfn“,y); return 0;} Description 输入一个正整数的年份,判断是否为闰年。Input 输入只有一行,为一个10000以内的正整数。Output 输出为一行。 若输入为闰年偶数则输出“Yes”,否则输出“No”。Sample Input 2010 Sample Output No HINT 了解逻辑运算符和关系运算符。#include int a; scanf(”%d“,&a); if(a%4==0&&a%100!=0||a%400==0) printf(”Yes“); else printf(”No“); return 0;} Problem K: GHacker的解谜过关游戏 Description GHacker最近痴迷于一个新上市的解谜游戏,其中一关的过关是破解一个字符串S。经过3天的冥思苦想,GHacker成功的搞明白了这其中的奥秘,把串S中的整数取出来求和,就可以过关了。但是GHacker的数学实在糟糕。他无法在短暂的时间内算出来,只好求助Jackie。Jackie观察到虽然每次出现的数字不同,但是其它的符号并不会变化。于是Jackie编写了一个非常短的程序,帮助GHacker把这一关过了。Input 输入为串S,只有一行。Output 串S中用非数字(0~9)分隔开的非负整数之和,不会超出int类型的数据范围。Sample Input `13?:[7514],54.487==”(438922x159??392)%032n111cdef120$95;Sample Output 447899 HINT scanf()可以解决这个问题,注意转义字符和格式控制字符。#include int i,sum,num; char str[1000]; while(scanf(“%s”,str)!=EOF) { num=sum=0; for(i=0;;i++) { if(str[i]>='0' && str[i]<='9') num=num*10+str[i]-'0'; else { sum=sum+num;num=0; if(str[i]==' ')break; } } printf(“%dn”,sum); } return 0;} Problem L: 水仙花数 Description 如果一个三位十进制数等于其各位数字的立方和,则称这个数为水仙花数。如:13+53+33=153。Input 一个整数x,100<=x<=999。Output x是水仙花数,则输出“YES”,否则为“NO”。Sample Input 153 Sample Output YES #include int x,a,b,c,sum; scanf(“%d”,&x); a=x/100; b=(x-a*100)/10; c=(x-a*100-b*10); sum=a*a*a+b*b*b+c*c*c; if(x==sum) printf(“YES”); else printf(“NO”); return 0;} Problem M: 求1+2+...+n=? Description 给定一个n,求出s = 1+2+3+...+n的值。Input 输入只有一行,包含一个正整数n(n<=232)。Output 输出一行,为1+2+...+n的值。Sample Input 10 Sample Output 55 HINT n的数据范围大,需注意数据类型的选择和计算次序,以避免数据溢出。#include unsigned long long n,s,a; scanf(“%llu”,&n); a=n%2; if(a==0){ s=n/2*(n+1); printf(“%llu”,s);} else if(a!=0) {s=n*((n+1)/2);printf(“%llu”,s);} return 0;} Problem N: 2的多少次幂 Description 从键盘输入一个数x,x是2的整数次幂(x=2y),请编程求出y的值。Input 一个非负有理数x,x在[0,2256]范围内。Output 一个整数y。Sample Input 1 Sample Output 0 HINT 看起来数据很大,但是用double完全可以存储。为什么?请研究下IEEE-754标准的浮点数存储格式。这里要用到C语言标准库的数学函数。#include double x; scanf(“%lf”,&x); printf(“%g”,log2(x)); return 0;} Problem A: 哪一行比较长 Description 读取两行字符串,按每行的长度从长到短输出。Input 输入为两行,每行不会超过26个字符。Output 输出为两行,按每行的长度从长到短输出。Sample Input abcdefghijk abcdefghijklmnopqrstuvwxyz Sample Output abcdefghijklmnopqrstuvwxyz abcdefghijk HINT 了解字符串的存储和操作,了解gets()和scanf(“%s”)读入字符串的不同之处。#include puts(a); puts(b); return 0; } puts(b);puts(a);} Problem B: 三个数比较大小 Description 从键盘上输入0~100之间的三个数,按从小到大的顺序输出。 Input 输入只有一行,为三个整数。 Output 按从小到大输出这三个数。 Sample Input 15 10 20 Sample Output 10 15 20 HINT 用if语句判断各种情况可以解决这个问题。 include scanf(“%d%d%d”,&a,&b,&c);if(a>b){ t=a; a=b; b=t; } if(a>c) { t=a; a=c; c=t; } if(b>c){ t=b; b=c; c=t;} printf(“%d %d %dn”,a,b,c);return 0;} Problem C: 输出是m的倍数或n的倍数、但不是m和n的公倍数的数 Description 输出1~k之间是m的倍数或n的倍数、但不是m和n的公倍数的数,其中1<=m,n Input 输入三个整数,依次为k、m、n。 Output 从小到大输出符合题意的所有整数,两数之间用一个空格分开。 Sample Input 15 2 3 Sample Output 2 3 4 8 9 10 14 15 HINT 难点在于输出格式的控制:空格在数的中间,学会用循环时边界情况的特殊处理。 #include { int k,m,n,a; scanf(“%d%d%d”,&k,&m,&n); { if(m>n) { printf(“%d”,n); for(a=n+1;a<=k;a++) { if((a%m==0&&a%n!=0)||(a%m!=0&&a%n==0)) printf(“ %d”,a);} } else { printf(“%d”,m); for(a=m+1;a<=k;a++) { if((a%m==0&&a%n!=0)||(a%m!=0&&a%n==0)) printf(“ %d”,a);} } } return 0;} Problem D: A+B Problem Description 计算a+b,0<=a,b<1000。Input 输入有多对整数a和b组成,每对a和b占一行,a,b用空格分开。Output 每行输出一个a+b的值,顺序与输入对应。Sample Input 1 2 10 20 Sample Output 3 30 HINT OJ系统上测试输入结束符为EOF(End Of File),其值为-1。用scanf()把文件所有内容读完后,会读到EOF,所以可以用来判断输入是否完成,测试时可以用Ctrl+Z产生EOF。本题解法参看FAQ。#include int a,b; while(scanf(“%d %dn”,&a,&b)!=EOF) printf(“%dn”,a+b);} Problem E: A+B Problem(II): Input/Output Pratice Description 计算a+b,0<=a,b<1000。 Input 输入的第一行是一个整数N,后面有N对整数a和b,每对a和b占一行,a,b用空格分开。 Output 每行输出一个a+b的和,顺序与输入对应。 Sample Input 2 1 2 10 20 Sample Output 3 30 HINT N给出了测试样例数,用for循环处理方便。 #include scanf(“%d %d”,&a,&b); printf(“%dn”,a+b);} return 0;} Problem F: A+B Problem(III): Input/Output Pratice Description 计算a+b,0<=a,b<1000。 Input 输入有多对整数a和b组成,每对a和b占一行,a,b用空格分开。当测试样为0 0时表示输入结束,0 0不参与运算。 Output 每行输出一个a+b的值,顺序与输入对应。 Sample Input 1 2 10 20 0 0 Sample Output 3 30 HINT 练习break的使用。 #include int a,b; while(scanf(“%d%d”,&a,&b)) { if(a==0&&b==0) break; printf(“%dn”,a+b); } } Problem G: A+B Problem(IV): Input/Output Pratice Description 计算a+b,0<=a,b<1000。 Input 输入有多对整数a和b组成,每对a和b占一行,a,b用空格分开。 Output 每行输出一个a+b的值,顺序与输入对应。每个格式样例之间用一个空行分隔开。 Sample Input 1 2 10 20 35 Sample Output 3 30 50 HINT 由于输出的和比空行多一个,所以全部计算放在一个循环里是不行的,必须要特殊处理开头或者结尾。#include int a,b,i; scanf(“%d %d”,&a,&b); printf(“%dn”,a+b); while(scanf(“%d %d”,&a,&b)!=EOF) printf(“n%dn”,a+b);} Problem H: n个数的最大值和最小值 Description 找出n个数中最大的数和最小的数,并将它们的值输出出来。 Input 输入为n+1个整数,都在int类型范围内。这些数可能用若干空格或者换行符分隔开。 输入的第1个数为n,表示后续有n个数输入。从输入的第2个数开始,求出直到第n+1个数中最大的数和最小的数。 Output 输出为两行,格式见sample。 Sample Input 3 0 1-1 Sample Output The maximum number is 1.The minimum number is-1.HINT 分隔符是空格还是回车都是空白符,对scanf(“%d”)来说没有区别;先读入n,然后用for循环就很容易控制读入n个数的过程。 #include scanf(“%d”,&y); if(min>y) min=y; if(max max=y;} printf(“The maximum number is %d.n”,max);printf(“The minimum number is %d.n”,min);return 0;} Problem I: 成绩的等级 Description 把百分制的考试成绩转换成五级制的成绩: 90~100:Excellent 80~89:Good 70~79:Average 60~69:Pass 0~59:Failing 不在0~100之间的输入是非法数据,输出“Error”。 Input 输入多行,每行一个整数。 Output 输入所对应的成绩等级。 Sample Input-1 81 92 35 68 72 100 Sample Output Error Good Excellent Failing Pass Average Excellent HINT 用switch语句解决这个问题比较方便。 #include int a,grade; while(scanf(“%d”,&grade)!=EOF) { if(grade>=0 && grade<=59) a=1; else if(grade>=60 && grade<=69) a=2; else if(grade>=70 && grade<=79) a=3; else if(grade>=80 && grade<=89) a=4; else if(grade>=90 && grade<=100) a=5; else a=6; switch(a) { case 1: printf(“Failingn”); break; case 2: printf(“Passn”); break; case 3: printf(“Averagen”); break; case 4: printf(“Goodn”); break; case 5: printf(“Excellentn”); break; case 6: printf(“Errorn”); break; } } return 0;} Problem J: 只有一个二元运算符的表达式运算 Description 编程序读入并计算只有一个二元运算符的表达式的值。用到的二元运算符有:“+”、“-”、“*”、“/”、“%”,与C语言的语法一致。 Input 每行输入一个表达式,格式为:二个整型的操作数a和b,中间用一个符号分开,这个符号就是运算符。测试样例不存在除数为0的情况。 输入以a和b为0,且用一个空格分开结束。 Output 每行对应输入的运算符为“+”、“-”、“*”、“/”、“%”,则计算a+b、a-b、a*b、a/b、a%b的值;否则输出“invalid op”。 Sample Input 33+5 8*9 2.2 1-6 17/3 9%3 0 0 Sample Output 38 72 invalid op-5 5 0 HINT 教材上有非常相似的例题可以参考。 #include int a, b; char ch; while(scanf(“%d%c%d”, &a, &ch, &b)) { if(a == 0 && b == 0 && ch == ' ')break; if (ch == '+')ch = '+'; else if(ch == '-')ch = '-'; else if(ch == '*')ch = '*'; else if(ch == '/')ch = '/'; else if(ch == '%')ch = '%'; else ch = '~'; switch(ch) { case '+' : printf(“%dn”, a + b); break; case '-' : printf(“%dn”, a2x + 1 = 0 only one real root : 1 Case 3 : 5x^22x = 0 two real roots : 0, 0.666667 Case 5 : 3x^2 + 12 = 0 two imaginary roots : 2i,-2i Case 6 : 2x^2 + 4x + 4 = 0 two imaginary roots :-1+i,-1-i HINT 输出方程格式的各种情况要想清楚,这一部分测试数据给的很全面。另一个就是浮点数的精度控制,这一部分sample给出了例子。 值得注意的是,linux下gcc编译的浮点数运算结果有-0,这是OJ系统Judge端使用的系统;而windows XP下的minGW编译器和VC6不会产生-0,只会输出0;但windows 7下的minGW编译器是能够产生-0的(确实很诡异)。因此使用windows XP的同学忽略了对结果为0的检测,程序需要对结果为0的情况进行全面考虑,确保正确的输出0。这个问题卡了好些同学好几天。 关于是否会产生-0,输出表达式0.0/-1的结果就能测试出来。浮点数从负数方向运算出结果为0,则浮点值为-0是符合C语言浮点数运算规则的,目前尚不清楚windows XP系统不能产生-0的原因。 #include int i,n=1; double a,b,c,x1,x2,p,q,m,t; char x,y; while(1) { scanf(“%lf”,&a); if(fabs(a)< eps) break; //结束条件 scanf(“%lf%lf”,&b,&c); p=(-b)/(2*a); q=b*b-4*a*c; if(fabs(q)< eps) //精度控制 q = 0; m=(sqrt(-q))/(2*a); x1 =(-b + sqrt(q))/(2*a); x2 =(-bxx-y; if(a * x + b * y +(c * 1.0)/(d * 1.0)* z == m) printf(“%ld,%ld,%ldn”,x,y,z); } } printf(“n”); } } return 0;} Problem I: 神棍的纯真愿望 Description 问题背景: 神棍队的神棍童鞋很喜欢和女盆友逛街。神棍节这天,他们照例去逛街,亲昵过程中忽然发现路边上围了好一圈人。好奇心大盛的神棍于是凑过去围观。原来那里有一个棍神,他出了一道题目,如果有人能够答对的话,他就会实现那个人的一个愿望。神棍心想,有个女盆友多么幸福,要是大家都有女盆友该有多好。于是神棍想要答出这个问题,然后许一个让大家都可以很快拥有自己的女盆友的愿望,顺便在女盆友的面前臭美一番。神棍扫了一眼题目,拿出贴身小电脑,巴拉巴拉几下就敲出了代码,解决了那个问题。大家都在为神棍欢呼。这是什么问题 呢?你是否也有兴趣看看?如果AC了的话就可以跟魔法少女签订契约,成为魔法少女的奴隶喔! 问题描述: 某个数的立方如果以111结尾的话,我们就称其为“神棍数”,现在要你求第k大的“神棍数”是多少。 Input 多组case,以EOF结尾。 每个case一行,只包含一个整数k(1<=k<=***0000)。 Output 一个整数表示第k大的“神棍数” Sample Input 1 Sample Output 471 #include unsigned long long k; while(scanf(“%llu”,&k)!=EOF) { if(k>1) printf(“%llu471n”,k-1); else printf(“471n”,k); } return 0;} Problem J: 魔方阵 Description 所谓N阶魔方阵,是一个N*N的方阵,其元素由1到N^2组成,且方阵每行每列以及对角线的元素和相等。如三阶魔方阵: 8 1 6 3 5 7 4 9 2 魔方阵的规律如下: 从1~N*N的 各个数依次如下规则存放: (1)1在第一行中间一列; (2)每一个数存放的行比前一个数的行数减一,列数加一(如上的三阶方阵5在4的上一行,后一列); (3)如果上一个数在第一行,则下一个数在最后一行,列数加一; (4)如果上一个数在最后一列,则下一个数在第一列,行数减一; (5)如果按上述规则确定的位置已经有数,或上一个数在第一行第N列,则下一个数放在上一个数的正下方。 Input 输入包含多组数据,每组为一个小于100的正奇数。 Output 对于每个输入的N,输出N阶魔方阵;两组数据之间用一个空行分隔。方阵中每行每两个数之间有一个空格,行首和行末没有多余的空格。 Sample Input 3 Sample Output 8 1 6 3 5 7 4 9 2 HINT #include int i, j, k, n, a[200][200]; while(scanf(“%d”, &n)!=EOF) { for(i = 1;i <= n;i++) for(j = 1;j <= n;j++) a[i][j] = 0; j = n / 2 + 1; a[1][j] = 1; for(k = 2;k <= n * n;k++) { i=i-1; j=j+1; if(i < 1 && j > n) { i=i+2; j=j-1; } else { if(i < 1)i = n; if(j > n)j = 1; } if(a[i][j] == 0)a[i][j] = k; else { j=j-1; i=i+2; a[i][j] = k; } } for(i = 1;i <= n;i++) { printf(“%d”, a[i][1]); for(j = 2;j <= n;j++) printf(“ %d”, a[i][j]); printf(“n”); //for(j=1;j<=n;j++) //printf(“%5d”,a[i][j]); //printf(“n”); } printf(“n”); } return 0;} 5.9 判断素数 从键盘上输入一个大于或等于2的正整数n,判断它是否是素数。n从键盘输入。提示:素数定义:只能被1或它本身整除的正整数为素数,例如:2,3,5,7,11,13 且1不是素数。解题思路:、让 n 被 i 整除(i 的值从 2 变到 n-1)2、如果 n 能被 2 ~(n-1)之中任何一个整数整除,则表示 n 肯定不是素数,不必再继续被后面的整数除,因此,可以提前结束循环。注意:此时 i 的值必然小于 n。 1.2.3.4.5.6.7.8.9.10.11.12.13.#include for(i=2;i<=a;i++){ if(a%i==0) break;} if(i else printf(“是素数n”);return 0;} 5.7 统计个数 n 从键盘输入,统计在 [1,n] 中,有多少个是 7 的倍数或末尾是 7 的数。例如输入 20,在 [1,20] 中满足条件的数(7,14,17)共有 3 个。 1.2.3.4.5.6.7.8.9.10.#include for(i=1;i<=a;i++){ if(i%7==0||i%10==7)b=b+1;} printf(“%d个n”,b); return 0;} 5.12 老鼠咬坏的账本 老鼠咬坏了帐本,式中符号□是被老鼠咬掉的地方。要恢复下面的等式,应在2个□中分别填上一个数字,编程输出这2个数,2数间用逗号隔开,如3,5。3□×6237=□3×3564 提示:用穷举法 1.2.3.4.5.#include } } return 0;} 5.10 第n个闰年 编程找出自1601开始到2015年之间的第n个闰年并输出是哪一年,n从键盘输入。闰年条件:四年一闰,百年不闰;四百年又闰。 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.#include for(i=1601;i<=2015;i++){ if((i%4==0&&i%100!=0)||(i%400==0))c=c+1;if(a==c){ break;} } printf(“第%d个闰年是%dn”,a,i); return 0;} 5.13 满足条件的三角形 直角三角形一条直角边长是24,其余的边长都是正整数,而且斜边的长度不超过50。输出出所有满足条件的三角形。 1.2.3.4.5.6.7.8.9.10.11.12.13.#include { printf(“24,%d,%dn”,a,i);} } } return 0;14.} 5.14 多个数输出控制 输出 1-35 之间的偶数,每行输出 4 项,最后一行输出时若不足 4 项也按一行输出, 并且统计偶数的个数。 1.#include 7.if(b%4==0)printf(“n”);8.} 9.if(b%4!=0)printf(“n”); 10.printf(“偶数的个数为%dn”,b);11.return 0;12.} 5.15 图案输出 编程输出由星号组成的图形: * * * * * * * * * * * * * * * 1.2.3.4.5.6.7.8.9.10.11.12.#include printf(“n”);} return 0;} 6.1 统计区间的奇数个数 n从键盘输入,统计区间[20,n)内的大于26的奇数的个数并输出。 1.2.3.4.5.6.7.#include if(m>26){ for(i=27;i<=m;i++){ if(i%2!=0)8.9.10.11.12.13.14.a=a+1;} printf(“奇数的数量=%d个n”,a);} else if(20<=m<=26)printf(“奇数的数量=0个n”); return 0;} 6.2 发票的编码 有一张发票上有一个5位数的号码67口口8,其中百位和十位上的数字看不清了,但知道该数能够被78整除,也能被67整除。编程输出该号码。提示:用穷举法 1.2.3.4.5.6.7.8.9.10.11.12.#include return 0;} 6.3 正负交替的多项式求和 计算S=-1/1+1/2-1/3+1/4„+1/n,其中 n 从键盘输入,结果保留3位小数。提示: 从 1+2+3+...+ n 可以变换出各种多项式的求和。 1.2.3.4.5.6.7.8.9.10.11.12.13.#include {float m,i,c,a=0,b=0;scanf(“%f”,&c); for(i=1;i<=c;i=i+2){ a=a-1.0/i;} for(m=2;m<=c;m=m+2){ b=b+1.0/m;} printf(“%.3fn”,a+b);return 0;} 6.4 统计大写字母的个数 从键盘输入12个字符,输出其中大写字母的个数。 1.2.#include for(i=1;i<=12;i=i+1){ scanf(“%c”,&a);if(a<='Z'&&a>='A')m=m+1;} printf(“%dn”,m);return 0;} 6.5 正整数的位数 2016.3.30 模块考试原题: 从键盘上输入一个正整数,输出该数的位数。 例如:输入 1234,输出 4 位数;输入 123456,输出 6 位数。提示:考点:模(求余)运算,循环 假设该正整数(不包括0)放在a中,重复a=a/10,直到a为0为止。每除一次计数一次,因为不能确定循环的次数,while 循环是首选。例如三位数:123/10=12,12/10=1,1/10=0 1.2.3.4.5.6.7.8.9.10.11.#include 2016.3.30 模块考试原题: 输入一个字符,判断并输出其为大写或小写。 1.2.3.4.5.6.7.8.9.10.11.#include scanf(“%c”,&i);if(i>='A'&&i<='Z')printf(“大写n”);else if(i>='a'&&i<='z')printf(“小写n”);return 0;} 6.9 最后1 项为特别小的数的多项式之和 计算 1/1+1/3+1/5+„, 直到最后 1 项的值小于 10-6 为止, 多项式累加和保留2位小数。提示: (1)第 1 项 =1,第二项 =1/3,第三项 =1/5......每一项的值越来越小,小于 10-6 的是哪一项呢? (2)10-6 在程序中的表示方式: 0.000001 或者 1e-6 1.2.3.4.5.6.7.8.9.10.11.12.#include while((1.0/a)>0.000001){ b=b+1.0/a;a=a+2;} printf(“%.2fn”,b); return 0;} 6.10 最大值的位置 从键盘上输入8个数,输出最大数是第几个输入的。 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.#include } printf(“最大数在第%d位置n”,c);return 0;} 6.11 区间输出 m、n从键盘输入,将区间[m,n)内的不能被3整除的数输出。 1.2.3.4.5.#include for(i=a;i if(i%3!=0)printf(“%d,”,i);} printf(“n”);return 0;} 6.14 统计及格人数 从键盘输入10个学生的成绩,要求统计及格人数并输出。 1.2.3.4.5.6.7.8.9.10.#include return 0;} 6.16 寻找玫瑰花(单重循环) 如果一个 4 位数等于它的各位数字的 4 次方和,则这个4 位数称为“玫瑰花”数,例如 1634 就是一个玫瑰花数。要求用单重循环完成,即不使用穷举法,求出所有玫瑰花数。 1.2.3.4.5.6.7.8.9.10.11.12.13.14.#include if(b*b*b*b+i*i*i*i+d*d*d*d+r*r*r*r==a)printf(“%dn”,a);} return 0;} 6.17 鸡兔同笼问题之二 设在一只笼子里关着鸡和兔子共m只,笼子中的脚数有n,求鸡和兔各有多少只? m和n从键盘输入。 编程思路:穷举法。 1.2.3.#include if((a%2!=0)&&(b%2!=0))printf(“无此结果n”);else for(i=1;i<=a;i++){ for(d=1;d<=a;d++){ if((i+d==a)&&(2*i+4*d==b))printf(“鸡=%d,兔=%dn”,i,d);} } return 0;} 6.18 小写字符转换成大写输出 2016.3.30 模块考试原题: 连续输入15个小写字符,将他们转换成大写字符并输出。 小写转大写:字符-32 考点:字符输入输出,循环 1.2.3.4.5.6.7.8.9.10.#include printf(“%cn”,a);} return 0;} 7.2 [n-200]区间满足条件的个数 n, k 从键盘上输入, 输出 [n-200] 间所有末位是k或者能被k整除的数的个数。 1.2.3.4.5.6.7.8.9.10.11.#include for(b=m;b<=200;b++){ if(b%n==0||b%10==n)a=a+1;} printf(“%dn”,a);return 0;} 7.3 100匹马运100担货 匹马驮 100 担货,大马一匹驮3担,中马一匹驮 2 担,小马两匹驮1担,编写程序计算大 中 小马的个数,以例如 20,0,80 格式输出。1.2.3.4.5.6.7.8.9.10.11.12.13.#include if((b+m+n==100)&&(3*m+2*n+b*0.5==100))printf(“%d,%d,%dn”,m,n,b);} } return 0;} 7.4 数之和 输出两位数中不能被 4 或 5 整除的数之和。 1.2.3.4.5.6.7.8.9.10.#include return 0;} 7.5 聚餐问题 现有30人聚餐,其中可能有男人、女人和小孩,吃饭餐费共500元。每个男人30元,每个女人20元,每个小孩10元。问男人女人小孩各多少人? 输出每种可能,如男人0人、女人20人、小孩10人,则输出0,20,10↵ 1.2.3.4.5.6.7.8.9.10.11.12.13.#include if((b+m+n==30)&&(30*m+20*n+b*10==500))printf(“%d,%d,%dn”,m,n,b);} } return 0;} 7.6 数组元素的输入输出 从键盘依次输入10个整数,按输入顺序的相反顺序(即逆序)进行输出。提示: (1)首先打消想定义 a、b、c、d、e、f、g、h、i、j 的想法。(2)学会数组的声明、数组元素的输入和输出。 1.2.3.4.5.6.7.8.9.10.11.12.#include printf(“n”); return 0;} 7.12 输出最小数及其所对应的下标 从键盘上输入10个整数,编程输出其中最小的数以及其所对应的下标。要求用数组实现。提示:例如 89、23、44、55、77、11、34、20、35、30,这十个数中最小值为11,它在数组中的下标为 5。(1)第一段循环:给数组元素赋值; (2)假定 最小值= 第一个数组元素,最小值的下标= 第一个数组元素的下标;(3)第二段循环:最小值和后面的 9 个数组元素比较;(4)输出结果; 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.#include { int b,a[10],m=0,c=0;for(b=0;b<=9;b++){ scanf(“%d”,&a[b]);} m=a[0]; for(b=0;b<=9;b++) { if(a[b] return 0;} 7.13 查找数 已知数学集合A为{1,3,5,9,11,13,15,19,23,25}, 从键盘上输入一个自然数 n,若n在集合A中,则输出 n 在集合中的所处的位置,例如:输入 5,则输出其在集合中的 位置=3 ;输入 10,输出“无此数”。提示: (1)本题涉及的的位置 = 数组元素的下标 +1 ; (2)使用数组存储集合A,然后顺序遍历整个数组,如果找到(与n相等),即退出(break)并输出位置,如果没有找到,输出无此数。 1.2.3.4.5.6.7.8.9.10.11.12.13.#include { int b,a[10]={1,3,5,9,11,13,15,19,23,25},m,c=0;scanf(“%d”,&m); for(b=0;b<=9;b++){ if(m==a[b]) break; else if(b==9&&m!=a[9])c=1;} if(c==0)printf(“位置=%dn”,b+1);if(c==1)printf(“无此数n”); return 0;} 7.14 英文字母大小写相互转换 从键盘输入一个英文字母,编程完成大小写相互转换。转换公式:小写字母=大写字母+32 提示:(x>='a'&&x<='z')x是小写字母(x>='A'&&x<='Z')x是大写字母 1.2.3.4.5.6.7.8.9.#include if(a>='A'&&a<='Z')a=a+32;else if(a>='a'&&a<='z')a=a-32;printf(“%cn”,a);return 0;} 7.15 斐波拉契数列前n项之和(数组法)n 从键盘上输入,n 的范围为: 1<=n<=30 利用数组法编程输出斐波拉契数列: 1,1,2,3,5,8,13,21......输出这个数列 的前 n 项 之和。提示: (1)第一段循环: 求出数列的前n项;(2)第二段循环:求前n项的和; 1.2.3.4.5.6.7.#include { int a[30]={1,1},b,c=0,i;scanf(“%d”,&b); for(i=2;i printf(“%dn”,c);return 0;} 7.18 计算x的y次方 从键盘输入2个整数x和y,计算x的y次方并输出。 1.2.3.4.5.6.7.8.9.10.11.#include for(i=1;i<=b;i++){ c=c*a;} printf(“%dn”,c); return 0;} 7.21 统计素数个数 统计 100-200 之间素数的个数,要求不使用数组完成.1.2.3.4.5.6.7.8.9.10.11.12.13.14.#include break;} if(i==a)b++;} printf(“%dn”,b);return 0;} 7.22 成绩评定 从键盘输入8个成绩,去掉最高分、最低分进行平均分计算,并输出(以5位小数形式),要求不用数组,只用循环完成。 1.2.3.4.5.6.#include for(i=2;i<=8;i++){ scanf(“%f”,&b);sum=sum+b;if(max if(min>b)min=b;} printf(“%.5fn”,(sum-max-min)/6);return 0;} 8.2 累加和大于s 时的最小项 s=1+2+3+4...+n , 从键盘上输入一正整数s , 求累加和大于 s 时的最小项数n 1.2.3.4.5.6.7.8.9.10.11.#include { int a,b=0,i,c=0;scanf(“%d”,&a); while(b<=a){ c=c+1;b=b+c;} printf(“%dn”,c);return 0;} 8.5 分行控制输出斐波拉契数列前n项 n从键盘上输入,斐波拉契数列:1,1,2,3,5,8,13,21...求出这个数列的前n项并输出, 要求每隔4个换一行,最后一行输出时若不足 4 项也按一行输出。 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.#include { int i,a[20]={1,1},c,b,k=2;scanf(“%d”,&c);printf(“1,1,”);for(i=2;i { a[i]=a[i-2]+a[i-1];printf(“%d,”,a[i]);k=k+1;if(k==4){ printf(“n”);k=0;} } printf(“n”);17.18.return 0;} 8.6 输出图形之一 在屏幕上输出 * 组成的图形,行数从键盘输入。提示: 打印图形通常用两重循环实现,输出的行数、每一行的空格数和每一行星号数分别由各自的循环控制。 外层循环控制图形的行数,该图形一共有n行.第一个内循环,要考虑每行中,先输出若干个空格, 确定打印图案的起始位置,第二个内循环, 用来控制图案中的某一行的星号个数。 1.2.3.4.5.6.7.8.9.10.11.12.13.#include for(b=1;b<=c;b++){ for(i=1;i<=c-b;i++)printf(“ ”);for(k=1;k<=2*b-1;k++)printf(“*”);printf(“n”);} return 0;} 8.7 若干成绩统计及格人数 从键盘输入若干学生的成绩,碰到输入非法成绩(输入负数或者超过100的数)时结束,要求统计及格人数并输出。提示:本题不涉及数组。 循环结束条件是非法成绩,因循环次数不确定,while 循环是首选。 1.2.3.4.5.6.7.8.9.10.11.12.#include if(i>=60)k=k+1;while(i>=0&&i<=100){ scanf(“%d”,&i);if(i>=60)k=k+1;} printf(“及格人数=%d个n”,k-1); return 0;} 8.10 输出所有的因子及其和 键盘输入正整数,输出该整数的所有因子,例如输入6,则输出1,2,3,6, 并求其所有因子的和。 提示:不涉及数组 假如正整数 n 除以m,结果是无余数的整数,那么我们称 m 就是 n 的因子。 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.#include for(i=1;i<=c;i++){ if(c%i==0){ v=v+i;printf(“%d,”,i); } } printf(“n”); printf(“因子和=%dn”,v);return 0;} 8.13 天数计算-数组法 输入 年 月 日,计算是该年的第多少天? 提示: 建议用数组实现计算是该年的第多少天,即天数累计求和。分为两种情况: 1、整月的天数参与累加求和(考虑大月、小月、2月天数具体情况) (4、6、9、11各30天,1、3、5、7、8、10、12各31天,平年2月28天,闰年2 月29天) 如果是闰年的2月,天数作一个修正。 闰年条件:四年一闰,百年不闰;四百年又闰 2、不完整月的天数直接用某日参与累加即可。 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.#include { int i,c,a[13]={31,28,31,30,31,30,31,31,30,31,30,31},n[13]={31,29,31,30,31,30,31,31,30,31,30,31},b,m,x=0;scanf(“%d%d%d”,&c,&b,&m); if((c%4==0&&c%100!=0)||(c%400==0)){ for(i=0;i else { for(i=0;i printf(“第%d天n”,x);18.19.return 0;} 8.14 计算某年某月有多少天-数组法 从键盘输入某年某月,然后计算并输出该年该月有几天。要求:用数组实现。 提示:事先将12个月对应的天数依次保存到数组,然后根据月份(数组下标)找对应的元素值(天数)。 (4、6、9、11各30天,1、3、5、7、8、10、12各31天,平年2月28天,闰年2月29天)如果是闰年的2月,天数作一个修正。 闰年条件:四年一闰,百年不闰;四百年又闰 1.2.3.4.5.6.7.8.9.10.11.12.#include { int i,c,a[13]={31,28,31,30,31,30,31,31,30,31,30,31},n[13]={31,29,31,30,31,30,31,31,30,31,30,31},b,m,x=0;scanf(“%d%d”,&c,&b); if((c%4==0&&c%100!=0)||(c%400==0)){ printf(“%d天n”,n[b-1]);} else { printf(“%d天n”,a[b-1]);} return 0;} 8.15 输出图形之二 在屏幕上输出 * 组成的图形,行数n(为奇数)从键盘输入。提示: 菱形可以看做是一个正三角形和一个倒三角形的组合。 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.#include for(i=1;i<=(a+1)/2;i++){ for(b=1;b<=(a+1)/2-i;b++)printf(“ ”);for(c=1;c<=2*i-1;c++)printf(“*”);printf(“n”);} for(i=1;i<=(a+1)/2-1;i++){ for(b=1;b<=i;b++)printf(“ ”); for(c=1;c<=a-2*i;c++)16.17.18.19.20.printf(“*”);printf(“n”);} return 0;} 8.16 数组冒泡排序法 从键盘上输入正整数 n(n<=50), 然后依次输入n个正整数,并保存到数组a,然后将这些整数进行升序排序,输出排序后的数组。提示: 本题数组元素个数不确定,可根据情况估计其上限定义数组,例如本题可定义 int a[50];1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.#include { int a[40],b,c,i,m;scanf(“%d”,&b); for(i=0;ia[i+1]){ m=a[i];a[i]=a[i+1];a[i+1]=m;} } } for(i=0;i return 0;} 8.17 输出等差第n项值 给出一个等差数列的前两项a1,a2,输出第n项值。 例如:输入a1,a2 分别为1,4 n为100时,计算输出该数列第n项的值 提示: 不涉及数组 1.2.3.4.5.#include { int b,c,i=0,m,n,s=1;scanf(“%d%d%d”,&b,&c,&m);i=c-b;6.7.8.9.10.11.for(n=1;n<=m-1;n++){ s=s+i;} printf(“%dn”,s);return 0;} 8.21 求1!+2!+3!+4!+5!+......+n!数列之和 n从键盘输入,求1!+2!+3!+4!+5!+......+n!数列之和 提示: 不涉及数组.1.#include 3.{ int a,b,c=1,m=1;4.scanf(“%d”,&a);5.for(b=2;b<=a;b++)6.{ c=c*b;7.m=m+c;8.} 9.printf(“%dn”,m);10.} 9.1 判断某整数是否包含6 输入一个[1-100)的整数,判断该数是否包含6 ? 如果是(比如 16,63,69),则输出 yes,不是(比如29,78)则输出 no 1.2.3.4.5.6.7.8.9.10.11.12.#include return 0;} 408多项式和Ⅱ 求a+aa+aaa+aaaa+...+aaa..a(n个a),a和n的值从键盘输入。 1.2.3.4.5.6.7.8.9.10.11.12.13.14.#include return 0;} 409弹跳小球 小球从100米高度落下,每次落地后反弹回原高度的1/2再落下,求小球第n次落地时总共经过的路程,结果保留2位小数。n从键盘输入。 1.2.3.4.5.6.7.8.9.10.11.12.13.14.#include return 0;} 411乘法口诀表 输出九九乘法口诀表。 1.2.3.4.5.#include 猴子第一天摘了若干个桃子,吃了一半,不过瘾,又多吃了1个。第二天将剩余的桃子又吃掉一半,并且又多吃了1个。此后每天都是吃掉前一天剩下的一半零一个。到第n天再想吃时,发现只剩下1个桃子,问第一天它摘了多少桃子?天数n从键盘输入。 1.2.3.4.5.6.7.8.9.10.11.12.#include return 0;} 413鸡蛋数 有一篮子鸡蛋,如果每次拿2个最后剩1个,每次拿3个最后剩2个,每次拿4个最后剩3个,每次拿5个最后剩4个,输出篮子中的鸡蛋数目。 1.2.3.4.5.6.7.8.9.10.11.#include for(i=1;i<100;i++){ a=i; if(a%2==1&&a%3==2&&a%4==3&&a%5==4)printf(“%dn”,a);} return 0;} 414将军点兵 一将军带兵出征前清点人数,士兵按从1到5排队报数,最后一个士兵报的数是1;按从1到6排队报数,最后一个士兵报的数是5;按从1到7报数,最后一个士兵报的数是4;再按从1到11排队报数,最后一个士兵报的数是10。计算至少(至少,至少)有多少士兵? 1.2.#include for(i=1;i<3000;i++){ a=i; if(a%5==1&&a%6==5&&a%7==4&&a%11==10)printf(“%dn”,a);} return 0;} 415三色球 一个袋子里装有3个红球、5个白球和6个黑球,要任意取出8个球,且其中必须有白球,输出可能的方案数目。 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.#include for(i=1;i<=5;i++)for(j=0;j<=3;j++) for(k=0;k<=6;k++){ a=i+j+k;if(a%8==0)sum=sum+1;else sum=sum+0;} printf(“%dn”,sum);return 0;} 416换钱 要将100元人民币兑换成5元、10元和20元纸币,输出兑换方法的总数。 1.2.3.4.5.6.7.8.9.10.11.12.13.#include for(i=0;i<=20;i++)for(j=0;j<=10;j++) for(k=0;k<=5;k++){ a=i*5+j*10+k*20;if(a==100)sum=sum+1;else sum=sum+0;14.15.16.17.} printf(“%dn”,sum);return 0;} 417百钱买百鸡 百钱买百鸡问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何,输出所有的买法,鸡翁、鸡母、鸡雏间以逗号隔开。 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.#include for(i=0;i<=20;i++)for(j=0;j<=33;j++) for(k=0;k<=100;k++){ a=i*5+j*3+k/3;b=i+j+k; if(a==100&&b==100&&k%3==0)printf(“%d,%d,%dn”,i,j,k);} return 0;} 418百变图形(1) 在屏幕上输出 * 组成的图形,行数和 * 数从键盘输入。 提示:输出的行数、每一行的空格数和每一行星号数分别由各自的循环控制。 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.#include 在屏幕上输出 * 组成的图形,行数从键盘输入。1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.#include 在屏幕上输出 * 组成的图形,行数(为奇数)从键盘输入。 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.#include for(i = 0;i <(x+1)/2;i++){ for(j = 0;j <((x-(2*i+1))/2);j++)printf(“ ”); for(j = 0;j <(2*i + 1);j++)printf(“*”); printf(“n”);} for(i = 0;i <(x-1)/2;i++){ for(j = 0;j <(i+1);j++)printf(“ ”); for(j = 0;j<(x-(i+1)*2);j++)printf(“*”);printf(“n”);} return 0;} 422数字翻转 从键盘输入一个整数,将该数翻转输出。 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.#include else if(b>100&&b<1000){d=b/100;a=(b/10)%10;c=b%10;printf(“%dn”,c*100+a*10+d);} else { i=b/1000;d=(b/100)%10;a=(b/10)%10;c=b%10;printf(“%dn”,c*1000+a*100+d*10+i);} return 0;} 第N个素数 输出1000以内的第n个素数,n从键盘输入。 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.#include break;} if(b==c){ n++;} c++;b=1; if(n==a)break;} printf(“%dn”,c-1);25.26.return 0;} 百变图形(4) 输入一个正整数,输出如下图形。 测试用例 1 3↵ 1↵ 2↵ 3 3↵ 2↵ 1↵ 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.#include int i;scanf(“%d”,&a); while(x while(x printf(“ ”);z++;} y=0; while(y<(x+1)*2+1){ z=1;if(x==0){ printf(“%d”,d);y++;break;} else { if((y==0||y==(x+1)*2)&&x!=0){ printf(“%d”,d);35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.52.53.54.55.56.57.58.59.60.61.62.63.64.65.66.67.68.69.70.71.72.73.74.75.76.77.78.} else { printf(“ ”);} } y++;} printf(“n”);x++;d=d+1;} while(x>=a&&x int g;g=a; if(x==a+a-2){ z=0;} while(z<=x+1-a){ printf(“ ”);z++;} y=0;while(y<(a+a-1-x)*2+1){ z=0; if(x==a+a-2){ printf(“%d”,d-2);y++; break;} else { if(y==0||y==(a+a-1-x)*2){ printf(“%d”,d-2);} 79.80.81.82.83.84.85.86.87.88.89.90.91.92.93.else { printf(“ ”);} } y++; } printf(“n”);x=x+1;d=d-1;} } return 0;} 505最小数及位置 从键盘上输入n个数(n也从键盘输入),输出其中最小的数以及该数在数组中的位置。 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.#include for(i=1;i if(a[i] min=a[i];j=i;} else { continue;} } printf(“最小数%d位于第%d个n”,min,j+1); return 0;} 506数字翻转 从键盘输入一个整数,将该数翻转输出。 提示:将分离出的整数的每一位数字保存到数组中,然后需要判断前几位是否为0,如果为0则前几位不输出。 1.int i,j,k,b=0,c=1,aa=0;2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.aa=a; for(i=1;a>=10;i++)a=a/10; for(j=0;j num[j]=aa%10;aa=aa/10;} for(k=1;k printf(“%dn”,b);return 0;} 418百变图形(1) 在屏幕上输出 * 组成的图形,行数和 * 数从键盘输入。 *****↵ *****↵ *****↵ *****↵ 提示:输出的行数、每一行的空格数和每一行星号数分别由各自的循环控制。 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.#include 在屏幕上输出 * 组成的图形,行数从键盘输入。 *↵ ***↵ *****↵ *******↵ 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.#include 在屏幕上输出 * 组成的图形,行数(为奇数)从键盘输入。 *↵ ***↵ *****↵ ***↵ *↵ 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.#include for(i = 0;i <(x+1)/2;i++){ for(j = 0;j <((x-(2*i+1))/2);j++)printf(“ ”); for(j = 0;j <(2*i + 1);j++)printf(“*”); printf(“n”);} 16.17.18.19.20.21.22.23.24.25.26.for(i = 0;i <(x-1)/2;i++){ for(j = 0;j <(i+1);j++)printf(“ ”); for(j = 0;j<(x-(i+1)*2);j++)printf(“*”);printf(“n”);} return 0;} 第N个素数 输出1000以内的第n个素数,n从键盘输入。 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.#include break;} if(b==c){ n++;} c++;b=1; if(n==a)break;} printf(“%dn”,c-1);return 0;} 广告语言概论 200904103050 09级工商管理 马雅琨 一、可口可乐 open happiness 整个广告的标语十分简洁容易让人记住,也凸显了可口可乐的品牌文化:年轻富有生命力,充满朝气。蓬勃向上的品牌形象,在广告语中得到彰显。由于独特的商品,广告宣传语同瓶盖相结合,体现在打开可口可乐饮料的一瞬间,不仅能够收获味觉上的畅爽,更能够打开一份美好的心情甚至是一份美好的生活。广告标语十分简单,没有冗长和隐涩的文字,在宣传时朗朗上口在第一时间为受众留下很深的印象,为日后进一步宣传打下良好的根基。“打开畅爽快乐”符合消费者购买心理,任何一次购买行为的形成都是要获得心理或者心理上的满足,这样的广告语在产品的宣传上给受众一种良好的心理暗示:购买该产品能够获得畅爽的快感。这样的广告语也将企业的宣传和企业悠久的历史相联系,在受众看到这样的广告词时会联想到百年企业深厚的积淀跨越整个时代,也就是说可口可乐打开了一个快乐的时代,这样的广告词针对的消费者十分广阔,对充满生命力的年轻人广告词凸显可口可乐带给他们当下的快乐感觉,象征着一种潮流以吸引更多的消费者;对中年以及老年人,可口可乐打开快乐能够唤起人们过去的美好回忆,这样的回忆是伴随着企业的成长而发展的,从而能够增强已有消费者对产品的忠实程度。 二、立白 立刻亮丽洁白 从广告语可以看出这个产品的特点迅速省力高质量。作为清洁用品能够很迅速地去除污渍,并且能够保持衣服原来的色泽和光感是人们购买这种物品最终的目的,所以这样的广告语在宣传上就能够简练地将自己产品的优点传达给消费者,为产品以及品牌做了良好的宣传。这条广告语另一个值得赞赏的地方就是他把自己企业的名称做了扩展,不仅能是人对这个产品有较好的印象,更是能够让消费者记住这个品牌,与企业其他产品的生产和销售相关联,为增加整个企业的市场份额奠基。在广告语的组织上,选择了明亮色彩的形容词,以三个形容词词组概括产品的特点从语言风格上就能够深深抓住消费者的眼球,向上而富有生命里的词语是能够引起大部分人的共鸣,在广告语上就胜其他的产品一筹。洗涤用品多数使用者是家庭主妇,繁重的家务活占用了她们很多的时间,立白的广告语像这样的消费群体传递了节省更多劳动力和获取高质量洗衣的信息,能够在心理上吸引这样的消费者。 三、阿迪达斯 Impossible is nothing 阿迪达斯这条广告语出现在他的产品的每一个广告之中,给受众留下了深刻的印象,成为其品牌内涵和企业文化的精炼体现。没有什么是不可能的,作为一个以生产体育用品为主的厂商,这条广告语深深切合了体育运动的精神:不断超越、进取的向上精神,不断超越过去的记录不断和超越以往的光辉,即使是已经达到高峰也能够更进一步,所以没有什么是不可能的。不仅是体现了体育运动永无止境的深层内涵,更是彰显了阿迪达斯为了运动员们更进一步的运动生涯而不断进取开发更好的更为高端的产品,企业的精神与体育的精神融合在一起,将品牌的文化与体育文化紧密结合。在广告语的制作上彰显了一种霸气,给使用者暗示了一种体育态度。 四、平安 买保险就是买平安 作为一个保险公司,任何消费者购买保险产品都是为了获取物质或者精神上的安稳与保障,说白了就是为了在面对危险或者灾祸的时候能够获取平安,所以这样的广告语在宣传是能够抓住消费者的购买心理,在第一时间为消费者留下较好的印象,在心理上为消费者留下购买暗示,即:买保险就是为了平安,就要买平安公司的保险产品。将自己的品牌名称镶嵌到广告语中能够在宣传产品的时候同时宣传自己的企业,争取更多的受众,进一步强化了平安保险公司的经营理念:为更多的保险购买者提供更多的保障。在广告词的组织上运用了双关的修辞手法,增强了其内涵和文学意味,使受众在看到广告词的第一时间留下深刻的印象,消费者会感叹广告词设置的创意性,从而也达到了宣传品牌的作用。 五、耐克 Just do it.耐克是一家生产体育用品的公司,也从体育的另一个角度阐述了品牌的理念。是体育竞技比赛就会有输有赢,就会有超越也会有失败,作为人类的本性大家都是害怕失败的,在每一次的体育尝试的时候,都是带着一种期待与紧张的情绪开始的,所以耐克的运动品倡导了一种理念:去做吧,不管结果如何!这样的运动品从宣传上就为人们营造了一种克服害怕失败的心理,在运动品的穿着者的心理进行相对的暗示,彰显了体育用品所倡导不怕失败努力拼搏的理念!从另一个角度上,体现了生产体育用品的耐克公司为体育竞技提供了良好的保障,穿着这样的运动产品只要尽自己的力去做就可以,体现了公司生产的产品良好的性能和高科技以及一个公司的团队为运动员做出的不懈努力。 六、旅游卫视 身未动,心已远。 作为一个主打旅游节目的频道,从整个频道的运营包装上当然要主打旅游牌,这样一句广告语能够从一个精练的角度表达出旅游卫视的经营文化。旅游是一个特殊的商品,是一个自身体会的过程,即在某种程度上是身体要带着心灵去切身融入的行为,所以如何打造一个由消费者静态观赏却要获得亲身体验的感触是一种很困难的事情。旅游卫视以“身未动,心已远”来突出频道节目的理念:纵使只在电视前观看节目并没有身临其境地去体会当地的风 土人情旖旎风光,也可以跟着镜头在心灵上获得深切的感悟。所以这样的广告语解决了静态旅游节目不能使收看者得到生动体验的困难,把频道节目的高度由经历提升到一种灵魂的满足。“身未动心已远”,一个远字也体现了旅游卫视节目范围很广阔,总览整个世界的高度和大量的信息资源。从广告语的措词本身来讲,采用了中国古代诗词的对偶形式,有很浓的文学气息提升了频道的整体品味,给人一种高雅恬淡的感觉,使观看者在阅读这条广告语时能够深信这样的节目能使他们在看观时获得亲身旅游时得到的心灵陶冶和涤荡。 七、绿箭 让我们更亲近 口香糖是一种满足人们特殊需要的消费品,人们购买这种产品的时候就是为了净化自己的口气,在出一些场合或者日常的活动中给自己塑造良好的形象,不至于因为一些身体的原因而给周围的人造成不好的印象,这样的产品是在某种程度上迎合了人类本能的社会荣誉感和对美好外表的向往。绿箭,让我们更亲近,表达出消费了这种产品能够提升自己的形象,在与人们相处时可以拉近距离,深层含义上就表达出了在人际交往的处理上可以获得更多的有利条件,这样的广告语充分使用了人类本性上的趋利性。在表达产品的用途和特点的基础上更是顺应了人类社会生活特点的能动心理:人是社会中的人,每个人都要与他人发生种种联系,广阔的交际群对一个正常人来说是十分重要的,无论从爱情、亲情、有情以及事业上,良好的人际关系都是至关重要的。 八、LG life is good.LG是一个大型的电器生产厂商,产品遍及日常生活的各个方面。电器产品在极大的程度上为人们的生活提供了很多的便利,节约了很多的劳动力,把人们从繁重的工作之中解脱出来,让生活除了劳作之后有很多的时间和精力去做一些享受人生的事情。LG在这样的宣传理念上将自己的品牌名称扩展为life is for good,就体现了公司是为了更好地服务人们的生活而进行生产经营的,产品的核心是为了给人们提供更为良好的服务,将劳作变成一种快乐为人们日常的生活提供更为充裕的时间和精力从而能够提高生活的水平,以至于乐享人生。在广告本身上是一种亲近消费者的口吻,能够拉近消费者与企业之间的关系,将企业的定位放置在为消费者服务的位置,让消费者处在一种主体的地位满足消费心理,使品牌获得良好的形象,从而争取到更多的消费者。 九、佳能 感动常在佳能 作为摄像拍照器材的生产厂商,佳能的广告语将立意放在从小镜头观察世界,人们在照片和录像中看到的世界能够获得很多的感动,这样的小镜头放大了现实世界的细微之处,在人们的日常生活中获得更多的心灵感动。照片和录像是把现实的生活凝固在影像之中,而人 们在拍照是选取的素材也是能够引起心灵感动的内容,所以佳能将广告语言精炼为“感动常在佳能”,体现了照相器材其本质带给人们的用处,而将自己的品牌嵌入广告,能够使消费者在看到宣传时感受到使用这样具有良好品质的照相器材能够在更为细腻的小镜头中观察这个广博的世界,猎取瞬间获得的感动,记载那些日常生活中容易消逝的难忘瞬间,感动常在佳能从表面和内在上阐述了一个企业的文化。 十、InterInter inside Inter是生产电脑中央处理器的最大厂商,基本世界上百分之八十的电脑都是使用它生产的处理器,在电脑上经常能够见到Inter inside 这样的标志,来证明这台计算机是使用它的处理器的。广告语言的选取十分简单,没有像一般情况那样宣传他的产品特点和用途,只是想要说明使用这样的处理器,有着深刻含义的。拥有广大消费群的电脑生产商,有着广为人知的名誉和产品信誉,将每一台使用自己处理器的电脑上标上这样的广告语,看似是宣传了电脑,实际上是利用了电脑这个实在看得到摸得到的平台宣传了自己处理器的性能,在人们使用这台电脑时,提升对inter的好感,增强其知名度,这是一种整合和利用其他资源来进行自我宣传的典范。Inter公司生产的中央处理器的受众不仅是普通的消费者,更多的是生产电脑的厂商,由于Inter公司强大的技术和良好的公司信誉,这样的广告语将会争取到更多的生产商使用自己的处理器。Inter的广告是一个特例,是在公司已经获得良好的市场份额和较高的企业信用后,将这样的无形资产转化为了自己的广告宣传,在生产和销售的良性循环之中扩大自己的知名度是一个新颖的角度,也是一个广告语制作上的突破和创新。 十一德国大众 小即是好 在德国大众刚开拓美国市场时,在欧洲盛行的小排量的省油的汽车并不能有引起美国消费者过多的关注,因为在美国汽车消费市场上称王的是那些耗油高然而却十分气派舒适的车型,这是美国人消费观的一种体现,大众很难在短时期内打开市场的突破口。要想争取自己的市场份额在宣传上就要引起新的消费热点分流原先主流市场上的销售份额,所以便把大众最不利的同时也是最特殊的特点小而精巧作为广告宣传的中心点。美国的市场上汽车的宣传往往突出了舒适豪华彰显气度,但是与此附生的护养汽车的高成本,这也将汽车这种消费品放在了一个与普通消费者很远的位置,高昂的购车成本和养护费用是很多工薪阶层无法承受的。大众汽车正是看到了这一点,将其汽车的小巧和省油作为宣传的主打牌,为消费者开拓了一个新的消费领域,使更多的普通家庭购车不再是梦。从广告词的宣传上就博得了受众的良好印象,拉近了品牌与消费者的距离。人是有一种强烈的社会感需求的,收入一般的家庭往往会将自身的情况与那些有钱人相比较,大众汽车为这些家庭提供了一种增强自身满足感的依据,即为我的车很小很省油,可是我的车浓缩是经典,丝毫不比你们那些油老虎差。这样一来就满足了消费者的社会虚荣心。小即是好,在某种程度上也彰显了大众汽车在制作工艺和生产技术上的先进,并不亚于那些豪华气派的品牌甚至比他们更为优秀,这样的广告词在针对普通消费者时,提升了自身品牌的性价比,向受众传递了消费的暗示。 十二肯德基 为中国而改变 肯德基这样的西方快餐业是整个西方文化的一个放大体现,快节奏的理念以及食品的样式都是西方生活的体现,在进入中国大陆这样一个全新与众不同的市场时,如何能够吸引当地的消费群体是十分重要的。所以为中国改变这样的广告词可以给消费者留下良好的印象,看到一个企业为了消费者而不懈进取着,作出为了消费者的爱好而改变是吸引消费的一种手段。这条广告语在一定程度上体现了肯德基对于中国消费者的承诺,会让受众产生一种信任感和亲切感。改变是一个过程与结果相结合的行为,为中国而改变不禁让人联想到肯德基已经所做的调整更能让消费者对于未来肯德基会发生的改变产生期待,从而锁定了受众的长久关注。肯德基是一个国际化的大企业,拥有较高的生产水品技术以及良好的企业信誉和形象,为中国而改变,本身就会给消费者一种安稳的感觉,因为在良好的基础上再进而为中国消费者所作出的改变就将会是一种自身的提升,会带来更好的产品和更加优良的服务,这样的广告词在表达上就将整个企业与中国市场以及消费者紧密相连,在一个崭新的市场上塑造了良好的形象。 老师,那个不太喜欢的十条广告语我实在不知道该写些什么,好像只有喜欢的广告和没感觉的广告,没有对哪条广告有明显厌恶感。这是喜欢的一些广告的自己解析,那个不喜欢的部分还没有想好怎么写。实在不好意思。 厦门大学公共课 《C语言程序设计》 教材习题答案 第三章 结构化程序设计 一、思考题 1、顺序结构的语句有哪些? 表达式语句,空语句,复合语句 2、从程序控制的角度看,复合语句是单一的语句吗? 是 3、C语言中的语句有哪几类?C语句与其他语言中的语句有哪些异同? 表达式语句,空语句,复合语句,控制语句。C语言与其他语言的语句类型基本相同,只是语法有所区别。 4、怎样区分表达式和表达式语句?C语言为什么要设表达式语句?什么时候用表达式,什么时候用表达式语句? 在C语言中,只要在任何表达式的结尾加上分号“;”就构成了表达式语句。表达式语句使C语言更加灵活。当我们使用表达式语句时一般只关心它的作用而不关心该表达式的值。如puts(“hello”);这个表达式语句,我们关心的是输出hello这个结果而不是puts函数的返回值。 5、C语言的输入输出功能是表达式语句吗,为什么? 是,因为输入输出功能是函数调用语句。 二、选择题 1、以下符合C语言语法的赋值表达式是B)d=9+e,f=d+9 2、下面程序运行时的输出结果是D)a=8 main(){ int a=5; printf(“a=%dn”,++a+2);} 3、putchar函数可以向终端输出一个D)字符或字符变量值 4、运行以下程序时,从键盘输入25,13,10(回车),则输出结果是A)a1+a2+a3=48 main(){ int a1,a2,a3; scanf(“%d,%d,%d”,&a1,&a2,&a3);} 5、若有以下定义和语句 char c1=‟b‟,c2=‟e‟;printf(“%d,%cn”,c2-c1,c2-„a‟+‟A‟);则输出结果是B)3,E 6、下面程序的执行结果是A)10 main(){ int a,b; a=20;b=10; a+=a+b; a-=a-b; printf(“%dn”,a);} 7、使下列程序输出”123,456,78”,由键盘输出数据,正确的输入是C)123,45678 int i,j,k; scanf(“%d,%3d%d”,&i,&j,&k);主讲教师:林子雨 E-mail:ziyulin@xmu.edu.cn 第1页/共4页 厦门大学公共课 《C语言程序设计》 教材习题答案 第三章 结构化程序设计 printf(“%d,%d,%dn”,i,j,k); 三、编程题 1、若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=’a’,c2=’b’,想得到以下的输出格式和结果,请写出程序(包括定义变量类型和设计输出)。要求输出结果如下: a=3 b=4 c=5 x=1.200000,y=2.400000,z=-3.600000 x+y=3.60 y+z=-1.20 z+x=-2.40 u=51274 n=128765 c1=’a’or 97(ascii)c2=’b’or 98(ascii)#include void main(){ int a=3,b=4,c=5;double x=1.2,y=2.4,z=-3.6;long u=51274,n=128765;char c1='a',c2='b';printf(“a=%d b=%d c=%dn”,a,b,c);printf(“x=%lf,y=%lf,z=%lfn”,x,y,z);printf(“x+y=%.2f y+z=%.2f z+x=%.2fn”,x+y,y+z,z+x);printf(“u=%ld n=%ldn”,u,n);printf(“c1='%c'or%d(ascii)n”,c1,c1);printf(“c2='%c'or%d(ascii)n”,c2,c2);} 2、请写出下面程序的输出结果 main(){ int a=5,b=7;float x=67.8564,y=-789.124;char c=’a’;long n=1234567;unsigned u=65535;printf(“%d%dn”,a,b);printf(“%3d%3dn”,a,b);printf(“%f,%fn”,x,y);printf(“%-10f,%10fn”,x,y);printf(“8.2f,%8.2f,%.4f,%.4f,%3f,%3fn”,x,y,x,y,x,y);printf(“%e,%10.2en”,x,y);printf(“%c,%d,%o,%xn”,c,c,c,c);printf(“%ld,%lo,%xn”,n,n,n);printf(“%u,%o,%x,%dn”,u,u,u,u);printf(“%s,%5.3sn”,”computer”,”computer”);} 57 主讲教师:林子雨 E-mail:ziyulin@xmu.edu.cn 第2页/共4页 厦门大学公共课 《C语言程序设计》 教材习题答案 第三章 结构化程序设计 7 67.856400,-789.124023 67.856400 ,-789.124023 8.2f,67.86,-789.1240,67.8564,-789.124023,67.856400 6.785640e+001,-7.89e+002 a,97,141,61 1234567,4553207,12d687 65535,177777,ffff,65535 computer, com 3、用下面的scanf函数输入数据,使a=10,b=20,c1=’a’,c2='a',x=1.5.,y=-3.75,z=67.8,请问在键盘上如何输入数据? scanf(“%5d%5d%c%c%f%f%*f,%f”,&a,&b,&c1,&c2,&x,&y,&z);0001000020aa1.5-3.75 1,67.8 4.设圆球半径为r=2.5,求圆球表面积、圆球体积。用scanf输入数据,输出计算结果,输出时要求有文字说明,取小数点后两位数字。请编程序。#include E-mail:ziyulin@xmu.edu.cn 第3页/共4页 厦门大学公共课 《C语言程序设计》 教材习题答案 第三章 结构化程序设计 } 7.编写一个能引起short型变量溢出的程序。#include s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c));printf(“面积是:%f”,area);} else printf(“该三角形不存在!”);主讲教师:林子雨 E-mail:ziyulin@xmu.edu.cn 第4页/共4页第三篇:C语言作业总结
第四篇:广告语言概论作业
第五篇:C语言作业答案