C基础(含答案)_第1页
C基础(含答案)_第2页
C基础(含答案)_第3页
C基础(含答案)_第4页
C基础(含答案)_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、考试详情考试场次:2014_06月月考_06月26日_C+/IOS 试卷名称:2014年06月_C+_CSD/ESD1405 1.以下代码实现的是字符串的哪个函数?void f(char *s1,char *s2)    while(*s1+);    s1-;    while(*s1+=*s2+);     A. strcpy函数 B. strcat函数 C.&#

2、160;strlen函数 D. strcmp函数正确答案:B2.typedef struct Part     short s;     int id;     char name; Part;int main()  printf(“%dn”,sizeof(Part);在考虑结构的对齐和补齐的前提下,打印的结果应该是: A. 7 B. 8 C. 10 D. 12正确答

3、案:D3.所谓“水仙花”数是一个整数等于各位数字立方的和,例如:153 = 1*1*1+5*5*5+3*3*3,下面的程序用于输出21000内的水仙花数:int n;for (n = 2; n <= 1000; n+)     (空白处)    if (s = n)         printf(“%dn”,n);    下列选项中,空白处可以填入的代码是? A.int s = 0, n1 = n;while (n1 > 0)     

4、;int t = n1 % 10;    s += t * t * t;    n1 /= 10; B.int s = 0, n1 = n;while (n1 > 0)     int t = n1 / 10;    s+= t * t * t;    n1 %= 10; C.int n1,s;for(n1 = n; n1>0; n1 /= 10)     int t = n1%10;    s += t

5、 * t * t; D.int n1,s = 0;for(n1 = n; n1>0; n1 %= 10)     int t = n1 / 10;    s += t * t * t;正确答案:A 4. 对一个算法的评价,不包括下列( )方面的内容。 A. 健壮性和可读性 B. 并行性 C. 正确性 D. 时空复杂度正确答案:B5. 以下代码int a25 = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10;printf (&q

6、uot;%dn",a04);的输出是? A. 1 B. 5 C. 6 D. 10正确答案:B6. 80转换成二进制的结果是: A. 1011 0000 B. 0101 0000 C. 1101 0001 D. 1010 1111正确答案:A7.以下两条语句:scanf ("%*n");cin.ignore (80, 'n');在行为方面有何不同? A. 前者读取并丢弃输入缓冲区中的首个换行符,后者读取并丢弃输入缓冲区中的前80个换行符 B. 前者读取

7、并丢弃输入缓冲区中的所有换行符,后者读取并丢弃输入缓冲区中的后80个换行符 C. 前者读取并丢弃输入缓冲区中的所有字符直至遇到换行符,后者读取并丢弃输入缓冲区中的80个字符,若遇到换行符则提前返回 D. 二者完全等价,没有任何不同正确答案:C8.以下代码实现的是字符串的哪个函数?int i;for(i=0;i+)    if(*(s1+i)='0') break;return i; A. strcpy函数 B. strcat函数 C. strlen函数 D. strcmp函数正确答案:C9.

8、0;关于预处理指令,以下说法正确的是: A. #include可以包含文件,文件名必须用<>括起来 B. #define可以定义宏,宏一旦定义,就无法取消 C. #ifndef、#ifdef都可以用于条件编译 D. #elseif 可以用于条件编译正确答案:C10. 以下代码char c = 200;printf ("%dn", c);的输出是? A. 200 B. 56 C. -56 D. -55正确答案:C11. 命令chmod

9、644 myfile将myfile文件的权限设置为? A. 属主用户可读可执行,同组和其它用户可读 B. 属主用户可读可写,同组和其它用户可读 C. 属主用户可写可执行,同组和其它用户可执行 D. 属主和同组用户可读,其它用户可读可写正确答案:B 12.阅读如下代码:typedef int T;/用数组实现简单的栈class Stack    T data10;    int sz;  public:    Stack():sz()   

10、0;void push(const T& d)throw(const char*)        if(sz=10)throw "full"        (空白处)         void pop()throw(const char*)        if(sz=0)throw "empty" 

11、      sz-;        T top()const throw(const char*)         if(sz=0)throw "empty"        return datasz-1;         int size()const return

12、sz;    bool empty()const return sz=0; 空白处应该填上的代码是? A. datasz = d; B. data+sz = d; C. datasz+ = d; D. sz+;正确答案:C 13. 关于费氏数列1 1 2 3 5 8 13 21 .的通项最佳实现是? A.int f1(int n)    if(n<3) return 1;    return f1(n-1)+f1(n-2);

13、60;B.int f1(int n)    if(n<2) return 1;    return f1(n-1)+f1(n-2); C.int f2(int n)    int x=1,y=1,i;    for(i=3;i<=n;i+)        y = x+y;        x = y-x;      &

14、#160; return y; D.int f2(int n)    int x=1,y=1,i;    for(i=3;i<=n;i+)        y = x+y;       x = y-x;        return x;正确答案:C 14.根据下列 变量的类型以及函数参数类型,选出正确的sizeof的结果:注意:选项给出结果的顺序是按照圆序号的顺序排列的。c

15、har  str = “Hello”;  sizeof(str) = char   *p = str ;  sizeof(p) = int     n = 10;   sizeof(n) = void Func ( char str100) sizeof( str ) = void *p = malloc( 100 );sizeof ( p ) =  

16、60;A. 5  4  4  100  100 B. 5  4  4  4   4 C. 6  4  4  100  100 D. 6  4  4  4  4正确答案:D15. 下列关于相对路径和绝对

17、路径的说法错误的是? A. 相对路径就是从当前所在目录出发的一种目录描述方式 B. 绝对路径就是从根目录出发的一种目录描述形式 C. Unix系统中,绝对路径都是以/开始的 D. .和.只能用于相对路径中正确答案:D16. 以下哪一个不是栈的基本运算? A. 删除栈顶元素 B. 删除栈底元素 C. 判断栈是否为空 D. 将栈置为空栈正确答案:B17. C语言中,下列随机数的实现代码中,哪个是正确的? A.srand(time(0);int ran = ra

18、nd(); B.rand(time(0);int ran  srand(); C.srand(0);int ran = rand(); D.srand(0);int ran = rand(time(0);正确答案:A18. 以下代码int a2;scanf ("%d%d", &a0, &a1);printf ("%dn",(a0>a1)?a0:a1);的功能是? A. 打印输入的两个整数的大值 B. 打印输入的两个整数的小值 C. 打印输入的两个整数的均值

19、0;D. 打印输入的两个整数的差值正确答案:A19. 求最大值的宏函数最佳定义代码为: A. #define MAX(x, y)  (x>y?x:y) B. #define MAX(x, y)  (x)>(y)?(x):(y) C. #define MAX(x, y)  (x <y?x:y) D. #define MAX(x, y)  (x)<(y)?(x):(y)正确答案:B20.typedef st

20、ruct Part    char c;    int id;    double d;    char name; Part;int main()    printf(“%dn”,sizeof(Part);在考虑结构的对齐和补齐的前提下,打印的结果应该是: A. 14 B. 16 C. 20 D. 24正确答案:C21. 在C语言中,已知int arr5 = 1,2,3,4,5;不能取到元素2的表示方式是?

21、0;A. arr1 B. *(arr+1) C. 1arr D. *(arr+4)正确答案:D22. 在C语言中,下面关于数组的声明语句中,编译能通过的是? A. int arr; B. int arr = ; C. int arr; D.int arr5;arr = 1,2,3,4,5;正确答案:B23. 以下代码意在产生10个1到100之间的随机数,并将其按从小到大的顺序打印:int a100 = 0, i, j;(空白处)for (i = 0; i < 100; i+)   

22、0;for (j = 0; j < ai; j+)        printf ("%dn", i + 1);其中空白处可以填入的代码是? A. for (i = 0; i < 100; i+)    arand () % 100+; B. for (i = 0; i < 10; i+)    arand () % 10+; C. for (i = 0; i <

23、100; i+)    arand () % 10+; D. for (i = 0; i < 10; i+)    arand () % 100+;正确答案:D24.C语言中,以下程序的输出结果为?int a = 10;printf(“%dn”,sizeof( (a>5)?4:8.0 ) ); A. 1 B. 2 C. 4 D. 8正确答案:D 25.以下代码int main (void) char a = "456789"

24、 char b = "123" strcpy (a, b); printf ("%s %sn", b, a); return 0;的输出是? A. 123789 123 B. 123 123 C. 456789 123 D. 段错误正确答案:B26.srand(time(0);int ran = rand()%13;printf("%dn",ran);请问ran的值应该是: A. 1到13的随机数 B. 0到12的随机数 C. int范

25、围之内的随机数 D. 每次运行都一样的数,但值不一定正确答案:B 27. 以下代码 printf ("%dn", 5.01); 的输出是? A. 一个很大的数 B. 不确定的数 C. 5.01 D. 5正确答案:A 28.允许下面的程序,则以下输出正确的是:void fun( int  *n)while(*n)-);printf(“%d”,+(*n);int main()int a = 10;fun(&a);return 0; A. 1&

26、#160;B. 0 C. 10 D. 程序不正确正确答案:B29.在C语言中,经常用到字符串的连接,已有代码如下:char *s1 = “abcd”;char *s2 = “1234”;如何实现把s1和s2连接起来? A. strcat(st1,str2); B. st1=st1+st2; C.char st350 =0;strcpy(st3,st1);strcpy(st3,st2); D.char st350 =0;strcpy(st3,st1);strcat(st3,st2);正确答案:D30. 完全数,亦称完美数或完备

27、数,是一些特殊的自然数,其全部真因数(即除自身以外的约数)之和等于其自身。以下代码意在打印给定范围内的完全数:int min, max;scanf ("%d%d", &min, &max);for (int i = min; i <= max; i+) (空白处)其中空白处可以填入的代码是? A. int sum = 0;for (int j = 1; j <= i / 2; j+)    if (i % j = 0)      

28、0; sum += j;if (sum = i)    printf ("%dn", i); B. int sum = 0;for (int j = 1; j < i / 2; j+)    if (i % j = 0)        sum += j;if (sum = i)    printf ("%dn", i); 

29、C. int sum = 0;for (int j = 1; j <= i / 2; j+)    if (i % j != 0)        sum += j;if (sum = i)    printf ("%dn", i); D. int sum = 0;for (int j = 1; j <= i / 2; j+)    if (i % j =

30、0)        sum += j;if (sum != i)    printf ("%dn", i);正确答案:A31.下列属于合法C标识符的是 A. 3d B.double C.a3 D. Int正确答案:D 32. 以下代码char ca8;void foo (char ca16)     printf ("%un",

31、 sizeof (ca);int main (void)     char ca32;    foo (ca);    return 0;的输出是? A. 4 B. 8 C. 16 D. 32正确答案:A33. 以下代码int sum (int a)     static int b = 3;    int c = 0;   &

32、#160;b += 2;    c += 1;    return a + b + c;int main (void)     int a = 2;    for (int i = 0; i < 5; i+)        printf ("%d ", sum (a);    printf (

33、"n");    return 0;的输出是? A. 8 8 8 8 8 B. 8 9 10 11 12 C. 8 10 12 14 16 D. 8 11 14 17 20正确答案:C34.下列属于合法C标识符的是 A.3d B.double C.a3 D.Int正确答案:D35.C语言中,以下程序的输出结果为:int i = 1;int s = i+ + +i;printf(“%dn”,s); A. 2 B. 3 

34、C. 4 D. 5正确答案:C36.阅读如下代码,并完成下面5题。typedef int T;struct NodeT data;Node* left;Node* right;Node(const T& d)     :data(d),left(),right();class TreeNode* root;/指向根结点的指针int sz;/结点个数typedef Node* tree;/树类型 void f1(Node* pn, tree& t)     if

35、(pn=NULL) return;     if(t=NULL) t = pn; return;      if(pn->data>t->data)         insert(pn, t->right);     else insert(pn, t->left); void f2(tree& t) 

36、0;   if(t=NULL) return;     travel(t->left);     cout << t->data << ' '     travel(t->right);void f3(tree& t)     if(t=NULL) return;   &#

37、160; clear(t->left);     clear(t->right);     delete t;       t = NULL;int f4(tree& t)     if(t=NULL) return 0;     int lh = high(t->left); &#

38、160;   int rh = high(t->right);     return (lh>rh?lh:rh)+1;      Node*& f5(tree& t, const T& d)     if(t=NULL) return t;     if(d=t->data) return t;  

39、;   if(d>t->data)         return find(t->right, d);     return find(t->left, d);        (1). 函数f1的功能是? A. 释放一棵树 B. 从树中查找指定的元素是否存在 C.&

40、#160;打印一棵树 D. 将结点插入到树中正确答案:D(2). 函数f2的功能是? A. 打印一棵树 B. 将结点插入到树中 C. 释放一棵树 D. 从树中查找指定的元素是否存在正确答案:A(3). 函数f3的功能是? A. 计算一棵树的层数 B. 从树中查找指定的元素是否存在 C. 释放一棵树 D. 将结点插入到树中正确答案:C(4). 函数f4的功能是? A. 

41、将结点插入到树中 B. 计算一棵树的层数 C. 释放一棵树 D. 从树中查找指定的元素是否存在正确答案:B(5). 函数f5的功能是? A. 计算一棵树的层数 B. 从树中查找指定的元素是否存在 C. 释放一棵树 D. 将结点插入到树中正确答案:B37. 阅读如下随机发牌代码,填写空白处:    int flag413 = 0;    int i,j,num;  &#

42、160; char huase = 'S','H','D','C'/Spade 黑桃, Heart红心, Diamond 方块, Club梅花    char dian = 'A','2','3','4','5','6','7',        '8','9','X',

43、9;J','Q','K'    printf("请输入牌的数量:n");    scanf("%d",&num);         空白1      /设置随机算法的种子    for(i=0;i<num;i+)      

44、空白2      /分别随机取得花色和点数        if(flaghd)        空白3      /如果重复,取消本次操作            continue;    else  &

45、#160;     空白4      /标识这张牌已经发过了            if(diand='X')    printf("%c10 ",huaseh);    else         空白5 

46、;     /打印非10的牌          printf("n"); return 0;(1). 其中,空白1可以填入的代码是: A. srand(time(0); B. srand(0); C. rand(time(0); D. rand(0);正确答案:A(2). 其中,空白2可以填入的代码是: A. int d = r

47、and()%4;int h = rand()%13; B. int h = rand()%4;int d = rand()%13; C. int h = srand()%4;int d = srand()%13; D. int d = srand()%4;int h = srand()%13;正确答案:B(3). 其中,空白3可以填入的代码是: A. i-1; B. i+1; C. i+; D. i-;正确答案:D(4). 其中,空白4可以填入的代码是: A. flaghd = 0; 

48、B. flaghd = 1; C. flagdh = 0; D. flagdh = 1;正确答案:B(5). 其中,空白5可以填入的代码是: A. printf("%c%c ",huaseh,diand); B. printf("%c10 ",huaseh); C. printf("%s%s ",huaseh,diand); D. printf("%s%c ",huaseh,diand);正确答案:A38.实现一个函数,将参数字符串中的空格全部替换为“%20”。参数psz为字符串缓冲区地址,cch为该缓冲区所能容纳的最大字符数(含空字符)。阅读代码,完成后面五题。int repblank (char* psz, size_t cch)   

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论