C语言入门基础
针对面向过程编程新手开设,以习题为切入点并辅之以解析,帮助大家快速理解C语言编程要点。
Caleb_Sung
90后辣鸡coder一枚
展开
-
C语言:从文件读入一个3*3数组,并计算每行的平均值
题目来源:大工慕课 链接 作者:Caleb Sung题目要求从文件读入一个3*3数组,并计算每行的平均值。参考解答1. 数据文件:array.dat创建一个.dat文件用于存放数组文件:1 3 62 9 73 6 4文件名随意啦。2. 代码如果需要计算行平均值的话改一下av...原创 2018-05-30 11:34:37 · 5529 阅读 · 0 评论 -
C语言:小工程:统计一篇文档中有多少单词
题目来源:大工慕课 链接 作者:Caleb Sung工程要求使用C语言实现统计一篇文档中有多少单词。函数介绍1. fseek()int fseek(FILE*stream, long offset, int fromwhere); 参数: stream:FILE类型指针;offset 整数类型参数; fromwhere:文件头0(SEEK_SET),当前位置...原创 2018-05-30 12:02:57 · 1735 阅读 · 1 评论 -
C语言:利用指针编写程序,用梯形法计算给定的定积分
题目来源:大工慕课 链接 作者:Caleb Sung题目要求利用指针编写程序,用梯形法计算下列公式中的定积分:∫100(x3+12x+1)dx∫010(x3+12x+1)dx\int_0^{10} {\left( {{x^3} + \frac{1}{2}x + 1} \right)} dx参考代码首先说明一下指针的用处:因为所传递的参数均为数字,并不需要使用指针提高效率,...原创 2018-05-09 17:14:05 · 8509 阅读 · 2 评论 -
C语言:利用指针编写程序,统计输入的字符串中大写字母、小写字母和数字字符的数量
题目来源:大工慕课 链接 作者:Caleb Sung题目要求利用指针编写程序,统计输入的字符串中大写字母、小写字母和数字字符的数量。参考代码#include <stdio.h>void main (){ char a[100]; int sum0=0, suma=0, sumA=0; gets(a); char *p; ...原创 2018-05-09 17:49:57 · 36440 阅读 · 11 评论 -
C语言:利用指针编写程序,将一个一维数组a[10]中的最大元素与第一个元素互换、将最小元素与最后一个元素互换
题目来源:大工慕课 链接 作者:Caleb Sung题目要求利用指针编写程序,将一个一维数组a[10]中的最大元素与第一个元素互换、将最小元素与最后一个元素互换。参考代码#include <stdio.h>void swap (int *a , int *b){ int temp = *a; *a = *b; *b = temp;...原创 2018-05-09 17:58:54 · 16135 阅读 · 3 评论 -
C语言:程序填空:输入一个字符,从字符串里找到第一个该字符的位置,将其以后的字符输出,之后将字串中的该字符都删除
题目来源:大工慕课 链接 作者:Caleb Sung题目要求要求:输入一个字符,从字符串里找到第一个该字符的位置,将其以后的字符输出,之后将字串中的该字符都删除,将删除后的字符串输出,同一字母的大、小写按不同字符处理。find函数的返回值是字串中该字符第一次出现的位置,如果没有该字符,返回空指针,del函数的返回值是字串首地址。例如:若程序执行时初始字符串为:C and c+...原创 2018-05-14 21:05:11 · 13945 阅读 · 0 评论 -
C语言:程序填空:编写积分函数求任意函数的积分,并用写好的函数,求三角函数与幂指数的定积分
题目来源:大工慕课 链接 作者:Caleb Sung题目要求(27)编写积分函数求任意函数的积分,并用写好的函数,求三角函数与幂指数的定积分。可参看上机指导书P135 E7.2 书上使用的是矩形积分,可以尝试用梯形积分。同时改变n的取值看对积分函数值的影响,体会高数中积分的定义。如果参考上机指导书,书上函数中for(i=0;i<=n;i++),这一行写错了,大家可以作为一个改错...原创 2018-05-14 21:48:36 · 3503 阅读 · 0 评论 -
C语言:程序填空:有如下指针数组char *p[6],使其元素依次指向如下字符串"_c","Language","abcde","fghij","klmno","VC++"……
题目来源:大工慕课 链接 作者:Caleb Sung题目要求按照提示补全程序,实现如下内容: 有如下指针数组char *p[6]。使其元素依次指向如下字符串”_c”,”Language”,”abcde”,”fghij”,”klmno”,”VC++”。将数组p中的指针元素的指向重新排序,规则是:先按字符串长度由小到大排序,如果长度相等则按字符串的大小从大到小排序,即数组的第一个元素指...原创 2018-05-14 22:59:45 · 2363 阅读 · 0 评论 -
C语言:程序填空:编写函数,打印出n行如下图形,n从键盘读入
题目来源:大工慕课 链接 作者:Caleb Sung题目要求29)编写函数,打印出n(1<=n<=9)行如下图形,n从键盘读入。 1 1 2 1 1 2 3 2 11 2 3 4 3 2 1……题目代码#include<stdio.h>int main(){ int n; void prntri...原创 2018-05-14 23:20:16 · 20186 阅读 · 0 评论 -
C语言:编写程序,使用命令行操作程序计算两个两位数的乘法运算
题目来源:大工慕课 链接 作者:Caleb Sung题目要求编写程序,使用命令行操作程序计算两个两位数的乘法运算。如:cal 15*15用于计算15×15。参考解答收集字符串时记得一定要使用gets()而不是scanf(),因为后者无法收集命令行中的空格。 在处理将内容为数字的文字字符转换为数字类型的变量可以使用形如(int)(ch-'0')的方法加以处理。注:...原创 2018-05-15 23:48:26 · 4664 阅读 · 0 评论 -
C语言:编写从整型数组中查找给定数值的函数,输出该数值在数组中的下标
题目来源:大工慕课 链接 作者:Caleb Sung题目要求编写从整型数组中查找给定数值的函数,若找到则输出该数值在数组中的下标,若找不到则输出-1主函数中定义一个包含5个整型元素的一维数组,该数组的元素从键盘输入;需要查找的数值也从键盘输入子函数有三个参数:第一个参数是一维形参数组(不指定数组长度),第二个参数是数组的长度,第三个参数是要查找的数值;该函数的返回值为整型,即...原创 2018-05-16 12:08:51 · 10572 阅读 · 0 评论 -
C语言:编写函数,计算二维数组中正数的平均值和负数的个数,通过两个全局变量返回
题目来源:大工慕课 链接 作者:Caleb Sung题目要求编写函数,计算二维数组中正数的平均值和负数的个数,通过两个全局变量返回 a.主函数中定义一个3行4列的二维数组,数组元素类型不限,在程序中对数组元素进行赋值 b.主函数中输出该二维数组(显示为3行4列)、正数的平均值以及负数的个数提示根据题意我们要随机生成12个数字赋值给a[3][4], 不过采用srand(...原创 2018-05-16 12:31:36 · 5847 阅读 · 2 评论 -
C语言:用循环法和递归法分别编写函数,实现任意十进制正整数向八进制数的转换
题目来源:大工慕课 链接 作者:Caleb Sung题目要求用循环法和递归法分别编写函数,实现任意十进制正整数向八进制数的转换 a.主函数中分别调用这两个进制转换函数参考代码注意loop()函数最后需要将全局数组变量a[100]倒置再输出,因为这个函数模拟的是短除法过程,我们在手算过程中需要把所有余数(包括最后一项小于8的数)从下往上抄写一遍得到答案。 同时,也因为这...原创 2018-05-16 16:40:12 · 11981 阅读 · 2 评论 -
C语言:假设有四名学生,每名学生有三门科目的成绩。从键盘读入数据,计算出平均成绩,并将原有数据和计算出的平均成绩存放在磁盘文件中
题目来源:大工慕课 链接 作者:Caleb Sung题目要求假设有四名学生,每名学生有三门科目的成绩。从键盘读入数据(包括学号、姓名和三门考试成绩),计算出平均成绩,将原有数据和计算出的平均成绩存放在磁盘文件stu.dat中。Tips代码中fp = fopen("stu.dat", "w");这行代码值打开打开stu.dat文件并挂载为写入,这个文件不必自行单独创建,编...原创 2018-05-26 10:19:18 · 7512 阅读 · 0 评论 -
C语言:将职工的职工姓名、职工号、性别、年龄和工资数据存放到文件eml.dat中并抽出职工姓名和工资的信息创建一个职工工资文件zggz.dat
题目来源:大工慕课 链接 作者:Caleb Sung题目要求将职工的数据存放到文件eml.dat中,职工信息包括职工姓名、职工号、性别、年龄和工资。要求在文件eml.dat中,抽出职工姓名和工资的信息创建一个职工工资文件zggz.dat。创建eml.dat新建一个空白记事本文件,打开后写入:Tom 001 M 20 6000 Bob 002 M 30 8000 Amy...原创 2018-05-26 11:12:10 · 7604 阅读 · 0 评论 -
C语言:已知任意3×3矩阵a、b存放在数据文件source.dat中,编写程序求矩阵c=a-b矩阵,并将结果存放在jg.dat文件中。
题目来源:大工慕课 链接 作者:Caleb Sung题目要求已知任意3×3矩阵a、b存放在数据文件source.dat中。编写程序,求矩阵c=a-b矩阵,并将结果存放在jg.dat文件中。source.dat内容不会新建dat文件的同志请参考我的这篇文章里的内容:https://blog.youkuaiyun.com/qq_41933331/article/details/8046012...原创 2018-05-26 11:39:27 · 2403 阅读 · 0 评论 -
C语言:使用结构体计算三名学生每名学生的三科成绩的总成绩、平均成绩及名次
题目来源:大工慕课 链接 作者:Caleb Sung题目要求假设有3名学生,每名学生的数据包括学号、姓名、3门课程的成绩。编写程序,计算每名学生的总成绩、平均成绩及名次。 要求使用结构体,结构体类型变量的初值在程序中给定(方便调试);采用p->成员名形式,按照原始输入顺序输出原始学生信息表(学号、姓名、3门成绩、总成绩、平均成绩及按总成绩排名次);经过计算总成绩、平均成绩和排...原创 2018-05-26 13:07:53 · 26335 阅读 · 1 评论 -
C语言:程序填空:补全函数,将“文件2”中的内容复制到“文件1”的末尾
题目来源:大工慕课 链接 作者:Caleb Sung题目要求一个函数,将“文件2”中的内容复制到“文件1”的末尾。 比如:“文件2”中的内容为“C language is useful.” 文件1是空文件,连续调用两次函数之后,“文件1”中的内容为“C language is useful.C language is useful.”可参考教材书上例11-1和例11-2。本题要将“...原创 2018-05-26 14:38:01 · 2474 阅读 · 0 评论 -
C语言:程序填空:填写两个函数,使代码连接structure.h和CreateStruct.c后利用结构体计算每个学生的平均分并输出分数与其对应学生姓名
题目来源:大工慕课 链接 作者:Caleb Sung题目要求本题中要用到的结构体类型的定义放在31.structure.h文件中,31.CreateStruct.c文件里放的是函数crtstruct的定义,这个函数用来为结构体数组赋值,每个学生的8门成绩通过随机数得到并放在结构体的score成员数组里。本题需要完成如下任务: (1)写一个函数ave()来求每个学生的平均分,并把...原创 2018-05-26 15:07:14 · 1707 阅读 · 0 评论 -
C语言:程序填空:填写函数,找出一个大于给定整数且紧随这个整数的素数,并作为函数值返回
题目来源:大工慕课 链接 作者:Caleb Sung题目要求填写函数,找出一个大于给定整数且紧随这个整数的素数,并作为函数值返回。题目代码#include "stdio.h"int fun(int n){ /********** Begin **********/ /********** End **********/} int...原创 2018-05-26 15:25:42 · 23871 阅读 · 2 评论 -
C语言:程序填空:补全函数,删去一维数组中所有重复的数,只保留不同的数
题目来源:大工慕课 链接 作者:Caleb Sung题目要求功能:删去一维数组中所有重复的数,只保留不同的数。 数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。 例如:一维数组中的数据是: 2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10。 删除后,数组中的内容应该是: 2 3 4 5 6 7 8 9 10。 注意:请勿改动主...原创 2018-05-26 15:33:03 · 9340 阅读 · 0 评论 -
C语言:用结构体类型建立一个学生的简单信息表,再定义一个结构体变量并赋值,输出学号、姓名及一门课程的成绩
题目来源:大工慕课 链接 作者:Caleb Sung题目要求建立一个学生的简单信息表,包括学号、姓名及一门课程的成绩。(注:定义一个结构体类型,再定义一个结构体变量并赋值,输出结构体变量各成员。)参考代码#include "stdio.h"void main(){ struct Student{ char id[10]; char...原创 2018-05-26 17:10:43 · 26600 阅读 · 2 评论 -
C语言:利用指向结构体的指针变量处理5名学生的信息,并分别使用三种方式输出
题目来源:大工慕课 链接 作者:Caleb Sung题目要求利用指向结构体的指针变量处理5名学生的信息。(提示:定义一个学生信息的结构体,包括学号、姓名、一门课程的成绩;定义一个结构体数组并赋初值) 要求分别使用三种方式输出5名学生的信息,即每名学生的信息都输出3次,输出方式分别为: a. 结构体变量.成员变量 b. (*结构体指针变量).成员变量 c. 结构体指针变量 -&...原创 2018-05-26 17:53:12 · 7006 阅读 · 0 评论 -
C语言:高难度程序填空改错:从键盘上读入5个乱序的整数,将5个数从小到大排序,然后再从键盘读入一个数字并将它插入到排好序的数列中
题目来源:大工慕课 链接 作者:Caleb Sung题目要求(24)将一个数插入到已经排好序的数组中,本题要用到 24.sort.c 文件。(可参考上机指导书p131E6.4,当然这道题目指导书上的写法也不是很简洁,大家也可以不用按照指导书的思路,按照自己的思路用下标或指针实现题干中的要求)要求:先从键盘上读入5个乱序的整数,将5个数从小到大排序(冒泡和选择法,哪个你掌握的不好就...原创 2018-05-07 22:36:03 · 6281 阅读 · 0 评论 -
C语言:汉诺塔问题
题目来源:大工慕课 链接 作者:Caleb Sung题目要求汉诺塔问题(上机指导书P130 E6.3),这是经典的递归调用问题。输入的时候不要输入64,输入小一点的数,比如:3、4、5,体会下递归调用。参考代码#include<stdio.h>void hanoi(int n, char x, char y, char z){ if(n==1) ...原创 2018-05-07 23:20:56 · 1031 阅读 · 0 评论 -
C语言:利用指针编写程序,从键盘输入一个字符串,删除该字符串的所有首部和尾部数字字符,输出修改后的字符串以及该字符串的长度
题目来源:大工慕课 链接 作者:Caleb Sung题目要求利用指针编写程序,从键盘输入一个字符串,删除该字符串的所有首部和尾部数字字符,输出修改后的字符串以及该字符串的长度。 举例:输入的字符串为12abcd34,删除首部和尾部数字字符后字符串变成abcd,长度为4分析与参考解答删除该字符串的所有首部和尾部数字字符这一步操作我分为了两个函数,因为删除首部和尾部的数字字...原创 2018-05-08 00:28:01 · 30772 阅读 · 2 评论 -
C语言:利用指针编写程序,定义一个3行3列的二维数组,并在程序中对其进行赋值,数组元素的类型不限,输出该二维数组以及各行的均值
题目来源:大工慕课 链接 作者:Caleb Sung题目要求利用指针编写程序,定义一个3行3列的二维数组,并在程序中对其进行赋值,数组元素的类型不限,输出该二维数组以及各行的均值,各行的均值可直接输出,也可存储于维数组中再输出 a.输出二维数组时要求使用指向数组的指针变量 b.计算各行的均值时要求使用指针数组注意: 数组指针和指针数组的区别这部分请参考我的文章《C...原创 2018-05-08 01:09:49 · 33345 阅读 · 2 评论 -
C语言:数组指针和指针数组的区别
1. 数组指针(也称行指针)定义 int (*p)[n]; ()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。 如要将二维数组赋给一指针,应这样赋值:int a[3][4];int (*p)[4]; //该语句是定义一个数组指针,指向含4个元素的一维数组。 p=a; ...原创 2018-05-08 01:10:22 · 1445 阅读 · 1 评论 -
C语言:程序填空:编写函数,删除字符串的所有尾部空格
题目来源:大工慕课 链接 作者:Caleb Sung题目要求(20)编写函数,删除字符串的所有尾部空格。 要求:在begin 和 end 之间填写函数,其他不得改动。 如:输入 c language <回车> 输出the length of input string is 14 c languagethe length of output st...原创 2018-05-05 11:32:08 · 8211 阅读 · 0 评论 -
C语言:程序填空:写一个函数,实现三个数从小到大排序
题目来源:大工慕课 链接 作者:Caleb Sung题目要求(18)写一个函数,实现三个数从小到大排序。题目代码#include<stdio.h>/*****FILL**********/void sort(__________) //根据函数的调用情况,将函数的形参列表补充完整{ // 在begin和end之间补完函数,实现三个数排序...原创 2018-05-05 11:46:08 · 15092 阅读 · 0 评论 -
C语言:程序填空:编写函数计算出小于一个数n的所有完全数
题目来源:大工慕课 链接 作者:Caleb Sung题目要求(19)(书P81 五、2) 如果一个正整数所有因子(含1但不含正整数本身)之和等于该正整数,则称这个正整数为完全数(如6位完全数,6=1+2+3),编写函数prtWQS,输出不超过n的全部完全数,并完成程序填空和程序改错。题目代码#include <stdio.h>//*****FILL*****...原创 2018-05-05 23:57:23 · 4185 阅读 · 0 评论 -
C语言:程序填空:补全函数,实现返回找到4x4数组最大元素所在的行和列以及副对角元的积
题目来源:大工慕课 链接 作者:Caleb Sung题目要求(22)下载资料中的“22.矩阵最值1.c”程序,编写函数,给定一个4x4数组,求副对角元的积,以及最大元素所在的行和列。比如 a[4][4]={11,12,13,14,21,22,23,24,31,32,33,34,41,42,43,44},副对角元为 14,23,32,41。(本题的4x4数组,使用随机数生成数组元素,随...原创 2018-05-07 21:14:30 · 901 阅读 · 0 评论 -
C语言:程序填空:补全函数,求4x4数组上半三角元素并返回最小元素所在位置
题目来源:大工慕课 链接 作者:Caleb Sung题目要求(23)下载资料中的“23.矩阵最值2.c”程序,编写函数,给定一个4x4数组,求上半三角元素(包括主对角元)之和,以及最小元素所在的行和列。比如 a[4][4]={11,12,13,14,21,22,23,24,31,32,33,34,41,42,43,44},上半三角元素位11,12,13,14,22,23,24,33,...原创 2018-05-07 21:24:17 · 1841 阅读 · 0 评论 -
C语言:求m*n数组外围元素之和
题目来源:大工慕课 链接 作者:Caleb Sung题目要求求m*n数组外围元素之和参考代码#include<stdio.h>#include<stdlib.h>#include<time.h>void main(){ int m, n, a[100][100],i,j,s2=0,sum=0; printf(...原创 2018-04-18 22:23:29 · 3921 阅读 · 0 评论 -
C语言:利用函数法进行冒泡法排序
题目来源:大工慕课 链接 作者:Caleb Sung参考代码#include<stdio.h>#include<stdlib.h>#include<time.h>void main(){ int a[10],i,j,t; srand(time(NULL)); for(i=0;i<10;i++) ...原创 2018-04-18 22:42:24 · 6709 阅读 · 1 评论 -
C语言:使用函数求5*5数组的副对角元中最大元素的值
题目来源:大工慕课 链接 作者:Caleb Sung注意事项定义计算最大值的函数时,要注意形参指定类型时使用a[][]定义是非法的,报错如下:array type has incomplete element type直接翻译过来就是说数组类型具有不完全元素类型,详细原因参见C语言二维数组的基础概念。 因而必须像这样定义:int calc(int a[5][5]...原创 2018-04-25 23:34:30 · 1940 阅读 · 0 评论 -
C语言:使用函数计算一个数的阶乘
题目来源:大工慕课 链接 作者:Caleb Sung参考代码这道题是非常之简单了#include<stdio.h>void main(){ int n, result; printf("请输入一个数字,求它的阶乘: "); scanf("%d", &n); result = calc(n); printf("结...原创 2018-04-25 23:43:20 · 42260 阅读 · 4 评论 -
C语言:使用函数输出一个数字构成的塔
题目来源:大工慕课 链接 作者:Caleb Sung题目要求使用函数,要求输出一个如下的塔: 1 222 33333 4444444555555555参考解答由于使用了函数来输出,因此主函数可以只有一句话:draw() 函数部分就是小循环嵌套,逻辑很简单,这里不再赘述:#include<stdio.h>void main(){...原创 2018-04-26 00:00:39 · 3533 阅读 · 0 评论 -
C语言:编写函数,使输入的字符串反序存放,在主函数中输入输出字符串
题目来源:大工慕课 链接 作者:Caleb Sung参考代码#include<stdio.h>#include<string.h>char *rev(char *x){ int len=strlen(x); int i, n=len/2; char tem; for (i=0;i<=n;i++) { ...原创 2018-04-26 00:46:54 · 8268 阅读 · 0 评论 -
支持Win10:科学安装Visual C++ 6.0教程
Visual C++ 6.0(32/64位)下载地址:链接:http://pan.baidu.com/s/1hsqqdDy 密码:8321win10用户解决方法:等VC6.0安装完成后,将安装包自带的MSDEV.EXE文件替换安装目录下的该文件(安装目录查找方法:可以在电脑桌面上找到VC6.0软件,然后鼠标右击选择打开文件位置)。安装步骤:1.右击软件压缩包,选择解压到“VC6.0(32&...原创 2018-04-26 20:33:13 · 35271 阅读 · 15 评论