顺序结构程序设计实验一

A - C语言实验——Hello World!(printf练习)
描述
很高兴你能上机实践所学的C语言知识!
编程不是在课本上的几页纸就能学会的,你必须多思考、多上机才能真正学会一门编程语言,这也是我们出这些题目的初衷。
这些题目都是课本上的基本题目,主要目的是让大家巩固课堂上所学到的,希望大家能够认真对待!
为了便于调试题目,做这些题目时可以先在CodeBlocks、DevC++或Microsoft VC++6.0中调试成功后再提交。
下面我们就开始吧:

利用C语言基本格式显示以下内容: Hello World!

输入
本题没有输入数据

输出
输出字符串Hello World!输出后需要换行。

样本
输出
Hello World!

#include<stdio.h>

int main()

{

printf("Hello World!\n");

return 0;

}

printf函数比较严格,引号里面是什么,就会在显示器上输出什么,所以里面的符号不要打错。

B - C语言实验——输出字符串

描述

在屏幕上输出一行信息:

This is a C program. 。

输入

无输入数据。

输出

输出字符串

This is a C program. 。

样本

输出

This is a C program.

#include<stdio.h>

int main()

{

printf("This is a C program.");

return 0;

}

C - C语言实验——图形输出(字符常量练习)

描述

用基本输出语句打印以下图形:

#

##

###

####

#####

######

输入

本题目没有输入数据

输出

输出图形由6行组成,第1行有1个#号,第i行有连续的i个#号:

#

##

###

####

#####

######

样本

输出

#

##

###

####

#####

######

#include<stdio.h>
int main()
{
printf("#\n##\n###\n####\n#####\n######\n");
return 0;
}

实验四的循环结构

#include<stdio.h>
int main()
{
int i,j;
for(i=1;i<=6;i++)
{
for(j=6-i+1;j<=6;j++)
{
printf("#");
}
printf("\n");
}
return 0;
}

D - C语言实验——求两个整数之和

描述

求两个整数之和,不从键盘输入数据,直接使用赋值语句(a=123;b=456)输入数据,然后计算两个整数之和输出。

输入

无输入数据。

输出

输出a和b之和。

样本

输出

sum is 579

#include<stdio.h>
int main()
{
int a=123,b=456;
printf("sum is %d",(a+b));
return 0;
}

上面“(a+b)”中的括号并不是必须的,

去掉也可以,加上仅仅是习惯问题。

因此这样也对。

#include<stdio.h>

int main()

{

int a=123,b=456;

printf("sum is %d",a+b);

return 0;

}

“%d”也可以写为“%i”,以后的“%ld”和“%li”等也是一样,只是前者常用而已,因此这样写也对。

关于“l”可以看看第P题。

E - A+B 问题

描述

计算 a + b。

输入

两个整数 a, b (0 <= a, b <= 10)。

输出

输出 a + b。

样本

输入

1 2

输出

3

#include<stdio.h>
int main()
{
int a,b;
scanf("%d %d",&a,&b);
printf("%d",(a+b));
return 0;
}

和printf函数一样,scanf函数也非常严格,除空格和回车外,引号里面是什么,输入的时候就应该输入什么,否则将会出现错误,可以参考第R题感受一下。

“&”是地址符,表示变量的地址。

这样也是对的,注意scanf里面的“%d”中间没有空格,而这种也是最常用的。

#include<stdio.h>
int main()
{
int a,b;
scanf("%d%d",&a,&b);
printf("%d",(a+b));
return 0;
}

F - C语言实验——交换两个整数的值(顺序结构)

描述

交换两个变量的值,由终端输入两个整数给变量x、y,然后交换x和y的值后,输出x和y。

输入

从键盘输入两个整数变量x和y;

输出

在交换x、y的值后将x和y输出!

样本

输入

4 6

输出

#include<stdio.h>
int main()
{
int a,b,t;
scanf("%d%d",&a,&b);
t=a;
a=b;
b=t;
printf("%d %d",a,b);
return 0;
}

#include<stdio.h>
int main()
{
int a,b;
scanf("%d%d",&a,&b);
a=a+b;
b=a-b;
a=a-b;
printf("%d %d",a,b);
return 0;
}

