C语言-练习


C语言-练习

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
//字符串逆序
#include <stdio.h>
#include <string.h>
void reverse(char *p)
{
int len=strlen(p);
//使用strlen函数需要调用头文件string.h
//逆序思路:
//将字符数组最左侧的字符和字符数组最右侧的字符进行交换
//然后将字符数组最左侧字符的下一个字符和字符数组最右侧的字符的上一个字符进行交换
//……
char* left=p;
char* right=p+len-1;
char tmp;
while(left<right)
{
tmp=*left;
*left=*right;
*right=tmp;
left++;
right--;
}
}
int main()
{
char s[256]={0};
gets(s);
//gets是读取一行字符串
//之所以用gets而不是scanf是因为scanf遇到空格就不会再读取了
reverse(s);
printf("%s\n",s);
return 0;
}
/*
my blog
golb ym
*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//求Sn=a+aa+aaa+aaaa+aaaaa的和,其中a是一个数字
//例如:2+22+222+2222+22222
#include <stdio.h>
int main()
{
int sum=0;
int i=0;
int r=0;
int n,a;
scanf("%d%d",&n,&a);
for(i=0;i<a;i++)
{
r=r*10+n;
sum=sum+r;
}
printf("%d\n",sum);
return 0;
}
/*
2 5
24690
*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//程序的执行结果是什么
#include <stdio.h>
int main()
{
unsigned char a=200;
unsigned char b=100;
unsigned char c=0;
c=a+b;
//11001000 -a
//00000000000000000000000011001000
//01100100 -b
//00000000000000000000000001100100
//00000000000000000000000100101100 a+b
//00101100 -c
//整型提升
//00000000000000000000000000101100 - 44
printf("%d,%d",a+b,c);
//300,44
return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
//打印菱形
#include <stdio.h>
int main()
{
int i=0;
int j=0;
int line;
scanf("%d",&line);
//line是上半部分行数,line-1是下半部分行数
//打印上部分
for(i=0;i<line;i++)
{
for(j=0;j<line-1-i;j++)
{
printf(" ");
}
for(j=0;j<(i*2+1);j++)
{
printf("*");
}
printf("\n");
}
//打印下部分
for(i=0;i<line-1;i++)
{
for(j=0;j<=i;j++)
{
printf(" ");
}
for(j=0;j<(line-i-1)*2-1;j++)
{
printf("*");
}
printf("\n");
}
return 0;
}
/*
5
*
***
*****
*******
*********
*******
*****
***
*
*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//程序的执行结果是什么
#include <stdio.h>
#include <string.h>
int main()
{
//char的存储范围为-128-127
char a[1000]={0};
int i=0;
for(i=0;i<1000;i++)
{
a[i]=-1-i;
//-1,-2,-3…-128,127,126,125…2,1,0,-1,-2
}
printf("%d\n",strlen(a));//strlen函数遇见0结束,最终计算的长度不包括
//结果为255
return 0;
}

Author: ljs
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint polocy. If reproduced, please indicate source ljs !
评论
  TOC