1.将数组A中的内容和数组B中的内容进行交换。(数组一样大)
#include <stdio.h>
//将数组A中的内容和数组B中的内容进行交换。(数组一样大)
int main(){
int arr1[] = {0,1,2,3,4};
int arr2[] = {5,6,7,8,9};
int len = sizeof(arr1)/sizeof(arr1[0]);
int i = 0;
for(;i < len;++i){
int tmp = arr1[i];
arr1[i] = arr2[i];
arr2[i] = tmp;
}
printf("arr1 = ");
for(i = 0;i < len;++i)
printf("%d ",arr1[i]);
printf("\n");
printf("arr2 = ");
for(i = 0;i < len;++i)
printf("%d ",arr2[i]);
printf("\n");
return 0;
}
2. 计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值。
#include <stdio.h>
//计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值。
int main(){
int i = 1;
double sum = 0;
int flag = 1;
for(i = 1;i <= 100;i++){
sum += flag * (1.0/i);
flag = -flag;
}
printf("sum = %lf\n",sum);
}
3. 编写程序数一下 1到 100 的所有整数中出现多少次数字9。
#include <stdio.h>
//编写程序数一下 1到 100 的所有整数中出现多少次数字9。
int main(){
int i = 1;
int count = 0;
for(i = 1;i <= 100;i++){
if(i / 10 == 9)
count++;
if(i % 10 == 9)
count++;
}
printf("count = %d\n",count);
}
4.在屏幕上输出以下图案:
*
***
*****
*******
*********
***********
*************
***********
*********
*******
*****
***
*
#include <stdio.h>
//在屏幕上输入图案
int main(){
int line = 0;
int i = 0;
printf("请输入要打印的行数:");
scanf("%d",&line);
for(i = 0;i < line;i++){
int j = 0;
for(j = 0;j < line-1-i;j++)
printf(" ");
for(j = 0;j < 2*i+1;j++)
printf("*");
printf("\n");
}
for(i = 0;i < line-1;i++){
int j = 0;
for(j = 0;j <= i;j++)
printf(" ");
for(j = 0;j < (line-1-i)*2-1;j++)
printf("*");
printf("\n");
}
return 0;
}
5.求出0~999之间的所有“水仙花数”并输出。“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本身,如;153=1+5+3?,则153是一个“水仙花数”。
/* 在数论中,水仙花数(Narcissistic number)也称为自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),是指一N位数,其各个数之N次方和等于该数。
例如153、370、371及407就是三位数的水仙花数,其各个数之立方和等于该数:
153 = 1^3 + 5^3 + 3^3。
370 = 3^3 + 7^3 + 0^3。
371 = 3^3 + 7^3 + 1^3。
407 = 4^3 + 0^3 + 7^3。
*/
#include<stdio.h>
#include<math.h>
int main(){
int i = 0;
for(i = 100;i <= 999;i++){
int a = i/100;
int b = (i/10)%10;
int c = i%10;
if((a*a*a + b*b*b + c*c*c) == i)
printf("%d ",i);
}
printf("\n");
return 0;
}
6. 求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,例如:2+22+222+2222+22222
#include<stdio.h>
int main(){
int a,n,i,tmp;
int sum = 0;
scanf("%d %d",&a,&n);
for(i=0;i<n;i++){
tmp = tmp*10+a;
sum += tmp;
}
printf("sum = %d\n",sum);
}
7.编写一个程序,它从标准输入读取C源代码,并验证所有的花括号都正确的成对出现。
#include<stdio.h>
int main(){
int ch = 0;
int count = 0;
while((ch = getchar()) != EOF){
if(ch == '{')
count++;
else if(ch == '}' && count == 0){
printf("不匹配\n");
return 0;
}
else if(ch == '}' && count > 0){
count--;
}
}
if(count == 0)
printf("匹配\n");
else
printf("不匹配\n");
}
需要注意的是:文件结束符EOF,在Windows下为组合键Ctrl+Z,在Unix/Linux下为组合键Ctrl+D