一、单项选择题(本大题共20小题,每小题2分,共40分。在每小题给出的四个备选项中,选出一个正确的答案,并将所选项前的字母填写在答题纸的相应位置上。)
- 以下不是 C 语言的特点的是B
A. C 简洁,紧凑
B.不能够编制出功能复杂的程序
C. C语言可以直接对硬件进行操作
D. 语言 C 语言移植性好
- 不能进行++和——运算的数据类型是(D)
A. int 型
B. long 型
C. double 型
D. 共用体型
3、若a为int类型,且其值为3,则执行完表达式a±a=ata后, a的值是©
A. 0
B. 8
C. -12
D. 10
- 若给定条件表达式(m)?(a++):(a–),则其中表达式 m(B)
A. 和(m=0)等价
B. 和(m!=0)等价
C. 和(m=1)等价
D. 和(m!=1)等价
5,下列运算符中优先级最高的是©
A. <
B. 十
C. %
D.!=
6,有如下程序,输入数据: 12345后(表示回车), x的值是(B)
#include<stdio.h>
void main0{
int x;
scanf(“%3d”,&x);
}
A. 12345
B. 123
C. 45
D. 345
7,打印语句printf"cOMPUTERlbage");在屏幕上正确的输出形式是(D)
A. cOMPUTERage
B. OMPUTERage
C. COMPUTEage
D. cOMPUTEage
8,若有: inti=10; ,则执行下列程序段后,变量i的值为(B)。
switch(i)
{
case 9: i++; break;
case 10: i++; break;
case 11: i++; break;
default: i++;
}
A. 10
B. 11
C. 12
D. 13
9.有一函数关系如下:
下列程序能够正确表示上述关系的是(C)
A. y=x+1;
if (x>=0)
if (x=0) y=x;
else y=x-1;
B. y=x-1;
if (x!=0)
if (x>0) y=x+1;
else y=x;
C. if(x<=0)
if (x<0) y-x-1;
else y=x;
else y=x+1;
D. y=x;
if (x<=0)
if (x<0) y=x-1;
else y=x+1;
10,在循环体中终止本次循环使用的语句是(B)
A. break语句
B. continue 语句
C. end 语句
D. close语句
11.下面有关for循环的正确描述是(D)
A. for 循环只能用于循环次数已经确定的情况
B. for循环是先执行循环体语句,后判定表达式
C.在for循环中,不能用break语句跳出循环体
D. for 循环体语句中,可以包含多条语句,但要用花括号括起来
- 以下程序的输出结果是(C)
#include <stdio.h>
void main(){ int num;
for( num=0;num<=2;num++)
printf(“%d”,num);
}
A. 1
B. 123
C. 012
D. 0123
13.在下列选项中,不正确的表达式是©
A. a=(b>c)
B. c-, ++b, a+=1
C. a=c+b>n-m=k
D. p++
- 若k 为整型,以下 while 循环(B)次
nt k=10; while (k=1) k=k-1
;A. 10次
B. 无限循环
c.一次不执行
D. 执行一次
15.下列程序的输出结果是(B)
#include <stdio.h>
struct abc {
int a, b, c
:}; void main()
{
struct abc s[2]={
{1,2,3},{4,5,6}};
int t;
t=s[0].a+s[1].b;
printf(“%dn”,t);
}
A. 5
B. 6
C. 7
D. 8
16,以下对一维整形数组a的正确说明是(D)
A. int a(10);
B. intn=10,a[n];
C. itn;seanf(“%d”,&n);
ra[n];
D. #define N 10
int a[N];
17.岩二维数组 a 有m列,则在 a[i]i]前面的元素个数为(B)
A jm+i
B. imtj
C. im+j-1
D. im+j+1
18.下面程序的运行结果是D
#include <stdio.h>
int main() {
char a[] = "programming", b[] = "language";
char *pl, *p2;
for (int i = 0; i < 7; i++) {
if (*(pl + i) == *(p2 + i)) {
printf("%c", *(pl + i));
}
}
return 0;
}
- 在 32 位机中,如果有 char *ssl=“0123456789”,则,strlen (ssl)的值是(B)
A. 4
B. 10
C. 11
D. 40
20,设int占2字节,字符0的ASCII码的十进制数为48,且数组的第0个元素在低位,则以下程序的输出结果是(B)
#include <stdio.h>
union myUnion {
int i[2];
long k;
char c[4];
};
int main() {
union myUnion r, *s = &r;
s->i[0] = 0x39;
s->i[1] = 0x38;
printf("%c\n", s->c[0]);
return 0;
}
A. 39
B. 9
C. 38
D. 8
二、程序阅读题(本大题共5小题,每小题6分,共30分。请将程序的运行结果填写在答题纸的相应位置上。)
1_____d=20___
#include<stdio.h>
int