浙大版《C语言程序设计(第3版)》编程题代码参考(共71题)

前言:

作者没钱买浙大的读者验证码,所以用的vscode2013进行编译。每道题经过一定数据测试,但难免可能会出错。另外作者是三四天内刷完题并写完这篇文章的,所以没时间每道题写思路,有看不懂的地方请私信dd。

练习2-1 Programming in C is fun!
#include<stdio.h>
int main() {
	printf("Programming in C is fun!\n");
	return 0;
}
练习2-3 输出倒三角图案
#include<stdio.h>
int main() {
	int i = 0;
	for (i = 0; i < 4; i++) {
		int j = 0;
		for (j = 0; j <= i; j++) {
			printf(" ");
		}
		int m = 0;
		for (m = 0; m < 4 - i; m++) {
			printf("* ");
		}
		printf("\n");
	}
	return 0;
}
练习2-4 温度转换
#include<stdio.h>
int main() {
	int F = 150;
	int C = 5 * (F - 32) / 9;
	printf("fahr = %d,celsius =%d ",F,C);
	return 0;
}
练习2-6 计算物体自由下落的距离
#include<stdio.h>
int main() {
	float h = (10 * 3 * 3) / 2.0;
	printf("%.2f", h);
	return 0;
}
练习2-8 计算摄氏温度
#include<stdio.h>
int main(){
	int f = 0;
	scanf("%d", &f);
	int c = 5 * (f - 32) / 9;
	printf("Celsius = %d", c);
	return 0;
}
练习2-9 整数四则运算
#include<stdio.h>
int main() {
	int num1 = 0;
	int num2 = 0;
	scanf("%d %d", &num1, &num2);
	printf("%d + %d = %d\n", num1, num2, num1 + num2);
	printf("%d - %d = %d\n", num1, num2, num1 - num2);
	printf("%d * %d = %d\n", num1, num2, num1 * num2);
	printf("%d / %d = %d\n", num1, num2, num1 / num2);

	return 0;
}
练习2-10 计算分段函数[1]
#include<stdio.h>
int main() {
	float x = 0.0f;
	scanf("%f", &x);
	if (x == 0) {
		printf("f(%.1f) = %.1f",(int)x,(int)x);
	}
	else {
		printf("f(%.1f)= %.1f", x, 1.0 / x);
	}
	return 0;
}
练习2-11 计算分段函数[2]
#include<math.h>
int main() {
	float x = 0.0f;
	scanf("%f", &x);
	if (x >= 0) {
		printf("f(%.2f) = %.2f", x,sqrt(x));
	}
	else {
		printf("f(%.2f) = %.2f", x, (((x + 1) * (x + 1)) + (2 * x) + (1 / x)));
	}

	return 0;
}
练习2-12 输出华氏-摄氏温度转换表
int main() {
	int lower = 0;
	int upper = 0;
	scanf("%d %d", &lower, &upper);	
	if ((lower <= upper) && upper <= 100) {
		printf("fahr celsius\n");
		int i = 0;
		for (i = lower; i <= upper; i += 2) {
			printf("%d %6.1f\n", i, (5 * (i - 32) / 9.0));
		}
	}
	else {
		printf("Invalid\n");
	}

	return 0;
}
练习2-13 求N分之一序列前N项和
int main() {
	int n = 0;
	double sum = 0;
	scanf("%d", &n);
	int i = 0;
	for (i = 1; i <= n; i++) {
		sum += 1.0 / i;
	}
	printf("sum = %.6lf", sum);
	return 0;
}
练习2-14 求奇数分之一序列前N项和
int main() {
	int n = 0;
		double sum = 0;
		scanf("%d", &n);
		int i = 0;
		for (i = 1; i <= 2 *n -1; i += 2) {
			sum += 1.0 / i;
		}
		printf("sum = %.6lf", sum);
	return 0;
}
练习2-15 求简单交错序列前N项和
int main() {
	int n = 0;
	int flag = 1;//控制正负
	double sum = 0;
	scanf("%d", &n);	
		int i = 0;
		for (i = 1; i <= 3 * n - 2; i += 3) {
			sum += (1.0 / i) * flag;
			flag = -flag;
		printf("sum =%.3lf\n",sum);
	}
	return 0;
}
练习2-17 生成3的乘方表
#include<math.h>
int main() {
	int n = 0;
	scanf("%d", &n);
	int i = 0;
	for (i = 0; i < n + 1; i++) {
		printf("pow(3,%d) = %d\n", i, (int)pow(3, i));
	}
	return 0;
}
练习2-18 求组合数
double fact(int n) {
	int result = 1;
	int i = 0;
	for (i = 1; i <= n; i++){
		result *= i;
	}
	return result;
}
int main() {
	int m = 0;
	int n = 0;
	scanf("%d %d", &m, &n);
	printf("result = %d", (int)(fact(n) / (fact(m) * fact(n - m))));
	return 0;
}
习题2-1 求整数均值
int main() {
	int n = 0;
	int count = 0;
	int sum = 0;
	while (scanf("%d", &n) != EOF) {
		count++;
		sum += n;
		if (count == 4) {
			printf("sum = %d;average = %.1lf",sum,sum / (double)count);
		}
	}

	return 0;
}
习题2-2 阶梯电价
int main() {
	int n = 0;
	double price = 0.0;
	scanf("%d", &n);
	if ( n >= 0 && n <= 50) {
		price = 0.53 * n;
		printf("cost = %.2lf\n", price);
	}
	else if(n >= 50) {
		price = 0.53 * 50 + (n - 50) * (0.53 + 0.05);
		printf("cost = %.2lf\n", price);
	}
	else {
		printf("invalid\n");
	}
	return 0;
}
习题2-3 求平方与倒数序列的部分和
int main() {
	int m = 0;
	int n = 0;
	double sum = 0.0;
	scanf("%d %d", &m, &n);
	if (m <= n && m != 0 && n != 0) {
		int i = 0;
		for (i = m; i <= n; i++) {
			sum += (i * i) + 1.0 / i;
		}
		printf("sum = %.6lf", sum);

	}
	return 0;

}

