1、从键盘接收一整数x,判断x是否为含有因子7的正整数,如是,则输出“YES”,否则输出“NO”。
#include<stdio.h>
int main()
{
int n;
printf("请输入一个正整数:\n");
scanf("%d", &n);
if (n % 7 == 0)
printf("YES\n");
else
printf("NO\n");
return 0;
}
2、编写一个密码检验的程序,在程序执行时,要求用户名输入密码(标准密码自己预先设定),然后通过字符串比较函数比较密码和标准密码是否相等,若相等,则显示“口令正确”,并转去执行后继程序,若不相等,重新输入,3次都不相等则终止程序的执行。要求自己编写一个字符比较函数,而不使用系统的strcmp()函数。
#include<stdio.h>
#include<string.h>
int len(char str[]);
int compare(char str_1[], char str_2[]);
int main()
{
int flag = 0;
char key[30], standard_key[30] = "hello world";
printf("请您输入该账号密码:\n");
while (flag < 3)
{
gets(key);
if (compare(key, standard_key))
{
printf("口令正确!\n");
break;
}
else
{
printf("口令错误!请重新输入:\n");
flag += 1;
}
}
return 0;
}
int len(char str[])
{
int i;
for (i = 0; str[i] != '\0'; i++)
;
return i;
}
int compare(char str_1[], char str_2[])
{
int i;
for (i = 0; str_1[i] != '\0' && str_2[i] != '\0'; i++)
{
if (str_1[i] == str_2[i])
continue;
else
break;
}
if (i < len(str_1))
return 0;
else
return 1;
}
3、编写实现s=1!+2!+……+10!
#include<stdio.h>
int main()
{
int i, sum = 0,result=1;
for (i = 1; i <= 10; i++)
{
result *= i;
sum += result;
}
printf("%d", sum);
return 0;
}
4、编写程序,能对一给定的3*4的矩阵,求出其中的最大元素值及其所在的行列号。
#include<stdio.h>
#define COL 4
#define ROW 3
int main()
{
int num[ROW][COL] = { 0 };
int i, j, max,row,col;
printf("请为矩阵赋值:\n");
for (i = 0; i < ROW; i++)
{
for (j = 0; j < COL; j++)
scanf("%d", &num[i][j]);
}
max = num[0][0];
for (i = 0; i < ROW; i++)
{
for (j = 0; j < COL; j++)
{
if (max < num[i][j])
{
max = num[i][j];
row = i;
col = j;
}
}
}
printf("该矩阵中的最大值为:%d,第%d行,第%d列", max, row+1, col+1);
return 0;
}
6、求任意一个小于65535的正整数的逆序数,并判断该数是否为回文数。
#include<stdio.h>
#define MAX 10
int Len(int x)
{
int count = 1;
while (1)
{
if (x < 10)
break;
count++;
x /= 10;
}
return count;
}
int inverse_num(char str[], int num_len)
{
int i, j, m = 0;
for (i = 0; i < num_len; i++)
{
for (j = i + 1; j < num_len; j++)
{
if (str[i] > str[j])
m++;
}
}
return m;
}
int palindromic_num(char str[], int num_len)
{
int n = 0, i;
for (i = 0; i < num_len / 2; i++)
{
if (str[i] != str[num_len - 1 - i])
break;
}
if (i < num_len / 2)
return 0;
else
return 1;
}
int main()
{
int num, num_len, i, ret, count;
char str[MAX];
printf("请输入一个小于65535的正整数:\n");
scanf("%d", &num);
num_len = Len(num);
for (i = num_len - 1; i >= 0; i--)
{
str[i] = num % 10;
num /= 10;
}
count = inverse_num(str, num_len);
printf("该正整数的逆序数是%d\n", count);
ret = palindromic_num(str, num_len);
if (ret == 1)
printf("该正整数是回文数!\n");
else
printf("该正整数不是回文数!\n");
return 0;
}
|