1、sum=0;for (i=1;i=3,i+) for(j=1;j=5;j+) scanf(%f,g);sum+=g; ave=sum/5;printf(No.%f ave=%5.2fn,i,ave), getch();第3次上机题 1( 定义一个含有30个整型元素的数组,按顺序分别赋予从2开始的偶数;然后按顺序每5个数求出一个平均值,放在另一个数组中并输出。2( 通过赋初值按行顺序给23的二维数组赋予2、4、6、等偶数,然后按列的顺序输出该数组。3( 数组a包括10个整数,把a中所有的后项除以前项之商取整后放入数组b中,并按每行3个元素的格式输出数组b。 4( 某班有学生5人,每个人有5门成绩
2、(成绩从键盘输入),求每门课的最高分,最低分,每个人的平均分,每门课的平均分及每门课及格和不及格的人数。要求将最后的结果完整地显示在屏幕上,平均分取两位小数。第4次上机题 1.编写求最大公约数的函数,在主函数中输入要求最大公约数的两个数,使用辗转相除法求最大公约数。222.求方程ax+bx+c=0的根,用3个函数分别求当b-4ac大于零,等于零和小于零时的根,并输出结果。在主函数中输入a,b,c的值。 使用如下数据进行计算并验证:编号 a b c X1 X2 1 2 4 1 -0.2828931 -1.707107 2 1 2 1 -1.000000 -1.000000 3 2 4 3 -1.
3、000000+0.701071i -1.000000-0.701071i 3.猴子第一天摘桃若干,当天吃了一半又多吃了一个,第二天将剩下的桃子吃了一半又多吃了一个,以后每天如此,到第七天时只剩下一个桃子,分别用递推和递归法求猴子第一天摘了多少个桃子。函数练习题 练习1:以下程序的运行结果是() int a=5;int b=7; int a=4,b=5,c;c=plus(a,b);printf(“A+B=%dn”,c);plus(int x,int y) int z;z=x+y;return(z);练习2:以下程序的运行结果是() int x;x=5;cude();printf(“%dn”,x)
4、;cude() x=x*x*x;练习3:以下程序的运行结果是() int i=0; int i=5;reset(i/2); printf(“i=%dn”,i);reset(i=i/2);workover(i);printf(“i=%dn”,i);workover(int i) i=(i%i)*(i*i)/(2*i)+4);return(i);reset(int i) i=i0) return(n*try(n-2);else return(1);预处理练习题 例题1:以下叙述中不正确的是:(1)预处理命令行都必须以#号开始;() (2)在程序中凡是以#号开始的语句行都是预处理命令行;() (3)
5、C程序在执行过程中对预处理命令行进行处理;() (4)在程序的一行上可以出现多个有效的预处理命令行;() (5)使用带参的宏时,参数的类型应与宏定义时的一致;() (6)宏替换不占用运行时间,只占编译时间;() (7)在以下定义中C R是称为“宏名”的标识符;# define C R 045 (8)宏名必须用大写字母表示;(9)预处理指令只能位于C源程序文件的首部;(10)C语言的编译预处理就是对源程序进行初步的语法检查。() 例题2:在宏定义#define PI 3.14159中,用宏名PI代替一个() A)常量 B)单精度数 C)双精度数 D)字符串 例题3:程序运行结果是() #defi
6、ne ADD(x) x+x int m=1,n=2,k=3; int sum=ADD(m+n)*k;sum=%d,sum);展开:例题4:#define MIN(x,y) (x)(y)?(x):(y) main() int i=10,j=15,k;clrscr();k=10*MIN(i,j); printf(%dn,k); 展开:例题5:#define FUDGE(y) 2.84+y #define PR(a) printf(%d,(int)(a) #define PRINT1(a) PR(a);putchar(n) main() int x=2; clrscr();PRINT1(FUDGE(
7、5)*x);例题6:程序输出的结果是() #define X 5 #define Y X+1 #define Z Y*X/2 int a; a=Y;,Z);,- -a); Z展开:例题7:#define POWER(x) (x)*(x) main() int i=1;while(i(b)?(a)(c)?(a):(c):(b)(b):(c) main() int x,y,z; x=1;y=2;z=3;%d,MAX(x,y,z);,MAX(x+y,y,y+x);,MAX(x,y+z,z);指针练习题 练习题:1.读程序:xts91 演示 sub(int x,int y,int *z) *z=y-x
8、; int a,b,c;sub(10,5,&a); sub(7,a,&b); sub(a,b,&c);%4d,%4d,%4dn,a,b,c);A)5,2,3 B)-5,-12,-7 C)-5,-12,-17 D)5,-2,-7 2.读程序:xts92 演示 int a,b,k=4,m=6,*p1=&k,*p2=&m;a=p1= =&a=%dn,a);b=(-*p1)/(*p2)+7;b=%dn,b);1 A)-1 B)1 C)0 D)4 2A)5 B)6 C)7 D)10 3.下面程序应能对两个整型变量的值进行交换,以下正确的说法是( ) xts93 int a=10,b=20; printf
9、(“(1)a=%d,b=%dn”,a,b);swap(&a,& printf(“(2)a=%d,b=%dn”,a,b); swap(int p,int q) int t; t=p;p=q;q=t; A) 程序正确 B) 程序有错,只要将swap(&中的参数改为a,b即可 C) 程序有错,只要将swap( )函数中的形参p和q以及t均定义为指针(执行语句不变)即可 D)以上说法都不正确 4.以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是( ) xts95 main( ) int *p,*q,a,b; p=&a; printf(“input a:”); scanf(“%d”,*p);. A)*p表示的是指针变量p的地址 B)*p表示的是变量a的值,而不是变量a的地址 C)*p表示的是指针变量p的值 D)*p只能用来说明p是一个指针变量 例题1:已有定义 int k=2; int *ptr1,*ptr2;且ptr1和ptr2均已指向变量k,下面不能正确执行的赋值语句是( ) A)k=*ptr1+*ptr2; B)ptr2=k;C)ptr1=ptr2; D)k=*ptr1*(*ptr2); xts98 例题2:下面程序
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1