1.在屏幕上显示一个短句“Hello World!”。
/*显示“Hello World!”*/
#include<stdio.h> //编译预处理命令
int main(void){ //主函数
printf("Hello World!"); //调用printf()函数输出文字
return 0;
}
2.在屏幕上显示两个短句“Programming is fun.”和“And programming in C is even more fun!”,每行显示一句。
/*显示两行文字*/
#include<stdio.h> //编译预处理命令
int main(void){ //主函数
printf("Programming is fun.\n");
printf("And programming in C is even more fun!\n");
return 0;
}
3.输出倒三角图案,行数为4行。
/*显示倒三角图案*/
#include<stdio.h> //编译预处理命令
int main(void){ //主函数
char c;
int rows = 4;
int i, j;
scanf("%c",&c);
for (i = 0; i < rows; i++) {
for (j = 0; j < i; j++) {
printf(" ");
}
for (j = 0; j < rows - i; j++) {
printf("%c",c);
}
printf("\n");
}
return 0;
}
4.求华氏温度100℉对应的摄氏温度。c表示摄氏温度,f表示华氏温度,计算公式为c=5/9×(f-32)。
/*将华氏温度转换为摄氏温度*/
#include<stdio.h>
int main(void){
int celsius,fahr; //celsius表示摄氏度,fahr表示华氏度
fahr=100;
celsius=5*(fahr-32)/9;
printf("fahr=%d,celsius=%d\n",fahr,celsius);
return 0;
}
5.计算物体自由下落的距离:一个物体从100米的高空自由落下,求它在前3秒内下落的垂直距离。设重力加速度为10m/s²。
/*求距离*/
#include<stdio.h>
int main(void){
float height; //高度
int time=3; //时间为3秒
int g=10; //重力加速度
height=0.5*g*time*time;
printf("下降的高度为%.2f米\n",height);
return 0;
}
6.为鼓励居民节约用水,自来水公司采取用水量按月分段计费的办法,居民应交水费y(元)与月用水量x(吨)的函数关系式如下(设x>=0)。输入用户的月用水量x吨,计算并输出该用户应支付的水费y元(保留两位小数)。
/*计算二分段函数*/
#include<stdio.h>
int main(void){
double x,y;
printf("请输入用水量(单位:吨):");
scanf("%lf",&x);
if(x<=15&&x>=0){
y=4*x/3;
printf("%.2lf吨水应交水费%.2lf元",x,y);
}
else if(x>15){
y=2.5*x-10.5;
printf("%.2lf吨水应交水费%.2lf元",x,y);
}
else{
printf("ERROR!");
}
return 0;
}
7.坚持的力量。以第一天的能力值为基数,用initial表示,能力值相比前一天提高的值factor就是努力参数,坚持天数为day,让我们一起来看看坚持的力量。输入能力的初始值initial、努力参数factor和坚持天数day,根据公式result=initial(1+factor)^day计算出坚持努力后达到的能力值,输出时保留两位小数。
/*坚持的力量*/
#include<stdio.h>
#include<math.h>
int main(void){
int day;//天数
double initial,factor,result;//初始值,努力参数,结果
printf("请输入initial、factor、day,用空格隔开:");
scanf("%lf%lf%d",&initial,&factor,&day);
result=pow(initial*(1+factor),day);
printf("坚持%d天后达到的能力值为%.2lf",day,result);
return 0;
}
8.输入两个整数lower和upper,输出一张华氏-摄氏温度转换表,华氏温度的取值范围是[lower,upper],每次增加1℉。计算公式为c=5×(f-32)/9,其中c表示摄氏温度,f表示华氏温度。
/*输出华氏-摄氏温度转换表*/
#include<stdio.h>
int main(void){
int fahr,lower,upper;//华氏度,温度下限,温度上限
double celsius;//摄氏度
printf("请输入温度下限和温度上限(用空格隔开):");
scanf("%d%d",&lower,&upper);
if(lower>upper){
printf("ERROR!");
}
else{
printf("fahr celsius\n");
for(fahr=lower;fahr<=upper;fahr++){
celsius=(5.0/9.0)*(fahr-32);
printf("%3.d%8.2lf\n",fahr,celsius);
}
}
return 0;
}
9.累加求和。输入一个正整数n,求
/*累加求和*/
#include<stdio.h>
int main(void){
int n;
int sum=0;
printf("请输入正整数n:");
scanf("%d",&n);
for(int i=0;i<=n;i++){
sum+=i;
}
printf("从1至n的累加和为:%d",sum);
return 0;
}
10.输入一个正整数n,计算的前n项和。
/*求前n项和*/
#include<stdio.h>
int main(void){
int denominator,flag,n; //denominator为分母,flag为正负号,n为项数
double item,sum; //item为单项值,sum为求和结果
flag=1; //flag表示第i项的符号,初始值为正
denominator=1; //denominator表示第i项的分母,初始值为1
item=1;//第一项初值
sum=0;//求和结果初值
printf("请输入一个正整数n:");
scanf("%d",&n);
for(int i=1;i<=n;i++){
sum+=item;
flag=-flag;//正负号交替
denominator=denominator+2;//下一项分母增加
item=flag*1.0/denominator;//下一项值
}
printf("前n项和为%lf",sum);
return 0;
}
11.从键盘输入一个正整数n,计算n!。
/*计算n!*/
#include<stdio.h>
int main(void){
int n;
double product=1;//阶乘结果初始化
printf("请输入一个正整数n:");
scanf("%d",&n);
for(int i=1;i<=n;i++){
product*=i;
}
printf("n!=%.0lf",product);
return 0;
}
12.输入一个正整数n,生成一张2的乘方表,输出到的值,可以调用幂函数计算2的乘方。
/*输出乘方表*/
#include<stdio.h>
#include<math.h>
int main(void){
int n;
double power;
printf("请输入一个正整数n:");
scanf("%d",&n);
printf("2^i = power\n");
printf("---------------\n");
for(int i=0;i<=n;i++){
power=pow(2,i);
printf("2^%d = %.0lf\n",i,power);
}
return 0;
}
13.输入一个正整数n(n<=16)生成一张阶乘表,输出0!到n!的值。要求定义和调用函数fact(n)计算n!,然后在程序中调用该函数。
/*输出阶乘表*/
#include<stdio.h>
double fact(int n){
double product=1;
for(int i=1;i<=n;i++){
product*=i;
}
return product;
}
int main(void){
int n;
printf("请输入一个正整数n:");
scanf("%d",&n);
printf("i! = fact(i)\n");
for(int i=0;i<=n;i++){
printf("%d! = %.0lf\n",i,fact(i));
}
return 0;
}
14.简单的猜数游戏。输入你所猜的整数(假定1~100),与计算机产生的被猜数比较,若相等,显示猜中;若不等,显示与被猜数的大小关系。
/*简单的猜数游戏*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int guess;
int target;
char choice;
srand(time(NULL)); // 初始化随机数生成器
target = rand() % 100 + 1; // 生成1到100之间的随机数
do {
printf("请输入你猜测的整数(1~100):");
scanf("%d", &guess);
if (guess == target) {
printf("恭喜你猜中了!\n");
break;
} else if (guess < target) {
printf("你猜的数小了。\n");
} else {
printf("你猜的数大了。\n");
}
printf("是否继续猜数?(Y/N):");
scanf(" %c", &choice); // ※注意空格,用于吸收换行符
} while (choice == 'Y' || choice == 'y');
return 0;
}
15.奇偶分家。输入一个正整数n,再输入n个非负整数,统计奇数和偶数各有多少个?
/*奇偶分家*/
#include <stdio.h>
int main() {
int count_ji=0,count_ou=0,n,number;
//count_ji记奇数个数,count_ou记偶数个数,n为输入数字总个数,number用于判断奇偶
printf("请输入数字个数n:");
scanf("%d",&n);
printf("请输入数据:\n");
for(int i=0;i<n;i++){
scanf("%d",&number);
//判断奇偶
if(number%2==0)
count_ou++;
else
count_ji++;
}
printf("输入的数据奇数个数有%d个,偶数个数有%d个",count_ji,count_ou);
return 0;
}
16.统计指定数量学生的平均成绩与不及格人数。输入一个非负整数n,在输入n个学生的成绩,计算平均分,并统计不及格成绩的学生人数。
/*成绩统计*/
#include <stdio.h>
int main() {
int n,fail=0;//n为总人数,fail为不及格人数
double score,sum=0,average;//sum为总分,average为平均分
printf("请输入学生人数:");
scanf("%d",&n);
if(n==0)
printf("学生人数不能为0!");
else{
for(int i=1;i<=n;i++){
printf("请输入第%d个学生的成绩:",i);
scanf("%lf",&score);
if(score>100||score<0){
printf("成绩不合法!");
i--;
}
else{
sum+=score;
if(score<60)
fail++;
}
}
average=sum/n;
printf("平均分为:%.2lf\n",average);
printf("不及格人数为:%d",fail);
}
return 0;
}
17.求解简单的四则运算表达式。输入一个形式如“操作数 运算符 操作数”的四则运算表达式,输出运算结果,要求对除数为0的情况作特别处理。
/*求解四则运算表达式*/
#include <stdio.h>
// 函数声明
double calculate(double num1, char operator, double num2);
int main(void) {
double num1, num2;
char operator;
// 获取用户输入的表达式
printf("请输入一个形式如“操作数 运算符 操作数”的四则运算表达式:\n");
scanf("%lf %c %lf", &num1, &operator, &num2);
// 检查除数是否为0
if (operator == '/' && num2 == 0) {
printf("除数不能为0!\n");
} else {
double result = calculate(num1, operator, num2);
printf("运算结果为:%.2lf\n", result);
}
return 0;
}
// 计算函数
double calculate(double num1, char operator, double num2) {
double result;
// 根据运算符执行对应的计算操作
switch (operator) {
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '*':
result = num1 * num2;
break;
case '/':
result = num1 / num2;
break;
default:
printf("无效的运算符!\n");
result = 0;
break;
}
return result;
}
18.统计英文字母和数字字符。输入一个正整数n,再输入n个字符,统计其中英文字母、数字字符和其他字符的个数。
/*统计字符,包括英文字母、数字字符和其他字符*/
#include<stdio.h>
int main(void){
int n,digit,letter,other;
char ch;
digit=letter=other=0;//赋初值为0
printf("请输入一个正整数n:");
scanf("%d",&n);
getchar();//吸收换行符
printf("请输入n个字符:");
for(int i=1;i<=n;i++){
ch=getchar();
if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')){//英文字符
letter++;
}else if(ch>='0'&&ch<='9'){//数字字符
digit++;
}else{//其他字符
other++;
}
}
printf("英文字符有%d个,数字字符有%d个,其他字符有%d个\n",letter,digit,other);
return 0;
}