目录
1.选择
求cnt,就是统计fib被调用了多少次
B 67
2.选择
D死循环,循环1
3.选择
j=1, i++,则i=2
C 2,1
4.选择
考点:操作符的优先级
i+j=30;k=k*(i+j)=3*30=90
A 90
5.选择
局部变量优先,但是没有返回值,所以只用全局变量的a。
A 1
6.选择
A.或者 应该用||
B.可以没有default语句
C.正确
D.可以没有else语句
7.选择
A.X
B.X
C.正确
D.X
8.选择
A.√
B.√
C.√
D.X
9.选择
A.X
B.X
C.√ C语言的输入/输出函数 - 标准库函数(独立于C语言之外的)
D.X
10.选择
--c;//c为-1
a=a-1;//a=-1
a>0进入循环,此时不进入循环
C -1
11.选择
x=2;
3/2 两边都是整数,所以得到的就是整数,3/2=1;
y=x+3/2=2.0+1=3.0;
D 3.000000
12.选择
(y=123)不是判断了,y被赋值为123;(y=123)为真
C.4次
13.选择
int year=1009;
int* p=&1009;
A.(*p)先执行,然后+=1; *间接访问+优先级高
D. 后缀自增比间接访问优先级高,先是p++,然后(*p),最后p++。
*p;
p++;
D.不能
14.选择
| - 按(2进制)位或,就是a的补码与b的补码按位或(有1为1,两个都为0才为0)
1011 11补码
1010 10补码
1011 11|10 =11
A
15.选择
D
16.求最小公倍数
正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。
数据范围:1≤a,b≤100000 1≤a,b≤100000
输入描述:输入两个正整数A和B。
输出描述:输出A和B的最小公倍数。
方法1:效率低
int main()
{
int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
//计算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:高效方法 方法1 135ms,方法2 3ms
a*i==b*j =m
用a*1,*2,*3... 然后整除b
int main()
{
int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
//计算a和b的最小公倍数
int i = 1;
while (a * i % b !=0)
{
i++;
}
//打印
printf("%d\n", a*i);
return 0;
}
17.倒置字符串
将一句话的单词进行倒置,标点不倒置。比如i like you. 经过函数变为:you. like i
两步
1.把整个字符串逆序
2.把每个单词逆序
#include <assert.h>
#include <string.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) // 如果等于\0,则为假
{
char* end = start;
while (*end != ' ' && *end != '\0')
{
end++;
}
reverse(start, end - 1);
if (*end !='\0')
{
end++;
}
start = end;
}
//输出
printf("%s\n", arr);
return 0;
}
标签:11,二十三,测评,int,++,最小,选择,公倍数,阶段
From: https://blog.csdn.net/weixin_58543820/article/details/140787344