C语言程序设计教学中的问题及改革建议

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言程序设计教学中的问题及改革建议
第一篇:C语言程序设计教学中的问题及改革建议
C语言程序设计教学中的问题及改革建议
摘要:对于计算机专业学科而言,C语言程序设计作为该专业中的一门基础课程,在实际教学的过程中,需要强化对实践教学内容的重视程度,以确保将理论与实践教学进行有机融合,在提高教学质量的同时,实现对学生专业实践能够的培养。

而在实际开展教学活动的过程中,如何结合现有教学中所存在的问题进行完善解决,以达成教学目标,亟待解决。

本文在分析当前C语言程序设计教学中所存在问题的基础上,为如何实现该课程教学的高效开展提出了对策。

关键词:C语言程序设计;教学;问题;改革;对策
前言
基于当前社会对人才所提出的高要求下,对于计算机教育专业而言,在实际践行教学活动的过程中,要想确保实现复合型技术IT人才的有效培养,则就需要积极的更新教学理念,创新教学方法并提高对实践课程的重视程度。

针对C语言程序设计专业学科教学活动的开展而言,基于当前在实际教学中所呈现出的一系列问题,就需要在明确教学目标的基础上,通过理论与实践教学的有机融合来实现对学生综合能力素质的有效培养。

一、当前C语言程序设计教学中所呈现出的问题
(一)教学理念滞后,教学模式陈旧
当前,在实际开展该学科教学活动的过程中,教师的教学理念滞后,依旧以传统灌输填鸭式教学模式来实现理论教学内容的传授,在此过程中,以教师为教学主体的教学形式下,学生长期处于被动地位,学习的兴趣与积极性不高。

同时,师生间的沟通交流频率低,教师在进行教学的过程中强调计算机等级考试的重要性,忽略了对学生计算机素养的培养。

基于此,整体上该专业学科教学的效率与质量明显偏低,难以有效达成相应的教学目标。

(二)学生现有基础参差不齐,教学缺乏针对性
随着国内教育事业的不断发展,各级院校都在逐渐扩招,因此,这就在某种程度上导致学生本身的能力素质水平层次不齐,加上对于该专业的学生而言,在初高中阶段对计算机专业知识内容接触的较浅,所以本身能力素质水平有限。

而C语言程序设计的专业性较强,且又是该专业的入门基础学科,在实际教学的过程中,由于尚未实现因材施教,缺乏针对性教学,致使教学进度缓慢,教学质量严重偏低。

(三)尚未实现理论与实践教学的有机融合
在实际教学的过程中,计算机学科本身就具备了较强的实践性,要求要确保学生具备扎实理论知识基础的同时,具备相应的实践应用能力,而在实际教学的过程中,理论与实践教学尚未实现有机结合,相分离的教学形式下,学生难以在实践中巩固理论知识,同时缺乏实践的支撑,无法实现对学生相应应用能力的有效培养。

缺乏相应实践环节的有效支撑,致使在有限的实践课时内,学生却显得慌忙无措,进而难以具备相应的编程能力。

二、提高C语言程序设计教学质量与效率的对策
(一)强化对该课程的重视程度并创新教学方法
在实际教学的过程中,教师需要在进入课程教学之前,向学生阐明学习C语言程序设计这一课程内容的重要性,同时明确在该课程教学内容下所需实现的教学目标,让学生明确重点学习内容,并缕清教学思路以实现程度设计教学内容的高效开展,确保学生具备良好的专业基础能力。

同时,要在进一步更新教学理念的基础上,创新教学方法,以搭建全新的教学模式,确保充分体现出学生在教学中的主体地位,以在激发学生学习兴趣与积极性的同时,能够以主动积极的投入到学习中。

在实际践行的过程中,教师可通过问题情境的设置为基础,将理论知识与实际生活中的问题相联系,以搭建相应的教学情境,促使学生从直观具体的事物中却感知理论,为促使学生更好的掌握理论知识内容奠定基础。

同时,还可以借助多媒体这一教学手段来吸引学生的兴趣,提高教学的效率。

