上机考试题2011秋季学期(验证正确)

发布时间 : 星期六 文章上机考试题2011秋季学期(验证正确)更新完毕开始阅读

for(h=0;h<=6;h++) {

if(i+j+h==k) n++; } return(n); }

void main() {int x,n;

scanf(\ n=fun(x);

printf(\ }

13. 编写函数void fun(char *str),功能:对形参str所指字符串中的字符按ASCII码升序排序。例如,下面程序运行时输入:The C Programming Language<回车> 输出: CLPTaaaeegggghimmnnorru #include void fun(char *str)

{

int i,j,t;

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

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

if(str[j]

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

void main() {char s[100]; gets(s); fun(s); puts(s); }

14. 请编写函数void fun(int *a, int n, int y),它的功能是:把y值插入到有n个数的a数组中,a数组中的数已按由大到小的次序排好,y的值从键盘读入。 插入后,数组中的数仍然有序。对照下面三种情况运行程序:

1) 插在最前 2) 插在最后 3) 插在中间

若输入数11, 输出 20 18 16 14 12 11 10

8 6 4 2

输入数1, 输出 20 18 16 14 12 10 8 6 4 2 1

输入数33, 输出 33 20 18 16 14 12 10 8 6 4 2

#include

void fun(int *a,int n,int y)

{ int i,j;

if(y<=a[n-1]) a[n]=y;

else if(y>a[0]) {

for(i=n;i>=0;i--) a[i]=a[i-1]; a[0]=y; } else {

for(i=0;i

if(y<=a[i]&&y>a[i+1]) {

for(j=n;j>=i+2;j--) { a[j]=a[j-1];} a[i+1]=y; break; } } } }

void main() {int

i,a[11]={20,18,16,14,12,10,8,6,4,2},x; void fun(int *,int n,int y); scanf(\ fun(a,10,x);

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

printf(\ }

15. 编写函数int fun(char *s1,char *s2),在字符串s1中统计字符串s2出现的次数并返回。若s2在s1中未出现,则返回0。例如:

若输入的字符串s1为:abaaAabcaabbabca,字符串s2为:ab ,则程序输出:n=4

若输入的字符串s1为:abaaAabcaabbabca,字符串s2为:abd,则程序输出:No find #include

5

#include

int fun(char *s1,char *s2)

{

int i,j,p,n,num=0;

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

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

if(s1[i]==s2[0]) {

p=1;

for(j=i+1;s2[p]!='\\0';j++,p++) {if(s1[j]!=s2[p]) break;} if(p==n) num++; } }

return num;

}

void main()

{ char a[80],b[80]; int n;

printf(\input the first string:\ gets(a);

printf(\input the second string:\ gets(b); n=fun(a,b); if(n==0)

printf(\ else printf(\}

16. 编写函数int fun(char *str),功能是:统计字符串str中不同字符的个数并做为函数值返回。例如,下面程序运行时若输入:One world,One dream! 输出:n=13

#include int fun(char *str)

{

int i,j,num=1;

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

for(j=0;j

{if(str[i]==str[j]) break;} if(j==i) num++; }

return num;

}

void main() {char s[80]; int n; gets(s); n=fun(s);

printf(\}

17. 编写函数int fun(int m,int n,int *p),要求将范围[m,n]之间所有的fibonacci数写入p所指的一维数组中,fibonacci数的个数通过函数返回值带回。例如,[0,30]之间的fibonacci数有7个,它们是:1 2 3 5 8 13 21 ;[1000,32767]之间有7个,它们是:1597 2584 6765 10946 17711 28657 。

#include

int fun(int m,int n,int *p)

{

int i,j=0,num=0; int a[1000]={1,2}; for(i=2;i<1000;i++) { a[i]=a[i-1]+a[i-2];} for(i=0;i<1000;i++) {

if(a[i]>=m&&a[i]<=n) { num++;

p[j]=a[i]; j++; } }

return num; }

void main()

{int a,b,n,c[22],i; scanf(\ n=fun(a,b,c); for(i=0;i

printf(\ printf(\ }

18. 编写函数char *fun(char *s1,char *s2,int n),将字符串s1中后面的n个字符复制到s2所指数组中,若s1不足n个字符,则用*在前端补齐至n个字符,写入s2中。函数返回字符串s2的指针。例如,下面程序运行时,

若输入:“abcd1234”和6,则输出“cd1234” 若输入:“abcd1234”和10,则输出

6

“**abcd1234” #include

char *fun(char *s1,char *s2,int n)

{

int i,j,m;

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

if(m>=n)

{ for(j=0,i=m-n;j<=n-1;i++,j++) s2[j]=s1[i]; s2[n]='\\0'; } else {

for(j=0;j

for(i=0,j=n-m;i<=m-1;i++,j++) s2[j]=s1[i]; s2[n]='\\0'; }

return s2; }

void main()

{char c1[80],c2[80]; gets(c1); fun(c1,c2,6); puts(c2);

puts(fun(c1,c2,30)); }

19. 编写函数void fun(char *a,char *b,char *c),逐个比较a、b两个字符串对应位置中的字符,把ASCII值大或相等的字符依次存放到c数组中,形成一个新的字符串。例如,若a中的字符串为aBCDeFgH,b中的字符串为:ABcd,则c中的字符串应为:aBcdeFgH。 #include

char *fun(char *s,char *b,char *c) {

int i,j;

for(i=0,j=0;i

if(a[i]>b[i]) c[i]=a[i]; else

c[i]=b[i]; }

if(i==strlen(a)) {

for(;j

for(;i

}

void main() {char s[80]; gets(s);

puts(fun(s)); }

20. 编写函数void fun(char *s),将s所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符和非数字字符原有的前后次序。

例如,若输入:num is 0532-66ouc78,OK. 执行结果为:num is -ouc,OK.05326678 #include void fun(char *s) {

int i,j=0,n,n1=0; int a[80];

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

for(i=0;i

if(s[i]>='0'&&s[i]<='9') { n1++; a[j]=s[i]; j++; } }

for(i=0;i

if(s[i]>='0'&&s[i]<='9') {

for(j=i;j

7

}

for(i=n-n1,j=0;i

void main() {char a[80]; gets(a); fun(a); puts(a); }

8

联系合同范文客服:xxxxx#qq.com(#替换为@)