C 练习 含答案

发布 2022-06-25 14:41:28 阅读 4274

第一题:

罗马数字的表示主要依赖以下几个基本符号:

i 1v 5

x 10l 50

c 100d 500

m 1000

这里,我们只介绍一下1000以内的数字的表示法。

单个符号重复多少次,就表示多少倍。最多重复3次。比如:ccc表示300 xx表示20,但150并不用lll表示,这个规则仅适用于i x c m。

如果相邻级别的大单位在右,小单位在左,表示大单位中扣除小单位。比如:ix表示9 iv表示4 xl表示40 更多的示例参见下表,你找到规律了吗?

i,1 ii,2

iii,3iv,4

v,5vi,6

vii,7viii,8

ix,9 x,10

xi,11xii,12

xiii,13

xiv,14

xv,15xvi,16

xvii,17

xviii,18

xix,19

xx,20xxi,21

xxii,22

xxix,29

xxx,30

xxxiv,34

xxxv,35

xxxix,39

xl,40l,50

li,51lv,55

lx,60lxv,65

lxxx,80

xc,90xciii,93

xcv,95

xcviii,98

xcix,99

c,100cc,200

ccc,300

cd,400

d,500dc,600

dcc,700

dccc,800

cm,900

cmxcix,999

本题目的要求是:请编写程序,由用户输入若干个罗马数字串,程序输出对应的十进制表示。

输入格式是:第一行是整数n,表示接下来有n个罗马数字(n<100)。以后每行一个罗马数字。罗马数字大小不超过999。

要求程序输出n行,就是罗马数字对应的十进制数据。

例如,用户输入:

lxxxxciii

dccii则程序应该输出:

允许使用stl类库,但不能使用mfc或atl等非ansi c++标准的类库。例如,不能使用cstring类型(属于mfc类库)。

#include

#include

using namespace std;

char _cmp(char j,int *a)

for(int i=0;i<7;i++)

if(j==a[i])

return i;

return 'null';

void main()

int a[7]=,b[7]=;

int n,i=1,j,sum,b1,b2;

string s;

cin>>n;

while(i<=n)

elsesum+=b[b1];j-=1;}else

cout< i++;

第二题:假设有两种微生物 x 和 y

x出生后每隔3分钟**一次(数目加倍),y出生后每隔2分钟**一次(数目加倍)。

一个新出生的x,半分钟之后吃掉1个y,并且,从此开始,每隔1分钟吃1个y。

现在已知有新出生的 x=10, y=89,求60分钟后y的数目。

如果x=10,y=90 呢?

本题的要求就是写出这两种初始条件下,60分钟后y的数目。

题目的结果令你震惊吗?这不是简单的数字游戏!真实的生物圈有着同样脆弱的性质!也许因为你消灭的那只 y 就是最终导致 y 种群灭绝的最后一根稻草!

#include

using namespace std;

int main()

long int x=10,y=90;

for(int i=1;i<=120;i++)

cout< cout

第三题:某电视台举办了低碳生活大奖赛。题目的计分规则相当奇怪:

每位选手需要回答10个问题(其编号为1到10),越后面越有难度。答对的,当前分数翻倍;答错了则扣掉与题号相同的分数(选手必须回答问题,不回答按错误处理)。

每位选手都有一个起步的分数为10分。

某获胜选手最终得分刚好是100分,如果不让你看比赛过程,你能推断出他(她)哪个题目答对了,哪个题目答错了吗?

如果把答对的记为1,答错的记为0,则10个题目的回答情况可以用仅含有1和0的串来表示。例如:0010110011 就是可能的情况。

你的任务是算出所有可能情况。每个答案占一行。

#include

using namespace std;

int wenti[10];

void judge(int time,int score)

int k;

if (time==10出口。else

int main()

第五题:看这个算式:

如果每个五角星代表 1 ~ 9 的不同的数字。

这个算式有多少种可能的正确填写方法?

以上都是正确的填写法!

注意:111 + 222 = 333 是错误的填写法!

因为每个数字必须是不同的!

也就是说:1~9中的所有数字,每个必须出现且仅出现一次!

注意:不包括数字“0”!

注意:满足加法交换率的式子算两种不同的答案。

所以答案肯定是个偶数!

#include

using namespace std;

int n=0;

void swap(int*a, int*b)

int m;

m=*a;

*a=*b;

*b=m;

bool ok(int *a)

if((a[0]+a[3])*100+(a[1]+a[4])*10+a[2]+a[5]==a[6]*100+a[7]*10+a[8])

return true;

return false;

void perm(int list,int k,int m)

int i;

if(k>m&&ok(list))

for(i=0; i<=m;i

cout< /cout< n++;

else for(i=k;i<=m;i

swap(&list[k],&list[i

perm(list,k+1,m

swap(&list[k],&list[i

int main()

int list

perm(list,0,8);

cout< return 0;

C语言试卷 含答案

一 单项选择题 每小题2分,共40分 1 sizeof float 是。a.一个双精度型表达式。b.一个整型表达式。c.一种函数调用。d.一个不合法的表达式。2 设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值 scanf i d,f f i,f 为了把100和765.12分...

c语言试卷 含答案

螇。一 选择题 26分 肆1.正确的c语言标识符是 a 蒆a buy 2 b 2 buy c buy d buy?肁2.以下选项中,合法转义字符的选项是 a 袇 ab 018 c xcb d ab 蒇3 下列语句中,错误的是 b 袄a define pi 3.14159b include 袀c if...

C理论复习 含答案

c语言复习。一 题型。1 单项选择题 每小题2分,共40分 2 判断题 每小题1.5分,共15分 3 填空题 每空1分,共15分 4 阅读程序写结果题 每小题5分,共30分 二 基本概念。1 算法 p17广义定义 2 c语言程序的构成 p10函数 3 c语言的三种基本结构 p26.顺序 选择 循环 ...