比如:针对数组与指针间关系这一理论进行讲解的过程中,教师可以采用结合教学课件来展开小组探讨的方式,在此过程中,充分发挥出自身的引导作用,促使学生能够在良好
的课堂教学氛围中,以兴趣为老师来探索出答案,实现对知识的内化吸收。

(二)结合学生的实际需求特点落实因材施教
基于该专业本身的特殊性,在实际教学的过程中,教师需要基于教学目标的基础上,结合学生的实际能力素质特点,并按照不同专业所具备的需求特点,实现实验题目的有针对性设计。

要注重要专业理论知识与实验设计进行融合,并要确保相应设计题目能够迎合学生的兴趣,同时,可通过实验题目的丰富化设计来促使学生结合自身的兴趣来进行题目的选择,以保证学生能够在编写程序模块的过程中能够具备这一能力。

(三)实现理论与实践教学的有机融合
基于C语言程序设计这一课程本身就具备了较高的实践性,因此,要想确保学生能够在具备扎实理论基础的同时,能够掌握相应的技能,就需要将理论与实践教学进行有机融合,促使学生能够通过实践来巩固理论知识,并以理论知识来指导编程设计实验程序的高效开展,进而为提高该学科教学的有效性并实现对学生综合能力素质的培养奠定扎实基础。

同时,在实验教学部分,教师还可以通过小组合作法来进行开展,促使学生能够在互相沟通交流中取他人之长补己之短,并实现对学生合作沟通等综合能力的培养。

总结
综上,在C语言程序设计专业学科教学中,要想提高该课程教学的质量与效率,并实现对学生相应实践操作能力的培养,就需要在强化对这一基础课程重视程度的基础上,更新教学理念,创新教学方法,并将理论与实践进行有机融合,且注重实现实验项目课题的有针对性设计,为实现该课程的教学目标奠定基础。

参考文献
[1] 高春颖,张云峰,马慧敏.《C语言程序设计》教学中存在问题及改革探索[J].电脑知识与技术,2011,17:4113-4114+4116.[2] 王军英,马红梅.C语言程序设计教学存在的问题与对策[J].教育理论与实践,2015,03:63-64.[3] 张乐.C语言程序设计教学中存在的问题及
改革措施[J].运城学院学报,2015,03:10-12.
第二篇:C语言程序设计教学安排
C语言程序设计教学安排
本课程的任务是结合一般数值计算向学生介绍计算机程序设计的基本知识,使学生掌握C语言的基本内容及程序设计的基本方法与编程技巧,了解进行科学计算的一般思路,培养学生应用计算机解决和处理实际问题的思维方法与基本能力,为进一步学习和应用计算机打下基础。

本课程学时总计32学时。

二、课程内容、基本要求与学时分配
㈠ C语言的基本概念
3学时
1.了解C语言的特点及发展
2.掌握程序的基本结构与书写格式
3.掌握头文件、数据说明、函数的开始和结束标志。

㈡数据类型及其运算
2学时
1.掌握数据类型(基本类型、构造类型、指针类型、空类型)及其定义方法。

2.掌握运算符的种类、运算优先级、结合性。

3.掌握不同类型数据间的转换与运算。

4.掌握表达式类型(赋值表达式、算术表达式、关系表达式、逻辑表达式、条件表达式、逗号表达式)和求值规则。

㈢基本语句
2学时
1.掌握表达式语句、空语句、复合语句。

2.掌握数据的输入/输出和输入/输出函数。

3.掌握go to 语句和语句标号的使用。

㈣选择结构
2学时
1.掌握用if语句实现选择结构。

2.掌握用switch语句实现多分支选择结构。

㈤循环结构
4学时
1.掌握for循环结构。

2.掌握while和do while循环结构。

3.掌握continue、break、return语句。

4.掌握循环的嵌套。

㈥数组的定义和引用
4学时
1.掌握一维数组和多维数组的定义、初始化和引用。

2.掌握字符串与字符数组。

㈦函数
6学时
1.掌握库函数的正确调用。

2.掌握函数的定义方法。

3.掌握函数的类型和返回值。

4.掌握形式参数与实在参数的区别,参数值的传递。

5.掌握函数的一般调用和嵌套调用,学会递归调用。

6.掌握局部变量和全局变量。

