windows网络编程课后答案(windows网络编程课后答案清华大学出版)
求《windows网络编程 第二版》
豆瓣网:
china-pub:
你都可以看看的,可以网上订购的书本...
有《Windows网络编程案例教程》的pdf和源代码吗?可以分享给我吗?谢谢!
书名=Windows网络编程案例教程
作者=董相志编著
页码=415
ISBN=978-7-302-34489-6
出版社=北京:清华大学出版社 , 2014.01
附件已经上传
谁能提供点C语言的试题给我,最好能有答案的,非常感谢!
本试卷共5页共5大题,考生在作答前应先检查是否有缺页、白页、以防漏答。查对无误后,请先填写学号、姓名、专业,再答卷。
一、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。(共10小题,每小题2分,共20分)。
1、不是C语言基本数据类型的是( )。
A、指针类型 B、整型
C、字符型 D、实型
2、设有:int a=3, b= 4, c= 5,x , y; 表达式(x=a)(y=b)0的值为( )。
A、1 B、0 C、3 D、4
3、设有语句 int a=3 ; 则执行了语句 a+ = a - = a后,变量a 的值是( )。
A、3 B、0 C、9 D、-12
4、执行以下程序后,y的值是( )
main()
{ int a[]={2,4,6,8,10};
int y=0,i,*p;
p=a[0];
for(i=0;i5;x++)
y+=*(p+i);
printf(“%d\n”,y);
}
A、17 B、18 C、19 D、30
5、有定义语句:float a[4];则分配给数组a的空间为( )字节。
A、 20 B、 12 C、 16 C、10
6、以下描述错误的是( )。
A、break语句可用于do~while语句
B、break语句和continue语句的作用是一样的
C、在循环语句中使用break语句是为了跳出循环,提前结束循环
D、在循环语句中使用continue语句是为了结束本次循环,而不终止整个循环
7、C语言中规定,if语句的嵌套结构中,else总是( )。
A、与最近的if 配对 B、与第一个if 配对
C、按缩进位置相同的if配对 D、与最近的且尚未配对的if 配对
8、说明语句“int (*p)( ); ”的含义是( ) 。
A、p是一个指向一维数组的指针变量
B、p是指针变量,指向一个整型数据
C、p是一个指向函数的指针,该函数返回一个int型数据
D、以上都不对
9、以下对二维数组c的正确声明是 ( ) 。
A、int c[3][ ]; B、int c(3,4); C、int c(2)(2); D、int c[3][2];
10、下述程序段执行后输出结果是( )。
int x=100, y=200;
printf ("% d", (x, y));
A、100 B、200 C、100,200 D、编译出错
二、填空题。(共10空,每空1分,共10分 )
1、C语言提供的三种逻辑运算符是 、 || 和!;
2、函数的返回值是通过函数中的 return 语句获得的。
3、在"int a[ ][3]={{1},{3,2},{4,5,6},{0}};"定义后,a[2][2]的值为_6__ _;
4、对于"int *pa[5];" pa是一个具有5个元素的_数组指针_,每个元素是一个指向int型变量的__指针__;
5、单向链表的尾节点next指针应赋值__ NULL___;
6、for(int x=0,y=1;xy〈=5;y++)中循环体执行的次数是 0 。
7、int a[5];数组a的首地址为2000,则元素a[1]的地址为 2002 ,元素a[2]的地址为 2004 。
三、程序填空题。(共8空,每空2分,共16分 )
1、以下程序中子函数返回数组s中最大元素,数组中元素的个数由t传入。
Int findmax(int s[],int t)
{
int m,n,*p;
max=0;
p= s ;
for(n=1;nt;n++)
if(*(p+max)*(p+n)) max=n ;
return(*(p+max));;
}
Void main( )
{ int a[10];
int i;
for(i=0;i10;i+=)
scanf(“%d”,a[i]);
printf(“%d”,findmax{a,10});
}
2、以下程序完成计算1-1/2+1/3-1/4+..前n 项和的功能,请填空。
#include stdio.h
int main( )
{ int i, n, flag;
float sum;
scanf("%d", n);
flag= 1 ;
sum=0;
for(i=1;i=n; i++ )
{ sum+=(float)flag/i;
flag=-flag ;
}
printf("%.3f\n", sum);
}
3、以下程序的功能是从键盘输入n个整数,统计其中正数、0、负数的个数,请填空。
#include stdio.h
int main( )
{int a, i, count1,count2,count3;
count1=cout2=count3=0 ;
for(i=1;i=n;i++)
{ scanf(“%d”, a);
If(a0) count1++;
Else if(i==0) count2++ ;
Else count3++;
}
printf(“正数:d个,零:%d个,负数:%d个\n”, count1,count2,count3);
}
四、运行程序结果。(共4小题,每小题6分,共24分)
1、运行时输入100,200,请写出程序运行结果。
Void main( )
{
int a, b,*p1,*p2 ;
scanf ( " % d ", a , );
scanf ( " % d ", b );
printf(“a=%d,b=%d”,a,b);
p1=a; p2=b;
swap ( p1,p2);
printf(“a=%d,b=%d”,a,b);
}
Void swap ( int *p1, *p2)
{
int t ;
t=*p1; *p1=*p2; *p2=t;
}
运行结果为:
a=100,b=200a=200,b=100
2、运行时若输入1 2 3 4 -5回车,写出程序运行结果。
#include stdio.h
int main( )
{
int x, sum;
scanf("%d", x);
sum=0;
while(x0)
{ if(x%2!=0) sum+=x;
scanf("%d", x);
}
printf("sum=%d\n", sum);
}
运行结果为:
sum=4
3、写出程序运行结果。
#includestdio.h
int max(int a,int b)
{ int c;
c=ab?a:b;
return(c);
}
int min(int a,int b)
{int c;
c=ab?a:b;
return(c);
}
void main()
{ int a=2,b=6;
printf("max=%d\n",max(a,b));
printf(“min=%d\n”,min(a,b));
}
运行结果为:
max=6
Min=2
4、运行时若输入4 1 2 3 0回车,写出程序运行结果。
#include stdio.h
int main( )
{
int i, index, n;
int a[10];
scanf("%d", n);
for(i=0; in; i++)
scanf("%d", a[i]);
index=0;
for(i=1;in;i++)
{ if(a[i]a[index]) index=i; }
printf("min=%d,index=%d\n", a[index],index);
}
运行结果为:
min=0,index=3
五、程序设计.( 共3小题,每小题10分,共30分)
1、输入10个字符串,将其按由小到大排序。
#includestdio.h
#includestring.h
Void main( )
{ char c[10][20],t[10];
Int I, j,k;
For(i=0;i10;i++)
Gets(c[i]);
For(i=0;i9;i++)
{ k=I;
For(j=i+1;j10;j++)
If(strcmp(c[k],c[j])0) k=j;
If(k!=i) { strcpy(t,c[k]); strcpy(c[k],c[i]); strcpy(c[i],t); }
For(i=0;i10;i++)
Puts(c[i]);
}
2、求出1!+2!+3!+…+8!。
#includestdio.h
Float fact(int n)
{ float f;
If(n==1||n==0) f=1;
Else f=fact(n-1)*n;
Return(f);
}
Void main( )
{float sum;
Int I;
Sum=0;
For(i=1;i=8;i++)
Sum+=fact(i);
Printf(“sum=%d\n”,sum);
}
3、请写出在一个单向链表中插入一个结点的函数:
struct student *insert(struct student *head, struct student *stud)
(说明:链表结点有两个成员:数据成员data和指针成员next)。
#include stdio.h
#include malloc.h
#define NULL 0
#define LEN sizeof(struct student)
struct student
{ int data;
struct student *next;
};
int n;
struct student *insert(struct student *head, struct student *stud)
{struct student *p0,*p1,*p2;
p1=head;p0=stud; if(head==NULL)
{head=p0; p0-next=NULL;}
else{while((p0-datap1-data) (p1-next!=NULL))
{p2=p1; p1=p1-next;}
if(p0-data=p1-data) {if(head==p1) head=p0;
else p2-next=p0; p0-next=p1;}
else {p1-next=p0; p0-next=NULL;}}
n=n+1; return(head);
}