CC++编程题目和代码文档格式.docx

上传人:b****5 文档编号:19945783 上传时间:2023-01-12 格式:DOCX 页数:82 大小:53.65KB
下载 相关 举报
CC++编程题目和代码文档格式.docx_第1页
第1页 / 共82页
CC++编程题目和代码文档格式.docx_第2页
第2页 / 共82页
CC++编程题目和代码文档格式.docx_第3页
第3页 / 共82页
CC++编程题目和代码文档格式.docx_第4页
第4页 / 共82页
CC++编程题目和代码文档格式.docx_第5页
第5页 / 共82页
点击查看更多>>
下载资源
资源描述

CC++编程题目和代码文档格式.docx

《CC++编程题目和代码文档格式.docx》由会员分享,可在线阅读,更多相关《CC++编程题目和代码文档格式.docx(82页珍藏版)》请在冰豆网上搜索。

CC++编程题目和代码文档格式.docx

inti,j,t;

cin>

>

t;

while(t--)

{

for(i=0;

i<

2;

i++)

for(j=0;

j<

3;

j++)

cin>

a[i][j];

change(a[0],b[0]);

}

}

voidchange(int*p,int*q)

inti,j;

*(q+4-2*j+i)=*(p+3*i+j);

//b[2-j][i]=a[i][j];

cout<

<

*(q+2*i+j)<

"

"

;

cout<

endl;

2.函数指针(函数调用)

定义并实现三个函数:

第一个函数是整数函数,返回类型为整数,参数是一个整数变量,操作是求该变量的平方值

第二个函数是浮点数函数,返回类型为浮点数,参数是一个浮点数变量,操作是求该变量的平方根值。

求平方根可以使用函数sqrt(浮点参数),将返回该参数的平方根,在VC中需要头文件cmath。

第三个函数是字符串函数,无返回值,参数是一个字符串指针,操作是把这个字符串所有小写字母变成大写。

定义三个函数指针分别指向这三个函数,然后根据调用类型使用函数指针来调用这三个函数。

不能直接调用这三个函数。

如果类型为I,则通过指针调用整数函数;

如果类型为F,则通过指针调用浮点数函数;

如果类型为S,则通过指针调用字符串函数

第一行输入一个t表示有t个测试实例

每行先输入一个大写字母,表示调用类型,然后再输入相应的参数

依次输入t行

每行输出调用函数后的结果

5

Sshenzhen

I25

F6.25

I31

SChina

SHENZHEN

625

2.5

961

CHINA

cmath>

cstring>

intfuck1(inta);

floatfuck2(floata);

voidfuck3(char*a);

int(*INT)(int);

float(*FLOAT)(float);

void(*CHAR)(char*a);

charch,b[30];

inta,t;

floatc;

ch;

