电子科技大学《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.\\
29.下面程序有错误的行是(行前数字表示行号)( )。 1 main() 2 { 3 float a[10]={0.0}; 4 int i; 5 for(i=0;i<3;i++) scanf(“%d”,&a[i]); 6 for(i=1;i<10;i++) a[0]=a[0]+a[i]; 7 printf(“%f\n”,a[0]); 8 }
A.没有错误
B.第3行有错误
C.第5行有错误
D.第7行有错误
30.设x、y均为float型变量,则以下不合法的赋值语句为( )。
A.++x;
B.y=(x%2)/10;
C.x*=y+8
D.x=y=0
31.凡是函数中未指定存储类别的局部变量,其隐含的存储类别为( )。
A.auto
B.static
C.extern
D.register
32.判断字符串s1是否大于字符串s2,应当使用( )。
A.if (s1>s2)
B.if (strcmp(s1,s2)
C.if(strcmp(s2,s1)>0)
D.if(strcmp(s1,s2)>0)
33.以下描述正确的是( )。
A.goto语句只能用于退出多层循环
B.switch语句中不能出现continue语句
C.在循环中break语句不能独立出现只能用
D.continue语句来中止本次循环
34.以下程序段( )。 x=-1; do x=x*x; while(!x);
A.是死循环
B.循环执行两次
C.循环执行一次
D.有语法错误
35.已知ch是字符型变量,下面不正确的赋值语句是( )。
A.ch=’a+b’;
B.ch=’\0′;
C.ch=’7’+’9′;
D.ch=5+9
二、判断题 (共 15 道试题,共 30 分)
36.局部变量如果没有指定初值,则其初值为0( )
37.在对数组全部元素赋初值时,不可以省略行数,但能省略列数。( )
38.在C语言中能一次引用整个数组。( )
39.函数的实参可以是常量,变量或表达式。( )
40.在多层循环中, 一个break语句只向外跳一层。( )
41.描述算法可以用自然语言、传统流程图、N-S流程图来描述。( )
42.共用体变量可以作结构体的成员,结构体变量也可以作共用体的成员。( )
43.在if语句的三种形式中,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用{}括起来组成一个复合语句。( )
44.两指针变量相减所得之差是两个指针所指数组元素之间相差的元素个数。( )
45.逻辑表达式的值只能为0或1。( )
46.枚举类型中的元素都具有一个整型值。( )
47.程序中若要使用数学函数应该包含头文件”math.h”。( )
48.输入操作称为写操作,将输入流中的信息存到内存时,使用写函数。( )
49.直接访问就是直接利用变量的地址进行存取直接访问。( )
50.C 语言标准输入操作中 ,gets() 函数一次只可读取一个字符。( )
转载请注明:奥鹏作业之家 » 电子科技大学《C语言》20秋期末考试