中南林C语言强化训练1Word文档格式.docx

上传人:b****6 文档编号:17207852 上传时间:2022-11-28 格式:DOCX 页数:24 大小:26.88KB
下载 相关 举报
中南林C语言强化训练1Word文档格式.docx_第1页
第1页 / 共24页
中南林C语言强化训练1Word文档格式.docx_第2页
第2页 / 共24页
中南林C语言强化训练1Word文档格式.docx_第3页
第3页 / 共24页
中南林C语言强化训练1Word文档格式.docx_第4页
第4页 / 共24页
中南林C语言强化训练1Word文档格式.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

中南林C语言强化训练1Word文档格式.docx

《中南林C语言强化训练1Word文档格式.docx》由会员分享,可在线阅读,更多相关《中南林C语言强化训练1Word文档格式.docx(24页珍藏版)》请在冰豆网上搜索。

中南林C语言强化训练1Word文档格式.docx

}DATE;

structdata{intcat;

DATEcow;

doubledog;

}too;

DATEmax;

则语句printf("

%d"

sizeof(structdate)+sizeof(max));

的执行结果是:

_______

22、队列和栈有什么区别?

23、写出下列代码的输出内容

intinc(inta)

return(++a);

}

intmulti(int*a,int*b,int*c)

return(*c=*a**b);

typedefint(FUNC1)(intin);

typedefint(FUNC2)(int*,int*,int*);

voidshow(FUNC2fun,intarg1,int*arg2)

INCp=&

inc;

inttemp=p(arg1);

fun(&

temp,&

arg1,arg2);

%d\n"

*arg2);

inta;

show(multi,10,&

a);

return0;

24、请找出下面代码中的所以错误

说明:

以下代码是把一个字符串倒序,如“abcd”倒序后变为“dcba”

1、#include"

string.h"

2、main()

3、{

4、char*src="

hello,world"

;

5、char*dest=NULL;

6、intlen=strlen(src);

7、dest=(char*)malloc(len);

8、char*d=dest;

9、char*s=src[len];

10、while(len--!

=0)

11、d++=s--;

12、printf("

%s"

dest);

13、return0;

14、}

25.-1,2,7,28,,126请问28和126中间那个数是什么?

26.用两个栈实现一个队列的功能?

要求给出算法和思路!

27.在c语言库函数中将一个字符转换成整型的函数是atol()吗,这个函数的原型是什么?

28.对于一个频繁使用的短小函数,在C语言中应用什么实现,在C++中应用什么实现?

29.软件测试都有那些种类?

30.确定模块的功能和模块的接口是在软件设计的那个队段完成的?

31.enumstring

x1,

x2,

x3=10,

x4,

x5,

}x;

问x=;

9.unsignedchar*p1;

unsignedlong*p2;

p1=(unsignedchar*)0x801000;

p2=(unsignedlong*)0x810000;

请问p1+5=;

p2+5=;

二.找错题:

1.请问下面程序有什么错误?

inta[60][250][1000],i,j,k;

for(k=0;

k<

=1000;

k++)

for(j=0;

j<

250;

j++)

for(i=0;

i<

60;

i++)

a[i][j][k]=0;

2.#defineMax_CB500

voidLmiQueryCSmd(StructMSgCB*pmsg)

unsignedcharucCmdNum;

......

for(ucCmdNum=0;

ucCmdNum<

Max_CB;

ucCmdNum++)

