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