if(ch=='

I'

INT=fuck1;

a;

cout<

INT(a)<

elseif(ch=='

F'

FLOAT=fuck2;

c;

FLOAT(c)<

S'

CHAR=fuck3;

b;

CHAR(b);

b<

intfuck1(inta)

returna*a;

floatfuck2(floata)

returnsqrt(a);

voidfuck3(char*a)

inti,l=strlen(a);

l;

if(*(a+i)>

='

a'

&

&

*(a+i)<

z'

*(a+i)=*(a+i)-32;

3.数字判断(指针为函数参数)

输入一个字符串,判断这个字符串是否一个完全整数值的字符串,例如输入"

1234"

,那么表示整数1234,输入"

12a3"

就表示只是一个字符串,不是一个整数

要求编写函数isNumber,参数是一个字符指针,返回值是整数类型

如果字符串表示一个整数,则计算出这个整数并且返回

如果字符串不是表示一个整数,则返回-1

主函数必须调用isNumber来判断字符串,不能使用任何C++自带或第三方的类似函数

输入t表示有t个测试实例

每行输入一个字符串

每行输出判断结果

3

1234

567a

0890

-1

890

intisnumber(char*a);

intl,k=0,t;

chara[20];

char*p;

p=a;

cin>

while(t--)

cout<

isnumber(p)<

intisnumber(char*a)

inti,j,l,m=0;

l=strlen(a);

for(i=0;

if(isdigit(a[i]))

m=m*10+a[i]-'

0'

else

return-1;

returnm;

4.字符串比较(字符指针)

编写一个函数比较两个字符串,参数是两个字符指针(要求显式定义,例如char*S,char*T),比较字符串S和T的大小。

如果S大于T,则返回1,如果S小于T则返回-1,如果S与T相等则返回0。

比较规则:

1.把两个字符串的相同位置上的字符进行比较,字符的大小比较以ASCII值为准

2.在比较中,如果字符串S的字符大于字符串T的字符的数量超过小于的数量,则认为S大于T,如果等于则S等于T,如果小于则S小于T

例如S为aaccdd,T为eebbbb,每个位置比较得到S前两个字母都小于T,但后4个字母都大于T,最终认为S大于T

3.如果两个字符串长度不同,则更长的字符串为大

在主函数中输入两个字符串,并调用该函数进行判断,在判断函数中必须使用函数参数的指针进行字符比较

接着每两行输入两个字符串

每行输出一个实例的比较结果

aaccdd

eebbbb

AAbb++

aaEE*-

zznnkk

aaaaaaa

1

intbijiao(char*a,char*b);

chara[30],b[30];

intt;

a>

bijiao(a,b)<

intbijiao(char*a,char*b)

inti,x=0,y=0,m,n;

m=strlen(a);

n=strlen(b);

if(m>

n)return1;

elseif(m<

n)return-1;

*(a+i)!

\0'

if(*(a+i)>

*(b+i))

x++;

y++;

if(x>

y)

return1;

elseif(x==y)

return0;

5.秘钥加密法(指针应用)

有一种方式是使用密钥进行加密的方法,就是对明文的每个字符使用密钥上对应的密码进行加密,最终得到密文

例如明文是abcde,密钥是234,那么加密方法就是a对应密钥的2,也就是a偏移2位转化为c;

明文b对应密钥的3,就是b偏移3位转化为e,同理c偏移4位转化为g。

这时候密钥已经使用完,那么又重头开始使用。

因此明文的d对应密钥的2,转化为f,明文的e对应密钥的3转化为h。

所以明文abcde,密钥234,经过加密后得到密文是cegfh。

如果字母偏移的位数超过26个字母围,则循环偏移,例如字母z偏移2位,就是转化为b,同理字母x偏移5位就是转化为c

使用三个指针p、q、s分别指向明文、密钥和密文,然后使用指针p和q来访问每个位置的字符,进行加密得到密文存储在指针s指向的位置。

除了变量定义和输入数据,其他过程都不能使用数组下标法,必须使用三个指针来访问明文、密钥和密文。

当指针q已经移动到密钥的末尾,但明文仍然没有结束,那么q就跳回密钥头

第二行输入一个字符串,表示第一个实例的明文

第三行输入一个数字串,表示第一个实例的密钥

每行输出加密后的密文

abcde

234

XenOS

56

cegfh

CksUX

voidchange1(char*d,int*b);

voidchange2(char*a,int*b,char*c,intl);

chara[30],d[30],c[30],*p,*s;

inti,l,b[30],*q,t;

d;

change1(d,b);

l=strlen(d);

change2(a,b,c,l);

*(c+i)!

c[i];

voidchange1(char*d,int*b)

inti,l=strlen(d);

b[i]=d[i]-'

voidchange2(char*a,int*b,char*c,intl)

inti,j;

*(c+i)=((*(a+i)+*(b+i%l)-97)%26+97);

*(c+i)=((*(a+i)+*(b+i%l)-65)%26+65);

*(c+i)='

6.谁是老二(结构体)

题目描述

定义一个结构体,包含年月日,表示一个学生的出生日期。

然后在一群学生的出生日期中找出谁的出生日期排行第二

出生日期的存储必须使用结构体,不能使用其他类型的数据结构。

要求程序全过程对出生日期的输入、访问、输出都必须使用结构。

第一行输入t表示有t个出生日期

每行输入三个整数,分别表示年、月、日

输出排行第二老的出生日期,按照年-月-日的格式输出

6

198056

198183

1980319

198053

1983912

19811123

1980-5-3

intsheng(inty,intm,intd);

structstudent

intyear;

intmonth;

intday;

intsheng;

};

studenta[10];

studentb;

intn,i,j;

n;

a[i].year;

a[i].month;

a[i].day;

n-1;

for(j=0;

n-1-i;

if(a[j].year>

a[j+1].year)

{b=a[j],a[j]=a[j+1],a[j+1]=b;

a[i].sheng=sheng(a[i].year,a[i].month,a[i].day);

2-i;

if(a[j].sheng>

a[j+1].sheng)

a[1].year<

-"

a[1].month<

a[1].day<

intsheng(inty,intm,intd)

intdis=0;

switch(m)

case1:

dis+=31;

case2:

if(y%400==0||y%4==0&

y%100!

=0)

dis+=29;

dis+=28;

case3:

case4:

dis+=30;

case5:

case6:

case7:

case8:

case9:

case10:

case11:

case12:

returndis-d;

7.抄袭查找(结构体+指针+函数)

已知一群学生的考试试卷,要求对试卷容进行对比,查找是否有抄袭。

每试卷包含:

学号(整数类型)、题目1答案(字符串类型)、题目2答案(字符串类型)、题目3答案(字符串类型)

使用结构体来存储试卷的信息。

定义一个函数,返回值为一个整数,参数是两个结构体指针,函数操作是比较两试卷的每道题目的答案,如果相同题号的答案相似度超过90%,那么就认为有抄袭,函数返回抄袭题号,否则返回0。

相似度是指在同一题目中,两个答案的逐个位置上的字符两两比较,相同的数量大于等于任一个答案的长度的90%,就认为抄袭。

第一行输入t表示有t试卷

第二行输入第1试卷的学生学号

第三行输入第1试卷的题目1答案

第四行输入第1试卷的题目2答案

第五行输入第1试卷的题目3答案

每试卷对应4行输入

依次输入t试卷的数据

在一行中,把发现抄袭的两个学号和题目号,数据之间用单个空格隔开

如果发现是题目1抄袭,题目号为1,以此类推

输出顺序按照输入的学号顺序进行输出

2088150555

aabcdef11

ZZ887766dd

cc33447799ZZ

2088150333

abcdef00

AABBCCDDEE

ZZ668899cc

2088150111

2088150222

AABBCFDDeE

ZZ889966dd

abcdef000

2088150444

aabcdef00

AABBCDDDEE

cc668899ZZ

208815033320881504442

208815011120881502223

intxiao(inta,intb);

structpaper

intno;

chara[100];

charb[100];

charc[100];

intcompare(paper*p,paper*q);

paper*a;

intn,i,j,k;

// 

freopen("

c:

\\123.txt"

"

r"

stdin);

a=newpaper[n];

a[i].no;

a[i].a;

a[i].b;

a[i].c;

for(j=i+1;

k=compare(&

a[i],&

a[j]);

if(k!

a[i].no<

a[j].no<

k<

intcompare(paper*p,paper*q)

inti,l,m,x=0;

l=strlen(p->

a);

m=strlen(q->

l=xiao(l,m);

if(p->

a[i]==q->

a[i])

=l*9/10)

x=0;

b);

b[i]==q->

b[i])

return2;

c);

c[i]==q->

c[i])

return3;

intxiao(inta,intb)

if(a<

b)

retu

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1