C语言上机考试复习题keyWord格式.docx

上传人:b****1 文档编号:5054909 上传时间:2023-05-04 格式:DOCX 页数:28 大小:234.50KB
下载 相关 举报
C语言上机考试复习题keyWord格式.docx_第1页
第1页 / 共28页
C语言上机考试复习题keyWord格式.docx_第2页
第2页 / 共28页
C语言上机考试复习题keyWord格式.docx_第3页
第3页 / 共28页
C语言上机考试复习题keyWord格式.docx_第4页
第4页 / 共28页
C语言上机考试复习题keyWord格式.docx_第5页
第5页 / 共28页
C语言上机考试复习题keyWord格式.docx_第6页
第6页 / 共28页
C语言上机考试复习题keyWord格式.docx_第7页
第7页 / 共28页
C语言上机考试复习题keyWord格式.docx_第8页
第8页 / 共28页
C语言上机考试复习题keyWord格式.docx_第9页
第9页 / 共28页
C语言上机考试复习题keyWord格式.docx_第10页
第10页 / 共28页
C语言上机考试复习题keyWord格式.docx_第11页
第11页 / 共28页
C语言上机考试复习题keyWord格式.docx_第12页
第12页 / 共28页
C语言上机考试复习题keyWord格式.docx_第13页
第13页 / 共28页
C语言上机考试复习题keyWord格式.docx_第14页
第14页 / 共28页
C语言上机考试复习题keyWord格式.docx_第15页
第15页 / 共28页
C语言上机考试复习题keyWord格式.docx_第16页
第16页 / 共28页
C语言上机考试复习题keyWord格式.docx_第17页
第17页 / 共28页
C语言上机考试复习题keyWord格式.docx_第18页
第18页 / 共28页
C语言上机考试复习题keyWord格式.docx_第19页
第19页 / 共28页
C语言上机考试复习题keyWord格式.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言上机考试复习题keyWord格式.docx

《C语言上机考试复习题keyWord格式.docx》由会员分享,可在线阅读,更多相关《C语言上机考试复习题keyWord格式.docx(28页珍藏版)》请在冰点文库上搜索。

C语言上机考试复习题keyWord格式.docx

原数组为{2,3,5,7,9},输入4,则新数组为{2,3,4,5,7,9}

13、定义函数,判断某数是否是水仙花数,调用该函数找出100-999之间的水仙花数

14、用行指针法寻找3*4矩阵中的最大值

15、任意输入10个数,定义函数,找出其中的最大值和最小值,并在主调函数中输出这两个值(利用指针实现)

16、输入两个整数,将他们互换,用带参数的宏来实现。

17、输入两个整数,求他们的最大值,定义外部函数来实现。

(类比15题)

18、通过指针变量来输出九九乘法表。

19、通过指针变量实现1+2+3+……+n,在程序中输出改结果。

20、将n个数按输入时顺序的逆序排列,用函数实现。

21、输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。

写3个函数:

(1)输入10个数;

(2)进行处理;

(3)输出10个数。

22、编程实现输入n(n<

1000)个整数到指定数组,求该数组中最大元素的值和此元素的下标,最大元素值以函数值返回,此元素的下标通过指针形参返回调用处。

23、已知节点结构如下:

structstudent

{

Charno[7];

Charname[9];

Structstudent*next;

}

(1)定义函数creat,从无到有地创建一个新链表,保存若干节点信息,节点个数不限

(2)定义函数show,,输出链表中所有节点信息

24、用字符数组存储任意输入的10个字符,在子函数中把该字符数组的小写字母转换成大写字母。

(类比6)

25、输入一串字符,以‘?

’结束,统计各字母出现的次数,并按字母出现的多少输出(先输出字母出现多的,次数相同的按字母表顺序输出,不出现的字母不输出)。

例:

输入:

5b3a+4-hdeh5dh?

输出:

h3

d2

a1

b1

e1

26、编写函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他字符的个数,在主函数中输入字符串以及输出上述的结果。

(要求利用指针完成,不使用全局变量)

27、写一函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。

(要求利用指针完成,不使用strlen函数)

28、编写一个程序,将字符数组s2中的全部字符复制到字符数组s1中,不用strcpy函数。

注意,复制时,’\0’也要复制过去。

‘\0’后面的字符不复制。

(要求用指针实现)

29、输入三个数,用指针变量的方式按由小到大的顺序输

30、链表头插,尾插,反序,插入,删除,浏览,存盘,读取。

#include<

stdlib.h>

typedefintelemtype;

typedefstructnode

{elemtypedata;

structnode*next;

}NODE;

NODE*h_creat()

