当前位置:文档之家› 北方民族大学c语言实验习题

北方民族大学c语言实验习题


6. 二维数组 a. 建立一个 5 行 5 列的二维数组,提示用户输入数组的值,分别按 照先行后列和先列后行的顺序输入相同值; 将数组显示到屏幕上, 按矩阵显示;观察两种读入顺序的不同; b. 求出二维数组的主对角线之和、副对角线之和; c. 求出数组的上三角的平均值和下三角的平均值; d. 求出矩阵的周边元素之和; e. 判断矩阵是不是上三角矩阵;判断矩阵是不是下三角矩阵; f. 将矩阵转置,输出转置后的矩阵; g. 建立一个二维数组,将九九乘法表保存到数组中并且输出出来; h. 建立一个二维数组,数组的第一行保存 26 个小写字母,第二行保 存 26 个大写字母; i. 建立二维数组 a[4][3],并为数组输入值,求出数组每行的最大值保 存到数组 b[4]中,求出数组每列的最大值,并保存到数组 c[3]中;
p. 在屏幕上输出以下图形,要求使用循环嵌套实现 1. * * * * * * * * * * * * * * * * * * * * * * * * * 4. 2. * * * * * * * * * * * * * * * 3. 5. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 6. * * * * * * * * * * * * * * * * * * * * * * * * * * * *
所指串中的某个字符相同; 若存在相同,什么也不做,若不同, 则将其插在串的最后。 l. 编 写 函 数 int func(int n) , 函 数 返 回 值 为
sum=1+1+2+1+2+3+1+2+3+4+...+1+2+3+4+...+n m. 编写函数 int func(int a[],int n,int b),将 b 插入到一个已按 降序排好的数组 a 中,a 中现在有 n 个元素,要求插入后的数组 仍然是降序的; n. 请编写函数 void fun(char *str),对字符串,按降序排列。例 如:原来的字符串为 CEAedcab,排序后输出为 edcbaECA。 o. 请编写函数 void fun(char *s,char *t) ,将 s 所指字符串的 正序和反序进行连接,形成一个新串放在 t 所指的数组中。例如: 当 s 串为"ABCD"时,则 t 串的内容应为"ABCDDCBA"。 p.
7. 字符串 a. 输入一个字符串,以回车作为结束标志,并将字符串输出出来; b. 输入一个字符串,再输入一个字符,统计该字符在字符串中出现 的次数; c. 输入一个字符串,统计字符串中字母、数字、空格出现的字数; ; d. 输入一个字符串,再输入一个字符,然后将该字符在字符串出现 的第一个删除掉,输出删除后的字符串; e. 输入一个字符串,再提示用户输入两个整型值 n、m,要求将字符 串第 n 个字符开始,删除 m 个字符,输出删除后的字符串; f. 输入一个字符串,再提示用户输入一个字符 x,和一个整型值 n, 要求 n 小于字符串的长度,将 x 插入到下标为 n 的位置,输出插 入后的字符串; g. 提示用户输入两个字符串保存到字符数组 str1 和 str2 中,再输入 一个整型值 n,将 str2 代表的字符串插入到 str1 中下标为 n 的位 置,输出插入后的字符串; h. 输入一个字符串,将字符串逆序,输出逆序后的字符串; i. 已有两个字符串,分别保存在字符数组 str1[80]和 str2[3]中,统计 在 str1 保存的字符串中 str2 保存的字符串出现了多少次; (str2 中 的字符串长度为 2) j. 输入一个字符串,以回车作为结束标志,然后将字符串中的字符 排序 (依照 ASCII 码的大小由低到高) , 并将排序后的字符串输出
出来;
8. 指针和函数 a. 编 写 函 数 实 现 void func(int a,int b,int c,int *pmax,int *pmin,float *pavg) ,求出 a,b,c 的最大值和最小值、平均值通过指针返回; b. 编写函数 void swap(int *x , int *y) 交换想 x 和 y 指向变量的值; c. 编写函数 int aSum(int *a ,int n) 求出 a 所指向数组的前 n 项的和; d. 编写函数 void cpyStr(char *stra,char *strb) ,将字符串 strb 复制给 stra 所指向的空间; e. 编写函数 void catStr(char *stra,char *strb), 将字符串 strb 连接到 stra 所指向的字符串的后面; f. 编写函数 int cmpStr(char *stra,char *strb),将字符串 strb 和 stra 进 行比较; g. 编写函数 void insert(char *stra,char ch,int n),将将字符 ch 插入到 字符串 stra 中第 n 个位置; h. 编写函数 int lenStr(char s[]),求字符串的长度; i. 编写函数 int findCh(char *str , char ch),找出字符 ch 在字符串 str 中出现的第一个位置;编写函数 void func(char *str),将 str 所指向字符串中的所有大写字母全变成小写字母; j. 编写函数 int func(char *str),将字符串中所有的数字字符删除掉, 并将新生成的字符串的长度作为返回值;比如 “abc123xyz” 过 滤后 “abcxyz”返回值为 6 k. 编写函数 void findCh(char *str , char ch),判断字符 ch 是否与 str
***** ******* ***** *** *
5. 一维数组 a. 建立一个整型数组,在定义数组的时候为数组初始化任意 10 数 字,体会初始化的用法; a) 建立一个长度为 10 的一维整型数组,提示用户为数组输入数 据; b) 求出数组的最大值、平均值; b. 将数组分别使用选择排序法和冒泡排序法排序,并输出排序后的 数组; c. 建立一个字符数组, 将 26 个小写字母保存到数组中, 并逆序输出; d. 用数组保存 fibonacci 数列的前 20 项;
bu 会
பைடு நூலகம்bu 会
g 使用条件运算符实现让 c 等于 a、b 中较大的,d 等于 a、b 中较小 的,e 等于 a 的绝对值。 h 读入一元二次方程的三个系数,a,b,c,求出各种情况下方程的根, 无解或输入数据不正确输出提示信息
不会
3. 循环结构 a. 编写程序实现 1+2+3+4+......+n,n 由用户输入; b. 修改程序 1,实现 1+3+5+7+9+......2*n-1; c. 修改程序 1,实现 2+4+6+8+10+......2*n; d. 修改程序 2,实现 1+1/3+1/5+1/7+......1/(2*n-1); e. 修改程序 4,实现 1-1/3+1/5-1/7+......1/(2*n-1); f. 编程实现 1*2*3*4*5*.....n; g. 编程实现 输入 n,判断 n 是不是质数; h. 求 sum=d+dd+ddd+ …… +dd...d(n 个 d) ,其中 d 为 1-9 的数字, d 和 n 输入。 i. 用一元五角钱兑换人民币 5 分、2 分和 1 分的硬币(要求每种至 少有一个)共 100 枚,请输出每种具体的兑换方案以及共有多少 种方案。 j. 编程输出下三角式的九九乘法表. k. 输出斐波那契数列的前 20 项,该数列的前两项都是 1,以后各项 是前两项之和。 l. 实现 1!+2!+3!.....+n!,n 由用户输入; m. 实现 1+(1+2)+(1+2+3)+(1+2+3+4)+.....+(1+2+3+4...+n) , n 由用户输入; n. 求 1 到 100 之间的偶数之积; o. 输入 n 和 m,求出他们的最大公约数和最小公倍数;
2. 分支结构 a. 输入三角形得三个边的边长,以此判断能否组成三角形,是什么 形状的三角形; (等边三角形、等腰三角形、直角三角形、等腰直 角三角形、一般三角形) b. 输入一个年份值,判断是否为闰年; c. 输入 a、b、c 三个整型变量,分别使用 if 语句和条件运算符求出 三个数的最大值和最小值; d. 输入任意实数,求出其所对应的函数值(调用数学函数库) 。 z=e 的 x 次幂(x>10) z=log(x+3) (x>-3) z=sin(x)/((cos(x)+4) e. 输入一个成绩,输出此成绩对应的级别; (优、良、中、及格、不 及格) ,要求分别使用 if 语句和 switch 语句; f.判断一个字符是否为字母或者数字;
4. 函数调用 a. 编写一个函数,返回一个整数的绝对值.; b. 编写一个函数,判断一个整数是否为素数,如果是则返回 1,否 则返回 0.; c. 编写一个函数,找出一个大于给定整数且紧随这个整数的素数。 d. 通过调用素数函数,实现求出 1000 以内所有素数的和; e. 通过调用素数函数,验证哥德巴赫猜想在 10000 以内有效; f. 编写一个函数,求一个整型数的各位数字的立方和; g. 编写函数 fun 计算并返回分段函数的值: x^2+x+6 x<0 且 x≠-3 0≤x<10 且 x≠2 及 x≠3
9. 算法补充 a. 有 n 个人围成一圈,顺序排号。从第一个人开始报数(从 1 到 4 报数) ,凡报到 4 的人退出圈子,问最后留下的是原来第几号的那 位。 (建议用链表实现) b. 读入一个英文文本行,将其中每个单词的第一个字母改成大写, 然后输出此文本行 (这里的“单词”是指由空格隔开的字符串) 。 例如:若输入:“i am a student to take the examination.”, 则应输出:“I Am A Student To Take The Examination.”。 c. 有 n 个整数,使其前面各数顺序向后移 m 个位置,最后 m 个数变 成最前面的 m 个数。 d. 给定 n 个实数,输出平均值,并统计在平均值以下(含平均值) 的实数个数。 e. 将一个正整数分解质因数。例如:输入 90,打印出 90=2*3*3*5 f. 打印出杨辉三角形(要求打印出 10 行) g. 求广义菲玻那契级数的第 n 项。 广义菲玻那契级数的前 n 项为:1, 1,1,3,5,9,17,31,…… h. 例如:若 n = 15,则应输出:The value is: 2209。 i. 在字符串 str 中找出 ASCii 码值最大的字符,将其放在第一个位 置上,并将该字符的原字符向后顺序移动。例如:调用 fun 函数 之前给字 符串输入:ABCDeFGH,调用后 字符串中的内容 为: eABCDFGH。
相关主题