电子科技大学《C语言》20秋期末考试[答案]答案
电子科技大学《C语言》20秋期末考试
试卷总分:100 得分:100
一、单选题 (共 35 道试题,共 70 分)
1.若有说明int a[][3]={1,2,3,4,5,6,7};则a数组行数的大小为( )。
A.2
B.3
C.4
D.不确定
2.若调用一个函数,且此函数中没有return语句,则正确的说法是该函数( )。
A.没有返回值
B.返回若干个系统默认值
C.返回一个用户所希望的函数值
D.返回一个不确定的值
3.在“文件包含”预处理语句的使用形式中,当#include后面的文件名用""括起时,寻找被包含文件的方式是
A.直接按照系统设定的标准方式搜索目录
B.先在源程序所在目录搜索,再按照系统设定的标准方式搜索
C.仅仅搜索源程序所在目录
D.仅仅搜索当前目录
4.C语言规定:在一个源程序中,main函数的位置( )。
A.必须在最开始
B.必须在系统调用的库函数的后面
C.可以任意
D.必须在最后
5.以下程序段的作用是( )。 int a[]={4,0,2,3,1},i,j,t; for (i=1;i=0&&t>a[j]) {a[j+1]=a[j];j- -;} a[j+1]=t; }
A.对数组a进行插入排序(升序)
B.对数组a进行插入排序(降序)
C.对数组a进行选择排序(升序)
D.对数组a进行选择排序(降序)
6.以下说法正确的 是( )。
A.x'+5是一个错误的表达式
B.C语言不允许类型的混合运算
C.强制类型转换时,类型说明符必须加括号
D.(int)x+y?和(int)(x+y)是完全等价的表达式
7.以下叙述不正确的是( )。
A.一个C源程序可由一个或多个函数组成
B.一个C源程序必须包含一个main函数
C.C程序的基本组成单位是函数
D.在C程序中,注释说明只能位于一条语句的后面
8.下面函数调用语句含有实参的个数为( )。fun((exp1,exp2),(exp3,exp4,exp5));
A.1
B.2
C.4
D.5
9.C语言提供的预处理功能包括条件编译,其基本形式为( )。 #xxx 标识符 程序段1 #else 程序段2 #endif
A.define或include
B.ifdef或include
C.ifdef或ifndef或define
D.ifdef或ifndef或if
10.以下叙述正确的是( )。
A.在C程序中,main函数必须位于程序的最前面
B.在C程序的每一行只能写一条语句
C.C语言本身没有输入输出语句
D.在对一个C程序进行编译的过程中,可发现注释中的拼写错误
11.以下说法正确的是( )。
A.x'+5是一个错误的表达式
B.C语言不允许类型的混合运算
C.强制类型转换时,类型说明符必须加括号
D.(int)x+y?和(int)(x+y)是完全等价的表达式
12.执行以下语句后a的值为( )。 int a,b,c; a=b=c=1; ++a||++b&&++c;
A.0
B.1
C.2
D.错误
13.与下面程序段等价的是( )。for(n=100;n<=200;n++) {if(n%3==0) continue; printf("%4d",n); }
A.for(n=100;(n%3)&&n<=200;n++) printf("%4d",n);
B.for(n=100;(n%3)||n<=200;n++) printf("%4d",n);
C.for(n=100;n<=200;n++) if(n%3!=0) printf("%4d",n);
D.for(n=100;n<=200;n++) {if(n%3) printf("%4d",n); else continue; break; }
14.已知a=8,b=3,c=4,表达式(a>b&&c>a)||(ab)的值是( )。
A.15
B.12
C.1
D.0
15.以下符合C语言语法的有赋值能力的表达式是( )。
A.d=9+e+f=d+9
B.d=9+e,f=d+9
C.d=9+e,e++,d+9
D.d=9+e++=d+7
16.若有说明a[3][4];则数组a中的各元素( )。
A.可在程序的运行阶段得到初始值0
B.可在程序的编译阶段得到初始值0
C.不能得到确定的初始值
D.可在程序的编译或运行阶段得到初始值
17.以下正确的说法是( )。
A.实参和与其对应的形参占用独立的存储单元
B.实参和与其对应的形参共占用一个存储单元
C.只有当实参和与其对应的形参同名时才共占用一个存储单元
D.形参是虚拟的,不占用存储单元
18.若运行时给变量输入12,则以下程序的运行结果是( )。 main() {int x,y; scanf("%d",&x); y=x>12?x+10:x-12; printf("%d\n",y); }
A.0
B.22
C.12
D.10
19.逻辑运算符两则运算对象的数据类型( )。
A.只能是0或1
B.只能是0或非0正数
C.只能是整型或字符型数据
D.可以是任何类型的数据
20.若用数组名作为函数调用的实参,传递给形参的是( )。
A.数组的首地址
B.数组第一个元素的值
C.数组中全部元素的值
D.数组元素的个数
21.下面有关for循环的正确描述是( )。
A.for循环只能用于循环次数已经确定的情况
B.for循环是先执行循环体语句,后判断表达式
C.在for循环中,不能用break语句跳出循环体
D.for循环的循环体可以包括多条语句,但必须用花括号括起来
22.下面的循环体执行完后,a的值是( )。 for( a=2; a<8; a++) a*=2;
A.9
B.10
C.11
D.12
23.以下叙述中正确的是( )。
A.在程序的一行上可以出现多个有效的预处理命令行
B.使用带参的宏时,参数的类型应与宏定义时的一致
C.宏替换不占用运行时间,只占用编译时间
D.以下定义中C R是称为宏名的标识符 #define C R 045
24.有函数关系如下,能正确表示该关系的程序段是( )。 x y x0 x+1
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;
25.设i,j,k均为int型变量,k初值为0,执行完下面的for循环后,k的值为( )。
A.7
B.8
C.9
D.10
26.以下正确的函数形式是( )。
A.double fun(int x,int y){z=x+y;return z;}
B.double fun(int x,y){int z;return z;}
C.fun(x,y){int x,y;double z; z=x+y; return z;}
D.double fun(int x,int y){double z;z=x+y;return z;}
27.下面描述正确的是( )。
A.两个字符串包含的字符个数相同时,才能比较字符串
B.字符个数多的字符串比字符个数少的字符串大
C.字符串"STOP"与"STOP■"相等
D.字符串"That"小于字符串"The"
28.C语言中转义字符“反斜杠线”的表示方法正确的是( )。
A.\\\
B.”\”
C.’\’
D.\\