C语言程序设计-练习篇

等时间嘉许,等春风得意。

一,main函数知识点

C语言规定,在一个源程序中,main函数的位置可以任意

二,若有定义语句:int year = 1009, *p = &year; 以下不能使year中的值增至1010的语句是()

A.*p+=1;

B.(*p)++;

C.++(*p)

D.*p++;

选择:D

题目代码可化为:int year = 1009; int* p = &year;

D.*p++相当于*p;p=p+1; 后置++是给p的值++

三,求最小公倍数

题目内容:

正整数A和正整数B的最小公倍数是指能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。

数据范围:1<=A,B<=100000

输入描述:

输入两个正整数A和B

输出描述:

输出A和B的最小公倍数

(1)效率较低

#include <stdio.h>

int main()
{
	int a = 0;
	int b = 0;
	scanf("%d %d", &a, &b);
	//计算最小公倍数
	int m = (a > b ? a : b);
	while (1)
	{
		if (m % a == 0 && m % b == 0)
		{
			break;
		}
		m++;
	}
	//打印
	printf("%d\n", m);
	return 0;
}

 

(2)

#include <stdio.h>
int main()
{
	int a = 0;
	int b = 0;
	scanf("%d %d", &a, &b);
	//计算
	int i = 1;
	while (a * i % b)
	{
		i++;
	}
	//打印
	printf("%d\n", i * a);
	return 0;
}

四,倒置字符串

题目内容:

将一句话的单词进行倒置,标点不倒置

比如:I like Beijing. 经过函数后变为:Beijing. like I

输入描述:

每个测试输入包含1个测试用例:I like Beijing. 输入用例长度不超过100

输出描述:

依次输出倒置之后的字符串,以空格分割

#include <stdio.h>
#include <assert.h>
//逆序字符串
void reverse(char* left, char* right)
{
	assert(left);
	assert(right);
	while (left < right)
	{
		char tmp = *left;
		*left = *right;
		*right = tmp;
		left++;
		right--;
	}
}

int main()
{
	char arr[101] = { 0 };
	//输入
	gets(arr);
	//逆置
	int len = strlen(arr);
	//1.逆序整个字符串
	reverse(arr, arr + len - 1);
	//2.逆序每个单词
	char* start = arr;
	while (*start)
	{
		char* end = start;
		while (*end != ' '&&*end != '\0')
		{
			end++;
		}
		reverse(start, end - 1);
		if (*end != '\0')
			end++;
		start = end;
	}
	//输出
	printf("%s\n", arr);
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值