二级(C语言程序设计)上机题汇总
计算机等级考试二级C语言上机 程序设计题库
1,FUN的功能:将两个两位数的正整数A,B合并形成一个整数放在C中。
合并的方式:将A数的十位和个位数依次放在C数的千位和十位,B数的十位和个位数依次放在C数的百位和个位上void fun(int a, int b, long *c){*c=(a/10)*1000+(b/10)*100+(a%10)*10+(b%10);}2 功能:将两个两位数的正整数A,B合并形成一个整数放在C中。
合并的方式:将A数的十位和个位数依次放在C数的个位和百位,B数的十位和个位数依次放在C数的千位和十位上*c=(b/10)*1000+(a%10)*100+(b%10)*10+(a/10);3 FUN的功能:将两个两位数的正整数A,B合并形成一个整数放在C中。
合并的方式:将A数的十位和个位数依次放在C数的个位和百位,B数的十位和个位数依次放在C数的十位和千位上*c=(b%10)*1000+(a%10)*100+(b/10)*10+(a/10);4 FUN的功能:将两个两位数的正整数A,B合并形成一个整数放在C中。
合并的方式:将A数的十位和个位数依次放在C数的十位和千位,B数的十位和个位数依次放在C数百的位和个位上*c=(a%10)*1000+(b/10)*100+(a/10)*10+(b%10)5 编写一个函数FUN功能:计算N门课程的平均数,计算结果作为函数的返回直,输入90.5,72,80,61.5,55函数直:71.80int i;float ave=0.0;for(i=0; i<n; i++) ave=ave+a[i] ;ave=ave/n;return ave;6.编写一个函数,功能:比较两个字符串的长度,(不调用C语言提供的求字符串长度的函数),函数返回较长的字符串。
若长度相同,返回第一个字符串。
输入beijing <cr>shanghai<cr>返回shanghaiint i;char *p=s, *q=t;for(i=0;*p && *q; i++) {p++; q++;}if(*p == 0 && *q == 0) return s ;if(*p) return s ;else return t ;7int i ;*n=0 ;for(i=7 ; i<=m; i++)if((i % 7 == 0) || (i % 11 == 0)) a[(*n)++]=i ;8int i ;for(i = 1 ; i < strlen(*ss) ; i+=2) {if(ss[i] >= 'a' && ss[i] <= 'z') ss[i] -= 32 ;}9int i, j = 0 ;for(i = 0 ; i < strlen(s) ; i += 2)if(s[i] % 2 == 0) t[j++] = s[i] ;t[j] = 0 ;10int i, j = 0 ;for(i = 1 ; i < strlen(s); i+=2) t[j++] = s[i] ;t[j] = 011int i, j = 0 ;for(i = 0 ; i < strlen(s); i++) if(s[i] % 2) t[j++] = s[i] ; t[j] = 0 ;12char num[10]; int s; } STU;fun( STU a[], STU *s ){int i, max = a[0].s, j = 0;for(i = 1 ; i < N ; i++)if(max < a[i].s) {j = i ;max = a[i].s ;}*s = a[j] ;}13int i, j;for(i = 0 ; i < N ; i++)for(j = 0 ; j <= i; j++)a[i][j] *= n ;14int i, j;for(i = 0 ; i < N ; i++)for(j = 0 ; j <= i; j++)a[i][j] = 0 ;15int i,j, min, k ;for(i = 0 ; i < N ; i++) {min = tt[0][i] ; k = 0 ;for(j = 1 ; j < M ; j++)if(min > tt[j][i]) {min=tt[j][i] ;k = j ;}pp[i] = tt[k][i] ;}16设计题#include <stdio.h>unsigned fun ( unsigned w ){if(w>10000) w %= 10000 ;else if(w>1000) w %= 1000 ;else if(w>100) w %= 100 ;else if(w>10) w %=10 ;return w ;18.编写函数FUN,函数的功能是:从S所只的字符删除给定的字符。
计算机二级C语言上机题库及答案(100套)
计算机二级c 语言上机题库及答案.第1 套填空题请补充FUN 函数,FUN 函数的功能是求10 的阶乘。
注意:部分源程序给出如下。
请勿改动主函数main 和其他函数中的任何内容,仅在fun 函数的横线上填入所编写的若干表达式或语句。
试题程序: #include <stdio.h>long fun(int n){if ( 1 )return (n*fun( 2 ));return 3 ;}main(){printf("10!=%ld\n", fun(10));}第1 处填空:n>1 或1<n第2 处填空:n-1第3 处填空:1 或11 或1L改错题下列给定程序的功能是:读入一个整数K(2〈=K〈=10000),打印它的所有因子(即所有为素数的因子)。
例如,若输入整数2310,则应输出:2、3、5、7、11。
请改正程序中的错误,使程序能得出正确的结果。
注意:不要改动main 函数,不得增行或删行,也不得更改程序的结构!试题程序:#include <conio.h>#include <stdio.h>/********found********/IsPrime(int n);{int i, m;m = 1;/********found********/for (i=2; i<n; i++)if !(n%i){m = 0;break;}return(m);}main(){int j, k;printf("\nplease enter an integer number between 2and 10000:");scanf("%d", &k);printf("\n\nThe prime factor(s) of %d is(are):", k);for (j=2; j<k; j++)if ((!(k%j)) && (IsPrime(j)))printf(" %4d,", j);printf("\n");}第1 处:Isprime(int n);应改为Isprime(int n)第2 处:if !(n%i)应该为if(!(n%i))编程题M 个人的成绩存放在score 数组中,请编写函数fun,它的功能是:返回低于平均分的认输,并将低于平均分的分数放在below 所指的数组中。
3月全国计算机等级考试二级C语言上机题库(20~30套)
3月全国计算机等级考试二级C语言上机题库(20~30套)考试频道小编收集整理计算机等级考试资料,免费提供给大家交流参考。
第二十一套1. 程序填空给定程序中,函数fun的功能是:在形参ss所指字符串数组中,将所有串长超过k的字符串右边的字符删去,只保留左边的k个字符。
ss所指字符串数组中共有N个字符串,且串小于M。
第一处void fun(char (*ss)[M], int k)第二处while (i第三处ss[i][k]=0;i++;}2. 程序修改给定程序MODI1.C中函数fun的功能是:根据以下公式求值,并作为函数值返回。
例如,给指定精度的变量eps输入0.0005时,应当输出Pi=30140578.。
/**found**/t=1;/**found**/return(2*s);3. 程序设计假定输入字符串中只包含字母和*号。
请编写函数fun,它的功能是:将字符串的前导*号不得多于n个;若多于n个,则删除多余的*号;若少于或等于n个,则什么也不做,字符串中间和尾部的*号不删除。
函数fun中给出的语句仅供参考。
void fun(char*a,int n){int i=0,k=0;while(a[k]= =*)k++;if(kn){i=n;j=k;for(;a[j]!=0;j++)a[i++]=a[j];a[i]=0;}}第二十二套1. 程序填空给定程序中,函数fun的功能是:a所指43矩阵中第k行的元素与第0行元素交换。
例如:有下列矩阵1 2 34 5 67 8 910 11 12若k为2,程序执行结果为7 8 94 5 61 2 310 11 12第一处void fun(int (*a)[N],int k)第二处for(i=0;i第三处a[0][i]=a[k][i];2. 程序修改给定程序MODI1.C中函数fun的功能是:读入一个字符串(长度20),将该字符串中的所有字符串按ASCII码升序排序后输出。
计算机二级c语言上机考试100题
题目1:下列程序的功能是:将大于整数m且紧靠m的k个素数存入数组xx。
请编写函数num(int m,int k,int xx[])实现函数的要求,最后调用函数readwriteDAT()把结果输出到文件out.dat中。
例如:若输入17,5,则应输出:19,23,29,31,37。
注意:部分源程序已给出。
请勿改动主函数main()和函数readwriteDAT()的内容。
--------------类型:素数。
void num(int m,int k,int xx[]){int data=m+1;int half,n=0,I;while(1){half=data/2;for(I=2;I<=half;I++)if(data%I==0)break;if(I>half){xx[n]=data;n++;}if(n>=k)break;data++;} }题目2:已知数据文件IN.DAT中存有200个四位数, 并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是: 如果四位数各位上的数字均是0或2或4或6或8, 则统计出满足此条件的个数cnt, 并把这些四位数按从大到小的顺序存入数组b中。
最后main()函数调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。
注意: 部分源程序存在文件PROG1.C文件中。
程序中已定义数组: a[200], b[200], 已定义变量: cnt请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。
-------------------------void jsVal(){int bb[4];int I,j,k,flag;for (I=0;I<200;I++){bb[0]=a[I]/1000; bb[1]=a[I]%1000/100;bb[2]=a[I]%100/10; bb[3]=a[I]%10;for (j=0;j<4;j++){if (bb[j]%2==0)flag=1;else{flag=0;break;}}if (flag==1){ b[cnt]=a[I];cnt++;} }for(I=0;I<cnt-1;I++)for(j=I+1;j<cnt;j++)if (b[I]<b[j]){k=b[I];b[I]=b[j];b[j]=k;}}题目3:函数READDAT()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组XX中;请编制函数STROR(),其函数功能是:以行为单位把字符串中的所有小写字母O左边的字符串内容移到该串的右边存放,然后并把小写字母O删除,余下的字符串内容移到已处理字符串的左边存放.最后把已处理的字符串仍按行重新存入字符串数组XX中,最后调用函数WRITEDAT()把结果XX输出到文件OUT.DAT中.例如:原文:You can create an index on any field.you have the correct record.结果: n any field.You can create an indexrd.yu have the crrect rec原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格.-------------------类型:字符串(单词)的倒置和删除。
二级C语言上机考试总结
二级C语言上机考试总结一、程序填空题填空题是计算机等级考试中的难点,占有的分值为30 分。
做填空题时注意掌握答题技巧。
填空题的分类:(一)、数学题目6、13 、2 5、2 9、36 、37 、38、44 、46解题方法:1、如果在函数中定义变量,但是没有定义成静态存储变量,即变量前面没有static ,应给变量赋初值,如果以后用到的是加减运算,则赋初0或值者为是0.0;如果以后用到的是乘除运算,则赋初值为1或者是1.0;2、循环条件的填空,分析表达式的规律,看表达式中的最后一项的值是否到了第m项或者是第n项,如果到了第m或者第n项,则在循环中的第二个表达式中用到的是i<=m或者是i<=n;3、循环条件中如果用的是while语句,则循环变量的初值应该在while的外面定义和赋初值,在循环语句中必须给变量自加或者是自减。
如果没有则一般填的是i++;4、看表达式中的每一项的运算规则,按照运算的规则把每一项中的n值替换为i,特殊情况例外。
如果是表达式中用到的是间隔相加减的运算时,注意给中间变量赋初值为1或者是1.0;在后面的运算中给变量乘以一个-1,以改变中间变量的符号。
(二)、字符串题目8、10、11、12、14、18、19、21、3 5、45、4 8、49解题方法:1、循环的条件是判断该字符是否和结束符相等,如果相等,说明该字符串结束,否则说明没有结束,继续循环。
2、把一个数字字符转变成对应的数值的格式是:ch=ch-…0‟;把大写字母转变为小写字母的格式:ch=ch+32;把小写字母转变为大写字母的格式为:ch=ch-32 ;3、区分好字符数组中的指针和指针所指的值的关系。
在循环语句中,当指针往后走一个位置的时候,用的是指针的自加,而不是指针所指的值的自加。
4、掌握字符数组中的函数的使用的格式。
即:strlen、strcmp、strcpy、sizeof、strcat的使用格式。
注意里面的格式中使用的都是和指针。
全国计算机等级考试二级C语言上机题库(全)
int i; for(i=1;i<strlen(ss);i+=2) {if(ss[i]>=’a’&&ss[i]<=’z’) ss[i]-=32; } } 第五套 1. 程序填空 给定程序中,函数 fun 的功能是:计算下式前 n 项的和作为函数值返 回。例如:当形参 n 的值为 10 的时,函数返回:9.6125588。 第一处 s=0; 第二处 for(i=1;i<=n;i++) 第三处 s=s+(2.0*i-1)*(2.0*i+1)/(t*t); 2. 程序修改 给定程序 MODI1.C 中函数 fun 的功能是:统计 substr 所指字符串在 str 所指字符串中出现次数。 /**found**/ for(i=0;str[i];i++) /**found**/ if(substr[k+1]==’\0’) 3. 程序设计 请编写一个函数 fun,它的功能是:根据以下公
for(i=1;i<N;i++) if(max<a[i].s)max=a[i].s; for(i=0;i<N;i++) if(max==a[i].s)b[n++]=a[i]; return n; } 第九套 1. 程序填空 给定程序中,函数 fun 的功能是:计算形参 x 所指数组中 N 个数的平 均值,(规定所有数均为正数),将所指数组中小于平均值的数据移至 数据的前部,大于等于平均数的移至 x 所指数组的后部,平均值作为 函数值返回,在主函数中输出平均值和移动后的数据。 第一处 for(i=0;i<N;i++) av+=x[i]/N 第二处 y[j]=x[i]; x[i]=-1;j++;} 第三处 i++; 2. 程序修改 给定程序 MODI1.C 中函数 fun 的功能是:统计字符串各元音字母 (即:A、E、I、O、U)的个数。注意字母不分大小写。 /**found**/ num[k]=0;
二级C语言上机真题及答案(最新完整版)
1.m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人作为函数值1.int fun(int score[],int m,int below[]){int i,k=0,aver=0;for(i-0;i<m;i++)aver+=score[i];aver/=m;for(i=0,i<m;i++)if(score[i]<aver){below[k]=score[i];k++;}return k;}2.请编写函数fun,它的功能是:求出1到100之内能北7或者11整除,但不能同时北7和11整除的所有证书2.void fun(int *a,int *n){int i,j=0;for(i=2;i<1000;i++)if((i%7==0//i%11==0))&i%77!=0)a[j++]=i;*n=j;}3.请编写函数void fun(int x,int pp[],int *n),它的功能是:求出能整除x且不是偶数的各整数,并按3. void fun(int x, int pp[],int *n){int i=1,j=0,k=0,*t=pp;for(i=0;i<=x;i++)if(i%2!=0){t[j]=i;j++;}for(i=0;i<j;i++)if(x%t[i]==0){pp[k]=t[i];k++;}*n=k;}4.请编写一个函数void fun(char *tt,int pp[]),统计在tt字符中"a"到"z"26各字母各自出现的次数,4. void fun(char *tt,int pp[]){int i;for(i=0;i<26;i++)pp[i]=0;while (*tt){switch(*tt){case'a':pp[0]++;break;case'b':pp[1]++;break;case'c':pp[2]++;break;case'd':pp[3]++;break;case'e':pp[4]++;break;case'f':pp[5]++;break;case'g':pp[6]++;break;case'h':pp[7]++;break;case'i':pp[8]++;break;case'j':pp[9]++;break;case'k':pp[10]++;break;case'l':pp[11]++;break;case'm':pp[12]++;break;case'n':pp[13]++;break;case'o':pp[14]++;break;case'p':pp[15]++;break;case'q':pp[16]++;break;case'r':pp[17]++;break;case's':pp[18]++;break;case't':pp[19]++;break;case'u':pp[20]++;break;case'v':pp[21]++;break;case'w':pp[22]++;break;case'x':pp[23]++;break;case'y':pp[24]++;break;case'z':pp[25]++;break;}tt++;}}5.请编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k各素数5. void fun(int m,int k,int xx[]){int g=0,i,j,flag=1;for(i=m+1;i<m*m;i++){for(j=2;j<i;j++){if (i%j!=0)flag=1;else{flag=0;break;}}if (flag==1&j>=i){if (k>0){xx[g++]=i;k--;}elsebreak;}}}6.请编写一个函数void fun(char a[],char[],int n),其功能是:删除以各字符串中指定下标的字符。
二级(C语言程序设计)上机题汇总
void main()
{ int m=0,t=1,n;
while( __scanf(“%d”,&n), n<=0___);
while(!(t<=n&&t*2>=n)){
___t=t*2;___
m++;
}
printf("%d\n",m);
}
练习七:
/*该程序功能:函数f将数组循环左移k个元素,数组x[7]调用函数f后的输出结果为:4 5 6 7 1 2 3*/
{ float y=0; int i,j;
for(i=0;i<m;i++) for(j=0;j<n;j++) y=y+*(*(x+i)+j);
return y;
}
void main()
{ float a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}},*b[3];
int i;
#include <stdio.h>
__long f(int n);
void main()
{
printf("%ld\n",f(30));
}
long f(int n)
{
if( _____n==1||n==2)
return 1;
else
return f(n-1)+f(n-2);
}
练习十一:
/*该程序功能:输入m,n(要求输入均大于0,且m>=n),输出它们的最大公约数*/
f(x,7,3);
3月全国计算机等级考试二级C语言上机题库(20~30套)
3月全国计算机等级考试二级C语言上机题库(20~30套)3月全国计算机等级考试二级C语言上机题库(20~30套)考试频道小编收集整理计算机等级考试资料,免费提供给大家交流参考。
第二十一套1. 程序填空给定程序中,函数fun的功能是:在形参ss所指字符串数组中,将所有串长超过k的字符串右边的字符删去,只保留左边的k个字符。
ss所指字符串数组中共有N个字符串,且串小于M。
第一处void fun(char (*ss)[M], int k)第二处while (i第三处ss[i][k]=0;i++;}2. 程序修改给定程序MODI1.C中函数fun的功能是:根据以下公式求值,并作为函数值返回。
例如,给指定精度的变量eps输入0.0005时,应当输出Pi=30140578.。
/**found**/t=1;/**found**/return(2*s);3. 程序设计假定输入字符串中只包含字母和*号。
请编写函数fun,它的功能是:将字符串的前导*号不得多于n个;若多于n个,则删除多余的*号;若少于或等于n个,则什么也不做,字符串中间和尾部的*号不删除。
函数fun中给出的语句仅供参考。
void fun(char*a,int n){int i=0,k=0;while(a[k]= =*)k++;if(kn){i=n;j=k;for(;a[j]!=0;j++)a[i++]=a[j];a[i]=0;}}第二十二套1. 程序填空给定程序中,函数fun的功能是:a所指43矩阵中第k行的元素与第0行元素交换。
例如:有下列矩阵1 2 34 5 67 8 910 11 12若k为2,程序执行结果为7 8 94 5 61 2 310 11 12第一处void fun(int (*a)[N],int k)第二处for(i=0;i第三处a[0][i]=a[k][i];2. 程序修改给定程序MODI1.C中函数fun的功能是:读入一个字符串(长度20),将该字符串中的所有字符串按ASCII码升序排序后输出。
二级C语言上机考试复习资料,共有50套题目
printf("\nThe result is : %s\n",p);
}
6、程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的信息。函数fun的功能是输出这位学生的信息。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
for(i=1; i<n-2; i=i+2) {
/**********found**********/
___1___;
/**********found**********/
for(j=___2___+2 ; j<n; j=j+2)
if(s[t]>s[j]) t=j;
if(t!=i)
{ x=s[i]; s[i]=s[t]; s[t]=x; }
int fun(int x[])
{ int i,j,k,t,mid,b[N];
for(i=0;i<N;i++) b[i]=x[i];
for(i=0;i<=N/2;i++)
{ k=i;
for(j=i+1;j<N;j++) if(b[k]>b[j]) k=j;
if(k != i )
{
/**********found**********/
return mid;
}
main()
{ int i, x[N]={1,5,7,23,87,5,8,21,45};
for(i=0; i<N; i++) printf("%d ",x[i]);
全国计算机二级C语言上机考试100题
全国计算机二级C语言上机考试100题1.编写函数fun,如,a=45,b=12时,调用该函数后,c=4152.*c=(a/10)*1000+(b/10)*100+(a%10)*10+(b%10)填空:1.STYPE 2.FILE 3.fp 改错:1.for(i=0;i<=s1;i++) 2.t[s1]=’\0’改为t[2*s1]=’\0’.编写函数fun,如,a=45,b=12,调用后,c=1524.*c=(b/10)*1000+(a%10)*100+(b%10)*10+(a/10);填空:1,*fw 2.str 3.str 改错1.void fun (long s, long *t3>合并整a,b;a的十位和个位放在c的个位和百位上,b的十位和各位在c的十位和千位*c=(b%10)*1000+(a%10)*100+(b%10)*10+a/10;填空 1>ft 2>fclose 3>fname改错 1>for(i=j+i;ip=i4>合并整a,b;a的十位和位个放在c的十位和千位上,b的十位和个位在c的十位百和个位*c=(a%10)*1000+(b/10)*100+(a/10)*10+(b%10);填空1>"r" 2>fs 3>ft改错1>if(d%2==0) 2>s/=10;5>计算n门课程的均分,返回结果int i;float ave=0.0;for(i=0;ireturn ave;填空1>x 2>p 3>s 改错1>long k=1; 2>num/=10;6>比较两个字符串,返回长的,相等返回前者int i; char *p=s,*q=t; int n=0,m=0;while(*p) {n++; p++;} while(*q){m++; q++;} if(n>=m) p=s; else p=t;return p;7>求到能被7或11整除的整数,通过n返回个数int i,j=0;*n=0; for(i=1;i<=m;i++)if(i%7==0||i%11==0) {a[j]=i; j++;}*n=j; 填空1>q 2>nex 3>next改错1>p=j; 2>p=i;8>将ss所指字符串中下标为奇数的字母换为大写int i; for(i=1;i< bdsfid="97" p=""><>{if(ss[i]>='a'&&ss[i]<='z')ss[i]-=32];}填空1>0或NULL 2>n 3>head,ch改错1>for(i=0,t=0;p[i];i++) 2>c[t]='\0';9>保留下标和ASCII值为偶数的字符,其余删除int i,j=0; for(i=0;i< bdsfid="103" p=""><>if(s[i]%2==0) t[j++]=s[i]; t[j]='\0';填1>*n2>next3>head 改1>a=NULL;2>if(*r==*p)10>删除s中下标为偶数的字符,剩余放在t中int i,j=0; for(i=1;i< bdsfid="108" p=""><>t[j++]=s[i]; t[j]='\0'11>删除s所指字符串中ASCII值为偶数的字符,其余放在t所指数组中 int i,j=0;for(i=0;i<="" p="">t[j++]=s[i]; t[j]=0;填空1>STU 2>std[i].num 3>std[i]改错1>r++; p++ 2>if(*r=='\0')12>学生数据在结构体a中,找最高分用形参指针返回int i,max=a[0].s,j=0; for(i=1;i<n;i++)< bdsfid="119" p=""></n;i++)<>if(maxstd[i].year 2>std[i] 3>n改错1>IsPrime(int n)2>if(!(n%i))13>给数组左下角元素乘n int i,j;for(i=0;ia[i][j]*=n;填空1>STU 2>score[i] 3>&std改错1>if(k>0) 2>else if(k==0)14>使数组坐下三角元素为零 int i,j;for(i=0;ia[i][j]=0; 填空1>*std 2>PERSON 3>std改错1>int i,k,q; 2>pt[i]=str[k][i];15>求出二维数组每列最小元素并依次放入pp数组中int i,j,min,k; for(i=0;i<n;i++)< bdsfid="135" p=""></n;i++)<> {min=tt[0][i];k=0; for(j=1;j<m;j++)< bdsfid="137" p=""></m;j++)<>if(min>tt[j][i]){min=tt[j][i]; k=j; }pp[i]=tt[k][i];}填1>*std2>std[i].age3>/doc/4dc8440af12d2af90 242e63e.html 改1>void fun(int *a,int *b) 2>t=*b;*b=*a;*a=t;16>函数求出w的低n-1位的数作为函数返回值unsigned t,s=0,s1=1,p=0; t=w; while(t>10) {if(t/10) p=t%10; s=s+p*s1; s1=s1*10t=t/10;} return s;填空1>tt2>tt.score[i]3>std 改错1>m=i;2>if(a[k]>a[m])m=k;17>把s所指字符串逆置char b[N]; int i=0,j; memset(b,0,N); for(j=strlen(s)-1;j>=0;j--)b[i++]=s[j]; strcpy(s,b);填1>i+12>k=j3>t 错1>void fun(char *str,char ch) 2>if(*str!=ch) 3>str[1]='\0';18>从s所指的字符串中删除给定字符char *p=s; int i=0; while(*p){if(*p !=c)s[i++]=*p; p++;} s[i]='\0';填空1>k 2>len 3>ss[i][j]改错1>result*=n--; 2>return result;19>对7个字符的串除首尾字符外按ASCII码降序排列char t; int i,j; for(i=1;i<num-2;i++)< bdsfid="152" p=""></num-2;i++)<>for(j=i+1;j<s[j])<="" p="">{t=s[i]; s[i]=s[j]; s[j]=t; }填空1>ss[i] 2>n+j 3>1改错1>if(*p=='') 2>*(p-1)=toupper(*(p-1));20>统计长为2的字符串再另一串中出现的次数int cnt=0; char *p=str, *q; while(*p){q=strstr(p,substr); if(q==NULL) break;p=q+strlen(substr); cnt++} return cnt;填1>[N] 2>len 3>*n=len 改1>t+=1.0/i; 2>return t;21>将1到m的非素数存入xx数组中,用k传回其个数int i,j; int t=0; for(i=2;i<="">j=2; while(jt++; break; } j++; } *k=t; }填空1>M 2>< 3>k改错1>if(('a'<=tt[i])&&(tt[i]<='z')) 2>tt[i]-=32;22>指出ss字符串中指定字符的个数并返回此值int cnt=0; char *p=ss; while(*p) {if(*p==c)cnt++; p++; } return cnt;填空1>j++ 2>s[i]=t1[i] 3>j改错1>for(j=i+1;j<6;j++) 2>*(pstr+i)=*(pstr+j);23>计算矩阵A加上A的转置,存放在矩阵B中int c[3][3]; int i,j; for(i=0;i<3;i++)for(j=0;j<3;j++) { c[i][j]=a[j][i];b[i][j]=a[i][j]+c[i][j]; }填空1>&& 2>0 3>s[j]改错1>for(i=2;i<=m;i++) 2>y+=1.0/(i*i);24>秋1到1000能被7或11整除但不能同时整除的数int i; *n=0; for(i=7;i<1000;i++)if(((i%7)==0||(i%11)==0)&&(i%77)!=0) a[(*n)++]=i;填1>s[i] 2>'9' 3>*t=n 改1>t=*x; *x=y; 2>return(t); 25>统计tt中26个字母出现的次数,并依次放在pp中char *p=tt; int i; for(i=0;i<26;i++)pp[i]=0;while(*p){ if(*p>='a'&&*p<='z')pp[*p-'a']+=1;p++;}填空1>1 2>s[k] 3>c 改错1>long s=0,t=0; 2>t=t/10;26.输入字符串:world,然后输入3,则输出结果为:Int p,m=0; for(p=0;p填空: 1.t=i 2. i 3.0改错:1.while(fabs(t)>=num) 2.t=s/n;27根据公式计算s计算结果返回.如,n的值为11时,函数值为1.833333 int k; float str=1.0,sum=1.0;for(k=2;k<=n;k++) {sum=sum+k; str=str+1/sum;} return str;填空:1.0 2.0 3.c 改错:1.double sum=0.0; 2.sum/=c28.利用简单迭代方法求方程:cox(x)-x=0的一个实根。
全国计算机等级考试二级C语言上机考试题库100道
2 }
3. 请编写函数fun,它的功能是:求小于形参n同时能被3和7整除的所有自然数之和的平方根,并作函数的返回值。
double sum=0.0;
int i;
for(i=21;i<=n;i++)
if((i%3= =0)&&(i%7= =0))sum
1 *n 2 next 3 head
2. 给定程序MODI1.C中函数fun的功能是:求出s所指字符串最后一次出现的t所指字符串的地址,通过函数值返回,在主函数中输出从此地址开始的字符串;若未找到,则函数值NULL。
1 a=NULL; 2 if(*r==*p)
2. 给定程序MODI1.C中函数fun的功能是:按以下递推公式求函数值。例如,当给n输出5时,函数值为18;当给n输入3时,函数值为14.
1 fun(int n) 2 if(n==1)
3. 假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:使字符串中尾部的*号不得多于n个;若多于n个则删除多余的*号;若少于或等于n个,则什么也不做,字符串中间和前面的*号不删除。
2给定程序MODI1.C中函数fun的功能是:将s所指字符串中的字母转换为按字母顺序的后续字母(但Z转化成A,z转换为a),其它字符不变。
1 while(*s) 2 s++;
3 请编写函数fun,函数的功能是:移动一维数组中的内容,若数组中有n个整数,要求把下标从0~p(含p,p小于 等于n-1)的数组元素平移到数组的最后。
1 N 2 substr 3 0
2. 给定程序MODI1.C中函数fun的功能是:求三个数的最小公倍数。
计算机二级C语言上机题型总结
计算机二级C语言上机题型总结一)“******”问题1、将字符串中的前导*号全部删除,中间和后面的*号不删除。
void fun(char *a){char *p=a;while(*p= =’*’) p++;for( ; *p!=’\0’;p++,a++)*a=*p;*a=’\0’;}2、只删中间*int i;for(i=0;a[i]= =’*’;i++)for( ;h<p;h++)if(*h!=’*’)a[i++]=*h;for( ;*p;p++)a[i++]=*p;a[i]=’\0’;3、只删尾*while(*a!=’\0’)a++;a--;while(*a= =’*’)a--;*(a+1)=’\0’;4、只留前*int i , j=0;for(i=0;a=’*’;i++); j=i;for( ;a;i++)if(a!=’*’)a[j++]=a[i];a[j]=’\0’;5、只留中间*int i,j=0;for(i=h;i<n-e;i++) a[j++]=a[i];a[j]=’\0’;6、只留尾*char *t=a;for( ; t<=p;t++)if(*t!=’*’)*(a++)=*t;for( ;t!=’\0’;t++)*(a++)=*t;*a=’\0’;7、*个数>n个,删多余的*;*个数<=n个,不做任何处理。
int i=0, k=0;char *p,*t;p=t=a;while(*t= =’*’){k++;t++;}if(k>n){while(*p){a[i]=*(p+k-n);i++;p++}a[i]=’\0’;}(二)移动问题1、若一维数组中有n个整数,要求把下标从p到n-1(p<=n-1)的元素平移到数组前面。
int i,j,t;for(i=p;i<=n-1;i++){t=w[n-1];for(j=n-2;j>=0;j--)w[j+1]=w[j];w[0]=t;}2、把下标从0到p(p<=n-1)的元素平移到数组最后。
全国计算机等级考试二级C语言上机考试题库及答案
第1套一、填空给定函数的功能是调用fun 函数建立班级通讯录。
通讯录记录每位学生的编号,姓名和电话号码。
班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为答案yfile5.dat的二进制文件中。
答案:1. STYPE 2. FILE3. fp二、修改先将在字符串s中的字符按正序存放到t串中,然后把s 中的字符按逆序连接到t串后面。
答案:1. for(i = 0 ; i < sl ;i++) 2. t[2*sl] =` 0`; 三、程序将两个两位数的正整数a,答案合并成一个整数放在c中。
合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,答案数的十位和个位数依次放在c数的百位和个位上。
*c=(a/10)*1000+(b/10)*100+(a%10)*10+(b%10);第2套一、填空从键盘输入若干行文本(每行不超过80个字符),写到文件答案yfile4.txt中,用-1作为字符串输入结束的标记。
然后将文件的内容读出显示在屏幕上。
文件的读写分别有自定义函数ReadText 和WriteText实现。
答案:*fw str str 二、修改从低位开始取出长整形变量s中的奇数位上的数,依次构成一个新数放在t中,高位仍放在高位,低位仍放在低位。
答案:long *t sl =sl*10;三、程序将两个两位数的正整数a,答案合并成一个整数放在c中。
合并的方式:将a数的十位和个位数依次放在c数的千位和十位上,答案数的十位和个位数依次放在c数的百位和个位上。
*c=(b/10)*1000+(a%10)*100+(b%10)*10 +(a/10);第3套一、填空将自然数1~10以及它们的平方根写到名为答案yfile3txt的文本文档中,然后再顺序读出显示在屏幕上。
答案:(1)fp (2)fclose(fp)(3)fname二、修改将n个无序整数从小到大排序。
答案:for(i=j+1;i<n;i++)p=i;三、程序将两个两位数的正整数a,答案合并成一个整数放在c中。
国计算机等级考试二级c语言上机题汇编
国计算机等级考试二级c语言上机题汇编网友常用标签(共3个):计算机等级考试二级上机试题1、编一个函数fun(char *s),函数的功能是把字符串中的内容逆置.例子如:字符串中原有的内容为:abcdefg,则调用该函数后,串中的内容为:gfedcba.试题程序:#include <string.h〉#include 〈conio.h>#include 〈stdio.h〉#define N 81/*注:该题的算法是先分别找出字符串的两头,然后同时逐一往中间移动,每移动一次都进行两字符的位置对换,直到中间字符(用s+i〈s+n—1—i来控制).由于s+i中一个地址,因此要注意把它的内容取出再进行换位。
即先进行取内容运算*)*/ fun(char *s){ int i=0,t,n=strlen(s);for(;s+i〈s+n-1-i;i++){t=*(s+i);*(s+i)=*(s+n—1—i);*(s+n—1-i)=t;}}main(){ char a[N];clrscr();printf("Enter a string:"); gets(a);printf("The original string is:");puts(a);fun(a);printf("\n”);printf("The string after modified:");puts(a);}2、写程序,实现矩阵(3行3列)的转置(即行列互换)。
例如,输入一面的矩阵:程序输出:试题程序:#include <stdio。
h>/*这题的关键在于进行行列下标转换的算法,由矩阵的对称性我们不难看出在进行行列互换时a[j]在好是与a[j][i]互换,因而只要我位让程序走完矩阵的左上角即可(用for(i=0;i<2;i++)再套for(j=i+1;j〈3;j++)来完成左上角的走动.*/int fun(int array[3][3]){ int i,j,t;for(i=0;i〈2;i++)for(j=i+1;j<3;j++){t=array[i][j];array[i][j]=array[j][i];array[j][i]=t;}}main(){ int i,j;int array[3][3]={{100,200,300},{400,500,600},{700,800,900}}; clrscr();for(i=0;i〈3;i++){for(j=0;j〈3;j++)printf("%7d",array[i][j]);printf(”\n”);}fun(array);printf("Converted array:\n");for(i=0;i<3;i++){for(j=0;j〈3;j++)printf("%7d”,array[i][j]);printf(”\n”);}}3、请编一个函数fun(int *a,int n,int *odd,int *even),函数的功能是分别求出数组中所有奇数之和以及所有偶数之和。
二级C语言上机试题汇编(含答案)
二级C语言上机试题汇编说明:本题库共有100套题目(每套题目包含3道题:一道程序填空题、一道程序修改题、一道程序设计题)真实考试题库中将有50套题目,考生输入准考证后计算机随机为你抽取一套考试,每个考生考试时只需考一套题目(包含三道题),但由于考试时是随机抽题,所以即使把原题库告诉大家,你也不能知道到时计算机会给你抽取哪一套题,所以大家只有把全部题库都理解才能万无一失)※※※※※※※※※※※※※※※※※※※※※※※※※第01套:给定程序中,函数fun的功能是:将形参n所指变量中,个位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。
例如,输入一个数:27638496,新的数:为739。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!给定源程序:#include <stdio.h>void fun(unsigned long *n){ unsigned long x=0, i; int t;i=1;while(*n)/**********found**********/{ t=*n % __1__;/**********found**********/if(t%2!= __2__){ x=x+t*i; i=i*10; }*n =*n /10;}/**********found**********/*n=__3__;}main(){ unsigned long n=-1;while(n>99999999||n<0){ printf("Please input(0<n<100000000): "); scanf("%ld",&n); }fun(&n);printf("\nThe result is: %ld\n",n);}解题思路:第一处:t是通过取模的方式来得到*n的个位数字,所以应填:10。
浙江省二级C上机程序汇总
二级考试(C语言)上机部分试题1.三个数比较大小。
#include <stdio.h>void swap(______1______) //int *pa,int *pb{ /*交换两个数的位置*/int temp; temp = *pa; *pa = *pb; *pb = temp; } void main(){ int a,b,c,temp;scanf("%d%d%d",&a,&b,&c);if(a>b) swap(&a,&b);if(b>c) swap(&b,&c);if(______2______) //a>bswap(&a,&b);printf("%d,%d,%d",a,b,c); }2.表达式求和。
#include <stdio.h> #include <math.h>void main(){ FILE *fp;float n=1,t=1,pi=0;int i;// 从以下开始答题i=1;while(fabs(t)>=1e-6){ pi=pi+t; i=-i; n=n+2; t=i/n; }fp=fopen("Design1.dat","w");fprintf(fp,"%.6f",4*pi);fclose(fp); }运行结果:3.1415943.字母后移循环输出。
#include <stdio.h>void main(){ char c; c=getchar();if(______1______) // c>='a' && c<'v' c=c+5;elseif (c>='v' && c<='z')______2______ // c=c-21;putchar(c); }4.求满足条件的数。
国二考试C语言程序的设计上机100题与答案
使用说明:此100套编程题来源于清华同方光盘电子出版的《全国计算机等级考试二级C语言程序设计上机考试题库》,特此声明。
国二考试二级C语言程序设计100套题,各个版本的书大概都差不多。
以下是本人精心整理的题库100题(包括答案以及题目要求),希望给悉心复习的你一点小小的启发和帮助啦。
因为写得匆忙,如果有不恰当之处,恳请各路编程高手给予批评指正(本人纯属业余的编程爱好者)!注:答案仅供参考!!——作者100套题第1套编程题#include <stdio.h>#define M 100void fun (int m,int *a,int *n){int i;*n=0;for(i=1;i<=m;i++)if(i%7==0||i%11==0)a[(*n)++]=i;}main( ){ int aa[M],n,k;fun(50,aa,&n);for(k=0;k<n;k++)if((k+1)%20==0) printf("\n");else printf("%4d",aa[k]);printf("\n") ;}题目要求:将1~m之间能被7或11整除的所有整数放入数组a,通过n返回数的个数。
如m=50,则程序输出:7 11 14 21 22 28 33 35 42 44 49.100套题第2套编程题#include <stdio.h>void fun( int m, int *k, int xx[] ){int i,j,t=0;for(i=4;i<m;i++){for(j=2;j<i;j++)if(i%j==0){xx[t++]=i;break;}}*k=t;}main(){int m, n, zz[100];printf( "\nPlease enter an integer number between 10 and 100: " ); scanf( "%d", &n );fun( n, &m, zz );printf( "\n\nThere are %d non-prime numbers less than %d:", m, n ) ;for( n = 0; n < m; n++ )printf( "\n %4d", zz[n] );}题目要求:将所有大于1小于整数m的非素数存入xx数组,其个数通过k返回。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二级(C语言程序设计)上机题汇总一、程序调试题(一)程序填空练习一:/*该程序功能:对x=1,2,。
,10,f(x)=x*x*-5*x+sin(x)的最大值。
*/#include <stdio.h>#include <math.h>#define f(x) x*x-5*x+sin(x)void main(){ int x; float max;____ max=f(1);____for(x=2;x<=10;x++)___if( max<f(x)) max=f(x);___printf("%f\n",max);}练习二:/*该程序功能:输入三个整数,按由小到大的顺序输出这三个数。
*/#include <stdio.h>void swap(__int *pa, int *pb____){ /*交换两个数的位置*/int temp;temp = *pa;*pa = *pb;*pb = temp;}void main(){int a,b,c,temp;scanf("%d%d%d",&a,&b,&c);if(a>b)swap(&a,&b);if(b>c)swap(&b,&c);if(__a>b___)swap(&a,&b);printf("%d,%d,%d",a,b,c);}练习三:/*该程序功能:将输入的十进制正整数n通过函数Dec2Bin转换为二进制数,并将转换结果输出。
*/#include <stdio.h>void Dec2Bin(int m){int bin[32],j;for(j=0;m!=0;j++){bin[j]= __m%2___;m=m/2;}for(;j!=0;j--)printf("%d", ____bin[j-1]_ _____ );}void main(){int n;scanf("%d",&n);Dec2Bin(n);}练习四:/*该程序功能:输入数组x[7],调用函数f,去除数组中的负数,输出结果为:1 3 4 6*/ #include <stdio.h>void f(int *a,int *m){ int i,j;for(i=0;i<*m;i++)if(a[i]<0) {for(j=i--;j<*m-1;j++) a[j]=a[j+1];___*m=*m-1;___}}void main(){ int i,n=7,x[7]={1,-2,3,4,-5,6,-7};_ f(x,&n);_____for(i=0;i<n;i++) printf("%5d",x[i]);printf("\n");}练习五:/*该程序功能:输出6~1000之间的完数(1个数的因子和等于其自身的数:6=1+2+3,28=1+2+4+7+14,则6,28都是完数)*/#include <stdio.h>void main(){ int i,j,s;for(i=6;i<=1000;i++) {___s=1;___for(j=2;___j<i___;j++) if(i%j==0) s+=j;if(s==i) printf("%d\n",s);}}练习六:/*该程序功能:输入整数n(n>0),求m使得2的m次方小于或等于n,2的m+1次方大于或等于n。
*/#include <stdio.h>void main(){ int m=0,t=1,n;while( __scanf(“%d”,&n), n<=0___);while(!(t<=n&&t*2>=n)){___t=t*2;___m++;}printf("%d\n",m);}练习七:/*该程序功能:函数f将数组循环左移k个元素,数组x[7]调用函数f后的输出结果为:4 5 6 7 1 2 3*/#include <stdio.h>void f(int *a,int n,int k){ int i,j,t;for(i=0;i<k;i++) {_t=a[0];for( j=1;j<n;j++ ) a[j-1]=a[j];a[n-1]=t;}}void main(){ int i,x[7]={1,2,3,4,5,6,7};f(x,7,3);for(i=0;i<7;i++) printf("%5d",x[i]); printf("\n");}练习八:/*该程序功能:调用函数f,求二维数组a中全体元素的和.*/#include <stdio.h>float f( _float *x[], int m, int n_____){ float y=0; int i,j;for(i=0;i<m;i++) for(j=0;j<n;j++) y=y+*(*(x+i)+j);return y;}void main(){ float a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}},*b[3];int i;for(i=0;i<3;i++) b[i]=__ a[i]__;printf("%.2f\n",f(b,3,4));}练习九:/*该程序功能:求输入的整数各位数字之和,如输入234则输出9,输入-312则输出6。
*/ #include <stdio.h>#include <math.h>void main(){int n,s=0;scanf("%d",&n);____n=fabs(n);____while(n!=0) {____s+=n%10;____n=n/10;}printf("%d\n",s);}练习十:/*该程序功能:数组的第1,2项均为1,此后各项值均为该项前二项之和。
计算数组第30项的值。
*/#include <stdio.h>__long f(int n);void main(){printf("%ld\n",f(30));}long f(int n){if( _____n<=2 )return 1;elsereturn f(n-1)+f(n-2);}练习十一:/*该程序功能:输入m,n(要求输入均大于0,且m>=n),输出它们的最大公约数*/#include <stdio.h>void main( ){ int m,n,k;while(scanf("%d%d",&m,&n), m<0||n<0||m<n );for(k=n;n%k!=0||m%k!=0;k--);printf("%d\n",k);}练习十二:/*程序功能:输入一个整数后,输出该数的位数,如3114,则输出4。
*/#include<stdio.h>void main(){ int n,k=0;scanf(“%d”,&n);while( n!=0 ){k++;n=n/10;}printf(“%d\n”,k);}练习十三:/*程序功能:调用函数f,计算代数多项式1.1+2.2*x+3.3*x*x+4.4*x*x*x+5.5* x*x*x x,当x=1.7时的值。
*/#include<stdio.h>float f(float,float*,int);void main(){ float b[5]={1.1,2.2,3.3,4.4,5.5};printf("%f\n",f(1.7,b,5));}float f(float x,float *a,int n){ float y=a[0],t=1;int i;for(i=1;i<n;i++) {t=t*x;y=y+a[i]*t;}return y;}练习十四:/*程序功能:调用函数f,从字符串中删除所有的数字字符。
*/#include <stdio.h>#include <string.h>#include <ctype.h>void f(char *s){ int i=0;while(s[i]!='\0')if(isdigit(s[i])) strcpy (s+i,s+i+1);else i++;}(二)程序修改练习一:/*该程序功能:运行是输入n,输出n各位数字之和(如n=1308则输出12,n=-3204则输出9)。
*/#include <stdio.h>#include <math.h>void main(){ int n,s=0;scanf("%d",&n);n=fabs(n);/******** 1 *******/while(n>1) { //n>1改成ns=s+n%10;/******** 2 ******/n=n%10; // n=n%10;改成n=n/10;}printf("%d\n",s);}练习二:/*该程序功能:输入m,n(要求输入均大于0,且m>=n),输出它们的最小公倍数*/#include <stdio.h>void main( ){ int m,n,k;/******** 1 *********/while(scanf("%d%d",&m,&n),m<0 && n<0); // m<0 && n<0改成m<0||n<0||m<nfor(k=m; k%n!=0;)/******** 2 ********/k=k+n; // k=k+n;改成k=k+m;printf("%d\n",k);}练习三:/*该程序功能:输入n以及小于n个字符的字符串,将字符串中所有小写字母改为相应的大写字母,输出该字符串。
*/#include <stdio.h>#include <string.h>#include <stdlib.h>void main(){ int n,i;/***** 1 *****/char str; // char str;改成char *str;scanf("%d\n",&n); str=(char*)malloc(n); gets(str);/***** 2 *****/for(i=1;i<strlen(str);i++) // i=1;改成i=0;或i<strlen(str); 改成i<=strlen(str);if(str[i]>='a'&& str[i]<='z') str[i]=str[i]-('a'-'A');puts(str);}练习四:/*该程序功能:输人1个字符串,按字母出现次序输出其中所出现过的大写英文字母。