题目:输入 2 个十进制整数 M 和 N,输入M对应的N进制数,2 <= n && n <= 16例如:输入 6 2输出 1 1 0分析:进制转换的题这几年很喜欢考,我们前面的文章已经有过详细的解析,这里就不赘述了,直接写代码代码实现:#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include
题目:有一个5*5的二维数组(要求通过键盘为其赋值),求其周边元素之和以及该数组中最小的元素,然后输出。分析:先建立一个5*5的数组再建立2层循环嵌套,外层循环控制行,内层循环控制列然后我们在循环体内把3件事情都做了:录入数据至二维数组求周边元素之和找数组中最小元素代码实现:#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> i
题目:输入10个字符串,从中找到最大的字符串并输出。要求使用二维数组存放这些字符串,用指针数组分别指向这些字符串,用一个二级指针指向这个指针数组。分析:这道题比较简单,如果不是题目限制我们必须建立二维字符数组、指针数组和二级指针的话,我们甚至可以在录入的同时去比较字符串大小,输入一结束,结果就可以瞬间出来。但做题,还是要看题目要求的。所以我们先按要求,建立二维字符数组、指针数组和二级指针。然后再利
真题(西北工业大学):编程实现:在主函数中,从键盘读入10个整数,按从大到小的顺序构造链表。每读入一个整数, 就调用函数,函数根据整数的大小在合适的位置插入链表。题目分析:实现思想:循环输入10个整数给每个数动态创建一个结点,用 malloc 函数动态分配内存查找这个数在链表中该存放的位置插入进去输出结果难点击破:这道题只有2个难点,也是考点所在:建立链表从大到小插入到链表里1.链表直接上代码st
题目:输入一个数字字符串,将其输出为整数输出。不得调用C语言提供的将数字字符串转化为整数的库函数来完成。输入输出示例:输入:-1234输出:-1234分析:这种题我们有一种通用的算法:n = n * 10 + *p - '0'while (*p)//p为指向“数字字符串 首位字符地址”的指针 { n = n * 10 + *p - '0'; p++; }利用这个算法,我们可以轻易解题。
题目:一个自然数的七进制表达式是一个3位数,而这个自然数的九进制表达式也是一个3位数,且这2个3位数的数码顺序正好相反,求这个自然数。解题思路:该题考察的是我们的进制转换,而不同类型中的进制转换纯粹是数学上的计算。只要在数学上理解了,写出进制转换的代码轻而易举。所以我们直接从数学上分析:以10进制的101,转7进制为例10进制的10展开来看,从低位到高位其实是:它每一位的权重,是以10为底,以位次
题目:编写程序从终端键盘输人圆的半径r,圆柱的高h分别计算出圆周长cl、 圆面积cs和圆柱的体积cvz输出计算结果时要求有文字说明,并取小数点后2位数字代码实现:#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #define PI 3.14159 int main() { float r = 0.0f; float h
本题来源于牛客网,是一道很有意思的题目,我们一起来做一下吧!题目:给定一个数组height,长度为n,每个数代表坐标轴中的一个点的高度,height[i]是在第i点的高度,请问,从中选2个高度与x轴组成的容器最多能容纳多少水1.你不能倾斜容器2.当n小于2时,视为不能形成容器,请返回03.数据保证能容纳最多的水不会超过整形范围,即不会超过231-1数据范围:如输入的height为[1,7,3,2,
题目:要求输入一个正整数 n ,请你输出斐波那契数列的第 n 项。斐波那契数列,又称黄金分割数列 ,它是指这样一个数列:1,1,2,3,5,8,13,21,34,55,89……这个数列从第3项开始 ,每一项都等于前两项之和。输入数据范围:要求:空间复杂度 ,时间复杂度 ,本题也有时间复杂度 的解法解题思想:本题要求使用动态规划的方法解题,所以我
认识我们今天来简单地认识一下命令行参数。命令行参数是什么:执行程序时,我们可以不在程序的内部进行编码,而通过命令行传值给 C 程序,实现从外部来控制程序。此时从命令行传的值,就叫做命令行参数。如下行代码int main(int argc, char* argv[])它就是带有命令行参数的 main() 函数,其中:argv[] 是一个指针数组,指向传递给程序的每个参数argc
题目:存款利息的计算。有1000元,想存5年,可按以下5种办法存:(1)一次存5年期(2)先存2年期,到期后将本息再存3年期(3)先存3年期,到期后将本息再存2年期(4)存1年期,到期后将本息再存1年期,连续存5次(5)存活期存款,活期利息每一季度结算一次2017年银行存款利息如下:1年期定期存款利息为1.5%;2年期定期存款利息为2.1%;3年期定期存款利息为2.75%;5年期定期存款利息为3%
题目:编写程序实现:输人一个整数,判断它能否分别被3、5、7整除,并输出以下信息之一:(1)能同时被3、5、7整除;(2)能被其中两数(要指出哪两个)整除;(3)能被其中一个数(要指出哪-一个)整除;(4)不能被3、5、7 中任一个整除。代码实现:#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> int main() { i
题目:编写程序判断输人的正整数是否既是5又是7的整倍数。若是,则输出yes,否则输出no代码实现:#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> int main() { int n = 0; scanf("%d", &n); //n % m == 0 // 代表 n 可以被 m 整除 // 也就是说
题目: 输出100-200之间的素数 (素数是除了1和它本身不能被其它数整除的数)。代码实现:#include <stdio.h> #include <math.h> #include <stdbool.h> #define START 100 #define END 200 bool Is_prime(int n) { int i = 0;
题目:用一维数组接收学生成绩,输出最高成绩学成绩和序号(学生序号从1开始,最后一个是10)。解题思路:我们可以在录入数据的同时,让每一个数进行比较,并记录较大值和它的下标。然后输出结果即可解题(注意下标要进行 + 1)代码实现:1.使用指针#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #define SIZE 10 in
题目:假设有一个一元二次方程,有a,b,c三个系数,求该方程的根并输出,没有则输出"Error"(已知头文件math.h中的求平方根的sqrt函数)。分析:要解决本题,我们首先要熟悉一元二次方程的求根公式:然后建立3个分支结构:方程有2个不同实数根方程有2个相同实数根方程没有实数根在分支结构中套用此公式即可解题。代码实现:#define _CRT_SECURE_NO_WARNINGS 1 #in
题目:给一个长度为 n 整数数组排序,即实现一个可以给任意长度数列排序的工具输入描述:第1行输入1个正整数 n ,表示数组长度。第2行输入 n 个正整数,表示数组中每个元素的值输出描述:输出排序后的数组解题思路:利用calloc或者malloc动态开辟空间,用来存储n个元素的数列利用冒泡排序对数列进行排序代码实现:#define _CRT_SECURE_NO_WARNINGS 1 #includ
再本篇文章中,我们将通过实操一个小题目,来理解与运用冒泡排序冒泡排序是什么,怎么工作的?冒泡排序是一种排序算法,它可以将一堆无序/乱序的元素,排列成有序的元素。它的工作方式就和在水底吐泡泡一样:一次吐一个泡泡,泡泡吐出来后向上冒,而当这个泡泡向上冒的运动结束时,它的位置处于当前水的最高处(水面上)的。如图:我们每一次冒泡的过程中,都会从第一个数开始,不断地向后进行比较。以排升序(从小到大排)为列:
题目:给出一百分制成绩,要求输出成绩等级’A’、‘B’、‘C’、‘D’、‘E’。90分以上为’A’80~89分为’B’70~79分为’C’60~69分为’D’ 60分以下为’E’解题思路:这道题显然是在考察选择结构。我们写一个嵌套的if语句,来实现分支选择。代码实现:#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> int m
题目:有一个函数:写程序,输入x的值,输出y相应的值。解题思路:我们可以写一个嵌套3层的if语句,来实现分支选择。代码实现:#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> int main() { int x = 0; int y = 0; printf("Please input x:\n"); scanf("%
题目描述来源:牛客网题目描述:牛牛有一个学习计划,他计划在 y 年 m 月 d 日开始学习,但在之前他是绝不会开始学习的,但是他一旦开始学习就不会停下来,请你判断 y1 年 m1 月 d1 日牛牛应该学习吗。输入描述:第一行输入 y ,m ,d ,即牛牛计划开始学习的时间。第二行输入 y1,m1,d1,即询问的时间。输出描述:请你判断牛牛是否开始学习。如果是则输出 yes ,否则输出
题目描述来源:牛客网题目:描述牛牛正在寄快递,他了解到快递在 1kg 以内的按起步价 20 元计算,超出部分按每 kg 1元计算,不足 1kg 部分按 1kg计算。如果加急的话要额外付五元,请问牛牛总共要支付多少快递费输入描述:第一行输入一个单精度浮点数 a 和一个字符 b ,a 表示牛牛要寄的快递的重量,b表示牛牛是否选择加急,'y' 表示加急 ,'n' 表示不加急。输出描述:输出牛牛总共要支付
题目:描述牛牛有一个半径为 r 的球,他想知道这个球的体积。球的体积公式是其中 π 取3.14 , r 是一个整数输入描述:输入球的半径输出描述:输出球的体积分析:直接把 r 的数据套入公式中,即可解题其中需要注意的是:在公式中,4 / 3时,4 或 3需要有一个为浮点数,这样进行的才是除法运算。若 4 与 3皆为整型,那么此时进行的其实是取商运算。代码实现:#define _
题目:描述牛牛口渴了,要喝10升水才能解渴,但现在只有一个深 h 厘米,底面半径是 r 厘米的水杯,牛牛最少要喝多少杯水才能解渴。水杯的体积公式是,其中 π 取 3.14 , 和 r 是整数。输入描述:输入杯子的高度 h ,底面半径 r 输出描述:输出牛牛最少要喝多少杯水代码实现:#define _CRT_SECURE_NO_WARNINGS 1 #include <s
在本篇文章中,我们将通过实现一个小游戏,来带领大家一起实操C语言程序设计的前3大步骤:定义目标设计程序编写代码游戏简介:21点又名黑杰克(Blackjack),起源于法国,已流传到世界各地,有着悠久的历史。在世界各地的赌场中都可以看到二十一点,随着互联网的发展,二十一点开始走向网络时代。该游戏使用除大小王之外的52张牌,游戏者的目标是使手中的牌的点数之和不超过21点且尽量大。设计思想:第一步:定义
题目:定义一个含有30个整型元素的数组,按顺序分别赋予从2开始的偶数。然后按顺序每5个数求出一个平均值,放在另一个数组中并输出。试编程。题目分析:我们先写一个循环,用来初始化第一个数组遍历第一个数组。遍历过程中,每5个数进行一次操作,操作为:求出最近5个数的均值,并存放入另一个数组中打印结果代码实现:#include <stdio.h> #define SIZE 30 int ma
题目:若有说明: int a[2][3]={{1,2,3},{4,5,6}};现要将行和列的元素互换后存到另一个二维数组b中。试编程。分析:直接把控制行与列的循环调换位置即可。代码实现:#include <stdio.h> int main() { int a[2][3] = { {1, 2, 3}, {4 ,5, 6} }; int b[3][2] = { 0 }; int
题目:通过赋初值按行顺序给2*3的二维数组赋予2、4、6...等偶数,然后按列的顺序输出该数组。试编程。分析:其实就是使行与列调换直接让输出循环的2个循环调换位置即可
题目:通过循环按行顺序为一个5*5的二维数组a赋1~25的自然数,然后输出该数组的左下三角。试编程。分析:正方形数组的规则是:左上 -> 右下的对角线是i == j 右上 -> 左下的对角线是i + j == 边长 - 1 左下部分是 i > j 左上部分是 i < j所以我们只需要建立一个正常打印所有元素的循环,然后在循环内部,添加判断语句:i <= j即可解题代码
题目:下面是一个5阶的螺旋方阵。试编程打印出此形式的n(n<10)阶的方阵(顺时针方向旋进)。1 2 3 4 516 17 18 19 615 24 25 20
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号