江苏大学程序填空题

写这些东西把特殊值带入写,这样好容易理解,把思路理顺
注意:1变量有没有定义
2变量的范围从哪里到哪里
3函数调用有没有定义
看题目的提示,一定得注意相互关联的提示
链表挺重要的,得认真复习链表

文章目录

  • 2019
    • 超长整数相加
    • 用链表输入整数
    • 求非负数 略
  • 2018
    • 填错了反思
    • 筛选法
    • 指针传递形参
  • 2017
    • 浮点数排序
    • 逆序输出
    • k!的算法
  • 2016
    • 从小到大排列
    • 2分法
    • 回文数
    • 陀螺数组
  • 2015
    • 泰勒展开 精度是最后的一位的值
    • 从小到大排序
    • 元素移动
  • 2014
    • 调用函数计算
    • 乘积等于和
    • 个数为6且能除以3
    • 逆序输入
    • 幻方
  • 2009 年
    • 完数
    • 检查字符串
  • 2008
    • 迭代法
    • 杨辉三角形
  • 2007年
    • 找相同的元素
    • 辛普生公式
    • 2006
    • 统计字母,空格
    • 求素数
    • 链表
  • 2005
    • 字符串逆序存放

2019

超长整数相加

刚开始输入两个数组(因为是数组特别长所以只能通过数组来输出,正常的类型无法满足)
第14个空就容易填了
下面就是调用函数n1 n2长度,这里我才懂申请的内存可以相等于数组(内存是连续的)result是n+2因为可能有‘\0’和进位所以多申请两个
11个空就是正常把s1输入到result中这里输入就稍微有点复杂了

下面for循环就是把s2和s1也就是result相加

13return result
15看答案只能说申请malloc空间得释放

用链表输入整数

(本质是输入数不是小于0的话就开辟内存将数放入)
首先向系统申请了p的指针,和头指针并且让他们指向NULL(要不然容易变成野指针)
调用函数,如果num<0 return
如果不是, 开辟一个结点,把数据存放,然后调用函数继续进行同样操作

求非负数 略

2018

填错了反思

1感觉 unsigned 和cost应该都有对
 我没有注意到是j还是j-1考试的时候得仔细注意一下

数组N最后一个是结束符
这题是i和j-1交换
肯定i<=j-1

筛选法

筛选法又称筛法,具体做法是:先把N个自然数按次序排列起来。1不是质数,也不是合数,要划去。第二个数2是质数留下来,而把2后面所有能被2整除的数都划去。2后面第一个没划去的数是3,把3留下,再把3后面所有能被3整除的数都划去。3后面第一个没划去的数是5,把5留下,再把5后面所有能被5整除的数都划去。这样一直做下去,就会把不超过N的全部合数都筛掉,留下的就是不超过N的全部质数
6初始化好写
//下面注释为i为1表示在筛子里面,-1则表示不在筛子里面
而且题目说从2开始,然后依次所以如果siver[factor]>0表示他在筛子里面即是素数
//筛子个数减一表示siver[k]=-1表示筛子被拿走然后递增拿走它的倍数

指针传递形参

功能 从大到小排列
本质是通过循环找到最大放在开头,然后把数组加一,在进行循环找到最大,放在开头(数组已经变了,相当于原始数组的第二位)依次循环就排好了

12个空好理解是max等于p s=p+1就是后一个比前一个大 最大值就是为后面那个max=s;他这个一直循环找到最大的那个然后最大值和p交换把最大值放在前面
s=p+1;s<=q 所以q就是数组最后的地址 s一直加然后判断
11就是循环一直进行到最后就返回了

2017

浮点数排序

2空 i=1所以i j=0;j 其他略

逆序输出

本质(不断循环,函数里面套函数)

k!的算法

有点难度

2016

从小到大排列

通过下面i>=0心里应该有数是递减的
然后下面a+i和a+i-1说明是递减
3就是i–,1就是i=9;
空格2就是如果数字相同把a+i后面的数给a+j-1这样相当于每个数组元素向前移动一个内存

2分法

注意两个else if的提示
4进度不符合 取中间点
7空X的值必须通过调用函数来获得

回文数

8定义函数
while()循环本质就是逆序输入m
如果m等于i返回1否则0(三目运算符)

陀螺数组

把n等于4带入慢慢想就应该差不多出来了没啥难度

2015

泰勒展开 精度是最后的一位的值

1就是n没有定义
通过t变化来递加
sinx等于t+sinx相当于递增
t是最后一项展开式所以fabs(t)判断

从小到大排序

本质前一项比后一项

元素移动

2014

调用函数计算

送分题别出错

乘积等于和

他上面数是n下面是m所以肯定是吧n赋值给m

个数为6且能除以3

100以内下面j是i*10所以i只能0-10

逆序输入

幻方

略 考场只能自己发挥根据题目条件一个一个来推

2009 年

完数

错误没有看到==应该999
sum包括1在内没有认真思考这句话所有一个Int sum=1;

检查字符串

略 前面有

2008

迭代法

送分的

杨辉三角形

思路不太会就是看了答案会做起来还是不会

2007年

找相同的元素

先输入
然后通过循环来找有没有符合的

辛普生公式

江大这题很够就是函数传一个值,没有传值而是传地址,接着对他的地址解应用相当于传值

2006

统计字母,空格

求素数

链表

12把头指针指向p1;
相当于链表有了头 所以返回的时候返回最开始的头,其他的依次就能返回
开辟新的结点的一般方法

2005

字符串逆序存放

这里得注意那个j肯定是最大的即strlen的长度
所以第9个空只能是i 下面的交换记得是j–;
这里很重要

你可能感兴趣的:(笔记,c语言,c语言)