2014.3.12-C语言小测试

测试代码:

 

学号:14020491.请实现一个函数,功能为使用循环输出以下的图案void print_alpha(int n)
{int i, j;for(i=0;i<n;++i){for(j=0;j<=i;++j)printf("%c", 'A'+ j);printf("\n");}
}2.请实现一个函数,功能为删除数组指定位置的元素void delete(int *arr, int index, int len){int i;for(i=index;i<len;++i)arr[i] = arr[i+1];arr[len-1] = 0;--len;
}3.请实现一个函数,功能为使用选择排序对数组进行排序void sortarr(int *arr, int len){int i, j, min, tmp;for(i=0;i<len-1;++i){min = i;for(j=i+1;j<len;++j)if(arr[min] > arr[j]){int tmp;tmp = arr[min];arr[min] = arr[j];arr[j] = tmp;}}
}4.请实现一个函数,功能为将一个数插入到一个有序的数组中void insert(int *arr, int n, int len){int i, key;++len;for(i=0;i<len;++i)if(n > arr[i])continue;else{key = i;break;}for(i=len-1;i>=key;--i)arr[i+1] = arr[i];arr[key] = n;
}5. 请实现一个函数,功能和系统的strcpy函数相似void mystrcpy(char *dst, const char* src){int i;for(i=0;(dst[i] = src[i])!='\0'; ++i);
}6. 请实现一个函数,功能为输入一个字符串,找出其中长度最大的单词。要求从键盘输入一行字符,最后打印出长度最大的字符串
输入:when i was young i'd listen to the radio waiting for my favorite songs
输出:favorite
'
void show_string(char a[]){int i,j;int tmp, max, tmax, mmp;i = j = mmp = tmp = max = tmax = 0;while(a[i]!='\0'){if(isalpha(a[i])){tmp = i;for(;isalpha(a[i]);++i){tmax = i-tmp;if(tmax > max){max = tmax;mmp = tmp;}}}else{tmp = tmax = 0;++i;}}max++;for(i=mmp;max--;++i)printf("%c", a[i]);printf("\n");
}7.请实现一个函数,功能为显示一个整数的二进制void binshow(int num, int len)
{int i = 0;int dd = 0;for (i=len-1; i>=0; --i){dd = num >> i & 1;  printf("%d", dd);}printf("\n");
}8.请实现一个函数,功能为统计字符串中的单词个数int countword(char *str){int i, cnt;i = cnt = 0;while(str[i] != '\0'){if(isalpha(str[i]) && (!isalpha(str[i+1])) )++cnt;++i;}return cnt;
}9.请实现一个函数,功能和系统的strrchr函数相同char *mystrrchr(char *str, int c){char *pre = 0;for(;*str!='\0';str++)if(*str == c) pre = str;return pre;
}10.请实现一个函数:根据用户指定的行数打印出对应行数的杨辉三角void yangHuiSanJiao(int n){int a[100][100];int i, j;a[0][1] = 1;for(i=1;i<=n;++i){for(j=1;j<=i;++j){a[i][j] = a[i-1][j-1] + a[i-1][j];if(j == 1)printf("%d", a[i][j]);else printf(" %d", a[i][j]);}printf("\n");}
}11.请实现一个函数,功能为将一个新节点添加到链表的末尾typedef struct node *link;
typedef struct node{int id;int data;struct node *next;
}Node;void append(struct node *head, int id, int data){link p = head;link y = malloc(sizeof(Node));y->id = id;y->data = data;while(p->next) p = p->next;y->next = p->next;p->next = y;
}12.请实现一个函数,功能为求一个由10个整数组成的数组中的所有递增和递减序列的个数,
并且输出所有的递增和递减序列
例如:   
输入:1 10 8 5 9 3 2 6 7 4   
输出:6   
对应的递增或递减子序列为:   1 10    10 8 5    5 9   9 3 2   2 6 7void xulie(int s[]){int i, j, mark;mark = 0;i = 0;int cnt = 0;int m = 0;int n = 0;for(j=0;s[j]!='\0';++j){while(s[j] > s[j+1]){n = 1;++j;}if(n){cnt++;n = 0;}while(s[j] < s[j+1]){m = 1;++j;}if(m){cnt++;m = 0;}}printf("%d\n", cnt);cnt = 0;while(i<10){while(s[i] < s[i+1] && i<10){mark = 0;printf("%d ", s[i]);++i;}if(i==10) --i;if(mark == 0 ){if(i<10)printf("%d\n", s[i]);else printf("\n");mark = 1;++i;}--i;if(i==10) break;while(s[i] > s[i+1] && i<10){mark = 0;printf("%d ", s[i]);++i;}if(mark == 0){if(i<10)printf("%d\n", s[i]);else printf("\n");mark = 1;++i;}if(i==10) break;--i;}
}二.问答题(2分/题,共10分)
1.请简述你所了解的C语言的特点答:简洁,运行速度快,是用汇编来构造的语言,够稳定,Linux系统内核大多数都是用C语言来构造,内存需要自己回收,可以直接控制内存,因为有指针,可能会导致程序的不安全,毕竟程序员不是神,但是自由,可以随意操控内存变量,虽说没有JAVA安全,但那是对于菜鸟而言,C语言的安全程度是针对程序员的变成能力而言,锻炼我们缜密的思维,C语言是面向过程语言。
2.谈谈你对C语言内存管理的认识答: C语言内存管理分为堆、栈、代码段、扩展段、全局变量区、静态池,堆申请过的内存要及时回收,系统没有自动帮你回收的机制,因为可回收,所以可以大量申请堆内存空间,而栈不会及时回收,所以不会申请很多空间。
3.谈谈你对C语言中数据(各种常量,变量,函数参数,字符串)的存储认识答: 常亮存取在全局变量区,变量存取在栈中,函数参数存取在栈中,用完直接释放不需要手动释放,字符串看如果存取,如果是动态分配就存取在堆中,如果直接声明,就存取在栈中。
4.谈谈你再解决一个编程问题时使用的方法和技巧答:编程的时候,经常遇到一些bug,很难去调试,所以就利用gdb 这个强大的调试工具,去调试我们很难找出bug的C程序,利用好调试软件会让我们更轻松的去编程。
5.列举你学过的编程语言,谈谈你对这些语言的认识答: 
JAVA 虽然足够安全,那是因为指针被封装了,导致内存不会轻易被修改,但是不够自由,不如C灵活,而且代码足够长,不简洁。只是应用层开发语言。
C++  虽然足够强大,面向对象语言,但是由于C++的可操控性太强,不是我们一般程序员能驾驭的。很多bug十分难调,没有几年编程经验,很难灵活的使用C++ 去搞大工程的项目,如果只是会语法,那只是表面,真正的C++强大之处没有几十年的经验,无法深深体会这门语言的精华所在
PYTHON 虽然足够简洁,但是由于是用C来开发的脚本语言,不可改变的速度慢,做大型项目,会受到脚本语言的限制,速度太慢,无法让客户体验其安全性,但是最大的优点是语言简洁,功能强大,开发效率极其高,语法比C简洁,开发和lips速度相提并论,如果在Linux下写一些不要求速度的脚本,那python是不二人选

 

