首页IT科技计算机二级c语言程序设计题库及答案(计算机等级考试二级C语言程序设计专项训练题——程序设计题(三))

计算机二级c语言程序设计题库及答案(计算机等级考试二级C语言程序设计专项训练题——程序设计题(三))

时间2025-09-19 02:54:19分类IT科技浏览4617
导读:21、请编写函数fun,该函数的功能是:将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。...

21               、请编写函数fun               ,该函数的功能是:将M行N列的二维数组中的字符数据                      ,按列的顺序依次放到一个字符串中               。

例如        ,若二维数组中的数据为

W W W W

S S S S

H H H H

则字符串中的内容应是:WSHWSHWSHWSH                      。

注意:请勿改动main函数和其他函数中的任何内容               ,仅在函数fun的花括号中填入所编写的若干语句        。
void fun(char (*s)[N],char *b) { int i,j,k=0; for (i=0;i<N;i++) for (j=0;j<M;j++) b[k++]=s[j][i]; b[k]=\0; }

参考程序

22                       、已知学生的记录由学号和学习成绩构成                      ,N名学生的数据已存入a结构体数组中               。请编写函数fun        ,该函数的功能是:找出成绩最高的学生记录       ,通过形参返回主函数(规定只有一个最高分)                      。已给出函数的首部                      ,请完成该函数        。

注意:请勿改动主函数main和其他函数中的任何内容               ,仅在函数fun的花括号中填入你编写的若干语句       。
#include<stdio.h> #define N 10 typedef struct ss /*定义结构体*/ { char num[10]; int s; } STU; fun(STU a[], STU *s) { } int main() { STU a[N]={{ "A01",81},{ "A02",89},{ "A03",66},{ "A04",87},{ "A05",77}, { "A06",90},{ "A07",79},{ "A08",61},{ "A09",80},{ "A10",71}},m; int i; printf("*****The original data*****"); for(i=0;i<N;i++) printf("No=%s Mark=%d\n", a[i].num,a[i].s); fun(a,&m); printf("*****THE RESULT*****\n"); printf("The top :%s, %d\n",m.num,m.s); return 0; }
fun(STU a[], STU *s) { STU m; m=a[0]; int i; for (i=1;i<N;i++) if (m.s<a[i].s) m=a[i]; *s=m; }

参考程序

23       、请编写函数fun       ,其功能是:计算并输出3~n之间所有素数的平方根之和                      。 例如                      ,若主函数从键盘给n输入100后               ,则输出为sum=148.874270               。 注意:n的值要大于2但不大于100       。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句                      。

#include <stdio.h> #include <math.h> double fun(int n) { } int main() { int n; double sum; printf("Input n="); scanf("%d",&n); sum=fun(n); printf("\nsum=%f\n",sum); return 0; }
double fun(int n) { int i,j; double s=0; for (i=3;i<=n;i+=2) { for (j=3;j<=sqrt(i);j+=2) if (i%j==0) break; if (j>sqrt(i)) s+=sqrt(i); } return s; }

参考程序

24       、请编写函数fun                      ,该函数的功能是:判断字符串是否为回文                      ,若是,则函数返回1               ,主函数中输出"YES"                      ,否则返回0        ,主函数中输出"NO"               。回文是指顺读和倒读都一样的字符串。 例如               ,字符串LEVEL是回文                      ,而字符串123312就不是回文                      。 注意:请勿改动主函数main和其他函数中的任何内容        ,仅在函数fun的花括号中填入你编写的若干语句                      。
#include <stdio.h> #define N 80 int fun(char *str) { } int main() { char s[N]; int i; printf("Enter a string : "); gets(s); printf("\n"); puts(s); if(fun(s)) printf("YES\n"); else printf("NO\n"); return 0; }
int fun(char *str) { int i,j; for (i=0;str[i]!=\0;i++) ; j=i-1; i=0; while (i<j) { if (str[i]!=str[j]) break; i++; j--; } if (i<j) return 0; else return 1; }

参考程序

25                       、请编写函数fun       ,对长度为7个字符的字符串                      ,除首               、尾字符外               ,将其余5个字符按ASCII码降序排列。例如       ,原来的字符串为"CEAedca"                      ,排序后输出为"CedcEAa"               。注意:请勿改动主函数main和其他函数中的任何内容               ,仅在函数fun的花括号中填入你编写的若干语句                      。
#include <stdio.h> #include <string.h> void fun(char *s,int num) { } int main() { char s[10]; printf("输入7个字符的字符串:"); gets(s); fun(s,7); printf("\n%s",s); return 0; }
void fun(char *s,int num) { int i,j; for (i=1;i<num-2;i++) for (j=1;j<num-1-i;j++) if (s[j]<s[j+1]) { char t; t=s[j]; s[j]=s[j+1]; s[j+1]=t; } }

参考程序

26       、请编写函数fun,其功能是:将一组得分中                      ,去掉一个最高分和一个最低分                      ,然后求平均值,并通过函数返回        。函数形参a指向存放得分的数组               ,形参n中存放得分个数(n>2)               。

例如                      ,若输入9.9 8.5 7.6 8.5 9.3 9.5 8.9 7.8 8.6 8.4十个得分        ,则输出结果为:8.687500                      。注意:请勿改动主函数main和其他函数中的任何内容               ,仅在函数fun的花括号中填入所编写的若干语句        。

