/*

* test.c

*

*  Created on: Jul 4, 2012

*      Author: 孙旭

* 华清远见实验室

*/

/******1*****/

#include

int main()

{

int i=0;

int j=0;

char a[5];

for(i=0;i<5;i++)

a[j]=j++;    //强烈建议不这样使用容易出现不能预料的错误

//error"operation on ‘j’ may be undefined"

for(i=0;i<5;i++)

printf("%d",a[i]);

return 0;

}

/*****2******/

#include

int main()   //在同一个表达式中使用导致同一对象修改两次或修改以后

{     //又被引用的自增,自减或赋值操作的任何组合

int i=7;             //包含多个不缺定的副作用的代码的行为总是认为未定义的

printf("%d",i++*i++);//operation on ‘i’ may be undefined

return 0;            //打印结果49

}

/*****3******/

#include

int main()

{

int i=1;      //包含多个不缺定的副作用的代码的行为总是认为未定义的

i=i++;       //operation on ‘i’ may be undefined

printf("%d",i);

return 0;

}

/****4******/

#include

int main()

{

int a=123;

int b=234;   //输出结果a=234 b=123

a^=b^=a^=b;  //error"operation on ‘a’ may be undefined"

printf("a=%d\n",a);  //在同一个表达式修改变量的值然后再赋值的组合会出现副作用

printf("b=%d\n",b);

return 0;

}

/*****5*****/

#include

int fun()

{

int a=1;

printf("this is fun\n");

return a;

}

int goo()

{

int b=2;

printf("this is goo\n");

return b;

}

int foo()

{

int c=3;

printf("this is foo\n");

return c;

}

int main()

{

int x=fun()+goo()*foo();   //对于函数调用是从左到右依次执行,不能使用运算符规则即先乘再加的运算

printf("%d",x);

return 0;

}

/******6*****/

#include

int main()

{

int i=1,j;

int a[5]={1,2,3,4,5};

for(j=0;j<5;j++)             //Multiple markers at this line

pirntf("a[%d]=%d",i,i++);   //- operation on ‘i’ may be undefined

return 0;

}

/*****7******/

#include

int main()

{

int a=65530;

int b=20;

long c=a*b;      //LINUX 下可以这样计算

printf("%ld",c);

return 0;

}

/******8*******/

#include

#include

void fun(int a[3][5])    //行参接受的是地址不能直接计算他的长度

{

int *p=&a[0][0];

int i=sizeof(a);  //使用strlen(a)是计算的是地址的长度为4

int j=strlen(p);  //间接使用指针来计算他的长度 值为15

int (*p)[5]=a;

int k=strlen(p);  //间接使用指针来计算他的长度 值为15

printf("%d",i);

}

int main()

{

int b[3][5];

fun(b);

return 0;

}

/********9*********/

#include

int main()

{

int x[2][3]={1,2,3,4,5,6};

int (*p1)[3]=x;

printf("%d\n",*p1);

p1++;

printf("%d",*p1);

return 0;

}

/*******10*****/

#include

int main()

{

int x=20;

short y=28;

void *p1;

void *p2;

p1=&x;

p2=&y;       //强制类型转化

printf("%d\n",*(short *)p1);  //对与空类型指针只能由高到低转化 20

printf("%d\n",*(int *)p2);      //不能由低向高转化  -2076180452

printf("%d\n",*(int *)p1);  //20

printf("%d\n",*(short *)p2);  //28

return 0;

}

/******11******/

#include

int main()

{

int x=22;

short y=33;

int p1=(short)y;  //22

short p2=(int)x;  //33

printf("%d\n",p1);

printf("%d\n",p2);

char a[]="1234\0567";

char b[]="1234567\0";

char c[]="1234567";

int i=sizeof(a);

int j=sizeof(b);

int k=sizeof(c);

printf("a=%d\n",i);  //7

printf("b=%d\n",j);  //9

printf("c=%d\n",k);  //8

return 0;

}

/******12*******/

#include

int main()

{

int n=3,a[n];   //linux下数组内存分配是连续的,不会出现段错误

a[10]=10;

printf("%p\n",a);      //0xbff06330

printf("%d\n",a[10]);  //10

printf("%p\n",&a[10]);   //0xbff06358

return 0;

}

/******13******/

#include

void fun(int a[][3])

{

char (*b)[3]=a;

b[0][0]=4;

}

