等时间嘉许,等春风得意。
一,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;
}