为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > 电大《C语言程序设计》2019-2020模拟试卷及答案

电大《C语言程序设计》2019-2020模拟试卷及答案

2021-08-30 2页 doc 304KB 344阅读

用户头像 个人认证

is_083610

暂无简介

举报
电大《C语言程序设计》2019-2020模拟试卷及答案《C语言程序设计》2019-2020模拟试卷及答案一、单项选择题。把合适的选项编号填写在括号内。1.不符合C语言规定的复合语句是()。DA.{}B.{;}C.{x=0;}D.{y=10}2.C语言中的选择类语句有两条,它们是()。AA.if和switchB.if和elseC.switch和caseD.else和case3.在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为()。AA.main...
电大《C语言程序设计》2019-2020模拟试卷及答案
《C语言程序设计》2019-2020模拟试卷及答案一、单项选择。把合适的选项编号填写在括号内。1.不符合C语言的复合语句是()。DA.{}B.{;}C.{x=0;}D.{y=10}2.C语言中的选择类语句有两条,它们是()。AA.if和switchB.if和elseC.switch和caseD.else和case3.在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为()。AA.mainB.MAINC.nameD.function4.在C语言程序中,多行注释语句使用的开始标记符为()。BA.//B./*C.*/D.**5.用于输出表达式值的输出函数是()。CA.scanf()B.print()C.printf()D.output()6.在printf()函数调用的格式字符串中,每个格式符的先导字符为()。BA.#B.%C.$D.@7.由C语言源程序文件编译而成的目标文件的扩展名为()。CA.cppB.exeC.objD.C8.由C语言目标文件连接而成的可执行文件的扩展名为()。BA.cppB.exeC.objD.c9.每个C程序文件在编译时可能出现有警告性错误,其对应的标识符号为()。AA.warningB.errorC.warnD.err10.在C语言中,表示换行符的转义字符为()。CA.\fB.\rC.\nD.\m11.字符串“a+b=12\n”的长度为()。BA.6B.7C.8D.912.要定义a和b为两个整型变量,则使用的定义语句为()。BA.inta;b;B.inta,b;C.intab;D.inta:b;13.下列数值中最大值是()。CA.28/8B.35/13C.28%8D.35%514.下列数值中最小值是()。DA.28/8B.35/3C.28%8D.35%315.已知x的初值为5,则下列各表达式中的最大值为()。DA.x%=3B.x+=10C.x/=2D.x*=416.x>5的相反表达式为()。DA.x<5B.x!=5C.x>=5D.x<=517.当处理问题时的循环次数是确定的,则采用的最合适的循环方式为()。AA.forB.whileC.do-whileD.switch18.循环体至少被执行一次的循环语句为()。CA.forB.whileC.do-whileD.任一种19.控制类语句包括的3类语句为()。AA.选择、循环、跳转B.选择、循环、输入C.选择、输入、输出D.循环、选择、函数20.在下列的语句中,必须以分号作为结束的语句是()。CA.forB.whileC.doD.switch21.在一个数组中,数组元素a[i]前面的元素个数为()。AA.iB.i+1C.i-1D.2*i22.假定二维数组的定义语句为“inta[3][5];”,则该数组所含元素的个数为(B)。A.8B.15C.10D.12假定二维数组的定义语句为“chara[M][N];”,则该数组所含元素的个数为(C)。A.(M-1)*(N-1)B.M*N-1C.M*ND.M*N+1假定二维数组的定义语句为“int*a[3][5];”,则该数组所占用的存储空间的字节数为()。DA.120B.15C.30D.6025.若需要求出一个字符串的长度,则选用的函数是()。AA.strlenB.strcmpC.strcatD.strcpy26.将两个字符串连接起来组成一个字符串时,选用的函数是()。CA.strlenB.strcapC.strcatD.strcmp27.若需要把一个字符串赋给字符数组,则选用的函数是()。DA.strlenB.strcmpC.strcatD.strcpy28.假定p所指对象的值为25,p+1所指对象的值为42,则表达式*++p的值为(B)。A.25B.42C.26D.4329.若p指向x,则与x的等价表示为()。BA.pB.*pC.*xD.&x30.假定a为一个字符数组名,则元素a[8]的地址比该数组的首地址大()。BA.4个字节B.8个字节C.16个字节D.32个字节31.下面的保留字不能作为函数返回类型的是()。CA.voidB.intC.sizeofD.long32.若一个函数声明为“double*function();”,则该函数的返回值类型为(B)。A.实数型B.实数指针型C.函数指针型D.数组型33.在下面的函数声明语句中存在着语法错误的是()。CA.AA(inta,intb)B.AA(int,int)C.AA(inta;intb)D.AA(inta,int)34.函数定义参数表中的每个形参变量,其作用域范围为所在的整个()。CA.程序B.文件C.函数D.参数表35.在函数体中定义的变量具有()。BA.全局作用域B.局部作用域C.文件作用域D.函数作用域36.在结构类型的定义中,使用的关键字是()。AA.structB.unionC.staticD.enum37.假定一个链表中结点的结构类型为“structAA{intdata,structAA*next;};”,则next数据成员的类型为()。BA.structAAB.structAA*C.AAD.int38.标准输入设备键盘的文件流标识符是()。AA.stdinB.stdoutC.stderrD.stdio39.标准输出设备显示器的文件流标识符是()。BA.stdinB.stdoutC.stderrD.stdio40.从一个文本文件中读取一个字符的系统函数为()。DA.fputc()B.fgets()C.fputs()D.fgetc()41.向一个文本文件中写入一个字符的系统函数为()。AA.fputc()B.fgets()C.fputs()D.fgetc()42.从一个二进制文件中读取数据的系统函数为()。AA.fread()B.fgets()C.fwrite()D.fgetc()43.C语言中使用的字符常量,其起止标记符是()。AA.单引号B.双引号C.中括号D.尖括号44.一个程序文件开始使用的每条预处理命令,其首字符必须是()。BA.@B.#C.$D.%45.在scanf()函数调用的格式字符串中,每个格式符的先导字符为()。BA.#B.%C.$D.@46.控制字符'\n'表示()。DA.回车B.响铃C.换页D.换行47.运算符优先级最高的是()。AA.()B.=C.+D.<48.设x和y均为逻辑值,则x&&y为真的条件是()。AA.它们均为真B.其中一个为真C.它们均为假D.其中一个为假49.若n的值为10,则执行“for(i=1;iaC.x(a)D.x{a}56.在C语言中,关闭一个数据文件的系统函数为()。BA.fopen()B.fclose()C.fread()D.fwrite()二、是非判断题。根据叙述正确与否在其后面的括号内打对号“√”或叉号“×”。1.若要在程序文件中使用标准输入和输出函数,则需要引入的系统头文件为stdio.h。是2.当需要在程序文件中引入系统头文件时,不需要使用#include命令。()否3.在C语言程序中,只有一种使用注释语句的方法。()否4.常数3.26是双精度定点数。()是5.常数3.26是双精度浮点数。()否6.常数3.26f是单精度定点数。()是7.在一条变量定义语句中,只能定义同一类型的变量。()是在一条变量定义语句中,当同时定义多个变量时,各变量之间只能使用逗号分开。)是9.使用const语句定义一个符号常量时,则必须对它同时进行初始化。()是10.表达式x=x+y表示成复合赋值表达式为x=+y。()否11.表达式x=x+1表示成增量表达式为x++。()12.在C语言中,求一个整数的绝对值的函数为abs(x)。()是13.在for循环语句的头部,for后面括号内的各表达式之间使用逗号分开。()否14.在for循环语句的头部,for后面括号内的各表达式之间使用空格隔开。()否15.在for循环语句的头部,for后面括号内共有2个表达式位置。()否16.do-while循环语句是以分号结束的语句。()是17.break语句带有语句体。()否18.return语句只有保留字,没有其他成分。()否19.在一维数组的定义语句中,可以给数组中每个元素赋初值。()是在一维数组的定义语句中,给数组赋初值的部分是用一对花括号括起来的数据表。)是在一维数组的定义语句中,给数组赋初值的部分是用一对圆括号括起来的数据表。)否假定二维数组的定义语句为“doublea[M][N];”,则每个数组元素的行下标取值范围在1~M之间。()否字符串允许为空,并且其长度为0。()是24.存储一个长度为0的空字符串至少需要占用1个字节的存储空间。()是25.一个二维字符数组a[10][20]中存储每个字符串的最大长度为20。()否26.在定义指针变量的语句中,对指针变量可以赋初值。()是27.在定义指针变量的语句中,最前面的类型关键字仍然允许是指针类型。()是28.假定a是一个一维数组,则数组名a的值和&a[0]的值相等。()是29.假定a是一个一维数组,则进行a++运算是不允许的。()是30.已知“inta[10],*p=a;”,则进行p++运算是不允许的。()否31.用于释放动态存储空间的函数为free,使用它需要带有一个参数。()是32.在一个函数定义中,参数表可以为空。()是33.在一个函数定义中,参数表中的参数类型可以为void类型。()否对于不加static标识的局部变量,若没有对它进行初始化,则它的初值是不确定的。()是在函数定义中,若存在着调用自身函数的函数调用表达式,则称此函数为非递归函数。()否36.在C语言程序中,主函数也可以成为递归函数。()否在C语言中,一个结构类型的长度等于所含的所有数据成员类型长度的最大值。)否38.在结构类型的定义中,其中的数据成员可以是本身类型的直接对象。()否39.定义结构类型的同时能够定义它的变量。()是在结构成员访问运算符中,点运算符和箭头运算符的左边均为结构指针变量。)否41.在一个链表的结点结构中,存在着一个指针域,但不一定指向自身结点类型。()否42.在一个链表中,表头结点和表尾结点均无前驱结点。()否43.在C语言中,打开一个数据文件的系统函数为fopen(),它带有两个字符串参数,用来给定文件名和打开方式。()是44.在C语言中,打开一个数据文件的系统函数为fopen(),它带有一个字符串参数,用来给定文件的打开方式。()否45.每次只能向文本文件中写入一个字符,不能一次写入一个字符串。()否46.在C语言字符集中,包含有全部26个英文大写字母和对应的小写字母。()是47.一个C语言程序能够包含多个用户头文件。()是48.在定义一个变量时,不能给它赋初值。()否49.表达式x=x+y表示成复合赋值表达式为x+=y。()是50.关系表达式(x!=0)的等价表达式为(!x)。()否51.当循环次数确定时,while循环语句能够转换为for循环语句。()是52.在一维数组的定义语句中,数组名后带有一对圆括号。()否假定二维数组的定义语句为“doublea[M][N];”,则每个数组元素的列下标取值范围在0~N-1之间。()是54.在C语言中,在定义一个字符数组时,不能利用一个字符串进行初始化。()否55.假定一个数据对象为int*类型,则指向该对象的指针类型为int**。()是56.进行动态存储分配的calloc()函数带有一个参数。()否57.对于标识为static属性的变量,若没有对它进行初始化,则默认的初值为1(。)否58.在结构类型的定义中,结构类型名在关键字struct和定义体之间。()是59.在结构成员访问运算符中,点运算符(.)为双目运算符。()是60.当向字符文件输出一个换行符时,实际将输出的是回车和换行这两个字符。()是三、程序填空题。分析程序后把合适的内容填写在括号内。1.执行下面程序的输出结果为()。15#includevoidmain(){inta=5,b=8,c=6,d=15,x,y;if(a>=b)x=a;elsex=b;if(c>=d)y=c;elsey=d;if(x>=y)printf("%d\n",x);elseprintf("%d\n",y);}2.执行下面程序的输出结果为()。y=11#includevoidmain(){intx=5,y=0;switch(2*x-3){case4:y+=x;break;case7:y+=2*x+1;break;case10:y+=3*x;break;}printf("y=%d\n",y);}3.执行下面程序的输出结果为()。s=78#includevoidmain(){inti,s=0;for(i=1;i<10;i+=3)s+=i*(i+1);printf("s=%d\n",s);}4.执行下面程序的输出结果为()。s=56#includevoidmain(){inti=0,s=0;while(s<50){i+=2;s+=i*i;}printf("s=%d\n",s);}.执行下面程序的输出结果为#includevoidmain(){intx=30,i=1,s=0;do{s+=i*i;i++;}while(svoidmain(){inta[8]={3,8,6,5,9,2,8,5};inti,s=0;for(i=0;i<8;i++)s+=a[i];printf("s=%d\n",s);}.执行下面程序的输出结果为#includevoidmain(){inta[3][3]={{3,8,6},{5,9,2},{8,5,12}};inti,j,s=0;for(i=0;i<3;i++)for(j=0;j<3;j++)s+=a[i][j];printf("s=%d\n",s);}.执行下面程序的输出结果为#include()。s=30()。s=46()。s=58()。s=30voidmain(){inta[3][3]={{3,8,6},{5,9,2},{8,5,12}};inti,j,s=0;for(i=0;i<3;i++)for(j=0;j<3;j++)if(a[i][j]%3==0)s+=a[i][j];printf("s=%d\n",s);}9.执行下面程序的输出结果为()。80#includevoidmain(){inta[8]={6,8,7,12,5,15,18,9};ints=0;int*p=a;while(p#defineN8voidmain(){inta[N]={3,5,8,10,15,20,32,66};inti,x;for(i=0;ivoidmain(){inta[8]={12,15,20,8,5,9,16,10};inti,j,x=a[0]+a[1];for(i=0;i<8;i++)for(j=i+1;j<8;j++)if(a[i]+a[j]>x)x=a[i]+a[j];printf("%d",x);}12.执行下面程序的输出结果为()。s=30#includevoidmain(){inta[3][3]={{3,8,6},{5,9,2},{8,5,12}};inti,j,s=0;for(i=0;i<3;i++)for(j=0;j<3;j++)if(a[i][j]%3==0)s+=a[i][j];printf("s=%d\n",s);}13.当使用xk3(5)调用此函数,并假定从键盘上输入的5个整数为3、4、7、8和10,则返回值为()。32intxk3(intn){//n为大于等于1的整数inti,x,s=0;for(i=0;iintx1=5;staticintx2=8;voidmain(){intx3=20;while(x1+x2intfn3(inta,intb){intc=a;a=b;b=c;returna+2*b-3;}voidmain(){inta=3,b=5;intc=fn3(a+2,b+3);printf("%d\n",3*a+b+c);}216.执行下面程序的输出结果为()。85#includevoidmain(){intx=5,y=8;if(x>=y)printf("%d%d\n",x,y);elseprintf("%d%d\n",y,x);}17.执行下面程序的输出结果为()。f2=81#includevoidmain(){inti,f1=1,f2;for(i=2;i<6;i++){f2=3*f1;f1=f2;}printf("f2=%d\n",f2);}.执行下面程序的输出结果为#include#defineN7voidmain(){inta[N];inti;a[0]=1;a[1]=2;for(i=2;ivoidmain(){inta[8]={10,8,16,15,9,21,7,16};inti,x=a[0];for(i=1;i<8;i++)if(a[i]voidmain(){inta[3][3]={{2,3,4},{5,6,8},{10,15,20}};int*p=(int*)a;ints=0;while(p<(int*)a+9)s+=*p++;printf("%d\n",s);}四、编程题。按题目要求编写程序或函数。1.补充完整下面的函数定义,计算出1+1*3+2*3+...+n*3的值并返回。intFF(intn){inti,s=1;在下面添上一行for循环语句,循环变量为i,累加变量为sreturns;}答案:for(i=1;i<=n;i++)s+=i*3;2.根据函数原型“intFF(inta[],intn)”,编写函数定义,计算并返回数组a[n]中所有元素之和。答案:intFF(inta[],intn){inti,sum=0;//1分for(i=0;i='a'&&*ptr<='z')n++;//3分ptr++;//6分编写一个主函数,计算并输出表达式1+22+32+...+102的值。答案:#includevoidmain(){inti,s=0;//1分for(i=1;i<=10;i++)s+=i*i;//4分printf("s=%d\n",s);//6分}注:若s的初值为1,则循环变量i的初值应修改为2。5.补充完整下面的函数定义,要求返回二维数组a[m][n]中所有元素的平均值。假定在计算过程中采用变量s存放累加值,采用i和j作为扫描数组的循环变量。doubleMean(doublea[][N],intm,intn){inti,j;doubles=0.0;//在下面添上合适的for双重循环语句returns/(m*n);}答案:for(i=0;ivoidmain(){inta[10],i;//用i作为循环变量printf("从键盘输入10个整数:\n");向下补充程序内容,用两个for循环实现printf("\n");}答案:for(i=0;i<10;i++)scanf("%d",&a[i]);//3分for(i=9;i>=0;i--)printf("%d",a[i]);//6分注:第1行中的&a[i]也可替换为a+i
/
本文档为【电大《C语言程序设计》2019-2020模拟试卷及答案】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索