国家开放大学C语言程序设计A第一次形考任务及答案
- 格式:docx
- 大小:306.64 KB
- 文档页数:10


•第1章计算机基础知识一、单选题题目1正确获得1.00分中的1.00分标记题目题干1. 一个完整的计算机系统应当包括()。
选择一项:A. 硬件系统与软件系统B. 主机、键盘与显示器C. 系统硬件与系统软件D. 计算机与外设反馈Your answer is correct.正确答案是:硬件系统与软件系统题目2正确获得1.00分中的1.00分标记题目题干2. ()是一种系统软件。
选择一项:A. 数据库B. 操作系统C. 编译程序D. 工资管理系统反馈Your answer is correct.正确答案是:操作系统题目3正确获得1.00分中的1.00分标记题目题干3. 某单位的人事档案管理程序属于()。
选择一项:A. 系统软件B. 工具软件C. 应用软件D. 字表处理软件反馈Your answer is correct.正确答案是:应用软件题目4正确获得1.00分中的1.00分标记题目题干4. ()构成计算机的物理实体。
选择一项:A. 计算机程序B. 计算机软件C. 计算机系统D. 计算机硬件反馈Your answer is correct.正确答案是:计算机硬件题目5正确获得1.00分中的1.00分标记题目题干5. 微型计算机中()的主要功能是进行算术和逻辑运算。
选择一项:A. 存储器B. 总线C. 控制器D. 运算器反馈Your answer is correct.正确答案是:运算器题目6正确获得1.00分中的1.00分标记题目题干6. 下列设备中.()属于输出设备。
选择一项:A. 键盘B. 扫描仪C. 显示器D. 鼠标器反馈Your answer is correct.正确答案是:显示器题目7正确获得1.00分中的1.00分标记题目题干7. 微机的核心部件是()。
选择一项:A. 总线B. 微处理器C. 内存储器D. 硬盘反馈Your answer is correct.正确答案是:微处理器题目8正确获得1.00分中的1.00分标记题目题干8. ()是微型计算机中运算器、控制器及内存储器统称。
一、选择题(共30分,每小题2分)在下面的函数声明语句中,存在着语法错误的是()。
a. AA(int a, int b)b. AA(int, int)c. AA(int a; int b)d. AA(int a, int)题目2在下面的保留字中,不能作为函数的返回值类型的是()。
a. voidb. intc. enumd. long题目3假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址增加的字节数为( )。
a. 1b. 2c. 4d. 8题目4假定a为一个数组名,在下面的表达式中,存在语法错误的是( )。
a. a[i]b. *a++c. *ad. *(a+1)用calloc函数创建具有10个整型元素的一维数组的正确语句是()。
a. int *p=calloc(10,2);b. int *p=calloc(10);c. int *p=calloc(10,4);d. int *p=malloc(10)题目6假定变量m定义为“int m=7;”,则下面正确的语句为()。
a. int p=&m;b. int *p=&m;c. int &p=*m;d. int *p=m;题目7假定k是一个double类型的变量,则定义变量p的正确语句为()。
a. double p=&k;b. int *p=&k;c. double &p=*k;d. char *p="Thank you!";题目8若有语句为“int a[10], x, *pa=a;”,要把数组a中下标为3的元素值赋给x,则不正确的语句为()。
a. x=pa[3];b. x=*(a+3);c. x=a[3];d. x=*pa+3;假定有语句为“int b[10]; int *pb;”,则下面不正确的赋值语句为()。
a. pb=b;b. pb=&b[0];c. pb=b+2;d. pb=b[5];题目10已知“int *p=malloc(100);”,要释放p所指向的动态内存,正确的语句为()。
一、选择题共20分,每小题2分当处理特定问题时的循环次数已知时,通常采用的语句是;a. forb. whilec. do-whiled. switch题目2在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写成的语句是;a. forb. ifc. dod. while题目3for语句能够被改写成的语句是;a. 复合b. ifc. switchd. while题目4下面循环语句执行结束后输出的i值为;forint i=0; i<n; i++ ifi>n/2 {cout<<i<<endl; break;}a. n/2b. n/2+1c. n/2-1d. n-1题目5在下面循环语句中,内层循环体S语句的执行总次数为; forint i=0; i<n; i++forint j=i; j<n; j++ S;a. n2b. n+1/2c. nn-1/2d. nn+1/2题目6在下面的do循环语句中,其循环体被执行的次数为; int i=0; do i++; whileii<10;a. 4b. 3c. 5d. 2题目7在下面的一维数组定义中,有语法错误的选项是;a. int a={1,2,3};b. int a10={0};c. int a;d. int a5;题目8在下面的二维数组定义中,语法正确的选项是;a. int a5;b. int a5;c. int a3={{1,3,5},{2}};d. int a10;题目9假定一个二维数组的定义语句为“int a34={{3,4},{2,8,6}};”,则元素a11的值为;a. 2b. 4c. 6d. 8题目10假定一个二维数组的定义语句为“int a34={{3,4},{2,8,6}};”,则元素a21的值为;a. 0b. 4c. 8d. 6二、判断题共20分,每小题1分;叙述正确则回答“是”,否则回答“否”题目11在执行“typedef int DataType;”语句后,标识符DataType与保留字int具有完全相同的含义和作用; 对题目12在switch语句中,每个case和冒号之间的表达式只能是常量; 对题目13为了结束本层循环类语句或switch语句的执行过程,在语句体中需要使用break语句; 对题目14在程序中执行到break语句时,将结束所在函数的执行过程,返回到调用该函数的位置;错题目15在程序执行完成任一个函数调用后,将结束整个程序的执行过程,返回到操作系统或C语言集成开发环境界面窗口; 错题目16假定一维数组的定义为“char a8;”,则该数组所含元素的个数大于8; 错题目17假定二维数组的定义为“int a35;”,则该数组所占存储空间的字节数为60; 对题目18假定二维数组的定义为“char aMN;”,则该数组所含元素的个数为M+N;错题目19假定二维数组的定义为“double aMN;”,则每个数组元素的行下标取值范围在0~M-1之间; 对题目20假定二维数组的定义为“double aMN;”,则每个数组元素的列下标取值范围在0~N之间;错题目21存储一个空字符串需要占用0个字节的存储空间; 错题目22使用“typedef char BB1050;”语句定义标识符BB为含有10行50列的二维字符数组类型; 对题目23存储字符'a'需要占用1个字节的存储空间; 对题目24空字符串的长度为1; 错题目25字符串"a:\\xxk\\数据"的长度为13; 错题目26为了存储一个长度为n的字符串,所使用的字符数组的长度至少为n+1; 对题目27strcmp函数用于进行两个字符串之间的比较; 对题目28strcpy函数用于把一个字符串拷贝到另一个字符数组空间中; 对题目29一个二维字符数组a1020能够最多存储9个字符串; 错题目30一个二维字符数组a1020能够存储的每个字符串的长度不超过20; 错三、填空题:写出下列每个程序运行后的输出结果共40分,每小题4分题目31include<stdio.h>void main{int x=5;switch2x-3 {case 4: printf"%d ",x;case 7: printf"%d ",2x+1;case 10: printf"%d ",3x-1; break;default: printf"%s","default\n";}}11 14题目32include<stdio.h>void main {int i,s=0;fori=1;i<=5;i++ s+=ii;printf"s=%d\n",s;}s=55题目33include<stdio.h>void main {int i, s1=0, s2=0;fori=0;i<10;i++ifi%2 s1+=i; else s2+=i;printf"%d %d\n",s1,s2;}25 20题目34include<stdio.h>void main {int n=6,y=1;whilen y=n--;printf"y=%d\n",y;}y=720题目35include<stdio.h>const int M=20;void main{int i,c2,c3,c5;c2=c3=c5=0;fori=1; i<=M; i++ {ifi%2==0 c2++;ifi%3==0 c3++;ifi%5==0 c5++;}printf"%d %d %d\n",c2,c3,c5;}10 6 4题目36include<stdio.h>void main{int i,s;fori=1,s=0;i<10;i++ {ifi%3==0 continue;s+=i;}printf"%d\n",s;}27题目37include<stdio.h>void main {int a8={12,39,26,41,55,63,72,40};int i, i1=0, i2=0;fori=0;i<8;i++ifai%2==1 i1++; else i2++;printf"%d %d\n",i1,i2;}4 4题目38include<stdio.h>int a10={4,5,6,15,20,13,12,7,8,9};void main{int i,s4=0;fori=0; i<10; i++ {switchai%4 {case 0: s0+=ai;break;case 1: s1+=ai;break;case 2: s2+=ai;break;default: s3+=ai;break;}}fori=0; i<4; i++ printf"%d ",si;}44 27 6 22题目39include<stdio.h>void main {char a="abcdbfbgacd";int i1=0, i2=0, i=0;whileai {ifai=='a' i1++;ifai=='b' i2++;i++;}printf"%d %d %d\n",i1,i2,i;}2 3 11题目40include<stdio.h>void main {int a34={{1,2,7,8},{5,6,10,6},{9,12,3,4}};int m=a00;int i,j;fori=0; i<3; i++forj=0; j<4; j++ifaij>m m=aij;printf"%d\n",m;}12四、简答题:根据下列每个题目要求编写程序共20分,每小题4分题目41编写一个函数,函数头格式为“double Meandouble aMN,int m,int n”,要求返回二维数组amn 中所有元素的平均值,假定在计算过程中采用变量v存放平均值;double Meandouble aMN,int m,int n{int i,j;double v=0.0;fori=0; i<m; i++forj=0; j<n; j++ v+=aij;v/=mn;return v;}题目42编写一个递归函数“int FFint a, int n”,求出数组a中所有n个元素之积并返回;include<stdio.h>int FFint a , int n{int mul=1;ifn==1mul=a0;else mul=an-1FFa,n-1;return mul;}/void main{int a6={1,2,3,4,5,6};printf"%d\n",FFa,6;}/题目43编写一个主函数,利用while循环,求出并显示满足不等式1+1/2+1/3+……+1/n>5的最小n 值;include<stdio.h>void main{int i=0; double s=0; //或int i=1; double s=1;whiles<5 s+=double1/++i;printf"n=%d\n",i;}题目44编写一个主函数,求出满足不等式22+42+...+n2<1000的最大n值,假定分别用i和s作为取偶数值和累加值的变量,并限定使用do循环编程;include<stdio.h>void main{int i=0; //用i作为依次取值偶数的变量int s=0; //用s作为累加变量do {i+=2;s+=ii;}whiles<1000;printf"n=%d\n",i-2;}题目45编写一个主函数,计算并输出12+22+...+n2值,其中n值由键盘输入;include<stdio.h>void main{int i; //用i作为计数循环变量int s=0; //用s作为累加变量int n;printf"输入一个自然数: ";scanf"%d",&n;fori=1; i<=n; i++ s+=ii;printf"s=%d\n",s;}。