二级C语言笔试-336
(总分:100.00,做题时间:90分钟)
一、选择题(总题数:50,分数:60.00)
1.X、Y、2被定义为int型变量,若从键盘给X、Y、Z输入数据,正确的输入语句是______。
(分数:2.00)
 A.INPUT X,Y,Z;
字符串常量的定界符是什么 B.scanf("%d%d%d",&X,&Y,&Z); 
 C.scanf("%d%d%d",X,Y,Z);
&ad("%d%d%d",&X,&Y,&Z);
解析:[评析] C语言中没有输入输出语句,它是通过C语言提供的函数来实现的,本题C中,应为变量地址。
2.以下程序的输出结果是______。
main()
int i,a[10];
for(i=9;i>=0;i-) a[i]=10-i;
printf("%d%d%d",a[2],a[5],a[8]);
(分数:2.00)
 A.258
 B.741
 C.852 
 D.369
解析:[评析] 在本题运行时主要注意的是当i=9时,a[i]=10-9=1;i=8时,a[i]=10-8=2;i=7时,a[i]=10-7=3;……依此类推,直到i=0时,a[i]=10-0=10:此时,i的值已变为-1,判断for的循环条件,不成立,然后输出a[2],a[5],a[8]分x伪8,5,2。
3.设x为int型变量,执行以下语句,x=10;x+=x-=x-x;x的值为______。
(分数:2.00)
 A.10
 B.20 
 C.30
 D.40
解析:[评析] 本题x=10,表达式“x+=x-=x-x;”的求解步骤如下:先进行x-=x-x的运算,相当于)x=x-(x-x)=x=10;再进行x+=x的运算,即x=x+x=20。
4.以下选项中,不能确定赋值的是______。
(分数:2.00)
 A.char s1[10];s1="chest"; 
 B.char s2[]='C','t','e','s','t';
 C.char s3[20]="Chest";
 D.char *s4="Ctest/n"
解析:[评析] C语言中不能将字符串常量直接赋给数组。但在赋初值时可以。
5.以下数组定义中不正确的是______。
(分数:2.00)
 A.int a[2][3];
 B.int b[][3]=0,1,2;
 C.int c[100][100]=0;
 D.int d[3][]=1,2,1,2,3,1,2,3,4; 
