国开24春《C语言程序设计》形考【参考答案】C语言程序设计
若需要定义一个符号常量,并且使C语言能够进行类型检查,则应在定义语句的开始使用保留字const。
对
错
运算符优先级最高的是( )
A. =
B. *=
C. &&
D. !=
C语言中打开一个数据文件的系统函数为( )。
a. fgetc()
b. fputc()
c. fclose()
d. fopen()
C语言中的标准输入和输出设备文件都属于字符文件。
对
错
C语言中的每条复合语句以花括号作为结束符。
对
错
C语言中的每条简单语句以分号作为结束符。
对
错
C语言程序中的基本功能模块为( )。
A. 表达式
B. 标识符
C. 语句
D. 函数
C语言系统中提供一个用来描述文件属性的类型标识符为FILE。
对
错
NULL是一个符号常量,通常作为空指针值,它代表的值为0。
对
错
float的类型长度为8。
对
错
for语句能够被改写成的语句是( )。
a. 复合
b. if
c. switch
d. while
strcmp函数用于进行两个字符串之间的比较。
对
错
strcpy函数用于把一个字符串拷贝到另一个字符数组空间中。
对
错
x>0 && x<=10的相反表达式为( )。
A. x<=0 || x>10
B. x<=0 && x>10
C. x<=0 || x<=10
D. x>0 && x>10
一个二维字符数组a[10][20]能够存储的每个字符串的长度不超过20。
对
错
一个二维字符数组a[10][20]能够最多存储9个字符串。
对
错
一个磁盘数据文件的文件名由文件主名和扩展名所组成,其中间用圆点分开。
对
错
下面循环语句执行结束后输出的i值为( )。
for(int i=0; i<n; i++) if(i>n/2) {cout<<i<<endl; break;}
a. n/2
b. n/2+1
c. n/2-1
d. n-1
不符合C语言规定的复合语句是( )。
A. {}
B. {;}
C. {x=0;}
D. {y=10}
与结构成员访问表达式(*fp).score等价的表达式是fp->score。
对
错
与结构成员访问表达式x.name等价的表达式为( )。
a. x->name
b. &x->name
c. (&x)->name
d. (*x)->name
为了存储一个长度为n的字符串,所使用的字符数组的长度至少为n+1。
对
错
为了结束本层循环类语句或switch语句的执行过程,在语句体中需要使用break语句。
对
错
从一个数据文件中读入以换行符结束的一行字符串的系统函数为( )。
a. gets()
b. fgets()
c. getc()
d. fgetc()
使用const语句定义一个符号常量时,不必对它进行初始化。
对
错
使用“typedef char BB[10][50];”语句定义标识符BB为含有10行50列的二维字符数组类型。
对
错
使用一个结构类型时,必须一起使用关键字struct和类型标识符。
对
错
假定a为一个数组名,在下面的表达式中,存在语法错误的是( )。
a. a[i]
b. *a++
c. *a
d. *(a+1)
假定a是一个指针数组,则a+i所指对象的地址比a地址大4*i字节
国开形考答案open5.net或联系QQ/微信:18866732。
对
错
假定k是一个double类型的变量,则定义变量p的正确语句为( )。
a. double p=&k;
b. int *p=&k;
c. double &p=*k;
d. char *p=”Thank you!”;
假定p所指对象的值为25,p+1所指对象的值为46,则*++p的值为25。
对
错
假定p所指对象的值为25,p+1所指对象的值为46,则*p++的值为46。
对
错
假定p所指对象的值为25,p+1所指对象的值为46,则执行*(p++)运算后,p所指对象的值为46。
对
错
假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址增加的字节数为( )。
a. 1
b. 2
c. 4
d. 8
假定x=5,则执行“a=(x?10:20);”语句后a的值为10。
对
错
假定x=5,则执行“y=++x;”语句后,y的值为6。
对
错
假定x=5,则执行“y=x++;”语句后,x的值为5。
对
错
假定x=5,则表达式2*x++的值为12。
对
错
假定x为一个简单变量,则&x表示x的地址。
对
错
假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[1][1]的值为( )。
a. 2
b. 4
c. 6
d. 8
假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[2][1]的值为( )。
a. 0
b. 4
c. 8
d. 6
假定一个函数定义为“static int f1(int x,int y){return x+y;}”,该函数名称为( )。
a. static
b. int
c. f1
d. return
假定一个函数的二维数组参数说明为char w[][N],与之等价的指针参数说明为( )。
a. char (*w)[N]
b. char *w[N]
c. char (*w)N
d. char**a
假定一个函数的原型语句为“int ff(int* x);”,一个整型数组为a[10],则下面函数调用表达式不正确的是( )。
a. ff(a)
b. ff(a[0])
c. ff(a+3)
d. ff(&a[0])
假定一个函数的数组参数说明为char a[],与之等价的指针参数说明为( )。1B
a. char a
b. char* a
c. char& a
d. char**a
假定一个数据对象为int*类型,则指向该对象的指针类型仍为int*类型。
对
错
假定一个枚举类型的定义为“enum RB{ab,ac=3,ad,ae}x=ad;”,则x的值为2。
对
错
假定一个结构类型的定义为 “struct A{int a,b; A* c;};”,则该类型的长度为12。
对
错
假定一个结构类型的定义为 “struct A{int a,b; double c;};”,则该类型的长度为( )。
a. 8
b. 10
c. 12
d. 16
假定一个结构类型的定义为 “struct B{int a[5]; char* b;};”,则该类型的长度为20。
对
错
假定一个结构类型的定义为 “struct D{int a; D* next;};”,则该类型的长度为( )。
a. 4
b. 8
c. 12
d. 16
假定一个链表中结点的结构类型为“struct AA{int data, struct AA *next;};”,则next数据成员的类型为( )。
a. struct AA
b. struct AA*
c. AA
d. int
假定一个链表的表头指针为f,结点中包含有data和next域,则向该链表的表头插入一个地址为p的结点时,应执行的操作为( )。
a. p->next=f
b. p->next=f和f=p
c. f=p->next
d. f->next=p和f=p
假定一维数组的定义为“char* a[8];”,则该数组所含元素的个数大于8。
对
错
假定二维数组的定义为“char a[M][N];”,则该数组所含元素的个数为M+N。
对
错
假定二维数组的定义为“double a[M][N];”,则每个数组元素的列下标取值范围在0~N之间。
对
错
假定二维数组的定义为“double a[M][N];”,则每个数组元素的行下标取值范围在0~M-1之间。
对
错
假定二维数组的定义为“int a[3][5];”,则该数组所占存储空间的字节数为60。
对
错
假定变量m定义为“int m=7;”,则下面正确的语句为( )。
a. int p=&m;
b. int *p=&m;
c. int &p=*m;
d. int *p=m;
假定有“struct BOOK{char title[40]; float price;} book;”,则正确的语句为( )。
a. struct BOOK x= &book;
b. struct BOOK *x=&book;
c. struct BOOK x=calloc(BOOK);
d. struct BOOK *x=BOOK;
假定有“struct BOOK{char title[40]; float price;}; struct BOOK book;”,则不正确的语句为( )。
a. struct BOOK *x=malloc(book);
b. struct BOOK x={“C++ Programming”,27.0};
c. struct BOOK *x=malloc(sizeof(struct BOOK));
d. struct BOOK *x=&book;
假定有语句为“int b[10]; int *pb;”,则下面不正确的赋值语句为( )。
a. pb=b;
b. pb=&b[0];
c. pb=b+2;
d. pb=b[5];
假定要访问一个结构对象x中的由a指针成员所指向的对象,则表示方法为x.a。
对
错
假定要访问一个结构指针p所指对象中的b指针成员所指的对象,则表示方法为p->b。
对
错
假定要访问一个结构指针变量x中的数据成员a,则表示方法为( )。
a. x.a
b. x->a
c. x(a)
d. x{a}
关系表达式(x!=0)的等价表达式为(x)。
对
错
关系表达式x+y>5的相反表达式为x+y<=5。
对
错
函数形参变量不属于局部变量。
对
错
十进制数25表示成符合C语言规则的八进制数为31。
对
错
十进制数25表示成符合C语言规则的十六进制数为0x19。
对
错
向一个二进制文件中写入信息的函数fwrite()带有的参数个数为( )。
a. 1
b. 2
c. 3
d. 4
在C语言中,一个函数由函数头和函数体组成。
对
错
在C语言中,为只写操作打开一个文本文件的方式为( )。
a. “a”
b. “r+”
c. “r”
d. “w”
在C语言中,对二进制文件的所有不同打开方式共有6种。
对
错
在C语言中,常数28和3.26具有相同的数据类型。
对
错
在C语言中,系统函数fseek()用来移动数据文件中的文件位置指针。
对
错
在C语言中,转义字符’\n’表示一个换行符。
对
错
在C语言程序中,在行尾使用注释的开始标记符为一对单斜线字符。
对
错
在C语言程序中,多行注释语句使用的开始标记符为( )。
A. //
B. /*
C. */
D. **
在printf()函数调用的格式字符串中,若使用格式符为“%5d”,则规定对应输出的数据占用的字符位置个数为( )。
A. 5
B. 4
C. 3
D. 6
在printf()函数调用的格式字符串中,若使用格式符为“%c”,则对应输出的数据类型为( )。
A. char
B. int
C. float
D. double
在switch语句中,每个case和冒号之间的表达式只能是常量。
对
错
在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写成的语句是( )。
a. for
b. if
c. do
d. while
在一个C语言程序文件中,若要包含一个头文件,则使用以百分号开始的预处理命令。
对
错
在一个函数定义中,函数头包括的3个部分依次为函数类型、函数名和( )。
A. 表达式
B. 语句
C. 参数表
D. 函数体
在一个磁盘数据文件的文件名中,文件主名和扩展名都是必须的,不可省略。
对
错
在一个程序文件中,若要使用#include命令包含一个用户定义的头文件,则此头文件所使用的起止定界符为一对( )。
A. 尖括号
B. 双引号
C. 单引号
D. 花括号
在下列的符号常量定义中,错误的定义语句格式为( )。
A. const int M1=10;
B. const int M2=20;
C. const int M3 10;
D. const char mark=’3′;
在下面循环语句中,内层循环体S语句的执行总次数为( )。
for(int i=0; i<n; i++)
for(int j=i; j<n; j++) S;
a. n2
b. (n+1)/2
c. n(n-1)/2
d. n(n+1)/2
在下面的do循环语句中,其循环体被执行的次数为( )。
int i=0; do i++; while(i*i<10);
a. 4
b. 3
c. 5
d. 2
在下面的一维数组定义中,有语法错误的选项是( )。
a. int a[]={1,2,3};
b. int a[10]={0};
c. int a[];
d. int a[5];
在下面的二维数组定义中,语法正确的选项是( )。
a. int a[5][];
b. int a[][5];
转载请注明:奥鹏作业之家 » 国开24春《C语言程序设计》形考【参考答案】