计算机二级C上机编程题型

更新时间:2024-04-10 12:04:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1返回指定学生数据,指定学号在主函数中输出。若没找到指定学号在结构体变量中给学号置空串,给成绩置-1,作为函数值返回 int i;

STREC t={\for(i=0;i

if(strcmp(a[i].num,b)==0) {t=a[i];break;} } return t;

2.将S所指字符串中ASCLL值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中 int i,k=0;

for(i=0;s[i]!='\\0';i++)

{if(s[i]%2!=0) t[k++]=s[i];

}

t[k]='\\0';

3将字符串尾的x号全部删除,前面和中间的不删除 int len=0; while(a[len]!='\\0') {len++ }

len=len-1; while(a[len]=='*') {len--;

}

a[len+1]='\\0'

4统计一行字符串中单词的个数,作为函数值返回。一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间由若干个空格隔开,一行的开始没有空格。 int i,k=1;

for(i=1;s[i]!='\\0';i++)

{if(s[i]>='a'&&s[i]<='z'&&s[i-1]==' ') k++; }

return k;

5编写函数fun,函数的功能是求出小于或等于lim的所有素数并放在aa数组中,函数返回所求出的素数的个数。函数fun中给出的语句公供参考 int x,i,k=0;

for(x=1;x<=lim;x++) {for(i=2;i

{if(x%i==0) break; }

if(i==x) aa[k++]=x; } return k;

6计算s=根号下ln1+..ln(m),s作为函数值返回 double s=0; int i;

for(i=1;i<=m;i++) {s=s+log(i); }

return sqrt(s);

7删除一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。 int i,k=1; for(i=0;i

a[k++]=a[i]; }

return k;

8将ss所指字符串中所有下标为奇数位置上的字母转换为大写,该位置上不是字母,则不转换。

int i;

for(i=0;ss[i]!='\\0';i++)

{if(i%2!=0&&ss[i]>='a'&&ss[i]<='z') ss[i]=ss[i]-32; }

9求出数组周边元素平均值病作为函数值返回给主函数中的s double sum=0; int i,j;

for(i=0;i

if(i==0||i==N-1||j==0||j==N-1) }

}

return sum/(4*N-4);

10对变量h中的值保留两位小数,病对第三位四舍五入(h中的数值为正数) return (long) (h*100+0.5)/100.0

11将M行N列的二维数组中的数据,按列顺序依次放到一个字符串中 int i,j,k=0; for(j=0;j

b[k]='\\0';

12移动字符串中的内容,移动规则:把第一个到第m个移到最后,把后面移到前面 int i,j;

char t;

for(i=1;i<=m;i++) {t=w[0];

for(j=1;w[j]!='\\0';j++) {w[j-1]=w[j]; } w[j-1]=t;

}

13若有n个整数,要求把下标从0到p平移到最后 int i,j,t;

for(i=0;i<=p;i++) {t=w[0]; for(j=1;j<=n;j++) {w[j-1]=w[j]; } w[j-1]=t; }

14计算并输出给定10个数方差 double sum=0,t=0; int i;

for(i=0;i<10;i++) {t=t+x[i]; } t=t/10;

for(i=0;i<10;i++)

{sum=sum+(x[i]-t)*(x[i]-t); }

return sqrt(sum/10);

15求出二维数组周边元素之和,作为函数值返回。二维数组中的数值在主函数中赋予 int i,j,sum=0; for(i=0;i

{if(i==0||i==M-1||j==0||j==N-1) sum=sum+a[i][j]; } }

return sum;

16将放在字符串中的m个字符串按顺序合并成一个新的字符串 int i,j,k=0;

for(i=0;i

b[k]='\\0';

17把分数最低的学生数据放在B所指的数组中,注意:分数最低的学生可能不止一个,返回人数 int i,k=0,min; min=a[0].s;

for(i=1;ia[i].s) min=a[i].s; }

for(i=0;i

{if(a[i].s==min) b[k++]=a[i]; }

return k;

18利用简单迭代方法求cos(x)-x=0的一个实根。Xn+1=cos(Xn) float x0,x1; x1=0.0; do {x0=x1; x1=cos(x0); }

while(fabs(x0-x1)>=0.000001); return x1;

19将M行N列的二维数组中的数据,按列的顺序依次放到一维数组中。 int i,j,k=0;

for(j=0;j

*n=k;1

20将二维数组按列的顺序放到一维数组 int i,j,k=0; for(j=0;j

21将两个两位数的正整数a.b合并形成一个整数放c中。合并的方式是:a的十位和个位放c的千位和十位。b的十位·· *c=a/10*1000+b/10*100+a*10+b;

22请编写一个函数 void fun()统计a到z26个字母各自出现次数,并写入PP中 int i;

for(i=0;i<26;i++) {pp[i]=0;

}

for(i=0;tt[i]!='\\0';i++) {if(tt[i]>='a'&&tt[i]<='z') pp[tt[i]-'a']++; }

23找出成绩最低的学生记录,通过形参返回主函数 int i,k,min; min=a[0].s; k=0;

for(i=1;ia[i].s) {min=a[i].s;k=i;} } *s=a[k];

24求一个2xM二维数组最大元素值,并将此值返回调用函数 int i,j,max=a[0][0]; for(i=0;i<2;i++)

{for(j=0;j

{if(max

return max;

25使数组左下三角元素中的值乘n int i,j;

for(i=0;i=j)

a[i][j]=a[i][j]*n; } }

26M行N列二维数组按行顺序放在一维数组中,一维数组中数据个数放在形参n所指的存储单元中 int i,j,k=0;

for(i=0;i

} } *n=k;

27计算输出n包括n以内能被5或9整除的所有自然数的倒数之和 double s=0; int i;

for(i=1;i<=n;i++) {if(i%5==0||i%9==0) s=s+1.0/i; }

return s;

28判断字符串是否回文?若是,函数返回1,主函数中输出:YES否侧返回0,主函数中输出NO。 int i,len=0; while(str[len]!='\\0') {len++; }

for(i=0;i

if(i==len/2) return 1;

else return 0;

30求1到1000内能被7或11整除但不能同时被7和11整除的所有整数并将他们放在a所指ude数组中。 int i,k=0;

for(i=1;i<=1000;i++)

{if(i%7==0&&i!=0||i==0&&i%7!=0) a[k++]=i; }

*n=k;

31找出学生最高分,由函数值返回 double max; STREC *p=h->next; max=p->s;

while(p!=NULL)

{if(p->s>max) max=p->s; p=p->next }

return max;

32只删除字符串前和后的星号,串中字母之间的星号不能删除.形参n给出的字符串的长度,形参h给出的字符串中前导星号的个数, int i,k=0; for(i=h;i

}

a[k]='\\0';

33把制定分数范围内的学生数据放在b所指的数组中,分数范围内的学生个数由函数值返回

int i,k=0;

for(i=0;i=l&&a[i].s<=h) b[k++]=a[i]; }

return k;

34计算n门课程平均分,计算结果作为函数值返回 float s=0; int i=0;

for(i=0;i

}

return s/n;

36除了尾部的星之外,将字符串中其他星号全部删除,形参P已指向字符串中最后的一个字母。 int i,k=0; for(i=0;i

for(i=p-a;a[i]!='\\0';i++) {a[k++]=a[i]; }

a[k]='\\0';

37使数组右上半三角元素中的值乘m double t=1,s=1; int n=1;

while(fabs(t)>=0.000001) {t=t*(0.5-n+1)*x/n; s=s+t;

n++; }

return s;

38sn=1+(0.5x+0.5(0.5-1)除2!)x平方 double t=1,s=1;

int n=1;

while(fabs(t)>=0.000001) {t=t*(0.5-n+1)*x/n; s=s+t; n++;

}

return s;

39把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生个数通过形参n返回 double sum=0; int i,k=0;

for(i=0;i

for(i=0;i

{if(a[i].s>=sum/N) b[k++]=a[i]; }

*n=k;

return sum/N;

41将字符串中的前导星号全部移到字符串的尾部 int i; char t;

while(a[0]=='*') {t=a[0];

for(i=1;a[i]!='\\0';i++) {a[i-1]=a[i]; } }

a[i-1]=t;

42找出一维数组元素中最大的值和它所在的下标,最大的值和他所在的下表通过形参传回。 int i;

*max=a[0]; *d=0;

for(i=1;i

{if(*max

43把地狱平均分的学生数据放在b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回 int i,k=0; double s=0;

for(i=0;i

s=s+a[i].s; }

s=s/N;

for(i=0;i

if(a[i].s

44使字符串的前导星号不得多于n个;若多于n个,侧删除多余的星号;若少于或等于n个,侧什么也不做 int i,k=0,p=0; while(a[p]=='*') {p++; }

if(p>n)

{for(i=p-n;a[i]!='\\0';i++) {a[k++]=a[i]; } } a[k]='\\0';

45除了字符串前导的星号之外,将串中其他的星号全部删除。 int i,k=0; while(a[k]=='*') {k++; }

for(i=k;a[i]!='\\0';i++ {if(a[i]!='\\0';i++) a[k++]=a[i]; }

a[k]='\\0';

47将所有大于1小于整数m的非素数放入xx所指数组中,非素数的个数通过k传回 int x,i,n=0; for(x=2;x

if(i!=x) xx[n++]=x; } *k=n;

48求出1到m内(含m)能被7或11整除的所有的整数放在数组a中,通过n返回这些数的个数

int i,k=0;

for(i=1;i<=m;i++) {if(i%7==0||i==0) a[k++]=i; } *n=k;

49s=1+x+x n次方除以n! double s=1,t=1; int i=1;

for(i=1;i<=n;i++) {t=t*x/i; s=s+t; }

return s;

51计算并输出下列级数和:s=1除以1乘以2+1除以2乘以3+......+1除以n(n+1) double s=0; int i;

for(i=1;i<=n;i++) {s=s+1.0/(i*(i+1)); }

return s;

52 根据以下公式计算s,计算结果作为函数值返回;n通过形参传入。s=1加上1除以(1+2)+1除以(1+2+3).......加上1除以(1+2+3+4+...+n) float s=0,t=0; int i;

for(i=1;i<=n;i++) {t=t+i; s=s+1.0/t; }

return s;

53计算并输出给定数组(长度为9)中每相邻两个元素之平均值的平方根之和 double s=0; int i;

for(i=0;i<8;i++)

{s=s+sqrt((x[i]+x[i+1])/2); }

return s;

54删除一个字符串中指定下标的字符。其中,a指向原字符串,删除指定字符后的字符串存放在b所指的数组中,n中存放指定的下标。 int i,k=0;

for(i=0;a[i]!='\\0';i++) {if(i!=n) b[k++]=a[i]; }

b[k]='\\0';

55求小于形参n同时能被3与7整除的所有自然数之和的平方根,并作为函数值返回 double s=0; int i;

for(i=1;i

return sqrt(s);

56根据以下公式求p的值,结果由函数值带回。m与n为两个正整数且要求m大于n。p=m!除以n!(m-n)! int i;

float t1=1,t2=1,t3=1; for(i=1;i<=m;i++) {t1=t1*i; if(i==n) t2=t1; if(i==m-n) t3=t1; }

57删除字符串中的全部前导星号,中间和尾部的星号不删除 int i=0,k=0; while(a[i]=='*') {i++; }

for(i=i;a[i]!='\\0';i++) {a[k++]=a[i]; } a[k]='\\0';

58求出数组最大元素下标并存在k所指定的存储单元中 int i,max; max=s[0]; *k=0; for(i=1;i

{max=s[i];*k=i;} }

59将s所指字符串中下标为偶数的删除,串中剩余字符形成的新串放在t所指数组中。 int i,k=0;

for(i=0;s[i]!'\\0';i++) {if(i%2!=0) t[k++]=s[i]; }

t[k]='\\0';

61计算病输出给定整数n所有因子之和。规定n的值不大于1000 int i,s=0; for(i=2;i

return s;

62将大于形参m紧靠m的k个素数存入xx int x,i,n=0;

for(x=m+1; ;x++) {for(i=2;i

if(i==x) xx[n++]=x; if(n==k) break; }

63、二维数组是数坐下半三角的元素中的值全部为0 int i,j;

for (i=0;=

for (j=0;j

if (i>=j) a[i][j]=0; } }

64删除字符串中所有空格 int i,k=0;

for(i=0;str[i]!='\\0';i++)

{if(str[i]!=' ') str[k++]=str[i]; }

str[k]='\\0';

65长度为7除首尾其余5个按ASC降序排列 int i,j; char t;

for(i=1;i

{t=s[i];s[i]=s[j];s[j]=t;} } }

66比较字符串长度返回较长字符串,若2个字符串长度相同,则返回第一个字符串 int k=0,n=0; while(s[k]!='\\0') {k++;

}

while(t[n]!='\\0') {n++;

}

if(k>=n) return s; else return t;

67删除所有星号,在编写时,不得使用c语言提供的字符串函数 int i,k=0;

for(i=0;a[i]!='\\0';i++) {if(a[i]!='*') a[k++]=a[i]; } a[k]='\\0';

68s所指将字符串除了下标为偶数同时ACS值也为偶数外其余删除;串中剩余字符所形成的一个新字符串放在t所指的数组中 int i,k=0;

for(i=0;s[i]!='\\0';i++)

{if(i%2==0&&s[i]%2==0) t[k++]=s[i]; }

t[k]='\\0';

69从s所指字符串中删除指定字符。统一字母大小写按不同字符处理 int i,k=0;

for(i=0;s[i]!='\\0';i++) {if(s[i]!=c) s[k++]=s[i]; }

s[k]='\\0';

70按分数高低排列学生的记录,高分在前 int i,j; STREC t;

for(i=0;i{t=a[i];a[i]=a[j];a[j]=t;} } }

71秋能整除x且不是偶数的各整数从小到大放在pp数组中,除数的个数通过形参n返回 int i,k=0; for(i=1;i<=x;i++) {if(x%i==0&&i%2!=0) pp[k++]=i; } *n=k;

72低于平均分的人数返回低于平均分的分数放在below数组中 inti,k=0;

double sum=0; for(i=0;i

for(i=0;i

{if(score[i]

return k;

73实现b=a+a',即把矩阵A加A的转制存在B中。计算结果在main函数中输出 int i,j;

for(i=0;i<3;i++) {for(j=0;j<3;j++) {b[i][j]=a[i][j]+a[j][i]; } }

75计算3到n之间含所有素数平方根之和 double s=0; int x,i;

for(x=3;x<=n;x++) {for(i=2;i

if(i==x) s=s+sqrt(x); }

return s;

76分数最高的学生数据放在h所指数组中 int i,k=0,max; max=a[0].s; for(i=1;i

if(max

for(i=0;i

if(a[i].s==max) b[k++]=a[i]; }

return k;

77求平均分放在ave int i;

double sum=0; for(i=0;i

(*a).ave=sum/N;

79从num个字符串中找出最长的一个,病通过形参指针max传回该地址 if(maxlen

80 3行3列矩阵转制 int i,j,t;

for(i=0;i<3;i++) {for(j=i+1;j<3;j++) {t=array[i][j];

array[i][j]=array[j][i]; array[j][i]=t; } }

81将s所指字符串中下标为偶数同时ASCLL值为奇数的字符删除,s中剩余的字符形成的新串放在t所指的数组中 int i,k=0;

for(i=0;s[i]!='\\0';i++) {if(i%2!=0||s[i]%2==0) t[k++]=s[i]; }

t[k]='\\0';

82函数功能是把s所指字符串中的内容逆置 int i,len=strlen(s); char t;

for(i=0;i

83将s所指字符串中ASCLL值为奇数的字符删除,串中剩余字符形成一个新串放在t所指的数组中

int i,k=0;

for(i=0;s[i]!='\\0';i++)

{if(s[i]%2==0) t[k++]=s[i];

}

t[k]='\\0';

84将s所指字符串中除了下标为奇数,同时ASCLL值也为奇数的字符之外,其余的所有字符都删除 int i,k=0;

for(i=0;s[i]!='\\0';i++) {if(i%2!=0&&s[i]%2!=0) t[k++]=s[i]; }

t[k]='\\0';

85根据一下公式求(牌)的值. 二分之π=1+三分之一 double s=1,t=1; int n=1; while(t>=eps) {t=t*n/(2*n+1); s=s+t; } n++;

return 2*s;

86除了字符串前导和尾部的星号之外,将传中其他星号全部删除。形参h已指向字符串中第一个字母,形参p已指向字符串中最后一个字母 int i,k=h-a;

for(i=h-a;i

for(i=p-a;a[i]!='\\0';i++) {a[k++]=a[i]; }

a[k]='\\0';

87将一个数字字符串转换为一个整数 long s=0,i,f;

if(p[0]=='-') {i=1;f=-1;} else if(p[0]=='+') {i=1;f=1;} else {i=0;f=1;} while(p[i]!='\\0') {s=s*10+p[i]-'0'; i++; }

return f*s;

88实现两个字符串的连接,即把P2所指的字符串连接到p1所指的字符串后面 int n=0,k=0;

while(p1[n]!='\\0') {n++; }

while(p2[k]!='\\0') {p1[n]=p2[k]; k++; n++; }

p1[n]='\\0';

90s=1+(1+根号2) double s=0.t=0; int i;

for(i=1;i<=n;i++) {t=t+sqrt(i); s=s+t; } return s;

91求出SS字符串中。指定字符个数,并返回此值 int i,k=0;

for(i=0;ss[i]!='\\0';i++) {if(ss[i]==c) k++; }

return k;

92s=1+1乘2分之一 double s=0,t=1; int i;

for(i=1;i<=n;i++) {t=t*i; s=s+1.0/t; } return s;

93W是大于10的整数,若W是n位求出W的低n-1位的数作为函数值返回 unsigned t=w,j=1; while(t>10) {t=t/10; j=j*10; }

return w%j;

94sn=1-二分之一+三分之一 double s=0; int i;

for(i=1;i<=n;i++) {s=s+1.0/(2*i-1)-1.0/(2*i); }

return s;

95sn=1+1!分之一+2!分之一 double s=1,t=1; int i;

for(i=1;i<=n;i++) {t=t*i; s=s+1.0/t;

}

return s;

96tt指向一个M行N列的二维数组,求二维数组每列最小元素,并一次放入pp所指的一维数组中 int i,j,min;

for(j=0;jtt[i][j]) min=tt[i][j]; } }

pp[j]=min;

97N名同学的成绩以在主函数中放入一个带有节点的链表结果中,h指向链表的头结点。功能是:求出平均分 由函数值返回 double sum=0; STREC *p=h->next; while(p!=NULL) {

sum=sum+p->s; p=p->next; }

return sum/N;

98使字符串中尾部的星号不得多余n个;若多于n个,侧删除多余的星号;若少于或等于n个,侧什么也不做,字符串中间和前面的星号不删除

int len,k=0; while(a[len]!='\\0') {len++; }

len=len-1; while(a[len]=='*') {k++; len--; }

if(k>n) a[len+n+1]='\\0';

99求fibonacci数列大于t的最小的一个数,结果由函数返回 int a=0,b=1,c=a+b; while(c<=t) {a=b; b=c; c=a+b; }

return c;

100该函数可以统计一个长度为2的字符串在另一个的出现次数。 int i,k=0;

for(i=0;str[i]!='\\0';i++)

{if(str[i]==substr[0]&&str[i++]==substr[1]) k++; }

return k;

本文来源:https://www.bwwdw.com/article/hg3r.html

Top