习题2-4 求交错序列前N项和
 
#include<math.h>
int main() {
	int n = 0;
	double sum = 0;
	scanf("%d", &n);
	int i = 0;
	int j = 0;
	for (i = 1,j = 1; i <= n; i++,j += 2) {
		sum += pow(-1, i + 1) * i / j ;
	
	}
	printf("%.3f", sum);
	return 0;
}

习题2-5 求平方根序列前N项和
#include<math.h>
int main() {
	int n = 0;
	double sum = 0.0;
	scanf("%d", &n);
	int i = 0;
	for (i = 1; i <= n; i++) {
		sum += sqrt(i);
	}
	printf("%.2lf", sum);
	return 0;
}

习题2-6 求阶乘序列前N项和
 
int main() {
	int n = 0;
	int ret = 1;
	int sum = 0;
	scanf("%d", &n);
	int i = 0;
	for (i = 1; i <= n; i++) {
		ret *= i;
		sum += ret;
	}
	printf("%d", sum);
	return 0;
}

练习3-2 计算符号函数的值

enum Sign
{
	LESS_THAN = -1,
	EQULA,
	MORE_THAN
};
int main() {
	
	int n = 0;
	scanf("%d", &n);
	if (n > 0) {
		printf("sign(%d) = %d",n, MORE_THAN);
	}
	else if (n == 0) {
		printf("sign(%d) = %d", n, EQULA);
	}
	else {
		printf("sign(%d) = %d", n, LESS_THAN);
	}


	return 0;
}

练习3-3 统计学生平均成绩与及格人数
 
int main() {
	int n = 0;
	int score = 0;
	double sum = 0.0;
	int count = 0;
	scanf("%d",&n);
	int i = 0;
	for (i = 0; i < n; i++) {
		scanf("%d", &score);
		if (score >= 60) {
			count++;
		}
		sum += score;
	}
	printf("average = %.1lf\ncount = %d\n", sum / n,count);
	return 0;
}

练习3-4 统计字符
 