转载于:https://www.cnblogs.com/firstrate/p/3597147.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/376067.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

seqlist插入java_大话数据结构(五)(java程序)——顺序存储结构的插入与删除...

获得元素操作对于线性表的顺序存储结构来说&#xff0c;我们要实现getElement操作&#xff0c;即将线性表的第i个位置元素返回即可插入操作插入算法思路&#xff1a;1、如果插入位置不合理&#xff0c;抛出异常2、如果插入表的长度大于等于数组长度&#xff0c;则抛出异常或动态…

142. Linked List Cycle II

Given a linked list, return the node where the cycle begins. If there is no cycle, return null. Follow up:Can you solve it without using extra space? Craking interview书上原题&#xff0c;快慢指针&#xff0c;话题较简单说明。 /** * Definition for singly-lin…

无法嵌入互操作类型ESRI.ArcGIS.Carto.MapDocumentClass.请改用适用的接口

在对地图文档进行操作时&#xff0c;居然出现如下问题&#xff1a; IMapDocument m_MapDocument new ESRI.ArcGIS.Carto.MapDocumentClass(); 报错: 无法嵌入互操作类型"ESRI.ArcGIS.Carto.MapDocumentClass".请改用适用的接口. 解决方案如下&#xff1a; 解决方案—…

java文件定时读写_java定时任务及日志的使用

需要引入日志的两个架包&#xff1a;log4j.jar和commons-logging.jarpackage com.lzl;import java.util.TimerTask;import org.apache.log4j.Logger;import com.sun.org.apache.commons.logging.Log;import com.sun.org.apache.commons.logging.LogFactory;public class MyTask…

Google Code Jam 2015 Round 1A Haircut 二分

题意&#xff1a;给你每个理发师的理发时间&#xff0c;问你排在队列中的第N个位置&#xff0c;问你应该被哪个理发师剪发。 解题思路&#xff1a;二分时间&#xff0c;看这个时间到第几个人理发了&#xff0c;然后找到临界值&#xff0c;看这个值的时候有那些理发师接待了新旅…

java编写科赫曲线_matlab绘制peano(皮亚诺)曲线和koch(科赫曲线,雪花曲线)分形曲线...

koch曲线matlab plot函数绘制koch曲线程序&#xff0c;程序还是比较简单的&#xff0c;这里只绘制出了雪花的三分之一function koch_curve(number)%number代表koch的阶数&#xff0c;范围为大于等于2figureset(gcf,position,[0,0,1920,1080]);%设置窗口分辨率&#xff0c;[0,0]…

ajax翻页效果模仿yii框架

ajax翻页效果模仿yii框架 ajax翻页效果&#xff0c;模仿yii框架。 复制代码代码如下:<!DOCTYPE html> <html> <head> <title>ajax分页_www.jbxue.com</title> <script src"http://code.jquery.com/jquery-1.11.0.min.js"></s…

JAVA异常处理、常用类、反射、集合