int main()

{

int a[3][3]={0};

int i,j;

fun(a);

for(i=0;i<3;i++)

for(j=0;j<3;j++)

printf("%d  ",a[i][j]);

return 0;

}

/*******14**********/

#include

int main()

{

int x[2][3]={1,2,3,4,5,6};

int (*p1)[3]=x;

printf("%d\n",*p1);

p1++;

printf("%d",*p1);

return 0;

}

/*****15****/

#include

int main()

{

int i=0,k=0;

for(i=0;i<22;i++)

{

int j;

for(j=2;j<5;j++)

printf("j=%d  ",j);

}

for(k=0;k<5;k++)

{

int x;

for(x=0;x<5;x++)   //局部变量的作用域从定义的括号到大括号结束

{

while(j--)    //error"‘j’ undeclared (first use in this function)"

printf("j===%d \n",j);

}

}

return 0;

}

/*******16******/

#include

int i=3;

int main()

{

int i=4;

int j=::i;  //不能这样使用全局变量  ::i  这是针对c++的

printf("%d",j);

return 0;

}

/******17******/

#include

int main()

{

for(;1;)   //相当与while(1)

printf("------\n");

return 0;

}

/******18*****/

#include

static int x=0;

int fun()

{

//int x=0

x++;

return x;

}

int main()

{

int sum=0;

int j=0;

for(;j<2;j++)

sum+=fun();

printf("%d",sum);  //3  //2

return 0;

}

/******19******/

#include

typedef union {

long i;

int k[5];     //sizeof(s1)=20

char c;

}s1;

typedef struct date{

int cat;

s1 cow;        //sizeof(s2)=32

double c;

}s2;

typedef struct data{

int cat;

s2 cow;       //sizeof(s3)=44

double c;

}s3;

int main()

{

int i=sizeof(s3);

printf("%d",i);

return 0;

}

/*******20******/

#include

#include

#include

int main()

{

char *src="hello,world";

char *dest=NULL;

int len=strlen(src);

dest=(char *)malloc(len+1);

char *d=dest;          //

printf("%p\n",dest);

printf("%p\n",d);

char *s=&src[len-1];

while(len--!=0)

*d++=*s--;

*d=0;      //尾部要加0

//printf("%s\n",d);  //d指针指向末尾

printf("%s",dest);

free(dest);

return 0;

}

/*******21********/

/*创建单个节点*/

#include   /*二叉树*/

#include

typedef struct tree

{

int data;

struct tree *lchild;

struct tree *rchild;

}tree;

tree *p=NULL;

void initTree(tree **t)

{

*t=(tree*)malloc(sizeof(tree));

(*t)->data=10;

(*t)->lchild=NULL;

(*t)->rchild=NULL;

}

tree * createTree(tree *t)

{

tree *t1;

int data;

initTree(&t);

t1=t;

puts("请输入节点的内容:");

scanf("%d",&data);

while(1)

{

if(t1->data==0)

break;

else if(datadata)

{

if(t1->lchild==NULL)

{

initTree(&t1->lchild);

t1=t1->lchild;

t1->data=data;

break;

}

else

{

t1=t1->lchild;

}

}

else if(data>t1->data)

{

if(t1->rchild==NULL)    {     initTree(&t1->rchild);     t1=t1->rchild;     t1->data=data;     break;    }    else    {     t1=t1->rchild;    }   }  }  printf("%d\n",t1->data);  return t1; } void printTree(tree *t) {  printf("%d",t->data); } int main() {  tree *head;  head=createTree(p);  printTree(head);  return 0; }

