C语言必会100题(7)。输入星期的第一个字母来判断一下是星期/Press any key to change color/学习gotoxy()与clrscr()函数/练习函数调用/文本颜色设置
特此鸣谢:鱼C_小甲鱼(B站up主)不二如是(鱼C论坛大佬)
题目来源:https://fishc.com.cn
注:这些题在网上都可以搜到,题下面的代码大多是流传下来的答案(我重新排了一下版,增加了可读性),部分是本人经过深思熟虑后编写的。
31,输入星期的第一个字母来判断一下是星期
- 题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母
- 程序源代码:
- 第一种解:
// 星期一:Monday // 星期二:Tuesday // 星期三:Wndnesday // 星期四:Thursday // 星期五:Friday // 星期六:Saturday // 星期日:Sunday #include <stdio.h> void secondLetter_T(); void secondLetter_S(); int main() { char first; printf("请输入第一个字母:"); scanf("%s", &first); switch (first) { case 'M': printf("Monday!"); break; case 'T': secondLetter_T(); break; case 'W': printf("Wndnesday!"); break; case 'F': printf("Friday!"); break; case 'S': secondLetter_S(); break; default: printf("输入错误!!!"); break; } return 0; } void secondLetter_T() { char two; printf("请输入第二个字母:"); scanf("%s", &two); switch (two) { case 'u': printf("Tuesday!"); break; case 'h': printf("Thursday!"); break; default: printf("输入错误!!!"); break; } } void secondLetter_S() { char two; printf("请输入第二个字母:"); scanf("%s", &two); switch (two) { case 'a': printf("Saturday!"); break; case 'u': printf("Sunday!"); break; default: printf("输入错误!!!"); break; } } - 第二种解:
#include <stdio.h> int main() { char letter; printf("please input the first letter of someday\n"); while((letter = getch()) != 'Y')//当所按字母为Y时才结束 { switch (letter) { case 'S': printf("please input second letter\n"); if((letter = getch()) == 'a') printf("saturday\n"); else if ((letter = getch()) == 'u') printf("sunday\n"); else printf("data error\n"); break; case 'F': printf("friday\n");break; case 'M': printf("monday\n");break; case 'T': printf("please input second letter\n"); if((letter = getch()) == 'u') printf("tuesday\n"); else if ((letter = getch()) == 'h') printf("thursday\n"); else printf("data error\n"); break; case 'W':printf("wednesday\n");break; default: printf("data error\n"); } } return 0; }
32,Press any key to change color
- 题目:Press any key to change color, do you want to try it. Please hurry up!(按任意键更改颜色,你想要尝试一下吗?。那么就赶快开始吧!)
- 程序源代码:
// 我是在Codeblocks里面运行的,好像是conio文件里面东西不全,所以刚开始不能运行,报错。 // 网上搜发现codeblocks里面要自己写。所以在不同的编译器里面运行会发生不同的情况,不懂的自行百度。 // 后来从网上搜到了textbackground函数并添加上面才可以运行了。 // 里面很多东西我也不太了解,所以能写的注释也就那么多了,虽然都是从网上搜的。 #include <conio.h> #include <stdio.h> #include <windows.h> int textbackground(short iColor) { // 从一个特定的标准设备(标准输出)中取得一个句柄(用来标识不同设备的数值) HANDLE hd = GetStdHandle(STD_OUTPUT_HANDLE); // 结构体,该结构体包含控制台屏幕缓冲区的信息。设置名称位csbInfo的结构体。 CONSOLE_SCREEN_BUFFER_INFO csbInfo; // 函数,获取特定的控制台屏幕缓冲区信息。 GetConsoleScreenBufferInfo(hd, &csbInfo); // SetConsoleTextAttribute()函数是一个API设置字体颜色和背景色的函数。 // 有两个属性,第一个属性获得句柄,就是hd,也就是GetStdHandle(STD_OUTPUT_HANDLE),看这个函数的第一行; // 第一个属性和第二个属性中间用“,”隔开。 // 第二个属性是设置颜色,中间有| // 结构体里面有wAttributes存储了绘制文本、背景的颜色等属性,在调用输出函数输出到控制台的时候就会作用。 // 可以看一下这篇文章https://blog.csdn.net/weixin_30443731/article/details/99245800 return SetConsoleTextAttribute(hd, (iColor<<4)|(csbInfo.wAttributes&~0xF0)); } int main() { int color; for(color = 0; color < 8; color++) { //设置文本的背景颜色 textbackground(color); printf("this is color%d\n", color); printf("press any key to continue\n"); // 设置用户输入的字符在控制台不显示 getch(); } }
33,学习gotoxy()与clrscr()函数
- 题目:学习gutoxy()与clrscr()函数
- 程序源代码:
#include <conio.h> #include <stdio.h> #include <windows.h> void gotoxy(int x, int y); int textbackground(short iColor); int main(void) { // clrscr();清屏函数,但是在codeblocks里面无法调用,百度上说可以用下面的代替。 system("cls"); // 定位函数,定位光标到指定位置 gotoxy(1, 5); // 设置输出字体的背景颜色 textbackground(3); // 这里原来的是cprintf,很显然,在odeblocks里面无法运行,改变成了printf printf("Output at row 5 column 1\n"); gotoxy(20, 10); textbackground(2); printf("Output at row 10 column 20\n"); getch(); } void gotoxy(int x, int y) { COORD coord; coord.X = x; coord.Y = y; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord); } int textbackground(short iColor) { // 从一个特定的标准设备(标准输出)中取得一个句柄(用来标识不同设备的数值) HANDLE hd = GetStdHandle(STD_OUTPUT_HANDLE); // 结构体,该结构体包含控制台屏幕缓冲区的信息。设置名称位csbInfo的结构体。 CONSOLE_SCREEN_BUFFER_INFO csbInfo; // 函数,获取特定的控制台屏幕缓冲区信息。 GetConsoleScreenBufferInfo(hd, &csbInfo); // SetConsoleTextAttribute()函数是一个API设置字体颜色和背景色的函数。 // 有两个属性,第一个属性获得句柄,就是hd,也就是GetStdHandle(STD_OUTPUT_HANDLE),看这个函数的第一行; // 第一个属性和第二个属性中间用“,”隔开。 // 第二个属性是设置颜色,中间有| // 结构体里面有wAttributes存储了绘制文本、背景的颜色等属性,在调用输出函数输出到控制台的时候就会作用。 // 可以看一下这篇文章https://blog.csdn.net/weixin_30443731/article/details/99245800 return SetConsoleTextAttribute(hd, (iColor<<4)|(csbInfo.wAttributes&~0xF0)); }
34,练习函数调用
- 题目:练习函数调用(发动你的小脑袋瓜,随便写一个函数然后调用就可以了~)
- 程序源代码:
#include <stdio.h> #include <conio.h> void three_hellos(void); void hello_world(void); int main(void) { three_hellos();//调用此函数 getch(); } void three_hellos(void) { int counter; for (counter = 1; counter <= 3; counter++) { hello_world();//调用此函数 } } void hello_world(void) { printf("Hello, world!\n"); }
35,文本颜色设置
- 题目:文本颜色设置
- 程序源代码:
#include <stdio.h> #include <conio.h> #include <windows.h> void textcolor(int color); int main(void) { int color; for (color = 1; color < 16; color++) { textcolor(color);// 设置文本颜色 printf("This is color %d\r\n", color); } textcolor(128 + 15); printf("This is blinking\r\n"); getch(); } void textcolor(int color) // 更改字体颜色 { //在文本模式中选择新的字符颜色 HANDLE hOutput = GetStdHandle(STD_OUTPUT_HANDLE); // 得到标准输出的句柄 SetConsoleTextAttribute(hOutput, color);//Attribute:属性 }

浙公网安备 33010602011771号