2014年大学软件学院高职升本专业课模拟试题-01
    考场号              考生号                  姓名         
第一部分 C语言部分 100分
一、单项选择题(共25小题,每题2分,共50分)
以下每小题列出的四个备选答案中只有一个符合题目要求,请将正确答案填入“单项选择题答题表”对应的格中,未填入答题表,错选或多选均不得分。
1. 以下叙述不正确的是
A. 一个C源程序可由一个或多个函数组成    B. 一个C源程序必须包含一个main函数
C. C程序的基本组成单位是函数            D. 在C程序中,注释说明只能位于一条语句的后面
2. 在C语言中,假设所有变量均为整型,则表达式(a=3,b=7,a++,a+b)的值是
A.1O                B.11                C.4                D. 13
3. 在C程序中,有语句“int k=7,x=12;”,则下列表达式的值为3的是
A. x%=k-k%5            B. x%=(k-k%5)        C. x%=(k%=5)        D. (x%=k)-(k%=5)
4. 在C语言中,非法的字符常量是
A. '\t'                B. '\17'            C. "\n"                D. '\xaa'
5. 若有条件表达式(exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是
A. (exp==0)          B. (exp!=0)       C. (exp==1)      D. (exp!=1)
6. 在C语言中,有语句“int a,b; scanf("a=%d b=%d",&a,&b);”,下列输入方法能使a的值为2、b的值为3的是
A. a=2 b=3            B. a=2,b=3            C. 2,3                D. 2 3
7. 若有定义:float x=1.5;int a=1,b=3,c=2;则正确的switch语句是
A. switch(x)                            B. switch((int)x);
{ case 1.0: printf("*\n");                { case 1.0:printf("*\n");
  case 2.0: printf("**\n");                    case 2.0: printf("**\n");
}                                        }
C. switch(a+b)                            D. switch(a+b)
{ case 1: printf("*\n");                { case 1: printf("*\n");
  case 2+1: printf("**\n");    }              case c: printf("**\n");
}                                        }
8. 以下程序段的输出结果是
int a[]={1,2,3,4,5,6},*p;
p=a;
*(p+3)+=2;
printf("%d,%d\n",*p,*(p+3));
A. 0,5                B. 1,5              C. 0,6                D. 1,6
9. C语言中函数返回值的类型由(    )决定的。
A. return语句中的表达式类型            B. 调用该函数的主调函数的类型
C. 调用函数时临时决定                    D. 定义函数时所指定的函数类型
10. 在C语言中,有以下程序段:
    int a=10,b=O;
    do{ b+=2;
        a-=2+b; } while(a>=O);
    程序段中循环体的执行次数是
A.2                B.3                C.4                D. 5、
11. 在C语言中,以下函数定义格式正确的是
      A.double fun(int x,int y)                B.fun(int x,y)
        { z=x+y;                                { int z;
retun z;                                return z;
}                                        }
    C.fun(x,y)                                D.double fun(int x,int y)
      { int x,y;                                {  double z;
        double z;                                  z=x+y;
        z=x+y;                                      return z;
        return z;                                }
    }
12. 以下叙述中正确的是
A. 构成C程序的基本单位是函数              B. 可以在一个函数中定义另一个函数
C. main()函数必须放在其它函数之前        D. 所有被调用函数一定要在调用之前进行定义
13. 在C语言中,以下错误的定义语句是
A. int x[][3]={{0},{1},{1,2,3}};           
B. int x[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};
C. int x[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};
D. int x[][3]={1,2,3,4};
14. 在C语言中,有以下程序段: 
    char str[]="\tab\n\012\\\"";
    printf("%d",strlen(str));
其输出结果是
A.3                                      B. 4               
C.7                                      D.13
15. 能正确表示a和b同时为正或同时为负的表达式是
A. (a>=0||b>=0)&&(a<0||b<0)        B. (a>=0&&b>=0)&&(a<0&&b<0)
C. (a+b>0)&&(a+b<=0)            D. a*b>0
16. 若int i=10;执行下列程序后,变量i的正确结果是
switch(i)
{ case 0:i+=1;
  case 10:i+=1;
  case 11:i+=1;
  default:i+=1;
  }
