我是靠谱客的博主 俊逸便当,最近开发中收集的这篇文章主要介绍C语言必会100题(18)。两个字符串连接程序/回答结果/读取7个数,打印*/公司加密数据/读结果,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

特此鸣谢:鱼C_小甲鱼(B站up主)不二如是(鱼C论坛大佬)
题目来源:https://fishc.com.cn
注:这些题在网上都可以搜到,题下面的代码大多是流传下来的答案(我重新排了一下版,增加了可读性),部分是本人经过深思熟虑后编写的。

86,两个字符串连接程序

1.题目:两个字符串连接程序
2.程序源代码:

  1. 第一种解:
#include <stdio.h>
#include <string.h>
int main(void) {
char a[]="abc";//同char a[]={"abc"},用字符串常量来使字符数组初始化
char b[]="def";
char c[80], *p;
int i = 0, j = 0, k = 0;
while(a[i] != '' && b[j] != '') {
if(a[i]) {
c[k] = a[i];
i++;
} else
c[k] = b[j++];
k++;
}
c[k] = '';
if(a[i] == '')
p = b + j;
else
p = a + i;
strcat(c,p);
puts(c);
return 0;
}
  1. 第二种解:
// 漫天过海法
#include <stdio.h>
int main(void)
{
char a[10], b[10];
char ch;
int i = 0;
printf("请输入一个字符串:n");
while ((ch = getchar()) != 'n') {
a[i] = ch;
i++;
}
int count_1 = i;
printf("请再输入一个字符串:n");
i = 0;
while ((ch = getchar()) != 'n') {
b[i] = ch;
i++;
}
int count_2 = i;
for (i = 0; i < count_1; i++) {
printf("%c", a[i]);
}
for (i = 0; i < count_2; i++) {
printf("%c", b[i]);
}
return 0;
}
  1. 第三种解:
#include <stdio.h>
int main(void)
{
char a[20], b[10];
char ch;
int i = 0;
printf("请输入一个字符串:n");
while ((ch = getchar()) != 'n') {
a[i] = ch;
i++;
}
int count_1 = i;
printf("请再输入一个字符串:n");
i = 0;
while ((ch = getchar()) != 'n') {
b[i] = ch;
i++;
}
int count_2 = i;
int j = 0;
for (i = count_1; i < count_1 + count_2; i++) {
a[i] = b[j];
j++;
}
for (i = 0; i < count_1 + count_2; i++) {
printf("%c", a[i]);
}
return 0;
}

87,回答结果

1.题目:回答结果(结构体变量传递)
2.程序源代码:

  1. 第一个程序源代码:
#include <stdio.h>
struct student {
int x;
char c;
}a;
struct student assignment(struct student b);
int main(void)
{
a.x = 3;
a.c = 'a';
a = assignment(a);
printf("%d,%c", a.x, a.c);
}
struct student assignment(struct student b)
{
b.x = 20;
b.c = 'y';
return b;
}
  1. 第二个程序源代码:
#include <stdio.h>
struct student {
int x;
char c;
}a;
void assignment(struct student b);
int main(void)
{
a.x = 3;
a.c = 'a';
assignment(a);
printf("%d,%c", a.x, a.c);
}
void assignment(struct student b)
{
b.x = 20;
b.c = 'y';
}

88,读取7个数,打印*

1.题目:读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*。
2.程序源代码:

  1. 第一种解:
#include <stdio.h>
int main()
{
int i, a, n = 1;
while(n <= 7) {
do {
scanf("%d", &a);
} while(a < 1 || a > 50);
for(i = 1; i <= a; i++) {
printf("*");
}
printf("n");
n++;
}
getch();
}
  1. 第二种解:
#include <stdio.h>
int main(void)
{
int num, count = 0;
printf("输入1到50的7个数字:n");
while (count != 7 &&) {
scanf("%d", &num);
for (int i = 0; i < num; i++) {
printf("*");
}
printf("n");
count++;
}
return 0;
}

89,公司加密数据

1.题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。 例:1234每个数字加上5后为6789;6除以10的余数为6,7除以10的余数为7,8除以10的余数为8,9除以10的余数为9;之后数字为6789;交换顺序,数字为:9876;
2.程序源代码:

  1. 第一种解:
#include <stdio.h>
int main()
{
int a, i, aa[4], t;
scanf("%d", &a);
aa[0] = a % 10;
aa[1] = a % 100 / 10;
aa[2] = a % 1000 / 100;
aa[3] = a / 1000;
for (i = 0; i <= 3; i++) {
aa[i] += 5;
aa[i] %= 10;
}
for (i = 0; i <= 3 / 2; i++) {
t = aa[i];
aa[i] = aa[3 - i];
aa[3 - i] = t;
}
for(i = 3; i >= 0; i--) {
printf("%d", aa[i]);
}
return 0;
}
  1. 第二种解:
#include <stdio.h>
int* break_up(int num);
int main(void)
{
int num;
int a[4];
printf("输入四位整数,加密n");
scanf("%d", &num);
// 输入错误,让用户重新输入
while (num >= 10000 || num <= 999) {
printf("输入错误,请重新输入:");
scanf("%d", &num);
}
// 调用函数,将四位整数拆分
int *p = break_up(num);
// 将拆分的整数逆序放入数组,并且算出每个数字加上之后的和
// 例:1234拆分后,逆序放入数组,a[0]放4, a[1]放3, a[2]放2, a[3]放1
for (int i = 0; i < 4; i++) {
a[i] = *(p + i);
a[i] += 5;
if (a[i] >= 10) {
a[i] %= 10;
}
}
// 所谓第一位和第四位交换,第二位和第三位交换其实可以直接逆序输出
for (int i = 0; i < 4; i++) {
printf("%d", a[i]);
}
return 0;
}
// 将四位整数拆分
int* break_up(int num) {
static int b[4];
int i = 0;
while (num) {
b[i] = num % 10;
num /= 10;
i++;
}
return b;
}

90,读结果

1.题目:如下
2.程序源代码:

#include <stdio.h>
#define M 5
int main()
{
int a[M]= {1, 2, 3, 4, 5};
int i, j, t;
i = 0;
j = M - 1;
while(i != j) {
t = *(a + i);
*(a + i) = *(a + j);
*(a + j) = t;
i++;
j--;
}
for(i = 0; i < j; i++ ) {
printf("%d", *(a+i));
}
return 0;
}

3.答案:54

最后

以上就是俊逸便当为你收集整理的C语言必会100题(18)。两个字符串连接程序/回答结果/读取7个数,打印*/公司加密数据/读结果的全部内容,希望文章能够帮你解决C语言必会100题(18)。两个字符串连接程序/回答结果/读取7个数,打印*/公司加密数据/读结果所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部