G - C语言实验——逆置正整数

描述

输入一个三位正整数,将它反向输出。

输入

3位正整数。

输出

逆置后的正整数。

样本

输入

123

输出

321

提示

注意130逆置后是31

#include<stdio.h>
int main()
{
int n,a,b,c;
scanf("%d",&n);
a=n%10;
b=n/10%10;
c=n/10/10%10;
n=a*100+b*10+c;
printf("%d",n);
return 0;
}

在整型中“/”“%”分别代表整除和求余,它们都是转义字符。

关于转义字符可以看看第Q、第R和第S题。

H - C语言实验——买糖果

描述

小瑜是个爱吃糖果的馋鬼,天天嚷着要爸爸买糖果,可是爸爸很忙,哪有时间啊,于是就让小瑜自己去了,糖果3角钱一块,爸爸给小瑜n元钱,请你告诉小瑜最多能买几块糖,还剩几角钱?

输入

输入爸爸给小瑜的钱n元,n为整数。

输出

小瑜最多能买回的糖块数以及剩下的钱(单位为:角),用空格分隔。

样本

输入

2

输出

6 2

#include<stdio.h>
int main()
{
int n,a,b;
scanf("%d",&n);
n=n*10;
a=n/3;
b=n%3;
printf("%d %d",a,b);
return 0;
}

I - C语言实验——三个整数和、积与平均值

描述

给出三个整数,请你设计一个程序,求出这三个数的和、乘积和平均数。

输入

输入只有三个正整数a、b、c。

输出

输出一行,包括三个的和、乘积、平均数。数据之间用一个空格隔开,其中平均数保留小数后面两位。

样本

输入

2 3 3

输出

8 18 2.67

#include<stdio.h>
int main()
{
int a,b,c,sum,mul;
float average;
scanf("%d%d%d",&a,&b,&c);
sum=a+b+c;
mul=a*b*c;
average=sum/3.0;
printf("%d %d %.2f",sum,mul,average);
return 0;
}

“%.2f”中的“.2”表示保留小数点后两位小数,如果在小数点前有数字则是在小数点前保留数字。

注意第九行里面的“3.0”,这样用“/”除出来的数才是实型。

J - C语言实验——格式化输出(常量练习)

描述

用c语言的基本输出格式打印下列内容:

100

A

3.140000

输入

本题目没有输入数据

输出

输出三行数据:

100

A

3.140000

样本

输出

100

A

3.140000

#include<stdio.h>
int main()
{
printf("100\nA\n3.140000");
return 0;
}

K - C语言实验——圆柱体计算

描述

已知圆柱体的底面半径r和高h,计算圆柱体底面周长和面积、圆柱体侧面积以及圆柱体体积。其中圆周率定义为3.1415926。

输入

输入数据有一行,包括2个正实数r和h,以空格分隔。

输出

输出数据一行,包括圆柱体底面周长和面积、圆柱体侧面积以及圆柱体体积,以空格分开,所有数据均保留2位小数。

样本

输入

1 2

输出

6.28 3.14 12.57 6.28

#include<stdio.h>
#define pai 3.1415926
int main()
{
int r,h;
float L,Sdi,Sce,V;
scanf("%d%d",&r,&h);
L=2*pai*r;
Sdi=pai*r*r;
Sce=L*h;
V=Sdi*h;
printf("%.2f %.2f %.2f %.2f",L,Sdi,Sce,V);
return 0;
}

L - C语言实验——温度转换
描述
输入一个华氏温度,输出摄氏温度,其转换公式为:C=5(F-32)/9。

输入
输入数据只有一个实数,即华氏温度。

输出
输出数据只有一个,即摄氏温度,保留2位小数。

样本
输入
32.0
输出
0.00

#include<stdio.h>
int main()
{
float C,F;
scanf("%f",&F);
C=5*(F-32)/9.0;
printf("%.2f",C);
return 0;
}

M - C语言实验——单个字符输入和输出(顺序结构)

描述

用getchar()从键盘上输入一个字符,用putchar()打印出来!

输入

从键盘上输入一个字符!

输出