华清远见C语言笔试题,华清远见C语言学习笔记五相关推荐

  1. 计算机二级c语言 笔试题 历年,计算机二级C语言笔试历年真题及答案

    计算机二级C语言笔试历年真题及答案 (30)有以下程序(函数fun只对下标为偶数的元素进行操作) # include void fun(int*a;int n) {int i.j.k.t; for ( ...

  2. 复试c语言笔试题,2014年暨南大学C语言考研复试试题(回忆版)

    作者:Doreen1991    时间:2014-4-3 00:05 标题:2014暨大计算机系复试详细流程与题目 上午:c语言编程.专业英语(10:00--12:30) 一,c语言 考试地点:信科院 ...

  3. 华清远见fs4412开发板学习笔记(五)

    fs4412开发板学习笔记(五) 作业1: 输入10个整数,按从小到大的顺序输出(选择排序) 每轮排序在未排序的集合中找到(最小/最大),将找到的数与未排序的 第一个数交换位置. 5 4 3 2 1 ...

  4. C语言笔试题--从CSDN转发

    C语言笔试题--从CSDN转发 关键字: 工作,C语言 4.static有什么用途?(请至少说明两种) 1.限制变量的作用域 2.设置变量的存储域 7.引用与指针有什么区别? 1) 引用必须被初始化, ...

  5. c语言编写单词位置反转,C语言笔试题答案.docx

    C语言笔试题答案 C语言笔试题答案简答题程序的局部变量存在于(栈)中,全局变量存在于(静态区)中,动态申请数据存在于(堆)中.设有以下说明和定义:typedef union {long i; int ...

  6. 东软 c语言笔试题,C语言笔试题及参考答案-东软集团(最新整理)

    <C语言笔试题及参考答案-东软集团(最新整理)>由会员分享,可在线阅读,更多相关<C语言笔试题及参考答案-东软集团(最新整理)(7页珍藏版)>请在人人文库网上搜索. 1.C 语 ...

  7. c语言面试题下载,C语言笔试题A.doc

    C语言笔试题A 选择题(本大题共25小题,每小题2分,共50分) 1.C语言程序总是从 c 开始执行. A.书写顺序的第一个函数 B.书写顺序的第一条执行语句 C.主函数main D.不确定 2.以下 ...

  8. 华为 社招 C语言笔试,华为笔试C语言笔试题之3

    <华为笔试C语言笔试题之3>由会员分享,可在线阅读,更多相关<华为笔试C语言笔试题之3(10页珍藏版)>请在人人文库网上搜索. 1.C 语言笔试题之34. static 有什么 ...

  9. c语言while中100 95,C语言笔试题100道

    C语言笔试题100道 a) 30 b) 50 c) 40 d) 20 e) 10 18) #include void main() { int a=3,b=2,c=1; int x=10,y=20; ...

最新文章

  1. 计算机网络7层协议模型,计算机网络(一) OSI七层模型及TCP/IP dubbo协议
  2. 万分之二用百分之怎么表示_2020年元旦放假通知!周三放1天!不挪假连休,你打算怎么安排?...
  3. 请交一个关于域的问题
  4. 37款机型升级鸿蒙系统,华为终于想通,为鸿蒙系统敞开大门,37款机型将同步升级...
  5. 查看git当前tag_同学,也该学着用Git了......
  6. 局域网共享工具_局域网文件共享
  7. 二级数据库access和mysql_二级数据库access和mysql
  8. python记录日志_记录python日志
  9. python/selenium/chrome
  10. Flask源码解析:从第一个版本开始阅读Flask源码
  11. java实验的总结_Java实验总结——初学(上)
  12. JavaScript数组forEach循环
  13. UIAlertView使用全解
  14. android usb 9008,【2018.1.4更新】X极Qualcomm HS-USB QDLoader 9008救砖的4种方法
  15. 人工神经网络分析方法,神经网络数据分析步骤
  16. tas5424_TAS5414A,TAS5424A,-电子电路图,电子技术资料网站
  17. 钢铁侠java_现代版“钢铁侠”,无所不能的程序员,java工程师实现人造器官!...
  18. 执念斩长河线上线性代数开启---绪论
  19. 如何用手机在图片上标箭头_如何在手机上快速给图片做标记?
  20. 狄利克雷原理及其应用

热门文章

  1. MATLAB randperm函数---产生随机序列
  2. 美国计算机视觉专业排名,2020美国人工智能专业排名TOP10!
  3. 字符串匹配问题(信息学奥赛一本通 - T1355)
  4. 计算机机箱架硬盘托架是什么,电脑升级固态硬盘该怎么安装?一文秒懂硬盘支架选择...
  5. Uber是如何重新思考GPS定位的(尤其是在城市峡谷中)
  6. 呵,偶居然也能“说教”了
  7. 浙大计算机学些什么,浙江大学首批招收人工智能专业 学什么,要怎么教?
  8. 论android等平台回音消除解决方案
  9. Redis缓存有效时间设置到第二天凌晨的秒数
  10. 基于python马蜂窝网的旅游景点推荐系统