C语言程序设计形考任务(共18页).docx
精选优质文档-倾情为你奉上一、选择题(共20分,每小题2分)题目1当处理特定问题时的循环次数已知时,通常采用的语句是( )。选择一项:a. for b. while c. do-while d. switch 正确答案是:for题目2在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写成的语句是( )。选择一项:a. for b. if c. do d. while 正确答案是:if题目3for语句能够被改写成的语句是( )。选择一项:a. 复合 b. if c. switch d. while 正确答案是:while题目4下面循环语句执行结束后输出的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 正确答案是:n/2+1题目5在下面循环语句中,内层循环体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 正确答案是:n(n+1)/2题目6在下面的do循环语句中,其循环体被执行的次数为( )。int i=0; do i+; while(i*i<10);选择一项:a. 4 b. 3 c. 5 d. 2 正确答案是:4题目7在下面的一维数组定义中,有语法错误的选项是( )。选择一项:a. int a=1,2,3; b. int a10=0; c. int a; d. int a5; 正确答案是:int a;题目8在下面的二维数组定义中,语法正确的选项是( )。选择一项:a. int a5; b. int a5; c. int a3=1,3,5,2; d. int a(10); 正确答案是:int a3=1,3,5,2;题目9假定一个二维数组的定义语句为“int a34=3,4,2,8,6;”,则元素a11的值为( )。选择一项:a. 2 b. 4 c. 6 d. 8 正确答案是:8题目10假定一个二维数组的定义语句为“int a34=3,4,2,8,6;”,则元素a21的值为( )。选择一项:a. 0 b. 4 c. 8 d. 6 正确答案是:0二、判断题(共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。选择一项:对 错 正确的答案是“对”。题目27strcmp函数用于进行两个字符串之间的比较。选择一项:对 错 正确的答案是“对”。题目28strcpy函数用于把一个字符串拷贝到另一个字符数组空间中。选择一项:对 错 正确的答案是“对”。题目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 14题目32#include<stdio.h> void main() int i,s=0; for(i=1;i<=5;i+) s+=i*i; printf("s=%dn",s); 正确答案是:s=55题目33#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 20题目34#include<stdio.h> void main() int n=6,y=1; while(n) y*=n-; printf("y=%dn",y); 正确答案是:y=720题目35#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 4题目36#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); 正确答案是:27题目37 #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 4题目38#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 22题目39#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 11题目40#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); 专心-专注-专业