内容发布更新时间 : 2024/11/8 11:58:56星期一 下面是文章的全部内容请认真阅读。
完美WORD格式
参考代码: main() {
int table[10]={2,4,6,8,10,12,14,16,18,20}; int find=0,i,x;
printf(\请输入要找的数: \scanf(\for(i=0;i<10;i++) if(x==table[i])
{find=1;break;} if(find==1)
printf(\在table[%d]中\\n\else
printf(\没有找到数%d\\n\}
5.求一个4×4矩阵对角线元素之和。
【分析与提示】若设置矩阵行列坐标分别为i和j,则对角线元素下标满足以下条件:i==j或i+j=3。
参考代码: main() {
int a[4][4] ,i,j,sum=0; for(i=0;i<4;i++) for(j=0;j<4;j++) {
scanf(\
if(i==j||i+j==3) sum=sum+a[i][j]; }
printf(\对角线元素之和:%d\}
6.将两个二维数组对应元素加起来,存到另一个二维数组中。
1 4 10 20 b= 2 5 a= 30 40
3 6 50 60
【分析与提示】运用双重循环,把行列下标均相同的元素值相加。 参考代码: main() {
int a[3][2]={10,20,30,40,50,60}; int b[3][2]={1,4,2,5,3,6}; int c[3][2]; int i,j;
for(i=0;i<3;i++) {
专业整理 知识分享
完美WORD格式
for(j=0;j<2;j++) {
c[i][j]=a[i][j]+b[i][j]; printf(\}
printf(\} }
7.找出一个二维数组中的鞍点。
【分析与提示】所谓鞍点指该位置上的数在该行上最大,在该列上最小。注意并不是所有的二维数组都有鞍点。
参考代码: #define N 3 #define M 3 main() {
int a[M][N],(*p)[N]; /* p 为指向一维数组的指针*/ int max,maxi,maxj; int i,j,k,m,n;
int flag1=0,flag2=0; p=a;
printf(\给数组输入数据:\\n\for(i=0;i scanf(\for(i=0;i max=*p[i]; for(j=0;j {max=*(p[i]+j);maxj=j;} for(k=0,flag1=1;k printf(\第%d行,第%d列的%d是鞍点!\\n\flag2=1; } } if(!flag2) printf(\矩阵中无鞍点!\} 8.用指针数组给一个整型二维数组输入数值,并求出各行元素的和。 【分析与提示】用二维数组a各行的首地址赋予指针数组p的各个元素,通过此循环嵌 专业整理 知识分享 完美WORD格式 套,为各个数组元素赋值。 main( ) { int a[3][3],*p[3],i,j,sum; for(i=0;i<3;i++) p[i]=a[i]; /*把二维数组a各行的首地址赋予指针数组p的各个元素*/ for(i=0;i<3;i++) /*通过此循环嵌套,为各个数组元素赋值*/ for(j=0;j<3;j++) scanf(\printf(\和分别为:\ for(i=0;i<3;i++) /*通过此循环嵌套,求各行数组元素的和*/ { sum=0; for(j=0;j<3;j++) sum=sum+*(p[i]+j); printf(\分行输出每一行的和值*/ } } 9.用指针实现合并两个字符串。 【分析与提示】把第二个字符串中字符逐个赋值给第一个字符串,需要注意的是两个字符数组下标变量的初值不同。 参考代码: #include char s1[40],s2[20],*p1,*p2; int i,j,n; p1=s1;p2=s2; printf(\输入第一个字串:\gets(p1); printf(\输入第二个字串:\gets(p2); n=strlen(p1); for(i=n,j=0;*(p2+j)!='\\0';i++,j++) *(p1+i)=*(p2+j); *(p1+i)='\\0'; printf(\输出合并后字串为:\puts(p1); } 10.从输入的5个字符串中找出最长的一个字符串输出。 【分析与提示】运用测试字符串长度函数strlen,进行串比较。 参考代码: # include 专业整理 知识分享 完美WORD格式 # include char a[5][80],*sp; int i; for(i=0;i<5;i++) gets(a[i]); for(i=0;i<5;i++) if(strlen(sp) 第7章 函数与指针 一.运行程序写结果 1.下列程序运行的结果为 。 int x1=30,x2=40; main() { int x3=10, x4=20; swap(x3,x4); swap(x2,x1); printf(\} swap(int x,int y) {x1=x;x=y;y=x1;} 【提示】本题考查全局变量的作用范围。 【解答】 10,20,40,40 2.下列程序运行的结果为 。 #include extern int x,y; int a=15,b=10; x=a-b;y=a+b; } int x,y; main() { int a=7,b=5; x=a+b;y=a-b; num(); printf(\} 专业整理 知识分享 完美WORD格式 【分析与提示】用extern进行外部变量说明。 【解答】5,25 3.下列程序运行的结果为 。 main() {int a[5]={5,10,-7,3,7},i,j,t; sort(a); for(i=0; i<=4; i++) printf(\} sort(int a[]) {int i,j,t; for(i=0; i<4; i++) for(j=0; j<4-i; j++) if(a[j]>a[j+1]) {t=a[j]; a[j]=a[j+1]; a[j+1]=t;} } 【提示】该程序的功能是将5个数由小到大进行排序。 【解答】 -7 3 5 7 10 4.下列程序运行的结果为 。 #define SQR(x) 2*x+1 main() {int a,b,c; a=3;b=2;c=1; a*=SQR(b+c)/ SQR(b+c); printf(\} 【提示】a*=SQR(b+c)/ SQR(b+c);宏展开为a*=2*b+c+1/2*b+c+1; 【解答】21 5.下列程序运行的结果为 。 void swap1(int x,int y) {int t; t=x;x=y;y=t; return; } void swap2(int *x,int *y) {int t; t=*x;*x=*y;*y=t; return; } main() {int x=3,y=5; printf(\swap1(x,y); printf(\ 专业整理 知识分享