计算机二级c语言编程题100套题库.docx
- 文档编号:11551139
- 上传时间:2023-03-19
- 格式:DOCX
- 页数:88
- 大小:41.46KB
计算机二级c语言编程题100套题库.docx
《计算机二级c语言编程题100套题库.docx》由会员分享,可在线阅读,更多相关《计算机二级c语言编程题100套题库.docx(88页珍藏版)》请在冰豆网上搜索。
计算机二级c语言编程题100套题库
1程序设计题
函数fun的功能是:
将s所指字符串中除了下标为偶数、同时ASCII值也为偶数的字符外,其余的全都删除;串中剩余字符所形成的一个新串放在t所指的数组中。
例如,若s所指字符串中的内容为“ABCDEFG123456”,其中字符A的ASCII码值为奇数,因此应当删除;其中字符B的ASCII码值为偶数,但在数组中的下标为奇数,因此也应当删除;而字符2的ASCII码值为偶数,所在数组中的下标也为偶数,因此不应当删除,其他依此类推。
最后,t所指的数组中的内容应是“246”。
注意:
部分源程序已给出。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include
#include
voidfun(char*s,chart[])
{
****************************
intk,n=0;
for(k=0;k if(k%2==0&&s[k]%2==0) t[n++]=s[k]; t[n]='\0'; ***************************** } main() { chars[100],t[100]; printf("\nPleaseenterstringS: "); scanf("%s",s); 2.程序设计题 编写函数fun,它的功能是: 利用以下所示的简单迭代方法求方程cos(y)-y=0的一个实根。 Yn+1=cos(yn) 迭代步骤如下: (1)取y1初值为0.0。 (2)y0=y1,把y1的值赋给y0。 (3)y1=cos(y0),求出一个新的y1。 (4)若y0-y1的绝对值小于0.000001,则执行步骤(5),否则执行步骤 (2)。 (5)所求y1就是方程cos(x)-y=0的一个实根,作为函数值返回。 程序将输出结果Result=0.739085。 注意: 部分源程序已给出。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的花括号中填入所编写的若干语句。 #include #include #include floatfun() { } main() { FILE*out; floatcos=fun(); printf("Result=%f\n",cos); out=fopen("outfile.dat","w"); fprintf(out,"%f",cos); fclose(out); } 3.程序设计题 程序定义了N×N的二维数组,并在主函数中自动赋值。 请编写函数fun(inta[][N],intn),函数的功能是: 使N×N的二维数组左下三角元素中的值乘以n。 例如: 若n的值为3,a数组中的值为: 197 238 456 则返回主程序后a数组中的值应为: 397 698 121518 注意: 部分源程序已给出。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 #include #include #defineN5 voidfun(inta[][N],intn) { intj,k; for(j=0;j for(k=0;k a[j][k]*=n; } 4.程序设计题 请编写函数fun,它的功能是: 计算n门课程的平均分,计算结果作为函数值返回。 例如,若有5门课程的成绩是90.5、72、80、61.5、55,则函数的值为: 71.80。 注意: 部分源程序已给出。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 #include voidmark(); floatfun(float*a,intn) { floats=0.0; inti; for(i=0;i s+=a[i]; returns/n; } 5.程序设计题 请编写一个函数unsignedfun(unsignedn),n是一个大于10的无符号整数,若n是m(m≥2)位的整数,则函数求出n的后m-1位的数作为函数值返回。 例如,若n的值为1234,则fun()函数值为234。 注意: 部分源程序已给出。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的花括号中填入所编写的若干语句。 #include unsignedfun(unsignedm) { unsignedt,s=0,s1=1,p=0; t=m; while(t>10) { if(t/10) p=t%10; s=s+p*s1; s1=s1*10; t=t/10; } returns; 6.程序设计题 编写函数fun,其功能是: 根据以下公式计算s,将结果作为函数值返回;n通过形参传入: S=1+1/(1+2)+1/(1+2+3)+…+1/(1+2+3+…n) 例如: 若n的值为11时,函数的值为: 1.833333 #include voidscore(); floatfun(intn) { floats=0.0; intt=0,k; for(k=1;k<=n;k++) {t+=k;s+=1.0/t;} returns; } main() { intn; floats; printf("\nPleaseenterN: "); scanf("%d",&n); s=fun(n); printf("theresultis: %f\n",s); score(); } voidscore() { FILE*fp; fp=fopen("out.dat","w"); fprintf(fp,"%f\n",fun(11)); fclose(fp); } 7.程序设计题 请编写函数fun,其功能是: 计算并输出3到m之间所有素数的平方根之和。 例如,若主函数从键盘给m输入50后,则输出为s=63.665791。 #include #include doublefun(intm) { intn,k,i; doublesum=0.0; for(n=3;n<=m;n++) { k=sqrt(n); for(i=2;i<=k;i++) if(n%i==0)break; if(i>=k+1) sum+=sqrt(n); } returnsum; } main() { intm; doubles; FILE*out; printf("\n\nInputm: "); scanf("%d",&m); s=fun(m); printf("\n\ns=%f\n\n",s); out=fopen("outfile.dat","w"); for(m=0;m<10;m++) fprintf(out,"%f\n",fun(m+80)); fclose(out); } 8.程序设计题 请编写函数fun,它的功能是: 求出1到m之间(含m)能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。 例如,若传送给m的值为50,则程序输出: 711142122283335424449 #include #defineM100 voidfun(intm,int*a,int*n) { intk; *n=0; for(k=0;k<=m;k++) if(k%7==0||k%11==0) a[(*n)++]=k; } main() {FILE*fp; intaa[M],n,k; fp=fopen("out.dat","w"); fun(50,aa,&n); for(k=0;k if((k+1)%20==0)printf("\n"); else { printf("%4d",aa[k]); /*************************/ fprintf(fp,"%4d",aa[k]); /*************************/ } printf("\n"); } 9.程序设计题 N名学生的成绩已在主函数中放入一个带头节点的链表结构中,a指向链表的头节点。 请编写函数fun,它的功能是: 找出学生的最高分,由函数返回。 #include #include #defineN5 structlist { doubles; structlist*next; }; typedefstructlistSTR; doublefun(STR*a) { doublemax; STR*q=a; max=a->s; do { if(q->s>max) max=q->s; q=q->next; } while(q! =0); returnmax; 3.程序设计题 学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是: 函数返回指定学号的学生数据,指定的学号在主函数中输入。 若没找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回(用于字符串比较的函数是strcmp)。 #include #include #defineN16 typedefstruct {charnum[10]; ints; }STREC; STRECfun(STREC*a,char*b) { STRECt={NULL,-1}; intk; for(k=0;k if(! strcmp(a[k].num,b)) returna[k]; returnt; } main() { STRECs[N]={{"GA005",85},{"GA003",76},{"GA002",69},{"GA004",85},{"GA001",91}, {"GA007",72},{"GA008",64},{"GA006",87},{"GA015",85},{"GA013",91},{"GA012",64}, {"GA014",91},{"GA011",77},{"GA017",64},{"GA018",64},{"GA016",72}}; STRECh; 11.程序设计题 函数fun的功能是: 将s所指字符串中除了下标为奇数、同时ASCII值也为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在t所指的数组中。 #include #include voidscore(); voidfun(char*s,chart[]) { intk,n=0; for(k=0;k if(k%2==1&&s[k]%2==1) t[n++]=s[k]; t[n]='\0'; } main() { chars[100],t[100]; 12.程序设计题 假定输入的字符串中只包含字母和*号。 请编写函数fun,它的功能是: 将字符串中的前导*号全部移到字符串的尾部。 例如,字符串中的内容为: ***A*BC*DEF*G***,移动后字符串中的内容应当是: A*BC*DEF*G******。 在编写函数时,不得使用C语言提供的字符串函数。 #include voidscore(); voidfun(char*a) { intn=0,m=strlen(a),j=0,k=0; while(a[j]=='*')/*统计有多少个前导'*'存入计数器n中*/ {n++;j++;} for(;j a[k++]=a[j]; for(j=0;j a[k++]='*'; a[k]='\0';/*添加字符串结束符*/ } main() { chars[81],*p;intn=0; printf("Enterastring: \n"); 13.程序设计题 给定程序中,函数fun的功能是: 把形参str所指字符串中下标为奇数的字符右移到下一个奇数位置,最右边被移出字符串的字符绕回放到第一个奇数位置,下标为偶数的字符不动(注意: 字符串的长度大于等于2)。 注意: 部分源程序已给出。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的花括号中填入所编写的若干语句。 #include voidfun(char*str) { inti,n,j; charc; n=0; for(i=0;str[i]! ='\0';i++) n++; if(n%2==0) j=n-1; else j=n-2; c=str[j]; for(i=j-2;i>=1;i=i-2) str[i+2]=str[i]; str[1]=c; } main() { FILE*fp; charstr[100]="564321"; 14.程序设计题 函数fun的功能是: 将两个三位数的正整数a、b合并形成一个长整数在c中。 合并的方式是: 将a数的百位、十位和个位放在c数的十万位、千位和十位上,b数的百位、十位和个位放在c数的万位、百位和个位上。 例如: 当a=456,b=123,调用该函数后c=415263。 #include #include #include voidfun(inta,intb,long*c) { *c=a/100; *c=*c*10+b/100; *c=*c*10+(a/10)%10; *c=*c*10+(b/10)%10; *c=*c*10+a%10; *c=*c*10+b%10; } 16.程序设计题 下列程序定义了N×N的二维数组,并在主函数中赋值。 请编写函数fun,函数的功能是: 求出数组周边元素的平均值并作为函数值返回给主函数中的变量r。 例如,若c数组中的值为: 则返回主程序后r的值应为4.625000。 #defineN3 doublefun(intb[][N]) { inti,j,k=0; doubler=0.0; for(j=0;j { r+=b[0][j]; k++; } for(j=0;j { r+=b[N-1][j]; k++; } for(i=1;i<=N-2;i++) { r+=b[i][0]; k++; } for(i=1;i<=N-2;i++) { r+=b[i][N-1]; k++; } returnr/=k; } main() { intc[N][N]={1,8,4,7,5,3,3,9,2}; 17.程序设计题 请编写一个函数voidfun(char*tt,intpp[]),统计在tt所指字符串中'a'到'z'26个小写字母各自出现的次数,并依次放在pp所指数组中。 #include #include voidscore(); voidfun(char*tt,intpp[]) { intn; for(n=0;n<26;n++) pp[n]=0; while(*tt! ='\0') { if(*tt>='a'&&*tt<='z') pp[*tt-'a']++; tt++; } } main() { charaa[1000]; 18.程序设计题 假定输入的字符串中只包含字母和*号。 请编写函数fun,它的功能是: 除了字符串前导和尾部的*号之外,将串中其他*号全部删除。 形参h已指向字符串中第一个字母,形参p已指向字符串中最后一个字母。 在编写函数时,不得使用C语言提供的字符串函数。 #include voidfun(char*a,char*h,char*p) { char*q=h; intn=0; while(q<=p) {if(*q! ='*')h[n++]=*q;q++;} while(*q) {h[n++]=*q;q++;} h[n]='\0'; } main() 19.程序设计题 请编写函数fun,其功能是: 计算并输出当x<0.97时如下多项式的值,直到|Sn-Sn-1|<0.000001为止: #include #include voidscore(); doublefun(doublex) { intn=1; doubles0,s1=1.0,t=1.0; do { s0=s1; t=t*(0.5-n+1)*x/n; s1=s0+t; n++; }while(fabs(s1-s0)>=0.000001); returns1; } 20.程序设计题 请编写函数fun,它的功能是: 将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。 #include #include voidscore(); longfun(char*p) { longt=0; intflag=1; if(*p=='-') {flag=-1;p++;} while(*p) {t=t*10+(*p-'0');p++;} returnflag*t; } main() { chars[6]; 21.程序设计题 函数fun的功能是: 将s所指字符串中下标为偶数同时ASCII值为奇数的字符删除,s所指串中剩余的字符形成的新串放在t所指的数组中。 例如,若s所指字符串中的内容为“ABCDEFG12345”,其中字符C的ASCII码值为奇数,在数组中的下标为偶数,因此必须删除;而字符1的ASCII码值为奇数,在数组中的下标也为奇数,因此不应当删除,其他依此类推。 最后t所指的数组中的内容应是“BDF12345”。 #include #include voidscore(); voidfun(char*s,chart[]) { intk,n=0; for(k=0;k if(k%2! =0||s[k]%2! =1) t[n++]=s[k]; t[n]='\0'; } main() { chars[100],t[100]; 22.程序设计题 编写函数fun,其功能是实现矩阵(3行3列)的转置(即行列互换)。 #include intfun(intarray[3][3]) { intj,k,t; for(j=0;j<3;j++) for(k=0;k { t=array[j][k]; array[j][k]=array[k][j]; array[k][j]=t; } } main() { FILE*fp; inti,j; 23.程序设计题 请编写函数fun,函数的功能是: 将大于形参m且紧靠m的k个素数存入xx所指的数组中。 例如,若输入17、5,则应输出: 19、23、29、31、37。 #include voidscore(); voidfun(intm,intk,intxx[]) { intj,n=0; while(n { m++; for(j=2;j if(m%j==0)break; if(j>=m) xx[n++]=m; } } main() { intm,n,zz[1000]; 24.程序设计题 学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是: 把分数最低的学生数据放在b所指的数组中。 注意,分数最低的学生可能不止一个,函数返回分数最低的学生的人数。 #include #defineN16 typedefstruct {charnum[10]; ints; }STREC; intfun(STREC*a,STREC*b) { intj,n=0; doublemin=100.0; for(j=0;j if(min>a[j].s)min=a[j].s; for(j=0;j if(a[j].s==min)b[n++]=a[j]; returnn; } main() 25.程序设计题 N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。 请编写函数fun,其功能是: 找出学生的最低分,由函数值返回。 #include #defineN8 structslist {doubles; structslist*next; }; typedefstructslistSTREC; doublefun(STREC*h) { doublemin=h->s; while(h! =NULL) { if(min>h->s)min=h->s; h=h->next; } returnmin; } STREC*creat(double*s) { STREC*h,*p,*q;inti=0; h=p=(STREC*)malloc(sizeof(STREC)); p->s=0; while(i { q=(STREC*)malloc(sizeof(STREC)); p->s=s[i];i++;p->next=q;p=q; } p->next=NULL; returnh;/*返回链表的首地址*/ } 26.程序设计题 规定输入的字符串中
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 二级 语言 编程 100 题库