7.掌握变量的存储类型(自动、静态、寄存器、外部),变量的作用域和生存期。

8.了解内部函数和外部函数。

㈧编译预处理
1学时
1.掌握编译预处理的概念和特点
2.了解带参数的宏定义及其使用,掌握不带参数的宏定义及其使用。

3.掌握“文件包含”的概念和使用。

㈨指针
8学时
1.掌握指针的概念及指针的定义。

2.掌握指针运算。

3.掌握指向变量、数组、字符串、函数的指针变量。

4.掌握用指针作函数参数。

5.掌握指针数组和指向指针的指针的概念及其定义方法,了解main函数的命令行参数。

㈩结构与联合 2学时
1.掌握结构和联合类型数据的定义方法。

2.掌握结构和联合类型数据的引用方法。

3.掌握指向结构体的指针变量。

3.了解用typedef 定义类型的方法。

(十一)文件操作
2学时
1.掌握文件类型指针(file类型指针)。

2.掌握文件的打开与关闭(fopen和fclose函数)。

3.掌握文件的读与写(fprintf和fscanf函数)。

三、说明
本课程的先修课程为《计算机文化基础》和《高等数学》
四、课程使用的教材和主要参考书
使用的教材:《C程序设计》
潭浩强著
清华大学出版社
主要参考书:《C语言程序设计》王树义钱达源编著大连理工大学出版社
第三篇:C 语言程序设计
《C 语言程序设计》主要在计算机软件、计算机网络、计算机应用、通信技术、智能电子、电子信息工程、多媒体以及核工程与核技术等专业中开设,是电子信息类、机械类等工科专业的重要专业基础课。

本校从2001至今,每年都开设《C语言程序设计》课程,由于,我校最开始时的特殊情况,主要把重点放在C语言中的各类重点、难
点的语法、语义上,使得学生经过比较复杂和痛苦的过程后,对C语言在使用上很难做到自己编写程序。

而且很多学生产生了畏惧心理。

2004年,学院成立计算机科学与技术系,为了更好学习和掌握C 语言,计算机科学与技术专业和计算机维护专业(计算机应用技术前身)除了开设《C语言程序设计》课程外,在后续一学期还开设了《C 语言程序设计课程设计》,使得计算机专业学生编程思想和能力得到了极大提高。

2005年,为了让我院工科学生更好的掌握C语言编程以及通过四川省计算机二级考试,在《C语言程序设计》课程后设置《C语言程序设计课程设计》,极大地提高了学生的动手机会和能力,过级率显著提高!
2007年,依托我校建设精品课程的契机,我们将C语言中的各个知识点进行重新规整,提出适用于三本院校学生的语言设计学习的方法。

我们提出,先了解C语言,再学习C语言,再用C语言的思想。

即在开始时让学生初步知道C语言,然后引入比较简单的运算符以及基本输入、输出和简单的顺序结构程序设计。

通过这样的方式,我们发现,学生在C语言的学习就不会从开始的时候陷入大量难懂的语法、语义和数据结构中。

有了以上铺垫再层层进入,最终进入复杂的各类数据结构以及指针等学习。

通过以上的内容规整后,教学效果有明显提高。

第四篇:C语言程序设计
1.Problem A: Hello world!Description Xiao_ming有两个哥哥,大哥叫Da_min,二哥叫Er_min。

三兄弟放学回家,父母分别跟他们打招呼。

Input 无
Output 请输出:Hello Da_min, Hello Er_min, Hello Xiao_ming!
Sample Input Sample Output Hello Da_min, Hello Er_min, Hello Xiao_ming!
HINT 请注意换行符
Append Code #include int main(){
printf(“Hello Da_min,n”);
printf(“Hello Er_min,n”);
printf(“Hello Xiao_ming!n”);} 2.Problem B: 求圆的面积和周长Description 从键盘输入圆的半径,求圆的面积和周长,圆周率取3.14。

Input 输入一个浮点型数据,有效数字不会超过十进制的6位。

Output 输出为两行。

第一行为圆的面积,第二行为圆的周长,格式见sample。