#include<ctype.h>
int main() {
	char c = '0';
	int letter = 0;
	int blank = 0;
	int digit = 0;
	int other = 0;
	int count = 0;
	while (count != 10){
		count++;
		c = getchar();
		if (isalpha(c)){
			letter++;
		}
		else if (isspace(c)) {
			blank++;
		}
		else if (isdigit(c)){
			digit++;
		}
		else {
			other++;
		}
	
	}
	printf("letter = %d, blank = %d,digit = %d,other = %d\n", letter, blank, digit, other);
	return 0;
}<
C语言是古老而长青的编程语言,它具备了现代程序设计的基础要求,它的语法是很多其他编程语言的基础,在系统程序、嵌入式系统等领域依然是无可替代的编程语言,在各类编程语言排行榜上常年占据前两名的位置。 本课程是零基础的编程入门课,是后续的操作系统、编译原理、体系结构等课程的基石。 —— 课程团队 课程概述 程序设计是一门基础课程。对于计算机相关专业而言,程序设计是专业基础知识,是进一步学习其他专业知识的第一步阶梯;对于非计算机专业而言,程序设计的学习有助于理解计算机的能力所在,理解哪些是计算机擅长解决的问,怎样的方式方法是计算机擅长的手段,从而能更好地利用计算机来解决本专业领域内的问。 C语言是古老而长青的编程语言,它具备了现代程序设计的基础要求,它的语法是很多其他编程语言的基础,在系统程序、嵌入式系统等领域依然是无可替代的编程语言,在各类编程语言排行榜上常年占据前两名的位置。 对于非计算机专业的学生,学习本课程的主要目的是掌握程序设计的基本方法,C语言是教学媒介。但是对于计算机专业的学生,本课程是向后续的计算机组成、操作系统、编译原理、体系结构等课程前进的基石,对于C语言本身甚至程序设计语言基础原理的深入理解都是应该掌握的。 本课程是零基础的入门课程,完成本课程之后,就能具有初步的运用C语言编写程序的能力。要想完整的学习C语言,还需要进一步学习本课程的后续课程——《C语言程序设计进阶》。 程序设计是实践性很强的课程,该课程的学习有其自身的特点,听不会,也看不会,只能练会。你必须通过大量的编程训练,在实践中掌握编程知识,培养编程能力,并逐步理解和掌握程序设计的思想和方法。在这里所提供的,只是基础的知识讲解,要想学会编程,还需要更多时间的投入和努力。 为了学习编程,你需要有一台计算机,安装必要的编程软件。无论是MS Windows、Mac OS X还是Linux,都有适合C语言编程的软件。如果搞不定自己电脑上的编程软件,我们也会提供在网页中编写、运行C语言程序的方法。 课程大纲 01 程序设计与C语言 课时 1 计算机和编程语言 2 C语言 3 第一个程序 02 计算 课时 1 变量 2 数据类型 3 表达式 4 在线评判系统 03 判断与循环 课时 1 判断 2 循环 04 进一步的判断与循环 课时 1 逻辑类型和运算 2 级联和嵌套的判断 3 多路分支 4 循环的例子 5 判断和循环常见的错误 05 循环控制 课时 1 循环控制 2 多重循环 3 循环应用 06 数组与函数 课时 1 数组 2 函数的定义与使用 3 函数的参数和变量 4 二维数组 07 数组运算 课时 1 数组运算 2 搜索 3 排序初步 08 指针与字符串 课时 1 指针 2 字符类型 3 字符串 4 字符串计算 预备知识 作为第一门编程课,本课程可以零基础学习。大学计算机(大学计算机基础、计算思维导论)等课程对于理解本课程的部分内容有帮助,但这些课程的学习不是必须的。 证书要求 课程的总分达到60分以上,可以获得本课程的合格证书。 课程的总分达到85分以上,可以获得本课程的优秀证书。 参考资料 何钦铭、颜晖,《C语言程序设计(第3)》,高等教育出社,2015年,ISBN 978-7-04-043128-3 颜晖、张泳,《C语言程序设计实验与习指导(第3)》,高等教育出社,2015年,ISBN 978-7-04-043563-4 常见问 Q:我需要特殊本的计算机吗? A:任何计算机都可以用于C语言编程,包括但不限于各个本的MS Windows、各个本的Mac OS X、各种发行本的Linux。有的手机有app也能实现C语言编程,不过我们不推荐那么小的屏幕。 Q:我需要安装特定的软件才能做这门课的作业吗? A:任何C语言的开发工具都可以。课程演示会使用Dev C++及命令行环境,但是你使用任何其他开发工具都不会影响做作业的正确性。可以使用的其他工具包括但不限于MS Visual Studio、C-Free等。 Q:每周会发布多少时间的视频?我需要花多少时间来学习? A:我们按照90分钟的授课时间来设计课程。但是发布的视频肯定小于90分钟,一般在50到70分钟左右。因为在线下上课时,老师可能会回顾一下上周的内容、某些内容会看学生的反应重复几遍、会当堂问做一些提问,以及在各种软件等教学工具之间切换,这些都要花点时间,而这些在线上课程中都不存在了,所以视频的时间不会正好是90分钟。但是一般我们设计课程需要1:1.5到1:2的课后学习时间,这包括预习、作业、练习和复习的时间,所以每周大约需要花费三到五小时的时间。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值