C语言试题大全三

发布者:落寞梦惊最新更新时间:2015-12-22 来源: eefocus关键字:C语言 手机看文章 扫描二维码
随时随地手机看文章
1.(1)读文件file1.txt的内容(例如):
  12
  34
  56
输出到file2.txt:
  56
  34
  12
(逆序)

答案:
注意可增长数组的应用.
#include
#include
int main(void)
{
      int MAX = 10;
      int *a = (int *)malloc(MAX * sizeof(int));
      int *b;
   
      FILE *fp1;
      FILE *fp2;
      fp1 = fopen("a.txt","r");
      if(fp1 == NULL)
      {
         printf("error1");
         exit(-1);
      }
      fp2 = fopen("b.txt","w");
      if(fp2 == NULL)
      {
         printf("error2");
         exit(-1);
      }
    int i = 0;
    int j = 0;
    while(fscanf(fp1,"%d",&a[i]) != EOF)
   {
      i++;
      j++;
      if(i >= MAX)
      {
           MAX = 2 * MAX;
           b = (int*)realloc(a,MAX * sizeof(int));
           if(b == NULL)
           {
               printf("error3");
               exit(-1);
           }
           a = b;
    }
}
for(;--j >= 0;)
   fprintf(fp2,"%d ",a[j]);
fclose(fp1);
fclose(fp2);
free(a);
return 0;
}
 
 
2. 分析下面的代码:
char *a = "hello";
char *b = "hello";
if(a= =b)
printf("YES");
else
printf("NO");
"hello"是一个常量字符串。位于静态存储区,它在程序生命期内恒定不变。如果编译器优化的话,会有可能a和b同时指向同一个hello的。则地址相同。如果编译器没有优化,那么就是两个不同的地址,则不同
 

3. 两个字符串,s,t;把t字符串插入到s字符串的第i个位置前,s字符串有足够的空间存放t字符串
 