#include <stdio.h> double fun(double a[ ],int n) { } int main() { double b[10], r; int i; printf("输入10个数放入b数组中 : "); for (i=0; i<10; i++) scanf("%lf",&b[i]); printf("输入的10个数是 : "); for (i=0; i<10; i++) printf("%4.1f ",b[i]); printf("\n"); r=fun(b,10); printf("去掉最高分和最低分后的平均分 : %f\n", r ); return 0; }
double fun(double a[ ],int n) { double sum,max,min; int i; sum=max=min=a[0]; for (i=1;i<n;i++) { sum+=a[i]; if (max<a[i]) max=a[i]; if (min>a[i]) min=a[i]; } return (sum-max-min)/(n-2); }

参考程序

27                      、请编写一个函数void fun(int m,int k,int xx[])                      ,该函数的功能是:将大于整数m且紧靠mk个素数存入数组xx传回       。

例如:若输入17 5 则应输出:19        ,23       ,29                      ,31               ,37                      。

注意:请勿改动主函数main和其他函数中的任何内容       ,仅在函数fun的花括号中填入所编写的若干语句               。

#include <stdio.h> void fun(int m,int k,int xx[]) { } int main() { int m,n,xx[1000]; printf("\nPlease enter two integers:"); scanf("%d%d",&m,&n); fun(m,n,xx); for(m=0;m<n;m++) printf("%d ",xx[m]); printf("\n"); return 0; }
void fun(int m,int k,int xx[]) { int i,j,s=0; for(i=m+1;k>0;i++) { for(j=2;j<i;j++) if (i%j==0) break; if(i==j) { xx[s++]=i; k--;} } }

参考程序

28               、请编写函数void fun(char *s)                      ,它的功能是:把 s 字符串中的所有字母改写成该字母的下一个字母               ,字母z改写成字母a       。要求大写字母仍为大写字母,小写字母仍为小写字母                      ,其它字符不做改变                      。

例如:s 字符串中原有的内容为:Mn.123Zxy                      ,则调用该函数后,结果为:No.123Ayz               。

注意:请勿改动主函数main和其他函数中的任何内容               ,仅在函数fun的花括号中填入所编写的若干语句。

#include <stdio.h> #define N 81 void fun(char *s) { } int main( ) { char a[N]; printf("Enter a string : "); gets(a); printf("The original string is : "); puts(a); fun(a); printf("The string after modified : "); puts (a); return 0; }
void fun(char *s) { while(*s) if (*s==z||*s==Z) {*s-=25; s++;} else if (*s>=a&&*s<=y) {*s+=1;s++;} else if (*s>=A&&*s<=Y) {*s+=1;s++;} else s++; }

参考程序

29、编写函数int fun(int t)                      ,它的功能是:求Fibonacci数列中大于t的最小的一个数        ,结果由函数返回                      。其中Fibonacci数列F(n)的定义为:

F(0)=0,F(1)=1

F(n)=F(n-1)+F(n-2)

例如:当t=1000时               ,函数值为:1597                      。

注意:请勿改动主函数main和其他函数中的任何内容                      ,仅在函数fun的花括号中填入所编写的若干语句。

#include <stdio.h> int fun(int t) { } int main() { int n; n=1000; printf("n=%d,f=%d\n",n,fun(n)); return 0; }
int fun(int t) { int f0=0,f1=1,fn; fn=f0+f1; while (fn<=t) { f0=f1; f1=fn; fn=f0+f1; } return fn; }

参考程序

30                      、已知结构数组sell中存有10个产品销售记录        ,每个产品销售记录由产品代码dm(字符型4)       ,产品名称mc(字符型10)                      ,单价dj(整型)               ,数量sl(整型)       ,金额je(长整型)五部分组成               。其中:金额=单价*数量计算得出                      。请编制函数fun()                      ,其功能是:按产品名称从小到大进行排列               ,若产品名称相等,则按金额从小到大进行排列                      ,最终排列结果仍存入结构数组sell中        。

#include <stdio.h> #include <string.h> typedef struct{ char dm[5]; /*产品代码*/ char mc[11]; /*产品名称*/ int dj; /*单价*/ int sl; /*数量*/ long je; /*金额*/ }PRO; void fun(PRO sell[]) { } int main() { PRO sell[10]={{"1001","电视机",1000,8},{"1001","电视机",1000,5}, {"1002","洗衣机",850,4},{"1002","洗衣机",850,3}, {"1003","电冰箱",1000,8},{"1003","电冰箱",1000,5}, {"1001","电视机",1250,4},{"1004","空调",2180,5}, {"1002","洗衣机",816,3},{"1001","电视机",1440,5}}; int i; for (i=0;i<10;i++) sell[i].je=sell[i].dj*sell[i].sl; fun(sell); for(i=0;i<10;i++) printf("%5s %11s %4d %5d %5ld\n",sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je); return 0; }
void fun(PRO sell[]) { int i,j; PRO xy; for(i=0;i<9;i++) for(j=i+1;j<10;j++) if(strcmp(sell[i].mc,sell[j].mc)>0||strcmp(sell[i].mc,sell[j].mc)==0&&sell[i].je>sell[j].je) { xy=sell[i]; sell[i]=sell[j]; sell[j]=xy; } }

参考程序

声明:本站所有文章                      ,如无特殊说明或标注,均为本站原创发布               。任何个人或组织               ,在未征得本站同意时                      ,禁止复制                      、盗用、采集               、发布本站内容到任何网站                      、书籍等各类媒体平台                      。如若本站内容侵犯了原著者的合法权益        ,可联系我们进行处理        。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
python中单下划线_foo与双下划线下列说法正确(python单下划线是什么意思) python开发gui(Python:灵活的开发环境)