前一篇文章介绍学习了部分c语言的基础,任何学习都需要用实践来巩固,所以作业或者说题库是非常必要而且重要的,一定一定要自己动手动脑,做一遍再看答案,题目选自《c语言程序设计潭浩强第五版》的课后题目,以及部分网上看到的教程的题目,题目从简单到稍微有难度,具有梯度,非常适合新手跟着练习,后续还会补充题库。
第一题(printf)
女神想要你用c语言为他输出一架小飞机,请你使用学过的printf语句在屏幕输出以下图形:
答案代码:
#include <stdio.h>
int main()
{
printf(" **\n");\\ (\n为转义字符表示换行)
printf(" **\n");
printf("************\n");
printf("************\n");
printf(" * *\n");
printf(" * *\n");
return 0;
}
第二题(printf)
假设你需要帮写你朋友把相亲信息显示到电子屏幕上,现需要利用printf语句输出你朋友的基本信息。
信息如下:姓名-Jack,年龄-21,性别-男,特征-180cm八块腹肌
样例:
答案代码:
#include <stdio.h>
int main()
{
printf("Name Age Gender Trait\n");//中间4个空格
printf("------------------------------\n");//30个“-”
printf("Jack 18 man 180cm八块腹肌");
return 0;
}
第三题(变量的基本算式)
请计算表达式“(-8+22)xa-11/a/2”,计算后的结果输出为一个整数
答案代码为:(运行结果为560)
#include <stdio.h>
int main()
{
int a = 40, b = 200, sum = 0;
sum = (-8 + 22) * a - 11 / b / 2;//c语言的乘法为“ * ”,除法为“ / ”
printf("算式结果为:%d\n",sum);
return 0;
}
第四题(转义字符的应用)
假设我们需要在屏幕上输出一个路径(目录):c : \ code \ work \ test.c
我们该怎么写代码?
答案代码:
#include <stdio.h>
int main()
{
printf("c:\\code\\work\\test.c\n");//转义字符\\相当于\
return 0;
}
输出结果为:
第五题(转义字符的应用)
(这题是某家企业的面试题,题目不难,考察基本功)
题目如代码所示,问最后程序输出什么?
#include <stdio.h>
#include <string.h>
int main()
{
printf("%d\n",strlen("abcdef"));
printf("%d\n",strlen("c:\test\628\test.c"));//strlen()是计算字符串长度的函数
return 0;
}
答案:最后输出为:6 14
这里比较关键的是\628,由转义字符的概念知道(不懂的看下面链接的相关知识点)"\xxx"表示的是一个字符 (xxx为八进制的三位数,转换为十进制后对应的ascii码值)ddd的范围为0-127之间)明显628超出范围127,所以编译器将其定义为\062
另外\t 表示制表符,其长度为1个字符!!!
https://blog.csdn.net/weixin_52763477/article/details/135744910
第六题(转义字符的运用,与上题相识)
题目如代码所示,问最后程序输出什么?
#include <stdio.h>
#include <string.h>
int main()
{
printf("%d\n",strlen("c:\test\121"));//strlen()是计算字符串大小的函数
return 0;
}
答案为:7
第七题(选择语句)
输入两个整数求他们的最大值,并输出整数型数据
答案代码:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int a = 0;
int b = 0;
int max = 0;
printf("请输入两个整数:");
scanf("%d%d",&a,&b);
if(a>b)
{
max = a;
}
else if(b>a)
{
max = b;
}
else
{
printf("两个数相等");
return 0;
}
printf("最大值为:%d\n",max);
return 0;
}
第八题(函数的基本应用)
写一个函数,实现求输入两个整数的最大值,并输出,按照下面代码,写Max(a,b)函数
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int Max(int x,int y)
{
}
int main()
{
int a = 0, b = 0;
printf("请输出两个整数:");
scanf("%d%d",&a,&b);
int r = Max(a,b);
printf("最大值为:%d\n",r);
return 0;
}
答案为:
#include <stdio.h>
int Max(int x,int y)
{
if (x > y)
{
return x;
}
else
{
return y;
}
}
int main()
{
int a = 0, b = 0;
printf("请输出两个整数:");
scanf("%d%d",&a,&b);
int r = Max(a,b);
printf("最大值为:%d\n",r);
return 0;
}
第九题(选择语句)
编写一个程序,输入a,b,c三个整数值,输出其中的最大值
答案:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int a=0, b=0, c=0, max=0;
printf("请输出三个整数:\n");
scanf("%d%d%d",&a,&b,&c);
if (a > b)
{
max = a;
}
else
{
max = b;
}
if (c > max)
{
max = c;
}
printf("三个数中最大的是:%d\n",max);
return 0;
}
第十题(循环语句的应用)
编写一个c语言程序,使其输出以下图形
答案一:
#include <stdio.h>
int main()
{
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < i; j++)
{
printf("%s"," ");
}
printf("%s\n","*****");
}
return 0;
}
答案二:
#include <stdio.h>
int main()
{
int i = 0;
int j = 0;
while ( i < 4)
{
while (j < i)
{
printf(" ");
j++;
}
printf("%s\n","*****");
i++;
j = 0;
}
return 0;
}