Sample Input 3
Sample Output Area: 28.260000 Perimeter: 18.840000
HINT 了解浮点类型的输入、输出和算术运算符
Append Code 法一
#include int main(){ double r,p,s;scanf(“%lf”,&r);p=2*3.14*r;s=3.14*r*r;printf(“Area: %lfn ”,s);printf(“Perimeter: %lfn”,p);} 法二
#include #define pi 3.14 int main(){
double r;
scanf(“%d”,&r);
printf(“Area: %lfn”,pi*r*r);
printf(“Perimeter: %lfn”,2*pi*r);
}
3.Problem C:平均值 Description 求3个数的平均值。

Input 输入只有一行,为3个较小的整数。

Output 输出为这3个整数的平均值,保留3位小数。

Sample Input 1 2 3 Sample Output 2.000
HINT 注意除法运算对整型数据和浮点型数据是不一样的。

Append Code #include int main(){ int a,b,c;scanf(“%d%d%d”,&a,&b,&c);printf(“%.3lf”,(a+b+c)/3.0 );}
4.Problem D: 求字符的值 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 了解字符值的存储和整型的关系。

Append Code #include int main(){ char a,b,c;scanf(“%c%c%c”,&a,&b,&c);printf(“%.3d %.3o %.3xn”, a,a,a);printf(“%.3d %.3o %.3xn”,b,b,b);printf(“%.3d %.3o %.3x n”,c,c,c);}
5.Problem A: 最简单的程序Description 输出一行“Hello world!”。

Input 无
Output Hello world!
Sample Input Sample Output Hello world!
HINT Append Code #include int main(){
printf(“Hello world!”);}
6.Problem B: 算术基本运算 Description 计算两整数x和y(0
Input 输入只有一行,格式见sample。

Output 输出为多行,按顺序每行输出x,y的和、差、积、商、余数、x的平方和y的三次方,格式见sample
Sample Input x = 11, y = 3
Sample Output x + y : 14 xy : %dn“,x-y);
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);} 7.Problem C: 自增自减运算Description C语言中有自增运算++、自减运算--,并且可以前置和后置。

编写一个程序:对输入的一个整数a,输出a++、a--、++a、--a的值。

Input 一个整数a,a是很小的整数。

Output 输出为5行,第一行为a的值,后面依次为--a、a--、a++、++a的值。

5行输出纵向a要对齐,“:”对齐,“:”前后各一个空格,后面的数值不用对齐。

每行行尾都有回车。

Sample Input 0
Sample Output a : 0--a :-1 a--: 0 a++ : 0 ++a : 1
HINT Append Code #include int main(){ int a,x;scanf(”%dn“,&x);a=x;printf(” a
: %dn“,a);printf(”--a
: %dn“,--a);a=x;printf(” a--: %dn“,a--);a=x;printf(” a++ : %dn“,a++);a=x;printf(”++a
: %d n“,++a);}
8.Problem F: 绝对值 Description 求整型数据和浮点型数据的绝对值。

Input 输入两个数,第一个是整数,第二个是浮点数。

Output 输出为两行,第一行为整数的绝对值,第二行为浮点数的绝对值,注意浮点数的绝对值不输出无意义的0。

Sample Input-1 1
Sample Output 1 1
HINT 求绝对值可以用标准库函数来完成,也可以自己判断。

注意浮点数的输出格式。

求绝对值的函数在哪个头文件?貌似很多人会搞错,包括很多编书的人!
Append Code #include //#include int main(){
int n;
float m;
scanf(”%d%f“,&n,&m);
//n=abs(n);
//m=fabs(m);
if(n<0)
{
n=-n;
}
if(m<0)
{
m=-m;
}
printf(”%dn“,n);
printf(”%g“,m);
return 0;}
9.Problem A: 奇数还是偶数? Description 输入一个整数,判读它是奇数还是偶数。

Input 输入只有一行,为一个100以内的正整数。

Output 输出为一行。

若输入为偶数则输出“even”,奇数输出“odd”。

Sample Input 30
Sample Output even
HINT 用整数运算可以解决,练习“?:”表达式。