{

......;

3.以下是求一个数的平方的程序,请找出错误:

#defineSQUARE(a)((a)*(a))

inta=5;

intb;

b=SQUARE(a++);

4.typedefunsignedcharBYTE

intexamply_fun(BYTEgt_len;

BYTE*gt_code)

BYTE*gt_buf;

gt_buf=(BYTE*)MALLOC(Max_GT_Length);

......

if(gt_len>

Max_GT_Length)

{

returnGT_Length_ERROR;

}

.......

三.问答题:

1.IPPhone的原理是什么?

2.TCP/IP通信建立的过程怎样,端口有什么作用?

3.进程和线程的差别。

2.Heap与stack的差别。

3.给两个变量,如何找出一个带环单链表中是什么地方出现环的?

一个递增一,一个递增二,他们指向同一个接点时就是环出现的地方

4.网络编程中设计并发服务器,使用多进程与多线程,请问有什么区别?

练习二:

1.用宏定义写出swap(x,y)

2.数组a[N],存放了1至N-1个数,其中某个数重复一次。

写一个函数,找出被重复的数字.时间复杂度必须为o(N)函数原型:

intdo_dup(inta[],intN)

3一语句实现x是否为2的若干次幂的判断

4.unsignedintintvert(unsignedintx,intp,intn)实现对x的进行转换,p为起始转化位,n为需要转换的长度,假设起始点在右边.如x=0b00010001,p=4,n=3转换后x=0b01100001

5.什么是预编译,何时需要预编译:

6.

char*constp;

charconst*p

constchar*p

上述三个有什么区别?

7.

charstr1[]="

abc"

charstr2[]="

constcharstr3[]="

constcharstr4[]="

constchar*str5="

constchar*str6="

char*str7="

char*str8="

cout<

<

(str1==str2)<

endl;

(str3==str4)<

(str5==str6)<

(str7==str8)<

结果是:

8.以下代码中的两个sizeof用法有问题吗?

voidUpperCase(charstr[])//将str中的小写字母转换成大写字母

for(size_ti=0;

i<

sizeof(str)/sizeof(str[0]);

++i)

if('

a'

=str[i]&

&

str[i]<

='

z'

str[i]-=('

-'

A'

);

charstr[]="

aBcDe"

"

str字符长度为:

<

sizeof(str)/sizeof(str[0])<

UpperCase(str);

str<

7.

main()

inta[5]={1,2,3,4,5};

int*ptr=(int*)(&

a+1);

printf("

%d,%d"

*(a+1),*(ptr-1));

8.请问以下代码有什么问题:

intmain()

chara;

char*str=&

a;

strcpy(str,"

hello"

);

printf(str);

9.

char*s="

AAA"

s);

s[0]='

B'

有什么错?

9、嵌入式系统中经常要用到无限循环,你怎么用C编写死循环。

10、关键字static的作用是什么?

11、关键字const有什么含意?

12、关键字volatile有什么含意?

并举出三个不同的例子?

13

int(*s[10])(int)表示的是什么啊

14.有以下表达式:

inta=248;

b=4;

intconstc=21;

constint*d=&

int*conste=&

b;

intconst*fconst=&

请问下列表达式哪些会被编译器禁止?

*c=32;

d=&

*d=43;

e=34;

e=&

f=0x321f;

15.交换两个变量的值,不使用第三个变量。

即a=3,b=5,交换之后a=5,b=3;

16.c和c++中的struct有什么不同?

17.#include<

#include<

stdlib.h>

voidgetmemory(char*p)

p=(char*)malloc(100);

strcpy(p,"

helloworld"

intmain()

{

char*str=NULL;

getmemory(str);

printf("

%s/n"

str);

free(str);

}

18.charszstr[10];

strcpy(szstr,"

0123456789"

产生什么结果?

18.列举几种进程的同步机制,并比较其优缺点。

19.进程之间通信的途径

20.进程死锁的原因

21.死锁的4个必要条件

22.死锁的处理

23.操作系统中进程调度策略有哪几种?

24.数组和链表的区别

25:

(void*)ptr和(*(void**))ptr的结果是否相同?

其中ptr为同一个指针

26:

intmain()

intx=3;

x);

return1;

问函数既然不会被其它函数调用,为什么要返回1?

27,要对绝对地址0x100000赋值,我们可以用

(unsignedint*)0x100000=1234;

那么要是想让程序跳转到绝对地址是0x100000去执行,应该怎么做?

28,已知一个数组table,用一个宏定义,求出数据的元素个数

#defineNTBL

#defineNTBL(sizeof(table)/sizeof(table[0]))

29

分析下面的程序:

voidGetMemory(char**p,intnum)

*p=(char*)malloc(num);

intmain()

GetMemory(&

str,100);

if(str!

=NULL)

strcpy(str,"

world"

\nstris%s"

getchar();

问输出结果是什么?

30

1)给定结构structA

chart:

4;

chark:

unsignedshorti:

8;

unsignedlongm;

};

问sizeof(A)=?

2)下面的函数实现在一个数上加一个数,有什么错误?

请改正。

intadd_n(intn)

staticinti=100;

i+=n;

returni;

3)求函数返回值,输入x=9999;

intfunc(x)

intcountx=0;

while(x)

countx++;

x=x&

(x-1);

returncountx;

结果呢?

练习三:

1inta,b,c请写函数实现C=a+b,不可以改变数据类型,如将c改为longint,关键是如何处理溢出问题

2

分析:

structbit

{inta:

3;

intb:

2;

intc:

bits;

char*c=(char*)&

s;

cout<

sizeof(bit)<

endl;

*c=0x99;

cout<

s.a<

endl<

s.b<

endl<

s.c<

inta=-1;

%x"

a);

