电子科技大学19年c语言MOOC置换课程部分试题答案.docx
《电子科技大学19年c语言MOOC置换课程部分试题答案.docx》由会员分享,可在线阅读,更多相关《电子科技大学19年c语言MOOC置换课程部分试题答案.docx(13页珍藏版)》请在冰点文库上搜索。
电子科技大学19年c语言MOOC置换课程部分试题答案
电子科技大学19年c语言M00置换课程部
分试题答案
(X表示错误V表示正确,小括号中是答案)
计算机系统由硬件和软件构成,它们共同工作来运行应用程序(V)程序员必须要关心底层硬件的细节。
(X)
C语言程序的源文件的扩展名是.cpp。
(X)
汇编语言是高级程序设计语言。
(X)
预处理器(preprocessor)执行以#开头的指令,类似于编辑器,可以给程序添加或修改内容。
(V)
KennethThompson被尊称为UNIX之父,DennisRitchie被尊称为C
语言之父。
(V)
C语言是具有低级语言特点的高级程序设计语言。
(V)
/*
计算机最小存储计量单位是:
bit(位)。
(V)计算机最基本存储计量单位是:
Bytes(字节)。
(V)转换说明与实际数据类型不一致,产生不正确的无意义值。
(V)
*/表示注释。
注释只是给人看的,对编译和运行不起作用
(V)
以#开头的是语句。
(X)
大花括号{}是函数开始和结束的标志,可省略。
(X)
C语言的语句以逗号结束。
(X)
微软的VisualStudio,是个重量级的的集成开发环境,可对C程序
进行编辑、编译、链接、执行和调试。
(V)
扩展名是.h,表明这是一个头文件,C源代码中如用到标准输入输出函数时,就要包含头文件。
(V)
printf()函数用来显示格式化字符串(formatString)的内容,显
示的值可以是常量、变量或者表达式。
(V)
格式化字符串包含普通字符和转换说明(conversion
specification),转换说明以%开头。
(v)
%d表示把int型数值从二进制转换成十进制数字组成的字符串。
(V)
C的编译器会自动检测格式串中转换说明的数量和类型是否和后面
的变量一致。
(X)
C语言中,除法运算符“/“操作数必须为整数,取余运算符”%“的
操作数不需要为整数。
(X)
运行结果:
i=3(X)
假设:
inti=2;printf("i=%d\n",i++);假设i,a,b为int型变量,复合赋值表达式i*=a-b可以表示为i=i*(a-b)。
(V)
表达式转变为语句的方法就是在表达式末尾添加分号。
(V)
若x,i,j和k都是int型变量,则计算x=(i=4,j=16,k=32)表达式后,x的值是4。
(X)
sizeof(float)是一个双精度型表达式。
(X)
自增运算符(++)或自减运算符(--)只能用于变量,不能用于常量或表达式。
(V)
下列语句中,符合语法的赋值语句是:
(a=7+b,b++,a+7;)
假设inti=1,j=1,k=1;i+=j+=k;printf("%d%d%d",i,j,k);则打印结果:
(321)
若有定义intx=3,y=2;和floata=,b=;则表达式
(x+y)%2+(int)a/(int)b的值是:
(1)
C语言中,要求操作数必须是整型的运算符是:
(%)
设有以下语句:
intx=10;x+=3+x%(-3);则x的值是:
(14)
以下四个选项中哪一个是非法的算术表达式:
(7%=1取余多分母必须为整型)
若inta=3,b=2,c=1,f;表达式f=a>b>c的值是0。
(v)
设有变量定义:
inta=10,c=9;则表达式(--a!
=c++)?
--a:
++c的
值是11。
(V)
在switch语句中,每一个case常量表达式的值可以相同。
(X)switch语句中,多个case语句可以共用一组执行语句。
(V)
在switch语句中,执行break语句之后,就可以跳出switch语句,继续执行switch后面的语句。
如果没有break语句,就会从一个分支继续到下一个分支。
(V)
continue语句可以用于switch结构中。
(X)
若有条件表达式(exp)?
a++:
b--,则(exp!
=0)能完全等价于表达式
(exp)。
(V)
在if-else语句中,else总是与其前面最近的尚未配对的if结合(V)
逻辑或表达式A||B中,如果表达式A和表达式B的值任意一个为“真”,则表达式A||B结果为“真”
(1)。
(v)
已知:
a=1,b=1,则表达式:
!
(a!
=b)值为1。
(v)
switch语句实现多分支选择结构中,default语句为选择项,可有可无。
另外,default后面可以不加break语句。
(v)
switch括号内的“表达式”,其值的类型可以是整数类型、字符类型或枚举类型,也可以是其他数据类型。
(X)
以下if语句语法正确的是:
(if(x>0){x=x+y;printf("%f",x);}
elseprintf("%f",-x);)
有程序:
main(){
inta=5,b=1,c=0;
if(a=b+c)
printf("***\n");
else
printf("$$\n");}
该程序(输出:
***)
以下程序的运行结果是
main(){
intm=5;
if(m++>5)
printf("%d",--m);
else
printf("%d",m);
}(6)
以下关于switch语句和break语句的描述中,哪个是正确的(在switch语句中,可以根据需要使用或不使用break语句)以下关于运算符优先顺序的描述中正确的是:
(赋值运算符<逻辑运算符<关系运算符<算术运算符)
下面程序的运行结果是:
#include<>
main(){
intx=1,y=0,a=0,b=0;
switch(x){
case1:
switch(y){
case0:
a++;
break;
case1:
b++;
break;
}
case2:
a++;b++;
break;
}
printf("a=%d,b=%d",a,b);
}(a=2,b=1)
下面程序段中循环体的执行次数是4次。
inta=10,b=0;do{b+=2;a-=2+b;}while(a>=0);(X)
语句for(;;){循环体}和while
(1){循环体}是等价的。
(V)
在C语言中,for语句既可以用于计数类型循环又可以用于条件类型循环。
(V)
break语句只能用于循环语句中。
(X)
continue语句可以用于switch结构中。
(X)
设有以下程序段intx=0,s=0;while(!
x!
=0)s+=++x;printf("%d",s);则:
(运行程序段后输出1)
下面哪个循环语句和其他不等价(假设循环体一样)?
(for(i=0;i++<10;)printf("%d\n",i);)
C语言中while和dowhile循环的主要区别是:
(do-while的循环至
少无条件执行一次。
)
面有关for循环的正确描述是:
(for循环的循环体可以包括多条
语句,但必须用花括号括起来)
以下不是无限循环的语句为:
(for(y=0,x=1;x>++y;x=i++)i=x;)
设i,j,k均为int型变量,则执行完下面的for循环后,k的值为:
for(i=0,j=10;i<=j;i++,j--)k=i+j;(10)
不同的数据类型具有不同的存储长度、取值范围、允许的操作。
(V)缺省情况下,浮点常量以double类型存放。
(V)scanf函数读取字符时会自动跳过空白字符。
(X)类型定义用于对另一个数据类型创建一个别名,相当于创建了一个新的类型。
(X)
getchar函数可用于循环中搜寻字符,也可用于跳过不确定数量的相同字符。
(V)
常量又称为常数,是在程序运行过程中其值不能被改变的量。
(V)整型变量包括有符号整型变量和无符号整型变量。
整型变量在内存中占的字节数相同。
(X)
C语言的基本数据类型包括整型数据、浮点型数据和字符型数据。
(V)在C语言中求字符串s的长度时,字符串中所含字符的个数称为字符串的长度,结束标志字符'\0'不参加计算。
(V)
变量c是char类型,putchar(c);的用法是正确的。
(V)
在C语言中,字符型数据在内存中以什么形式存放(ASCII码)
以下哪一个是C语言提供的合法的数据类型关键字:
(float)
在C语言中,数字029是一个:
(非法数)
以下合法的赋值语句是:
(x=y=100;)
对于charcx="\033";语句,正确的是:
(cx存贮的ASCII码值是
033,是用八进制表示的转义序列值。
)以下程序是关于整数的不同进制数表示及转换:
intmain()
{print("%d%x%o\n",125,125,125);return0;}(1257d175)下列的浮点数合法的是:
下面选项中合法的字符常量是:
('X')
以下叙述中正确的是:
(字符常量需要用单引号括起来。
)
以下叙述中正确的是:
(对特殊字符,数字转义序列使用这些字符的八进制或十六进制值。
)
多维数组初始化时,如果内层的列表长度不足以填满数组的一行,则对该行剩余的元素进行随机初始化。
(X)
若有定义:
doublex[3][5];则x数组索引值第一维的下限为0,第
二维的上限为5。
(X)
C语言使用字符数组来处理字符串时,定义的同时可以进行初始化。
在用字符串常量初始化字符数组时,自动加结束标志\0。
(V)
n个元素数组的索引是从1到n(X)
字符数组的每个元素可存放一个字符,并且最后一个元素必须是'\0'
字符。
(X)
多维数组:
intb[5][4][3];第一维的索引下标从0-4,第二维的索引下标从0-3,第三维的索引下标从0-2,共60个整型元素。
(V)一个数组只允许存储同种类型的变量。
(V)
声明一个数组的方式是:
类型定义符数组名[常量表达式];其中,
常量表达式表示的是数组元素的个数。
(V)
C语言中数组元素是由数组下标的索引值进行标注的,第一个元素的
索引值是0。
(V)
假定一个int型变量占用4个字节,若有定义:
intx[10]={0,2,4};
则数组x在内存中所占字节数是12。
(X)
以下关于数组说法错误的是:
(C的编译器会检测数组是否越界。
)
以下关于一维数组定义方法的说明错误的是:
(数组下标从1开始)
数组intb[]={[5]=10,[23]=13,[11]=36,[15]=29};包含了多少个元素:
(24)
若数组a包含10个整数,假设每个整数用4字节存储,则sizeof(a)的值是:
(40)
多维数组:
intb[5][4][3];包含多少个元素:
(60)
多维数组中,为了存取数组i行j列的元素,应该写成以下哪一种形式:
(m[i][j])
以下叙述中正确的是:
(在多维数组的初始化式中忽略掉内层的大括号是可以的)
C语言的main函数是程序开始时调用的第一个函数。
(V)
在C语言中的函数体可以包含声明和语句。
(V)
函数调用由函数名和跟随其后的实际参数列表组成,其中实际参数列表用方括号括起来。
(X)
实参和与其对应的形参占用独立的存储单元。
(X)
函数调用可以出现在执行语句中;出现在表达式中;作为函数的实参。
(V)
只有全局变量才有自己的作用域,函数中的局部变量没有作用域。
(X)
C语言中函数的定义可以嵌套,函数体内能包含另一个函数的定义。
(X)
用户自己定义的函数只能调用库函数。
(X)
实用的C语言源程序总是由一个或多个函数组成。
(V)如果函数改变了数组型形式参数的元素,那么这个改变会在相应的实际参数中体现出来。
(V)
关于建立函数的目的,以下正确的说法是:
(提高程序的可重用性)
定义函数时,函数名前面有void关键字,正确的说法是:
(没有返回值)
函数调用fun((exp1,exp2),(exp3,exp4,exp5));这个语句含有实参的个数为
(2)
一个函数返回值类型为double,有2个double类型形式参数,下列哪个函数原型不正确?
(doubleaverage(a,doubleb);)
main(){increment();increment();increment();}increment()
{intx=0;x+=1;printf("%d",x);}以上程序运行的结果是:
(11
1)
以下叙述正确的是:
(调用函数时,函数名必须与被调用的函数名称一样)
以下叙述正确的是:
(C语言规定必须用main作为主函数名,程序将从此开始执行)
在C语言程序中,main函数的位置:
(任意)
C语言源程序的基本单位是:
(函数)一个C语言程序的执行是从:
(main()函数开始,直到main()函数结束)
C99允许在程序块的任何位置声明变量。
(V)在函数体内声明的变量称为该函数的局部变量。
(V)形式参数没有自动存储期限。
(X)不同函数中不能使用相同变量名。
(X)在每次函数调用时,会对形式参数自动进行初始化。
(V)以下哪一个说法是错误的:
(形参只有在函数内有效,作用域可以在函数外部。
)
以下说法错误的是:
(在C程序中,相同的标识符只能表示相同的含义)
若函数中有定义语句:
intk;,则:
(这时k中值无定义)以下叙述中正确的是:
(局部变量说明为static存储数,其生存期将得到延长。
)
在一个C语言源程序文件中所定义的全局变量,其作用域为:
(所有
函数的全部范围。
)
以下叙述中正确的是:
(当用scanf从键盘输入数据时,每行数据在没按下回车键(Enter键)前,可以任意修改)
以下叙述中正确的是:
(在C程序中,模块化主要是通过函数来实现
的)
以下叙述中正确的是:
(赋值语句是一种执行语句,必须放在函数的
可执行部分)
为了使程序块中的变量具有静态存储期限,可以使用以下哪一个关键字声明变量:
(static)
使用数组名作为指向数组第一个元素的指针可以简化指针算术运算,
使得数组和指针更加通用。
(V)
取地址运算符用于得到变量的地址;间接寻址运算符用于访问指针所指向的对象。
(V)
当不希望作为实参传入函数的指针所指向的对象内容被修改时,可以
使用const。
(V)
对一个并未指向数组元素的指针可以执行算术运算。
(X)
变量的指针,其含义是指该变量的:
(地址)
若有inta[10],*p=a;,则p+5表示:
(元素a[5]的地址)
对于语句int*pa[5];下列描述中正确的是:
(pa是一个具有5个元素的指针型数组,每个元素是一个int型指针)若要对a进行++运算,则a应具有下面说明:
(intb[10],
b)
已有定义intk=2;int*p1,*p2;且p1,p2均指向变量k,下面不能正确执行的赋值语句是:
(p2=k;)
可以对字符串字面量进行修改。
(X)
字符串必须以空字符结尾。
(V)
以数组名作为=运算符的左操作数是非法的!
(V)
strlen是用来求字符串长度的函数,字符串长度就是它所包含的字符个数(不包含空字符)。
(V)
在C语言中,没有专门的字符串变量,没有string类型,通常就用
一个字符数组来存放一个字符串。
(V)
若有说明:
inta[3][4];则对a数组元素的正确引用是:
(a[1+1][0])
以下对一维数组a的定义中正确的是(C89标准):
(inta[5];)
设有数组定义:
chararray[]="China";则strlen(array)的值为:
(5)
若二维数组y有m列,则排在y[i][j]前的元素个数为:
(i*m+j)
若定义一个名为s且初值为"123"的字符数组,则下列定义错误的是:
(chars[]={"123\n"};)
以下叙述正确的是:
(每个数组包含一组具有同一类型的变量。
)
以下叙述中正确的是:
(语句inta[8]={0};是合法的)
以下叙述中正确的是:
(语句charstr1[]={'s','t','r','1','\0'};用赋初值方式来定义字符串,其中,'\0'是必须的)
以下叙述中正确的是:
(字符串数组,是指数组中的每个元素都是一个存放字符串的一维数组)
假定一个int型变量占用4个字节,若有定义:
intx[10]={0,2,4};则数组x在内存中所占的字节数是:
(40)
以下有关宏替换的叙述不正确的是:
(宏名必须用大写字母表示)
在“文件包含”预处理语句的使用形式中,当#include后面的文件名用""括起时,寻找被包含文件的方式是:
(先在源程序所在目录搜索,再按照系统设定的标准方式搜索。
)
在“文件包含”预处理语句的使用形式中,当#include后面的文件名用<>括起时,寻找被包含文件的方式是:
(直接按系统设定的标准方式搜索目录)
以下叙述中不正确的是:
(C程序在执行过程中对预处理命令行进行处理。
)
以下叙述中正确的是:
(宏替换不占用运行时间,只占用编译时间。
)
分而治之是开发大型程序的基本思想。
(V)
函数的结构化设计原则是:
高内聚紧耦合。
(X)
大型程序必须有并且只能有一个源文件里有主函数,它是程序的入
口。
(V)
在程序中,通过宏定义用符号表示常量,可便于避免不一致性和打字
错误。
(V)
在程序设计中,函数的结构化设计原则是:
松内聚,高耦合。
(X)数组的数据项中元素,类型必须相同;结构数据项的成员,类型不尽
相同。
(V)
typedef是定义结构类型的关键字。
(V)在一个时刻联合的成员可以有多个有效。
(X)枚举常量的值可以是任意的整数,没有特别的顺序。
(V)
C语言主要有两大类数据类型标量类型和聚合类型。
(V)