{NODE*p,*head;

intlen;

printf("

请问要创建几个节点?

"

);

scanf("

%d"

&

len);

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

head->

next=NULL;

while(len)

{

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

printf("

请输入该节点数据:

scanf("

p->

data);

p->

next=head->

next;

head->

next=p;

len--;

}

returnhead;

voidreverse(NODE*head)

NODEstack[1024],*p=head->

inti=0;

while(p)

stack[i].data=p->

data;

i++;

p=p->

p=head->

while(i>

0)

data=stack[--i].data;

NODE*t_creat()

{NODE*head,*tail,*p;

:

tail=head=(NODE*)malloc(sizeof(NODE));

{p=(NODE*)malloc(sizeof(NODE));

tail->

tail=p;

voidview(NODE*head)

{NODE*p=head->

链表数据如下:

\n"

{printf("

%d"

p->

NODE*search(NODE*head,intkey)

{NODE*p;

{if(p->

data==key)

{returnp;

returnNULL;

voiddestroylist(NODE*head)

next,*q;

{q=p->

free(p);

p=q;

free(head);

intinsert(NODE*head,NODE*p,intpos)

{NODE*q=head->

if(pos==0)

插入位置不合理!

return0;

pos--;

while(pos)

{pos--;

q=q->

p->

next=q->

q->

return1;

voiddele(NODE*head,NODE*p)

next,*r=head;

while(q!

=p)

{q=q->

r=r->

//r晚走一步,循环结束,获得的是待删除节点的首地址

r->

next=p->

voidmain()

{NODE*head1,*head2;

NODE*p;

intdata,pos;

开始创建第一条链表:

head1=h_creat();

view(head1);

destroylist(head1);

\n开始创建第二条链表:

head2=t_creat();

view(head2);

\n请输入待查找的键值,查找将在第2条链上进行:

if(search(head2,data)==NULL)

没有找到该结点!

else

找到该结点!

reverse(head2);

//反序

\n准备插入新结点:

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

请输入待插入结点的键值:

请输入待插入的位置:

pos);

if(insert(head2,p,pos))

view(head2);

\n准备删除结点:

请输入待删除结点的键值:

if((p=search(head2,data))==NULL)

没有找到该结点,不能删除!

else

{dele(head2,p);

删除后"

destroylist(head2);

voidsave(NODE*head)

{FILE*fp;

NODE*p=head->

fp=fopen("

line.dat"

"

w"

if(fp==NULL)

{…}

{fwrite(p,sizeof(NODE),1,fp);

fclose(fp);

NODE*load()

FILE*fp;

r"

while(!

feof(fp))

fread(p,sizeof(NODE),1,fp);

if(feof(fp))

{free(p);

break;

31、堆栈的思想解决计算某数的二进制问题

#defineN1024

typedefstructstack

{intdata[N];

inttop;

}STACK;

STACKs;

voidinit_stack()

{s.top=0;

voidpush(intn)

{s.data[s.top]=n;

s.top++;

voidconvert(intn)

{while(n)

{push(n%2);

n/=2;

n);

intpop()

{intk;

k=s.data[--s.top];

returnk;

voidprn()

{while(s.top)

pop());

{intn;

请输入待转换的整数:

n);

init_stack();

convert(n);

转换后的数为:

prn();

综合应用三题

//门诊

string.h>

{intno;

structnode*link;

NODE*front;

NODE*rear;

voidinitqueue()

front=rear=p;

intemptyqueue()

{if(front==rear)

return1;

return0;

voidenqueue(intno)

no=no;

link=NULL;

front->

link=p;

rear=p;

intdelqueue()

NODE*p=front->

link;

if(!

emptyqueue())

{no=p->

no;

front->

link=p->

if(p->

link==NULL)

front=rear;

returnno;

return-1;

{intno=1;

intdno;

initqueue();

intsel;

while

(1)

--------------------\n"

1新病人排队\n"

2报号\n"

3退出\n"

请选择:

sel);

switch(sel)

{

case1:

enqueue(no);

no++;

break;

case2:

dno=delqueue();

if(dno==-1)

printf("

无排队病人!

else

{

printf("

请第%d号病人速到诊室......\n"

dno);

}

break;

}

if(sel==3)break;

//一元多项式求和

{floatcoef;

//系数

intexp;

//次数

多项式如下(系数为0时不输出):

coef==0)//系数为0不输出

p=p->

(%.2f)x^%d"

coef,p->

exp);

if(p)printf("

+"

NODE*creat()

请问要创建几项?

请输入该项的系数和次数,以空格隔开:

%f%d"

coef,&

{q=p->

free(p);

p=q;

NODE*add(NODE*h1,NODE*h2)

{NODE*h,*r,*p,*q,*k;

h=r=h1;

p=h1->

q=h2->

while(p&

&

q)

exp>

exp)

{r->

next=q;

r=q;

q=q->

else

if(p->

exp<

exp)

{r->

r=p;

p=p->

else

{p->

coef+=q->

coef;

r->

r=p;

k=q;

p=p->

q=q->

free(k);

}

if(p==NULL)

r->

returnh;

{NODE*a,*b,*c;

请输入第一个多项式:

a=creat();

view(a);

\n请输入第二个多项式:

b=creat();

view(b);

c=add(a,b);

view(c);

destroylist(c);

//约瑟夫问题:

30人留15,逢9倍跳

stdio.h>

intn=30;

next=head;

while(n>

=1)

data=n;

n--;

while(p!

=head)

NODE*q;

voidjosphy(NODE*head)

NODE*q=head;

intpeople=0;

intpos=1;

while(people!

=15)

{q=p;

pos++;

if(p==head)pos--;

if(pos%9==0&

p!

{people++;

q->

一人跳入海中,他是%d号.\n"

free(p);

p=q->

pos++;

view(head);

{NODE*head;

开始创建链表:

head=h_creat();

view(head);

josphy(head);

destroylist(head);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2