旨在发现自身问题,有需要随时添加。
getchar
如转换大小写问题
EOF代表运行结束,按ctrl + z 结束,不然会陷入循环
每次接收字符因为需要按回车键,所以会有缓冲区遗留的\n
再用getchar读取一下
#include<stdio.h>
int main()
{
int a = 0;
while((a=getchar())!=EOF)
{
putchar(a+32);
getchar();
printf("\n");
}
return 0;
}
C语言初阶测验错题
纯计算题
这个玩意就是硬算
算完 得 B
全局变量与局部变量
全局变量优先 a打印出来是1
浮点型整型打印问题
这个3/2是整型!!!!!!!!!!整型!!!!!!!!!!!!!!!!
没有小数点!!!!!!!!!!!!
运算符优先级问题
这个指针不是数组里的啊亲 不能像D这么用啊 ++会先和p结合,然后地址都改变了还解引用干什么。
类型转换
这个题选d,转换来转换去发现,会转换成字节最大的类型。
选择 15 错 5 ,本来自我感觉良好,发现还是不扎实,慢慢找补吧。
经典逆序题
输入i like beijing.
输出beijing. like i
三步翻转法
1.将整个字符串逆序
2.将每个单词逆序
#include<stdio.h>
#include<string.h>
void reverse(char* left,char* right)
{
while (left<right)
{
char tmp = *left;
tmp = *left;
*left = *right;
*right = tmp ;
left++;
right--;
}
}
int main()
{
char arr[100] = { 0 };
gets(arr);
int len = strlen(arr);
reverse(arr,arr+len-1);
char* start = arr;
while (*start)
{
char* end = start;
while (*end !=' ' && *end != '\0')
{
end++;
}
reverse(start, end - 1);
if (*end == ' ')
start = end + 1;
else
start = end;
}
printf("%s\n",arr);
}