A. 1和2
B. 2和3
C. 7和2
D. 7和8
17. 将一个整数10002存到磁盘上,以ASCII码形式存储和以二进制形式存储,占用的字节数分别是 ( )
A. 2和2
B. 2和5
C. 5和2
D. 5和5
18. 在文件使用方式中,字符串″rb″表示 ( )
A. 打开一个已存在的二进制文件,只能读取数据
B. 打开一个文本文件,只能写入数据
C. 打开一个已存在的文本文件,只能读取数据
D. 打开一个二进制文件,只能写入数据
19. 执行下列程序
# define F(y) 15>>y
# define PRINT(a) printf(″﹪d″,a)
main()
{
PRINT(F(2));
}
后输出的结果是 ( )
A. 3
B. 3.5
C. 14
D. 7.5
20. main()函数可以带两个形参,一般分为argc和argv,其中argv可以定义为( )
A. int argv;
B. char * argv[];
C. char argv[];
D. char ** argv[];
第二部分 非选择题(80分)
二、填空题 (本大题共10小题,每小题2分,共20分)
21. 初始化值是0.618的双精度变量a的定义形式为_____________________。
22. 表达式 !10! = 1的值是____________________。
23. “20
24. 表达式a = 1,a + 1,a + + 的值是___________________。
25. 设int i = 5;则循环语句while (i > = 1) i - -;执行后,i的值为_______________。
26. 被调函数在执行结束时,这个函数中定义的_______________类型的变量不被释放。
27. 设
struct student
{
int no;
char name[12];
float score[3];
} sl,* p = &sl;
用指针法给sl的成员no赋值1234的语句是___________________。
28. C语言程序中对文本文件的存取是以________________为单位进行的。
29. 设char string[] =″This_is_a_book!″;则数组的长度应是________________。
30. 设int a[2][3] = {{2},{3}};则数组元素_____________________的值为3。
三、程序分析题 (本大题共5小题,每小题5分,共25分)
阅读下列程序,将输出结果写到各题右侧的空白处
31. int a = 200;
main()
{int i;
for(i = 1;i< = 5;i + +)
{a + + ;
printf(″﹪d,″,a);
s()
}
{
s()
{static int a = 20;
a + + ;
printf(″﹪d \ n″,a);
}
32. # include ″stdio.h″
main()
{char c;
c = getchar();
if((c> =′a′&&c< =′z′) ‖c> =′X′&&c< =′Z′)c = c - 23;
printf(″﹪c \ n″,c);
}
设从键盘上输入Next ↙
33. # define N 7
main()
{int i,j,temp,a[N]={1,2,3,4,5,6,7};
for(i = 0;i
{j = N - 1 - i;
temp = a[i];a[i]=a[j];a[j]=temp;
}
for(i = 0;i
}
34. struct porb
{char * name;
int count;
}x[]={″Li ning″,19,″Lang ping″,21,″Zhu jian hua″,20};
main()
{int i;
for(i = 0;i<3;i + + )
printf(″﹪s: ﹪d \ n″,x[i].name,x[i].count);
}
35. main()
{union
{short a;char ch;
}M;
M.a = 100;M.ch =′A′;
printf(″﹪d,﹪d,﹪c \n″,sizeof(M),M.a,M.ch);
}
四、程序填充题 (本大题共3小题,每小题6分,共18分)
给出下列程序,将横线处缺少的部分补上,使其能正确运行。
36. 以下程序的功能是用选择法对数组a中的整数由小到大进行排序。
void sort(int b[],int n)
{ int i,j,t;
for(i = 0;i
for(______;j
if(b[i]_____b[j])
{t = b[i];_____________;b[j]=t;}