
编程基础
xchbx
这个作者很懒,什么都没留下…
展开
-
嵌入式C开发基础题(12)
第14题:考查指针数组的指针#include void f(char**);void main(){ char* argv[] = { "ab" ,"cd" , "ef" ,"gh","ij" ,"kl" }; f(argv );}void f( char **p ){ char* t; t=(p+= sizeof(int))[-1]; printf("%s\n" ,原创 2013-09-11 23:57:44 · 1023 阅读 · 0 评论 -
嵌入式C开发基础题(13)之C的变长参数
第13题:此题考查的是C的变长参数;#include#includeint ripple ( int , ...);void main(){ int num; num= ripple (3,5,7); printf(" %d\n" , num);}int ripple (int n, ...){ int i,j; int k; va_list p; k=0;原创 2013-09-12 00:23:22 · 2183 阅读 · 1 评论 -
"const T " VS "T const " VS const 作用汇总
声明符:这是第一个观点:C和C++的每一个声明都有两个主要的部分:一串0个或多个声明修饰符+一串0个或多个声明符(多个申明符用逗号分开)例如: Static unsigned long int *x[N];(Declarationg specifier )(declarator)声明符就是要声明的名字,经常与像*,[],()和&((在C++中)组合在转载 2013-09-13 22:49:08 · 791 阅读 · 0 评论 -
嵌入式面试之经典基础题
@@@@@预处理器(Preprocessor)@@@@@1 . 用预处理指令#define声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL我在这想看到几件事情:?; #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)?; 懂得预处理器将为你计算常数转载 2013-10-02 23:00:22 · 1510 阅读 · 0 评论 -
c语言编程题之字符串逆转。
一、导读:将一个字符串逆序输出。二、算法思想:方案一:借用两个指针(一个头指针,一个尾指针),一个中间变量,在移动两个指针过程中不断交换两个指针得值。三、算法实例:#include #include char* reverse(char* src){ if (NULL == src) { return NULL; }原创 2013-10-04 21:33:03 · 2697 阅读 · 0 评论 -
c语言---矩阵输出问题(之型矩阵输出)
算法思路: (思路来源http://hi.youkuaiyun.com/quietwave博主的回答) 对于这类打印方阵的问题,可以用数学的方法,推导出a[i][j] = F(i,j)中的F,即将第i行,第j列的元素用 i和j 的函数表示出来然后再 for(int i = 0 ; i { for(int j = 0 ; j pr原创 2013-10-07 14:20:14 · 5419 阅读 · 0 评论 -
[小技巧]一个长整数的内存映像转换为16进制
#include char* convert( unsigned long Value ){ static char Buffer[sizeof( unsigned long ) * 2 + 1]; int i; for( i = sizeof( unsigned long ) * 2 - 1; i >= 0; --i ) { Buffer[原创 2013-10-07 19:23:55 · 1053 阅读 · 0 评论 -
编写安全代码——小心有符号数的右移操作
转载来源:http://blog.chinaunix.net/uid-23629988-id-3018793.html作者:gfree.wind@gmail.com博客:blog.focus-linux.net linuxfocus.blog.chinaunix.net话说有这样的一段代码:#include stdlib.h>#i转载 2013-10-12 22:02:17 · 917 阅读 · 0 评论 -
编写安全代码:不要在头文件中定义变量
作者:gfree.wind@gmail.com博客:blog.focus-linux.net linuxfocus.blog.chinaunix.net 微博:weibo.com/glinuxerQQ技术群:4367710 本文的copyleft归gfree.wind@gmail.com所有,使用GPL发布,可以自由拷贝,转载。但转载请保持文档的完整性,注明转载 2013-10-12 22:55:02 · 689 阅读 · 0 评论 -
C语言实现代码注释的自动删除
由于最近在读一些开源代码,大段的注释读起来不太方便,于是产生了想用C语言实现自动删除代码中所有注释的想法。C语言中注释分为以下几种1) /* hello world */2) // hello world3) #if 0 hello world #endif表面上看起来很简单,其实实现起来比较复杂,有很多细节需要处理,比如注释和引号互相嵌套的问题,/转载 2013-10-12 23:45:25 · 3428 阅读 · 1 评论 -
嵌入式C开发基础题(10)
第10题:考查形式参数,实际参数,指针和数组#include void f1(int *, int);void f2(int *, int);void(*p[2])( int *, int);void main(){ int a; int b; p[0]= f1; p[1]= f2; a=3; b=5; p[0](&a, b); printf("%d\t%d\t"原创 2013-09-11 23:34:17 · 799 阅读 · 0 评论 -
嵌入式C开发基础题(6)
第7题:考查指针数组#include void main(){ int a[][3] = { 1,2,3,4,5,6}; int (*ptr)[3] =a; printf("%d %d " ,(*ptr)[1], (*ptr)[2] ); ++ptr; printf("%d %d\n" ,(*ptr)[1], (*ptr)[2] );}这段程序的输出是:(a原创 2013-09-11 23:04:14 · 648 阅读 · 0 评论 -
嵌入式C开发基础题(6)
第6题目:考查逗号表达式#includeint main(){ int a,b,c,d; a=3; b=5; c=a,b; d=(a,b); printf("c=%d\n",c); printf("d=%d\n",d); return 0;}这段程序的输出是:(a)c=3 d=3 (b) c=5 d=3 (c) c=3 d=5 (d) c=5 d=5原创 2013-09-11 22:55:22 · 672 阅读 · 0 评论 -
嵌入式C开发基础题(2)
第二题:考查类型转换#include #include int main(){ struct node { int a; int b; int c; }; struct node s= { 3,5,6 }; struct node *pt = &s; printf("%d\n" , *(int*)pt); return 0;}这段程序的输出是:原创 2013-09-11 21:43:49 · 795 阅读 · 0 评论 -
嵌入式C开发基础题(4)
(重要!!!!!)第4题:考查指针,这道题只适合于那些特别细心且对指针和数组有深入理解的人int main(){ int a[5] = {1,2,3,4,5}; int *ptr = (int*)(&a+1); printf("%d%d" , *(a+1), *(ptr-1) ); return 0;}这段程序的输出是:(a) 2 2 (b) 2原创 2013-09-11 22:11:26 · 1203 阅读 · 0 评论 -
嵌入式C开发基础题(5)
第5题:考查多维数组与指针#include #include void foo(int [][3] );int main(){ int a [3][3]= { { 1,2,3} , { 4,5,6},{7,8,9}}; foo(a); printf("%d \n", a[2][1]); return 0;}void foo( int b[][3]){ ++b; b[原创 2013-09-11 22:30:46 · 1188 阅读 · 0 评论 -
嵌入式C开发基础题(8)
第8题:考查函数指针int* f1(void){ int x =10; return (&x);}int* f2(void){ int* ptr; *ptr=10; return ptr;}int* f3(void){ int* ptr; ptr=(int*)malloc(sizeof(int)); return ptr;}上面这3个函数哪一个原创 2013-09-11 23:11:36 · 1822 阅读 · 0 评论 -
嵌入式C开发基础题(9)
【重要!!!】第9题:考查自加操作(++)#include void main(){ int i=3; int j; j= sizeof(++i + ++i); printf("i=%d j=%d \n", i,j);}这段程序的输出是:(a)i=4 j=2 (b) i=3 j=2 (c) i=3 j=4 (d) i=3 j=6解答:原创 2013-09-11 23:21:08 · 759 阅读 · 0 评论 -
嵌入式C开发基础题(11)之自减操作
第11题:考查自减操作(--)#include void e(int );void main(){ int a; a=3; e(a);}void e(int n){ if(n>0) { e(--n); printf("%d\n", n); e(--n); }}这段程序的输出是:(a)0 1 2 0(b) 0 1 2 1 (c) 1原创 2013-09-11 23:45:11 · 908 阅读 · 0 评论 -
嵌入式C开发基础题(14)
【重要!!!】第14题:考查静态变量的知识#include int counter (int i){ static int count =0; count= count +i; return(count );}void main(){ int i , j; for(i=0; i <=5; i++) j= counter(i);}本程序执行到最后,j的值是原创 2013-09-12 00:31:43 · 1475 阅读 · 0 评论 -
嵌入式C开发基础题(1)
本文约定:(1) 下面的测试题中,认为所有必须的头文件都已经正确的包含了(2)数据类型 Char 一个字节 1 byteInt 两个字节 2 byte (16位系统,认为整型是2个字节)long int 四个字节 4 bytefloat原创 2013-09-11 12:06:09 · 918 阅读 · 0 评论 -
嵌入式C开发基础题(3)
第3题:考查递归调用int foo ( int x , int n) { int val; val =1; if (n>0) { if (n%2 == 1) val = val *x; val = val * foo(x*x , n/2); } return val;}这段代码对x和n完成什么样的功能(操作)?(a)x^n (x的n次幂) (原创 2013-09-11 21:56:30 · 1677 阅读 · 0 评论 -
C++语言实现代码注释的自动删除
注释种类:1) /* hello world */2) // hello world3) #if 0 hello world #endif在转载的那篇C语言实现代码注释的自动删除文章,提供了一个很好的思想,那就是有限状态机的思想。在原来文件只是实现了c语言注释的第一种情况,今天利用空闲时间研究了一下这算法,并把第二种c++中常用的注释删除算法完成了。原创 2013-10-13 18:27:03 · 1526 阅读 · 2 评论