异常 异常&#xff1a;在Java中是指被一个方法抛出的对象。 分类&#xff1a;检查异常、运行时异常、错误 运行时异常&#xff08;uncheckd&#xff09;&#xff1a;RuntimeException和其子类 检查异常&#xff08;checkd/搜检异常&#xff09;&#xff1a;指Exception和其子类…

Base64 百科词条

Base64是一种基于64个可打印字符来表示二进制数据的表示方法。由于2的6次方等于64&#xff0c;所以每6个位元为一个单元&#xff0c;对应某个可打印字符。三个字节有24个位元&#xff0c;对应于4个Base64单元&#xff0c;即3个字节需要用4个可打印字符来表示。它可用来作为电子…

java获取mysql执行计划_好程序员Java学习路线之MySQL的执行计划

好程序员Java学习路线之MySQL的执行计划。什么是执行计划&#xff1f;执行计划通常是开发者优化SQL语句的第一步。MySQL在解析SQL语句时&#xff0c;会生成多套执行方案&#xff0c;然后内部会进行一个成本的计算&#xff0c;然后通过优化器选择一个最优的方案执行&#xff0c;…

Web系统开发构架再思考-前后端的完全分离

前言 前后端完全分离其实一直是Web开发人员的梦想,也一直是我的梦想,遥想当年,无论是直接在代码里面输出HTML,还是在HTML里面嵌入各种代码,都不能让人感到满意.期间的痛苦和纠结,我想所有Web开发人员都深有感触. 由于最近几年一直在MS平台,从Web Form到MVC,MS平台虽然易用好学,…

C++程序设计基础

01 1 预编译常用的有&#xff0c;宏定义和包含库。2 库&#xff1a;是实用工具的集和&#xff0c;由程序员编写&#xff0c;可以完成一些特定的功能。3 <> 系统库 ""用户自定义库。4 宏定义&#xff1a;定义符号常量&#xff0c;符号常量就是给常量取的名字。常…

文科思维Java_开源之Processing:这好玩的编程语言是为文科生艺术家准备的

说起编程语言&#xff0c;我们很多时候第一反应就是很难&#xff0c;都是理工科计算机相关行业的人才学的&#xff0c;都是为理科生掉头发准备的。的确&#xff0c;计算机的严谨&#xff0c;注定要求开发应用的人有缜密的理工科的理性逻辑思维&#xff0c;然而一人客从另一方面…

第一章导言的笔记与思考

Writer&#xff1a;BYSocket&#xff08;泥沙砖瓦浆木匠&#xff09; 微博&#xff1a;BYSocket 豆瓣&#xff1a;BYSocket ~&#xff1a;较重要 ~~&#xff1a;重要 1.1 hello&#xff0c;world ~初学人来说还是一大障碍&#xff0c;手写编写程序文本&#xff0c;然后成功的进…

C 和 Object- C 中得 #ifdef 和#ifndef

很多宏是为了进行条件编译。一般情况下&#xff0c;源程序中所有的行都参加编译。但是有时希望对其中一部分内容只在满足一定条件才进行编译&#xff0c;也就是对一部分内容指定编译的条件&#xff0c;这就是“条件编译”。有时&#xff0c;希望当满足某条件时对一组语句进行编…

C语言基础小斋

一、C语言数据类型 ok&#xff0c;如我们所知&#xff0c;C语言作为大学工科专业的必学课程&#xff0c;其重要性不言而喻&#xff1b;它为我们提供了丰富的数据类型&#xff0c;所以它很适合程序员来编写 数据库 &#xff0c;如DB2、Oracale都是C语言编写的。 那么C语言具体又…

《Cracking the Coding Interview》——第11章:排序和搜索——题目8

2014-03-21 22:23 题目&#xff1a;假设你一开始有一个空数组&#xff0c;你在读入一些整数并将其插入到数组中&#xff0c;保证插入之后数组一直按升序排列。在读入的过程中&#xff0c;你还可以进行一种操作&#xff1a;查询某个值val是否存在于数组中&#xff0c;并给出这个…

gradle打包java项目_gradle打包java项目

转载地址&#xff1a;http://www.gfzj.us/series/gradle/2014/12/12/gradle%E5%B0%8F%E7%B3%BB%E5%88%97(4)--gradle%E6%89%93%E5%8C%85java%E9%A1%B9%E7%9B%AE.html以gradle小系列所举例子为示例&#xff0c;在此处介绍两种gradle发布java项目的方法&#xff1a;fat jar方式该…

堡垒机2.0

一、编辑系统环境变量&#xff0c;让用户登录后自动调用脚本 1 vim /etc/profile 2 python /baolei/ssh_login.py 3 # 判断登录用户是否为 root 用户&#xff0c;root用户退出程序不进行logout操作&#xff0c;否则则logout 4 if [ $? ! 10 ];then 5 echo "Good …

Flex中利用ByteArray与BitmapData互相转换实现图片的二进制保存与复原

Flex中利用ByteArray与BitmapData互相转换实现图片的二进制保存与复原 近 日在项目当中需要将图片保存到共享对象当中&#xff0c;开始用了俩天的时间做了对象的序列化&#xff0c;并以BitmapData的形式进行了图片的序列化保存共享&#xff0c;因为系统 没有提供更好的接口所以…