}
练习题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
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 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); } 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库C语言程序设计教程书后作业参考答案2013(5)在线全文阅读。
相关推荐: