一维数组与指针练习题
- 格式:doc
- 大小:48.50 KB
- 文档页数:9
c语言指针编程练习题2. 从命令行输入两个实型数据,请比较大小并输出。
参考答案3. 输入3个数a,b,c,按大小顺序输出。
利用指针方法参考答案4. 输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
参考答案5. 有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数参考答案6. 有n个人围成一圈,顺序排号。
从第一个人开始报数,凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
参考答案7. 写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。
参考答案8. 编写一个函数,输入n为偶数时,调用函数求1/2+1/4+…+1/n,当输入n为奇数时,调用函数1/1+1/3+…+1/n 参考答案9. 八进制转换为十进制参考答案10. 编一个函数fun,函数的功能是分别求出数组中所有奇数之和以及所有偶数之和。
形参n给了数组中数据的个数:利用指针odd返回奇数之和,利用指针even返回偶数之和。
例如:数组中的值依次为:1,8,2,3,11,6;则利用指针odd返回奇数之和24;利用指针even返回偶数之和8。
参考答案11. 复制字符串。
参考答案一、用指针方法编写一个程序,输入3个整数,将它们按由小到大的顺序输出 #includevoid swap{int temp;temp = *pa;*pa = *pb;*pb = temp;}void main{int a,b,c,temp;scanf;ifswap;ifswap;ifswap;printf;}二、C语言用指针方法输入3个字符串按由小到大顺序输出#include “stdio.h”#include “string.h”int main{char *t;char *p1=NULL,*p2=NULL,*p3=NULL;char ch1[20]={0},ch2[20]={0},ch3[20]={0};p1=ch1;p2=ch2;p3=ch3;printf;scanf;fflush;printf;scanf;fflush;printf;scanf;}fflush; if>0) {t=p1;p1=p2;p2=t;} if>0) {t=p1;p1=p3;p3=t;} if>0) {t=p2;p2=p3;p3=t;} printf; return 0;9.4编程输入一行文字,找出其中的大写字母,小写字母,空格,数字,及其他字符的个数#includevoid main{int a=0,b=0,c=0,d=0,e=0,i=0;char *p,s[20];while)!=‘\n’)i++;p=s;while{ifa++;else ifb++;else ifc++;else ifd++;else e++;p++;}printf;printf;}9.5写一个函数,将3矩阵转置 #include “stdio.h”void Transpose[3]){int temp;int i, j;for/*转置*/{for{temp = *+i);*+i) = *+j);*+j) = temp;}}}void main{int a[3][3] = {{1,2,3},{4,5,6},{7,8,9}}; Transpose;for{for{printf;}printf;}}}.6用指向一维数组的指针做函数参数#include#includeint main{void sort[6]);//一维数组的指针做函数参数int i;char str[10][6]; char [6];//定义一维数组的指针做函数参数printf;forscanf;p=str;//将str一维数组指针,赋值给p;sort;printf;forprintf;return 0;}void sort[6])//s指向一维数组的指针做函数参数; {int i,j;char temp[6], *t;t=temp;for//i应该小于9;如果小于10,那么就比较了9+1次;按照冒泡法则,for//第一次比较需要9次就是i=0到i=8共九次;第二次需要比较8次;依次类推;if>0){strcpy;strcpy;strcpy;}}9.7编一程序,用指针数组在主函数中输入十个等长的字符串。
作业:1、下列程序的功能是:输入字符串S和字符串t,将字符串t追加到字符串S的尾部。
例如:串s:“abcde fgh”,串t: “1 2 3”,追加后s:“abcdefghl 2 3”。
2、下列程序的功能是实现从键盘输入两个字符串,输出后一子串在前一字符串中首次出现的位置(即第几个字符,若字符串不存在位置取0)。
3、下列程序的功能是:提取字符串中首个数字字串,转为对应的数字,输出其与15的和。
(注:数字W 的ASCII值为48,如无数字子串,输出15)例如:输入asdl23jk456,hg789ck输出:123+15=1384、实现:1)将数组a中大于-20的元素,依次存放到数组b中;2)将数组b中的元素按照从小到大的顺序存放到数组c中;3)输出数组b中的元素个数及数组c中的所有元素6、输入3行3列整型数组,求其最大值和最小值。
5、将三个字符串从小到大排序后输出。
1、下列程序的功能是:输入字符串S和字符串t,将字符串t追加到字符串s的尾部。
例如:串s:^abcde fgh”,串t: “1 2 3”,追加后s:“abcdefghl 2 3”。
#include <stdio.h>#include <string.h>void main(){chars[100],t[10];int ijenofs;gets(s);gets(t);/**/ i=0; /**/lenofs=strlen(s);while(tfil){ s[lenofs+i]=t[i];i++; }s[lenofs+i]=/**/ '\0' /**/;printf(n The final string s:%s\rT,s);getch();}2、下列程序的功能是实现从键盘输入两个字符串,输出后一子串在前一字符串中首次出现的位置(即第几个字符,若字符串不存在位置取0)。
#include <stdio.h>#include <string.h>void main(){ int i,j,k,position=0;char strl[100],str2[100];gets(strl);/**/gets(str2) /**/;for(i=0; /**/ strl[i]!=,\O, /**/; i++)for(j=i,k=0; (strl[j]==str2[k])&&(std[j]!=、(y); j++,k++ )■if(sti*2[k]==、0‘){position=i+l;/**/break /**/;}}printf(n\nlt,s at:%d\n H,position);getch();}-/**/; p++)3、下列程序的功能是:提取字符串中首个数字字串,转为对应的数 字,输出其与15的和。
指 针1、 概述1.1 地址和指针的概念如果在C 语言中定义一个变量,系统会自动的给它存储空间。
比如:int a,b,c;系统会自动的给a,b,c 分别分配2个字节的空间,内存中的表示如下图:这样以来,就建立了变量和地址的对应关系。
如果产生赋值行为,比如:a=1,b=3;,存储图如下:如果产生具体的操作,比如:c=a+b ,具体的过程如下: 第一步:从2001-2002字节空间取出1; 第二步:从2003-2004字节空间中取出3;第三步:将1和3相加后的结果4存入变量C 所指向的地址空间(2005-2006),图例如下:ab cab c以上的程序,在C 语言中称为“直接访问”。
既然有“直接访问”,肯定会存在“间接访问”,举例如下:张三出差,住宾馆,房间号码为1001,从携带钥匙的方式上来看,有两种方式: 1、 钥匙自己带(直接方式);2、 钥匙放在总台上,要开门,先到总台拿钥匙,而后开门(间接方式) 以上是生活中的例子,那么,在C 程序中,如何表示这种“间接方式”呢? 第一步:定义一个普通的变量并赋值(int a=3;)第二步:定义一种变量,用来存储变量a 的地址(a_pointer );第三步:建立该变量和普通变量之间的联系,将变量a 的地址存储到a_pointer 中。
第四步:通过该变量(a_pointer )来访问a;程序如下:b c一种示意图:以上的图形象的表示了一种“指向关系”。
“*”,表示指向。
在C 语言中,一个变量的地址被称为该变量的“指针”,存储该变量地址的“东东”,称为指针变量。
故,指针是一个地址,而指针变量是存放该地址的变量,它用来指向“指针”所表示的地址。
1.2 指针变量的定义和使用定义格式:数据类型(基本型) *指针变量比如:int *pointer_1;指针变量是pointer_1,而不是*pointer_1; 有了以上的定义,pointer_1是我们定义的指针变量,*pointer_1是具体的内容。
一维数组练习题题目一:数组元素反转描述:给定一个整数数组,将数组中的元素反转并输出。
要求:1. 输入一个整数n,表示数组的长度(1 ≤ n ≤ 100);2. 输入n个整数构成的数组;3. 输出数组中的元素,按照逆序输出。
解答:题目二:查找数组中的最大值和最小值描述:给定一个整数数组,找出数组中的最大值和最小值,并输出。
要求:1. 输入一个整数n,表示数组的长度(1 ≤ n ≤ 100);2. 输入n个整数构成的数组;3. 输出数组中的最大值和最小值。
解答:题目三:计算数组的和与平均值描述:给定一个整数数组,计算数组中所有元素的和及平均值,并输出结果。
要求:1. 输入一个整数n,表示数组的长度(1 ≤ n ≤ 100);2. 输入n个整数构成的数组;3. 输出数组中所有元素的和及平均值,结果保留两位小数。
解答:题目四:数组去重描述:给定一个整数数组,去除数组中的重复元素,并输出结果。
要求:1. 输入一个整数n,表示数组的长度(1 ≤ n ≤ 100);2. 输入n个整数构成的数组;3. 输出去除重复元素后的数组。
解答:题目五:数组元素排序描述:给定一个整数数组,对数组中的元素进行排序,并输出结果。
要求:1. 输入一个整数n,表示数组的长度(1 ≤ n ≤ 100);2. 输入n个整数构成的数组;3. 输出排序后的数组。
解答:题目六:数组元素查找描述:给定一个整数数组和一个目标值,判断目标值是否存在于数组中,并输出结果。
要求:1. 输入一个整数n,表示数组的长度(1 ≤ n ≤ 100);2. 输入n个整数构成的数组;3. 输入一个整数作为目标值;4. 若目标值存在于数组中,则输出"目标值存在于数组中",否则输出"目标值不存在于数组中"。
解答:以上为一维数组练习题的题目描述及解答,请根据题目所需完成相应的练习。
第九章指针9.1 选择题[题9.1] 以下程序的运行结果是____。
sub(int x,int y,int *z){*z=y-x;}main(){int a,b,c;sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);printf(”%4d,%4d,%4d\n”,a,b,c);}A) 5,2,3 B)-5,-12,-7C)-5,-12,-17 D)5,-2,-7[题9.2] 执行以下程序后,a的值为[1l,b的值为[2]。
main(){int a,b,k=4,m=6,*p1=&k,*p2=&m;a=p1==&m;b=(-*p1)/(*p2)十7;print{(”a=%d\n”,a);printf(”b=%d\n”,b);}[1l A)一1 B)1 C)0 D)4[2] A)5 B)6 C)7 D)10[题9.3]下面程序应能对两个整型变量的值进行交换。
以下正确的说法是____ main(){inta=10,b=20;printf(”(1)a=%d,b=%d\n”,a,b);swap(%d,%b);printf(”(2)a=%d,b=%d\n”,a,b)}Swap(int p,int q){int t;t=p;p=q;q=t;}A)该程序完全正确B)该程序有错,只要将语句swap(&d,&b);中的参数改为a,b即可C)该程序有错,只要将swap()函数中的形参p和q以及t均定义为指针(执行语句不变)即可D)以上说法都不正确[题9.4]有四组对指针变量进行操作的语句,以下判断正确的选项是____(1)int *p,*q; q=p;int a,*p,*q; p=q=&a;(2)int a,*p,*q; q=&a;p=*q;int a=20,*p; *p=a;(3)int a=b=0,*p; p=&a; b=*p;int a=20,*p,*q=&a;*p=*q;(4)int a=20,*p,*q=&a; p=q;int p,*q; q=&p;A)正确:(1);不正确:(2),(3),(4)B)正确:(1),(4);不正确:(2),(3)C)正确:(3);不正确:(1),(2),(4)D)以上结论都不正确[题9.5]以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是____。
c语言一维数组上机考试题目
以下是一些关于C语言一维数组的常见上机考试题目:
1. 编写一个程序,输入一个整数n,求出1到n之间所有偶数的和。
2. 编写一个程序,输入一个整数n,求出1到n之间所有数字的阶乘之和。
3. 编写一个程序,输入一个整数n,求出1到n之间所有数字的立方之和。
4. 编写一个程序,输入一个整数n,求出1到n之间所有数字的平方之和。
5. 编写一个程序,输入一个整数n,求出1到n之间所有数字的倒数之和。
6. 编写一个程序,输入一个整数n,求出1到n之间所有数字的绝对值之和。
7. 编写一个程序,输入一个整数n,求出1到n之间所有数字的因子之和。
8. 编写一个程序,输入一个整数n,求出1到n之间所有数字的质因子之和。
9. 编写一个程序,输入一个整数n,求出1到n之间所有数字的奇数因子之和。
10. 编写一个程序,输入一个整数n,求出1到n之间所有数字的因子个数之和。
以上题目只是示例,实际上关于C语言一维数组的上机考试题目还有很多其他类型。
考生应该掌握一维数组的基本概念和操作,并且能够灵活运用数组来解决问题。
六、指针习题及答案一、单项选择题1. *p最终值是( D)int *p,b=10;static int a[]={2,3,4,1,5,6};p=a;p+=3;a[3]=b;A. 1B. 3C. 4D. 102. *p最终值是( A )char b[10]= "abcdefghi",*p;p=b+5;A. ’f’B. ’g’C. ’h’D. ’e’3. 有一个二维数组a[3][4],其2行3列元素a[2][3]的正确表示方法为( D )。
A. &a[2][3]B. a[2]+3C. *(a+2)+3D. *(a[2]+3)4. 指向一个包含4个整型元素的一维数组的行指针变量的定义形式为( D )。
A. int (*p)[]B. int *p[4]C. int *(p[])D. int (*p)[4]5. 4个指向int型元素的指针构成一个一维指针数组的定义形式为( B )。
A. int (*p)[]B. int *p[4]C. int *(p[])D. int (*p)[4]6. 若char *str1="china",char *str2="student";则语句strcpy(str2,str1)执行后,str2的值为( A )。
A. chinaB. studentC. studentchinaD. chinastudent7.若有以下定义和语句:int a[]={1,2,3,4,5,6,7,8,9,0}, *p=a;则值为3的表达式是( B )。
A. p+=2,*(++p)B.p+=2,*p++C.p+=3,p++D. p+=2,++*p8.若有以下定义:char s[20]="programming", *ps=s;则下列不能代表字符“o”的表达式是( A )。
A. ps+2B. s[2]C. ps[2]D.ps+=2,*ps9. 若有定义和语句:int **pp,*p, a=10,b=20;pp=&p;p=&a;p=&b;cout<<*p<<","<<**pp;则输出结果是: ( D )。
C语言程序设计练习题参考答案第四章(1)一维数组C语言程序设计练习题参考答案第四章 (1) 一维数组/* 4.11 fibonacci数列,前15项 1,1,2,3,5,。
*/ #include "stdio.h"void main(){int f[15]={1,1}, i;for(i=2;i<=14;i++) /* 计算 */f[i]=f[i-2]+f[i-1];printf("fibonacci数列,前15项\n"); /* 输出 */for(i=0;i<=14;i++){printf("%5d",f[i]);if((i+1)%5==0)printf("\n");}}/* 4.12 数组元素前移动一个位置 */#include "stdio.h" void main(){int a[10]={0,1,2,3,4,5,6,7,8,9};int i,t;printf("\n移动之前:\n");for(i=0;i<=9;i++)printf("%3d",a[i]);/* 移动 */t=a[0];for(i=0;i<=9;i++)a[i]=a[i+1];a[9]=t;printf("\n移动之后:\n");for(i=0;i<=9;i++)printf("%3d",a[i]);}/* 4.13 有序数列中插入若干个数,仍然保持有序 */#include "stdio.h" void main(){int a[100]={1,4,8,10};int i,k,x,count=4;/* i,k 循环变量, x 输入整数,count 有多少整数*/printf("\n请输入要插入的整数,输入之后按回车键,如要结束请输入-1\n"); scanf("%d",&x);while(x!=-1){/* 寻找插入位置 */for(i=0;i<count;i++)< p="">/* 找到插入位置 */if(a[i]>=x){/* 移动 */for(k=count;k>i;k--)a[k]=a[k-1];/* 插入 */a[i]=x;break;}}if(i>=count)a[i]=x;count=count+1;printf("\n插入之后的数组为:\n");for(i=0;i<count;i++)< p="">printf("%4d",a[i]);printf("\n请输入要插入的整数,输入之后按回车键,如要结束请输入-1\n"); scanf("%d",&x);}}/* 4.15 将十进制数转换成二进制数,并按位存放到数组中。
一、单选题1、若已定义: int a[]={0,1,2,3,4,5,6,7,8,9},*p=a,i; 假设0≤i≤9,则对a数组元素不正确的引用是()A.a[p-a]B.a[10]C. p[i]D.*(&a[i])正确答案:B2、假设有定义 int a=3,b=5,*pa=&a,*pb=&b;则执行如下语句后,a,b的值分别为()*pa=a+b;*pb=a+b;A.出错B.a=8,b=13C.a=13,b=13D.a=8,b=8正确答案:B3、有说明 int a[10]=[1,2,3,4,5,6,7,8,9,10},*p=a;,则数值为9的表达式是()。
A.*p+=9B.*(p+8)C. *p+=9D.*(p+9)正确答案:B4、执行char a[10]={"abcd"},*p=a;后,*(p+4)的值是()A.不能确定B."abcd"C.'\0'D.'d'正确答案:C5、若有char *a="ABCD";,则执行cout<<a的结果是()A.AB.ABC.ABCD.ABCD正确答案:D二、判断题1、假设有定义char s[100],*p=s; ,则可以用delete p;来释放p占用的内存空间。
正确答案:×2、假设有定义int a[]={10,20,30,40,50,60,70,80,90,100},*p=a;,则表达式*p+9的值为100。
正确答案:×3、假设有定义 char s1[20]="1234567" ,s2[20]={"ABCD"};,则执行strcpy(s1,s2)后,s1的内容为“ABCD”正确答案:√三、填空题1、假设有定义float d[10]={1.5, 2.0,2.5,3.0},*p=d;则表达式*++p的值为()正确答案:2.02、假设有定义 char s[]="ABCD",*p=s;则执行cout<<p+2的结果为()正确答案:CD。
1 由于多维数组与指针我们还没有讲完,所以请大家练习一维数组与指针习题 题目较多,最迟提交时间下次上机前---当场提交将获得%10的加分(以提交时间为准) 请独立完成---严禁抄袭 答案就在原题上写
一、选择题 (1)有以下程序 main() { int a[10]={1,2,3,4,5,6,7,8,9,10}, *p=&a[3], *q=p+2; printf("%d\n", *p + *q); } 程序运行后的输出结果是_B____。 A)16 B)10 C)8 D)6
(2)有以下程序 main() { int a[]={2,4,6,8,10}, y=0, x, *p; p=&a[1]; for(x= 1; x<3; x++) y += p[x]; printf("%d\n",y); } 程序运行后的输出结果是__C___。 A)10 B)11 C)14 D)15
(3)有以下程序 void sort(int a[], int n) { int i, j ,t; for (i=0; i for (j=i+1; j if (a[i] } main() { int aa[10]={1,2,3,4,5,6,7,8,9,10}, i; sort(aa+2, 5); for (i=0; i<10; i++) printf("%d,",aa[i]); printf("\n"); } 程序运行后的输出结果是_C ___。 A)1,2,3,4,5,6,7,8,9,10, B)1,2,7,6,3,4,5,8,9,10, C)1,2,7,6,5,4,3,8,9,10, D)1,2,9,8,7,6,5,4,3,10,
(4)有以下程序 void sum(int a[]) 2
{ a[0] = a[-1]+a[1]; } main() { int a[10]={1,2,3,4,5,6,7,8,9,10}; sum(&a[2]); printf("%d\n", a[2]); } 程序运行后的输出结果是_A____。 A)6 B)7 C)5 D)8
(5)有以下程序 void swap1(int c0[], int c1[]) { int t ; t=c0[0]; c0[0]=c1[0]; c1[0]=t; } void swap2(int *c0, int *c1) { int t; t=*c0; *c0=*c1; *c1=t; } main() { int a[2]={3,5}, b[2]={3,5}; swap1(a, a+1); swap2(&b[0], &b[1]); printf("%d %d %d %d\n",a[0],a[1],b[0],b[1]); } 程序运行后的输出结果是__D___。 A)3 5 5 3 B)5 3 3 5 C)3 5 3 5 D)5 3 5 3
(6)有以下程序 main() { int p[8]={11,12,13,14,15,16,17,18},i=0,j=0; while(i++<7) if(p[i]%2) j+=p[i]; printf("%d\n",j); } 程序运行后的输出结果是__C ___。 A)42 B)45 C)56 D)60
(7)有以下程序 void f(int *x,int *y) { int t; t=*x;*x=*y;*y=t; } main() { int a[8]={1,2,3,4,5,6,7,8},i,*p,*q; p=a;q=&a[7]; 3
while(p { f(p,q); p++; q--; } for(i=0;i<8;i++) printf("%d,",a[i]); } 程序运行后的输出结果是 D A)8,2,3,4,5,6,7,1, B)5,6,7,8,1,2,3,4, C)1,2,3,4,5,6,7,8, D)8,7,6,5,4,3,2,1,
(8)以下叙述中错误的是 _B____。 A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出 B)数组名代表的是数组所占存储区的首地址,其值不可改变 C)当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息 D)可以通过赋初值的方式确定数组元素的个数
(9)有以下程序 #define N 20 fun(int a[],int n,int m) { int i,j; for(i=m;i>=n;i--) a[i+1]=a[i]; } main() { int i,a[N]={1,2,3,4,5,6,7,8,9,10}; fun(a,2,9); for(i=0;i<5;i++) printf("%d",a[i]); } 程序运行后的输出结果是__C___。 A)10234 B)12344 C)12334 D)12234 (10)有以下程序 prt(int *m,int n) { int i; for(i=0;i m[i]++; 4
} main() { int a[]={1,2,3,4,5},i; prt(a,5); for(i=0;i<5;i++) printf("%d,",a[i]); } 程序运行后的输出结果是_B____。 A)1,2,3,4,5, B)2,3,4,5,6, C)3,4,5,6,7, D)2,3,4,5,1,
(11)有以下程序 main() { int a[]={1,2,3,4,5,6,7,8,9,0},*p; for(p=a;p printf("%d,",*p); } 程序运行后的输出结果是_A____。 A)1,2,3,4,5,6,7,8,9,0, B)2,3,4,5,6,7,8,9,10,1, C)0,1,2,3,4,5,6,7,8,9, D)1,1,1,1,1,1,1,1,1,,1,
(12) 有以下程序 int f(int a) { return a%2; } main() { int s[8]={1,3,5,2,4,6},i,d=0; for (i=0;f(s[i]);i++) d+=s[i]; printf("%d\n",d); } 程序运行后的输出结果是_A____。 A) 9 B) 11 C) 19 D) 21
(13) 设有定义语句 int x[6]={2,4,6,8,5,7},*p=x,i; 要求依次输出x数组6个元素中的值,不能完成此操作的语句是__D___。 A) for(i=0;i<6;i++) printf("%2d",*(p++)); B) for(i=0;i<6;i++) printf("%2d",*(p+i)); C) for(i=0;i<6;i++) printf("%2d",*p++); D) for(i=0;i<6;i++) printf("%2d",(*p)++);
(14) 有以下程序 5
#include main() {int a[]={1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL; *q=*(p+5); printf("%d %d\n",*p,*q); } 程序运行后的输出结果是_C____。 A) 运行后报错 B) 6 6 C) 6 11 D) 5 10
(15) 已有定义:int i,a[10],*p;,则合法的赋值语句是_D____。 A) p=100; B) p=a[5]; C) p=a[2]+2; D) p=a+2;
(16) 有以下程序 main() { int x[]={1,3,5,7,2,4,6,0},i,j,k; for(i=0;i<3;i++) for (j=2;j>=i;j--) if(x[j+1]>x[j]){ k=x[j];x[j]=x[j+1];x[j+1]=k;} for(i=0;i<3;i++) for(j=4;j<7-i;j++) if(x[j+1]>x[j]){ k=x[j];x[j]=x[j+1];x[j+1]=k;} for (i=0;i<3;i++) for(j=4;j<7-i;j++) if(x[j]>x[j+1]){ k=x[j];x[j]=x[j+1];x[j+1]=k;} for (i=0;i<8;i++) printf("%d",x[i]); printf("\n"); } 程序运行后的输出结果是_A____。 A) 75310246 B) 01234567 C) 76310462 D) 13570246
(17) 有以下程序段 int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b; b=p[5]; b中的值是_D____。 A) 5 B) 6 C) 8 D) 9
(18) 有以下程序 void swap1(int c[]) { int t; t=c[0];c[0]=c[1];c[1]=t; } void swap2(int c0,int c1) { int t; t=c0;c0=c1;c1=t;