C语言例题测试2

发布时间:2023年12月23日

1. 从键盘任意输入一个 3 位数 x,编程计算 x 的每一位数字相加之和(忽略整数 前的正负号)。例如,输入 x 为 123,则由 123 分离出其百位 1、十位 2、个位 3,然 后计算 1+2+3=6,并输出 6。注意:若输入是负数,应当将其转化为正数,然后再计 算各位数之和;若输入数据不是 3 位数,应提示输入错误

#include <stdio.h>
int main(){
    int x;
    printf("请输入一个三位数:");
    scanf("%d",&x);
    if(x<0) x*=(-10;    //负数取正
    int a,b,c,d;
    a=x/100;    //百位赋值给a
    b=x/10%10;  //十位赋值给b
    c=x%10;     //个位赋值给c
    d=a+b+c;
    printf("%d\n",x);
    printf("%d\n",d);
}

在C语言中,abs函数是用来计算整数的绝对值的。这个函数定义在stdlib.h头文件中。

下面是一个简单的示例:
#include <stdio.h> ?
#include <stdlib.h> ?

int main() {
?? ?int num = -10;
?? ?int abs_num = abs(num);
?? ?printf("The absolute value of %d is %d\n", num, abs_num);
?? ?return 0;
}
在这个示例中,我们首先定义了一个整数num,并将其设置为 - 10。
然后,我们使用abs函数计算num的绝对值,并将结果存储在abs_num中。
最后,我们使用printf函数输出结果。
需要注意的是,abs函数只能用于整数。
如果你想计算浮点数的绝对值,应该使用fabs函数,该函数定义在math.h头文件中。

abs函数是在stdlib.h头文件中定义的。

2.用人民币一元兑换 1 分,2 分,5 分硬币,求共有多少种不同换法,以每行打印 1 种兑换方法的格式打印输出全部换法。例如,其中两种兑换方法如下:

0 枚 1 分硬币, 0 枚 2 分硬币, 20 枚 5 分硬币

0 枚 1 分硬币, 5 枚 2 分硬币, 18 枚 5 分硬币

#include <stdio.h>
int main(){
    int c1,c2,c5,cnt=0;
    printf("1元硬币有以下这些兑换方法:\n");
    for(c1=0;c1<=100;c1++)
        for(c2=0;c2<=50;c2++)
            for(c5=0;c5<=20;c5++)
                if(c1*1+c2*2+c5*5 == 100)
                {
                    printf("%d枚1分硬币,%d枚2分硬币,%d枚五分硬币\n",c1,c2,c5);
                    cnt++;
                }
    printf("共有%d种兑换方法:\n,cnt);
}

3.将字符数组 a 中所有下标为单号的元素赋给数组 b,然后输出数组 a 和 b 的内容;

#include <stdio.h>  
#include <string.h>  

int main() {
	char a[80];  // 存储第一个输入字符串  
	char b[80];  // 存储第二个字符串(仅包含奇数索引的字符)  
	int i, j;  // 循环计数器  
	int len_a;  // 第一个字符串的长度  

	puts("请输入第一个字符串:");
	fgets(a, sizeof(a), stdin);  // 从标准输入读取第一个字符串  
	len_a = strlen(a);  // 计算第一个字符串的长度  

	 初始化 b 数组为 '\0'  
	for (i = 0; i < len_a; i++) {
		b[i] = '\0';  // 将 b 数组中的每个元素初始化为 '\0'  
	}

	 交换奇数索引的字符  
	j = 0;  // 初始化 j 为0,表示当前 b 中的位置  
	for (i = 0; i < len_a; i++) {
		 如果索引是奇数(即字符位于奇数索引位置)  
		if (i % 2 != 0) {
			b[j] = a[i];  // 将字符复制到 b 中对应的位置  
			j++;  // 移动到 b 的下一个位置  
		}
	}
	b[j] = '\0';  // 在 b 的末尾添加 null 终止符  
	/*
	在C语言中,字符串通常以空字符('\0')结尾,
	以便程序能够识别字符串的结束位置。
	这一行代码的目的是确保 b 是一个有效的C语言字符串,可以被正确地处理和打印。
	如果缺少这一行,b 将不是一个有效的字符串,可能会导致程序出现错误或不可预测的行为。*/

	puts("第一个字符串:");
	puts(a);  // 输出第一个字符串  
	puts("第二个字符串(仅包含奇数索引的字符):");
	puts(b);  // 输出第二个字符串  
	return 0;
}

文章来源:https://blog.csdn.net/nanshenchao/article/details/135173656
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。