易截截图软件、单文件、免安装、纯绿色、仅160KB

C/C++笔试题(1)

试题1:
Code
Void test1()
{
    char string[10];
    char* str1="0123456789";
    strcpy(string, str1);
}
试题2:
Code
Void test2()
{
    char string[10], str1[10];
    for(I=0; I<10;I++)
    {
        str1[i] ='a';
    }
    strcpy(string, str1);
}
试题3:
Code
Void test3(char* str1)
{
    char string[10];
    if(strlen(str1) <= 10)
    {
        strcpy(string, str1);
    }
}
解答:
test1: 字符串str1需要11个字节才能存放下(包括末尾的'\0'),而string只有10个字节的空间,strcpy会导致数组越界
test2: 如果面试者指出字符数组str1不能在数组内结束可以给3分;如果面试者指出strcpy(string, str1)调用使得从str1内存起复制到string内存起所复制的字节数具有不确定性可以给7分,在此基础上指出库函数strcpy工作方式的给10分
test3: if(strlen(str1) <= 10)应改为if(strlen(str1) < 10),因为strlen的结果未统计'\0'所占用的1个字节
剖析:
考查对基本功的掌握:
(1)字符串以'\0'结尾;
(2)对数组越界把握的敏感度;
(3)库函数strcpy的工作方式,如果编写一个标准strcpy函数的总分值为10,下面给出几个不同得分的答案:
2分
void strcpy( char *strDest, char *strSrc )
{
    while( (*strDest++ = * strSrc++) != '\0' );
}
4分
void strcpy( char *strDest, const char *strSrc )
//将源字符串加const,表明其为输入参数,加2分
{
    while( (*strDest++ = * strSrc++) != '\0' );
}
7分
void strcpy(char *strDest, const char *strSrc)
{
   //对源地址和目的地址加非0断言,加3分
   assert( (strDest != NULL) && (strSrc != NULL) );
   while( (*strDest++ = * strSrc++) != '\0' );
}
10分
//为了实现链式操作,将目的地址返回,加3分!
Code


相关文档:

C_利用函数的引用调用实现两数的交换

 源码:
# include <stdio.h>
 
void swap(int *x, int *y);
 
int main()
{
    int i, j;
 
    i = 12;
    j = 36;
 
    printf("i and j before swapping: %d %d\n", i, j);
 
 &nbs ......

c/c++语言中的字符集和字符编码

 在c语言中,hello world程序的编码其实未必就只有那一种书写格式,有些格式看起来有点乱码,却依然有着能正常编译,运行的良好品性,真是难能可贵,其中的秘密,看一看c语言中字符集和字符编码的描述吧。
??= include<stdio.h>
int main( int argc, char* argv??(??))
<%
      ......

C/C++ 文件读写操作总结

 C/C++ 文件读写操作总结
在编程的过程中,文件的操作是一个经常用到的问题,在C++Builder中,可以使用多种方法对文件操作,下面我就按以下几个部分对此作详细介绍,就是:
 
1、基于C的文件操作;
2、基于C++的文件操作;
3、基于WINAPI的文件操作;
4、基于BCB库的文件操作;
5、特殊文件的操作。
壹 ......

在LINUX下进行C语言编程所需要的基础知识

 这篇文章介绍在LINUX下进行C语言编程所需要的基础知识.在这篇文章当中,我们将会学到以下内容:
源程序编译
Makefile的编写
程序库的链接
程序的调试
头文件和系统求助
--------------------------------------------------------------------------------
1.源程序的编译
在Linux下面,如果要编译一个C ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号