C语言程序设计A形成性作业
学校名称: 学生姓名: 学生学号: 班 级:
C语言程序设计形成性作业一 一、 选择题
1. 在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为( )。 A.main B.MAIN C.name D.funtion 2.C语言原程序文件的缺省扩展名为( )。 A.cpp B.exe C.obj D.C
3.由C语言目标文件连接而成的可执行的缺省扩展名为( )。 A.cpp B.exe C.obj D.C
4.程序运行中需要从键盘输入多于一个数据时,各数据之间应使用( )符号作为分隔符。 A.空格或逗号 B.逗号或回车 C.回车或分号 D.空格或回车 5.每个C语言程序的编译错误分为( )类。 A.1 B.2 C.3 D.4
6.设x 和y 均为逻辑值,则x && y为真的条件是( )。
A.它们均为真 B.其中一个为真 C.它们均为假 D.其中一个为假 7.设有语句“int a=12;a+=a*a;”,则执行结束后,a 的值为( )。 A.12 B.144 C.156 D.288 8.x>0 && x<=10的相反表达式为( )。
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”的长度为( )。 A.6 B.7 C.8 D.9
10.在下列符号常量定义中。错误的定义语句格式为( )。 A.const M1=10; B.const int M2=20; C.const M3 10 D.const char mark=’3’; 11.带有随机函数的表达式rand()%20的值在( )区间内, A.1~19 B.1~20 C.0~19 D.0~20
12.当处理特定问题时的循环次数已知时,通常采用( )循环来解决。 A.for B.while C.do-while D.switch
13.在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写为( )语句。
A.for B.if C.do D.while 14.for语句能够被改写为( )语句。
A.复合 B.if C.switch D.while 15.下面循环语句执行结束后输出的i值为( )。 for(int i=0;i A.4 B.3 C.5 D.2 二、填空题 1.C语言中的每条简单语句以________作为结束符。 2.C语言中的每条复合语句以________作为结束符。 3.在C语言程序的每个程序行后面或单独一行的开始使用注释的标记符为________。 4.单行或多行注释的结束标记符为__ ____。 5.在一个C程序文件中,若要包含另外一个头文件或程序文件,则应使用以________标识符开始的预处理命令。 6.在#include命令中所包含的头文件,可以是系统定义的头文件,也可以是__ ___定义的头文件。 7.一个函数定义由________和函数体两部分组成。 8.用于输出表达式的标准输出函数是________。 9.当不需要函数返回任何值时,则应使用_________标识符定义函数类型。 10.执行“printf(“%d-%d=%d”,43,18,43-18); ”语句后得到的输出结果为__________。 11.每个C程序文件在编译时可能出现有警告性错误,其对应的标识符为___________。 12.每个C程序文件在编译时可能出现有致命性错误,其对应的标识符为_________。 13.十进制数25表示成符合C语言规则的十六进制数为___________。 14.在C语言中,转义字符序列_________表示一个换行符。 15.执行“printf(“%c”,’F’-2);”语句后得到的输出结果为__________。 16.已知’A’~’Z’的ASCII码为65-90,当执行“int x=’C’+5;”语句所x的值为___________. 17.假定一个枚举类型的定义为“enum RB{ab,ac=3,ad,ae}x=ad;”,则x的值为___________. 18.char类型的大小为__________个字节。 19.int类型的大小为_________个字节。 20.float类型的大小为_________个字节。 21.十进制数28类型为___________。 22.十进制数3.26类型为____________。 23.若需要定义一个符号常量,并且使C语言能够进行类型检查,则应在定义语句的开始使用保留字______________。 24.使用const语句定义一个符号常量时,则必须对它同时进行____________。 25.执行“int x=45,y=13;printf(“%d”,x%y);”语句序列后得到的输出结果为___6__。 26.假定x=5,则表达式2+x++的值为___________。 27.表达式(float)25/4的值为_____________。 28.表达式(int)14.6%5的值为_____________。 29.表达式x=x+1表示成增量表达式为__________。 30.增量表达式++y表示成赋值表达式为_____________。 31.关系表达式(x!=0)的等价表达式为____________。 32.假定不允许使用逻辑非操作符,则关系表达式x+y>5的相反表达式为____________。 33.假定不允许使用逻辑非操作符,则逻辑表达式a>b || b==5的相反表达式为____________。 34.若x=5,y=10,则x>y逻辑值为____________。 35.若x=5,y=10,则x<=y逻辑值为____________。 36.假定x=5,则执行“a=(x?10:20);”语句后a的值为___________。 37.执行“typedef int DataType;”语句后,在使用int定义整型变量的地方都可以使用____________来定义整型变量。 38.在switch语句中,每个语句标号所含保留字case后面的表达式必须是__________。 39.作为语句标号使用的C保留字case和default只能用于__________语句的定义体中。 40.在switch语句时,在进行作为条件的表达式求值后,将从某个匹配的标号位置起向下执行,当碰到下一个标号位置时(停止/不停止)_____________执行。 41.若do循环的“尾”为“while(++i<10)”,并且i的初值为0,同时在循环体不会修改i的值,由循环体将被重复执行___________次后正常结束。 42.当在程序执行到_____________语句时,将结束本层循环语句或switch语句的执行。 43.在程序中执行到__________语句时,将结束所在函数的执行过程,返回到调用该函数的位置。 44.在程序执行完___________函数调用后,将结束整个程序的执行过程,返回到操作系统或C语句集成开发环境界面窗口。 三、写出下列每个程序运行后的输出结果 1. #include 输出结果为: 2. #include 输出结果为: 3. #include int i,s1=0,s2=0; for(i=0;i<10;i++) if(i%2)s1+=i; else s2+=i; printf(\"%d %d\\n\} 输出结果为: 4. #include 输出结果为: 5. #include 输出结果为: 6. #include 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 \ } printf(\"\\n\"); } 输出结果为: 7. #include 输出结果为: 8. #include 输出结果为: C语言程序设计形成性作业二 二、 选择题 2. 在下面的一维数组定义中,( )语句有语法错误。 A.int a[]={1,2,3}; B.int a[10]={0}; C.int a[]; D.int a[5];n 2.在下面的二维数组定义中,( )语句是正确的。 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]的值为( )。 A.2 B.4 C.6 D.8 4.假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[2][1]的值为( )。 A.0 B.4 C.8 D.6 5.将两个字符串连接起来组成一个字符串时,选用( )函数。 A.strlen() B.strcap() C.strcat() D.strcmp() 二、填空题 1.假定一维数组的定义为“char * a[8];”,则该数组所含元素的个数为___________。 2.假定一维数组的定义为“char * a[8];”,则该数组所占存储空间的字节数为__________。 3.假定二维数组的定义为“int a[3][5]”,则该数组所占存储空间的字节数为____________。 4.假定二维数组的定义为“char a[M][N];”,则该数组所所含元素的个数为__________。 5.假定二维数组的定义为“double a[M][N];”,则每个数组元素的行下标取值范围在________之间。 6.假定二维数组的定义为“double a[M][N];”,则每个数组元素的列下标取值范围在________之间。 7.使用“typedef char BB[10][50];”语句定义___________为含有10行50列的二维字符数组类型。 8.存储字符’a’需要占用存储器的________个字节空间。 9.空字符串的长度为___________。 10.存储一个空字符串需要占用_______个字节。 11.字符串”a:\\\\xxk\\\\数据”的长度为_________。 12.用于存储一个长度为n的字符串的字符数组的长度至少为___________。 13.strcmp函数用于进行两个字符串之间的_________。 14.Strcpy函数用于把一个字符串_________另一个字符数组空间中。 15.一个二维字符数组a[10][20]能够存储__ _____个字符串。 16.一个二维字符数组a[10][20]能够存储的每个字符串的长度至多为________. 三、写出下列每个程序运行后的输出结果 1. #include for(i=0;i<10;i++) if(a[i]%2==1)i1++;else i2++; printf(\"%d %d\\n\} 2. #include 3. #include 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\ } 4. #include 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\ } 5. #include 6. #include 四、写出下列每个函数的功能 1. #include 2. #include 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; } 4. #include 5. #include 五、根据下列每个题目要求编写程序 1.编写一个函数,函数头格式为“void fun4(char *a , int b[])”,分别求出由字符指针a所指向的字符串中包含的每种十进制数字出现的次数,把统计结果保存在数组b的相应元素。 3. 编写一个函数,函数头格式为“double Mean(double a[M][N] , int m , int n)”,要求返回二 维数组a[m][n]中所有元素的平均值,假定在计算过程是采用变量v存放平均值。 4. 编写一个递归函数“int FF(int a[] , int n)”,求出数组a中所有元素n个元素之积并返回。 5. 编写一个主函数,利用while循环,求出并显示满足不等式1+1/2+1/3+„„+1/n>5的最 小n值。 6. 编写一个主函数,求满足不等式22+42+„„+n2<1000的最大n值,假定分别用i和s为 取偶数值和累加值的变量,并限定使用do循环编程。 7. 编写一个主函数,计算并输出n 的值,其中n值由键盘输入。 C语言程序设计形成性作业三 一、 选择题 1.在下面的( )函数声明语句存在语法错误。 A.AA(int a,int b); B.AA(int ,int) C.AA(int a;int b) D.AA(int a,int) 2.在下面的( )不能作为函数的返回类型。 A.void B.int C.new D.long 3.下面正确的函数原型语句是( )。 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)中所含实参的个数为( )个。 A.1 B.2 C.4 D.5 5.下面的标识符中,( )是文件级作用域。 A.函数形参 B.语句标号 C.外部静态类标识符 D.自动类标识符 6.下面的标识符中,( )具有全局级作用域。 A.函数形参 B.全局变量 C.内部静态类标识符 D.自动变量符 7.假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址大( )字节。 A.1 B.2 C.4 D.8 8.假定a为一个字符数组名,则a[8]的地址比该数组的首地址大( )个字节。 A.4 B.8 C.16 D.32 9.假定a为一个数组名,则下面的( )表示有错误。 A.a[i] B.*a++ C.*a D.*(a+1) 10.用calloc函数创建具有10个整型元素的一维数组的正确语句是( )。 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的正确语句为( )。 A.int p=&m; B.int *p=&m; C.int &p=*m; D.int *p=m; 12.假定k是一个double类型的变量,则定义指向k的变量p的正确语句为( )。 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,则不正确的语句为( )。 A.x=pa[3]; B.x=*(a+3); C.a=a[3]; D.x=*pa+3; 14.假定有定义“int b[10];int *pb;”,则不正确的赋值语句为( )。 A.pb=b; B.pb=&b[0]; C.pb=b+2; D.pb=b[5]; 15.假定指针变量p定义为“int *p=new int(100);”,要释放p所指向的动态内存,应使用语句( )。 A.delete[p]; B.delete *p; C.delete &p; D.delete []p; 16.假定指针变量p定义为“int *p=calloc(30,sizeof(int));”,要释放p所指向的动态内存,应使用语句( )。 A.delete[p]; B.deldete(p); C.free[]p; D.free(p); 二、填空题 1.在C语言中,一个函数由函数头和__________组成。 2.在函数外定义的变量称为全局变量,若没有被初始化则系统隐含对它所赋的初值为_________。 3.如果一个函数只允许同一程序文件中的函数调用,则应在访函数定义前加上的C保留字为为___________。 4.如果一个函数直接或间接地调用自身,这样的调用被称为_________调用。 5.调用系统函数时,要先使用#include命令包含该函数的原型语句所在________文件。 6.函数形参的作用域是该函数的_________。 7.假定p所指对象的值为25,p+1所指对象的值为46,则*p++的值为_________。 8.假定p所指对象的值为25,p+1所指对象的值为46,则*++p的值为___________。 9.假定p所指对象的值为25,p+1所指对象的值为46,则执行“*(p++);”语句后,p所指对象的值为__________。 10.假定a是一个指针数组,则a+1所指对象的地址比a地址大________字节。 11.若要把一个整型指针p转换为字符指针,则采用的强制转换表达式为_____________。 12.假定一个数据对象为int*类型,则指向该对象的指针类型为__________。 13.假定p是一个指向整数对象的指针,则用_________表示指针变量p的地址。 14.若p指向x,则________与x的等价的。 15.NULL是一个符号常量,通常作为空指针值,它值为__ _______。 三、写出下列每个程序运行后的输出结果 1. #include void main(){ char a1='b',a2='C',a3='f'; SB(a1);SB(a2); SB(a3);SB('A'); printf(\"\\n\"); } 2. #include 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 \ printf(\"%3.2lf \ printf(\"%3.2lf \} 3. #include void main(){ int x=18,y=23; printf(\"main:x,y=%d,%d\\n\ WF(x,y); x=2*x; printf(\"main:x,y=%d,%d\\n\ } 4. #include void fun(char ss[]){ int i,n=strlen(ss); for(i=0;i void InsertSort(int a[],int n) { int i,j,x; for(i=1;i void main() { int i; int a[6]={20,15,32,47,36,28}; InsertSort(a,6); for(i=0;i<6;i++)printf(\"%d \ printf(\"\\n\"); } 6. #include void main(){ int a[8]={3,5,7,9,11,13,15,17}; int i,*p=a; for(i=0;i<8;i++){; printf(\"%5d \ if( (i+1)%4==0 )printf(\"\\n\"); } } 7. #include 8. #include 四、写出下列每个函数的功能 1. #include int WB(int a[],int n,int x){ for(int i=0;i int WC(int a[],int n,int k){ int c=0;for(int i=0;i 3. #include void main() { int i,a,b,c=0; srand(time(0)); //初始化随机数系列 for(i=0;i 6. #include C语言程序设计形成性作业四 三、 选择题 1. 假定有“struct BOOK{char title[40];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(BOOK)); D.struct BOOK **x=&book; 2. 假定有“struct BOOK{char title[40];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.eof B.Eof C.EOF D.feof 4.C语言中系统函数fopen()是( )一个数据文件的函数。 A.读取 B.写入 C.关闭 D.打开 5.从一个数据文件中读入以换行符结束的一行字符串的函数为( )。 A.gets() B.fgets() C.getc() D.fgetc() 6.向一个二进制文件写入信息的函数fwrite()带有( )参数。 A.1 B.2 C.3 D.4 二、填空题 1.假定一个结构类型的定义为“struct A{int a,b;A*c;};”,则该类型的大小为___________字节。 2.假定一个结构类型的定义为“struct B{int a[5],char *b;};”,则该类型的大小为___________字节。 3.假定一个结构类型的定义为“struct D{int a;union{int b;double c;};struct D* d[2];};”,则该类型的大小为__________字节。 4.假定要动态分配一个类型为struct Worker的具有n个元素的数组,并由r指向这个动态数组,则使用语句的表达式为struct Worker* r=__________________________。 5.假定要访问一个结构x中的由a指针成员所指向的对象,则表示方法为_______。 6.假定要访问一个结构指针p所指向对象中的b指针成员所指的对象,则表示方法为_____ ______ 7.与结构成员访问表达式(*fp).score等价的表达式是_____________。 三、写出下列每个程序运行后的输出结果 1. #include }; void main(){ struct Worker x={\"wanghua\ struct Worker y,*p; y=x;p=&x; printf(\"%s %d %6.2f\\n\ printf(\"%s %d %6.2f\\n\} 2. #include void main(){ struct Worker x; char *t=\"louting\"; int d=38;float f=493; strcpy(x.name,t); x.age=d;x.pay=f; x.age++;x.pay*=2; printf(\"%s %d %6.2f\\n\} 3. #include int Less(struct Worker r1,struct Worker r2){ if(r1.age void main(){ struct Worker a[4]={{\"abc\ struct Worker x=a[0]; int i; for(i=1;i<4;i++) if(Less(x,a[i]))x=a[i]; printf(\"%s %d %6.2f\\n\} 四、写出下列每个函数的功能 1. void QA(struct Worker a[],int n){ int i; for(i=0;i 2. struct StrNode *QB(int n){ StrNode * f,*p; if(n==0)return NULL; f=(StrNode*)malloc(sizeof(struct StrNode)); scanf(\"%s\ p=f; while(--n){ p=p->next=(StrNode*)malloc(sizeof(struct StrNode)); scanf(\"%s\ } p->next=NULL; return f; } 假定结构struct StrNode的定义如下: struct StrNode{ char name[5]; struct StrNode *next; }; 3. struct IntNode* FindMax(struct IntNode *f) { struct IntNode *p=f; if(!f)return NULL; f=f->next; while(f){ if(f->data < p->data)p=f; f=f->next; } return p; } 假定结构struct StrNode的定义如下: struct IntNode{ int data; struct IntNode * next; }; 4. int Count(struct IntNode *f) { int c=0;while(f){ c++; f=f->next; } return c; } 假定结构struct StrNode的定义如下: struct IntNode{ int data; struct IntNode * next; }; 5. struct IntNode* Input(int n) { struct IntNode *f,*p; f=(IntNode*)malloc(sizeof(struct IntNode)); if(n==0)return NULL; f->next=NULL; printf(\"从键盘输入 %d 个整数:\ while(n--){ scanf(\"%d\ p=f; f=(IntNode*)malloc(sizeof(struct IntNode)); f->next=p; } return f->next; } 假定结构struct StrNode的定义如下: struct IntNode{ int data; struct IntNode * next; }; 6. #include #include void main() { char *p=\"d:\\\\xxk\\\\xuxk1.txt\"; JA(p); } 答案 C语言程序设计形成性作业一 一选择题 1A2A3B4D5B6A7C8A9B10C11C12A13B14D15B16D17A 二、填空题 1;2}3//4*/5#include 6用户7函数头8 printf( ) 9 void 1043-18=2511 warning 12 error 130x1914\\n 15 D 16 72 17 4 18 1 19 4 20 4 21int 22 double 23 const 24定义类型和赋初值25 6 26 7 27 6.25 28 4 29 x++ 30 y+=1 31 X32 x+y<=533 a<=b && (b>5 || b<5)34 false 35 true 36 10 37 DataType 38整型39 switch 40不停止4110 42 break 43 return44主(main) 三、写出下列每个程序运行后的输出结果 1、11 14 switch end. Press any key to continue 2、s=91. Press any key to continue 3、25 20. Press any key to continue 4、y=21. Press any key to continue 5、1 1 2 3 5 8 13 21 34 55 Press any key to continue 6、2 3 5 7 11 13 17 19 Press any key to continue 7、10 6 4 Press any key to continue 8、1 5 7 11 13 37 Press any key to continue C语言程序设计形成性作业二答案 四、 选择题 1、C2、C3、C4、A5C 二、填空题 1. 82. 323. 604. M*N。5. 0~M-16. 0~N-7. BB8. 19. 010. 111. 1112. n+113.大 小比较14.复制到15. 1016. 19. 三、写出下列每个程序运行后的输出结果 1. 输出结果为: 6 4 Press any key to continue 2. 输出结果为: worker cadre Press any key to continue 3. 输出结果为: 42 24 33 Press any key to continue 4. 输出结果为: 2 3 11 Press any key to continue 输出结果为: 2 1 12 Press any key to continue 6. 输出结果为: 1 2 3 5 8 13 21 34 Press any key to continue 四、写出下列每个函数的功能 1. 函数功能为: 根据实参a大于、等于或小于实参b,返回1,0或-1 2. 函数功能为: 返回实参a、 b、c中的最大数 3. 函数功能为: 计算x+x2/2+x3/3+„„+xn/(n+1)的值 4. 函数功能为: 判断一个整数是否是素数 5. 函数功能为: 将一个整数化成十六进制数 五、根据下列每个题目要求编写程序 1.编写一个函数,函数头格式为“void fun4(char *a , int b[])”,分别求出由字符指针a所指向的字符串中包含的每种十进制数字出现的次数,把统计结果保存在数组b的相应元素。 #include void fun4(char* a,int b[]){ do{ if(*a>='0' && *a<='9')b[*a-48]++; }while(*a++); } /*void main() { char * a=\"122333444499888\"; int b[10]={0}; fun4(a,b); for(int i=0;i<10;i++) printf(\"%d \}*/ 五、编写一个函数,函数头格式为“double Mean(double a[M][N] , int m , int n)”,要求返回 二维数组a[m][n]中所有元素的平均值,假定在计算过程是采用变量v存放平均值。 #include double Mean(double a[M][N], int m,int n ){ double v=0; for(int i=0;i 六、编写一个递归函数“int FF(int a[] , int n)”,求出数组a中所有元素n个元素之积并返回。 #include /*void main() { int a[6]={1,2,3,4,5,6}; printf(\"%d\\n\ }*/ 七、编写一个主函数,利用while循环,求出并显示满足不等式1+1/2+1/3+„„+1/n>5的最 小n值。 #include 八、编写一个主函数,求满足不等式22+42+„„+n2<1000的最大n值,假定分别用i和s 为取偶数值和累加值的变量,并限定使用do循环编程。 #include if(s+(i+2)*(i+2)>=1000)break; else i+=2; }while(true); printf(\"i=%d,s=%d\} 九、编写一个主函数,计算并输出n 的值,其中n值由键盘输入。 #include C语言程序设计形成性作业三答案 十、 选择题 十一、 C2C3B4B5C6B7C8B9B10C11B12B13D14C15D16D 二、填空题 1.函数体2. 03static4.递归5.头6.内部7.11. (char*)p12. int**13. &p14. *p15. ’\\0’ (ASCII码0)三、写出下列每个程序运行后的输出结果 1. 输出结果为: GGPPBBWW Press any key to continue 2. 输出结果为: 12.00 160.00 2.50 Press any key to continue 3. 输出结果为: main:x,y=18,23 subs:x,y=41,64 main:x,y=36,23 258. 4694610.4。 Press any key to continue 4 输出结果为: 432198765 Press any key to continue 5. 输出结果为: 47 36 32 28 20 15 Press any key to continue 6 输出结果为: 3 5 7 9 11 13 15 17 Press any key to continue 7. 输出结果为: 50 60 Press any key to continue 8. 输出结果为: b=184 Press any key to continue 四、写出下列每个函数的功能 1. 函数功能为: 根据整型数组元素中是否能找到整数x,返回1或0 2. 函数功能为: 返回数组中前n个其值大于等于k的元素之和 3 函数功能为: 函数ff让两个数相加,要求输入其和,判断结果是否正确。在主函数中用随机函数产生两 个20以内的随机整数,通过10次调用这个函数,算对一次得10分,计算所得分 4. 函数功能为: 此函数带有一个默认参数,若使用默认值,则通过递归调用,返回前2参数的最小公倍数; 不使用默认值时,若最后一个参数不小于前2个参数,则返回前2参数之乘积; 否则,通过递归调用,返回前2参数最小公倍数的n倍数。 5. 函数功能为: 将从键盘输入的n个整数逆序输出 6. } 函数功能为: 求不小于数组元素之平均值的各元素之和(前n个) C语言程序设计形成性作业四答案 十二、 选择题 1A2B3C4D5B6D 二、填空题 1. 122. 243. 204. (Worker*)malloc(n*sizeof(Worker)); 5. x.(*a) 6. 三、写出下列每个程序运行后的输出结果 1. 输出结果为: wanghua 52 23.50 wanghua 52 23.50 Press any key to continue 2. 输出结果为: louting 39 986.00 Press any key to continue 3. 输出结果为: *(p->b) 7. fp->score def 58 638.00 Press any key to continue 四、写出下列每个函数的功能 1. 函数功能为: 输入struct Worker 类型的对象a[n]的各个元素的值 2. 函数功能为: 建立一个具有n个结点,每个结点的类型是StrNode的链表 3. 函数功能为: 在一个具有n个结点,每个结点的类型是IntNode的链表中寻找data值最大的结点 4. 函数功能为: 计算一个具有n个结点,每个结点的类型是IntNode的链表的结点数 5. 函数功能为: 在类型为IntNode的链表后输入n个结点的数据 6. 函数功能为: 在已经存在的d:\\xxk文件夹下(如不存在此文件夹程序运行会出错)打开xuxk1.txt文件,并向其中输入一系列长度小于20的字符串,直到输入字符串end结束。 因篇幅问题不能全部显示,请点此查看更多更全内容