欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    国家开放大学《C语言程序设计》形考任务1-4参考答案.docx

    • 资源ID:67375488       资源大小:39.04KB        全文页数:28页
    • 资源格式: DOCX        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    国家开放大学《C语言程序设计》形考任务1-4参考答案.docx

    国家开放大学C语言程序设计形考任务1-4参考答案形考任务1一、选择题(共40分,每小题2分)1.在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为()。A. mainB. MAINC. nameD. function2.C语言源程序文件的缺省扩展名为()。A. cppB. exeC. objD. c3.由C语言目标文件连接而成的可执行文件的缺省扩展名为()。A. cppB. exeC. objD. c4.程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用的分隔符为()。A. 空格或逗号B. 逗号或回车C. 逗号或分号D. 空格或回车5.每个C语言程序文件的编译错误被分为()。A. 1类B. 2类C. 3类D. 4类6.不符合C语言规定的复合语句是()。A. B. ;C. x=0;D. y=107.C语言程序中的基本功能模块为()。A. 表达式B. 标识符C. 语句D. 函数8.在一个函数定义中,函数头包括的3个部分依次为函数类型、函数名和()。A. 表达式B. 语句C. 参数表D. 函数体9.在一个程序文件中,若要使用#include命令包含一个用户定义的头文件,则此头文件所使用的起止定界符为一对()。A. 尖括号B. 双引号C. 单引号D. 花括号10.在C语言程序中,多行注释语句使用的开始标记符为()。A. /B. /*C. */D. *11.在printf()函数调用的格式字符串中,若使用格式符为“%c”,则对应输出的数据类型为()。A. charB. intC. floatD. double12.在printf()函数调用的格式字符串中,若使用格式符为“%5d”,则规定对应输出的数据占用的字符位置个数为()。A. 5B. 4C. 3D. 613.转义字符''表示的字符是()。A. 单引号B. 双引号C. 反斜线D. 问号14.枚举类型中的每个枚举常量的值都是一个()。A. 整数B. 浮点数C. 字符D. 逻辑值15.运算符优先级最高的是()。A. =B. *=C. &&D. !=16.设x和y均为逻辑值,则x && y为真的条件是()。A. 它们均为真B. 其中一个为真C. 它们均为假D. 其中一个为假17.设有语句“int a=12; a+=a*a;”,则执行结束后,a的值为()。A. 12B. 144C. 156D. 28818.x>0 && x<=10的相反表达式为()。A. x<=0 | x>10B. x<=0 && x>10C. x<=0 | x<=10D. x>0 && x>1019.字符串“a+b=12n”的长度为()。A. 6B. 7C. 8D. 920.在下列的符号常量定义中,错误的定义语句格式为()。A. const int M1=10;B. const int M2=20;C. const int M3 10;D. const char mark='3'二、判断题(共60分,每小题2分。叙述正确则回答“是”,否则回答“否”)21.C语言中的每条简单语句以分号作为结束符。()22.C语言中的每条复合语句以花括号作为结束符。(×)23.在C语言程序中,在行尾使用注释的开始标记符为一对单斜线字符。()24.注释内容的开始所使用的标记符为/*,则注释内容的结束所使用的标记符为*/。()25.在一个C语言程序文件中,若要包含一个头文件,则使用以百分号开始的预处理命令。(×)26.于输出表达式值的标准输出函数是printf()。()27.当不需要函数返回任何值时,则需要使用保留字void作为函数的返回值类型。()28.每个C程序文件在编译时可能出现有警告性错误,其对应的标识符为error。(×)29.十进制数25表示成符合C语言规则的八进制数为31。(×)30.十进制数25表示成符合C语言规则的十六进制数为0x19。()31.在C语言中,转义字符'n'表示一个换行符。()32.执行“printf("%c",'F'-2);”语句后得到的输出结果为H。(×)33.已知字符'C'的ASCII码为67,当执行“int x='C'+5;”语句后x的值为72。()34.假定一个枚举类型的定义为“enum RBab,ac=3,ad,aex=ad;”,则x的值为2。(×)35.float的类型长度为8。(×)36.在C语言中,常数28和3.26具有相同的数据类型。(×)37.若需要定义一个符号常量,并且使C语言能够进行类型检查,则应在定义语句的开始使用保留字const。()38.使用const语句定义一个符号常量时,不必对它进行初始化。(×)39.表达式45%13的值为3。(×)40.假定x=5,则表达式2*x+的值为12。(×)41.表达式(float)25/4的值为6。(×)42.表达式x=x+1表示成增量表达式为+x。()43.关系表达式(x!=0)的等价表达式为(x)。 ()44.关系表达式x+y>5的相反表达式为x+y<=5。()45.逻辑表达式(a>b | b=5)的相反表达式为(a>b && b=5)。(×)46.若x=5,y=10,则x>y逻辑值为真。(×)47.假定x=5,则执行“a=(x?10:20);”语句后a的值为10。()48.带有随机函数的表达式rand()%20的值所在的区间范围是019。()49.假定x=5,则执行“y=x+;”语句后,x的值为5。(×)50.假定x=5,则执行“y=+x;”语句后,y的值为6。()形考任务2一、选择题(共20分,每小题2分)1.当处理特定问题时的循环次数已知时,通常采用的语句是( )。a. forb. whilec. do-whiled. switch2.在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写成的语句是( )。a. forb. ifc. dod. while3.for语句能够被改写成的语句是( )。a. 复合b. ifc. switchd. while4.下面循环语句执行结束后输出的i值为( )。for(int i=0; i<n; i+) if(i>n/2) cout<<i<<endl; break;a. n/2b. n/2+1c. n/2-1d. n-15.在下面循环语句中,内层循环体S语句的执行总次数为( )。for(int i=0; i<n; i+) for(int j=i; j<n; j+) S;a. n2b. (n+1)/2c. n(n-1)/2d. n(n+1)/26.在下面的do循环语句中,其循环体被执行的次数为( )。int i=0; do i+; while(i*i<10);a. 4b. 3c. 5d. 27.在下面的一维数组定义中,有语法错误的选项是( )。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 a(10);9.假定一个二维数组的定义语句为“int a34=3,4,2,8,6;”,则元素a11的值为( )。a. 2b. 4c. 6d. 810.假定一个二维数组的定义语句为“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;”,则每个数组元素的行下标取值范围在0M-1之间。()20.假定二维数组的定义为“double aMN;”,则每个数组元素的列下标取值范围在0N之间。(×)21.存储一个空字符串需要占用0个字节的存储空间。(×)22.使用“typedef char BB1050;”语句定义标识符BB为含有10行50列的二维字符数组类型。()23.存储字符'a'需要占用1个字节的存储空间。()24.空字符串的长度为1。(×)25.字符串"a:xxk数据"的长度为13。(×)26.为了存储一个长度为n的字符串,所使用的字符数组的长度至少为n+1。()27.strcmp函数用于进行两个字符串之间的比较。()28.strcpy函数用于把一个字符串拷贝到另一个字符数组空间中。()29.一个二维字符数组a1020能够最多存储9个字符串。(×)30.一个二维字符数组a1020能够存储的每个字符串的长度不超过20。(×)三、填空题:写出下列每个程序运行后的输出结果(共40分,每小题4分)31.#include<stdio.h> void main() int x=5; switch(2*x-3) case 4: printf("%d ",x); case 7: printf("%d ",2*x+1); case 10: printf("%d ",3*x-1); break; default: printf("%s","defaultn"); 答案:11 1432.#include<stdio.h> void main() int i,s=0; for(i=1;i<=5;i+) s+=i*i; printf("s=%dn",s); 答案:s=5533.#include<stdio.h> void main() int i, s1=0, s2=0; for(i=0;i<10;i+) if(i%2) s1+=i; else s2+=i; printf("%d %dn",s1,s2); 答案:25 2034.#include<stdio.h> void main() int n=6,y=1; while(n) y*=n-; printf("y=%dn",y); 答案:y=72035.#include<stdio.h> const int M=20; void main() int i,c2,c3,c5; c2=c3=c5=0; for(i=1; i<=M; i+) if(i%2=0) c2+; if(i%3=0) c3+; if(i%5=0) c5+; printf("%d %d %dn",c2,c3,c5); 答案:10 6 436.#include<stdio.h> void main() int i,s; for(i=1,s=0;i<10;i+) if(i%3=0) continue; s+=i; printf("%dn",s); 答案:2737.#include<stdio.h> void main() int a8=12,39,26,41,55,63,72,40; int i, i1=0, i2=0; for(i=0;i<8;i+) if(ai%2=1) i1+; else i2+; printf("%d %dn",i1,i2); 答案:4 438.#include<stdio.h> int a10=4,5,6,15,20,13,12,7,8,9; void main() int i,s4=0; for(i=0; i<10; i+) switch(ai%4) case 0: s0+=ai;break; case 1: s1+=ai;break; case 2: s2+=ai;break; default: s3+=ai;break; for(i=0; i<4; i+) printf("%d ",si); 答案:44 27 6 2239.#include<stdio.h> void main() char a="abcdbfbgacd" int i1=0, i2=0, i=0; while(ai) if(ai='a') i1+; if(ai='b') i2+; i+; printf("%d %d %dn",i1,i2,i); 答案:2 3 1140.#include<stdio.h> void main() int a34=1,2,7,8,5,6,10,6,9,12,3,4; int m=a00; int i,j; for(i=0; i<3; i+) for(j=0; j<4; j+) if(aij>m) m=aij; printf("%dn",m); 答案:12四、简答题:根据下列每个题目要求编写程序(共20分,每小题4分)41.编写一个函数,函数头格式为“double Mean(double aMN,int m,int n)”,要求返回二维数组amn中所有元素的平均值,假定在计算过程中采用变量v存放平均值。参考答案:double Mean(double aMN,int m,int n) int i,j; double v=0.0; for(i=0; i<m; i+) for(j=0; j<n; j+) v+=aij; v/=m*n; return v; 42.编写一个递归函数“int FF(int a, int n)”,求出数组a中所有n个元素之积并返回。参考答案:int FF(int a, int n) if(n=1) return an-1; else return an-1*FF(a,n-1); 43.编写一个主函数,利用while循环,求出并显示满足不等式的最小n值。参考答案:#include<stdio.h> void main() int i=0; double s=0; /或int i=1; double s=1; while(s<5) s+=(double)1/+i; printf("n=%dn",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+=i*i; while(s<1000); printf("n=%dn",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); for(i=1; i<=n; i+) s+=i*i; printf("s=%dn",s); 形考任务3一、选择题(共30分,每小题2分)1.在下面的函数声明语句中,存在着语法错误的是( )。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. long3.假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址增加的字节数为( )。a. 1b. 2c. 4d. 84.假定a为一个数组名,在下面的表达式中,存在语法错误的是( )。a. aib. *a+c. *ad. *(a+1)5.用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 a10, x, *pa=a;”,要把数组a中下标为3的元素值赋给x,则不正确的语句为( )。a. x=pa3;b. x=*(a+3);c. x=a3;d. x=*pa+3;9.假定有语句为“int b10; int *pb;”,则下面不正确的赋值语句为( )。a. pb=b;b. pb=&b0;c. pb=b+2;d. pb=b5;10.已知“int *p=malloc(100);”,要释放p所指向的动态内存,正确的语句为( )。a. free(p);b. free p;c. free(*p);d. freep;11.在程序的一个文件中定义的函数,若要在另一个文件中调用,则必须在这另一个文件中给出该函数的( )。a. 原型语句b. 参数表c. 函数名d. 返回类型12.假定一个函数定义为“static int f1(int x,int y)return x+y;”,该函数名称为( )。a. staticb. intc. f1d. return13.假定一个函数的原型语句为“int ff(int* x);”,一个整型数组为a10,则下面函数调用表达式不正确的是( )。a. ff(a)b. ff(a0)c. ff(a+3)d. ff(&a0)14.假定一个函数的数组参数说明为char a,与之等价的指针参数说明为( )。a. char ab. char* ac. char& ad. char*a15.假定一个函数的二维数组参数说明为char wN,与之等价的指针参数说明为( )。a. char (*w)Nb. char *wNc. char (*w)Nd. char*a二、判断题(共30分,每小题2分。叙述正确则回答“是”,否则回答“否”)16.在C语言中,一个函数由函数头和函数体组成。()17.在函数模块之外定义的变量称为全局变量,若没有被初始化则系统隐含对它赋初值0。()18.如果一个函数只允许同一程序文件中的函数调用,则不应在该函数定义的开始前加上保留字static。(×)19.如果在一个函数体中又出现对自身函数的调用,此种函数调用被称为递归调用。()20.调用系统函数时,要先使用#include命令包含该系统函数的原型语句所在的系统头文件。()21.函数形参变量不属于局部变量。(×)22.假定p所指对象的值为25,p+1所指对象的值为46,则*p+的值为46。(×)23.假定p所指对象的值为25,p+1所指对象的值为46,则*+p的值为25。(×)24.假定p所指对象的值为25,p+1所指对象的值为46,则执行*(p+)运算后,p所指对象的值为46。()25.假定a是一个指针数组,则a+i所指对象的地址比a地址大4*i字节。()26.若要把一个整型指针p转换为字符指针,则采用的强制转换表达式为(char*)p。()27.假定一个数据对象为int*类型,则指向该对象的指针类型仍为int*类型。(×)28.假定x为一个简单变量,则&x表示x的地址。()29.若p指向x,则*p与x的值不同。(×)30.NULL是一个符号常量,通常作为空指针值,它代表的值为0。()三、写出下列每个程序运行后的输出结果(共20分,每小题4分)31.#include<stdio.h> int WF(int x, int y) x=x+y; y=x+y; return x+y; void main() int x=5, y=7; int z=WF(x,y); printf("z=%dn",z); 答案:z=3132.#include<stdio.h> #include<string.h> void fun(char ss); void main( ) char s15="0123456789" fun(s); printf("%sn",s); void fun(char ss) int i, n=strlen(ss) ; for(i=0; i<n/2; i+) char c=ssi; ssi=ssn-1-i; ssn-1-i=c; 答案:987654321033.#include<stdio.h> int Count(int a, int n, int x) int i,c=0; for(i=0;i<n;i+) if(ai>x) c+; return c; void main() int a8=20,15,32,47,24,36,28,70; int b=Count(a,8,30); printf("b=%dn",b); 答案:B=434.#include<stdio.h> void main() int a8=3,5,7,9,2,3,4,8; int s=0,*p; for(p=a;p<a+8;) s+=*p+; printf("s=%dn",s); 答案:s=4135.#include<stdio.h> int LA(int *a, int n, int x) int i,s=0; for(i=0;i<n;i+) if(ai<x) s+=ai; return s; void main() int a8=5,10,15,8,12,3,9,20; int b=LA(a,5,10); int c=LA(a+2,6,10); printf("%d %dn",b,c); 答案:13 20四、写出下列每个函数的功能(共20分,每小题4分)36.double SF(double x, int n) /n为正整数 double p=1,s=1; int i; for(i=1;i<=n;i+) p*=x; s+=p; return s; 答案:计算出1+x+x2+.+xn的值并返回。37.int SG(int x) /x为大于等于2的整数 int i=2; while(i*i<=x) if(x%i=0) break; i+; if(i*i<=x) return 0; else return 1; 答案:判断x是否为一个质数(素数),若是则返回1,否则返回0。38.int WB(int a, int n, int x) for(int i=0;i<n;i+) if(ai=x) return 1; return 0; 答案:从数组an中顺序查找值为x的元素,若查找成功则返回1,否则返回0。39.int fun(int m, int n) int c=0; static int b=2; if(m<b | n<b) return m*n; else if(m%b=0 && n%b=0) c=b; return c*fun(m/b,n/b); else b+; return fun(m,n); 答案:一个递归函数过程,求出两个自然数m和n的最小公倍数。40.int LK(double a, int n) double s=0; int i,m=0; for(i=0;i<n;i+) s+=ai; s/=n; for(i=0;i<n;i+) if(ai>=s) m+; return m; 答案:求出并返回数组a的n个元素中大于等于平均值的元素个数。形考任务4一、选择题(共30分,每小题2分)1.假定有“struct BOOKchar title40; 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;2.假定有“struct BOOKchar title40; float price; book;”,则正确的语句为( )。a. struct BOOK x= &book;b. struct BOOK *x=&book;c. struct BOOK x=calloc(BOOK);d. struct BOOK *x=BOOK;3.在结构类型的定义中,不同数据成员的定义项之间采用的分隔符是( )。a. 句点b. 冒号c. 分号d. 逗号4.假定一个结构类型的定义为 “struct Aint a,b; double c;”,则该类型的长度为( )。a. 8b. 10c. 12d. 165.假定一个结构类型的定义为 “struct Dint a; D* next;”,则该类型的长度为( )。a. 4b. 8c. 12d. 166.假定要访问一个结构指针变量x中的数据成员a,则表示方法为( )。a. x.ab. x->ac. x(a)d. xa7.与结构成员访问表达式x.name等价的表达式为( )。a. x->nameb. &x->namec. (&x)->named. (*x)->name8.假定一个链表中结点的结构类型为“struct AAint data, struct AA *next;”,则next数据成员的类型为( )。a. struct AAb. struct AA*c. AAd. int9.假定一个链表的表头指针为f,结点中包含有data和next域,则向该链表的表头插入一个地址为p的结点时,应执行的操作为( )。a. p->next=fb. p->next=f和f=pc. f=p->nextd. f->next=p和f=p10.标准输入设备键盘的文件流标识符是( )。a. stdinb. stdoutc. stderrd. stdio11.表示文件结束符的符号常量为( )。a. eofb. Eofc. EOFd. feof12.C语言中打开一个数据文件的系统函数为

    注意事项

    本文(国家开放大学《C语言程序设计》形考任务1-4参考答案.docx)为本站会员(国****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开