答案:
void insert(char *s, const char *t, int i)
{
    int j,len;
    int k=strlen(s)-1;
    if(i<0||i>strlen(s))
       return;
    len=strlen(s)+strlen(t);
    for(j=len-1;k>=i;k--,j--) 
    {
       s[j]=s[k];
    }
    for(k=i;k
    {
        s[k]=t[k-i];
    }
    s[len]='';
}
 
关键字:C语言 引用地址:C语言试题大全三

上一篇:C语言试题大全四
下一篇:C语言试题大全一

推荐阅读最新更新时间:2024-03-16 14:41

单片机C语言教程第二课-初步认识51芯片
上一课我们的第一个项目完成了,可能有懂C语言的朋友会说, 这和PC机上的C语言没有多大的区别呀 。的确没有太大的区别,C语言只是一种程序语言的统称,针对不同的处理器相关的C语言都会有一些细节的改变。编写PC机的C程序时,如要对硬件编程你就必须对硬件要有一定的认识,51单片机编程就更是如此,因它的开发应用是不可与硬件脱节的,所以我们先要来初步认识一下51苾片的结构和引脚功能。MSC51架构的芯片种类很多,具体特点和功能不尽相同(在以后编写的附录中会加入常用的一些51芯片的资料列表),在此后的教程中就以Atmel公司的AT89C51和AT89C2051为中心对象来进行学习,两者是AT89系列的典型代表,在爱好者中使用相当的多,应用资料
[单片机]
单片机<font color='red'>C语言</font>教程第二课-初步认识51芯片
《手把手教你学51单片机-C语言版》之十五----实时时钟DS1302
在前面的课程中我们已经了解到了不少关于时钟的概念,比如我们用的单片机的主时钟是11.0592M、I2C总线有一条时钟信号线SCL等,这些时钟本质上都是一个某一频率的方波信号。那么除了这些在前面新学到的时钟概念外,还有一个我们早已熟悉的不能再熟悉的时钟概念 年-月-日 时:分:秒 ,就是我们的钟表和日历给出的时间,它的重要程度我想就不需要多说了吧,在单片机系统里我们把它称作实时时钟,以区别于前面提到的几种方波时钟信号。实时时钟,有时也被称作墙上时钟,很形象的一个名词,对吧,大家知道它们讲的一回事就行了。本章,我们将学习实时时钟的应用,有了它,你的单片机系统就能在漫漫历史长河中找到自己的时间定位啦,可以在指定时间干某件事,或者记
[单片机]
《手把手教你学51单片机-<font color='red'>C语言</font>版》之十五----实时时钟DS1302
C语言到底学些什么— “语法”和“函数库”
  C语言学习的关键,是要先搞明白,学C语言到底是在学些什么?   我这么一问,有的同学就要翻开课本,指着目录说,我知道我知道,有变量,数据类型,循环语句,函数,哦哦哦,还有指针等等!   很遗憾,如果你以为学习C语言就是学习这些东西,那你得赶紧纠正一下看法,否则接下来的学习会困难重重。因为我曾经就是这么掉到坑里的,这种狭隘的观点让我浪费了大量的时间去学习琐碎的细节,又让我迟迟不能接触到更重要的知识,结果是眼高手低 知道许多别人不知道的无用知识,但是又写不出什么真正像样的程序来。   所谓 语法 ,就是入门教材里最着重讲解的内容。也就是那些所谓的变量、数据类型、分支判断、循环、函数、指针等等。   这些内容比较枯燥,但是好消息
[单片机]
51单片机编程开发(一)之C语言基础一
C51编译器 51单片机开发编译有很多,现在比较有名的是IAR for 8051编译器和KEIL for C51编译器,但这两个软件都不是免费的,官网提高的免费版是有使用限制的。另外还有一些编译器是免费的,但需要一定基础,初学者就不推荐使用了,等你翅膀硬了之后在自己配置编译环境吧。 简单介绍两个免费编译器:可跨平台使用的开源编译器sdcc,有空可以自己查资料搭建一下,后期如果有时间我再做个教程吧。另外微软公司提供的Visual Studio Code这个免费又强大的代码编辑器配合一些三方插件工具也可以实现各种单片机编译功能,效果也不错,这个也以后再另说吧。IAR for 8051编译器和KEIL for C51编译器在官网都可
[单片机]
51单片机编程开发(一)之<font color='red'>C语言</font>基础一
单片机C语言-程序结构
先来简单说说C语言的标识符和关键字。 标识符是用来标识源顺序中某个对象的名字的, C语言是大小字敏感的一种高级语言, 假设我们要定义一个定时器1, 标识符由字符串, 数字和下划线等组成, 留意的是第一个字符必须是字母或下划线, 如“1Timer”是错误的, 编译时便会有错误提示。 所以普通不要以下划线开头命名标识符。 含义明晰, 这样有助于阅读理解顺序。 在C51编译器中, 只支持标识符的前32位为有效标识, 普通情况下也足够用了。 在顺序编写中不允许标识符与关键字相同。 在KEILuVision2中的关键字除了有ANSIC标准的32个关键字外还依据51单片机的特点扩展了相关的关键字(比如for, while等标准的还有sbit,
[单片机]
单片机C语言程序设计:单片机之间双向通信
/* 名称:甲机串口程序 说明:甲机向乙机发送控制命令字符, 甲机同时接收乙机发送的数字,并显示在 数码管上。 */ #include reg51.h #define uchar unsigned char #define uint unsigned int sbit LED1=P1^0; sbit LED2=P1^3; sbit K1=P1^7; uchar Operation_No=0; //操作代码 //数码管代码 uchar code DSY_CODE ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //延时 void Delay
[单片机]
单片机<font color='red'>C语言</font>程序设计:单片机之间双向通信
C语言宏定义技巧
写好C语言,漂亮的宏定义很重要,使用宏定义可以防止出错,提高可移植性,可读性,方便性 等等。下面列举一些成熟软件中常用得宏定义。。。。。。 1,防止一个头文件被重复包含 #ifndef COMDEF_H #define COMDEF_H //头文件内容 #endif 2,重新定义一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植。 typedef unsigned char boolean; /* Boolean value type. */ typedef unsigned long int uint32; /* Unsigned 32 bit value */ typedef unsig
[单片机]
模拟串口的C语言源程序代码
本程序是模拟串口硬件机制写的,使用时可设一定时中断,时间间隔为1/4波特率,每中断一次调用一次接收函数, 每中断4次调用一次发送函数,不过.对单片机来说时钟并须要快.要知道9600的波特率的每个BIT的时间间隔是104us.而单片机中断一次压栈出栈一次的时间是20us左右(标准的51核12M晶体)这样处理时间就要考虑清楚了.呵呵.以下程序是放在定时器中断程序函数内的 //接收部分 sbit JieShou_D= ;//定义接收端口 uint8 DingShiJiShu,JieShou_h;//定时计数,接收缓冲器 uint16 JieShou_T;//接收临时寄存器 bit KaiShi,JieShou_b;//开始接收
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved