21. 若有以下程序段:int a[]={4,0,2,3,1},i,j,t; for(i=1;i<5;i++) {t=a[i];j=i-1; while(j>=0&&t>a[j]) {a[j+1]=a[j];j- -;} a[j+1]=t;} ...... 则该程序段的功能是( )
A. 对数组a进行插入排序(升序)
B. 对数组a进行插入排序(降序)
C. 对数组a进行选择排序(升序)
D. 对数组a进行选择排序(降序)
满分:2 分
22. 在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是( )
A. extern
B. register
C. auto
D. static
满分:2 分
23. 以下正确的描述是( )
A. C语言的预处理功能是指完成宏替换和包含文件的调用
B. 预处理指令只能位于C源程序文件的首部
C. 凡是C源程序中行首以"#"标识的控制行都是预处理指令
D. C语言的编译预处理就是对源程序进行初步的语法检查
满分:2 分
24. sizeof(float)是( )
A. 一个整型表达式
B. 一种函数调用
C. 一个不合法的表达式
D. 一个不合法的表达式
满分:2 分
25. 有定义:int a[5][4], (*p)[4]=a;,数组a的首地址为100,*(p+2)+3等于( )
A. 116
B. 118
C. 120
D. 122
满分:2 分
26. 以下不正确的语句为( )
A. if(x>y);
B. if (x= y) &&(x! = 0) x+= y;
C. if(x!= y)scanf("%d",&x); else scanf("%d",&y);
D. if(x< y){x++ ;y++;}
满分:2 分
27. 有字符数组a[80]和b[80],则正确的输出形式是( )
A. puts(a,b);
B. printf("%s,%s",a[],b[]);
C. putchar(a,b);
D. puts(a),puts(b);
满分:2 分
28. 设变量a b c d 和y都已经正确定义并赋值,若有以下if 语句: if(a<b) if(c==d) y=0; else y=1; 给语句所表示的含义是( )
A. y=0 a<b且c=d; y=1 a>=b
B. y=0 a<b且c=d; y=1 a>=b 且 c!=d
C. y=0 a<b且c=d; y=1 a<b 且 c!=d
D. y=0 a<b且c=d; y=1 c!=d
满分:2 分
29. 当把以下四个表达式用做if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是( )
A. K%2
B. K%2==1
C. (K%2)!=0
D. !K%2==1
满分:2 分
30. 以下正确的叙述是( )
A. C语言允许main函数带形参,且形参个数和形参名均可由用户指定
B. C语言允许main函数带形参,形参名只能是argc和argv
C. 当main函数带有形参时,传给形参的值只能从命令行中得到
D. 若有说明:main(int argc,char *argv),则形参argc的值必须大于1