欢迎光临散文网 会员登陆 & 注册

全国计算机等级考试二级C语言练习题(二)

2021-02-12 09:01 作者:朝颜晚扶桑  | 我要投稿

1.程序填空题

给定程序中,函数fun的功能是用函数指针指向要调用的函数,并进行调用。规定在第2处使f指向函数f1,在第3处使f指向函数f 2。当调用正确时,程序输出:x1=5.000000,x2=3.000000,x1*x1+x1*x2= 40.000000

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序已给出。不得增行或删行,也不得更改程序的结构!

#include <stdio.h>

double f1(double x)

{return x*x;}

double f2(double x,double y)

{return x*y;}

double fun(double a,double b)

{

/**********found**********/

___1___(*f)();

double r1,r2;

/**********found**********/

f=___2___; /* point fountion f1 */

r1=f(a);

/**********found**********/

f=___3___; /* point fountion f2 */

r2=(*f)(a,b);

return r1+r2;

}

main()

{

double x1=5, x2=3, r;

r=fun(x1,x2);

printf("x1=%f,x2=%f,x1*x1+x1*x2=%f\n",x1,x2,r);

}

【答案】

(1)double (2)f1 (3)f2

2.程序修改题

给定程序中,函数fun的功能是:先将字符串s中的字符按正序存放到t串中,然后把s中的字符按逆序连接到t串的后面。

例如:当s中的字符串为“ABCDE”时,则t中的字符串应为“ABCDEEDCBA”。

请改正程序中的错误,使其能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

#include <stdio.h>

#include <string.h>

void fun(char *s,char *t)

{

int I,sl;

sl=strlen(s);

/**********found**********/

for(i=0;i<=s1;i++)

t[i]=s[i];

for(i=0;i<sl;i++)

t[sl+i]=s[sl-i-1];

/**********found**********/

t[sl]='\0';

}

main()

{

char s[100],t[100];

printf("\nPlease enter string s: ");

scanf("%s",s);

fun(s,t);

printf("The result is: %s\n",t);

}

【答案】

(1)将for( i=0; i<sl; i ++) 改为:

for( i=0; i<=sl; i ++)或for(i=0;i<sl+1;i++)

(2)将t[sl]= '\0'; 改为: t[sl*2]='\0';或t[i*2]='\0';

3.程序设计题

请编写函数fun,它的功能是:求出1到m之间(含m)能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。

例如,若传送给m的值为50,则程序输出:7 11 14 21 22 28 33 35 42 44 49

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

#include <stdio.h>

#define M 100

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

{

 

}

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");

}

【答案】

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

{

int k;

*n=0;

for(k=0; k<=m; k++)

if(k%7==0||k%11==0)

a[(*n)++]=k;

}

1.程序填空题

给定程序中,函数fun的功能是:将形参n中,各位上为偶数的数取出,并按原来从高位到低位相反的顺序组成一个新的数,并作为函数值返回。

例如,输入一个整数:27638496,函数返回值为:64862。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:不得增行或删行,也不得更改程序的结构!

#include <stdio.h>

unsigned long fun(unsigned long n)

{

unsigned long x=0;

int t;

while(n)

{

t=n%10;

/**********found**********/

if(t%2==___1___)

/**********found**********/

x=___2___+t;

/**********found**********/

n=___3___;

}

return x;

}

main()

{

unsigned long n=-1;

while(n>99999999||n<0)

{

printf("input(0<n<100000000): ");

scanf("%ld",&n);

}

printf("The result is: %ld\n",fun(n));

}

【答案】

(1)0 (2)x*10 (3)n/10

2.程序修改题

下列给定程序中,函数fun的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ASCII码升序排序后输出。例如,若输入adf,则应输出adf。

请改正程序中的错误,使其能得到正确的结果。

注意:不要改动main函数,不能增行或删行,也不得更改程序的结构。

#include <string.h>

#include <stdio.h>

void fun(char s[])

{

char ch;

int I,j;

/*******found********/

for(i=strlen(s);I;i--)

for(j=0;j<I;j++)

/********found*******/

if(s[j]<s[j+1])

{

ch=s[j];

s[j]=s[j+1];

s[j+1]=ch;

}

}

main()

{

char str[81];

printf("\nPlease enter a character string: ");

gets(str);

printf("\n\nBefore sorting:\n %s ",str);

fun(str);

printf("\nAfter sorting decendingly:\n%s",str);

}

【答案】

(1)将for(i=strlen(s);i;i--)改为:

