目录
四、实验3 - 最简单的C程序设计——顺序程序设计 (实验报告见资源下载)
前言
1.本专栏基于谭浩强先生写的《C程序设计(第五版)》与《C程序设计(第五版)学习辅导》配套的相关试题和实验,给出常见C语言基础试题相应代码,方便大家参考学习
2.本专栏所有代码均在本地及Online Judge(OJ)平台测试通过,注意各大OJ平台的测试标准不同,可能存在出入,若很遗憾无法提交,则仅作为程序实现思想交流
3.本专栏仅收录个人C实验,仅仅实现程序功能,不涉及高性能算法,当然也欢迎算法师傅交流优化
4.部分代码参考网上代码后经个人修改优化,望周知
5.部分代码存在与题目描述不符的情况,望周知
6.创作不易,整理不易,若对您有帮助请评论/点赞/收藏/转发,尊重每个技术人!
一、整数算术运算
【问题描述】
本题要求编写程序,计算并输出2个正整数的和、差、积、商与余数。题目保证输入和输出全部在整型范围内,且分母不为0。
【输入形式】
输入在一行中给出2个正整数A和B。
【输出形式】
在5行中按照格式“A 运算符 B = 结果”顺序输出和、差、积、商与余数。
【样例输入】
5 3
【样例输出】
5+3=8
5-3=2
5*3=15
5/3=1
5%3=2
#include<stdio.h>
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a,b ;
scanf("%d %d",&a,&b);
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("a %% b = %d\n",a%b);
system("pause") ;
return 0 ;
}
二、计算心理阴影面积
【问题描述】
这是一幅心理阴影面积图。我们都以为自己可以匀速前进(图中蓝色直线),而拖延症晚期的我们往往执行的是最后时刻的疯狂赶工(图中的红色折线)。由红、蓝线围出的面积,就是我们在做作业时的心理阴影面积。现给出红色拐点的坐标(x,y),要求你算出这个心理阴影面积。
【输入形式】
输入在一行中给出 2 个不超过 100 的正整数x和y ,并且保证有x>y。这里假设横、纵坐标的最大值(即截止日和最终完成度)都是 100。
【输出形式】
在一行中输出心理阴影面积。
友情提醒:三角形的面积 = 底边长 x 高 / 2;矩形面积 = 底边长 x 高。嫑想得太复杂,这是一道 5 分考减法的题……
【样例输入】
90 10
【样例输出】
4000
#include<stdio.h>
#include<stdlib.h>
#include <math.h>
int main()
{
int b=100,x,y ;
double a ,c=2.0 ,h ,s;
scanf("%d %d",&x,&y);
a=b*sqrt(c);
h=(x-y)/sqrt(c);
s = (a*h)/2 ;
printf("%.f",s);
system("pause") ;
return 0 ;
}
三、字符译码
【问题描述】
输入为5个大写字母,将其译成密码,其译码规律为将单个字母用它前面第4个字母代替,如'E'用'A'代替,'Z'用'V'代替,但前四个大写字母'A'、'B'、'C'、'D'分别使用'W'、'X'、'Y'、'Z'代替。
【输入形式】
五个大写字母
【输出形式】
译码后结果
【样例输入】
MOVIE
【样例输出】
IKREA
【样例说明】
提示:当输入为前四个字母时,仔细寻找变换规律,可采用选择结构(if else)和表达式语句实现判断是否为前4个字母
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i ;
char arr[5];
scanf("%c%c%c%c%c",&arr[0],&arr[1],&arr[2],&arr[3],&arr[4]);
for(i=0;i<5;i++)
{
if (arr[i] >= 65 && arr[i] <= 68) {
printf("%c",arr[i]+26-4);
} else {
printf("%c",arr[i]-4) ;
}
}
system("pause");
return 0 ;
}
四、实验3 - 最简单的C程序设计——顺序程序设计 (实验报告见资源下载)
实验3-最简单的C程序设计-顺序设计-C文档类资源-优快云文库https://download.youkuaiyun.com/download/m0_66842854/87512389
五、4个数按从大到小输出
【问题描述】
输入4个整数,要求按从大到小顺序输出
【输入形式】
4个整数
【输出形式】
按从大到小顺序输出
【样例输入】
1 5 2 7
【样例输出】
Order from largest to smallest=7 5 2 1
【样例说明】
输入输出数据均采用空格符进行分隔
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main()
{
int arr[4],i,j ,temp;
//printf("请输入4个数:") ;
scanf("%d%d%d%d",&arr[0],&arr[1],&arr[2],&arr[3]) ;
for(i=0;i<3;i++){
for(j=0;j<3-i;j++){
if (arr[j] < arr[j+1]) {
temp=arr[j+1] ;
arr[j+1]=arr[j] ;
arr[j]=temp ;
}
}
}
printf("Order from largest to smallest=%d %d %d %d",arr[0],arr[1],arr[2],arr[3]) ;
system("pause");
return 0 ;
}
六、实验4 - 选择结构程序设计(实验报告见资源下载)
实验4-选择结构程序设计-C文档类资源-优快云文库https://download.youkuaiyun.com/download/m0_66842854/87512399
七、统计不同字符个数
【问题描述】统计不同字符个数:输入一行字符,统计其中的大写字母、小写字母、空格、数字以及其他字符的个数。
【输入形式】
【输出形式】
【样例输入】ewrAA 112*&^%
【样例输出】upper: 2 lower: 3 blank: 1 digit: 3 other: 4
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{ char array[80] ;
int j,count_uppercase=0,count_lowercase=0,count_num=0,count_space=0,count_other=0 ;
gets(array);
for(j=0;j<80&&array[j]!='\0';j++){
if(array[j]==' '){
count_space++ ;
}else if ('a'<=array[j]&&array[j]<='z'){
count_lowercase++ ;
}else if ('A'<=array[j]&&array[j]<='Z'){
count_uppercase++ ;
}else if ('0'<=array[j]&&array[j]<='9'){
count_num++ ;
}else {
count_other++ ;
}
}
printf("upper:%d lower:%d blank:%d digit:%d other:%d",
count_uppercase,count_lowercase,count_space,count_num,count_other) ;
system("pause");
return 0 ;
}
八、实验5 - 循环结构程序设计 (实验报告见资源下载)
实验5-循环结构程序设计-C文档类资源-优快云文库https://download.youkuaiyun.com/download/m0_66842854/87512408
九、三天打鱼两天晒网
【问题描述】
中国有句俗语叫“三天打鱼两天晒网”。假设某人从某天起,开始“三天打鱼两天晒网”,问这个人在以后的第N天中是“打鱼”还是“晒网”?
【输入形式】
输入在一行中给出一个不超过1000的正整数N。
【输出形式】
在一行中输出此人在第N天中是“Fishing”(即“打鱼”)还是“Drying”(即“晒网”),并且输出“in day N”
【样例输入1】
103
【样例输出1】
Fishing on day 103
【样例输入2】
34
【样例输出2】
Drying on day 34
#include<stdio.h>
#include<stdlib.h>
int main()
{
int num ,temp;
scanf("%d",&num) ;
temp = num % 5 ;
if(temp <= 3 && temp != 0 ) {
printf("Fishing on day %d",num) ;
} else {
printf("Drying on day %d",num) ;
}
system("pause");
return 0 ;
}
十、最佳情侣身高差
【问题描述】
专家通过多组情侣研究数据发现,最佳的情侣身高差遵循着一个公式:(女方的身高)×1.09 =(男方的身高)。如果符合,你俩的身高差不管是牵手、拥抱、接吻,都是最和谐的差度。
下面就请你写个程序,为任意一位用户计算他/她的情侣的最佳身高。
【输入形式】
输入第一行给出正整数N≤10,为前来查询的用户数。随后N行,每行按照“性别 身高”的格式给出前来查询的用户的性别和身高,其中“性别”为“F”表示女性、“M”表示男性;“身高”为区间 [1.0, 3.0] 之间的实数。
【输出形式】
对每一个查询,在一行中为该用户计算出其情侣的最佳身高,保留小数点后2位。
【样例输入】
2
M 1.75
F 1.8
【样例输出】
1.61
1.96
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i,n;
double h;
char sex;
scanf("%d",&n);
getchar();
for(i=0;i<n;i++)
{
scanf("%c %lf",&sex,&h);
getchar();
if(sex=='M'){
printf("%.2lf\n",h/1.09);
}else if(sex=='F'){
printf("%.2lf\n",h*1.09);
}
}
system("pause");
return 0 ;
}
十一、求e
【问题描述】
输入一个正整数n,计算下式的和:e = 1+1/1! + 1/2! + 1/3! +...+1/n! (保留4 位小数)
【输入形式】
【输出形式】
【样例输入】
5
【样例输出】
2.7167
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i ,n,deno = 1;
float e = 1 ;
scanf("%d",&n);
for(i =1 ;i <= n;i++)
{
deno *= i;
e += 1.0 / deno ;
}
printf("%.4f\n",e);
system("pause");
return 0;
}
十二、输出整数各位数字
【问题描述】
输出整数各位数字:输入一个整数number(≥0),从高位开始逐位分割并输出它的各位数字。试编写相应程序。
【输入形式】
【输出形式】
【样例输入】
1012
【样例输出】
1 0 1 2
#include<stdio.h>
int main()
{
int num=0,t=0,mask=1;
scanf("%d",&num);
t=num;
while(t>9){
t/=10;
mask*=10;
}
while(mask>0){
printf("%d ",num/mask);
num%=mask;
mask/=10;
}
return 0;
}
十三、九宫格键盘模拟输入
【问题描述】
假设有九宫格输入法键盘布局如下:
[ 1,.?! ] [ 2ABC] [ 3DEF]
[ 4GHI] [ 5JKL ] [ 6MNO]
[ 7PQRS] [ 8TUV] [ 9WXYZ]
[ 0空 ]
注意:中括号[ ]仅为了表示键盘的分隔,不是输入字符。每个中括号中,位于首位的数字字符即是键盘的按键,按一下即可输入该数字字符。多次按同一个键,则输入的字符依次循环轮流,例如按两次3,则输入D;按5次7,则输入S;按2次2,则输入A。按键0的输入组合是0和空格字符,即按两次0输入空格。整个输入以回车符结束输入。
你需要对于给定的按键组合,给出该组合对应的文本。
【输入形式】
输入在一行中给出数个字符的按键组合(例如 999
表示按3次9
),每个字符的按键组合之间用空格间隔,最后一个输入法组合之后以换行结束。输入数据至少包括一个字符的按键组合,且输入总长度不超过500个字符。
【输出形式】
在一行中输出该按键组合对应的文本。
【样例输入】
4444 00 5555 6666 8888 333 00 2222 6666 33 4444 666 44
【样例输出】
I LOVE CODING
【Tips】:
可通过输入的空格符(不是00)判断单个字符输入完成,并根据输入同一数字的次数,进行判断输出哪个字符(如果用了很多很多个if,记得还有个switch可以试试 (* ̄︶ ̄) )。
#include<stdio.h>
#include<string.h>
int main()
{
int i,j,len1,len2,t,k=0;
char a[10][6]={"0 ","1,.?!","2ABC","3DEF","4GHI","5JKL","6MNO","7PQRS","8TUV","9WXYZ"};
char b[500];
gets(b);
len2=strlen(b);
for(i=0;i<len2;i++)
{
t=b[i]-'0';
len1=strlen(a[t]);
while(b[i]!=' '&&b[i]!='\0')
{
i++;
k++;
}
j= k%len1==0?len1-1:k%len1-1;
printf("%c",a[t][j]);
k=0;
}
printf("\n");
return 0;
}
总结
本专栏旨在帮助C语言初学者学习编程,仅供学习交流!