一、单项选择题(本大题共20小题,每小题2分,共40分。在每小题给出的四个备选项中选出一个正确的答案,并将所选项前的字母填写在答题纸的相应位置上。)
1.设n=3;则表达式n++的结果是(B)
A. 2
B. 3
C. 4
D. 5
2.以下能正确定义且赋初值的语句是(B)
A. char a=b=‘a’,
B. char c=65;
C. char a,b=a;
D. char c=“a”;
3.以下选项中可作为C语言合法常量的是(A)。
A. 0ΧΑ
B. 080
C. 8el.0D. "
则以下引用方法不正确的是(D)
A. work.no
B. (*p).no
C. p->no
D. work->no
5.以下对二维数组进行正确初始化的是(B)
A. int a[2][3]={ {1,2},{3,4},{5,6}};
B. int a[][3]={1,2,3,4,5.6};
C.int a[2][]={1,2,3,4,5,6};
D.int a[2][0={ {1,2%,{3,4}};
A.数组的长度
B. 数组的首地址
C.该元素的地址
D. 该元素中的值
7,已知有变量定义: int a;char c;用scanf(“%d%c”,&a,&c);语句给a和c输入数据,使30存入a.字符b存入c,则正确的输入是(D)
A. 30’b’<回车>
B. 30 b<回车>
C. 30<回车>b<回车>
D. 30b<回车>>
A. This is a book!
B. This is
C. This i
D.> .格式描述不正确,没有确定输出
A不同的函数中可以使用相同的变量名
B.形式參数是局部变量
C.一个函数内部定义的变量只能在本函数范围内有效
D;在一个函数内部的复合语句中定义的变量可以在本函数范围内有效
10,为了判断两个字符串s1和s2不相等,应当使用(C)
A. if(sls2)
B. if(sl=s2)
C. if(strcmp(s1,s2))
D. if(strcmp(s1.s2)-0)
A. 10,01
B. 02,12
C. 102,10
D. 02,01
12,以下能正确定义数组并正确赋初值的语句是(D)
A. int n=5;char a[n][n];
B. chara[1][2]={ {“a”),{“b”}};
C. char c[2]={“ab”};
D. char a=“abcde”;
A. return 语句中的表达式类型所决定
B.在定义该函数时所指定的函数类型所决定
C.调用该函数时系统临时决定
D.调用该函数时的主调函数类型所决定
14,下列关于#include命令的叙述中,错误的是(C)
A. #include命令中,文件名可以用双引号或尖括号括起来
B.一个被包含文件中又可以包含另一个被包含文件
c. 一个#include命令中可以指定多个被包含文件
D.一个#include命令中只能指定一个被包含文件
15.在定义 int a[10];之后,对a 的元素引用正确的是(D)
A. a[10]
B. a[7.3]
C. a(6)
D. a[20-12]
16,若有定义inta=8,b,*p=&a;则下列语句中使b不为8的语句是(D)
A. b=*&a;
C. b=a;
B. b=*p;
D. b=*a;
A. 10
B. 11
C. 7
D. 8
18,在while (!x)语句中的x与下面条件表达式等价的是(A)
A. x0
B.x1
C. x!=1
D. x!=0
A.全局变量的作用域一定比局部变量的作用域范围大
B.静态(static)类别变量的生存期贯穿于整个程序的运行期间
c.函数的形参都属于全局变量
D.未在定义语句中赋初值的auto变量和static变量的初值都是随机值
A. 4
B. 6
c. 12
D. 16
二、程序阅读题(本大题共5小题,每小题6分,共30分。请将程序的运行结果填写的相应位置上。)
1___5678____
#include <stdio.h>
void sub(int s[], int y) {
static int t = 3;
y = s[t];
t--;
}
int main() {
int a[] = {
5, 6, 7, 8};
int i, x = 0;
for (i = 0; i < 4; i++) {
sub(a, x);
}
for (i = 0; i < 4; i++) {
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
2____0 1 2 3 _____
#include <stdio.h>
void fun(int b[4]) {
int j;
for (j = 0