|
C语言程序设计 要求: 一、独立完成,下面已将三组题目列出,请任选一组题目作答,满分100分; 二、答题步骤: 1. 使用A4纸打印学院指定答题纸(答题纸请详见附件); 2. 在答题纸上使用黑色水笔按题目要求手写作答;答题纸上全部信息要求手写,包括中心、学号、姓名、科目、答题组数等基本信息和答题内容,请写明题型、题号; 三、提交方式:请将作答完成后的整页答题纸以图片形式依次粘贴在一个Word 文档中上传(只粘贴部分内容的图片不给分),图片请保持正向、清晰; 1. 上传文件命名为“中心-学号-姓名-科目.doc” 2. 文件容量大小:不得超过10MB。提示:未按要求作答题目的作业及雷同作业,成绩以0分记!
题目如下: 第一组: 一、编程题(每题20分,共40分) 1、编写程序。定义数组sco存放30名学生的成绩。将成绩由高到低排序,并输出排序结 果和所有高于平均分数的成绩(结果保留两位小数)。 2、编写程序。先编写一个子函数求xfile:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image002.png,再通过主函数调用该子函数,对输入的一个数y, 求yfile:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image004.png并输出。 二、程序填空。在程序中的序号处填上正确的内容。(每空4分,共48分) 1、程序用于求两个数的和与差。 #include <stdio.h"> int fun(int a,int b, int *psub) { int sum; sum=a+b; _____①_____=a-b; return sum; } void main( ) { int x,y,s1,s2; scanf(“%d%d”, _____②_____); s1=fun(x,y, _____③_____); printf(“sum=%d\nsub=%d\n”, _____④_____); }
2、对于5×5的方阵,输出其下三角的元素。 1 2 3 4 5 1 2 3 4 5 6 2 3 3 4 5 6 7 3 4 5 4 5 6 7 8 4 5 6 7 5 6 7 8 9 5 6 7 8 9
#include<stdio.h> voidmain() { int _____①_____,i,j; for(i=0;i<5;i++) for(j=0;j<5;j++) a[j]= _____②_____; for(i=0;i<5;i++) { for(j=0; _____③_____;j++) printf("%4d", a[j]); _____④_____;} } 3、输出所有的水仙花数。所谓的水仙花数是指一个3位数,其各位数字立方和等于该数本身。例如153是一水仙花数,因为153=13+53+33 #include<stdio.h> voidmain() { int n, i, j, k; for(n=100; n<= _____①_____; n++) { i = n/100; // 取出n的百位数 j = ___ __②_____; // 取出n的十位数 k = __ ___③_____; // 取出n的个位数 if(n==_____④_____) printf("%d\n",n); } } 三、写出程序的执行结果(每题4分,共12分) 1、 #include <stdio.h> void main( ) { int i, j; for (i=1; i<5; i++) { for( j=1; j<=12-i; j++) printf(“ “); for (j=1; j<=i; j++) printf(“%4d”,i); printf(“\n”); } } 2、 #include <stdio.h> int a=5; voidfun(int b) { inta=10; a+=b; printf("%d ",a); } voidmain() { intc=20; fun(c);a+=c; printf("%d\n",a); } 3、 #include <stdio.h> void sub (int x,int y,int*z) { *z=x-y; } void main() { int a,b,c; sub(10,6,&c); sub(8,c,&b); sub(c,b,&a); printf(“%d %d %d\n”,a,b,c); } 第二组: 一、编程题(每题20分,共40分) 1、编写程序。输入一行字符(以回车符结束),分别统计其中字母、数字和其他符号的个数。 2、编写程序。要求编写子函数prime(m)判断m是否为素数,当m为素数时返回1,否则返回0,再调用该子函数求100以内的全部素数(素数就是只能被1和自身整除的正整数,1不是素数,2是素数)。 二、程序填空。在程序中的序号处填上正确的内容。(每空4分,共48分) 1、按照公式 e=1+file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image006.png+file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image008.png+file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image010.png+…+file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image012.png求e的近似值,至n=10为止。 #include < stdio.n> void main ( ) { float_____①_____; int n=1, i; for(_____②_____) { n=_____③_____; e=_____④_____; } printf (“ e= %f\n” ,e); } 2、将文件file1.dat中的内容复制到file2.dat中。 #include <stdio.h> #define Null 0 void main() { FILE_____①_____; char ch; if((p1=fopen(“file1.dat”,”r”)==Null)||(p2=fopen(“file2.dat”,”w”)= =Null)) { printf(“Can’topen file\n”); _____②_____; } while(_____③_____) { ch=_____④_____; fputc(ch,p2); } fclose(p1); fclose(p2); } 3、求二维数组a[5][4]中所有元素的平均值。 #include<stdio.h> ____ _①_ ____ void main ( ) { inta[5][4],i ,j, pa; for(i=0;i<5;i++) for (j=0;j<4;j++) scanf(“%d”, &a[j]); pa= _____②_____; printf (“average=%d\n”,pa); } int average (int s[ ][4] ) { int i,j,aver=0; for(i=0;i<5;i++) for(j=0;j<4;j++) aver=aver+s[j]; aver=_____③_____; _____④_____; }
三、写出程序的执行结果(每题4分,共12分) 1、 #include <stdio.h> void main() { int i, j, k=4; for (int i=1;i<=k;i++) printf("%c",’*’); printf("\n"); for (int i=1;i<=k-2;i++) { printf("%c",’*’); for (j=1;j<= k-2;j++) printf(""); printf("*\n"); } for (i=1;i<=k;i++) printf("%c",’*’); printf("\n"); }
2、 #include<stdio.h> void fun(int s[ ]); void main() { int a[]={1,2,3,4,5,6},k; fun(a); for(k=0;k<=5;k++) printf(“%d ”,a[k]); printf(“\n”); } void fun(int s[ ]) { int i=0; while(i<3) { s=s+5; i++; } }
3、 #include<stdio.h> voidmain() { intj, a[ ]={1,2,3,4,10,12,13,15}; for(j=3; j>0; j--) switch ( j ) { case 1: case 2: printf(“%d,”, a[j+4]); break; case 3: printf(“%d,”, a[j-1]); } printf(“\n”); }
第三组: 一、编程题(每题20分,共40分) file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image014.png1、编写程序。每当输入10个评委的分数后,求该选手的最后得分并输出(设10个评委按照以下打分原则为选手打分:去掉一个最高分和一个最低分,剩下的求平均分作为选手的最后得分)。 2、编写程序。先定义一个求n!的子函数fact,调用该子函数计算并输出 的值(m、n的值由键盘输入)。 二、程序填空。在程序中的序号处填上正确的内容。(每空4分,共48分)
1、打印出杨辉三角形(只打印出10行,形式如下)。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10105 1 ……
#include <stdio.h> void main() { int i,j; int a[10][10]; for(i=0;i<10;i++)a[0]=1, _____①_____; for(_____②_____;i<10;i++) for(j=1;j<i;j++) a[j]= _____③_____; for(i=0;i<10;i++) { for(j=0;j<=i;j++) printf("%5d",a[j]); _____④_____; }}
2、 将输入的一个字符串(以!结束)中的小写字母转换成大写字母,然后输出到磁盘文件“test”中。#include <stdio.h> void main() { _____①_____; char str[100],filename[10]; int i=0; if((fp=_____②_____ ==NULL) { printf("cannot open the file\n");exit(0); } printf("please input a string:\n"); gets(str); while(_____③_____) { if(str>='a'&&str<='z') str=str-32; fputc(str,fp); _____④_____; } fclose(fp);}
3、输出如下图形。
* * * * * * * * * * * * *
#include <stdlib.h>
void main() { int i=1,j; while(i<=3) { j=1; printf("*"); while(j<=3) { printf(" "); _____①_____; } printf("*\n"); _____②_____; } _____③_____; i=1; while(i<=3) { j=1; printf("*"); while(_____④_____) { printf(" "); j++; } printf("*\n"); i++; } }
三、写出程序的执行结果(每题4分,共12分) 1、 #include <stdio.h> void sub(int x,int y,int*z) { *z = x+y;} void main() { int a=5,b=6,c=7; printf(“%d,%d,%d ”,a,b,c); sub(b,c,&a); sub(a,b,&c) printf(“%d,%d,%d\n”,a,b,c); }
2、 #include <stdio.h> void main () { int x=1,a=0,b=0; switch(x) { case 1:a++ ; case 2:a++; b++; break; default: b++;break; } printf(“a=%d,b=%d”,a,b); }
3、 #include<stdio.h> void fun(int x); void main() { fun(7); printf("\n"); } void fun(int x) { if(x/2>1) fun(x/2); printf("%5d",x); }
|