输出为什么是

3、改错:

intmain(void){

int**p;

intarr[100];

p=&

arr;

return0;

3、下面这个程序执行后会有什么错误或者效果:

#defineMAX255

intmain()

unsignedcharA[MAX],i;

//i被定义为unsignedchar

for(i=0;

=MAX;

A[i]=i;

4

structname1{

charstr;

shortx;

intnum;

}

structname2{

charstr;

intnum;

shortx;

}

sizeof(structname1)=,sizeof(structname2)=

5

structs1

inti:

8;

intj:

4;

inta:

3;

doubleb;

};

structs2

{

inti:

intj:

doubleb;

inta:

};

sizeof(s1)=%d\n"

sizeof(s1));

sizeof(s2)=%d\n"

sizeof(s2));

6、已知一个单向链表的头,请写出删除其某一个结点的算法,要求,先找到此结点,然后删除。

4、有一个16位的整数,每4位为一个数,写函数求他们的和。

5、有1,2,....一直到n的无序数组,求排序算法,并且要求时间复杂度为O(n),空间复杂度O

(1),使用交换,而且一次只能交换两个数.

6、写出程序把一个链表中的接点顺序倒排

typedefstructlinknode

intdata;

structlinknode*next;

}node;

7写出程序删除链表中的所有接点

8两个字符串,s,t;

把t字符串插入到s字符串中,s字符串有足够的空间存放t字符串

9、分析下面的代码:

char*a="

char*b="

if(a==b)

YES"

else

NO"

10.给两个数组和他们的大小,还有一动态开辟的内存,求交集,把交集放到动态内存dongtai,并且返回交集个数

longjiaoji(long*a[],longb[],long*alength,longblength,long*dongtai[])

11.单连表的建立,把'

--'

26个字母插入到连表中,并且倒叙,还要打印!

12.请问一下程序将输出什么结果?

char*RetMenory(void)

charp[]=“hellowworld”;

returnp;

voidTest(void)

char*str=NULL;

str=RetMemory();

13写一个函数,它的原形是intcontinumax(char*outputstr,char*intputstr)

功能:

在字符串中找出连续最长的数字串,并把这个串的长度返回,并把这个最长数字串付给其中一个函数参数outputstr所指内存。

例如:

"

abcd12345ed125ss123456789"

的首地址传给intputstr后,函数将返回9,outputstr所指的值为123456789

14不用库函数,用C语言实现将一整型数字转化为字符串

15、用指针的方法,将字符串“ABCD1234efgh”前后对调显示

16、有一分数序列:

1/2,1/4,1/6,1/8……,用函数调用的方法,求此数列前20项的和

17有一个数组a[1000]存放0--1000;

要求每隔二个数删掉一个数,到末尾时循环至开头继续进行,求最后一个被删掉的数的原始下标位置。

以7个数为例:

{0,1,2,3,4,5,6,7}0-->

1-->

2(删除)-->

3-->

4-->

5(删除)-->

6-->

7-->

0(删除),如此循环直到最后一个数被删除。

18实现strcmp

intStrCmp(constchar*str1,constchar*str2)

19实现子串定位

intFindSubStr(constchar*MainStr,constchar*SubStr)

20写一个函数,功能:

完成内存之间的拷贝

21。

编写一个C函数,该函数在一个字符串中找到可能的最长的子字符串,且该字符串是由同一字符组成的。

22。

请编写一个C函数,该函数在给定的内存区域搜索给定的字符,并返回该字符所在位置索引值。

23一个单向链表,不知道头节点,一个指针指向其中的一个节点,问如何删除这个指针指向的节点?

24.写一函数,实现删除字符串str1中含有的字符串str2.

25.给定字符串A和B,输出A和B中的最大公共子串。

比如A="

aocdfe"

B="

pmcdfa"

则输出"

cdf"

26,求1000!

的未尾有几个0(用素数相乘的方法来做,如72=2*2*2*3*3);

27.有双向循环链表结点定义为:

structnode

{intdata;

structnode*front,*next;

};

有两个双向循环链表A,B,知道其头指针为:

pHeadA,pHeadB,请写一函数将两链表中data值相同的结点删除

28.编程实现:

找出两个字符串中最大公共子字符串,如"

abccade"

"

dgcadde"

的最大子串为"

cad"

29.编程实现:

把十进制数(long型)分别以二进制和十六进制形式输出,不能使用printf系列库函数

30斐波拉契数列递归实现的方法如下:

intFunct(intn)

{

if(n==0)return1;

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

当前位置:首页 > 初中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1