for(i=strlen(s)-1;i;i--)

或:for(i=strlen(s)-1;i>0;i--)

(2)将if(s[j]<s[j+1])改为:if(s[j]>s[j+1])

3.程序设计题

N名学生的成绩已在主函数中放入一个带头节点的链表结构中,a指向链表的头节点。请编写函数fun,它的功能是:找出学生的最高分,由函数返回。

注意:部分源程序已给出。请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的花括号中填入所编写的若干语句。

#include <stdio.h>

#include <stdlib.h>

#define N 5

struct list

{

double s;

struct list *next;

};

typedef struct list STR;

double fun(STR *a)

{

 

}

STR *creat(double *s)

{

STR *a,*p,*q;

int i=0;

a=p=(STR*)malloc(sizeof(STR));

p->s=0;

while(i<N)

{

q=(STR*)malloc(sizeof(STR));

q->s=s[i];

i++;

p->next=q;

p=q;

}

p->next=0;

return a;

}

printlist(STR *a)

{

STR *p;

p=a->next;

printf("head");

do

{

printf("->%2.0f",p->s);

p=p->next;

}

while(p!=0);

printf("\n\n");

}

main()

{

double s[N]={69,72,85,80,68},max;

STR *a;

FILE *out;

a=creat(s);

printlist(a);

max=fun(a);

printf("max=%6.1f\n",max);

out=fopen("outfile.dat","w");

fprintf(out,"max=%6.1f",max);

fclose(out);

}

【答案】

double max;

STR *q=a;

max=a->s;

do

{

if(q->s>max)

max=q->s;

q=q->next;

}

while(q!=0);

return max;

1.程序填空题

程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指的文件中,覆盖原来的文件内容。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:不得增行或删行,也不得更改程序的结构!

#include <stdio.h>

#define N 5

typedef struct student

{long sno;

char name[10];

float score[3];

}STU;

void fun(char *filename)

{

FILE *fp; int I,j;

STU s[N],t;

/**********found**********/

fp=fopen(filename,___1___);

fread(s,sizeof(STU),N,fp);

fclose(fp);

for(i=0;i<N-1;i++)

for(j=i+1;j<N;j++)

/**********found**********/

if(s[i].sno___2___)

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

fp=fopen(filename,"wb");

/**********found**********/

___3___(s,sizeof(STU),N,fp);

fclose(fp);

}

main()

{

STU t[N]={{10005,"ZhangSan",95,80,88},{10003,"LiSi",85,70,78},{10002,"CaoKai",75,60,88},{10004,"FangFang",90,82,87},{10001,"MaChao",91,92,77}},ss[N];

int I,j;

FILE*fp;

fp=fopen("student.dat","wb");

fwrite(t,sizeof(STU),5,fp);

fclose(fp);

printf("The original data :\n\n");

for(j=0;j<N;j++)

{

printf("No:%ld Name:%-8sscores: ",

t[j].sno, t[j].name);

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

printf("%6.2f ",t[j].score[i]);

printf("\n");

}

fun("student.dat");

printf("The data after sorting:\n");

fp=fopen("student.dat","rb");

fread(ss,sizeof(STU),5,fp);

fclose(fp);

for(j=0;j<N;j++)

{

printf("No:%ld Name:%-8sscores: ",

ss[j].sno, ss[j].name);

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

printf("%6.2f ",ss[j].score[i]);

printf("\n");

}

}

【答案】

(1)“rb”或“rb+”

(2)>=s[j].sno或>s[j].sno

(3)fwrite

2.程序修改题

给定程序中,函数fun的功能是:将一个由八进制数字字符组成的字符串转换为与其值相等的十进制整数。规定输入的字符串最多只能包含5位八进制数字字符。

例如,若输入:77777,则输出将是:19607。

请改正程序中的错误,使其能得出正确结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

#include <stdio.h>

int fun(char *p)

{

int n;

/**********found**********/

n=*P-'o';

p++;

while( *p!=0 )

{

/**********found**********/

n=n*7+*P-'o';

p++;

}

return n;

}

main()