A. 10                 B.11                 C. 12                 D. 13
17. 设有如下定义:
struct  sk
{ int a;float b; } data, *p;
若有p=&data,则对data中的成员a的正确引用是
A. (*p).data.a      B. (*p).a     C. p->data.a     D. p.data.a
18. 在下面关于指针的说法中,错误的一条是
A. 变量的指针就是变量的地址
B. 可以将一个整型量或任何其他非地址类型的数据赋给一个指针变量
C. 一个指针变量只能指向同一个类型的变量
D. 指针变量中只能存放地址
19. 以下程序运行后的输出结果是
#include <stdio.h>
main()
{ int i=5,j=0;
  do j=j+(--i);
  while(i<2);
  printf("%d\n",j);
}
A. 4                  B. 5                 C. 6                 D. 9
20. C语言规定,程序中各函数之间
A. 既允许直接递归调用也允许间接递归调用    B. 不允许直接递归调用也不允许间接递归调用
C. 允许直接递归调用不允许间接递归调用    D. 不允许直接递归调用允许间接递归调用
21. 在下列叙述中,错误的一条是
A. 全局变量存放在静态存储区中,在程序开始执行时就给全局变量分配存储区,程序执行完才释放
B. 在有参函数中,形参在整个程序一开始执行时便分配内存单元
C. 用数组名作函数实参和形参时,应在主调函数和被调用函数中分别定义数组
D. 在同一个源文件中,全局变量与局部变量同名时,在局部变量的作用范围内,全局变量不起作用
22. 在下列叙述中,正确的一条是
A. puts和gets函数只能输入或输出一个字符串
B. 在C语言中,函数可以递归调用或递归定义
C. 用scanf函数输入数据时可以规定精度,例如scanf("%7.2f",&a);
D. 外部变量只限于本文件中使用
23. 在下列的函数调用中,不正确的是
A. max(a,b);    B. max(3,a+b);        C. max(3,5);    D. int max(a,b);
24. 下列程序的输出结果是
#include <stdio.h>
struct abc
{ int a,b,c; };
main()
{ struct abc s[2]={{1,2,3},{4,5,6}};
  int t;
  t=s[0].a+s[1].b%s[0].c;
  printf("%d\n",t);
}
A. 2                 B. 3                 C. 4                 D. 7
25. C语言中,要求运算数必须是整型的运算符是
A. %                 B. /                 C. <                 D. !
二、填空题(共10题,每题1分,共10分)
请按照试题中对应的标号顺序填写到答题表中
1. 设n=10,i=4,则赋值运算n%=i+1执行后,n的值是         
2. 在C语言中,优先级最低的运算符是           
3. 设char w;int x;float y;double z;,则表达式w*x+z-y的值的类型是         
c语言二维数组转置
4. 设char s[]="hello!";,则数组s有          个元素。
5. 在C语言中,若x为整型变量,则(!x)==(x!=0)的值为         
6. C语言提供的预处理功能主要有三种:          、文件包含和条件编译。
7. 结构化程序的三种结构是顺序结构、选择结构、         
8. 若定义函数时类型缺省,则该函数默认的类型是____________。
9. 设int a=1,b=2,m=2,n=2;,执行表达式(m=a<b)||++n后,n的值是       
10. 定义int i=1;执行语句 while(i++<5);,i的值为       
三、判断题
判断下题是否正确,正确的划√,错误的划×(每题1分,共15分)
(  ) 1. 语句scanf("%5.2f",&a);是非法的。
(  ) 2. break,return 所起的作用是一样的,都是跳出循环。
(  ) 3. C语言中的变量按作用域分为两种:即局部变量和全局变量。
(  ) 4. 运算符的优先级依次为(由高到低):!(非)、关系运算符、算术运算符、&&和||、赋值运算符。
(  ) 5. 包含命令中的文件名可以用双引号括起来,也可以用括号括起来,如:#include "stdio.h"、#include (math.h)。
(  ) 6. 函数的参数不仅可以是整型、实型、字符型等数据,还可以是指针类型。它的作用是将一个变量的地址传送到另一个函数中。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。