Append Code #include int main(){
int n;
scanf(”%d“,&n);
if(n>=0&&n<=100){
if(n%2==0)printf(”evenn“);
else printf(”oddn“);
}
return 0;}
10.Problem B: 简单的打折计算 Description 商店规定:消费满n 元,可以打八八折。

设某件商品标价m元,输入购买的件数x,计算出需要支付的金额(单位:元),精确到分。

Input 输入只有一行,三个整数m、n和x,且0
Sample Input 95 300 4
Sample Output 334.40
HINT 了解浮点型的输出控制,注意整型和浮点型混合运算过程中的数据类型转换。

Append Code #include int main(){
int m,x,n,a;
float b;
scanf(”%d%d%d“,&m,&n,&x);
x
m
a=m*x;
if(a>n)
b=0.88*a;
else
b=a;
printf(”%.2fn“,b);
}
11.Problem C: 判断闰年 Description 输入一个正整数的年份,判断是否为闰年。

Input 输入只有一行,为一个10000以内的正整数。

Output 输出为一行。

若输入为闰年偶数则输出“Yes”,否则输出“No”。

Sample Input 2010
Sample Output No
HINT 了解逻辑运算符和关系运算符。

Append Code #include int main(){
int x;
scanf(”%d“,&x);
if(x>0&&x<10000)
{
if(x%4==0&&x%100!=0)
printf(”Yesn“);
else if(x%400==0)
printf(”Yesn“);
else
printf(”Non“);
}
else
printf(”error“);}
12.Problem D: 水仙花数Description 如果一个三位十进制数等于其各位数字的立方和,则称这个数为水仙花数。

如:13+53+33=153。

Input 一个整数x,100<=x<=999。

Output x是水仙花数,则输出“YES”,否则为“NO”。

Sample Input 153
Sample Output YES
HINT Append Code #include int main(){
int a,b,c,x;
scanf(”%d“,&x);
a=x/100;
b=x/10%10;
c=x%10;
if(x==a*a*a+b*b*b+c*c*c)
printf(”Yes“);
else
printf(”No“);}
13.Problem E: 三个数比较大小Description 从键盘上输入0~100之间的三个数,按从小到大的顺序输出。

Input 输入只有一行,为三个整数。

Output 按从小到大输出这三个数。

Sample Input 15 10 20
Sample Output 10 15 20
HINT 用if语句判断各种情况可以解决这个问题。

Append Code #include int main(){
int a,b,c;
scanf(”%d%d%d“,&a,&b,&c);
if(a>=b)
{
if(b>=c)
printf(”%d %d %dn“,c,b,a);
else if(c>=a)
printf(”%d %d %dn“,b,a,c);
else
printf(”%d %d %dn“,b,c,a);
}
else
{
if(a>=c)
printf(”%d %d %dn“,c,a,b);
else if(b>=c)
printf(”%d %d %dn“,a,c,b);
else
printf(”%d %d %dn“,a,b,c);
} }
14.Problem F: 奇怪的求和之一 Description 给定3个正整数a、b和c,按照如下规则求和:如果这个数字是偶数,则累加到和中;
如果这个数字是奇数,则将大于该数的最小偶数累加到和中。

Input 三个正整数,均在100以内。

Output 一个和。

Sample Input 2 3 5
Sample Output 12
HINT 如果不会使用分支语句,可使用条件运算符判断到底将哪个数累积到和中。

Append Code #include int main(){
int a,b,c;
scanf(”%d%d%d“,&a,&b,&c);
if(a%2!=0)a++;
if(b%2!=0)b++;
if(c%2!=0)c++;
printf(”%dn“,a+b+c);
}
15.Problem G: 你过线了吗?Description 经过四年的学习,你决定报考我国著名的“285”高校之一的北青大学,经过认真的复习,残酷的考试,终于知晓了自己的考试成绩,也知道了北青大学的录取分数线,请你编程判断,自己过线了吗?Input 输入有2行,第一行有4个正整数,分别表示三门课程的分数线以及总分分数线。

第二行有3个非负整数,分别表示你考的三门课程的成绩。

Output 如果你的三门课程成绩都不低于相应课程的分数线,且你的考试总分也不低于北青大学的总分分数线要求,则输出“congratulations”,否则输出“sorry”。

