教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 高等教育 >

上海市计算机二级考试(C语言)复习资料题目(14)

来源:网络收集 时间:2026-08-26
导读: 19. 以下程序输入一个字符串,将输入字符串中的字符‘a’替换为‘SHU’,并输出替换的结果。 # include void replace(char *src, char *dest) { int i, j; for(i=j=0; ① ; i++) { if(*(src+I)!=’a’) *(dest+j++)=

19. 以下程序输入一个字符串,将输入字符串中的字符‘a’替换为‘SHU’,并输出替换的结果。

# include

void replace(char *src, char *dest) { int i, j;

for(i=j=0; ① ; i++)

{ if(*(src+I)!=’a’) *(dest+j++)= ② ; else { *(dest+j++)=’S’; *(dest+j++)=’H’; *(dest+j++)=’U’; } }

*(dest+j)= ③ ; } main()

{ char*strin[81], *strout[81]; gets(strin);

replace(strin, strout); puts(strout); }

20. 以下程序功能是在二维表中根据用户输入的学生姓名查找成绩。 #include #include main()

{ int i,j,score[3][4]={{65,57,70,60},{50,87,90,81},{90,99,100,98}}; char name[4],*all_name[]={\张三\李四\王五\ do

{ printf(\ gets(name);

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

if( ① )==0) break;

if(i<3)

{

printf(\的成绩为:\② ); for(j=0;j<4;j++)

printf(\ printf(\ } else

printf(\没有这个人\\n\ printf(\你还想查别的成绩吗?(y/n)\ } while( ③ ); }

21. 本程序用于按升序动态生成链表。每个结点内仅存放一个数据(相当于学号)和一个指针变量,数据是负数则丢弃,数据是0 则表示输入结束,数据输入时可随意,由程序自动调整成升序排列,请填空。 #include struct st { int num;

struct st *next; };

struct st *insert(struct st *head,struct st * new) { struct st *p,*pre; p= ① ;

while (p->numnum&&p->next!=NULL) /* scan search insert point */ { pre=p;

p= ② ; }

if (p->num>new->num) /* find insert point */ { if(p==head) /* new as first */ head=new; else

pre->next=new; /* new as general point insert */ new->next= ③ ; /* new_point < p_point */ } else

{ p->next=new; /* new as end_point */ new->next=NULL; }

return head; /* return head point */ }

struct st *create()

{ struct st *head,*p,*pre; head=NULL;

p=(struct st*)malloc( sizeof(struct st) ); do

{ scanf(\ if (p->num<0) printf(\ while (p->num<0);

while (p->num!=0) /* data=0, input finish */ { if (head==NULL) /* head is first_point */ { head=p;

head->next=NULL; }

else /* insert a point, return a head */ head=insert(head,p);

p=(struct st*)malloc(sizeof(struct st)); /* assign a block */ do

{ scanf(\ if (p->num<0) printf(\ while (p->num<0); }

return head; }

void printlink(struct st *head) { struct st *p; p=head;

while(p!=NULL)

{ printf(\ p=p->next;

} }

main()

{ struct st *head,*p;

head=create(); /* 创建链表,返回首结点 */ p=head;

printlink(p); /* 打印链表 */ }

22. 本程序主函数通过调用create()函数建立一个职工链表,每个结点的数据包括职工工号和工资(都使用整型);输入工资数0表示数据输入结束。链表建立后,主函数又调用list()函数打印输出链表的全部结点的职工工号和工资。

#include “stdio.h” struct worker { int num; float pay

struct worker *next;

};

int n; main()

{ struct worker *head, *create(); void list(struct worker *); head = create(); list(head); }

struct worker *create( )

{ struct worker *head, *p1, *p2;

printf(“Create a linked list:\\n”);

head = 0; n = 0;

p1 = p2 =( struct worker *)malloc(sizeof(struct worker)); scanf(“%d%d”, &p1->num, &p1->pay ); while( ① ) { n++;

if(n ==1 ) _____②________; else ______③__________; p2 = p1;

p1 = (struct worker *)________④____________; scanf(“%d%d”, &p1->num, &p1->pay );

}

p2->next = 0; return head; }

void list(struct worker *p)

{ printf(“The linked list:\\n”); while(_____⑤_____)

{ printf(“\\n%d\\t%d”, p->num, p->pay); ________⑥________;

} }

23. 下列程序中,函数fun的功能是:将s所指字符串的反序和正序进行连接,形成一个新

串放在t所指的数组中。例如,当s所指字符串的内容为“ABCD”时,t所指数组中的内容为“DCBAABCD”。 #include #include

void fun(char *s,char ① ) { int i,d;

d=strlen( ② ); for (i=0; i

t[d+i]= ④ ; t[2*d]= ⑤ ; }

main()

{ char s[100],t[100]; clrscr();

printf(\ fun(s,t);

printf(\}

24. 下列程序中,函数fun的功能是:利用插入排序法对字符串中的无序字符按从小到大的顺序进行排序。插入法的基本算法是:先对字符串中的头两个元素进行排序;然后把第三个字符插入到前两个字符中,插入后前三个字符依然有序;再把第四个字符插入到前三个字符中,?待排序的字符串已在主函数中赋予。 例如:对字符串 QWERTYUIOPASDFGHJKLMNBVCXZ 调用函数后成为 ABCDEFGHIJKLMNOPQRSTUVWXYZ #define N 80

#include #include

void insert(char ① ) { int i,j,n; char ch; n=strlen(aa);

for (i=1; ② ;i++) { ch=aa[i]; j=i-1;

while ((j>=0)&&( ③ )) { aa[j+1]=aa[j]; j--; }

aa[ ④ ]=ch; } }

main()

{ char a[N]=\ int i;

printf(\ insert( ⑤ );

printf(\}

25. 对不同的被积函数使用数值积分,这个数值积分的算法由被调用函数实现,其中函数指针所指的函数可以是诸多的被积函数。而调用函数就是对不同的被积函数实施数值积分,调用函数在事实上是嵌套调用了这类被积函数。见下例: #include

double integral(a,b,n,f) /* 这是被调用函数,完成数值积分 */

double a,b,(*f)(); int n; /* 使用了指针函数,可使被积函数作为实参 */ { double h,y; int i; y=0.0; h=(b-a)/n;

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

y=y+ ① …… 此处隐藏:2172字,全部文档内容请下载后查看。喜欢就下载吧 ……

上海市计算机二级考试(C语言)复习资料题目(14).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/614451.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)