2018-2019学年第二学期期末
………………………………………………………………………………………………………………………………………线…………………………………………….
学院:                      年级:         姓名:         学号:               
……………………………....密………………………………………...…………………………………………………………线………………..………………………….
中国矿业大学(北京)
《C语言与程序设计》试卷( B 卷)
                                           
得分:_____     
题 号
得 分
阅卷人
一、选择题(每题1分,共30分)(要求将答案写入下表)
1-5
6-10
11-15
16-20
21-25
26-30
一、选择题(1-10每题1分,11-30每题1.5分,共40分)
1. 下列选项中,可以作为用户标识符的是
A) int    B) 8_cat    C) _a_0  D) a+b
2. 以下定义语句,有错误的是:
A) char a=x;      B) char a=\0;      C) char a=mn    D) char a=9;
3. 设有定义:int x=2; 以下表达式中值不为6的是:
A) x *= x+1        B) x++, 2*x        C) x *= (1+x)      D) 2*x, x += 2
4. 有以下定义:int  a; long  b; double  x, y; 则以下选项中正确的表达式是:
A) a%(int)(x-y)
B) a = x!=y
C) (a*y)%b
D) y = x+y = x
5. 以下选项中能表示一个合法常量的是:
  A) 整数:1,200
B) 实数:-3.5e2.0
C) 字符斜杠'\'
D) 字符串:"\007"
6. 以下是while语句的一般形式:
while(表达式) 语句
其中关于“表达式”的说明正确的是:
A) 必须是逻辑表达式            B) 必须是关系表达式
C) 必须是逻辑表达式或关系表达式 D) 可以是任意合法的表达式
7. 若用数组名作为函数调用的实参,则传递给形参的是:
A) 数组的首地址          B) 数组的第一个元素的值
C) 数组中全部元素的值       D) 数组元素的个数
8. 在定义二维数组int a[2][3];之后,对a的正确引用是:
A) a[2][4]      B) a[2][0]      C) a[0][0]      D) a[0,0]
9. 下列语句中正确的是:
A) char *str;  str = CUMTB;          B) char str[20];  str = CUMTB;   
C) char *str;  str = {CUMTB};    D) char str[20];   str = {CUMTB};
10. 设有定义 int a[10], *p=a;  以下能够代表数组元素a[4]的是:
A) a+4    B) *(p+4)       C) *a+4    D) *p + 4
11. 有如下程序
#include <stdio.h>
void main()
{    char c1, c2;
    c1 = 'a' + '6' - '2';
    c2 = 'a' + '6' - '3';
    printf("%c,%d\n", c1, c2);
}
已知字母a的ASCII码是97,则程序运行后的输出结果是:
A) e,100    B) d,101      C) e, d      D)无确定输出结果
12. 表达式a += a -= a = 9的值是:
A) 9      B) -9        C) 18        D) 0
13. 有以下程序
#include<stdio.h>
void main()
int  a=1, b=0;
if(!a) b++;
else if(a = = 0)
if(a) b += 2;
else b+=3;
  printf("%d\n", b);
}
程序运行后的输出结果是:
A) 0  B) 1  C) 2  D) 3
14. 有以下程序
#include <stdio.h>
void main()
int a=1, b=2;
while(a<6) {  b += a;  a += 2; b %= 10;}
  printf(%d,%d\n, a, b);
}
程序运行后的输出结果是:
A) 5,11   B) 7,1  C) 7,11  D) 6,1
15. 有以下程序
#include<stdio.h>
  void main()
{
char s[] = abcedf";
printf(%s,%c\n”, s+2, *s+2);
    }
程序运行后的输出结果是
A) cedf, cedf      B) cedf, c     C) cedf, 字符c的ASCII码值  D) 出错
16. 有以下程序
  #include<stdio.h>
  void main()
int y=50;
  while(y--);          /*循环体为空*/
  printf(y=%d\n”, y);
}
程序执行后的输出结果是:
ruby 字符串转数组
A) y=0  B) y= -1  C) y=1  D)while构成无限循环
17. 有以下程序
  #include<stdio.h>
#include<string.h>
void main()
char s[10]=”STRING”;
  s[0]=0;
s[1]= '\0';
s[2]= '0';
printf(%%d\n”, sizeof(s), strlen(s));
}
程序运行后的输出结果是
A) 6  1  B) 7  0  C) 6  3  D) 10  0
18. 以下程序段完全正确的是
A) int *p;
scanf("%d", &p);
B) int *p;
scanf(“%d”, p);
C) int k, *p=&k;
scanf("%d", p);
D) int k, *p;
*p= &k;
scanf(“%d”, p);
19. 下列定义数组的语句中,正确的是
  A) int N=10;
 int a[N]; 
B) #define N 10 
int  a[N];     
C) int  a[010];
D) int a[];
20. 有以下程序
  #includestdioh>
  void  f(int *p);
  void main()
  {  int  a[5] = {1, 2, 3, 4, 5}, *r=a;
f( r );
printf(“%d\n”, *r);
  }
  void f(int *p)
{    p=p+3;
printf(“%d,*p);
}
程序运行后的输出结果是
A) 1,4  B) 4,4  C) 3,1  D) 4,1
21. 若有以下语句
  typedef struct my_type
  {  int g;
char h;} TS;
以下叙述中正确的是
A) 可用my_type定义结构体变量
B) 可用TS定义结构体变量
C) my_type是struct类型的变量
D) TS是struct my_type类型的变量
22. 数学上的式子 1≤x≤10怎么用C语言的表达式来表示:
A) 1≤x≤10    B) 1<=x<=10    C)x>=1 && x<=10     D) 以上都不对
23. 有以下程序
#include <stdio.h>
#define f(x) x*x
void main()
{    int a=5, s, t;
    s=f(a+1);
    t=f((a+1));
    printf("%d,%d\n", s, t);
}
程序运行结果是:
A) 11,11    B) 36,36    C) 36,11    D)11,36
24. 有如下程序
#include <stdio.h>
void main()
{    void func(int *p, int *q);
    int m = 1, n = 2, *r = &m;
    func(r, &n);
    printf("%d,%d\n", m, n);
}
void func(int *p, int *q)
{    p = p+1;
    *q = *q + 1;
}
程序运行结果为:
A) 1, 3      B)2,3      C) 1,4      D) 1,2
25. 有如下程序
#include <stdio.h>
void main()
{    int i, j;
    for(i=0; i<3; i++, i++)
        for(j=1; j<4; j++)
            printf("*");
}
则程序运行后的输出结果是:
A) *********    B) ******      C) ***        D)*
26. 若有定义语句int a, b; double x; 则下列选项中没有错误的是

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