把刚刚输入的字符打印出来!

样本

输入

A

输出

A

#include<stdio.h>

int main()

{

char a;

a=getchar();

putchar(a);

return 0;

}

N - C语言实验——转换字母(顺序结构)
描述
从键盘上输入一个小写字母,然后将小写字母装换成大写字母输出!

输入
从键盘上输入一个小写字母。

输出
小写字母装换成大写字母输出。

样本
输入
a
输出
A

#include<stdio.h>
int main()
{
char a;
a=getchar();
putchar(a-32);
return 0;
}

#include<stdio.h>
int main()
{
char a;
scanf("%c",&a);
printf("%c",a-32);
return 0;
}

这里关于“a-32”应该查阅ASCⅡ码表

这道题用scanf输入putchar输出和用getchar输入printf输出也可以。

O - 实数的输出和占位

描述

输入一个实数,请你按如下要求输出:

第一行按双精度默认输出,

第二行双精度数输出共占 10 位,其中 3 位小数,右对齐,左补空格并在两端添加星号包裹,

第三行双精度数输出共占 10 位,其中 3 位小数,左对齐,右补空格并在两端添加星号包裹。

输入

一个双ble范围内的正实数 a 。

输出

共三行,按题目描述输出。

样本

输入

123.56789

输出

123.567890

* 123.568*

*123.568 *

#include<stdio.h>
int main()
{
double a;
scanf("%lf",&a);
printf("%lf\n",a);
printf("*%10.3lf*\n",a);
printf("*%-10.3lf*\n",a);
return 0;
}

P - 大整数的输入输出

描述

输入两个 long long 范围内的整数,输出他们的和。

输入

两个 long long 范围内的整数。

输出

输出的两个大整数的和,保证结果在 long long 范围内。

样本

输入

2222222222

3333333333

输出

5555555555

#include<stdio.h>

int main()

{

long long int a,b;

scanf("%lld%lld",&a,&b);

printf("%lld",(a+b));

return 0;

}

“long long int”也可写为“long long”,即省略“int”。

Q - 带' 和 “字符的输出”

描述

输入一个字符,输出两行。

第一行将字符用 ' 包裹。

第二行将字符用 " 包裹。

输入

输入一个字符。

输出

按题目描述输出。

样本

输入

A

输出

'A'

"A"

#include<stdio.h>
int main()
{
char a;
scanf("%c",&a);
printf("'%c'\n",a);
printf("\"%c\"\n",a);
return 0;
}

R - '%'字符的输入输出

描述

输入三个用 '' % '' 分割的正整数 a b c 代表月,日,年,

要求按照输入样式原样输出。

输入

三个int范围内的正整数,中间用 '' %'' 分割。

输出

按题目描述原样输出。

样本

输入

9%17%2018

输出

9%17%2018

#include<stdio.h>
int main()
{
int a,b,c;
scanf("%d%%%d%%%d",&a,&b,&c);
printf("%d%%%d%%%d\n",a,b,c);
return 0;
}

因为%是转义字符,所以输入输出时的“%%”才代表“%”

S - '\'字符的输入输出

描述

输入三个用 '' \ '' 分割的正整数 a b c 代表日,月,年,

要求按照输入样式原样输出。

输入

三个int范围内的正整数,中间用 '' \ '' 分割。

输出

按题目描述原样输出。

样本

输入

9\17\2018

输出

9\17\2018

#include<stdio.h>
int main()
{
int a,b,c;
scanf("%d\\%d\\%d",&a,&b,&c);
printf("%d\\%d\\%d\n",a,b,c);
return 0;
}

T - 十六进制数输出和占位

描述

输入一个整数,请你按如下要求输出:

第一行按原样输出,

第二行以十六进制输出(字母小写),

第三行以十六进制输出(字母大写)。

输入

一个int范围内的正整数 a 。

输出

共三行,按题目描述输出。

样本

输入

456

输出

456

1c8

1C8

#include<stdio.h>
int main()
{
int a;
scanf("%d",&a);
printf("%d\n",a);
printf("%x\n",a);
printf("%X\n",a);
return 0;
}

U - 八进制数输出和占位

描述

输入一个整数,请你按如下要求输出:

