国家开放大学C语言试题及答案【最新整理】

发布时间:2020-05-03   来源:文档文库   
字号:
【知识分享】


1C语言中的循环类语句有3条,它们是( )。 选择一项:
A. for,if,while B. for,while,do C. while,do,switch D. for,break,do 正确答案是:for,while,do 2C语言中的跳转类语句有四条,它们是goto,return和( )。 A. break,const B. static,continue C. break,continueD. while,extern 正确答案是:break,continue 3.当不需要函数返回任何值时,则所使用的返回类型为( )。 A. Int B. union C. void D. Void 正确答案是:void 4.在一个函数定义中,函数头包括的3个部分依次为函数类型、函数名和( )。 选择一项:
A. 表达式B. 语句C. 函数体D. 参数表正确答案是:参数表
5.在一个程序文件的开始,若需要使用一个包含命令包含一个头文件时,则命令标识符为 A. #cludeB. #constC. #includeD. #defile正确答案是:#include 6.在#include预处理命令中,不可以包含( )。
A. 系统头文件B. 程序文件C. 用户头文件D. 目标文件正确答案是:目标文件
7.在printf(函数调用的格式字符串中,若使用格式符为“%6.2f”,则规定对应输出的数据占用的字符位置个数为 )。 选择一项: A. 5B. 6C. 4D. 2 正确答案是:6 8.在printf(函数调用的格式字符串中,若使用格式符为“%6.2f”,则规定对应输出的数据中,其小数部分占用的字符位置个数为( )。

【知识分享】

选择一项:
A. 5B. 6C. 4D. 2正确答案是:2 9.在printf(函数调用的格式字符串中,若使用格式符为“%6.2f”,则规定对应输出的数据中,其整数部分占用的字符位置个数为( )。 A. 6B. 4C. 3D. 2正确答案是:3 10.在scanf(函数调用的格式字符串中,若使用格式符为“%f”,则对应输入的数据类型为( 选择一项:
A. charB. intC. floatD. double正确答案是:float 11.在scanf(函数调用的格式字符串中,若使用格式符为“%Lf”,则对应输入的数据类型为(A. charB. intC. floatD. double正确答案是:double 12.每个C程序文件在编译时可能出现有严重性错误,其对应的标识符号为( )。 选择一项:
A. warningB. errorC. warnD. err正确答案是:error 13.在VC++环境下,为运行一个程序而建立的工作区文件的扩展名为( )。 A. objB. exeC. dswD. dsp正确答案是:dsw 二、判断题
1.在C语言中,作为标识符的第一个字符可以是英文字母、数字或下划线字符。 正确的答案是“错”。
2.在C语言中,标识符中的非首字符可以是英文字母、数字或下划线字符。 选择一项:正确的答案是“对”。
3.当需要在程序文件中引入用户定义的头文件时,使用的不是#include命令。 正确的答案是“错”。
4.使用#include命令只能包含头文件,不能包含其他任何文件。 正确的答案是“错”。
)。 )。
【知识分享】

5.注释语句的内容只会出现在源程序文件中,不会出现在编译后而生成的目标代码文件中。 正确的答案是“对”。
6.一条注释语句的最后必须使用分号结束。 正确的答案是“错”。
7.源程序文件被编译成目标文件后,其目标文件中也存在有对应的注释内容。 正确的答案是“错”。
8.源程序文件被编译成目标文件后,源程序文件中的注释语句仍然存在。 正确的答案是“对”。
9.在一条注释语句中,除了注释内容外,不需要使用任何特定的标记符。 正确的答案是“错”。
10.多行注释语句的开始和结束标记符可以互换使用。 正确的答案是“错”。
11.在执行“printf("%5d",x;”语句时,其输出的x的值所占用的显示宽度将大于等于5个字符位置。正确的答案是“对”。
12.在执行“printf("%6d",x;”语句时,其输出的x的值所占用的显示宽度将小于6个字符位置。 正确的答案是“错”。
13.在执行“printf("%8.2f",x;”语句时,其输出的x的值所占用的显示宽度将大于等于8个字符位置。 正确的答案是“错”。
14.在“scanf("%d %d",&x,&y;”语句中,xy变量均为整数类型。 正确的答案是“对”。
15.在“scanf("%s",x;”语句中,x变量不是字符指针类型。 正确的答案是“错”。
16.在“scanf("%d-%d=%d",&x,&y,&z;”语句中,有语法错误。 正确的答案是“错”。

【知识分享】

17.在C语言程序上机操作的过程中,连接程序的操作步骤之前是编译程序。 正确的答案是“对”。
18.在C语言程序上机操作的过程中,需要对每个用户头文件进行单独的编译操作。 正确的答案是“错”。
19.在C语言程序上机操作的过程中,不能够对用户头文件进行单独的编译操作。 正确的答案是“对”。
1题目1int类型的长度为( )。正确答案是:4 2常数-4.25的数据类型为( )。正确答案是:双精度型
题目3一个有符号字符类型的值域范围是( )。正确答案是:-128+127 题目4字符串"Its\40\n"的长度为( )。正确答案是:5 题目5实数340.25对应的规格化浮点数为( )。正确答案是:3.4025e2 题目6要利用const保留字定义整型常量ABC的值为10,则对应的定义语句为( )。 正确答案是:const int ABC=10; 题目7要利用#define命令定义ABC常量的值为100,则对应的命令格式为( )。 正确答案是:#define ABC==100 下列数值中最大值是( )。 正确答案是:28%8 题目9在下面运算符中,优先级最高的是( )。正确答案是:! 题目10设有语句序列为“int a=12; a+=a*a;”,则执行结束后,a的值为( )。正确答案是:156 题目11 C语言中,用于比较大小的关系运算符的总数为( )。正确答案是:6 题目12x>0 && y<=5的相反表达式为( )。正确答案是:x<=0 || y>5 题目13假定x是一个逻辑量,则(x && !x(x || !x的值分别为( )。正确答案是:01 题目14假定x=4.6,则函数ceil(x的值为( )。正确答案是:5.0 题目15表达式floor(2.3457*100+0.5/100的值为( )。正确答案是:2.35
【知识分享】

常数3.26e4是双精度浮点数。正确的答案是“对”。
题目17浮点数只有单精度表示,没有双精度表示。正确的答案是“错”。 题目18定点数包括单精度定点数和双精度定点数两种。正确的答案是“对”。
题目19定义符号常量只有一种方法,就是采用预处理命令#define的方法。正确的答案是“错”。 题目20使用const语句定义一个符号常量时,则必须对它同时进行初始化。 正确的答案是“对”。
题目21在一条变量定义语句中,定义的变量和赋给它的初值之间只能使用等号(=。正确的答案是“对”。题目22假定x=5,则表达式2+x++的值为7 正确的答案是“对”。
题目23表达式(int14.6%5的值为0。正确的答案是“错”。
题目24表达式x=x+1表示成增量表达式为x++。正确的答案是“错”。
题目25假定x=5,则执行“a=(x?10:20;”语句后a的值为10。正确的答案是“对”。 题目26逻辑表达式(a>b || b==5的相反表达式为(a>b && b==5。正确的答案是“错”。 题目27C语言中,求一个整数的绝对值的数学函数为abs(x。正确的答案是“对”。 题目28C语言中,退出程序运行的系统函数为exit(。正确的答案是“对” 一、单项选择题
题目1x的值为15,则执行“if(x>10 x++; else x--;”语句后,x的值为( 正确答案是:16 题目2x的值为-10,则执行“if(!x x++; else x--;”语句后,x的值为( )。正确答案是:-11 题目3x的值为10,则执行“switch(x%3{case 0: x++; case 1:x++; case 2: x++;}”语句后,x的值为( )。正确答案是:12 题目4x的值为10,则执行“switch(x%3{case 0: x++; break; case 1:x++; default: x++;}”语句后,x的值为( )。正确答案是:12 题目5n的值为10,则执行“for(i=1;ii++ S;”语句的过程中,表达式i=1共被执行的次数为(
)。正确
【知识分享】

答案是:1 题目6n的值为10,则执行“for(i=0; ; i++ if(i>n/3 break;”语句后,i的值为( )。正确答案是:4 题目7n的值为10,则执行“for(i=1; i”语句的过程中,表达式i++共被执行的次数为( )。正确答案是:n-1 题目8n的值为10,则执行“for(i=0; i”语句后,内层循环体S语句的执行总次数为( )。正确答案是:n(n+1/2 题目9n的值为10,则执行“while(n-->0 s+=n;”语句的过程中,循环体被执行的次数为( )。正确答案是:10 题目10n的值为5s的值为0,则执行“while(n-->0 s+=n;”语句后,s的值为( )。正确答案是:10 题目11在下列的语句中,必须以分号作为结束的语句是( )。正确答案是:do 题目12n的值为5s的值为0,则执行“do s+=n--; while(n>0;”语句后,s的值为( 正确答案是:15 题目13 要结束任一种循环语句或switch语句的执行,则在其中使用的语句为( )。正确答案是:break 二、判断题
if语句中,必须带有else子句,不能省略它。正确的答案是“错”。 题目15 for循环语句的头部,for后面括号内共有3个表达式位置。正确的答案是“对”。 题目16for循环语句不能够被转换为while循环语句。正确的答案是“错”。 题目17while循环语句中的循环体可能不会被执行。正确的答案是“对”。
题目18while循环语句的循环体,只能是复合语句,不能是简单语句。正确的答案是“错”。 题目19do-while循环语句中的循环体可能不会被执行。正确的答案是“错”。
题目20do-while循环语句的循环体,只能是复合语句,不能是简单语句。正确的答案是“错”。 题目21do-while循环语句是以循环体结尾的。

【知识分享】

正确的答案是“错”
break语句可以使用在switch语句中。正确的答案是“对”。 题目23return语句中可以带有返回表达式。正确的答案是“对”。
题目24continue只能使用在任一种循环语句的循环体中。正确的答案是“对”。 一、单项选择题
题目1假定有一个元素类型为int的数组a[10],它所占用的存储空间的字节数为( )。正确答案是:40 题目2 假定一维数组的定义为“char* a[8];”,则该数组所占用的存储空间的字节数为( )。正确答案是:32 题目3假定有一个定义语句为“int a[10]={3,4,2,8,6};”,则元素a[5]的值为( )正确答案是:0 题目4在下面的一维数组定义语句中,有语法错误的是( )。正确答案是:int a[]; 题目5假定二维数组的定义语句为“int a[3][5];”,则该数组所含元素的个数为( )。正确答案是:15 题目6假定有一个定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[1][2]的值为( )。正确答案是:6 题目7 对于一个长度为n的字符串,保存它至少需要占用的存储字节数为( )。正确答案是:n+1 题目8对于一个二维字符数组a[M][N],存储每个字符串的长度至多为( )。正确答案是:N-1 题目9若需要比较两个字符串的大小,则选用的函数是( )。正确答案是:strcmp 二、判断题
题目10一维数组元素带有两个下标。正确的答案是“错”。
题目11对于二维数组元素,数组名后使用两对中括号。正确的答案是“对”。
题目12在一维数组的定义语句中,给数组赋初值的部分是用一对花括号括起来的数据表。正确的答案是“对”。 题目13在一维数组的定义语句中,数组名前为元素类型关键字。正确的答案是“对”。 题目14在二维数组的定义语句中,数组名后带有两对圆括号。正确的答案是“错”。
题目15假定二维数组的定义语句为“double a[M][N];”,则每个数组元素的列下标取值范围在1~N之间。 正确的答案是“错”。

【知识分享】

题目16 使用“typedef char BB[10];”语句定义标识符BB为含有10个元素的一维字符数组。正确的答案是“错”。 题目17使用typedef char BB[10][50];语句定义标识符BB为含有1050列共500个元素的二维字符数组类型。 正确的答案是“对”。
题目18一个二维字符数组a[10][20]中存储每个字符串的最大长度为19 一、单项选择题
题目1一个指针指向一个数据对象,它保存着该数据对象的地址,若数据对象为DataType类型,则该指针的类型为 )。
正确答案是:DataType* 题目2NULL是一个符号常量,通常作为空指针值,它的取值为( )。正确答案是:0 题目3若要把一个整型指针p转换为字符指针,则采用的强制转换表达式为( )。.正确答案是:(char*p 题目4若要定义整型指针p并初始指向x,则所使用的定义语句为( )。正确答案是:int *p=&x; 题目5假定p所指对象的值为25p+1所指对象的值为42,则表达式*p++的值为( )。正确答案是:25 题目6假定p是一个指针变量,则该变量的地址表示为( )。t. 正确答案是:&p 题目7已知“char*s="Hello world!";”,要使变量p指向s所指向的同一个字符串,则p应定义为( )。 正确答案是:char *p=s; 题目8假定a为一个数组名,则下面表达式中错误的是( )。正确答案是:*a++ 题目9已知“char b[10]=12345, *p=b;”,则*(p+2的值为( )。正确答案是:'3' 题目10已知“int a[6][5];”,则元素a[2][4]的地址比该数组的首地址大( )。正确答案是:56个字节 题目11要使p指向二维整型数组a[10][20]p应定义为( )。正确答案是:int(*p[20]=a; 题目12执行“int *p=malloc(sizeof(double*2;”语句后得到的动态存储空间的字节数为( )。正确答案是:16 题目13 利用动态存储分配创建具有10个字节的一维数组空间的正确语句是( )。正确答案是:char *p=malloc(10;
【知识分享】

二、判断题 题目14 在定义指针变量的语句中,对指针变量不允许赋初值。正确的答案是“错”。
题目15在定义指针变量的语句“int *p,pp;”中,ppp具有相同的数据类型。正确的答案是“错”。 题目16在语句“typedef int* inPointer;”中,把标识符inPointer定义为int*类型。正确的答案是“对”。 题目17假定a是一个一维数组,则a+i的值与&a[i]的值相等。正确的答案是“对”。 题目18已知“int a[10], *p=a;”,则进行*p++运算是不允许的。正确的答案是“错”。 题目19假定a是一个二维数组,则表达式*(a[j]+i所对应的元素为a[i][j]。正确的答案是“错”。 题目20假定a是一个二维数组,则数组名a的值和a[0]的值相等。正确的答案是“对”。 题目21进行动态存储分配的calloc(函数带有一个参数。正确的答案是“错”。
题目22用于释放动态存储空间的函数为free,调研它需要带有一个参数。正确的答案是“对”。 题目23假定a是一个指针数组,则a+i所指对象的地址比a地址大4*i个字节。正确的答案是“对”。 单项选择题
在下面的函数声明语句中存在着语法错误的是( )。正确答案是:AA(int a; int b 题目2如果一个函数定义仅允许为所在的程序文件调用,则应在该函数定义的最前面添加的关键字为( )。正确答案是:static 题目3假定一个函数定义为“extern char* f1(char* x{return x;}”,表示该函数作用域的关键字为( )。正确答案是:extern 题目4假定一个函数的原型语句为int ff(int* x;一个整型数组为a[10]则下面函数调用表达式不正确的是 正确答案是:ff(a[0] 题目5型语句为“int f1(int a[],int n;”,与数组参数等价的表示为( )。正确答案是:int* a 题目6假定一个函数的参数说明为const int a,则在函数体中不能进行的操作是( )。正确答案是:a=10 题目7在函数体中定义的变量具有( )。正确答案是:局部作用域

【知识分享】

题目8在函数外定义的变量,若带有作用域关键字static,则它具有( )。正确答案是:文件作用域 题目9在函数体中定义一个静态变量时,选用的存储属性关键字为( )。正确答案是:static 题目10假定一个函数原型为“void ff(int a[],int n”,则对应的函数指针类型为( )。 选择一项:
正确答案是:void(*ff(int*a,int 二、判断题
题目11 函数定义格式中的参数表被称为实参表。正确的答案是“错”。 题目12函数定义格式中的参数表被称为形参表。正确的答案是“对”。 题目13函数调用参数表中的每个实参可以是表达式。正确的答案是“对”。
题目14对于标识为static属性的变量,若没有对它进行初始化,则默认的初值为0。正确的答案是“对”。 题目15在函数体中定义一个变量时,若不选用任何存储属性关键字进行标识,则它为静态变量。正确的答案是“错” 题目16C语言程序中,主函数也可以成为递归函数。正确的答案是“错”。
题目17C语言程序中,除主函数外的任何用户定义的函数都可以是递归函数。正确的答案是“对”。 一、单项选择题
题目1在结构类型的定义中,对于类型标识符后的定义体,使用的起止标记符是一对( )。正确答案是:圆括号 题目2假定一个结构类型的定义为 struct A{int a,b; double c;};”,则该类型的长度为( )。正确答案是:16 题目3假定一个结构类型的定义为 struct D{int a; D* next;};”,则该类型的长度为( )。正确答案是:8 题目4 假定有结构定义“struct Book{char title[20]; double price;};”,则不正确的语句定义为( )。 选择一项:正确答案是:struct Book b=("C++ Programming",27.0 题目5假定有结构定义“struct Book{char title[20]; double price;};”,则正确的语句定义为( )。 正确答案是:struct Book *x=calloc(6,sizeof(struct Book; 题目6假定要访问一个结构指针变量x中的数据成员a,则表示方法为( )。正确答案是:x->a 题目7与结构成员访问表达式p->name等价的表达式为( )。正确答案是:(*p.name
【知识分享】

题目8在一个链表中,每个结点必然存在着一个指向自身结点类型的指针域,用来保存下一个结点的( )。 正确答案是:地址
题目9假定一个链表的表头指针为f,结点中包含有datanext域,则向该链表的表头插入一个地址为p的结点时,应执行的操作为( )。正确答案是:p->next=ff=p 题目10假定一个联合类型的定义为 union D{int a; D* next;};”,则该类型的长度为( )。正确答案是:4 二、判断题
题目11在同一个结构类型的定义中,各数据成员名必须不同。正确的答案是“对”。
题目12在结构类型的定义中,其中的数据成员可以是本身类型的指针对象。正确的答案是“对”。 题目13在结构类型的定义中,不允许出现结构类型不完整的超前定义。正确的答案是“错”。 题目14定义结构类型的同时能够定义它的变量。正确的答案是“对”。
题目15定义结构类型的变量时,能够用同类型的其他变量进行初始化,不能用数据表进行初始化。正确的答案是“错” 题目16使用结构类型时,必须一起使用关键字struct和类型标识符。正确的答案是“对”。 题目17在一个链表中,表头结点和表尾结点均无后继结点。正确的答案是“错”。
题目18在一个链表中,若表头指针的值非空,则表头和表尾结点必然不是同一个结点。正确的答案是“错”。 题目19C语言中,一个结构类型的长度等于所含的所有数据成员类型长度的最大值。正确的答案是“错”。 一、单项选择题
题目1标准输出设备显示器的文件流标识符是( )。正确答案是:stdout 题目2表示文件结束符的符号常量EOF的值为( )。正确答案是:-1 题目3假定一个磁盘数据文件占用n个字节的存储空间,则按字节进行编址的范围是( )。 选择一项:正确答案是:0˜(n-1 题目4C语言中,为只写操作打开一个文本文件的方式为( )。正确答案是:"w" 题目5C语言中,文本文件的打开方式共有( )。正确答案是:6 题目6C语言中,为读和写操作打开一个二进制文件,若文件不存在则自动建立空文件的打开方式为( )。 选择一项:正确答案是:"wb+"
【知识分享】

题目7从一个文本文件中读取以换行符结束的一个字符串的系统函数为( )。正确答案是:fgets( 题目8 向一个文本文件中写入一个字符的系统函数为( )。 选择一项:正确答案是:fputc( 题目9向一个二进制文件中写入数据的系统函数为( )。正确答案是:fwrite( 题目10从一个二进制文件中读取数据的系统函数为fread(,它的参数有( )。正确答案是:4 二、判断题
题目11一个磁盘数据文件的文件名由文件主名和扩展名所组成,其中间用圆点分开。正确的答案是“对”。 题目12当向字符文件输出一个换行符时,实际将输出的是回车符或换行符。正确的答案是“错”。 题目13C语言系统中提供一个用来描述文件属性的类型标识符为FILE。正确的答案是“对”。
题目14在数据文件打开方式字符串中,字符rwa具有确定的含义,分别代表读、写和追加方式。正确的答案是“对”。
题目15在数据文件打开方式字符串中,字符加号(+只用于打开二进制文件的方式中,不能用于打开文本文件的方式中。正确的答案是“错”。
题目16每次只能从文本文件中读取一个字符,不能一次读取一行字符串。正确的答案是“错”。 题目17从文本文件中输入数据时,需要调用系统函数fgetc(fgets(。正确的答案是“对”。 题目18向文本文件中输出数据时,需要调用系统函数fputc(fgetc(。正确的答案是“错”。 题目19对二进制文件进行读和写操作将使用同一个系统函数。正确的答案是“错”。
题目20C语言中,系统函数fseek(用来移动数据文件中的文件位置指针。正确的答案是“对”


本文来源:https://www.2haoxitong.net/k/doc/9c8ac123996648d7c1c708a1284ac850ad0204f0.html

《国家开放大学C语言试题及答案【最新整理】.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式