C中字符串通过字符串指针实现:
char *str = "I am";
printf("%s/n",str);
for( i = 0; str[i] != '/0', i++)
printf("%c/n",str[i]);
char *str;
scanf("%s",str);//这是危险的,不提倡,应该写成下面的:
char *str, a[10];
str = a;
scanf("%s",str);
C中字符串通过字符数组实现:
char str1[] = "I am ";
char str2[] = "Glen";
printf("%s",str1);//output;
char str3[10];
scanf("%s",str3);//input;
strcat(str1,str2);//error, str1 does not have enough space; modified to char str1[20] = "I am";
strcpy(str1,str2);
if(strcmp(str1,str2)==0)printf("the same");
printf("%d",strlen(str2));//4,/0 not be included;
=============================================
10的-6次方: 1e-6
'a' ASCII码97
'A' ASCII码97-32=65
大写字母码值加32为小写字母码值
=================
float x ;
int i ;
i = (int)x;
强制类型转换,得到一个int类型中间变量,而x类型仍然为float
=================
由求a+++++b题引出的++与--:
++不能用于表达式,(a+b)++,(-a)++等都不可实现,因为自增后的结果无变量可放
i = 3;
k = (i++)+(i++)+(i++)
先进行3个i相加,k为9,再自加,i值为6(++在整个表达式最后进行)
i = 3;
k = (++i)+(++i)+(++i)
得i为6,k为18 (++在整个表达式最先进行)
问:VC下调出来是16,?
i+++j解释为i++ + j
a+++++b 解释为a++ + ++b
#i nclude "stdafx.h"
#i nclude "stdio.h"
int main(int argc, char* argv[])
{
int i , g;
int a , b , k;
a = 3, b = 4;
i = 3;
g = i++ + ++i;
k = a++ + ++b;
printf("g is %d , i is %d ,k is %d",g,i,k);
return 0;
}
g is 8 , i is 5 , k is 8
==================================
几个程序
1.写出Fibonacci数列前40个数
int f1 = 1; int f2 = 2;
for(i = 1; i <= 20; i ++;)
{
printf("%d,%d,",f1,f2);
f1 = f1 + f2;
f2 = f2 + f1;
}
若用数组处理,则有f[i] = f[i-2] + f[i-1];
2.判断m是否素数
#i nclude "math.h"
main()
{
int m , i , k;
scanf("%d",&m);
k = sqrt(m);
for(i = 2; i <=k; i ++)
{
if (m % i == 0)break;
}
if( i > k) printf("%d is a prime number/n",m);
else printf("%d is not a prime number/n",m);
}
3. 100到200间所有素数
int m,k,i,n = 0;
for (m = 101; m <= 200; m = m + 2)
{
if(n%10==0)printf("/n");
k = sqrt(m);
for(i = 2; i <=k; i ++)
{
if (m % i == 0)break;
}
if( i > k)
{
printf("%d/n",m);
n++;
}
}
char *str = "I am";
printf("%s/n",str);
for( i = 0; str[i] != '/0', i++)
printf("%c/n",str[i]);
char *str;
scanf("%s",str);//这是危险的,不提倡,应该写成下面的:
char *str, a[10];
str = a;
scanf("%s",str);
C中字符串通过字符数组实现:
char str1[] = "I am ";
char str2[] = "Glen";
printf("%s",str1);//output;
char str3[10];
scanf("%s",str3);//input;
strcat(str1,str2);//error, str1 does not have enough space; modified to char str1[20] = "I am";
strcpy(str1,str2);
if(strcmp(str1,str2)==0)printf("the same");
printf("%d",strlen(str2));//4,/0 not be included;
=============================================
10的-6次方: 1e-6
'a' ASCII码97
'A' ASCII码97-32=65
大写字母码值加32为小写字母码值
=================
float x ;
int i ;
i = (int)x;
强制类型转换,得到一个int类型中间变量,而x类型仍然为float
=================
由求a+++++b题引出的++与--:
++不能用于表达式,(a+b)++,(-a)++等都不可实现,因为自增后的结果无变量可放
i = 3;
k = (i++)+(i++)+(i++)
先进行3个i相加,k为9,再自加,i值为6(++在整个表达式最后进行)
i = 3;
k = (++i)+(++i)+(++i)
得i为6,k为18 (++在整个表达式最先进行)
问:VC下调出来是16,?
i+++j解释为i++ + j
a+++++b 解释为a++ + ++b
#i nclude "stdafx.h"
#i nclude "stdio.h"
int main(int argc, char* argv[])
{
int i , g;
int a , b , k;
a = 3, b = 4;
i = 3;
g = i++ + ++i;
k = a++ + ++b;
printf("g is %d , i is %d ,k is %d",g,i,k);
return 0;
}
g is 8 , i is 5 , k is 8
==================================
几个程序
1.写出Fibonacci数列前40个数
int f1 = 1; int f2 = 2;
for(i = 1; i <= 20; i ++;)
{
printf("%d,%d,",f1,f2);
f1 = f1 + f2;
f2 = f2 + f1;
}
若用数组处理,则有f[i] = f[i-2] + f[i-1];
2.判断m是否素数
#i nclude "math.h"
main()
{
int m , i , k;
scanf("%d",&m);
k = sqrt(m);
for(i = 2; i <=k; i ++)
{
if (m % i == 0)break;
}
if( i > k) printf("%d is a prime number/n",m);
else printf("%d is not a prime number/n",m);
}
3. 100到200间所有素数
int m,k,i,n = 0;
for (m = 101; m <= 200; m = m + 2)
{
if(n%10==0)printf("/n");
k = sqrt(m);
for(i = 2; i <=k; i ++)
{
if (m % i == 0)break;
}
if( i > k)
{
printf("%d/n",m);
n++;
}
}