Sample Input 70 80 70 240 80 80 82
Sample Output congratulations
HINT 如果你不会使用分支语句,同样可以使用条件运算符实现该
程序。

Append Code #include int main(){
int a,b,c,d,e,f,g,h;
scanf(”%d %d %d %dn%d %d %d“,&a,&b,&c,&d,&e,&f,& g);
h=e+f+g;
if(e>=a&&f>=b&&g>=c&&h>=d)
printf(”congratulations“);
else
printf(”sorry“);} 16.Problem I: A+B Problem(II): Input/Output
Practice 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循环处理方便。

Append Code #include int main(){
int n,a,b,i;Scanf(“%d”,&n);For(i=0;i
17.Problem H: 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。

Append Code #include int main(){
int a,b;
while(scanf(”%d%d“,&a,&b)!=EOF){
printf(”%dn“,a+b);
}
return 0;}
18.Problem A: 判断是否是元音字母Description 输入一个英文字母,判断是否是元音字母。

元音字母是:a,e,i,o u,A,E,I,O,U Input 输入一个英文字母
Output 是元音字母,输出“yes”,否则输出“no”,行尾没有回车。

Sample Input A
Sample Output yes
HINT Append Code #include void main(){
char ch;
scanf(”%c“,&ch);
if(ch>='A'&&ch<='Z')
ch=ch+32;
if(ch=='a')
printf(”yes“);
else if(ch=='e')
printf(”yes“);
else if(ch=='i')
printf(”yes“);
else if(ch=='o')
printf(”yes“);
else if(ch=='u')
printf(”yes“);
else
printf(”no“);
}
19.Problem B: 按顺序输出三个数 Description 对于输入的3个整数,按照从小到大的顺序输出。

Input 输入3个int类型内的整数,两两之间用一个空格隔开。

Output 按照从小到大的顺序输出上述三个数,两两之间用一个空格隔开。

Sample Input 2 1 3 Sample Output 1 2 3
HINT Append Code #include void main(){
int a,b,c,temp;
scanf(”%d%d%d“,&a,&b,&c);
if(a
{
temp=a;
a=b;
b=temp;
}
if(a
{
temp=a;
a=c;
c=temp;
}
if(b
{
temp=b;
b=c;
c=temp;
}
printf(”%d %d %dn“,c,b,a);}
20.Problem E: Description 判断输入整数的奇偶性。

判断奇偶数 Input 输入为一个整数。

Output 输出只有一行,代表判断结果。

如果输入的整数n是一个偶数,输出: n is an even number.否则输出:
n is an odd number.见样例。

Sample Input 12
Sample Output 12 is an even number.HINT Append Code #include int main(){
int a;
scanf(”%d“,&a);
if(a%2==0)
printf(”%d is an even number.“,a);
else
printf(”%d is an odd number.“,a);}
21.Problem A: 判断两个整数的大小关系Description 输入2个整数a和b,如果a>b,则输出1,否则输出0。

Input 两个整数a和b,均不超过int类型的表示范围。

Output 表示a>b的结果:如果a>b,则输出1,否则输出0。

Sample Input 3 4
Sample Output 0
HINT
Append Code #include int main(){ int a,b;scanf(”%d %d“,&a,&b);if(a>b)
printf(”1“);
else
printf(”0“);return 0;} 22.Problem D: 成绩的等级 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语句解决这个问题比较方便。

Append Code #include int main(){
int score;
while(scanf(”%d“,&score)!=EOF)
{
if(score<0||score>100)
printf(”Errorn“);
else
{
switch(score/10)
{
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:printf(”Failingn“);break;
case 6:printf(”Passn“);break;
case 7:printf(”Averagen“);break;
case 8:printf(”Goodn“);break;
case 9:
case 10:printf(”Excellentn“);break;
}
}
}
return 0;}
23.Problem E: 输出是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 难点在于输出格式的控制:空格在数的中间,学会用循环时边界情况的特殊处理。

Append Code #include int main(){ int k,m,n,a,i=1;scanf(”%d %d %d“,&k,&m,&n);if(m
a=m;else
a=n;printf(”%d“,a);for(i=a+1;i<=k;i++){
}
if((i%m==0&&i%n!=0)||(i%n==0&&i%m!=0))
printf(” %d“,i);} return 0;
24.Problem B: 两整数相加减 Description 计算a+b和a-b。

