
C语言编程实例
文章平均质量分 64
xtx1990
新一代年轻人
展开
-
C语言笔试题-6
第一题、int (* (*f)(int, int))(int)这里的f是什么? 答案:f是指针,指向一个参数为(int,int),返回值为一个指针的函数 这个返回的指针指向一个参数为(int),返回值为int的函数 第二题、#include typedef struct{ char data[10];}T1; typede原创 2012-11-12 13:37:52 · 430 阅读 · 0 评论 -
C语言不同数据混合运算时类型转换
有两个通用的指导原则:1.为了防止数据精度损失,如果有必要的话,类型总是被提升为较宽的类型2.所有含有小于整数类型的算术表达式在计算之前其类型被提升为整形数据类型原创 2012-11-12 13:38:41 · 1277 阅读 · 0 评论 -
使用GDB分析核心文件
首先需要对环境进行配置,即配置core文件的输出:运行命令:ulimit -c unlimited 该命令用于设置core文件大小不限制修改/etc/sysctl.conf文件,在文件末尾添加下面一行kernel.core_pattern=/tmp/core-%e并修改kernel.core_uses_pid = 1 为kernel.core_uses_pid = 0 这样core文件的格式就是原创 2012-11-12 13:39:38 · 746 阅读 · 0 评论 -
实例二、从字符串中取出所有整数
功能介绍:当输入一个字符串时,内有数字字符和非数字字符,如:a123x567 17960? 302tab5876 将其中连续的数字作为一个整数依次存放到整数数组a中,例如,123放在a[0], 456放在a[1]中,等等,统计所有整数的个数,并输出这些, 实现代码如下:#include int main(){ char str[60], *p = str; int sum =原创 2012-11-12 13:34:26 · 802 阅读 · 0 评论 -
巧用C语言中预处理
1.#error产生错误信息#include //#define ERR 0int main(){#ifdef ERR printf("error test\n");#else#error this error printf("else \n");#endif return 0;}当我们编译这个例子是可以发现,当ERR这个宏被定义是 #error this error printf("el原创 2012-11-12 13:36:33 · 307 阅读 · 0 评论 -
找一个字符串中最长的整数
写一个函数,它的原形是int continumax(char *outputstr,char *intputstr)功能:在字符串中找出连续最长的数字串,并把这个串的长度返回,并把这个最长数字串付给其中一个函数参数outputstr所指内存。例如:"abcd12345ed125ss123456789"的首地址传给intputstr后,函数将返回9,outputstr所指的值为123456789原创 2012-11-12 13:37:05 · 404 阅读 · 0 评论 -
C语言笔试题-2
第一题、请问一下程序将输出什么结果?#include char *RetMemory(void){ char p[] = "hellow world"; return p;}int main(void){ char *str = NULL; str = RetMemory(); printf("%s\n", str); return 0;}答案: RetMemory执行完毕,p资源被回收,指向未原创 2012-11-12 13:37:08 · 533 阅读 · 0 评论 -
C语言笔试题-3
第一题、求一个数有多少位1? int func ( x ) { int countx = 0; while ( x ) { countx ++; x = x&(x-1); } return countx; } 第二题、实现strcpy函数和strlen函数char * strcpy( char *strDest, const char *s原创 2012-11-12 13:37:10 · 370 阅读 · 0 评论 -
段错误bug的调试
我们在用C/C++语言写程序的时侯,内存管理的绝大部分工作都是需要我们来做的。实际上,内存管理是一个比较繁琐的工作,无论你多高明,经验多丰富,难 免会在此处犯些小错误,而通常这些错误又是那么的浅显而易于消除。但是手工“除虫”(debug),往往是效率低下且让人厌烦的,本文将就"段错误"这个 内存访问越界的错误谈谈如何快速定位这些"段错误"的语句。下面将就以下的一个存在段错误的程序介绍几种调试方原创 2013-06-14 14:24:37 · 671 阅读 · 0 评论 -
实例一、求二维数组的和
实现代码如下:#include int main(){ int a[3][4] = {{7, 10, -2, 3}, {14, 30, 6, -5}, {0, 5, 27, -7}}; int *s[3], (*p)[4], sum, i, j; sum = 0; for (i=0; i { s[i] = &a[i][0]; } for (原创 2012-11-12 13:34:29 · 645 阅读 · 0 评论 -
C语言笔试题-5
第一题、strtok函数在使用上要注意什么问题。 这个问题我不知道能不能回答全面,因为实在是用的很少。这个函数的作用是分割字符串,但是要分割的字符串不能是常量,这是要注意的。比如先定义一个字符串:char array[]="part1,part2";,strtok的原形是char *strtok(char *string, char *delim);,我们将","作为分隔符,先原创 2012-11-12 14:05:38 · 589 阅读 · 0 评论 -
strcmp实现
int __cdecl strcmp(const char *src,const char *dst) { int ret=0; while(!(ret=*(unsigned char *)src-*(unsigned char *)dst) && *dst) ++src,++dst;原创 2012-11-12 13:38:36 · 397 阅读 · 0 评论 -
关于C语言中的自加运算符问题
这是一道笔试题,问的是输出结果是什么?:#include #define pro(x) (x*x)int main(){ int x = 3, k, j; j = pro(x++); k = pro(++x); printf("j = %d, k = %d, x = %d\n", j, k, x); return 0;} 答案是:9 49 7 可能有些朋友对于49原创 2012-11-12 13:38:38 · 534 阅读 · 0 评论 -
螺旋队列
/* 螺旋队列 设1的坐标是(0,0),的方向向右为正,y方向向下为正,例如,7的坐标为(-1,-1),2的坐标为(1,0)。 编程实现输入任意一点坐标(x,y),输出所对应的数字。 43 44 45 46 47 48 49 42 21 22 23 24 25 26 41 20 7 8 9 10 27 40 19 6 1 2 11 28原创 2012-11-12 13:38:43 · 333 阅读 · 0 评论 -
C语言笔试题-1
第一题.#include int main(){ unsigned int a = 0xfffffff7; unsigned char i = (unsigned char)a; char *b = (char *)&a; printf("%08x, %08x", i, *b); return 0;}输出结果:000000f7,fffffff7 第二题、用一个表达式,判断一原创 2012-11-12 13:36:36 · 454 阅读 · 0 评论 -
C语言笔试题-4
第一题、字符串逆序void reserve(char *str){ int len = strlen(str); int i; char tmp; for (i = 0; i { tmp = str[i]; str[i] = str[len-i-1]; str[len-i-1] = tmp; }} 第二题、写出在母串中查找子串出现次数的代码.int count1(cha原创 2012-11-12 13:37:12 · 387 阅读 · 0 评论 -
实现整形转换成字符串
二 itoa 把一整数转换为字符串例程序:#include #include void itoa (int n,char s[]);//atoi 函数:将s转换为整形数int main(void ){ int n;char s[100];printf("Input n:\n");scanf("%d",&n);原创 2012-11-12 13:37:39 · 567 阅读 · 0 评论 -
数学中的排列组合
求字符串中所有字符的组合,字符顺序无关,如hd和dh是同一个组合 #include #include char str[5]="hard";char out[5];int len;void getBand(char s[], int n, int m){ if (str[len-n] == '\0') { out[m]='\0'; printf("%s\n", out);原创 2012-11-12 13:38:45 · 589 阅读 · 0 评论 -
来自gloox库的long型数据转换为字符串
/** * Converts a long int to its string representation. * @param value The long integer value. * @param base The integer's base. * @return The long int's string represenation. */static inline const st原创 2012-11-12 13:39:53 · 497 阅读 · 0 评论 -
自我学会利用Linux系统上已有的开发库
http://zhoulifa.bokee.com/6094520.html1、查看库文件是由哪个软件包提供的空闲时打开/usr/lib目录(因为我知道这个目录下放着一些库文件,是我们开发者可以利用的)想看看我的系统中有哪些库。看到一个libz.so,于是用命令查看:dpkg -S /usr/lib/libz.so此命令输出如下信息:转载 2013-06-24 10:25:08 · 829 阅读 · 0 评论