CC++学习总结笔记文档格式.docx

上传人:b****7 文档编号:22537992 上传时间:2023-02-04 格式:DOCX 页数:245 大小:143.97KB
下载 相关 举报
CC++学习总结笔记文档格式.docx_第1页
第1页 / 共245页
CC++学习总结笔记文档格式.docx_第2页
第2页 / 共245页
CC++学习总结笔记文档格式.docx_第3页
第3页 / 共245页
CC++学习总结笔记文档格式.docx_第4页
第4页 / 共245页
CC++学习总结笔记文档格式.docx_第5页
第5页 / 共245页
点击查看更多>>
下载资源
资源描述

CC++学习总结笔记文档格式.docx

《CC++学习总结笔记文档格式.docx》由会员分享,可在线阅读,更多相关《CC++学习总结笔记文档格式.docx(245页珍藏版)》请在冰豆网上搜索。

CC++学习总结笔记文档格式.docx

floats=0.0;

7;

%d"

a[i]);

printf("

for(i=0;

a[i]!

=0;

if(a[i]<

0)

{s+=a[i];

k++;

}

%6.4f"

s/k);

小写改大写

inti;

chara[20];

gets(a);

='

\0'

;

if(a[i]>

a'

&

a[i]<

z'

a[i]=a[i]-32;

puts(a);

第13套题(必须是main函数在上面,fun函数段再下面,要不然会出错)

longfun(inta,intn)

{inti;

longs,t=0;

n;

t=t*10+a;

s=t;

for(i=1;

t=t/10;

s=s-t;

}

returns;

main()

inta,n;

scanf("

%d%d"

&

a,&

n);

printf("

a=%d,n=%d"

a,n);

printf("

%ld\n"

fun(a,n));

/*必须是ld,不能是l*/

解法二(不调用子函数)

inta,n,i;

s);

第18套

math.h>

/*该句必须写上去,要不然函数中的cos,fabs函数将无来源调用,这一点要非常注意*/

{

doublex0,x1=0.0;

do

x0=x1;

x1=cos(x0);

}while(fabs(x0-x1)>

=1e-6);

root=%f\n"

x1);

注意区别,后者为正确结果

第30套——删除前导*号

解法一(调用子函数)

voidfun(char*a)

char*p=a,*s;

while(*p=='

*'

p++;

for(s=p;

*s!

s++)

*a++=*s;

*a='

chara[80];

/*此处不能定义为*a*/

fun(a);

/*此处不得直接写成puts(fun(a));

必须得分两步写*/

puts(a);

解法二(未调用子函数)

string.h>

inti,k=0;

chars[20],*p,*r;

gets(s);

p=s;

while(*p=='

p++;

for(r=p;

*r!

r++)

s[k++]=*r;

s[k]='

puts(s);

循环左移

inti,j,n,m;

chara[20],t;

n=strlen(a);

/*要用到strlen函数的话就要用到字符串库函数*/

scanf("

%d"

&

m);

{t=a[0];

for(j=0;

n-1;

a[j]=a[j+1];

a[n-1]=t;

注意必须是先输入字符串数组,再输入m值

二维矩阵转置:

#defineM3/*这一句是在main函数之前*/

inta[M][M]={{1,2,2},{4,1,6},{1,3,2}},b[M][M],i,j,k;

beforemotivated:

M;

{for(j=0;

a[i][j]);

/*注意大花括号的位置,以及printf(“\n”);

这一句的位置,每一行结尾转行*/

}

b[i][j]=a[i][j]+a[j][i];

aftermotivated:

b[i][j]);

inti,n,k=0;

chars[20],*p;

n=strlen(s);

if(p[i]%2==0||i%2!

=0)

s[k++]=p[i];

删除字符串中某些字符:

解法一

{if(p[i]%2!

=0&

i%2==0);

{s[k++]=p[i];

解法二(主要是红色字体部分内容不同)

{if(p[i]%2==0||i%2!

=0)

s[k++]=p[i];

数组前m位输出

ints[7]={1,2,3,4,5,6,7},i,m;

s[i]);

求1-1/2+1/3-1/4+·

·

求前m项的和

inti,m,fg=1;

doubles=0.0,s1;

=m;

s1=i*fg;

fg=fg*(-1);

s+=1.0/s1;

%2.4f\n"

/*2.4前面的数字2代表包括总位数,前面的数字只要不超过6就能得到正确结果,后面的数字4代表小数点后的位数,即保留几位小数,此处与printf("

%.4f\n"

效果一样*/

注意这个结果不是顶行输出的,与8.4前面的数字8有关

判断几组数据的大小

inti,a,b,n;

n);

%d%d"

a,&

b);

if(a>

b)printf("

Text%d:

>

i+1);

if(a<

<

if(a==b)printf("

=\n"

第一套选择题

解法一(答案)

main()

inti=2,fg=1;

doubles=0.0,s1=0.75,t;

while(s1>

1e-3)

s=s+fg*s1;

t=2*i;

s1=(t+1)/(t*t);

i++;

theresultis:

%f\n"

解法二(为什么有这种差别呢?

求解答)

inti=1,fg=1;

doubles=0.0,s1,t;

{

1e-3);

解法三(带子函数段)

doublefun(doublee)

e);

doublee;

%le"

/*此处红色字体%le不能写成%f,这里scanf函数与printf函数使用规则不同,scanf函数读取double型数据是用%le,printf函数显示double型数据是用%f,注意区别*/

fun(e));

【实现十进制到二进制的转换】:

intk=0,i;

longt,s1;

charp[20],ch;

scanf("

%ld"

t);

do

s1=t%2;

t=t/2;

p[k++]=s1+'

0'

while(t>

0);

p[k]='

k/2;

i++)

ch=p[i];

p[i]=p[k-1-i];

p[k-1-i]=ch;

puts(p);

【二进制到十进制的转换】:

inti,j,n,k;

longt=0;

chars[20];

gets(s);

n=strlen(s);

k=1;

for(j=1;

=n-1-i;

k=k*2;

t=t+k*(s[i]-'

t);

【实现16进制到10进制的转换】:

k=1;

for(j=1;

k=k*16;

if(s[i]>

s[i]<

9'

t=t+k*(s[i]-'

G'

t=t+k*(s[i]-55);

/*例如16进制中的’A’代表10进制中的10,而字符’A’对应的ASCII值为65,其他的’B’…一直到’F’都可以依此类推*/

【实现10进制到16进制的转换】:

s1=t%16;

t=t/16;

if(s1>

=1&

s1<

=9)

=10&

=15)

p[k++]=s1+55;

【2进制转化为8进制】:

思路:

2进制→10进制→8进制

inti,j,n,k,m=0;

longt=0,s1;

chars[20],p[20],ch;

/*蓝色字体2如果变为8,则可以实现8进制到10进制的转换*/

s1=t%8;

/*这两句顺序不能颠倒,否则会导致结果错误,即必须是先求余,后求商如果是先求商后求余的话,即按照"

t=t/8;

s1=t%8"

的顺序执行,后一句中s1=t%8中的t已经改变*/

t=t/8;

p[m++]=s1+'

/*m用于统计二进制数的位数,在此二进制数是作为字符串的形式输出的*/

p[m]='

m/2;

i++)/*该for循环用于倒序输出*/

p[i]=p[m-1-i];

p[m-1-i]=ch;

【2进制转化为16进制】:

思路与2进制转化为8进制相似

t=t/16;

s1=t%16"

的顺序执行,后一句中s1=t%16中的t已经改变*/

p[m++]=s1+55;

i++)/*该for循环用于倒序输出*/

【从母字符串中查找子字符串的个数】:

inti,j,k=0,n1,n2;

chars[100],p[100],q[100];

gets(p);

n1=strlen(s);

n2=strlen(p);

n1;

n2;

q[j]=s[i+j];

/*动态保存字符串数组q,以便与子字符串p比较*/

q[n2]='

if(strcmp(q,p)==0)

k++;

%d\n"

k);

解法二(注意首先定义字符串s,p的长度要足够长,如定义为100。

若定义为20,当从输入设备输入的字符串的长度超过20的时候,会出现错误)

inti,j,k=0,tag,n1,n2;

chars[100],p[100];

tag=1;

if(p[j]!

=s[i+j])

tag=0;

if(tag==1)k++;

【自己研究的小课题】

voidfun1(chars1[100])

char*s=s1,*p;

while(*s=='

s++;

for(p=s;

*p!

p++)

*s1++=*p;

*s1='

voidfun2(chars2[100])

intk=0;

char*s=s2,*p;

while(*s!

s--;

*(s+1)='

chars1[100],s2[100];

Beforetransfered(s1):

"

gets(s1);

Beforetransfered(s2):

gets(s2);

fun1(s1);

fun2(s2);

Aftertransfered(s1):

puts(s1);

Aftertransfered(s2):

puts(s2);

Afterlinked(s1+s2):

puts(strcat(s1,s2));

【自己研究小课题】

将Excel中的列标变换为10进制数:

AAA→703

inti,j,n;

longs1=0,k;

chars[100];

{k=1;

k=k*26;

s1=s1+(s[i]-64)*k;

s1);

703→AAA(当输入的数字为26的倍数时,会出现错误,其他的某些情况也会出现错误,有待进一步考察)

longt,s,s1;

s1=t%26;

t=t/26;

p[k++]=s1+64;

求最大公约数:

(1也可以是最大公约数,而且注意运行程序时最好切换输入法为英文输入法,要不然会出现死循环)

inta,b,i,k=0,s[100];

请输入两个正整数:

%d,%d"

while(a<

=0||b<

请重新输入两个正整数:

for(i=1;

=a&

=b;

if(a%i==0&

b%i==0)

s[k++]=i;

最大公约数:

s[k-1]);

/*该数组最后一个元素必为最大公约数*/

求最小公倍数:

inti,a,b,t;

=0

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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