{

char s[6];

int I; intn;

printf("Enter a string(Ocatal

digits):");

gets(s);

if(strlen(s)>5)

{

printf("Error: String too longer!\n");

exit(0);

}

for(i=0; s[i]; i++)

if(s[i]<'0'||s[i]>'7')

{ printf("Error:%c not is ocatal

digits!\n",s[i]);

exit(0); }

printf("The original string: ");

puts(s);

n=fun(s);

printf("\n%s is convered to integer

number: %d\n",s,n);

}

【答案】

(1)将n=*P-'o'改为:n=*p-'0'

(2)将n=n*7+*P-'o'改为:n=n*7+*p-'0';

3.程序设计题

学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:函数返回指定学号的学生数据,指定的学号在主函数中输入。若没找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回(用于字符串比较的函数是strcmp)。

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

#include <stdio.h>

#include <string.h>

#define N 16

typedef struct

{char num[10];

int s;

}STREC;

STREC fun(STREC *a, char *b)

{

 

}

main()

{

STREC s[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}};

STREC h;

char m[10];

int I;

FILE *out;

printf("The original data:\n");

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

{

if(i%4==0) printf("\n");

printf("%s %3d ",s[i].num,s[i].s);

}

printf("\n\nEnter the number: ");

gets(m);

h=fun(s,m);

printf("The data : ");

printf("\n%s %4d\n",h.num,h.s);

printf("\n");

out=fopen("out10.dat","w") ;

h=fun(s,"GA013");

fprintf(out,"%s %4d\n",h.num,h.s);

fclose(out);

}

【答案】

STREC fun(STREC*a,char*b)

{

STREC t={NULL,-1};

int k;

for(k=0; k<N; k++)

if(!strcmp(a[k].num,b))

return a[k];

return t;

}

1.程序填空题

给定程序中,函数fun的功能是:利用指针数组对形参ss所指字符串数组中的字符串按由长到短的顺序排序,并输出排序结果。Ss所指字符串数组中共有N个字符串,且串长小于M。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:不得增行或删行,也不得更改程序的结构!

#include <stdio.h>

#include <string.h>

#define N 5

#define M 8

void fun(char (*ss)[M])

{

char *ps[N],*tp;

int I,j,k;

for(i=0;i<N;i++) ps[i]=ss[i];

for(i=0;i<N-1;i++)

{

/**********found**********/

k=___1___;

for(j=i+1;j<N;j++)

/**********found**********/

if(strlen(ps[k])<strlen(___2___))

k=j;

/**********found**********/

tp=ps[i];ps[i]=ps[k];ps[k]=___3___;

}

printf("The string after sorting by length:\n");

for(i=0;i<N;i++) puts(ps[i]);

}

main()

{

char ch[N][M]={"red","green","blue","yellow","black"};

int I;

printf("The original string\n");

for(i=0;i<N;i++) puts(ch[i]);

printf("\n");

fun(ch);

}

【答案】

(1)i (2)ps[j] (3)tp

2.程序修改题

下列给定程序中,函数fun的功能是:计算并输出以下数列的前m项之和SN,直到SN+1大于p为止,p的值通过形参传入。

例如,若p的值为10.0,则函数值为9.592857。

请改正程序中的错误,使其能得到正确的结果。

注意:不要改动main函数,不能增行或删行,也不得更改程序的结构。

#include <conio.h>

#include <stdio.h>

double fun(double p)

{

int m;

double s,t;

m=2;

s=2.0;

while(s<=p)

{

t=s;

/*******found********/

s=s+(m+1)/m;

m++;

}

printf("n=%d\n",m);

/*******found********/

return s;

}

main()

{

printf("%f\n",fun(10));

}

【答案】

(1)将s=s+(m+1)/m;改为:

s=s+(double)(m+1)/m;

(2)将return s;改为:return t;

3.程序设计题

函数fun的功能是:将s所指字符串中除了下标为奇数、同时ASCII值也为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在t所指的数组中。

例如,若s所指字符串中的内容为:“ABCDEFG 12345”,其中字符A的ASCII码值虽为奇数,但所在元素的下标为偶数,因此必需删除;而字符1的ASCII码值为奇数,所在数组中的下标也为奇数,因此不应当删除,其他依此类推。最后t所指的数组中的内容应是:“135”。

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

#include <stdio.h>

#include <string.h>

void fun(char *s,char t[])

{

 

}

main()

{

char s[100],t[100];

printf("Please enter string S:");

scanf("%s",s);

fun(s,t);

printf(" The result is: %s\n",t);

}

【答案】

void fun(char *s,char t[])

{

int k,n=0;

for(k=0; k<strlen(s); k++)

if(k%2==1 && s[k]%2==1)

t[n++]=s[k];

t[n]='\0';

}

1.程序填空题

给定程序中,函数fun的功能是将不带头结点的单向链表逆置。即若原链表中从头至尾结点数据域依次为:2、4、6、8、10,逆置后,从头至尾结点数据域依次为:10、8、6、4、2。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:不得增行或删行,也不得更改程序的结构!

#include <stdio.h>

#include <stdlib.h>

#define N 5

typedef struct node

{int data;

struct node*next;

}NODE;

/**********found**********/

___1___fun(NODE *h)

{

NODE *p,*q,*r;

p=h;

if(p==NULL) return NULL;

q=p->next;

p->next=NULL;

/**********found**********/

while(___2___)

{

r=q->next;

q->next=p;

p=q;

/**********found**********/

q=___3___;

}

return p;

}

NODE *creatlist(int a[])

{

NODE *h,*p,*q; int I;

h=NULL;

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

{

q=(NODE *)malloc(sizeof(NODE));

q->data=a[i];

q->next=NULL;

if(h==NULL) h=p=q;

else {p->next=q; p=q;}

}

return h;

}

void outlist(NODE *h)

{

NODE *p;

p=h;

if(p==NULL)

printf("The list is NULL!\n");

else

{

printf("\n Head ");

do

{

printf("->%d", p->data);

p=p->next;

}while(p!=NULL);

printf("->End\n");

}

}

main()

{

NODE *head;

int a[N]={2,4,6,8,10};

head=creatlist(a);

printf("\n The original list:\n");

outlist(head);

head=fun(head);

printf("The list after inverting :\n");

outlist(head);

}

【答案】

(1)NODE * 或 struct node *

(2)q!=NULL 或q != 0或q

(3)r

2.程序修改题

给定程序中,函数fun的功能是:从s所指字符串中删除所有小写字母c。

请改正程序中的错误,使其能计算出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

#include <stdio.h>

void fun(char *s )

{

int I,j;

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

if(s[i]!='c')

/**********found**********/

s[j]=s[i];

/**********found**********/

s[i]='\0';

}

main()

{

chars[80];

printf("Enter a string: ");

gets(s);

printf("The original string: ");

puts(s);

fun(s);

printf("The string after deleted : ");

puts(s);

printf("\n");

}

【答案】

(1)将s[j]=s[i]; 改为:s[j++]=s[i];

(2)将s[i]='\0'; 改为:s[j]='\0';

3.程序设计题

假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串中的前导*号全部移到字符串的尾部。

例如,字符串中的内容为:***A*BC*DEF*G***,移动后字符串中的内容应当是:A*BC*DEF*G******。在编写函数时,不得使用C语言提供的字符串函数。

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

#include <stdio.h>

void fun(char *a)

{

 

}

main()

{

char s[81],*p; int n=0;

printf("Enter a string:\n");

gets(s);

fun(s);

printf("The string after moveing:

Chapter_2

\n");

puts(s);

}

【答案】

void fun(char *a)

{

int n=0,m=strlen(a),j=0,k=0;

while(a[j]=='*')

/*统计有多少个前导'*'存入计数器n中*/

{ n++;j++; }

for(; j<m; j++)

a[k++]=a[j];

for(j=0; j<n; j++) /*串尾补n个'*'*/

a[k++]=*';

a[k]='\0'; /*添加字符串结束符*/

}

1.程序填空题

给定程序中,函数fun的功能是:将形参s所指字符串中的所有数字字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。

例如,s所指字符串为:asd123fgh5##43df,处理后新字符串为:12543asdfgh##df。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:不得增行或删行,也不得更改程序的结构!

#include <stdio.h>

#include <string.h>

#include <stdlib.h>

#include <ctype.h>

char *fun(char *s)

{

int I,j,k,n; char *p,*t;

n=strlen(s)+1;

t=(char*)malloc(n*sizeof(char));

p=(char*)malloc(n*sizeof(char));

j=0; k=0;

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

{

if(isdigit(s[i])) {

/**********found**********/

p[___1___]=s[i];j++;}

else

{t[k]=s[i]; k++;}

}

/**********found**********/

for(i=0;i<___2___;i++) p[j+i]=t[i];

p[j+k]=0;

/**********found**********/

return___3___;

}

main()

{

char s[80];

printf("Please input: ");

scanf("%s",s);

printf("The result is: %s\n",fun(s));

}

【答案】

(1)j (2)k 或 =k-1 (3)p或(p) 

2.程序修改题

给定程序中,函数fun()的功能是:求出数组中最小数和次最小数,并把最小数和a[0]中的数对调,次最小数和a[1]中的数对调。

请改正程序中的错误,使其能得到正确结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

#include <conio.h>

#include <stdio.h>

#include <windows.h>

#define N 20

void fun(int *a,int n)

{

int I,m,t,k;

/**********found**********/

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

{

m=I;

for(k=I;k<n;k++)

if(a[k]<a[m])

/**********found**********/

k=m;

t=a[i];a[i]=a[m];a[m]=t;

}

}

main()

{

int x,b[N]={11,5,12,0,3,6,9,7,10,8},

n=10,I;

system("cls");

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

printf("%d ",b[i]);

printf("\n");

fun(b,n);

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

printf("%d ",b[i]);

printf("\n");

}

【答案】

(1)将for(i=0;i<n;i++) 改为:

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

(2)将k=m; 改为:m=k;

3.程序设计题

给定程序中,函数fun的功能是:把形参str所指字符串中下标为奇数的字符右移到下一个奇数位置,最右边被移出字符串的字符绕回放到第一个奇数位置,下标为偶数的字符不动(注意:字符串的长度大于等于2)。

注意:部分源程序已给出。请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的花括号中填入所编写的若干语句。

#include <stdio.h>

void fun(char *str)

{

 

}

main()

{

char str[100]="564321";

printf("\nThe original string is: %s\n",str);

fun(str);

printf("\nThe result is : %s\n",str);

}

【答案】

int i,n,j;

char c;

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;

1.程序填空题

给定程序中通过定义学生结构体变量存储了学生的学号、姓名和3门课的成绩。函数fun的功能是将该学生的结构体变量整体赋值,修改新变量中的学号和姓名并打印出来。

例如:若 a={10001,"ZhangSan", 95, 80, 88},则结果为:b={10002,"LiSi", 95, 80, 88}。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:不得增行或删行,也不得更改程序的结构!

#include <stdio.h>

#include <string.h>

struct student

{long sno;

char name[10];

float score[3];

};

void fun(struct student a)

{

struct student b;

int I;

/**********found**********/

b=___1___;

b.sno=10002;

/**********found**********/

strcpy(___2___, "LiSi");

printf("学号:%d 姓名:%-8s 各科成绩:",b.sno, b.name);

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

/**********found**********/

printf("%6.2f",b.___3___);

printf("\n");

}

void main()

{

struct student s={10001,"ZhangSan",95,80, 88};

int I;

printf("学号:%d 姓名:%-8s 各科成绩:",s.sno, s.name);

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

printf("%6.2f ",s.score[i]);

printf("\n");

fun(s);

}

【答案】

(1)a (2)b.name (3)score[i]

2.程序修改题

下列给定程序中,函数fun的功能是:逐个比较x、y两个字符串对应位置中的字符,把ASCII相等或值小的字符依次存放到z数组中,形成一个新的字符串。例如,若x中的字符串为AbceDEfG,y中的字符串为ABdefgC,则z中的字符串应为ABceDEC。

请改正程序中的错误,使其能得到正确的结果。

注意:不要改动main函数,不能增行或删行,也不得更改程序的结构。

#include <stdio.h>

#include <string.h>

void fun(char *a,char *b,char *z)

{

/*******found*********/

int i=1;

/*******found*********/

while(*a!=*b)

{

if(*a>*b)

z[i]=*b;

else

z[i]=*a;

if(*a)

a++;

if(*b)

b++;

i++;

}

}

main()

{

char x[10]="AbceDEfG",y[10]="ABdefgC",z[80]={'\0'};

fun(x,y,z);

printf("The string x:");

puts(x);

printf("The string y:");

puts(y);

printf("The result:");

puts(z);

}

【答案】

(1)将int i=1;改为:int i=0;

(2)将while(*a!=*b)改为:while(*a || *b)

3.程序设计题

函数fun的功能是:将两个三位数的正整数a、b合并形成一个长整数在c中。合并的方式是:将a数的百位、十位和个位放在c数的十万位、千位和十位上,b数的百位、十位和个位放在c数的万位、百位和个位上。

例如:当a=456,b=123,调用该函数后c=415263。

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

#include <conio.h>

#include <stdio.h>

#include <windows.h>

void fun(int a,int b,long *c)

{

 

}

main() /* 主函数 */

{

int a,b; long c;

system("cls");

printf(“Input a,b:”);

scanf(“%d%d”,&a,&b);

fun(a,b,&c);

printf("the result is: %ld\n", c);

}

【答案】

void fun(int a,int b,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;

}


全国计算机等级考试二级C语言练习题(二)的评论 (共 条)

分享到微博请遵守国家法律