这篇博客,是针对今天测试的总结复盘,我整理了一些我认为有用的题,总结的知识点都不难,但比较细,大家可以看一看有没有帮助大家查漏补缺
前四道是选择题,后两道是编程题。
k的结果是:
int i = 10;
int j = 20;
int k = 3;
k *= i + j;
90
计算过程:
(i+j)k
解析:
操作符的优先级很低,所以*=的优先级低于+,先计算+
下列程序的运行结果是:
#include
#include
int a = 1;
void test()
{
int a = 2;
a += 1;
}
int main()
{
test();
printf("%d\n", a);
return 0;
}
首先在test函数内部创建的变量是局部变量,她的作用域只在test函数的内部,所以在主函数中,刚才为局部变量a申请的空间已经销毁了,所以在打印a时,打印的是全局变量a。
所以结果是1
在看这道题时,我认为它考察的知识点是,局部变量和全局变量的名称相同时,局部变量优先。而忽略了他们之间的作用域和生命周期不同。
以下叙述正确的是:
A.在c程序中,main函数必须位于程序的最前面。
B.c程序的每行中只能写一条语句。
C.c语言本身没有输入输出语句。
D.在对一个c程序进行编译的过程中,可发现注释中的拼写错误
main函数可位于任意位置,这是常识。
2.
C语言给定了语法,而输入输出语句是库函数中提供的。
C语言约定了一些函数,规定了函数的名字、功能、参数、返回类型
而这些规定的函数是由编译器的厂商实现的,msvc、gcc、clang的厂商在实现编译器的时候提供实现的。
这些函数放在标准库中,成为库函数。
若有定义语句:
int year = 2009, * p = &year;
下列不能使year中的值增至2010的语句是:
A.(*p)+=1;
B.(*p)++;
C.++(*p);
D.*p++;
此题考查的就是运算符的优先级以及指针的知识
++的优先级高于*,所以++是作用于p,而非*p。
点击此处跳转题干
#include
int main()
{
long long a = 0;
long long b = 0;
scanf("%lld %lld", &a, &b);
long long m = 0;
m = (a > b) ? a : b;
while (1)
{
if (m % a == 0 && m % b == 0)
{
break;
}
m++;
}
printf("%d\n", m);
return 0;
}
#include
int main()
{
long long a = 0;
long long b = 0;
scanf("%lld %lld", &a, &b);
long long i = 1;
while (i * a % b != 0)
{
i++;
}
printf("%lld\n", i * a);
return 0;
}
点击此处跳转至题目
void reverse(char* left, char* right)
{
while (left < right)
{
char tmp = *left;
*left = *right;
*right = tmp;
left++;
right--;
}
}
int main() {
char arr[101] = { 0 };//留一个空间给\0
gets(arr);
//此处输入语句也可以用:scanf("%[^\n]s", arr);
//意思是知道\0才读取结束
int ch = 0;
int i = 0;
while ((ch = getchar()) != '\n')
{
arr[i++] = ch;
}
int len = strlen(arr);
//1. 逆序整个字符串
reverse(arr, arr + len - 1);
//2. 逆序每个单词
char* cur = arr;
while (*cur)
{
char* start = cur;
while (*cur != ' ' && *cur != '\0')
{
cur++;
}
char* end = cur - 1;
reverse(start, end);//逆序一个单词
if (*cur == ' ')
cur++;
}
printf("%s\n", arr);
return 0;
}
int main()
{
char arr[101] = { 0 };
gets(arr);
int i = 0;
for (i = (int)strlen(arr); i > 0; i--)
{
if (arr[i] == ' ')
{
printf("%s ", arr + i+1);
arr[i] = 0;
}
}
printf("%s", arr);
return 0;
}
虽然这次测试的结果自己并不满意,但总结之后,发现归根到底是自己掌握的知识不牢固,还是需要努力啊。