电子科技大学19年c语言MOOC置换课程部分试题答案
(X 表示 错误 V 表示正确 ,小括号中是答案)
计算机系统由硬件和软件构成,它们共同工作来运行应用程序(V)
程序员必须要关心底层硬件的细节。(X)
C语言程序的源文件的扩展名是.cpp。(X)
汇编语言是高级程序设计语言。(X)
预处理器(preprocessor)执行以#开头的指令,类似于编辑器,可以给程序添加或修改内容。(V)
Kenneth Thompson被尊称为UNIX之父,Dennis Ritchie被尊称为C语言之父。(V)
C语言是具有低级语言特点的高级程序设计语言。(V)
计算机最小存储计量单位是:bit(位)。(V)
计算机最基本存储计量单位是:Bytes(字节) 。(V)
转换说明与实际数据类型不一致,产生不正确的无意义值。(V)
/……/ 表示注释。注释只是给人看的,对编译和运行不起作用。(V)
以#开头的是语句。(X)
大花括号{ }是函数开始和结束的标志,可省略。(X)
C语言的语句以逗号结束。(X)
微软的Visual Studio,是个重量级的的集成开发环境,可对C程序进行编辑、编译、链接、执行和调试。(V)
扩展名是.h,表明这是一个头文件,C源代码中如用到标准输入输出函数时,就要包含头文件stdio.h。(V)
printf()函数用来显示格式化字符串(format String)的内容,显示的值可以是常量、变量或者表达式。(V)
格式化字符串包含普通字符和转换说明(conversion specification),转换说明以%开头。(v)
%d 表示把int型数值从二进制转换成十进制数字组成的字符串。(V)
C的编译器会自动检测格式串中转换说明的数量和类型是否和后面的变量一致。(X)
C语言中,除法运算符“/“操作数必须为整数,取余运算符”%“的操作数不需要为整数。(X)
假设:int i=2; printf("i=%d\n", i++); 运行结果:i=3(X)
假设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;)
假设 int i=1,j=1,k=1; i+= j += k; printf("%d %d %d", i, j, k); 则打印结果:(3 2 1)
若有定义 int x=3, y=2; 和 float a=2.5, b=3.5; 则表达式 (x+y)%2+(int)a/(int)b 的值是:(1)
C语言中,要求操作数必须是整型的运算符是:(%)
设有以下语句:int x=10; x+=3+x%(-3); 则x的值是:(14)
以下四个选项中哪一个是非法的算术表达式:(7%1.5=1 取余多分母必须为整型)
若 int a=3,b=2,c=1,f; 表达式 f=a>b>c 的值是0。(v)
设有变量定义:int a=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);} else printf("%f",-x);)
有程序:
main(){
int a=5,b=1,c=0;
if (a=b+c)
printf("***\n");
else
printf("$$\n");}
该程序(输出:***)
以下程序的运行结果是:
main(){
int m=5;
if(m++>5)
printf("%d",--m);
else
printf("%d",m);
}(6)
以下关于switch语句和break语句的描述中,哪个是正确的(在switch语句中,可以根据需要使用或不使用break语句)
以下关于运算符优先顺序的描述中正确的是:(赋值运算符<逻辑运算符<关系运算符<算术运算符)
下面程序的运行结果是:
include <stdio.h>
main(){
int x=1,y=0,a=0,b=0;
switch(x){
case 1:
switch(y){
case 0:
a++;
break;
case 1:
b++;
break;
}
case 2:
a++;b++;
break;
}
printf("a=%d,b=%d",a,b);
} (a=2,b=1)
下面程序段中循环体的执行次数是4次。 int a=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)
设有以下程序段 int x=0,s=0; while(!x!=0) s+=++x; printf("%d",s); 则:(运行程序段后输出1)
下面哪个循环语句和其他不等价(假设循环体一样)?(for(i=0; i++<10; ) printf("%d\n", i);)
C语言中while和do while循环的主要区别是:(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;)
对于char cx="\033"; 语句,正确的是:(cx存贮的ASCII码值是033,是用八进制表示的转义序列值。)
以下程序是关于整数的不同进制数表示及转换: int main() { print("%d %x %o\n",125,125,125); return 0; } (125 7d 175)
下列的浮点数合法的是:(2.33e-1)
下面选项中合法的字符常量是:('X')
以下叙述中正确的是:(字符常量需要用单引号括起来。)
以下叙述中正确的是:(对特殊字符,数字转义序列使用这些字符的八进制或十六进制值。)
多维数组初始化时,如果内层的列表长度不足以填满数组的一行,则对该行剩余的元素进行随机初始化。(X)
若有定义: double x[3][5];则x数组索引值第一维的下限为0,第二维的上限为5。(X)
C语言使用字符数组来处理字符串时,定义的同时可以进行初始化。在用字符串常量初始化字符数组时,自动加结束标志\0。(V)
n个元素数组的索引是从1到n(X)
字符数组的每个元素可存放一个字符,并且最后一个元素必须是'\0'字符。(X)
多维数组:int b[5][4][3]; 第一维的索引下标从0-4,第二维的索引下标从0-3,第三维的索引下标从0-2,共60个整型元素。(V)
一个数组只允许存储同种类型的变量。(V)
声明一个数组的方式是:类型定义符 数组名 [ 常量表达式 ];其中,常量表达式表示的是数组元素的个数。(V)
C语言中数组元素是由数组下标的索引值进行标注的,第一个元素的索引值是0。(V)
假定一个int型变量占用4个字节,若有定义: int x[10]={0,2,4}; 则数组x在内存中所占字节数是12。(X)
以下关于数组说法错误的是:(C的编译器会检测数组是否越界。)
以下关于一维数组定义方法的说明错误的是:(数组下标从1开始)
数组int b[] = {[5] = 10, [23] = 13, [11] = 36, [15] = 29};包含了多少个元素:(24)
若数组a包含10个整数,假设每个整数用4字节存储,则sizeof(a)的值是:(40)
多维数组:int b[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类型形式参数,下列哪个函数原型不正确?(double average( a, double b);)
main() {increment(); increment(); increment(); } increment() {int x=0; x+=1; printf("%d",x); } 以上程序运行的结果是:(1 1 1)
以下叙述正确的是:(调用函数时,函数名必须与被调用的函数名称一样)
以下叙述正确的是:(C语言规定必须用main作为主函数名,程序将从此开始执行)
在C语言程序中,main函数的位置:(任意)
C语言源程序的基本单位是:(函数)
一个C语言程序的执行是从:(main( )函数开始,直到main( )函数结束)
C99 允许在程序块的任何位置声明变量。(V)
在函数体内声明的变量称为该函数的局部变量。(V)
形式参数没有自动存储期限。(X)
不同函数中不能使用相同变量名。(X)
在每次函数调用时,会对形式参数自动进行初始化。(V)
以下哪一个说法是错误的:(形参只有在函数内有效,作用域可以在函数外部。)
以下说法错误的是:(在C程序中,相同的标识符只能表示相同的含义)
若函数中有定义语句:int k;,则:(这时k中值无定义)
以下叙述中正确的是:(局部变量说明为static存储数,其生存期将得到延长。)
在一个C语言源程序文件中所定义的全局变量,其作用域为:(所有函数的全部范围。)
以下叙述中正确的是:(当用scanf从键盘输入数据时,每行数据在没按下回车键(Enter键) 前,可以任意修改)
以下叙述中正确的是:(在C程序中,模块化主要是通过函数来实现的)
以下叙述中正确的是:(赋值语句是一种执行语句,必须放在函数的可执行部分)
为了使程序块中的变量具有静态存储期限,可以使用以下哪一个关键字声明变量:(static)
使用数组名作为指向数组第一个元素的指针可以简化指针算术运算,使得数组和指针更加通用。(V)
取地址运算符用于得到变量的地址;间接寻址运算符用于访问指针所指向的对象。(V)
当不希望作为实参传入函数的指针所指向的对象内容被修改时,可以使用const。(V)
对一个并未指向数组元素的指针可以执行算术运算。(X)
变量的指针,其含义是指该变量的:(地址)
若有int a[10],p=a;,则p+5表示:(元素a[5]的地址)
对于语句int pa[5];下列描述中正确的是:(pa是一个具有5个元素的指针型数组,每个元素是一个int型指针)
若要对a进行++运算,则a应具有下面说明:(int b[10], a = b)
已有定义int k=2;int p1,p2;且p1,p2均指向变量k,下面不能正确执行的赋值语句是:(p2=k;)
可以对字符串字面量进行修改。(X)
字符串必须以空字符结尾。(V)
以数组名作为=运算符的左操作数是非法的!(V)
strlen是用来求字符串长度的函数,字符串长度就是它所包含的字符个数(不包含空字符)。(V)
在C语言中,没有专门的字符串变量,没有string类型,通常就用一个字符数组来存放一个字符串。(V)
若有说明:int a[3][4];则对a数组元素的正确引用是:(a[1+1][0])
以下对一维数组a的定义中正确的是(C89标准):(int a[5];)
设有数组定义:char array[]="China";则strlen(array) 的值为:(5)
若二维数组y有m列,则排在y[i][j]前的元素个数为:(im+j)
若定义一个名为s且初值为"123"的字符数组,则下列定义错误的是:(char s[]={"123\n"};)
以下叙述正确的是:(每个数组包含一组具有同一类型的变量。)
以下叙述中正确的是:(语句int a[8] = {0}; 是合法的)
以下叙述中正确的是:(语句char str1[] = {'s', 't', 'r', '1', '\0'};用赋初值方式来定义字符串,其中,'\0'是必须的)
以下叙述中正确的是:(字符串数组,是指数组中的每个元素都是一个存放字符串的一维数组)
假定一个int型变量占用4个字节,若有定义:int x[10]={0,2,4}; 则数组x在内存中所占的字节数是:(40)
以下有关宏替换的叙述不正确的是:(宏名必须用大写字母表示)
在“文件包含”预处理语句的使用形式中,当#include后面的文件名用""括起时,寻找被包含文件的方式是:(先在源程序所在目录搜索,再按照系统设定的标准方式搜索。)
在“文件包含”预处理语句的使用形式中,当#include后面的文件名用<>括起时,寻找被包含文件的方式是:(直接按系统设定的标准方式搜索目录)
以下叙述中不正确的是:(C程序在执行过程中对预处理命令行进行处理。)
以下叙述中正确的是 :(宏替换不占用运行时间,只占用编译时间。)
分而治之是开发大型程序的基本思想。(V)
函数的结构化设计原则是:高内聚紧耦合。(X)
大型程序必须有并且只能有一个源文件里有主函数,它是程序的入口。(V)
在程序中,通过宏定义用符号表示常量,可便于避免不一致性和打字错误。(V)
在程序设计中,函数的结构化设计原则是:松内聚,高耦合。(X)
数组的数据项中元素,类型必须相同;结构数据项的成员,类型不尽相同。(V)
typedef是定义结构类型的关键字。(V)
在一个时刻联合的成员可以有多个有效。(X)
枚举常量的值可以是任意的整数, 没有特别的顺序。(V)
C语言主要有两大类数据类型标量类型和聚合类型。(V)
网友评论