第1次 (2.14)
无书面作业 (要求复习第一章,预习第三章3.1、 3.2、 附录A)
第2次 (2.16)
1.下列哪些可作为C语言合法的变量名,那些是非法的变量名?
a3B 3ab a+b -b $ _book_name No-1 if e_2 ok?
2.计算下列c语言整型常量的十进制值:
0106 -027 01000 0xfa -0X2B3
3.下列有符号十进制整数若用二进制表示,分别至少要用多少位(bit)?
1 -2 1024 -210 231-1 -231
第3次 (2.21)
1.下列常量中哪些合法的C常量,那些是非法的?对合法的C常量指出其类型(整型、浮点型、字符型或字符串型)。
-0.0 23 -0x2a1 0x7g e3 3.e-5 '\\n' 'x-y' '=' 12.5e2
"1055" 3+5 2E5 0x2.5b ffff 2e3.5 12.34e 5.5e0
2.给出下面算术表达式的值:
(1)x+a%3*(int)(x+y)%2/4 (设x=2.5, a=7, y=4.7)
(2) (a+b)/2+(int)x%(int)y (设a=2, b=3, x=11.5, y=3.5)
(3) ++m*n++ (设m=4, n=2)
3.用c语言的表达式表示下列数学式子:( 设a, b, c, d, x, y为float型变量)
(1)
(2)
(3) [3(x+y) a+1](a-1)
4.做好实验一的准备。
第4次 (2.23)
1.设a为int类型变量,原来的值为12,下面各赋值语句执行后a的值分别是多少?
(1)a+=a;
(2)a-=2;
(3)a*=2+3;
(4)a/=a+a;
(5)a%=(n%=2); (设n的值为5)
(6)a+=a-=a*=a;
第5次 (2.28)
1.做好实验二的准备。
第6次 (3.1)
1.教材P84 7 (编写效率尽可能高的程序)
2.编程:输入秒数,将它转换成用小时、分钟、秒来表示。如,输入7278秒,输出2小时1分18秒。
第7次 (13.6)
1.教材P111 3
2.用C语言的逻辑表达式表示下列命题:
(1)a小于b或小于c
(2)a和b都大于c
(3)a和b中至少有一个小于c
(4)a是非负整数
(5)a是奇数(设a为整型的)
(6)a不能被b整除(设a和b均为整型的)
3.编程由键盘输入三个整数,求其中的最小值。
第8次 (3.8)
1.编写程序求下面函数的值(x的值由键盘输入):
2.教材P113 8(设百分制成绩为整数,要求编程用if语句实现)
3.求以下程序的运行结果:
(1) (2)
#include int main() int main() { int a,b,c,x; { a=b=c=0; int x=10,y=20,z=30; x=35; if(x>y) x=y; y=z; z=x; if (!a) x--; if(x>=z) else if (b) x++; if(y else x+=4; printf(“x=%d,y=%d,z=%d\\n”,x,y,z); printf(“x=%d\\n”,x); return 0; return 0; } } 4.做好实验三的准备。 第9次 (3.20) 1.教材P113 4.10(编写两个程序,分别用if 语句和 switch语句实现。) 第10次(3.22) 1.编程从键盘输入n 个学生某门课程的成绩(用实数表示),求平均分,并分别统计其中及格和不及格的人数(成绩>=60的为及格)。要求用while或do-while语句实现。 2.求下面和式的值: 3. 做好实验四的准备。 第11次(3.27) 1. 教材P140 5(要求输入n和a) 2. 编程输入正整数n,求1~n范围内所有满足如下条件的整数x:x能被x的各位之和整除。例如,42的各位之和为6,42被6整除,所以42为符合上述条件的整数。 第12次 (3.29) 1.教材P141 13 2.编程输出如下形式的图形:(要求输入n值,输出n行图形) * *** ***** ******* 第13次 (4.1) 1.教材P168 5(要求程序中只定义一个数组) 2. 输入n个整数到一个数组a中,然后任意输入一个整数x,在数组a 中查找整数x,若存在则输出其在a 中第一次出现的位置(下标),否则输出none。 第14次 (4.5) 1.教材P169 8(设每行、每列中值不重复,若存在鞍点,则输出鞍点的值及其位置,否则,输出不存在鞍点的信息)。 2.输入某企业2000~2009年每年12个月份的产值,求10年中平均产值最高的月份和年总产值最高的年份。 3.做好实验五的准备。 第15次 (4.10) 1.编程输入一个字符串(允许字符串中含有空格),求其长度。(不能调用库函数strlen) 2.编程输入一个字符串到一个字符数组s2中(允许字符串中含有空格),然后将s2中的字符串拷贝到字符数组s1中,并输出s1中的字符串。(不能调用库函数strcpy) 第16次 (4.12) 1.教材P169 14 2.编程从键盘输入n个字符串,求其中的最小字符串。 第17次 (4.17) 无书面作业 第18次 (4.24) 1.编程求一个正整数的素数因子个数。要求在主函数中输入正整数和输出结果,其余功能用函数实现。 2. 编程利用公式 求组合的值,要求在主函数中输入数据m,n和输出结果,求阶乘和组合值分别用两个函数实现。 第19次 (4.26) 1.教材P219 13 2.教材P141 12 要求用递归方法求解。 第20次 (5.3) 1. 教材P218 7 (要求在主函数中输入和输出结果) 2. 教材P218 9 3. 做好实验六的准备。 第21次 (5.8) 1. 求一个n行m列的二维数组的每一列的最大值,要求二维数组的输入、求各列最大值和输出结果分别用一个函数实现,二维数组的行数和列数在主函数中输入。 2.补充题:写出下列程序的输出结果: #include int x=1,y=2; void sub(int y) { x++; y++; printf("sub:%d,%d\\n",x,y); } void fun(int p) { int y=6; x+=p; x+=y++; printf("fun:%d,%d\\n",x,y); } int main( ) { int x=5; sub(x); y+=++x; printf("main:%d,%d\\n",x,y); fun(y); return 0; } 第22次 (5.10) 1.写出下列程序的输出结果: (1) (2) #include void main() void main() { { int a,b; int a,b,c; int *p=&a; int *p,*q; a=1; b=5; a=10; b=20; (*p)++; p=&a; q=&b; printf("%d,%d,%d\\n",a,b,*p); c=(*p+1)+(*q+2); p=&b; printf("%d+%d=%d\\n",*p+1,*q+2,c); *p=a+b; a+=5; b+=5; *p-=2; *q+=c; printf("%d,%d,%d\\n",a,b,*p); printf("%d,%d,%d,%d,%d\\n",a,b,c,*p,*q); } } 2.编程用指针实现输入三个整数,求其中的最大值。 第22次 (5.15) 1. 写出下面程序的输出结果: #include void main() { int a[7]={7,1,6,2,3,5},*p,*q; p=a; q=a+5; *(p+3)+=2; if (*(p+3)+2>*(q-1)) *(++q)=0; while(*p) printf("%d\\n",*p++); } 2.编写程序利用指针求一个正整数的不等于其本身和1的最大因子及最小因子。要求定义一个函数求最大和最小因子,在主函数中输入整数和输出结果(包括无解的结果)。 第23次 (5.17) 下面两题要求用指针法引用数组元素。 1.编程求一个一维数组中的最大值和最小值。 2.编程输入一组整数求其中出现次数最多的整数及其出现次数。(要求用函数) 第24次 (5.22) 1. 已知数组a中有n个按升序排列的整数,数组b中有m个按升序排列的整数,编写程序,将a与b中的所有整数按升序存入数组c中。(要求用指针、函数实现。) 2. 输入一个字符串,构成一个新的字符串将原字符串中所有小写字母都转换为相应的大写字母。要求保留原字符串。(要求用指针、函数实现) 3.做好实验七的准备。 第25次 (5.24) 1. 输入一个字符串s和两个正整数n和m,将s中从第n个字符起的m个字符删除,输出所得到的新字符串。若s中不存在由n和m指定位置的m个字符,则输出出错信息。(要求用指针、函数实现) 2. 输入一个表示正十六进制数的字符串,求相应的十进制整数。要求在主函数中输入和输出数据,用函数求转换结果。(要求指针和函数实现) 第26次 (5.29) 1.编程用指针方法处理:输入n个字符串存入一个二维字符数组,找出其中最长的一个字符串。 2.设有如下定义: char s[10]="string", c[5][10]={ "red ; char t, *p, (*q)[10], **h, *r[5]={ "red; int k=2, *ip; void *vp; (i) 指出下列赋值语句中哪些是正确的,哪些是不正确的。 (1) t=s[k]; (2) p=&t; (3) s=p; (4) p=c; (5) q=c+2; (6) q=*(c+2); (7) p=*(c+2)+k; (8) t=**c; (9) h=r; (10) p=r[3]; (11) ip=p; (12) *(r+2)=s; (13) ip=vp; (14) h=NULL; (ii) 给出执行下列输出语句的输出结果: (1) printf("%c\\n",s[k]); (2) puts(*(c+3)); (3) puts(s+2); (4) printf("%s\\n", *r); (5) printf("%c\\n",*(*(c+3)+2)); (6) printf("%s\\n", c[3]+3); (7) putchar(*(r[2]+5)); 第27次 (5.31) 1. 编写一个程序定义一个结构体类型表示复数,输入两个复数求它们和、差、积。 2. 设学生的记录包含学号、姓名和出生日期,编程实现输入一个学生的记录和一个年份,求该学生当年的年龄,输出该学生的学号,姓名和年龄。 第28次 (6.5) 1.教材P330 2 2.设学生的记录包含学号、姓名和三门课的成绩,编写一个程序输入n个学生的记录,输出三门课平均分>=60的学生记录。要求输入n个学生的记录、输出平均分及格的学生记录分别用一个函数实现,用指向结构体变量的指针作为形参传递结构体数组的首地址。 第29次 (6.7) 3. 建立一个链表,每个节点包括:学号、姓名、性别、年龄。输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,则将此结点输出。要求建立链表和输出数据分别用函数实现。下载本文