C语言程序设计学习与实践指导(源代码)(7)

2019-06-11 08:06

8.以下程序的输出结果是( )。

void sub(float x,float *y,float *z) { *y=*y-1.0; *z=*z+x;

}

main()

{ float a=2.5,b=9.0,*pa,*pb; pa=&a,pb=&b; sub(b-a,pa,pa); printf(\}

9

.以下四个程序中不能对两个整型值进行交换的是(A.main()

{ int a=10,b=20;

swap(&a,&b);

printf(\}

swap(int *p, int *q) { int *t,a;

t=&a;

*t=*p; *p=*q; *q=*t;

}

B.main()

{ int a=10,b=20;

swap(&a,&b);

printf(\}

swap(int *p, int *q) { int t;

t=*p; *p=*q; *q=t;

}

C.main()

{ int *a,*b; *a=10,*b=20;

swap(a,b);

printf(\*a,*b); }

swap(int *p, int *q) { int t;

t=*p; *p=*q; *q=t;

}

D.main()

{ int a=10,b=20; int *x=&a,*y=&b; swap(x,y);

printf(\}

。 ) swap(int *p, int *q) { int t;

t=*p; *p=*q; *q=st; }

10.以下count函数的功能是统计substr在母串str中出现的次数,请将程序补充完整。

int count(char *str,char *substr) { int i,j,k,num=0; for(i=0; 【1】 ;i++)

{for( 【2】 ,k=0;substr[k]==str[j];k++,j++) if(substr[ 【3】 ]==’\\0’) {num++;break;} }

return num; }

11.以下Delblank函数的功能是删除字符串s中的所有空格(包括Tab、回车符和换行符),请将程序补充完整。

void Delblank(char *s) { int i,t; char c[80];

for(i=0,t=0; 【1】 ;i++)

if(!isspace( 【2】 ))c[t++]=s[i]; c[t]='\\0'; strcpy(s,c); }

12.以下conj函数的功能是将两个字符串s和t连接起来,请将程序补充完整。

char *conj(char *s,char *t) { char *p=s; while(*s) 【1】 ; while(*t)

{ *s= 【2】 ;s++;t++;} *s='\\0'; 【3】 ;

}

8.3.2 填空题

8.以下程序用指针指向三个整型存储单元,输入三个整数,并保持这三个存储单元中的值不变,选出其中最小值并输出。

#include\ main()

{

int 【1】

a=(int *)malloc(sizeof(int)); b=(int *)malloc(sizeof(int)); c=(int *)malloc(sizeof(int)); min=(int *)malloc(sizeof(int)); printf(\输入三个整数:\

scanf(\【2】 );

printf(\输出以上整数:%d%d%d\\n\【3】 ); *min=*a; if(*a>*b) 【4】 ;

if( 【5】 >*c) 【6】 ;

printf(\输出最小的整数:%d\\n\【7】 ); }

9.阅读以下程序:

main()

{

char str1[]=\ char *ip1=str1,*ip2=str2; scanf(\ printf(\ printf(\

运行上面的程序,输入字符串HOW DO YOU DO,则程序的输出结果是______。 10.阅读下面的程序:

main() {

static char *name[]={\ \ char **ip; int i;

for(i=0;i<5;i++) {

【1】 ;

printf(\*ip); } }

}

11.阅读并运行上面的程序,如果从键盘上输入字符串qwerty和字符串abcd则程序的输出结果是 【1】 。

#include\#include\

strlen(char a[],char b[]) {

int num=0,n=0;

while(*(a+num)!='\\0') num++;

while(b[n]) {

*(a+num)=b[n]; num++; n++; }

return (num); }

main() {

char str1[81],str2[81],*p1=str1,*p2=str2; gets(p1); gets(p2);

printf(\}

13.以下程序的输出结果是 【1】 。

int ast(int x,int y,int *cp,int *dp) { *cp=x+y; *dp=x-y; }

main()

{ int a,b,c,d; a=4; b=3;

ast(a,b,&c,&d);

printf(\ }

9.3 测试题

填空题

5.已知head指向一个带头结点的单向链表,链表中每个结点包含数据域(data)和指针域(next),数据域为整型。下面的sum函数是求出链表中所有结点数据域值的和,作为函数值返回。请填空完善程序。

struct link { int data;

struct link *next;}

main()

{ struct link *head; int s; ?

s=sum(head);

? }

int sum( struct link *head ) { struct link *p; int s=0; }

while(p)

{ s+= 【1】 ; return(s);

p=head->next; p= 【2】 ; }

10.2 例题分析与解答

6.以下程序的输出结果是( )。

void fun(float *p1,float *p2,float *s) { s=(float *)calloc(1,sizeof(float)); *s=*p1+*p2++; }

main()

{ float a[2]={1.1,2.2},b[2]={10.0,20.0},*s=a; fun(a,b,s);

printf(\*s); }

10.3.2 填空题

1.C语言提供了三种预处理语句,它们是 【1】 、 【2】 和条件编译。 2.下面程序中for循环的执行次数是 【1】 ,输出结果为 【2】 。

#include\ #define N 2

#define M N+1

#define NUM (M+1)*M/2 void main() { int i;

for(i=1;i<=NUM;i++); printf(\

3.下面程序的输出是 【1】 。

#define PR(ar) printf(\ main()

{ int j, a[]={ 1,3,5,7,9,11,13,15},*p=a+5; for(j=3; j; j--) { switch(j) {case 1:

case 2: PR(*p++); break; case 3: PR(*(--p)); } } }

}

4.以下程序的输出结果是 【1】 。

#define PR(ar) printf(\main()

{ int j,a[]={1,3,5,7,9,11,13,15},*p=a+5; for(j=3; j; j--) switch(j)

{ case 1:

case 2:PR(*p++); break; case 3:PR(*(--p)); } }

5.下面程序调用getone 函数开辟一个动态存储单元,调用assone 函数把数据输入此动态存储单元,调用outone 函数输出此动态存储单元中的数据。请填空。

#include \getone(int **s)

{ *s=( 【1】 )malloc(sizeof(int)); } assone(int *s)


C语言程序设计学习与实践指导(源代码)(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:湖南省农业领域高新技术产业发展调研报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: