资源描述
高级语言(C语言)程序设计实验指导书
第一章 前言
一、C语言实验的目的
学习《C程序设计》课程应当熟练地掌握程序设计的全过程,即独立编写源程序、独立上机调试、独立运行程序和分析结果,不能满足于能看懂书上的程序。上机实验的目的,绝不仅仅是为了验证所编写的程序是否正确,而是为了:
1.加深对讲授内容的理解,尤其是一些语法规定。通过实验来掌握语法规则是行之有效的方法。
2.熟悉所用的操作系统和相应的上机环境。
3.学会上机调试程序,根据出错信息掌握修改程序的方法。
4.通过调试完善程序。
二、C语言实验前的准备工作
1.了解所用的上机环境(包括C编译系统)的性能和使用方法。
2.复习和掌握与本实验有关的教学内容。
3.准备好上机所需的程序,不要完全复制或抄写别人的程序去上机。
4.对程序中出现的问题应事先估计,对程序中自己有疑问的地方应先作上记号,以便上机时注意。
5.准备好调试程序和运行程序所需的数据。
三、C语言实验的步骤
上机实验原则上应一人一组,独立实验(如果程序太大,也可以2—3人一组)。上机过程中出现的问题,除了是系统的问题以外,不要轻易举手问老师。尤其对“出错信息”,应善于分析判断,找出出错的行,然后检查该行或其上一行。上机实验一般应包括以下几个步骤:
1.双击桌面Visual C++快捷方式进入Visual C++,或通过执行“开始=>程序=>
Microsoft Visual Studio 6.0=> Microsoft Visual C++6.0”。
2.单击“文件”菜单的“新建”命令。
3.在打开的“新建”对话框中选择“文件”标签。
4.选择C++ Source File,选择文件保存位置,然后在文件输入栏中输入文件名。如图所示:
5.输入源程序。
6.编译程序:按“Ctrl+F7”或通过“编译”菜单中的“编译”命令,或使用工具栏中的相应工具进行编译 编译 连接 运行
若程序有错则找到出错行修改程序。
7.连接:若程序没有语法错误,则可按功能键F7或执行“编译”菜单中的“构件”命令或通过工具栏中的相关工具(编译工具右边工具),进行连接生成可执行文件。
8.运行程序:按组合键“Ctrl+F5”,或通过“编译”菜单中的执行命令,或通过工具栏中的“!”工具运行程序。
四、写好C语言实验报告
实验报告应包括以下内容:
1.实验目的。
2.实验内容。
3.程序清单。
4.运行结果。
5.对运行结果的分析,以及本次调试程序所取得的经验。
五、C语言实验任务与时间安排
实验序号
实验内容
拟实验时间
实验
形式
1
Visual C++ 6.0集成环境的使用
2
验证性
2
基本数据类型与输入输出
2
验证性
3
顺序结构程序设计
2
验证性
4
选择结构程序设计
2
验证性
5
循环结构程序设计
2
验证性
6
数组
5
设计性
7
函数
5
设计性
9
指针
4
设计性
10
结构体
4
设计性
12
文件
2
验证性
第二章 实验
实验一 Visual C++ 6.0集成环境的使用
1.1 实验目的
1.掌握VC 6.0集成开发环境的使用方法。
2.了解C语言程序从编辑、编译、连接到运行的全过程
3.掌握C语言程序的结构特征与书写规则
1.2 实验要求
1.实验学时:2学时。
2.使用Visual C++6.0环境编写和调试程序。
3.所有上机题应通过调试,并获得正确的结果。
4.对程序中重要的内容作必要的注释。
1.3 实验准备
1.阅读Visual C++ 6.0集成环境的相关材料。
2.复习C语言程序基本结构与书写规则的有关内容。
1.4 实验内容
1. 上机调试
(1)请输入以下程序,练习在Visual C++6.0环境下程序的编辑、编译、连接和运行。
#include<stdio.h>
void main()
{
printf("这是我的第一个程序\n");
}
(2)请说明以下程序的功能,然后上机验证。
#include<stdio.h>
void main()
{
int a,b,c;
printf("Please input a,b:");
scanf("%d%d",&a,&b); /*注意,输入数据时,数据间用空格分隔*/
c=a+b;
printf("%d+%d=%d\n",a,b,c);
}
(3)请说明以下程序的功能,然后上机验证。
#include<stdio.h>
float ave(float y1,float y2,float y3)
{
float y;
y=(y1+y2+y3)/3;
return y;
}
void main()
{
float x,y,z,a;
scanf("%f,%f,%f",&x,&y,&z); /* 注意,输入数据时,数据间用逗号分隔 */
a=ave(x,y,z);
printf("%f\n",a);
}
2.实验思考
(1)输入并运行下面的程序。
#include<stdio.h>
void main()
{
char c,h;
int i,j;
c='a';
h='b';
i=97;
j=98;
printf("%c%c%c%c\n",c,h,i,j);
printf("%d%d%d%d\n",c,h,i,j);
}
(2)运行下列程序并分析出现的信息提示。
#include<stdio.h>
void main()
{
int i=23,s;
s=i+j;
printf("s=%d\n",s);
}
实验二 基本数据类型与输入输出
2.1 实验目的
1.掌握C语言基本数据类型以及常量的表示方法、变量的定义与使用规则。
2.掌握C语言的算束运算、逗号运算的运算规则与表达式的书写方法。
3.掌握各种输入输出函数的使用方法。
2.2 实验要求
1.实验学时:2学时。
2.使用Visual C++6.0环境编写和调试程序。
3.所有上机题应通过调试,并获得正确的结果。
4.对程序中重要的内容作必要的注释。
2.3 实验准备
1.复习数据类型和运算符的有关概念。
2.复习各种类型常量的表示方法以及变量的概念与命名规则。
3.复习输入输出函数各种格式符的含义与使用规则。
2.4 实验内容
1.上机调试(需作出必要的注释!)
(1) 请说明以下程序的功能,然后上机验证。
#include<stdio.h>
void main()
{
printf("\t*\n");
printf("\t\b***\n");
printf("\t\b\b*****\n");
}
(2) 请说明以下程序的功能,然后上机验证。
# include<stdio.h>
void mian()
{
int x=010,y=10,z=0x10;
char c1='M',c2='\x4d',c3='\115',c4=77 ,c;
printf("x=%o,y=%d,z=%x\n",x,y,z);
printf("x=%d,y=%d,z=%d\n",x,y,z);
printf("c1=%c,c2=%c,c3=%c,c4=%c\n",c1,c2,c3,c4);
printf("c1=%d,c2=%d,c3=%d,c4=%d\n",c1,c2,c3,c4);
c=c1+32;
print("c=%c,c=%d\n",c,);
}
(3) 请说明以下程序的功能,然后上机验证。
#include<stdio.h>
void main()
{
int m=18,n=13;
float a=27.6,b=5.8,x,;
x=m/2+n*a/b+1/4;
printf("%f\n",x);
}
(4)当输入是8.5,2.5,5,分析程序运行结果,并上机验证。
#include<stdio.h>
void main()
{
float x,y;
Int z;
scanf("%f,%f,%d,&x,&x,&z);
y=x-z%2*(int)(x+17)%4/2;
printf("x=%f,y=%f,z=%d\n",x,y,z);
}
2.填空题
(1) 以下程序输入3个整数值给a,b,c,程序把b中的值给a,把c中的值给b,把a中的值给c,交换后输出a,b,c的值。例如,输入a=10,b=20,c=30,交换后a=20,b=30,c=10。
#include<stdio.h>
void main()
{
int a,b,c,____________;
printf("Enter a,b,c: ");
scanf("%d%d",_________);
______________;
printf("%d,%d,%d",a,b,c);
}
(2) 以下程序输入一个大写字母,要求输出对应的小写字母。
#include<stdio.h>
void main()
{
char upperc,lowerc;
upperc=_____________';
lowerc=_____________;
printf("小写字母");putchar(upperc);
printf("大写字母");putchar(lowerc);putchar('/n');
}
3..思考题
(1)分析程序,写出运行结果,并上机验证
#include<stdio.h>
void main()
{
char c1='a',c2='b',c3='c',c4='\101',c5=101;
printf("a%c b%c\tc%c\tabc\n",c1,c2,c3);
printf("\t\b%c%c".c4,c5);
c4=65535;
c5=-1.2345;
printf ("%d%d",c4,c5);
}
(2) 分析程序,写出运行结果,并上机验证
#include<stdio.h>
void main()
{
int i=3,j=5,k,l,m=19,n=-56;
k=++i;
l=j++;
m=i++;
n-=--j;
printf("%d,%d,%d,%d,%d,%d,\n",ij,k,l,m,n)
}
(3) 分析程序,写出运行结果,并上机验证
#include<stdio.h>
void main()
{
float r,h,pi=3.1415926;
float c0,s0,s,v;
printf("input r,h(m):");
scanf("%f,%f",&r,&h);
c0=2*pi*r;
s0=c0*h+2*s0;
s=c0*h+2*s0;
v=pi*r*r*h;
printf("c0=%.2f(m)\ns0=%.2f\ns(m20\nv=%.2f(m3)\n",c0,s0,s,v);
}
实验三 顺序结构程序设计
3.1 实验目的
1.熟练掌握格式输入与格式输出函数与各种格式符的使用;
2.掌握各类数据输入/输出的实现方法;
3.学习完成简单的顺序结构程序设计。
3.2 实验要求
1.实验学时:2学时。
2.使用Visual C++6.0环境编写和调试程序。
3.所有上机题应通过调试,并获得正确的结果。
4.对程序中重要的内容作必要的注释。
3.3 实验准备
1.复习格式输入、输出语句的使用。
2.复习各类输入、输出语句。
3.复习简单的顺序程序设计的基本方法。
3.4 实验内容
1.上机调试(需作出必要的注释!)
(1)输入三角形的三边长,求三角形面积。为简单起见,设输入的三边长a、b、c能构成三角形。从数学知识已知求三角形面积的公式为area=s(s-a)(s-b)(s-c), 其中s=(a+b+c)/2
#include <math.h>
main()
{
float a,b,c,s,area;
scanf("%f,%f,%f",&a,&b,&c);
s=1.0/2(a+b+c);
area=sqrt(s(s-a)(s-b)(s-c));
printf("a=%7.2f, b=%7.2f, c =%7.2f, s =%7.2f\n",a,b,c,s);
printf("area=%7.2f\n",area);
}
(2)求ax2+bx+c=0方程的根。a,b,c由键盘输入,设b2-4ac>0。众所周知,一元二次方程式的根为x1=-b+b2-4ac2ax2=-b-b2-4ac2a,可以将上面的分式分为两项:p=-b2a ,q=b2-4ac2a,x1=p+q, x2=p-q
#include <math.h>
main();
{
float a,b,c,disc,x1,x2,p,q;
scanf("a=%f,b=%f,c=%f",&a,&b,&c);
disc=b*b-4*a*c;
p=-b/(2*a);
q=sqrt(disc)/(2*a);
x1=p+q; x2=p-q;
printf("\n\nx1=%5.2f\nx2=%5.2f\n",x1,x2);
}
2.填空题
(1)已有如下定义和输入语句,若要求a,b,c1,c2的值分别为5、6、A和B,当从第一列开始输入数据时,正确的数据输入方式是 ______ (<CR>表示回车)。
int a,b;
char c1,c2;
scanf("%d%c%d%c",&a,&c1,&b,&c2);
A) 5 A 6 B<CR> B) 5 A6B<CR> C) 5A6B<CR> D) 5A6 B<CR>
(2)以下说法正确的是_______。
A)输入项可以为一个实型常量,如scanf(“%f”,3.5);
B)只有格式控制,没有输入项,也能正确输入,如scanf(“a=%d,b=%d”);
C)当输入实型数据时,格式控制部分应规定小数点后的位数,如scanf(“%4.2f”,&f);
D)当输入数据时,必须指明地址,如scanf(“%f”,&f);
E)可以采用不同的格式符,实现对一个实型数据以八进制或十六进制形式输入/输出。
F)整型数据不能使用%f或%lf格式符。
(3)若a是int型变量,则表达式(a=5*6,a*3),a+8的值是 _________ 。
(4)若有定义:int b=7; float a=2.5,c=4.7; 则表达式 a+(int)(b/3*(int)(a+c)/2)%4的值为_____。
(5)输出长整型数据使用格式符_______,输出无符号的整数用格式符_____ ,以指数形式输出单精实数用格式符______。
(6)下面程序运行时输入:10 11<回车>,输出__________。
#include<stdio.h>
void main()
{int a,b;
scanf("%o%x",&a,&b);
printf("a=%d,b=%d\n",a,b);
}
(7)下面程序段执行时,怎样输入才能让a=10,b=20 ?__________________
int a,b;
scanf("a=%d,b=%d",&a,&b);
(8)若a和b均为int变量,以下语句的功能是_____________。
a+=b;b=a-b;a-=b;
(9)在scanf函数调用中,可以在格式字符和%之间加一星号*,它的作用是________。
(10)a++、++a、a=a+1都能实现使变量a的值增1,与之等效的表达式还有__________
3.编程题
下面程序功能:键盘输入一个三位数,输出逆序后的数。例如,输入236,输出632。程序中有多处错误,改正后在机器上调试通过。
#include<stdio.h>
void main()
{int x,int y;
int a,b,c;
a=x/100;
b=x/10%10;
c=x%10;
printf("Please input a num:");
scanf("%d",&x);
y=100c+10b+a;
printf("y=%d\n",y);
4.思考题
如果输入的数据可以是任意大小的数,并不限制一定是一个三位数,怎样才能将该数逆序并输出?
实验四 选择结构程序设计
4.1 实验目的
1.掌握C语言的关系表达式和逻辑表达式的运算规则与书写方法。
2.掌握各种类型的if语句和switch语句的使用方法。
3.熟悉选择结构程序设计的方法。
4.2 实验要求
1.实验学时:2学时。
2.使用Visual C++6.0环境编写和调试程序。
3.所有上机题应通过调试,并获得正确的结果。
4.对程序中重要的内容作必要的注释。
4.3 实验准备
1.复习关系运算符与关系表达式、逻辑运算符与逻辑表达式的相关内容。
2.复习if语句和switch语句的格式与执行过程。
4.4 实验内容
1.上机调试(需作出必要的注释!)
(1)先静态分析一下程序的运行结果,然后上机验证。
#include <stdio.h>
void main()
{
int a=3,b=4,c=5,x,yz;
x=c,b,a;
y=!a+b<c&&(b!=c);
z=c/b+((float)a/b&&(float)(a/c);
printf("\n x=%d,y=%d,z=%d",x,y,z);
x=a||b--;
y=a-3&&c--;
z=a-3&&b;
printf("\n%d,%d,%d,%d,%d,%d",a,b,c,x,y,z);
}
(2)输入三个整数x,y,z,请把这三个数由小到大输出。(我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。)
#include <stdio.h>
void main()
{
int x,y,z,t;
scanf("%d%d%d",&x,&y,&z);
if (x>y)
{t=x;x=y;y=t;} /*交换x,y的值*/
if(x>z)
{t=z;z=x;x=t;}/*交换x,z的值,此时则x获最小值*/
if(y>z)
{t=y;y=z;z=t;}/*交换z,y的值*/
printf("small to big: %d %d %d\n",x,y,z);
}
2.编程题
(1)已知某公司员工的保底薪水为500,某月所接工程的利润profit(整数)与利润提成的关系如下(单位:元):
profit≤1000 没有提成
1000< profit≤2000 提成10%
2000< profit≤5000 提成15%
5000< profit≤10000 提成20%
10000< profit 提成25%
请打印员工实际薪水。
#include <stdio.h>
void main()
{
int grade,profit;
float salary=500;
printf("Input profit:");
scanf("%d",&profit);
grade=(profit-1)/1000;
switch(grade)
{case 0: break;
case 1: salary+=profit*0.1;break;
case 2:
case 3:
case 4: salary+=profit*0.15;break;
case 5:
case 6:
case 7:
case 8:
case 9: salary+=profit*0.2;break;
default: salary+=profit*0.25;
}
printf("salary=%.0f\n",salary);
}
请按一下步骤实习思考:(调试并注释)
①分析程序中的switch结构。重点学习case标号的设计,本例将利润与提成的关系转换成整数的方法是,由于提成的变化点都是1000的整数被(1000、2000、5000、……),同时为了解决相邻两个区间重叠问题,因此采用将利润porfit先减1(最小增量),然后再整除1000.
②输入并运行程序,用不同的利润去检验运行结果,如果结果不正确,请找出原因,改正后重新运行,直到结果正确为止。
③ 若没有break; 结果如何?
3.思考题
已知银行整存整取存款不同期限的月息利率分别为:
0.63% 期限1年
0.66% 期限2年
月息利率= 0.69% 期限3年
0.75% 期限5年
0.84% 期限8年
要求输入存钱的本金和期限,求到期时能从银行得到的利息与本金的合计。
实验五 循环结构程序设计
5.1 实验目的
1.掌握语句、语句和语句实现循环的使用方法。
2.掌握循环语句实现一些常用的算法。
3.熟悉程序的跟踪调试技术。
5.2 实验要求
1.实验学时:2学时。
2.使用Visual C++6.0环境编写和调试程序。
3.所有上机题应通过调试,并获得正确的结果。
4.对程序中重要的内容作必要的注释。
5.可以用断点调试法完成部分上机调试题,并观察运行过程。
5.3 实验准备
1.复习while语句、do…while语句、fo语句、continue语句和beeak语句的格式与执行过程。
2.复习一些常用的算法,并总结它们的设计方法和思路。
3.阅读“程序调试与测试”的相关内容。
5.4 实验内容
1.上机调试(需作出必要的注释!)
(1)求n!
提示:(1)注意结果的取值范围!
(2)3中循环方式由你选择!也可以用两种方法做。
(3)程序的简单验证:正确结果应是:
3!=6。5!=120。8!=40320 注可用单步跟踪(F10)观测循环语句的执行过程。
(4)提示案例:(例3.7) 用while语句来实现1*2*3*…*10的乘积。
#include<stdio.h>
void main()
{
int i=1,mul=1;
while (i<=10) /*用while 语句求1*2*3*…*10的乘积*/
{
mul=mul*i;
i++;
}
printf("\n%ld\n", mul);
}
(2)求5个数的和及平均值的程序代码如下:
#include<stdio.h>
void main()
{
int a;
float b,sum;
for(a=1,sum=0.0;a<6;a++)
{
printf(“please input NO:%d\n”,a);
scanf("%f",&b); /*从键盘上输入5个数*/
sum+=b; /*求输入的5个数的加和*/
}
printf("average=%f\n",sum/5);/*求5个数的平均值,并将其输出*/
}
(3)从键盘输入10个数,求出最大值及最小值。
#include<stdio.h>
void main()
{
int a,max,min,i; //输入整数
b=0;
for(i=0;i<10;i++)
{
printf("INPUT");
scanf("%d",&a);
if(a>max)
max=a;
if(a<min)
min=a;
}
printf("in you inout digit the bigist is: %d",max);
printf("in you inout digit the 最小值 is: %d",min);
}
2.编程题
抓交通肇事者。一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说牌照的前两位数字是相同的;乙说牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说四位的车号刚好是一个整数的平方。请根据以上线索求出肇事者的车号。
提示:(1)车牌号为4位。
实验六 数组
6.1 实验目的
1.掌握数组的定义、初始化及数组元素的引用方法。
2.掌握数组的赋值和输入输出方法。
3.掌握与数组有关的算法,如排序、查找、插入、删除和矩阵运算等。
4.掌握字符数组和字符串函数的使用。
6.2 实验要求
1.实验学时:5学时。
2.使用Visual C++6.0环境编写和调试程序。
3.所有上机题应通过调试,并获得正确的结果。
4.对程序中重要的内容作必要的注释。
5.可以用断点调试法完成部分上机调试题,并观察运行过程。
6.3 实验准备
1.复习数组的定义、初始化以及数组元素的引用形式,理解数组的作用。
2.学习使用循环语句控制数组元素下标的变化,实现对数组元素的处理。
3.复习并理解与数组有关算法的基本思路。
4.复习字符数组的使用方法。
6.4 实验内容
1.上机调试(需作出必要的注释!)
(1)运行下面的C程序,该运行结果说明什么?
main( )
{ int num[5]={1,2,3,4,5};
inti i;
for(i=0;i<=5;i++)
printf("%d",num[i]);
}
(2)请说明以下程序的功能,对加粗部分进行注释,然后上机验证。
#include <stdio.h>
void main()
{
int i,t,a[10]={0,1,2,3,4,5,6,7,8,9};
t=a[9];
for(i=9;i>0;i--)
a[i]=a[i-1];
a[0]=t;
praint("\n");
for(i=0;i<10;i++)printf("%d",a[i]);
}
(3)数组a存放10位学生成绩,请说明以下程序的功能,对加粗部分进行注释,然后上机验证。
#include<stdio.h>
void main()
{
int i;
float aver,a[10]={78,89,65,72,68,60,80,75,83,70};
sum=a[0];
max=min=a[0];
for(i=1;i<10;i++)
{
if(a[i]>max)
max=a[i];
else if (a[i<min])
min=a[i];
sum=sum+a[i];
}
aver=sum/n;
printf(“平均分=%f, 最高分%f, 最低分%f\n”,aver,max,min);
}
(4)请说明以下程序的功能,对加粗部分进行注释,然后上机验证。
#include"stdio.h"
void main()
{
int I,j,t,a[3][3]={100,101,102,45,46,47,77,78,79};
for(i=0;i<3;i++)
for(j=0;j<i;j++)
{
t=a[i][j];a[i][j]=a[j][i];a[j][i]=t;
}
for(i=0;i<3;i++)
{
printf(”\n”);
for(j=0;j<3;j++) printf(” %d ”,a[i][j]);
}
}
(5)数组a存放一个方阵数据,请说明以下程序的功能,对加粗部分进行注释,然后上机验证。
#include"stdio.h"
void main()
{
int a[100][100],i,j,x,y,max,sum,c,n;
printf("输入方阵的行列数:");
scanf("%d",&c);
if(c<=1) printf("输入错误!\n");
else
{
for(i=0;i<=c-1;i++)
for(j=0;j<=c-1;j++)
scanf("%d",&a[i][j]);
max=a[0][0];
x=0,y=0;
for(i=0;i<=c-1;i++)
for(j=0;j<=c-1;j++)
if(a[i][j]>max)
{
max=a[i][j];
x=i;y=j;
}
printf("这个方阵中最大的数是%d\n",max);
}
sum=0;
for(n=0;n<=c-1;n++)
sum=sum+a[n][n];
printf("这个方阵主对角线的和为%d\n",sum);
}
(6)请说明以下程序的功能,对加粗部分进行注释,然后上机验证。
#include"stdio.h"
void main()
{
char a[100];
int i;
gets(a);
for(i=0;a[i]!=’\0’;i++)
{
if(a[i]>=’A’&&a[i]<=’Z’)a[i]+=32;
else if(a[i]>=’a’&&a[i]<=’z’)a[i]-=32;
}
puts(a);
}
(7)请说明以下程序的功能,对加粗部分进行注释,然后上机验证。
#include"stdio.h"
void main()
{
char a[]=”ab12cd34ef”;
int i,j;
for(i=j=0;a[i];i++)
if(a[i]>=’a’&&a[i]<=’z’)a[j++]=a[i];
a[j]=’\0’;
printf(“%s\n”,a);
}
2.填空题
(1)以下程序的功能是:若已定义:int a[11],i;:在第一个循环中给前10个数组元素依次赋1、2、3、4、5、6、7、8、9、10;在第二个循环中使a数组前10个元素中的值对称折叠,变成1、2、3、4、5、5、4、3、2、1,然后输出。请在程序的下划线处填空。
#include"stdio.h"
main()
{ int a[10],i;
for(i=1;i<=10;i++) =i;
for(i=1;i<=10;i++)
printf(" %d,", );
for(i=1;i<=5;i++) =a[i];
for(i=1;i<=10;i++)
printf(" %d,", );
}
(2)以下程序的功能是:求出数组x中各相邻两个元素的和依次存放到a数组中,然后输出。请在程序的下划线处填空。
main()
{ int x[10],a[9],i;
for(i=0;i<10;i++) scanf("%d",&x[i]);
for( i=1; i<10;i++)
a[i-1]=x[i]+______;
for(i=0;i<9;i++ ) printf("%d",a[i] ) ;
printf("\n" );
}
(3)以下程序的功能是进行方阵的转置。在程序的下划线处填空。
#include <stdio.h>
void main()
{
int i,j,t,a[4][4];
printf("\n input a:");
for(i=0;i<4;i++)
for(j=0;j<4;j++)scanf("%d",&a[i][j]);
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{t=a[i][j];
;
a[j][i]=t;}
for(i=0;i<4;i++)
{ printf("\n");
for(j=0;j<4;j++)
printf("%5d",a[i][j]);
}
(4)若要按以下形式输出数组num右上半三角
1 2 3 4
6 7 8
11 12
16
请在程序的下划线处填空,满足以上要求。
main()
{
int num[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,1
展开阅读全文