解析:[评析] 一维数组的定义方式为:
类型说明符 数组名[常量表达式];
选项A符合此定义形式,正确;C语言中多维数组赋初值时可以部分赋值,也可以不指定除第一维以外的其他维的大小,故选项C正确;另外,如果对全部数组元素都赋初值,则定义数组时对第一维的长度可以不指定,但第二维的长度不能省,所以选项B正确,而选项D是错误的。
6.以下程序的输出结果是______。
#define M(x,y,z) x*y+z
main()
int a=1,b=2,c=3;
printf("%d/n",M(a+b,b+c,c+
(分数:2.00)
 A.);
&nbs
解析:[评析] C语言的宏定义包括不带参数的宏定义与带参数的宏定义。本题为带参数的宏定义,其形式为:
#define宏名(形参表) 字符串
本题的M(a+,b+c,c+a)被字符串a+b*b+c+c+a代替。
7.下列属于C语言语句的是______。
(分数:2.00)
 A.printf("%d/n"a)
 B.#include<stdio.h>
 C.a=b;b=c;c=a; 
 D./*this is a program*/
解析:[评析] 在C语言中,—个完整的C语句必须在语句末尾出现分号,分号是C语句的必要组成部分。本题答案为C。
8.下面的程序执行后,文件test.t中内容是______。
#include<stdio.h>
void fun(char *fname,char *st)
FILE *myf; int i;
myf=fopen(fname,"w");
for(i=0;i<strlen(st);i++)fputc(st[i],myf);
fclose(myf);
main()
fun("test.t","new world");fun("test.t","hello,");
(分数:2.00)
 A.hello, 
&w worldhello
&w world
 D.hello,rld
解析:[评析] C语言中文件有文本文件与二进制文件,对文件的使用前必须先打开,打开方式有只读、写入、读写等方式。
9.以下程序的输出结果是______。
main()
int a[4][4]=1,3,5,2,4,6,3,5,7;
printf("%d%d%d%d/n",a[0][3],a[1][2],a[2][1];a[3][0]);
(分数:2.00)
 A.0650 
 B.1470
 C.5430
 D.输出值不定
解析:[评析] 对未给出初始值的整数数组元素,被默认初始化为零。
10.下面程序的输出结果是______。
#define a 121
const b=12;
enum ca1,a2;
main()
printf("%d,%d,%d",sizeof(
(分数:2.00)
 A.,sizeof(
 B.,sizeof(enum 
 C.);
A) 121,0,4B
解析:[评析] sizeof函数是取变量所占的存储空间的字节数,标识a代表常量121;const b=12;,其中数据类型可以缺省,默认为整型;enum c{a1,a2};定义了—个枚举类型enum c,a1,a2为枚举元素,在C编译时,对枚举元素按常量处理,它们的值按定义顺序依次为0,1。因此它们的字节数均为2,2,2。
11.以下程序的输出结果是______。
#include<stdio.h>
main()
int a=200;
#define a 100
printf("%dd",
(分数:1.00)
 A.;
#
 B.200 200
解析:[评析] #define宏名的有效范围为定义命令之后到本源文件结束,可以在程序中使用#undef命令终止宏定义的作用域。本题由于#undef的作用,使a的作用范围在#define a 100到#undef a之间,故答案为C。
12.以下程序输出正确的是______。
amovep(int *p,int(*
(分数:1.00)
 A.[3],int n)
 
解析:[评析] 本题main函数中定义了指针p和二维数组a,通过函数amovep将数组的值存入指针p所指向的存储单元中,a的各元素分别为:a[0][0]=1,a[0][1]=3,a[0][2]=5,a[1][0]=2,a[1][1]=4,a[1][2]=6,a[2][0]=0,a[2][1]=0,a[2][2]=0。通过mailoc()函数给指针分配内存空间,free()函数用于释放指针变量所用内存空间。在主函数中通过amovep(p,a,3)调用
函数amovep,使得实参p与形参p,实参数组a与形参中指向数组的指针变量共用同一存储空间。最后输出p[2],p[5]为56。
13.视图设计一般有3种设计次序,下列不属于视图设计的是______。
(分数:1.00)
 A.自顶向下
 B.由外向内 
 C.由内向外
 D.自底向上
解析:[评析] 视图设计一般有3种设计次序,它们分别是自顶向下、自底向上和由内向外,它们又为视图设计提供了具体的操作方法,设计者可根据实际隋况灵活掌握,可以单独使用也可混合使用。
14.在下列几种排序方法中,要求内存量最大的是______。
(分数:1.00)
 A.插入排序
 B.选择排序
 C.快速排序
 D.归并排序 
解析:[评析] 快速排序的基本思想是,通过一趟排序将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,再分别对这两部分记录继续进行排序,以达到整个序列有序:插入排序的基本操作是指将无序序列中的各元素依次插入到已经有序的线性表中,从而得到一个新的序列;选择排序的基本思想是:扫描整个线性表,从中选出最小的元素,将它交换到表的最前面(这是它应有的位置),然后对剩下的子表采用同样的方法,直到表空为止;归并排序是将两个或两个以上的有序表组合成—个新的有序表。
15.下列叙述中正确的是______。
(分数:1.00)
 A.C程序中注释部分可以出现在程序中任何合适的地方 
 B.花括号""""和""""只能作为函数体的定界符
 C.构成C程序的基本单位是函数,所有函数名都可以由用户命名
 D.分号是C语句之间的分隔符,不是语句的—部分
解析:[评析] C程序中注释部分用“/*”和“*/”括起来,可以出现在程序中任何合适的地方;花括号“{”和“}”不仅可作为函数体的定界符,也可作为复合语句的定界符;构成C程序的基本单位是函数:—个语句必须在最后出现分号,分号是 C语句中不可缺少的部分。
16.SQL语言又称为______。
(分数:1.00)
 A.结构化定义语言
 B.结构化控制语言
 C.结构化查询语言 
 D.结构化操纵语言
解析:[评析] 结构化查询语言(Structured Query Language,简称SQL)是集数据定义、数据操纵和数据控制功能于一体的数据库语言。
17.下列不属于软件调试技术的是______。
(分数:1.00)
 A.强行排错法
 B.集成测试法 
 C.回溯法
 D.原因排除法
解析:[评析] 调试的关键在于推断程序内部的错误位置及原因。主要的调试方法有强行排错法、回溯法和原因排除法。
18.设x,y均为int型变量,且x=10,y=3,则printf("%d,%d/n",x-,-y);语句的输出结果是______。
(分数:1.00)
 A.10,3
 B.9,3
 C.9,2
 D.10,2 
解析:[评析] C语言的自减运算符有前置与后置两种形式。当自减运算符前置时,变量先自减一后再参与表达式运算;而后置时,变量先参与表达式运算后再自身减一。
19.在计算机中,算法是指______。
(分数:1.00)
 A.查询方法
 B.加工方法
 C.解题方案的准确而完整的描述 
 D.排序方法
解析:[评析] 计算机算法是指解题方案的准确而完整的描述,它有以下几个基本特征:可行性、确定性、有穷性和拥有足够的情报。

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