第一行按原样输出,

第二行以八进制靠右输出,不足 8 位左补 0 并在两端添加星号包裹,

第三行以八进制靠左输出,不足 8 位右补空格并在两端添加星号包裹。

输入

一个int范围内的正整数 a 。

输出

共三行,按题目描述输出。

样本

输入

123

输出

123

*00000173*

*173 *

#include<stdio.h>
int main()
{
int a;
scanf("%d",&a);
printf("%d\n",a);
printf("*%08o*\n",a);
printf("*%-8o*\n",a);
return 0;
}

V - 十进制输入输出和其它非空格占位

描述

输入一个整数,请你按如下要求输出:

第一行按原样输出,

第二行整数靠右原样输出,不足 8 位左补 0 并在两端添加星号包裹,

第三行整数靠左原样输出,不足 8 位右补空格并在两端添加星号包裹。

输入

一个int范围内的正整数 a 。

输出

共三行,按题目描述输出。

样本

输入

123456

输出

123456

*00123456*

*123456  *

#include<stdio.h>
int main()
{
int a;
scanf("%d",&a);
printf("%d\n",a);
printf("*%08d*\n",a);
printf("*%-8d*\n",a);
return 0;
}

W - 十进制输入输出和空格占位

描述

输入一个整数,请你按如下要求输出:

第一行按原样输出,

第二行按原样靠右输出,不足 8 位左补空格并在两端添加星号包裹,

第三行按原样靠左输出,不足 8 位右补空格并在两端添加星号包裹。

输入

一个int范围内的正整数 a 。

输出

共三行,按题目描述输出。

样本

输入

123456

输出

123456

*  123456*

*123456  *

#include<stdio.h>
int main()
{
int a;
scanf("%d",&a);
printf("%d\n",a);
printf("*%8d*\n",a);
printf("*%-8d*\n",a);
return 0;
}

X - 字符型数据输出和占位
描述
输入一个字符,请你按如下要求输出:

第一行字符数据默认输出,

第二行字符型数据输出共占 4 位,右对齐,左补 3 个空格并在两端添加星号包裹,

第三行字符型数据输出共占 4 位,左对齐,右补 3 个空格并在两端添加星号包裹。

输入
输入一个字符 。

输出
共三行,按题目描述输出。

样本
输入
c
输出
c
*   c*
*c   *

#include<stdio.h>
int main()
{
char a;
scanf("%c",&a);
printf("%c\n",a);
printf("*%4c*\n",a);
printf("*%-4c*\n",a);
return 0;
}

 

  • 7
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实数格式识别 【问题描述】 合法的实数书写格式分一般格式和科学格式两种。分别描述如下: 一般格式为常见的书写格式,分为整数部分和小数部分两部分,中间分用小数点.分隔。整数部分最开始可能含有正号或负号,之后为不含前导零的数字串;小数部分是由0-9十种字符组成的任意长的字符串。当小数部分为0时,小数部分和小数点可以省略。 科学格式由系数部分和指数部分两部分组成,中间用英文字母E分隔。系数部分为实数书写的一般格式;指数部分为可带有正负号数字串。 例如,+2、-1.56为一般格式的实数,而6.2E-2、-9E8为科学格式的实数。 只有小数点而没有小数部分的书写格式为不合法,例如,23.,23.E16均为不合法的实数书写格式。 编程分析哪些数的书写是正确的,是用哪种方式书写的。 【输入形式】 输入文件为当前目录下的real.in。 该文件包含一个字符串(长度不超过20个字符),以回车符结束,表示一个数据(无多余空格)。 【输出形式】 输出文件为当前目录下的real.out。 该文件有一行。如果输入数据的书写是非法的,输出Wrong;如果输入数据是用一般格式书写的,输出“Format1”;如果该数据是用科学格式书写的,输出“Format2”。输出的末尾均要以一个回车符作为结束。 【输入样例1】 +1.23 【输出样例1】 Format1 【输入样例2】 -5.1.1 【输出样例2】 Wrong 【输入样例3】 -5.1E-2 【输出样例3】 Format2 【时间限制】 1s 【空间限制】 65536KB

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值