第一题:从键盘输入一个整数x,输出其平方根(为整数)。
若输入数大于1000或小于等于0,则输出0,并继续接受下一个输入直至小于等于1000。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<math.h>
int main()
{
int x;
scanf("%d", &x);
while (x > 1000 || x <= 0)
{
printf("0\n");
scanf("%d", &x);
}
int a = sqrt(x);
printf("%d", a);
return 0;
}
第二题:从键盘输入3个整数(三个数取值均在闭区间 [1,10] ), 每行输入一个
每读取一个值,程序打印出该值个数的英文星号(*)。
输入:3个整数,3行。
输出:3行星号。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
void star(int x)
{
for (int i = 0; i < x; i++)
{
printf("*");
}
printf("\n");
return 0;
}
int main()
{
int a, b, c;
scanf("%d", &a);
scanf("%d", &b);
scanf("%d", &c);
star(a);
star(b);
star(c);
return 0;
}
第三题:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:
1. 每位数字都用自身加5后的和除以10的余数代替,如1用6代替,8用3代替;如3768就转换为8213;
2. 再将第一步生成的数字的第一位和第四位交换,第二位和第三位交换。 如8213转换为3128,即为最终的加密密码。
编写程序完成数据的加密。输入:一个整数。输出:一个整数。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int x;
scanf("%d", &x);
int array[5];
for (int i = 3; i >=0; i--)
{
array[i] = ((x % 10) + 5) % 10;
x = x / 10;
}
int temp1 = array[0];
array[0] = array[3];
array[3] = temp1;
int temp2 = array[1];
array[1] = array[2];
array[2] = temp2;
for (int i = 0; i < 4; i++)
{
printf("%d", array[i]);
}
return 0;
}
第四题:找出整数m到整数n (闭区间)之间的所有同构数(m<n)。
说明:一个正整数x,如果是它平方数的尾部,则称x为同构数。例如,6是其平方数36的尾部,25是其平方数625的尾部,那么6和25都是同构数。
输入:m和n两个正整数,用空格分隔。
输出:连续输出同构数,数据间用空格分隔(最后一个同构数后面无空格)。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int m, n;
int k, t, count = 0;
int a[100];
scanf("%d%d", &m, &n);
for (int x = m; x <= n; x++)
{
k = x * x;
t = x;
while (t > 0)
{
if (t % 10 != k % 10)
{
break;
}
t = t / 10;
k = k / 10;
}
if (t == 0)
{
a[count] = x;
count = count + 1;
}
}
for (int i = 0; i < count; i++)
{
if (i == 0)
{
printf("%d", a[i]);
}
else
{
printf(" %d", a[i]);
}
}
return 0;
}
第五题:编程判断任意一个正整数各位数字之和是奇数还是偶数。
如果和是奇数输出1,偶数输出0。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int x;
int count = 0, sum = 0;
scanf("%d", &x);
int a[100];
for (int i = 0; x / 10 != 0; i++)
{
a[i] = x % 10;
x = x / 10;
sum = sum + a[i];
count = count + 1;
}
sum = sum + x;
if (sum % 2 == 0)
{
printf("0");
}
else
{
printf("1");
}
return 0;
}
第六题:编程求以下级数前n项之和:
s=1-1/3+1/5-1/7+1/9-1/11+1/13-1/15+.....
输入:一个正整数n
输出:前n项和的值,超出小数点后4位的,保留到小数点后4位
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<math.h>
int main()
{
int n;
float sum = 0.0;
scanf("%d", &n);
for (int i = 1; i <= n; i++)
{
float num = pow(-1, i + 1) * (1.0 / (2 * i - 1));
sum = sum + num;
}
printf("%.4f", sum);
return 0;
}
第七题:编写程序,找出[m,n]范围内是7的倍数或带7的全部正整数(注意:如果一个是既是7的倍数又是带7的数,就输出2次,先输出倍数,再输出带7的整数,如:7 is a multiple of 7 7 contains 7)。
其中,m和n为正整数。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int m, n, i;
scanf("%d%d", &m, &n);
for (i = m; i <= n; i++)
{
int a = i;
if (a % 7 == 0)
{
printf("%d is a multiple of 7\n", i);
}
while (a)
{
if (a % 10 == 7)
{
printf("%d contains 7\n", i);
break;
}
a = a / 10;
}
}
return 0;
}
第八题:若三个正整数a,b,c满足 a^2+b^2=c^2,则它们是一组勾股数。(^2表示平方,a^表示a的平方)。
编写程序,求给定区间[m,n]中的勾股数的数量(设一组勾股数满足a<b<c)。
例如[1,10]中的勾股数有(3,4,5)和(6,8,10),则[1,10]中勾股数的数量为2。
输入:正整数m,n, 空格分隔
输出:[m,n]中的勾股数的数量
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int m, n;
int count = 0;
scanf("%d%d", &m, &n);
for (int i = m; i <= n; i++)
{
for (int j = i + 1; j <= n; j++)
{
for (int k = j + 1; k <= n; k++)
{
if (k * k == j * j + i * i)
{
count++;
}
}
}
}
printf("%d", count);
return 0;
}
第九题: 输入任意一个正整数,计算各位数字的平方和。
如:1234 则:计算1*1+2*2+3*3+4*4=30
输入:一个正整数
输出:平方和
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int x;
scanf("%d", &x);
int sum = 0;
for (int i = 0; x / 10 != 0; i++)
{
int a = x % 10;
sum = sum + a * a;
x = x / 10;
}
sum = sum + x * x;
printf("%d", sum);
return 0;
}
第十题:编写程序检验由三边能否构成三角形,检验方法是任意两边和均要大于第三边。
输入:三边长度(一行输入,空格分隔)
输出:如果可以构成三角形,输出YES,否则输出ERROR DATA
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>
int main()
{
float a, b, c;
scanf("%f%f%f", &a, &b, &c);
if (a + b > c)
{
if (a + c > b)
{
if (b + c > a)
{
printf("YES");
}
else
{
printf("ERROR DATA");
}
}
else
{
printf("ERROR DATA");
}
}
else
{
printf("ERROR DATA");
}
return 0;
}