收藏 分销(赏)

2021年电大C语言程序设计形成性考核册答案.doc

上传人:二*** 文档编号:4477252 上传时间:2024-09-24 格式:DOC 页数:43 大小:93.54KB 下载积分:5 金币
下载 相关 举报
2021年电大C语言程序设计形成性考核册答案.doc_第1页
第1页 / 共43页
本文档共43页,全文阅读请下载到手机保存,查看更方便
资源描述
C语言程序设计形成性考核 作业1 一、选取题 1.       在每个C语言程序中都必要包具有这样一种函数,该函数函数名为( A )。 A.main B.MAIN C.name D.funtion 2.C语言原程序文献缺省扩展名为( D )。 A.cpp B.exe C.obj D.C 3.由C语言目的文献连接而成可执行缺省扩展名为( B )。 A.cpp B.exe C.obj D.C 4.程序运营中需要从键盘输入多于一种数据时,各数据之间应使用( D )符号作为分隔符。 A.空格或逗号 B.逗号或回车 C.回车或分号 D.空格或回车 5.每个C语言程序编译错误分为( B )类。 A.1 B.2 C.3 D.4 6.设x 和y 均为逻辑值,则x && y为真条件是( A )。 A.它们均为真 B.其中一种为真 C.它们均为假 D.其中一种为假 7.设有语句“int a=12;a+=a*a;”,则执行结束后,a 值为( C )。 A.12 B.144 C.156 D.288 8.x>0 && x<=10相反表达式为( A )。 A.x<=0 || X>10 B.x<=0 && x>10 C.x<=0 || x<=10 D.x>0 && x>10 9.字符串“a+b=12\n”长度为( B )。 A.6 B.7 C.8 D.9 10.在下列符号常量定义中。错误定义语句格式为( C )。 A.const M1=10; B.const int M2=20; C.const M3 10 D.const char mark=’3’; 11.带有随机函数表达式rand()%20值在( C )区间内, A.1~19 B.1~20 C.0~19 D.0~20 12.当解决特定问题时循环次数已知时,普通采用( A )循环来解决。 A.for B.while C.do-while D.switch 13.在switch语句每个case块中,假定都是以break语句结束,则此switch语句容易被改写为( B )语句。 A.for B.if C.do D.while 14.for语句可以被改写为( D )语句。 A.复合 B.if C.switch D.while 15.下面循环语句执行结束后输出i值为( B )。 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 16.在下面循环w语句中内层循环体S语句执行次数为( D )。 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 17.在下面do循环语句中,其循环体被执行次数为( A )。 int i=0;do i++;while(i*i<10); A.4 B.3 C.5 D.2 二、填空题 1.C语言中每条简朴语句以___;_______作为结束符。 2.C语言中每条复合语句以___}_______作为结束符。 3.在C语言程序每个程序行背面或单独一行开始使用注释标记符为___//___。 4.单行或多行注释结束标记符为__*/_____。 5.在一种C程序文献中,若要包括此外一种头文献或程序文献,则应使用以__#include___标记符开始预解决命令。 6.在#include命令中所包括头文献,可以是系统定义头文献,也可以是__顾客___定义头文献。 7.一种函数定义由__函数头______和函数体两某些构成。 8.用于输出表达式原则输出函数是_printf( )_________。 9.当不需要函数返回任何值时,则应使用__void_______标记符定义函数类型。 10.执行“printf(“%d-%d=%d”,43,18,43-18);”语句后得到输出成果为__43-18=25_______。 11.每个C程序文献在编译时也许出既有警告性错误,其相应标记符为__warning______。 12.每个C程序文献在编译时也许出既有致命性错误,其相应标记符为__error______。 13.十进制数25表达到符合C语言规则十六进制数为___0x19___。 14.在C语言中,转义字符序列___\n___表达一种换行符。 15.执行“printf(“%c”,’F’-2);”语句后得到输出成果为__D___。 16.已知’A’~’Z’ASCII码为65-90,当执行“int x=’C’+5;”语句所x值为___72___. 17.假定一种枚举类型定义为“enum RB{ab,ac=3,ad,ae}x=ad;”,则x值为___4___. 18.char类型大小为__1__个字节。 19.int类型大小为__4__个字节。 20.float类型大小为__4__个字节。 21.十进制数28类型为___int___。 22.十进制数3.26类型为___double___。 23.若需要定义一种符号常量,并且使C语言可以进行类型检查,则应在定义语句开始使用保存字____const___。 24.使用const语句定义一种符号常量时,则必要对它同步进行__定义类型和赋初值__。 25.执行“int x=45,y=13;printf(“%d”,x%y);”语句序列后得到输出成果为___6__。 26.假定x=5,则表达式2+x++值为__7__。 27.表达式(float)25/4值为___6.25___。 28.表达式(int)14.6%5值为___4___。 29.表达式x=x+1表达到增量表达式为__x++___。 30.增量表达式++y表达到赋值表达式为___y+=1__。 31.关系表达式(x!=0)等价表达式为____x__(x>0||x<0)_。 32.假定不容许使用逻辑非操作符,则关系表达式x+y>5相反表达式为___x+y<=5__。 33.假定不容许使用逻辑非操作符,则逻辑表达式a>b || b==5相反表达式为___a<=b && (b>5 || b<5)____。 34.若x=5,y=10,则x>y逻辑值为___false__(0)_。 35.若x=5,y=10,则x<=y逻辑值为___true__(1)_。 36.假定x=5,则执行“a=(x?10:20);”语句后a值为__10__。 37.执行“typedef int DataType;”语句后,在使用int定义整型变量地方都可以使用___DataType___来定义整型变量。 38.在switch语句中,每个语句标号所含保存字case背面表达式必要是__整型__。 39.作为语句标号使用C保存字case和default只能用于__switch__语句定义体中。 40.在switch语句时,在进行作为条件表达式求值后,将从某个匹配标号位置起向下执行,当遇到下一种标号位置时(停止/不断止)___不断止__执行。 41.若do循环“尾”为“while(++i<10)”,并且i初值为0,同步在循环体不会修改i值,由循环体将被重复执行__10___次后正常结束。 42.当在程序执行到___break___语句时,将结束本层循环语句或switch语句执行。 43.在程序中执行到__return__语句时,将结束所在函数执行过程,返回到调用该函数位置。 44.在程序执行完__主(main)__函数调用后,将结束整个程序执行过程,返回到操作系统或C语句集成开发环境界面窗口。 三、写出下列每个程序运营后输出成果 1. #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 ","default\n"); } printf("%s\n","switch end."); } 输出成果为: 11 14 switch end Press any key to continue 2. #include<stdio.h> void main() { int i,s=0; for(i=1;i<=6;i++) s+=i*i; printf("s=%d\n",s); } 输出成果为: s=91 Press any key to continue 3. #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 %d\n",s1,s2); } 输出成果为: 25 20 Press any key to continue 4. #include<stdio.h> void main() { int n=10,y=1; while(n--){y++;y++;} printf("y=%d\n",y); } 输出成果为: y=21 Press any key to continue 5. #include<stdio.h> void main() { int f,f1,f2,i; f1=f2=1; printf("%d %d ",f1,f2); for(i=3;i<=10;i++){ f=f1+f2; printf("%d ",f); if(i%5==0)printf("\n"); f1=f2; f2=f; } printf("\n"); } 输出成果为: 1 1 2 3 5 8 13 21 34 55 Press any key to continue 6. #include<stdio.h> #include<math.h> void main() { int i,n; for(n=2;n<=20;n++){ int temp=(int)sqrt(n);//sqrt(n)求出n平方根并取整 for(i=2;i<=temp;i++) if(n%i==0)break; if(i>temp)printf("%d ",n); } printf("\n"); } 输出成果为: 2 3 5 7 11 13 17 19 Press any key to continue 7. #include<stdio.h> #include<math.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 %d\n",c2,c3,c5); } 输出成果为: 10 6 4 Press any key to continue 8. #include<stdio.h> #include<math.h> const int M=20; void main() { int i,s; for(i=1,s=0;i<15;i++){ if(i%2==0 || i%3==0)continue; printf("%d ",i); s+=i; } printf("%d\n",s); } 输出成果为: 1 5 7 11 13 37 Press any key to continue C语言程序设计形成性考核 作业2 一、 选取题 1.       在下面一维数组定义中,( C )语句有语法错误。 A.int a[]={1,2,3}; B.int a[10]={0}; C.int a[]; D.int a[5];n 2.在下面二维数组定义中,( C )语句是对的。 A.int a[5][]; B.int a[][5]; C.int a[][3]={{1,3,5},{2}}; D.int a[](10) 3.假定一种二维数组定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[1][2]值为(C)。 A.2 B.4 C.6 D.8 4.假定一种二维数组定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[2][1]值为(A)。 A.0 B.4 C.8 D.6 5.将两个字符串连接起来构成一种字符串时,选用( C )函数。 A.strlen() B.strcap() C.strcat() D.strcmp()  二、填空题 1.假定一维数组定义为“char * a[8];”,则该数组所含元素个数为___8_______。 2.假定一维数组定义为“char * a[8];”,则该数组所占存储空间字节数为___32______。 3.假定二维数组定义为“int a[3][5]”,则该数组所占存储空间字节数为___60______。 4.假定二维数组定义为“char a[M][N];”,则该数组所所含元素个数为__M*N_____。 5.假定二维数组定义为“double a[M][N];”,则每个数组元素行下标取值范畴在__0~M-1___之间。 6.假定二维数组定义为“double a[M][N];”,则每个数组元素列下标取值范畴在__0~N-1___之间。 7.使用“typedef char BB[10][50];”语句定义__BB______为具有10行50列二维字符数组类型。 8.存储字符’a’需要占用存储器_1_____个字节空间。 9.空字符串长度为__0_______。 10.存储一种空字符串需要占用__1___个字节。 11.字符串”a:\\xxk\\数据”长度为___11______。 12.用于存储一种长度为n字符串字符数组长度至少为__n+1______。 13.strcmp函数用于进行两个字符串之间___大小比较___。 14.Strcpy函数用于把一种字符串___复制到___另一种字符数组空间中。 15.一种二维字符数组a[10][20]可以存储__ 10___个字符串。 16.一种二维字符数组a[10][20]可以存储每个字符串长度至多为___19___.  三、写出下列每个程序运营后输出成果 1. #include<stdio.h> void main() { int a[10]={12,39,26,41,55,63,72,40,83,95}; int i,i1=0,i2=0; for(i=0;i<10;i++) if(a[i]%2==1)i1++;else i2++; printf("%d %d\n",i1,i2); } 输出成果为: 6 4 Press any key to continue   2. #include<stdio.h> #include<string.h> void main() { int i; char *a[5]={"student","worker","cadre","soldier","peasant"}; char *p1,*p2; p1=p2=a[0]; for(i=0;i<5;i++){ if(strcmp(a[i],p1)>0)p1=a[i]; if(strcmp(a[i],p2)<0)p2=a[i]; } printf("%s %s\n",p1,p2); } 输出成果为: worker cadre Press any key to continue   3. #include<stdio.h> int a[10]={4,5,6,15,20,13,12,7,8,9}; void main() { int i,s0,s1,s2; s0=s1=s2=0; for(i=0;i<10;i++){ switch(a[i]%3){ case 0:s0+=a[i];break; case 1:s1+=a[i];break; case 2:s2+=a[i];break; } } printf("%d %d %d\n",s0,s1,s2); } 输出成果为: 42 24 33 Press any key to continue 4. #include<stdio.h> void main() { char a[]="abcdbfbgacd"; int i1=0,i2=0,i=0; while(a[i]){ if(a[i]=='a')i1++; if(a[i]=='b')i2++; i++; } printf("%d %d %d\n",i1,i2,i); } 输出成果为: 2 3 11 Press any key to continue   5. #include<stdio.h> void main() { int a[3][4]={{1,2,7,8},{5,6,10,6},{9,12,3,4}}; int m=a[0][0]; int ii=0,jj=0; int i,j; for(i=0;i<3;i++) for(j=0;j<4;j++) if(a[i][j]>m){m=a[i][j];ii=i;jj=j;} printf("%d %d %d\n",ii,jj,a[ii][jj]); } 输出成果为: 2 1 12 Press any key to continue   6. #include<stdio.h> void main() { int a,b; for(a=1,b=2;b<50;){ printf("%d %d ",a,b); a=a+b; b=a+b; } printf("\n"); } 输出成果为: 1 2 3 5 8 13 21 34 Press any key to continue    四、写出下列每个函数功能  1. #include<stdio.h> int SA(int a,int b){ if(a>b)return 1; else if(a==b)return 0; else return -1; } 函数功能为: 依照实参a不不大于、等于或不大于实参b,返回1,0或-1  2. #include<stdio.h> int SC(int a,int b,int c){ if(a>=b && a>=c)return a; if(b>=a && b>=c)return b; return c; } 函数功能为: 返回实参a、b、c中最大数  3.double SF(double x,int n){ //n为不不大于等于0整数 double p=1,s=1; for(i=1;i<=n;i++){ p*=x; s+=p/(i+1); } return s; } 函数功能为: 计算x+x2/2+x3/3+……+xn/(n+1)值  4. #include<math.h> int SC(int x){ int a=(int)sqrt(x); int i=2; while(i<=a){ if(x%i==0)break; i++; } if(i<=0)return 0;else return 1; } 函数功能为: 判断一种整数与否是素数  5. #include<stdio.h> void trans(int x) { char a[10]; int i=0,rem; do{ rem=x%16; x=x/16; if(rem<10)a[i]=48+rem;//'0'字符ASCII码为48 else a[i]=65+rem; //'A'字符ASCII码为55 i++; }while(x!=0); while(i>0)printf("%c",a[--i]); printf("\n"); } 函数功能为: 将一种整数化成十六进制数 五、依照下列每个题目规定编写程序  1.编写一种函数,函数头格式为“void fun4(char *a ,int b[])”,分别求出由字符指针a所指向字符串中包括每种十进制数字浮现次数,把记录成果保存在数组b相应元素。 #include<stdio.h> void fun4(char* a,int b[]){ do{ if(*a>='0' && *a<='9')b[*a-48]++; }while(*a++); }  /*void main() { char * a="888"; int b[10]={0}; fun4(a,b); for(int i=0;i<10;i++) printf("%d ",b[i]); }*/   2.       编写一种函数,函数头格式为“double Mean(double a[M][N] ,int m ,int n)”,规定返回二维数组a[m][n]中所有元素平均值,假定在计算过程是采用变量v存储平均值。 #include<stdio.h> const int M=2,N=3; double Mean(double a[M][N],int m,int n ){ double v=0; for(int i=0;i<m;i++) for(int j=0;j<n;j++) v+=a[i][j]; return v/(m*n); }   /*void main() { double a[2][3]={1,2,3,4,5,6}; printf("%lf\n",Mean(a,2,3)); }*/   3.       编写一种递归函数“int FF(int a[] ,int n)”,求出数组a中所有元素n个元素之积并返回。 #include<stdio.h> int FF(int a[] ,int n){ int mul=1; if(n==1)mul*=a[0]; else mul=a[n-1]*FF(a,n-1); return mul; }   /*void main() { int a[6]={1,2,3,4,5,6}; printf("%d\n",FF(a,6)); }*/   4.       编写一种主函数,运用while循环,求出并显示满足不等式1+1/2+1/3+……+1/n>5最小n值。 #include<stdio.h> void main() { double sum=0; int n=1; while(true) { if(sum + 1/(double)n > 5)break; else sum += 1/(double)n; n++; } printf("%d,%lf\n",n,sum); } 5.       编写一种主函数,求满足不等式22+42+……+n2<1000最大n值,假定分别用i和s为取偶数值和累加值变量,并限定使用do循环编程。 #include<stdio.h> void main() { int s=0,i=2; do { s+=i*i; if(s+(i+2)*(i+2)>=1000)break; else i+=2; }while(true); printf("i=%d,s=%d",i,s); }  6.       编写一种主函数,计算并输出n 值,其中n值由键盘输入。 #include<stdio.h> void main() { int s=0,n; printf("请输入n值:"); scanf("%d",&n); for(int i=1;i<=n;i++) s+=i*i; printf("n=%d,s=%d",n,s); } C语言程序设计形成性考核 作业3 一、选取题 1.       在下面( C )函数声明语句存在语法错误。 A.AA(int a,int b); B.AA(int ,int) C.AA(int a;int b) D.AA(int a,int) 2.在下面( C )不能作为函数返回类型。 A.void B.int C.new D.long 3.下面对的函数原型语句是( B )。 A.int Function(void a); B.void Function(int); C.int Function(a); D.void int(double a); 4.函数调用func((exp1,exp2),exp3*exp4-exp5)中所含实参个数为( B )个。 A.1 B.2 C.4 D.5 5.下面标记符中,( C )是文献级作用域。 A.函数形参 B.语句标号 C.外部静态类标记符 D.自动类标记符 6.下面标记符中,( B )具备全局级作用域。 A.函数形参 B.全局变量 C.内部静态类标记符 D.自动变量符 7.假定p是一种指向float型数据指针,则p+1所指数据地址比p所指数据地址大( C )字节。 A.1 B.2 C.4 D.8 8.假定a为一种字符数组名,则a[8]地址比该数组首地址大( B )个字节。 A.4 B.8 C.16 D.32 9.假定a为一种数组名,则下面( B )表达有错误。 A.a[i] B.*a++ C.*a D.*(a+1) 10.用calloc函数创立具备10个整型元素一维数组对的语句是( C )。 A.int *p=calloc(10,2); B.int *p=callo(10; C.int *p=calloc(10,4); D.int *p=malloc(10); 11.假定变量m定义为“int m=7;”,则定义p对的语句为( B )。 A.int p=&m; B.int *p=&m; C.int &p=*m; D.int *p=m; 12.假定k是一种double类型变量,则定义变量p对的语句为( B )。 A.double p=&k; B.double *p=&k; C.double &p=*k; D.char *p=”Thank you!”; 13.假定一条定义语句为“int a[10],x,*pa=a;”,若要把数组a中下标为3元素赋值给x,则不对的语句为( D )。 A.x=pa[3]; B.x=*(a+3); C.x=a[3]; D.x=*pa+3; 14.假定有定义“int b[10];int *pb;”,则不对的赋值语句为( D )。 A.pb=b; B.pb=&b[0]; C.pb=b+2; D.pb=b[5]; 15.假定指针变量p定义为“int *p=new int(100);”,要释放p所指向动态内存,应使用语句( A )。 A.delete p; B.delete *p; C.delete &p; D.delete []p; 16.假定指针变量p定义为“int *p=calloc(30,sizeof(int));”,要释放p所指向动态内存,应使用语句( D )。 A.delete[p]; B.delete(p); C.free[]p; D.free(p);  二、填空题 1.在C语言中,一种函数由函数头和___函数体_______构成。 2.在函数外定义变量称为全局变量,若没有被初始化则系统隐含对它所赋初值为___0______。 3.如果一种函数只容许同一程序文献中函数调用,则应在访函数定义前加上C保存字为为___static______。 4.如果一种函数直接或间接地调用自身,这样调用被称为__递归_____调用。 5.调用系统函数时,要先使用#include命令包括该函数原型语句所在__头___文献。 6.函数形参作用域是该函数__内部___。 7.假定p所指对象值为25,p+1所指对象值为46,则*p++值为__25______。 8.假定p所指对象值为25,p+1所指对象值为46,则*++p值为__46______。 9.假定p所指对象值为25,p+1所指对象值为46,则执行“*(p++);”语句后,p所指对象值为__46______。 10.假定a是一种指针数组,则a+1所指对象地址比a地址大__4___字节。 11.若要把一种整型指针p转换为字符指针,则采用强制转换表达式为___(char*)p______。 12.假定一种数据对象为int*类型,则指向该对象指针类型为__int**______。 13.假定p是一种指向整数对象指针,则用___&p___表达指针变量p地址。 14.若p指向x,则___*p___与x等价。 15.NULL是一种符号常量,普通作为空指针值,它值为__ 0___。 三、写出下列每个程序运营后输出成果 1. #include<stdio.h> void SB(char ch){ switch (ch){ case 'A':case 'a': printf("WW");break; case 'B':case 'b': printf("GG");break; case 'C':case 'c': printf("PP");break; default:printf("BB");break; } } void main(){ char a1='b',a2='C',a3='f'; SB(a1);SB(a2); SB(a3);SB('A'); printf("\n"); }  输出成果为: GGPPBBWW Press any key to continue   2. #include<stdio.h> #include<stdlib.h> double SD(int a,int b,char op){ double x; switch(op){ case '+':x=a+b;break; case '-':x=a-b;break; case '*':x=a*b;break; case '/':if(b)x=(double)a/b; else exit(1); break; default:{("运算符错!\n");exit(1);} } return x; } void main(){ int x=20,y=8; printf("%3.2lf ",SD(x,y,'-')); printf("%3.2lf ",SD(x,y,'*')); printf("%3.2lf ",SD(x,y,'/')); }  输出成果为: 12.00 160.00 2.50 Press any key to continue   3. #include<stdio.h> void WF(int x,int y){ x=x+y; y=x+y; printf("subs:x,y=%d,%d\n",x,y); } void main(){ int x=18,y=23; printf("main:x,y=%d,%d\n",x,y); WF(x,y); x=2*x; printf("main:x,y=%d,%d\n",x,y); }  输出成果为: main:x,y=18,23 subs:x,y=41,64 main:x,y=36,23 Press any key to continue   4. #include<stdio.h> #include<string.h> void fun(char ss[]); void main(){ char s[15]=""; fun(s); printf("%s\n",s); } void fun(char ss[]){ int i,n=strlen(ss); for(i=0;i<n/2;i++){ char c=ss[i]; ss[i]=ss[n-1-i]; ss[n-1-i]=c; } }  输出成果为: Press any key to continue   5. #include<stdio.h> void InsertSort(int a[],int n) { int i,j,x; for(i=1;i<n;i++){//进行n次循环 x=a[i]; for(j=i-1;j>=0;j--)//为x顺序向前寻找适当插入位置 if(x>a[j])a[j+1]=a[j]; else break; a[j+1]=x; } } void main() { int i; int a[6]={20,15,32,47,36,28}; InsertSort(a,6); for(i=0;i<6;i++)printf("%d ",a[i]); printf("\n"); } 输出成果为: 47 36
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服