C语言循环语句入门练习题
第1关:判断数字能不能被整除
100
- 任务要求
- 参考答案
- 评论116
- 任务描述
- 相关知识
- 编程要求
- 测试说明
任务描述
本关需要你完成一个统计[1,N]范围内,各位数字之和能被15整除的整数个数的小程序。 例如:78的各位数字之和是:7+8=15,则78是一个各位数字之和能被15整除的整数。56的各位数字之和是:5+6=11,则56不是一个各位数字之和能被15整除的整数。
相关知识
本关涉及的while循环语句、do-while循环语句和for循环语句的相关知识已经在上个实训:C语言基本语法进阶练习题中详细介绍了,本实训不再赘述。
编程要求
请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下:
输入一个正整数N,统计[1,N]范围内各位数字之和能被15整除的整数个数。
效果如下:
输入:100。 输出: 4。
测试说明
平台会对您的代码进行运行测试,如果实际输出与预期输出相同,则算通关。
验货啦,验货啦,开始你的任务吧!
//注意//1:该程序每次运行的时间必须小于200毫秒,否则会超时,程序超时将不会测试剩余的测试集//2:该程序每次运行使用的内存不能超过1M,否则会返回错误//3:该程序每次运行输出的结果最多显示1000个字符(多余的不显示),每行末尾的所有空格用□表示
#include
int main()
{//获取参数方式 scanf//int x =0;//int y = 0;//scanf("%d", &x);//结果输出使用prinf//printf("%d",x);// 请在此添加你的代码/********** Begin *********/int N,i,j,sum,cnt=0;scanf("%d",&N);for(i=1;i<=N;i++){j=i;sum=0;while(j>0){sum+=j%10;j/=10;}if(sum%15==0){cnt++;}}printf("%d",cnt);/********** End **********/return 0;
}
第2关:判断区间内素数的个数
100
- 任务要求
- 参考答案
- 评论116
- 任务描述
- 相关知识
- 编程要求
- 测试说明
任务描述
本关需要你完成一个计算两个整数间的素数个数的小程序。
相关知识
什么是素数?素数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数。
编程要求
请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下:
在程序中输入两个整数m,n,判断[m,n]之间有多少个素数。
效果如下:
输入:101 200。 输出:21 。
测试说明
平台会对您的代码进行运行测试,如果实际输出与预期输出相同,则算通关。
验货啦,验货啦,开始你的任务吧!
//注意//1:该程序每次运行的时间必须小于200毫秒,否则会超时,程序超时将不会测试剩余的测试集//2:该程序每次运行使用的内存不能超过1M,否则会返回错误//3:该程序每次运行输出的结果最多显示1000个字符(多余的不显示),每行末尾的所有空格用□表示
#include
int main()
{//获取参数方式 scanf//int x =0;//int y = 0;//scanf("%d", &x);//结果输出使用prinf//printf("%d",x);// 请在此添加你的代码/********** Begin *********/int m,n,i,j,cnt=0;scanf("%d %d",&m,&n);for(i=m;i<=n;i++){int isPrime=1;for(j=2;j
第3关:判断区间内某个数字出现的次数
100
- 任务要求
- 参考答案
- 评论116
- 任务描述
- 相关知识
- 编程要求
- 测试说明
任务描述
本关需要你完成一个计算数字x在区间 1 到 n 的所有整数中,共出现了多少次的小程序。
相关知识
相关知识略
编程要求
请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下:
计算在区间 1 到 n 的所有整数中,数字 x(0 ≤ x ≤ 9)共出现了多少次?
例如,在 1到 11 中,即在 1、2、3、4、5、6、7、8、9、10、11 中,数字 1 出现了 4 次。
输入的两个整数,第一个数为n的值,第二个为x的值。
效果如下:
输入:11 1。
输出:4 。
测试说明
平台会对您的代码进行运行测试,如果实际输出与预期输出相同,则算通关。
验货啦,验货啦,开始你的任务吧!
//注意//1:该程序每次运行的时间必须小于200毫秒,否则会超时,程序超时将不会测试剩余的测试集//2:该程序每次运行使用的内存不能超过1M,否则会返回错误//3:该程序每次运行输出的结果最多显示1000个字符(多余的不显示),每行末尾的所有空格用□表示
#include
int main()
{//获取参数方式 scanf//int x =0;//int y = 0;//scanf("%d", &x);//结果输出使用prinf//printf("%d",x);// 请在此添加你的代码/********** Begin *********/int x,n,i,cnt=0,yushu,t;scanf("%d %d",&n,&x);for(i=1;i<=n;i++){t=i;while(t>0){yushu=t%10;if(yushu==x){cnt++;}t/=10;} }printf("%d",cnt);/********** End **********/return 0;
}
第4关:判断完数的个数
100
- 任务要求
- 参考答案
- 评论116
- 任务描述
- 相关知识
- 编程要求
- 测试说明
任务描述
本关需要你完成在指定范围内找出完数个数的小程序。
相关知识
什么叫完数?一个数如果恰好等于它的因子之和,这个数就称为“完数”。
那么因子又是什么呢?假如整数n除以m,结果是无余数的整数,那么我们称m就是n的因子。
例如,6=1+2+3,则6为完数。
编程要求
请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下:
找出指定范围内的完数个数。
效果如下:
输入:1,100。 输出:2。
测试说明
平台会对您的代码进行运行测试,如果实际输出与预期输出相同,则算通关。
//注意//1:该程序每次运行的时间必须小于200毫秒,否则会超时,程序超时将不会测试剩余的测试集//2:该程序每次运行使用的内存不能超过1M,否则会返回错误//3:该程序每次运行输出的结果最多显示1000个字符(多余的不显示),每行末尾的所有空格用□表示
#include
int main()
{//获取参数方式 scanf//int x =0;//int y = 0;//scanf("%d", &x);//结果输出使用prinf//printf("%d",x);// 请在此添加你的代码/********** Begin *********/int m,n,i,sum=0,j,y,cnt=0;scanf("%d,%d",&m,&n);for(i=m;i<=n;i++){sum=0;for(j=1;j
第5关:求矩阵最大值
100
- 任务要求
- 参考答案
- 评论116
- 任务描述
- 相关知识
- 编程要求
- 测试说明
任务描述
本关需要完成找出矩阵中值最大元素的小程序。
相关知识
在数学中,矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合 ,最早来自于方程组的系数及常数所构成的方阵。
由 m × n 个数排成的m行n列的数表,称为m行n列的矩阵,简称m × n矩阵环结构。其中m代表矩阵的行数, n代表列数。
编程要求
请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下:
有一个m×n的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。
效果如下: 输入:
3 4 1 2 3 4 9 8 7 6 2 0 5 8
输出:
该3*4矩阵的最大元素信息如下: max=9 row=2 column=1
测试说明
平台会对您的代码进行运行测试,如果实际输出与预期输出相同,则算通关。
开始你的任务吧!
//注意//1:该程序每次运行的时间必须小于200毫秒,否则会超时,程序超时将不会测试剩余的测试集//2:该程序每次运行使用的内存不能超过1M,否则会返回错误//3:该程序每次运行输出的结果最多显示1000个字符(多余的不显示),每行末尾的所有空格用□表示
#include
int main()
{//获取参数方式 scanf//int x =0;//int y = 0;//scanf("%d", &x);//结果输出使用prinf//printf("%d",x);// 请在此添加你的代码/********** Begin *********/int m,n,i,j,max,row=1,column=1;scanf("%d %d",&m,&n);int a[m][n];for(i=0;imax){max=a[i][j];row=i+1;column=j+1;}} }printf("该%d*%d矩阵的最大元素信息如下:\nmax=%d\nrow=%d\ncolumn=%d",m,n,max,row,column);/********** End **********/return 0;
}
第6关:逆序输出数组
100
- 任务要求
- 参考答案
- 评论116
- 任务描述
- 相关知识
- 一维数组
- 编程要求
- 测试说明
任务描述
本关需要你完成将一组数组的值按逆输出的小程序。
相关知识
什么是数组?所谓数组,是有序的元素序列。
在C语言中, 数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。本关带你回顾一下一维数组。
一维数组
定义方式:
类型说明符 数组名 [常量表达式];
其中,类型说明符是任意一种基本数据类型或构造数据类型。数组名是用户定义的数组标识符。方括号中的常量表达式表示数据元素的个数,也称为数组的长度。例如:
int a[10]; /* 说明:整型数组a,有10个元素 */float b[10], c[20]; /* 说明:实型数组b,有10个元素,实型数组c,有20个元素 */char ch[20]; /* 说明:字符数组ch,有20个元素 */
数组元素是组成数组的基本单元。数组元素也是一种变量, 其标识方法为数组名后跟一个下标。下标表示了元素在数组中的顺序号。数组元素的一般形式为:
数组名[下标]
数组元素通常也称为下标变量。必须先定义数组,才能使用下标变量。在C语言中只能逐个地使用下标变量,而不能一次引用整个数组。
举个例子: 使用for循环为一个数组赋值,并将数组逆序输出
#includeint main(void){int i,a[10];for(i=0;i<=9;i++)a[i]=i;for(i=9;i>=0;i--)printf("%d ",a[i]);return 0;}
编程要求
请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下:
将数组a[5]的值按逆序输出。
例如:由scanf函数输入a[5]为8 6 5 4 1,要求改为1 4 5 6 8,printf函数输出格式为%5d。
效果如下: 输入:8 6 5 4 1。 输出:1 4 5 6 8。
测试说明
平台会对您的代码进行运行测试,如果实际输出与预期输出相同,则算通关。
验货啦,验货啦,开始你的任务吧!
#include
int main()
{//获取参数方式 scanf//int x =0;//int y = 0;//scanf("%d", &x);//结果输出使用prinf//printf("%d",x);// 请在此添加你的代码/********** Begin *********/int i,a[5],j;for(i=0;i<5;i++){scanf("%d",&a[i]);}for(i=4;i>=0;i--){printf("%5d",a[i]);}/********** End **********/return 0;
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