Input 输入为一对整数a和b。

a,b用空格分开。

Output 输出a+b和a-b的计算结果,各占一行。

Sample Input 1 2
Sample Output 3-1
HINT Append Code #include int main(){ int a,b;scanf(”%d %d“,&a,&b);
printf(”%dn“,a+b);
printf(”%dn“,a-b);} 25 Problem C: 它满足条件吗?Description 需要判断给定的一个整数是否同时满足如下三个条件: 1.它是一个完全平方数。

2.它是一个偶数。

3.它是一个正数。

注:若一个数能表示成某个自然数的平方的形式,则称这个数为完全平方数。

例如:
0,1,4,9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,3 24,361,400,441,484,529 Input 一个int范围内的整数。

Output 如果输入的数字满足条件,则输出yes,否则输出no。

Sample Input 100
Sample Output yes
HINT 注意逻辑表达式判断三个条件的顺序。

如果你不会使用分支语句,同样可以使用条件运算符实现该程序。

库函数sqrt()可以用于求一个数的平方根。

Append Code #include #include int main(){ int a;scanf(”%d“,&a);
if(a==sqrt(a)*sqrt(a)&&a%2==0&&a>0)
printf(”yes“);
else
printf(”no“);}
26.Problem F: 多路分支Description 编写一个完整的程序,运行时向用户提问”你考试考了多少分?(0-100)“接受输入后判断其等级并显示出来等级: 优:90<=分数<=100 良:80<=分数<90 中:60<=分数<80 差:0<=分数<60
Input 输入任意一个整数分数值,显示等级;再输入任意一个整数分数值,显示等级;....直到测试数据较充分,可输入-1止。

Output 对任意输入的分数值,输出对应的等级,直到输入的数为-1时才退出运行.Sample Input 102 100 90 80 70 60 50 0-80-1 Sample Output grad must between 0 and 100 优






grad must between 0 and 100 grad must between 0 and 100 HINT Append Code #include int main(){
int x;
while(scanf(”%d“,&x)!=EOF)
{
if(x<0||x>100)
printf(”grad must between 0 and 100n“);
else if(x>=90)
printf(”优n“);
else if(x>=80)
printf(”良n“);
else if(x>=60)
printf(”中n“);
else if(x>=0)
printf(”差n“);
}
return 0;} Problem D: 有多少人? Description 学校举行运动会,如果全体学生按照3人一队列队,则多了1个人;如果按照4人一队列队,则多了2个人;如果按照5人一队排队,则多了3个人。

请问这个学校有多少学生?
Input 一个int类型的正整数N,是学生人数的上界,即:该校学生数不超过N。

Output 所有可能的学生数,每个数占一行。

Sample Input 200
Sample Output 58 118 178
HINT Append Code #include #include int main(){
int n,i;
scanf(”%d“,&n);
for(i==1;i<=n;i++){ if(i%3==1&&i%4==2&&i%5==3)
printf(”%dn“,i);}
return 0;} Problem C: 正负数各有几个? Description 输入若干个整数,求其中正数、负数的个数。

Input 输入分为2行:第一行是一个数字N>0,表示下面有N个整数。

第2行是N个整数,都是int类型的。

Output 输出所输入的N个整数的正数个数和负数个数,并用空格分开2个输出。

Sample Input 10 2 3 4 5-1-2-3-4-5
Sample Output 5 5
HINT 貌似还有一种叫做0的数。

Append Code #include int main(){
int n,a,i,num1=0,num2=0;
scanf(”%d“,&n);for(i=0;i
{
scanf(”%d“,&a);
if(a>0)
num1++;
else if(a<0)
num2++;
}
printf(”%d %dn“,num1,num2);
return 0;} Problem A: A+B Problem(III): Input/Output
Practice 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的使用。

Append Code #include int main(){ int a,b;while(scanf(”%d %d“,&a,&b)!=EOF)
{
if(a!=0||b!=0)
}
printf(”%dn“,a+b);
else。

相关文档
最新文档