1、编程序找出1000之内的所有完数,并输出因子。
#include<cstdio>
#include<vector>
using namespace std;
int main(){
for (int i = 2; i <= 1000; i++)
{
int sum = 0;
vector<int> vec;
for (int j = 1; j < i; j++)
{
if (i%j==0)
{
vec.push_back(j);
}
}
for (int z = 0; z < vec.size(); z++)
{
sum = sum + vec[z];
}
if (sum == i)
{
printf("%d its factors are",sum);
for (int z = 0; z < vec.size(); z++)
{
printf("%d ", vec[z]);
}
printf("\n");
}
vec.clear();
}
return 0;
}
2、一球从100m自由落下,每次落下后反跳回原高度的一半,在落下。求它在第10次落地时,共经过多少米?第10次反弹多高?
#include<cstdio>
using namespace std;
int main(){
float sum = 100, high = sum / 2;
for (int i = 2; i < 10; i++)
{
sum = sum + 2 * high;
high = high / 2;
}
printf("sum is %f\n", sum);
printf("high is %f\n", high);
return 0;
}
3、输入一个奇数n,打印菱形。
#include<cstdio>
int main(){
int n;
scanf("%d", &n);
for (int i = 1; i <= n/2+1; i++)
{
for (int z = 1; z <=n / 2 + 1-i; z++)
{
printf(" ");
}
for (int j = 1; j <= 2*i-1; j++)
{
printf("*");
}
printf("\n");
}
for (int i = 1; i < n/2+1; i++)
{
for (int z = 1; z <= i; z++)
{
printf(" ");
}
for (int j = 1; j <= n-2*i; j++)
{
printf("*");
}
printf("\n");
}
return 0;
}
4、已知整型数组a中有10个元素,整型数组b中有6个元素。编程将在a中但不在b中的元素组成数组c并输出。
#include<cstdio>
int main(){
int A[10] = {2,7,1,4,3,0,5,11,12,8};
int B[6] = { 4, 3, 21, 13, 1, 2 };
int C[17],j,k=0;
for (int i = 0; i < 10; i++)
{
for (j = 0; j < 6; j++)
{
if (A[i] == B[j]){
break;
}
}
if (j==6)
{
C[k++] = A[i];
}
}
for (int i = 0; i < k; i++)
{
printf(" %d", C[i]);
}
printf("\n");
return 0;
}
5、不用strcmp函数,编程判断两个长度不超过20的字符串的大小,第一个大输出1,第二个大输出-1,一样大输出0。
先找到第一个可能会不一样的k。
#include<cstdio>
#include<string>
using namespace std;
int main(){
char str1[20];
char str2[20];
gets(str1);
gets(str2);
int m = strlen(str1);
int n = strlen(str2);
int k = 0;
while (str1[k]==str2[k] && k<m &&k<n)
{
k++;
}
if (k==m&&k==n)
{
printf("0\n");
}
else if (str1[k]>str2[k])
{
printf("1\n");
}
else
{
printf("-1\n");
}
return 0;
}
6、输入一个字符串,编程判断其中字母的个数。
#include<cstdio>
int main(){
char str[100];
gets(str);
int k = 0;
for (int i = 0; str[i]!='\0'; i++)
{
if (str[i] >= 'a' && str[i] <= 'z' || str[i] >= 'A' && str[i] <= 'Z')
{
k++;
}
}
printf("%d\n", k);
return 0;
}
7、已知整型数组a中有10个元素,编程将其中某个数k删除,输出删除后的数组。
#include<cstdio>
int main(){
int a[10] = { 7, 3, 2, 9, 4, 1, 6, 8, 5, 0 };
int k,n=0;
scanf("%d", &k);
for (int i = 0; i < 10; i++)
{
if (a[i] == k)
{
break;
}
n++;
}
for (int i = n; i < 10; i++)
{
a[i] = a[i + 1];
}
for (int i = 0; i < 9; i++)
{
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
8、有n个整数,设计程序,将前面各个数按顺序向后移动k个位置,将最后k个数按顺序移动到最前面。
#include<cstdio>
int main(){
int A[50],B[50];
int n,k,j=0,i=0;
scanf("%d %d", &n,&k);
for (int i = 0; i < n; i++)
{
scanf("%d", &A[i]);
}
for (i = n-k,j; i < n; i++,j++)
{
B[j] = A[i];
}
for (int i = 0; i <n-k ; i++,j++)
{
B[j] = A[i];
}
for (int i = 0; i < n; i++)
{
printf("%d ", B[i]);
}
printf("\n");
return 0;
}
9、编写程序判断是否是回文字符串。
#include<cstdio>
#include<string>
int main(){
char str[50];
char *p, *q;
gets(str);
p = str, q = str;
while ((*q)!='\0')
{
q++;
}
q--;
while (*p == *q && p<q)
{
p++;
q--;
}
if (p == q || (q + 1) == p){
printf("yes\n");
}
else
{
printf("no\n");
}
}
10、编制一个字符替换函数,实现已知字符串str中,所有属于ch中的字符都用ch2中对应字符代替。
#include<cstdio>
void replace(char *str, char ch, char ch2){
char *p;
p = str;
while (*p != '\0')
{
if (*p == ch)
{
*p = ch2;
}
p++;
}
}
int main(){
char str[20];
gets(str);
char ch,ch2;
scanf("%c %c", &ch, &ch2);
replace(str, ch, ch2);
printf("%s\n", str);
return 0;
}
1587

被折叠的 条评论
为什么被折叠?



