
C 语言机试题
目录已在专栏置顶;谭浩强版C语言书籍看一遍;课本内例题,习题敲敲;专栏内其他试题敲敲; 一定要动手敲,先自己想,再看;每天保持手感,复试上机不成问题; 加油,坚持就是胜利!
优惠券已抵扣
余额抵扣
还需支付
¥39.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
南淮北安
好好学习
展开
-
C语言学习
Dev-C++调试程序提示‘项目没有调试信息,您想打开项目调试选项并重新生成吗?’的解决办法Dev-C++ 5.11常用的快捷键Dev-C++运行出现“[Error] ld returned 1 exit status”C语言:基础知识C程序设计(第四版)第一章习题C程序设计(第四版)第二章习题C程序设计(第四版)第三章习题C程序设计(第四版)第四章习题C程序设计(第四版)第五章...原创 2019-03-30 17:23:22 · 1593 阅读 · 1 评论 -
C语言:上机编程题集
输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数求最大公约数和最小公倍数译密码:按规律将字母变成其后的第四个字母给一个不多于5位的正整数,输出它的位数及每位数字的值甲、乙乒乓球队比赛,编程找出3对赛手的名单输入一行字符,统计其中有多少个单词,并将每个单词首字母大写(考虑空格,考虑单词的缩写)输出n以内的素数杨辉三角输入一个十六进制数,输出相应的十进制数给出年、月...原创 2019-04-03 19:23:44 · 6410 阅读 · 32 评论 -
李白提壶买酒,遇店加1倍,遇花喝1斗
1. 题目李白街上走,提壶去买酒。遇店加一倍,见花喝一斗。N遇店和花,喝光壶中酒。借问此壶中,原有多少酒。编程输入N,输出原来的酒数和遇店、遇花的过程。2. 分析将题目转换成数学问题,没那么复杂,就是本来酒壶里有酒x,遇店加1倍,遇花喝1斗,最后正好遇见n次店和花喝光壶里的酒。题目简单理解,别理解那么复杂,就是顺序遇店一次,遇花一次建设N=3,方程为:2(2(2x-1)-1)-1...原创 2019-04-03 00:10:34 · 5136 阅读 · 0 评论 -
复试上机题集(1)
给你一个年份,还有一个数字n,以1月1日为第一天,然后你根据n的值来求出是几月几号。#include "stdio.h"void main(){ int a[12]={31,28,31,30,31,30,31,31,30,31,30,31}; int year=2020,n=59;// scanf("%d,%d",&year,&n); int i=0,flag=0...原创 2019-03-30 17:26:06 · 1215 阅读 · 0 评论 -
复试上机常用函数
头文件#include "stdio.h"#include "string.h"#include "malloc.h"#include "math.h"字符串常用函数strlen()strcmp()if(strcmp(s1,s2)==0)//[如果s1大于s2则大于0]strcpy(A,B) //字符串B复制到A里strlwr()strupr()s[20] = {...原创 2019-03-30 17:24:00 · 800 阅读 · 2 评论 -
复试上机题集(5)
中国古代数学家张丘建在他的《算经》中提出了一个著名的“百钱买百鸡问题”,鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?#include "stdio.h"void main(){ int i,j,k; int sum=100; for(i=0;i<=100;i++){ for(j=0;j<=100;j++){ for(k=0...原创 2019-03-30 17:24:15 · 1133 阅读 · 0 评论 -
复试上机题集(2)
题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?程序分析:假设该数为 x。1、则:x + 100 = n2, x + 100 + 168 = m22、计算等式:m2 - n2 = (m + n)(m - n) = 1683、设置: m + n = i,m - n = j,i * j =168,i 和 j 至少一个是偶数4、可得: m =...原创 2019-03-30 17:24:54 · 940 阅读 · 0 评论 -
复试上机题集(3)
猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个?第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下?的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。思路逆推#include "stdio.h"void main(){ int sum=1,i; for(i=9;i>0;i--){ sum...原创 2019-03-30 17:25:50 · 1014 阅读 · 0 评论 -
复试上机题集(4)
海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,这只 猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了 一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的, 问海滩上原来最少有多少个桃子?#include "stdio.h"void main(){ int sum; int i,j; for...原创 2019-03-30 17:24:33 · 776 阅读 · 0 评论 -
C语言:memset函数详解(解决数组莫名其妙多了些字符)
前言最近写C语言程序,命名给数组赋值了三个值,结果却出现了四个值。以前没有考虑过数组初始化这种情况,以后凡是用到字符数组最好先初始化1. memset函数介绍void *memset(void *s, int ch, size_t n);函数解释:将s中当前位置后面的n个字节 (typedef unsigned int size_t )用 ch 替换并返回 s 。memset作用...原创 2019-03-22 11:52:45 · 1613 阅读 · 0 评论 -
Dev c++安装
1. 参考链接2. 将中文环境修改成中文环境原创 2019-03-30 17:37:28 · 894 阅读 · 0 评论 -
C语言:甲乙丙丁分糖
题目甲、乙、丙、丁四人共有糖若干块,甲先拿出一些糖分给另外三人,使他们三人的糖数加倍;乙拿出一些糖分给另外三人,也使他们三人的糖数加倍;丙、丁也照此办理,此时甲、乙、丙、丁四人各有16块,编程求出四个人开始各有糖多少块。代码#include "stdio.h"void main(){// 分配结束时,甲乙丙丁分别为:a[0],a[1],a[2],a[3] int a[4] = {1...原创 2019-03-30 17:42:21 · 1690 阅读 · 0 评论 -
C语言:比酒量
1. 题目一群海盗,数量不多于20,船上比拼酒量。过程如下:打开一瓶酒,所有在场的人平均分,倒下一些人;再打开一瓶酒,又有倒下的。。。如此重复,直到打开第四瓶酒,坐着的人所剩无几,其中包括船长在内,当第四瓶酒平分之后,所有人都到下了。等船长醒来,发现海盗船搁浅了,他在航海日志中写到,我正好喝了一瓶酒。由此信息推算海盗的数量,以及每次倒下之后剩余的人2. 分析这样的题,不难,只有把思...原创 2019-03-30 17:37:47 · 874 阅读 · 0 评论 -
输入一个字符串,内有数字和非数字字符,打印字符串中所有连续的数字所组成的整数
题目输入一个字符串,内有数字和非数字字符。如A123X456Y7A,302ATB567BC,打印字符串中所有连续(指不含非数字字符)的数字所组成的整数。代码#include "stdio.h"#include "string.h"#define max 100void main() { char a[max]={"A123X456Y7A,302ATB567BC"};// 二维数...原创 2019-03-30 17:32:19 · 10563 阅读 · 1 评论 -
C语言:发工资
问题如果输入的工资没有小数就好了,什么分都出来邪门,两个小数相减出现了负数百度了一大圈,不知道问题出现在哪,有说溢出的,不知道怎么会溢出1. 题目输入几名职工工资金额,统计最少须领多少个100元,50元,20元,10元,5元,2元,1元,5角,2角,1角,5分,2分,1分才能实现顺利发放?假设职工数n=5,工资分别为:786.98,1038.76,1053.72,1234.98,16...原创 2019-03-30 17:35:40 · 2346 阅读 · 3 评论 -
C语言编写代码:链式存储方式下模式匹配
1. 要点创建链表函数里的头结点需要初始化*l = (linklist)malloc(LEN);(*l)->next =NULL;2. 题目5.链式存储方式下模式匹配设主串s,字串t分别以单链表存储,t和s中每个字符均用以结点表示如下图:datanext实现在链式存储方式下的模式匹配,即求字串t在主串s中第一次出现的位置指针。3. 代码#include ...原创 2019-03-30 17:36:21 · 963 阅读 · 1 评论 -
C语言:编程打印图形
题目编程打印以下图形:代码#include "stdio.h"void main() { char ch = 'A'; int i,j; for(i=0; i<5; i++) { for(j=1; j<5-i; j++) printf(" "); if(i==0) printf("%c\n",ch); else { printf("%c",ch...原创 2019-03-11 11:27:38 · 3317 阅读 · 0 评论 -
C语言:方阵填数又名蛇形填数
题目方阵填数:在一个nn的数组中,填入1,2,3,….NN个数,并要求按如下格式输出该数组的元素,例如一个5*5的数组输出顺序为:13 14 15 16 112 23 24 17 211 22 25 18 310 21 20 19 4 9 8 7 6 5 分析题目不好下手,惟一的分析,就是观察题目,分析给出的示例。发现图形成一个螺旋...原创 2019-03-30 17:33:28 · 5643 阅读 · 3 评论 -
C语言:哈希表的建立,查找,计算查找成功与不成功的平均查找长度
本文采用线性探测法解决冲突前言关于什么是哈希表,定义网上太多了,大家可以自行搜索,本文主要讲代码的实现由于网上大部分是采用链地址法处理冲突,所以刚开使代码总卡着没法运行在与哈希表的初始化初始化方法可以自行选择,不初始化,没法判断该位置是否存有数据,初始为-1,就可以依据num的值判断,该位置是否被存入值 for(i=0;i<13;i++){ h[i].num = -1;...原创 2019-03-30 17:28:14 · 3099 阅读 · 1 评论 -
C语言:链表实现二进制数加1运算
题目建立一个带头结点的线性链表,用以存放输入的二进制数,链表中每个结点的data域存放一个二进制位。在此链表上实现对二进制数加1的运算,并输出运算结果测试数据1: 1010011测试数据2 1111代码#include "stdio.h"#include "malloc.h"#define LEN sizeof(node)#defi...原创 2019-03-30 17:43:09 · 1852 阅读 · 0 评论 -
输入一个字符串(含空格),统计其中的字符个数并显示出
1. 题目输入一个字符串(含空格),统计其中的字符个数并显示出来 比如输入:abc ab c,要求输出为:a 2b 2c 2‘ ’2//注意这行的第一个字是空格2. 分析可以设置一个二维数组,将一维数组中的相同字符,作为 字符串,存入二维数组,行标代表字符串个数,列表代表字符串的长度代码#include "stdio.h"#include "string.h"#define ...原创 2019-03-30 17:43:36 · 9661 阅读 · 0 评论 -
按递增次序生成集合M的最小的100个数并输出
1. 题目编程,按递增次序生成集合M的最小的100个数并输出之。M的定义为:①1∈M②X∈M,则2X+1∈M 且3X+1∈M;显然M是一无限集合,M={1,3,4,7,9,…}2. 分析题目如同一个二叉树,根节点为1,然后两支向下发散,寻找最小的100个数换种思路,可以存储的数比100多,然后从里面寻找前100小的数由于是个二叉树向下发散,可知第一次出现2的k次方大于100时,即k...原创 2019-03-30 17:44:57 · 3337 阅读 · 5 评论 -
按图打印树状图
1. 题目2.编程实现:要求建立一颗二叉树以二叉链表存储,输出要求的树状编号。结点结构为:lchiled Data Num rchiled,其中二叉树的num编号域为整数类型 ,data数据域为字符类型。要求生成二叉树中编号,从一开始进行连续编号,每个结点的编号大于其左右孩子的编号,同一个结点的左右孩子中,其左孩子的编号小于其右孩子的编号。请给出对二叉树中结点的实现如上要求并按如下右图树...原创 2019-03-30 17:42:42 · 1076 阅读 · 2 评论 -
求字符串中的最大字符平台
1. 题目编写程序:求字符串中的最大字符平台。一个字符串中的任意一个子序列,若子序列中各字符均相同则被称为字符平台。编程要求:输入任意一字符串S时,输出S中长度最大的所有字符平台的起始位置以及所含字符,注意字符平台有可能不止一个。测试数据:AAZZZXYTTT2. 分析将字符串中所有字符,每一个子序列都看作一个字符串,存入一个二维数组,子序列的划分依据是连续各字符都相同中间出现了一...原创 2019-03-08 20:57:00 · 2798 阅读 · 1 评论 -
C语言:使用strlen()函数比较长度时乱码
这个问题具有偶然性,因为单独使用strlen函数,也没有出现过问题,也可以和整数直接比较,可能这里是因为使用了二维数组吧欢迎大家指出问题所在问题在写一个关于字符串的代码,需要用到strlen()函数来确定字符串长度,正常输出调用都没事问题就出现在这一段代码里 for(i=0;i<=j;i++){ if(len<strlen(a[i])){ printf("%s,%d...原创 2019-03-08 20:37:15 · 849 阅读 · 0 评论 -
相约2008:2008是一个合数,求出此合数最多由多少个最小不同质数和组成, 并按要求从小到大输出这些质数
基础知识合数指自然数中除了能被1和本身整除外,还能被其他数(0除外)整除的数。与之相对的是质数,而1既不属于质数也不属于合数。最小的合数是4。其中,完全数与相亲数是以它为基础的。注意由于记录需要剔除的值的数组b,记录的值是从大到小,因此和最后数组a输出的值进行比较时应该注意 for(j=0; j&lt;=i; j++) {// 由于在b中存放的需要剔除的值是由大到小排列的因此应使用...原创 2019-03-30 17:45:33 · 1308 阅读 · 7 评论 -
编程实现在单词表中查找与已知单词最接近的单词
题目编程实现在单词表中查找与已知单词最接近的单词:如果单词表中有要查找的单词输出该单词的位置;如果单词表中没有要查找的单词,输出与要查找的单词最接近的单词(可能不止一个)最接近的单词是指以下三种情况:a) 两个单词仅仅相差一个字母,包括多一个或者少一个字母。如question和queston;time和timee;b) 两个单词中仅有两个字母位置是相反的。如:teacherhe和ta...原创 2019-03-30 17:34:30 · 870 阅读 · 0 评论 -
将一个无符号十进制整数转换成(2-16)进制数并输出
目录1. 基础知识2. 出现的问题3. 代码1. 基础知识十进制转二进制方法为:十进制数除2取余法,即十进制数除2,余数为权位上的数,得到的商值继续除依此步骤继续向下运算直到商为0为止。十进制转换为其他的进制同理2进制转换为8进制之类的转换可以借助十进制完成,即先转换为10进制,然后将10进制转换为8进制可参考2. 出现的问题本来想借助函数f2实现将a转换为b进制的数,由于...原创 2019-03-30 17:41:01 · 7910 阅读 · 1 评论 -
文件的输入输出:建立一个链表,信息从文件a.in中读取,根据要求完成题目
注意由于文件第一行存储学生的数量,所以读取文件时要先把学生数量读取出来由于第一行仅有一个学生数量,因此还需要读取一个换行符,接下来才能按格式读取结构体数据 size = fgetc(fp); //size存放学生数量 ch = fgetc(fp); //接受换行符 //读取数据 for(i=0; i&amp;amp;lt;size; i++) { fread(&amp;amp;amp;stu[i],sizeof(...原创 2019-03-30 17:33:49 · 1754 阅读 · 0 评论 -
文件的输入输出:从键盘读入若干个字符串,对它们按字母大小的顺序排序,然后把排好序的字符串送到磁盘文件保存
注意格式if((fp=fopen(filename,“w”))==NULL)格式:(fp=fopen(filename,“w”))整体小括号,判断是否为空磁盘文件格式if((fp=fopen(“D:\CC\string.bat”,“w”))==NULL)指定其他磁盘文件注意路径格式#include <stdio.h>#include <string.h&...原创 2019-03-04 12:57:29 · 2620 阅读 · 1 评论 -
文件的输入输出:将一个磁盘信息复制到另一个磁盘中
#include <stdio.h>#include <stdlib.h>#define null NULLint main() { FILE *in,*out; char ch,infile[10],outfile[10]; printf("输入读入的文件名:"); scanf("%s",infile); printf("输入一个输出的文件名:");...原创 2019-03-04 12:16:57 · 1427 阅读 · 0 评论 -
文件的输入输出:使用fget函数从键盘逐个输入字符,然后用fputc函数写到 磁盘文件
#include &lt;stdio.h&gt;int main(){ FILE *fp; //指向文件型数据的指针变量 char ch,filename[10]; printf("请输入文件名:"); scanf("%s",filename); //将fopen函数的返回值赋给指针变量fp if((fp=fopen(filename,"w&原创 2019-03-04 12:14:30 · 1516 阅读 · 0 评论 -
C语言:动态链表实现根据要求删除节点
注意输出节点时要分开输出,否则容易出现非法字符 p1 = head->next; while(p1){ printf("%ld ",p1->num); printf("%s ",p1->name); printf("%s ",p1->sex); printf("%d\n",p1->age); p1 = p1->next;原创 2019-03-03 21:31:49 · 2000 阅读 · 0 评论 -
提取两数组共有的字符输出(不能有重复字符串)
题目x[ ]=mcdabhaady[ ]=mavbmmcbn求出:z[]=mab,即是把相同的部分给提取出来放到另外一个数组中输出代码#include &amp;amp;lt;stdio.h&amp;amp;gt;#include &amp;amp;lt;string.h&amp;amp;gt;#define max 100int main() { char a[max],b[max],c[max],d[ma原创 2019-03-03 11:10:27 · 1131 阅读 · 4 评论 -
(链表解决)13个人围成一圈,从第一个人开始顺序报号1,2,3,凡报到3的人,退出圈子,找出最后留在圈子里的人的序号。
题目13个人围成一圈,从第一个人开始顺序报号1,2,3,凡报到3的人,退出圈子。找出最后留在圈子里的人的序号。代码#include <stdio.h>#define n 13typedef struct { int number; int nextp;} person;int main() { person link[n]; int i,count,h; fo...原创 2019-03-03 10:08:38 · 5315 阅读 · 0 评论 -
结构体数组:打印学生记录
注意输入学生记录时,要分开写,一个一个输入错误写法scanf("%s,%s,%d,%d",grade[i].num,grade[i].name,&grade[i].score[0],&grade[i].score[1])题目input函数输入学生记录print函数打印学生记录主函数调用打印和输入函数代码#include <stdio.h>//自己定...原创 2019-03-01 22:29:48 · 1436 阅读 · 0 评论 -
写一函数建立一个有3名学生数据的单向动态(静态)链表
#include &amp;lt;stdio.h&amp;gt;#include &amp;lt;malloc.h&amp;gt;#define LEN sizeof(Node)typedef struct Node{ long num; float score; struct Node *next;}*Linklist,Node;int n; //全局变量,用来记录有几个学生// 建立链表的函数Link原创 2019-03-01 21:11:40 · 3058 阅读 · 0 评论 -
组合人民币问题(存在问题)
代码太长,感觉可以使用递归解决,但是目前没有想出合适的解决方案,大神们有好的思路可以留言把张数最少的那一种显示出来,现在也没有很好的思路问题有面值为 100 50 20 10 5 1 的几种人民币,输入金额,罗列出所有的组合方案,并且统计出用的张数最少的那一种,并且显示代码#include &amp;amp;lt;stdio.h&amp;amp;gt;int main() { int i_1,i_2,i_3,i_...原创 2019-03-30 17:39:25 · 1543 阅读 · 1 评论 -
简单计算空气质量指数
题目空气质量指数是描述空气质量状况的无量纲指数,根据污染物的浓度换算得出。编程输入浓度C,输出指数I。其中PM2.5的浓度和级别I列表如下:CminCmaxIminImax012.005012.135.45110035.555.410115055.5150.4151200150.5250.4201300250....原创 2019-02-26 16:40:15 · 3685 阅读 · 0 评论 -
读入字符串,根据要求输出0或1
题目从键盘读入一个字符串,若遇到字母,则输出0;若遇到数字则输出1;否则不输出。例如:输入ab2&3@c,输出00110代码#include <stdio.h>#include <string.h>#define max 100int main(){ char a[max]; int i=0; printf("请输入字符串:"); gets(...原创 2019-02-26 16:00:40 · 1223 阅读 · 0 评论