
C语言上机习题
月亮偷着哭...
积跬步 至千里
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C语言 将一个3*3的矩阵转置,用函数和指针实现
使用工具:Dev c++ 5.11解题思路:参考代码:#include<stdio.h> int main(){ int tran(int (*p)[3]); int a[3][3]; for(int i=0;i<3;i++) { for(int j=0;j<3;j++) scanf("%d",&a[i][j]); } printf("After conversion:\n"); tran(a); printf("\n");原创 2022-03-17 23:36:06 · 4008 阅读 · 1 评论 -
C语言>>编写一系统,计算常见图形(圆、三角形、正方形和矩形)的面积
使用工具:Dev-C++ 5.11题目描述:编写一系统,计算常见图形(圆、三角形、正方形和矩形)的面积。要求:实用性强(不懂计算机编程的人也能够使用)。 用户根据自己需要选择某类图形、输入相应的数据后,能够正确的计算该图形的面积。 能够重复执行上面的操作。 当用户把所有图形面积计算完后,能够正常退出 当用户数据输错时,能够有相应的错误提示。参考代码:#include<stdio.h>int main(){ void menu(int n); int t原创 2022-03-07 00:01:35 · 4249 阅读 · 0 评论 -
C语言>>编写一个程序完成“菜单”功能。三种选择途径:1) 求水仙花数(narcissus number),找出100至999之间的所有水仙花数。2)求出素数(prime number......
使用工具:Dev-C++ 5.11参考代码://4-1 菜单 #include<stdio.h>#include<math.h>int main(){void menu(int n); int tf=1;menu(tf);}//主菜单函数void menu(int n){ void nar(int n); void pri(int n); void fai(int n); int input,a; while(n==1) { pri原创 2022-03-07 00:01:58 · 1600 阅读 · 4 评论 -
C语言>>由键盘任意输入一个字符串和一个字符,要求从该字符串中删除所指定的字符
使用工具:Dev-C++解题思路:当用户输入了字符串,可以不利用循环求长度,因为每一个字符数组都会在结尾存放一个转义字符\0;然后编写一个循环语句,用循环依次判定字符数组s中的每个字符与x是否相等,若不相等则赋给另一个数组存放,若相等则不赋给另一个数组存放,处理完后另一个数组即为删除了 x字符的数组。也可练习直接在一个数组中处理。参考代码:#include <stdio.h>int main(){int i, j = 0;char ch;char str[100]原创 2022-03-07 00:02:11 · 9224 阅读 · 0 评论 -
C语言>>已知数组int num1[20],num2[20]中分别存放了两个20位整数的各个位的值,编写一个程序,求将这两个整数相加的结果。
使用工具:Dev-C++ 5.11解题思路:定义一个num3[21]的数组,用于存放两个数组相加的结果,之所以长度为21,是因为要考虑进位的情况;数组num3[21]的每一位数的存放应是从尾放到头,因此在写循环的的时候,循环变量(作为数组的下标)应是递减的。最后还要注意num3[21]应被定义一个初始值0,其原因如下(摘自一位热心网友给我的解答): 就是num3没有初始化的原因,申请的内存还有残存的值,并不是0 C语言的变量分为全局变量跟局部变量,全局变量是不用初始化的,它的值即原创 2022-03-07 00:02:23 · 565 阅读 · 0 评论 -
C语言>>写一函数,使输入的一个字符串按反序存放,要求在主函数中输入和输出字符串
使用工具:Dev-C++ 5.11解题思路:用户输入了字符串后,利用循环语句求出字符串长度,然后写一个单层循环,每次循环次数都小于等于长度的一半即可。每次反序存放都是两两对换,三个(奇数个)字符的字符串(try)与四个(偶数个)字符的字符串(hero),在奇数个字符的字符串中循环 就是y 与t交换,r做一次“无效”(相当于你把东西放入一个篮子,然后又把它拿回来)交换(一共2次循环即可完成反序存放);偶数个字符的字符串的交换就是 h 与o交换 r与e交换。参考代码:#include &l原创 2022-03-07 00:02:33 · 2417 阅读 · 0 评论 -
C语言>>有n个人围成一圈,顺序排号,从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的人原来排在第几号。
使用工具:Dev-C++ 5.11解题思路:比如有4个人报数,报到3的人会退出圈子,那第四个人就应该报1,第一个人报2,依此类推。题中提到的退出圈子,在代码中并不是真正的退出member[1000]数组,而是给它附上0这个新值,做一个标记,一直到4个人只剩下一个人,才用循环遍历四个人中,不为0的人,并将其打印输出。count计数只会在1、2、3三个数游荡,因为每次报数就是1、2、3,并不是第四个人报完了1,还有五个人、第六个人报数2、3。参考代码:#include<stdio.h原创 2022-03-07 00:02:42 · 4427 阅读 · 4 评论 -
C语言>>打印以下的杨辉三角形(10行)
使用工具:Dev-C++ 5.11解题思路:分清楚该图像有特殊和普通的列,先处理特殊的,再编写双层循环实现普通的列;参考代码: //打印以下的杨辉三角形(10行)#include<stdio.h>int main(){ int a[10][10],i,j;for(i=0;i<10;i++) { a[i][i]=1; a[i][0]=1; }//负责对角线和每行第一列 for(i=2;i<10;i++) for(j=1;j原创 2022-03-06 02:19:52 · 11636 阅读 · 1 评论 -
C语言>>输入两个字符串,比较这两个字符串是否相同并输出比较结果。要求不用任何字符串处理函数。
使用工具:Dev-C++ 5.11解题思路:设置两个字符数组,并利用while循环计算出两个数组的长度,当长度相等时应有遍历数组中每一个字符是否恒等的循环代码,并在循环中计数,当退出循环时,应判断计数的大小是否恒等于数组的大小,满足两个条件才可以输出字符串相等。参考代码:#include<stdio.h>int main() { char a[30],b[30]; int n=0,k=0; int count3=0; int count1=0; in原创 2022-03-06 02:13:39 · 2269 阅读 · 0 评论 -
C语言>>求方程ax2+bx+c=0的根,用三个函数分别求当b2-4ac大于0、等于0和小于0时的根,并输出结果。从主函数输入a、b、c的值。
使用工具:Dev-C++ 5.11解题思路:直接定义全局变量,这样方便调用。 在主函数就写好b*b-4*a*c的值,创造的三个求根函数,只需要设置a,b两个形参,因为求根公式只是涉及了这两个系数。最后在主函数运用if来判断b*b-4*a*c的大小,满足条件应该运用的函数即可。参考代码:#include<stdio.h>#include<math.h>double a,b,c,x1,x2,disc,p,q;//全局变量-global variableint原创 2022-03-06 01:59:13 · 6543 阅读 · 1 评论 -
C语言>>写一函数,用“起泡法”对输入的10个字符由小到大排序。
使用工具:Dev-C++ 5.11解题思路:“起泡法”思路为:将相邻两个数比较,将较小的调到前头,较大的放到后头。经过1轮比较后,最大的数便调到最后一个位置。所以n个数要比较n-1趟,在第j趟中要进行n-j次比较。下面以一个整型数组中的6个数为例演示进行第1趟比较的情况: 我们可以写一个双层循环,外层循环控制趟数,内层循环控制每两个数比较的次数,再在里面写上执行两个值交换的代码即可,这样一来,我们只需要一个数组即可解决问题。参考代码:#include<stdio.h>原创 2022-03-06 01:50:21 · 10975 阅读 · 0 评论 -
C语言>> 编写一函数显示如下规则的图形,每行‘*’号个数及输出行数由主函数输入n值控制。
使用工具:Dev-C++ 5.11解题思路:创造一个函数,内设一个形参,用于得到用户输入的n的值,决定图形的样子。在函数内,由于该图形是上下对称图形,上面的在递减,下面的在递增,所以我们应该写两次双层循环,规定上面的图形的代码的外层循环变量是递减的,内层循环变量的循环次数等于外层的循环便量的大小;下面的图形的代码的外层循环变量是递增的,内层循环变量的循环次数等于外层的循环变量的大小。参考代码:#include<stdio.h>int main(){ int figur原创 2022-03-06 01:32:20 · 1524 阅读 · 0 评论 -
C语言>>编写一函数,将N*N方阵行列互换。
使用工具:Dev-C++ 5.11解题思路:创造一个函数transpose(int a[][N],int n),在内设置局部变量:两个下标和一个临时交换值的变量;再写一个双层循环,实现a[x][y]和a[y][x]的互换即可。参考代码:#include<stdio.h>#include<string.h>#include<math.h>#define N 3//用常量定义数组,切记勿用变量!//此处定义N的值并不影响,后续添加scanf即可原创 2022-03-06 01:09:31 · 2020 阅读 · 0 评论 -
C语言>>写一个函数,判断一个5位数是不是回文数。例:12321是回文数,个位与万位相同,十位与千位相同。
使用工具:Dev-C++ 5.11解题思路:设n是一任意自然数。若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数。在函数Palindrome_num(int n)中,设置局部变量(万位、千位、百位、十位、个位),根据输入的参数,将数字的万千百十个分离出来,然后判断个位与万位是否相同,十位与千位是否相同。参考代码:#include<stdio.h>int main(){ int Palindrome_num(int n); int a,Logica原创 2022-03-06 00:57:40 · 761 阅读 · 0 评论 -
C语言>>一个数如果恰好等于它的因子之和,这个数就称为“完数”。比如:6=1+2+3,因此6是完数。编程求出1000以内的完数。
使用工具:Dev-c++ 5.11解题思路:该数最小为2,不超过1000;我们可以写个双循环,外层循环表示可能存在的完数的集合,内层循环表示可能存在的因子的集合,且因子最大也只能是完数的一半;在内层循环中 ,代码应当实现如果一个数(外层的)和另一个数(内层的)取余数恒为零,就记录下另一个数的累加。当退出内层循环时,判断累加的数的大小是否等于外层循环的数,即可得出完数。参考代码:#include<stdio.h>int main(){ int num,yz,sum;原创 2022-03-06 00:31:56 · 2657 阅读 · 0 评论 -
C语言>>百钱百鸡问题。鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,翁、母、雏各几何 ?
使用工具:Dev-c++ 5.11解题思路:解读标题《百钱百鸡》,意思就是用一百元钱,购买一百只鸡,因为鸡的类别有三种,所以就有不同的方案。公鸡一只五元钱,最多20只;母鸡一只三元钱,最多33只;小鸡一元钱三只,最多购买99只。并且①花费100元;②小鸡数量必须是3的倍数;③数量之和为100;参考代码:#include<stdio.h>int main(){ int x,y,z,num=1; for(x=0;x<=20;x++) for(y=0;y原创 2022-03-06 00:09:55 · 19834 阅读 · 6 评论 -
C语言>>根据输入的月份的阿拉伯数字转换成对应的英文单词输出,若超过范围,则提示输入错误。
使用工具:Dev-c++ 5.11解题思路:本题可以选择使用if-else if语句或switch语句。在使用switch语句时应该注意每当满足一个条件,执行相应的语句后,因该添加break语句,不然会导致程序继续向下执行。下面的代码添加了循环语句,可以实现多次查询某月的英文单词,需要注意当我们定义了一个char类型的变量,要记住单引号括单个字符,双引号括多个字符。参考代码:#include<stdio.h>int main(){ int month;char原创 2022-03-05 23:41:38 · 2048 阅读 · 0 评论 -
C语言>>输入一个大于三位的整数,编一个程序,将它的十位数和百位数互换位置。
使用工具:Dev-C++ 5.11解题思路:比如输入456789,我们需要将千位及千位以上的数给分离出来,还要分离百位、十位、个位。然后再将分离出来的数字(千位、百位、十位)分别乘以10的N(N对应千、百、十可变)次方进行相加即可得到位置互换后的数字。参考代码:#include<stdio.h>int main(){ int num,gw,sw,bw,qw,result=0; printf("Please input an integer number with m原创 2022-03-05 23:15:18 · 2956 阅读 · 0 评论