C语言程序设计教程书后作业参考答案2013(5)

2020-03-27 19:44

}

练习题9参考答案

一、选择题

序号 参考答案 1 A 2 C 3 C 4 C 5 A 6 A 7 B 8 D 9 D 10 B 二、填空题

1. 下列程序的输出结果是 7 1 。

2. 一个专门用来存放另一个变量地址的变量称为 指针 。 3. 下列程序执行后的输出结果是 6 。

4.有以下程序,执行后输出的结果是 x=8,y=4 。 三、程序设计题(要求用指针方法完成) 1.输入10个整数,按由小到大顺序排序。 #include void main() {

int i,m,a[10],*p=a,k,j,t; printf( \输入10 个数:\ for(i=0;i<=9;i++) scanf(\

for(i=0;i<9;i++) { k=i;

for(j=i+1;j<=9;j++) if(*(p+k)>*(p+j)) k=j;

{t=*(p+k);*(p+k)=*(p+i);*(p+i)=t;} }

for(i=0;i<=9;i++) printf(\ printf(\}

2.从键盘上输入n个整数存放到一维数组中,用函数实现将n个整数按输入时的顺序逆序排列,函数中对数据的处理要用指针方法实现。 #include \int main() {

int n,*a,i,temp;

printf(\请输入数组元素个数:\ scanf(\

a=malloc(n*sizeof(int));

printf(\请输入%d个整数,以空格隔开:\ for(i=0;i

scanf(\

for(i=0;i

temp=a[i]; a[i]=a[n-1-i]; a[n-1-i]=temp; }

printf(\反序输出为:\ for(i=0;i

printf(\}

3.从键盘上输入10个整数存放到一维数组中,将其中最小的数与第一个数对换,最大的数与最后一个数对换。要求进行数据交换的处理过程编写成一个函数,函数中对数据的处理要用指针方法实现。 #include

void swap(int *p1,int *p2);//交换两个数据元素 void fun(int *p);//找最大小数并交换 int main() {

int a[10],i;

printf(\

for(i=0;i<10;i++) //输入数组元素 scanf(\

fun(a); //处理数据 printf(\交换后的10 datas:\\n\

for(i=0;i<10;i++) //输出交换后的数组元素 printf(\}

void swap(int *p1,int *p2) { int t; t=*p1; *p1=*p2; *p2=t; }

void fun(int *pa)

{ int max,min,i,maxp,minp; max=*pa;maxp=0; min=*pa;minp=0; for(i=1;i<10;i++) {

if(max

{max=pa[i]; maxp=i; } if(min>pa[i])

{min=pa[i]; minp=i; } }

swap(&pa[0],&pa[minp]); swap(&pa[9],&pa[maxp]); }

4.从键盘上输入10个数据到一维数组中,然后找出数组中的最大值和该值所在的元素下标。要求调用子函数search(int *pa,int n,int *pmax,int *pflag)完成,数组名作为实参,指针作为形参,最大值和下标在形参中以指针的形式返回。 #include

int search(int *pa,int n,int *pmax,int *pflag); int main() {

int a[10],i,max,flag,pmax; printf(\ for(i=0;i<10;i++)

scanf(\

pmax=search(a,10,&max,&flag); printf(\

printf(\}

int search(int *pa,int n,int *pmax,int *pflag) {

int i,*max; max=pmax; *pmax=pa[0]; for(i=1;i

if(*pmax

*pmax=pa[i]; *pflag=i; } }

return *max; }

练习题10参考答案

一、选择题

序号 参考答案 1 B 2 B 3 B 4 D 5 D 6 C 7 B 二、填空题

1.设有以下结构类型说明和变量定义,则变量a在内存所占字节数是 22 。 2.表达式 ++p->n 的值是6。

3.以下程序用来输出结构体变量ex所占存储单元的字节数,请填空。 printf(\ex size:%d\\n\sizeof( ex )); 4.下面程序的运行结果是 2,3 。

5.表达式pn->b/n.a*++pn->b的值是 12 ,表达式(*pn).a+pn->f的值是 6.000000 。

6.下面程序的运行结果是 5,3 。

练习题11参考答案

一、选择题 序号 参考答案 序号 参考答案 1 B 11 A 2 C 12 D 3 D 13 A 4 B 14 C 5 A 15 D 6 C 16 7 D 17 8 A 18 9 A 19 10 B 20 二、填空题

1.以下程序中用户由键盘输入一个文件名,然后输入一串字符(用“#”结束输入)存放到此文件中形成文本文件,并将字符的个数写到文件尾部,请填空。 (1) fname (2) fp

2.下面程序把从终端读入的l0个整数以二进制数方式写到一个名为bi.dat的新文件中,请填空。

(1) \

3.以下程序由终端输入一个文件名,然后把从终端键盘输入的字符依次存放到该文件中,用“#”作为结束输入的标志,请填空。 (1) fopen(fname, \

4.若执行fopen()函数时发生错误,则函数的返回值是 NULL 。

5.在C语言中,数据可以用 二进制 和 ASCII 两种代码形式存放。 6.feof(fp)函数用来判断文件是否结束,如果遇到文件结束,函数值为 非零值或1 ,否则为 0 。

三、程序设计题

1.设计一个程序统计一个文本文件中字母、数字及其他字符各有多少个。 #include #include void main() {

char ch;

int num1=0,num2=0,num3=0; FILE *fp; int i;

if((fp=fopen(\打开一个文件*/ {

printf(\ getch(); exit(1); }

while ((ch=fgetc(fp))!=EOF) {

if(ch>='a'&&ch<='z') num1++;

else if(ch>='A'&&ch<='Z')

num1++;

else if(ch>='0'&&ch<='9') num2++; else

num3++; }

printf(\字母:%d\\n\ printf(\数字:%d\\n\ printf(\其它:%d\\n\ fclose(fp); }


C语言程序设计教程书后作业参考答案2013(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《成本会计核算实务》.练习参考答案

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

马上注册会员

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